<?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>164860</bug_id>
          
          <creation_ts>2016-11-17 01:18:38 -0800</creation_ts>
          <short_desc>JS Modules in Workers</short_desc>
          <delta_ts>2021-06-23 23:51:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit 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>
          <dependson>164425</dependson>
          <blocked>147340</blocked>
    
    <blocked>165724</blocked>
    
    <blocked>192329</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>adam</cc>
    
    <cc>annulen</cc>
    
    <cc>anthony</cc>
    
    <cc>ashley</cc>
    
    <cc>benjamin</cc>
    
    <cc>bjonesbe</cc>
    
    <cc>briankimpossible</cc>
    
    <cc>bugs.webkit.org</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>chi187</cc>
    
    <cc>clopez</cc>
    
    <cc>cyb.ai.815</cc>
    
    <cc>daflair</cc>
    
    <cc>dbates</cc>
    
    <cc>dpaddock</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>guybedford</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jeffschiller</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kdmitrenko</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>lgarron</cc>
    
    <cc>mark.lam</cc>
    
    <cc>michel.nizette</cc>
    
    <cc>mjs</cc>
    
    <cc>mkwst</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>sgospodarets</cc>
    
    <cc>tobiasuhlig78</cc>
    
    <cc>tomac</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1252257</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-11-17 01:18:38 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1440128</commentid>
    <comment_count>1</comment_count>
    <who name="Saleh Abdel Motaal">daflair</who>
    <bug_when>2018-07-07 05:59:18 -0700</bug_when>
    <thetext>It seems that support `new Worker(…, {type: &quot;module&quot;})` is limited or missing.

In a project that uses only pure ES modules served using a very basic express server (ie express.static) over http://127.0.0.1:8080 or http://localhost:8080 a worker module with static import statements:

```
import {…} from &apos;…&apos;
```

Throws: 
  SyntaxError: Unexpected token &apos;{&apos;. import call expects exactly one argument.

It should be noted that those static import statements are synthesized using rollup and the resulting files sometimes include one or more variable declarations before the occurrence of the import statements.

The same project does not throw in Chrome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569955</commentid>
    <comment_count>2</comment_count>
    <who name="Guy Bedford">guybedford</who>
    <bug_when>2019-09-11 11:47:33 -0700</bug_when>
    <thetext>Note that supporting dynamic `import()` in Web Workers can also be a first start along these lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586863</commentid>
    <comment_count>3</comment_count>
    <who name="Tobias Uhlig">tobiasuhlig78</who>
    <bug_when>2019-11-03 12:02:36 -0800</bug_when>
    <thetext>Just stumbled on this ticket and am quite surprised that it did not get way more comments yet.

I am crafting a web workers driven ES8 framework, so module support for workers (including dynamic imports) is one of the key features lacking in Safari.

In Chrome this works already for close to a year using the experimental web plattform features and now got the Label Target-80.

Without the type=&quot;module&quot; support, applications have to use build tools like Webpack, which is slowing the web development speed down by a long shot!

Please be aware, that this ticket should also include the module type for shared &amp; service workers.

I recommend to make it a high priority epic.

Thanks &amp; best regards
Tobias</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600889</commentid>
    <comment_count>4</comment_count>
    <who name="Tobias Uhlig">tobiasuhlig78</who>
    <bug_when>2019-12-20 13:06:22 -0800</bug_when>
    <thetext>A quick update on the current status would be appreciated.

The new framework is online now and already at 227 github stars (December 20):
https://github.com/neomjs/neo

Here are the online examples, which according to the specs should work in every modern browser:
https://neomjs.github.io/pages/

It makes me a bit sad to see Safari falling behind on an such important topic.

https://html.spec.whatwg.org/multipage/workers.html#module-worker-example

Hoping you will catch up!

Best regards &amp; happy holiddays,
Tobias</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662544</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-14 19:44:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/64348230&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664611</commentid>
    <comment_count>6</comment_count>
      <attachid>402347</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-19 16:47:17 -0700</bug_when>
    <thetext>Created attachment 402347
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726543</commentid>
    <comment_count>7</comment_count>
      <attachid>419557</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-07 23:33:13 -0800</bug_when>
    <thetext>Created attachment 419557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726559</commentid>
    <comment_count>8</comment_count>
      <attachid>419562</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-08 01:26:54 -0800</bug_when>
    <thetext>Created attachment 419562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726566</commentid>
    <comment_count>9</comment_count>
      <attachid>419565</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-08 01:52:58 -0800</bug_when>
    <thetext>Created attachment 419565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726994</commentid>
    <comment_count>10</comment_count>
      <attachid>419694</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-09 03:04:39 -0800</bug_when>
    <thetext>Created attachment 419694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727403</commentid>
    <comment_count>11</comment_count>
      <attachid>419807</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-09 20:26:57 -0800</bug_when>
    <thetext>Created attachment 419807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727450</commentid>
    <comment_count>12</comment_count>
      <attachid>419819</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-10 00:29:20 -0800</bug_when>
    <thetext>Created attachment 419819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727455</commentid>
    <comment_count>13</comment_count>
      <attachid>419821</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-10 00:39:08 -0800</bug_when>
    <thetext>Created attachment 419821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727744</commentid>
    <comment_count>14</comment_count>
      <attachid>419895</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-10 13:40:32 -0800</bug_when>
    <thetext>Created attachment 419895
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727878</commentid>
    <comment_count>15</comment_count>
      <attachid>419922</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-10 16:46:59 -0800</bug_when>
    <thetext>Created attachment 419922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727908</commentid>
    <comment_count>16</comment_count>
      <attachid>419935</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-10 18:11:32 -0800</bug_when>
    <thetext>Created attachment 419935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728187</commentid>
    <comment_count>17</comment_count>
      <attachid>420011</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-11 11:24:59 -0800</bug_when>
    <thetext>Created attachment 420011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728188</commentid>
    <comment_count>18</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-02-11 11:26:03 -0800</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728313</commentid>
    <comment_count>19</comment_count>
      <attachid>420047</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-11 14:55:57 -0800</bug_when>
    <thetext>Created attachment 420047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728318</commentid>
    <comment_count>20</comment_count>
      <attachid>420050</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-11 15:13:12 -0800</bug_when>
    <thetext>Created attachment 420050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728431</commentid>
    <comment_count>21</comment_count>
      <attachid>420084</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-11 20:18:34 -0800</bug_when>
    <thetext>Created attachment 420084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728434</commentid>
    <comment_count>22</comment_count>
      <attachid>420086</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-11 20:26:44 -0800</bug_when>
    <thetext>Created attachment 420086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728466</commentid>
    <comment_count>23</comment_count>
      <attachid>420100</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-11 22:52:30 -0800</bug_when>
    <thetext>Created attachment 420100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728485</commentid>
    <comment_count>24</comment_count>
      <attachid>420102</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-12 01:12:45 -0800</bug_when>
    <thetext>Created attachment 420102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728911</commentid>
    <comment_count>25</comment_count>
      <attachid>420214</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-12 22:57:40 -0800</bug_when>
    <thetext>Created attachment 420214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730203</commentid>
    <comment_count>26</comment_count>
      <attachid>420618</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-17 01:58:07 -0800</bug_when>
    <thetext>Created attachment 420618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731234</commentid>
    <comment_count>27</comment_count>
      <attachid>420925</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-18 23:02:39 -0800</bug_when>
    <thetext>Created attachment 420925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731236</commentid>
    <comment_count>28</comment_count>
      <attachid>420927</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-18 23:36:33 -0800</bug_when>
    <thetext>Created attachment 420927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731460</commentid>
    <comment_count>29</comment_count>
      <attachid>420996</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-19 11:26:31 -0800</bug_when>
    <thetext>Created attachment 420996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731735</commentid>
    <comment_count>30</comment_count>
      <attachid>420996</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-02-19 19:37:10 -0800</bug_when>
    <thetext>Comment on attachment 420996
Patch

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

r=me

Do we want some more tests here? Especially for various error cases, and various complex programs and such?

&gt; Source/WebCore/bindings/js/JSDOMExceptionHandling.cpp:172
&gt; +        // FIXME: All callers to createDOMException need to pass in the correct global object.
&gt; +        // For now, we&apos;re going to assume the lexicalGlobalObject. Which is wrong in cases like this:
&gt; +        // frames[0].document.createElement(null, null); // throws an exception which should have the subframe&apos;s prototypes.

maybe file a bug for this?

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:332
&gt; +void ScriptModuleLoader::notifyFinished(ModuleScriptLoader&amp; moduleScriptLoader, URL&amp;&amp; sourceURL, Ref&lt;DeferredPromise&gt; promise)

nit: why not just take URL here (callers can still move into the parameter)? That way we  know this function takes ownership of URL. I don&apos;t think this sourceURL parameter is actually moved anywhere here, or at least there are early return paths that don&apos;t take ownership over it.

&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:404
&gt; +                rejectToPropagateNetworkError(promise.get(), ModuleFetchFailureKind::WasCanceled, &quot;Importing a module script is canceled.&quot;_s);

nit: I wonder if this error should be more like &quot;Loading a module script was cancelled&quot;  or &quot;Load for importing a module script was canceled&quot;

&gt; Source/WebCore/workers/WorkerGlobalScope.cpp:282
&gt; +        return Exception { TypeError, &quot;importScripts cannot be used if woerker type is \&quot;module\&quot;&quot;_s };

&quot;woerker&quot; =&gt; &quot;worker&quot;

&gt; Source/WebCore/workers/WorkerOrWorkletScriptController.cpp:364
&gt; +            // Overwrite the detailed error with a generic error.

nit: not sure this comment is adding anything

&gt; Source/WebCore/workers/WorkerOrWorkletScriptController.cpp:425
&gt; +                    // Overwrite the detailed error with a generic error.

ditto

I wonder if we can share this  code  w/ above that seems to do a similar thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731819</commentid>
    <comment_count>31</comment_count>
      <attachid>420996</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-20 11:47:59 -0800</bug_when>
    <thetext>Comment on attachment 420996
Patch

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

I think all error things are already tested. So, it is OK :)

&gt;&gt; Source/WebCore/bindings/js/JSDOMExceptionHandling.cpp:172
&gt;&gt; +        // frames[0].document.createElement(null, null); // throws an exception which should have the subframe&apos;s prototypes.
&gt; 
&gt; maybe file a bug for this?

Filed https://bugs.webkit.org/show_bug.cgi?id=222229

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:332
&gt;&gt; +void ScriptModuleLoader::notifyFinished(ModuleScriptLoader&amp; moduleScriptLoader, URL&amp;&amp; sourceURL, Ref&lt;DeferredPromise&gt; promise)
&gt; 
&gt; nit: why not just take URL here (callers can still move into the parameter)? That way we  know this function takes ownership of URL. I don&apos;t think this sourceURL parameter is actually moved anywhere here, or at least there are early return paths that don&apos;t take ownership over it.

Because we would like to remove registered / kept loader from m_loaders, we need to pass Loader.

&gt;&gt; Source/WebCore/bindings/js/ScriptModuleLoader.cpp:404
&gt;&gt; +                rejectToPropagateNetworkError(promise.get(), ModuleFetchFailureKind::WasCanceled, &quot;Importing a module script is canceled.&quot;_s);
&gt; 
&gt; nit: I wonder if this error should be more like &quot;Loading a module script was cancelled&quot;  or &quot;Load for importing a module script was canceled&quot;

I&apos;ll open a bug for that since this error message is used in usual non-worker module loaders.

&gt;&gt; Source/WebCore/workers/WorkerGlobalScope.cpp:282
&gt;&gt; +        return Exception { TypeError, &quot;importScripts cannot be used if woerker type is \&quot;module\&quot;&quot;_s };
&gt; 
&gt; &quot;woerker&quot; =&gt; &quot;worker&quot;

Fixed.

&gt;&gt; Source/WebCore/workers/WorkerOrWorkletScriptController.cpp:364
&gt;&gt; +            // Overwrite the detailed error with a generic error.
&gt; 
&gt; nit: not sure this comment is adding anything

Removed

&gt;&gt; Source/WebCore/workers/WorkerOrWorkletScriptController.cpp:425
&gt;&gt; +                    // Overwrite the detailed error with a generic error.
&gt; 
&gt; ditto
&gt; 
&gt; I wonder if we can share this  code  w/ above that seems to do a similar thing.

Currently, not sharable since a lot of things are different (the above is loading synchronously, and this is loading asynchronously). This one is for Worklets and the above one is for Workers. And they have different semantics to load modules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731829</commentid>
    <comment_count>32</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-20 12:30:26 -0800</bug_when>
    <thetext>Committed r273203 (234389@main): &lt;https://commits.webkit.org/234389@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731870</commentid>
    <comment_count>33</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-02-20 14:45:59 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #32)
&gt; Committed r273203 (234389@main): &lt;https://commits.webkit.org/234389@main&gt;
This seems to have broken GTK build.
234389@main failed in https://build.webkit.org/#/builders/43/builds/332
234388@main passed in https://build.webkit.org/#/builders/43/builds/331


From https://build.webkit.org/#/builders/43/builds/332/steps/8/logs/errors:

WorkerModuleScriptLoader.h:46:94: error: ‘WorkerScriptFetcher’ has not been declared</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731880</commentid>
    <comment_count>34</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-02-20 15:41:06 -0800</bug_when>
    <thetext>(In reply to Aakash Jain from comment #33)
&gt; (In reply to Yusuke Suzuki from comment #32)
&gt; &gt; Committed r273203 (234389@main): &lt;https://commits.webkit.org/234389@main&gt;
&gt; This seems to have broken GTK build.
&gt; 234389@main failed in https://build.webkit.org/#/builders/43/builds/332
&gt; 234388@main passed in https://build.webkit.org/#/builders/43/builds/331
&gt; 
&gt; 
&gt; From https://build.webkit.org/#/builders/43/builds/332/steps/8/logs/errors:
&gt; 
&gt; WorkerModuleScriptLoader.h:46:94: error: ‘WorkerScriptFetcher’ has not been
&gt; declared

Already fixed in http://trac.webkit.org/r273205, but perhaps a better fix can be implemented e.g. forward declaring WorkerScriptFetcher instead of #include&apos;ing WorkerScriptFetcher.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753837</commentid>
    <comment_count>35</comment_count>
      <attachid>426977</attachid>
    <who name="Tobias Uhlig">tobiasuhlig78</who>
    <bug_when>2021-04-24 02:09:25 -0700</bug_when>
    <thetext>Created attachment 426977
Advanced use case

Hi guys,

I just installed the tech preview to test it with a pretty complex use case.
https://neomjs.github.io/pages/node_modules/neo.mjs/apps/covid/index.html

Looks really good. Great job!

I can finally remove the warning message and add Safari to the list of supported browsers once this hits the non tech preview version (well, except for the shared worker demos).

Best regards,
Tobias</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753839</commentid>
    <comment_count>36</comment_count>
    <who name="Tobias Uhlig">tobiasuhlig78</who>
    <bug_when>2021-04-24 04:22:40 -0700</bug_when>
    <thetext>I wrote a quick blog post on this one:
https://tobiasuhlig.medium.com/safari-webkit-about-to-release-support-for-js-modules-inside-the-worker-scope-9dd33fc20190?source=friends_link&amp;sk=db61a01446ca5a51ee2f932aad9ca890

Worth a look for the dom node rotation (direction) issue.

Best regards,
Tobias</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753890</commentid>
    <comment_count>37</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-24 13:39:17 -0700</bug_when>
    <thetext>(In reply to Tobias Uhlig from comment #35)
&gt; Created attachment 426977 [details]
&gt; Advanced use case
&gt; 
&gt; Hi guys,
&gt; 
&gt; I just installed the tech preview to test it with a pretty complex use case.
&gt; https://neomjs.github.io/pages/node_modules/neo.mjs/apps/covid/index.html
&gt; 
&gt; Looks really good. Great job!
&gt; 
&gt; I can finally remove the warning message and add Safari to the list of
&gt; supported browsers once this hits the non tech preview version (well, except
&gt; for the shared worker demos).
&gt; 
&gt; Best regards,
&gt; Tobias

Nice! If you find an issue, please report it to bugs.webkit.org, and CC me (ysuzuki@apple.com)! Such a report is very welcomed, and it can improve quality significantly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765440</commentid>
    <comment_count>38</comment_count>
    <who name="Thomas Steiner">tomac</who>
    <bug_when>2021-05-31 13:35:07 -0700</bug_when>
    <thetext>Is this feature coming to mobile Safari, too? It works like a charm on desktop Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766401</commentid>
    <comment_count>39</comment_count>
    <who name="Jeff Schiller">jeffschiller</who>
    <bug_when>2021-06-03 08:30:42 -0700</bug_when>
    <thetext>I haven&apos;t had time to test this, but if Safari supports this feature now/soon, can someone update https://github.com/mdn/browser-compat-data/blob/main/api/Worker.json#L173 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766404</commentid>
    <comment_count>40</comment_count>
    <who name="Thomas Steiner">tomac</who>
    <bug_when>2021-06-03 08:52:09 -0700</bug_when>
    <thetext>&gt; I haven&apos;t had time to test this, but if Safari supports this feature now/soon, can someone update https://github.com/mdn/browser-compat-data/blob/main/api/Worker.json#L173 ?

Just opened https://github.com/mdn/browser-compat-data/pull/10749. No support on mobile yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772194</commentid>
    <comment_count>41</comment_count>
    <who name="Lucas Garron">lgarron</who>
    <bug_when>2021-06-23 23:48:48 -0700</bug_when>
    <thetext>May I ask if this is expected to be available to non-Safari browsers in iOS 15?

Being able to rely on ESM for workers in a web app would significantly help with compatibility and performance (compared to current workarounds), and it would be really disappointing if that option involved leaving other iOS browsers behind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772195</commentid>
    <comment_count>42</comment_count>
    <who name="Thomas Steiner">tomac</who>
    <bug_when>2021-06-23 23:51:07 -0700</bug_when>
    <thetext>&gt; May I ask if this is expected to be available to non-Safari browsers in iOS 15?

At least it is currently supported in the latest iOS 15.0 (19A5261w). I just checked in Chrome for iOS.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402347</attachid>
            <date>2020-06-19 16:47:17 -0700</date>
            <delta_ts>2021-02-08 01:52:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20200619164716.patch</filename>
            <type>text/plain</type>
            <size>28402</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDlhM2U0ZWVlOGRmYjdj
MzIxOTFhZWI5YmJmYzUxOTQ0OWMwMjU2Yy4uMWQ5NTA4YTA3MzQ5NTRiNWRlNTEwYjNiMjBlN2U0
ZmIwNWY5NjQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA2LTE5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBX
b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlw
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxl
cjo6bG9hZE1vZHVsZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogZG9tL0xvYWRhYmxlTW9k
dWxlU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRhYmxlTW9kdWxlU2NyaXB0Ojps
b2FkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaDoKKyAg
ICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRF
bGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Oldvcmtlcik6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlz
aGVkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyLmlkbDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUGFyYW1ldGVyczo6aXNv
bGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29ya2Vy
VGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCk6CisKIDIw
MjAtMDYtMTggIERvdWcgS2VsbHkgIDxkb3Vna0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHBh
aW50Q2VsbEFuZFNldEZvY3VzZWRFbGVtZW50TmVlZHNSZXBhaW50SWZOZWNlc3NhcnkoKSBmb3Ig
c2VhcmNoIGZpZWxkIGJ1dHRvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggOTMxY2VlNzc3OWJmOTYxNDM4ZTgy
MDE1MGM3YTdmOGFiNDY3NTU0Ny4uZDdmMWY0ZTcxNzQ1NTc5MzkyNjdkNGQ5NmJiNTdhZjYzYmI3
ZmE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5jcHAKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJKU0V2ZW50VGFy
Z2V0LmgiCiAjaW5jbHVkZSAiSlNFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0LmgiCisjaW5j
bHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29k
ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJD
b25zb2xlQ2xpZW50LmgiCkBAIC0xNzQsNiArMTc2LDExNSBAQCB2b2lkIFdvcmtlclNjcmlwdENv
bnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIE5h
a2VkUAogICAgIH0KIH0KIAorTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjpsb2FkTW9kdWxlU3luY2hyb25vdXNseShMb2FkYWJsZU1vZHVsZVNjcmlwdCYgbW9k
dWxlU2NyaXB0LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIGlm
IChpc0V4ZWN1dGlvbkZvcmJpZGRlbigpKQorICAgICAgICByZXR1cm4gTWVzc2FnZVF1ZXVlVGVy
bWluYXRlZDsKKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgbGV4aWNh
bEdsb2JhbE9iamVjdCA9ICptX3dvcmtlckdsb2JhbFNjb3BlV3JhcHBlci5nZXQoKTsKKyAgICBW
TSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sg
eyB2bSB9OworCisgICAgYXV0byYgcHJvbWlzZSA9IEpTRXhlY1N0YXRlOjpsb2FkTW9kdWxlKGxl
eGljYWxHbG9iYWxPYmplY3QsIHNvdXJjZUNvZGUuanNTb3VyY2VDb2RlKCksIEpTQzo6SlNTY3Jp
cHRGZXRjaGVyOjpjcmVhdGUodm0sIHsgJm1vZHVsZVNjcmlwdCB9KSk7CisKKyAgICBSZWZQdHI8
TG9hZGFibGVNb2R1bGVTY3JpcHQ+IG1vZHVsZVNjcmlwdFJlZigmbW9kdWxlU2NyaXB0KTsKKwor
ICAgIGF1dG8mIGZ1bGZpbGxIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZSh2
bSwgJmxleGljYWxHbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbbW9kdWxlU2NyaXB0UmVmXShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgLT4gSlND
OjpFbmNvZGVkSlNWYWx1ZSB7CisgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgICAgICBJ
ZGVudGlmaWVyIG1vZHVsZUtleSA9IGpzVmFsdWVUb01vZHVsZUtleShnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZS0+YXJndW1lbnQoMCkpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOworICAgICAgICBtb2R1bGVTY3JpcHRSZWYtPm5vdGlmeUxvYWRDb21wbGV0ZWQoKm1v
ZHVsZUtleS5pbXBsKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOworICAgIH0pOworCisgICAgYXV0byYgcmVqZWN0SGFuZGxlciA9ICpKU05hdGl2ZVN0
ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZsZXhpY2FsR2xvYmFsT2JqZWN0LCAxLCBTdHJpbmcoKSwg
W21vZHVsZVNjcmlwdFJlZl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpIHsKKyAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAg
ICAgICBKU1ZhbHVlIGVycm9yVmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOworICAgICAg
ICBpZiAoZXJyb3JWYWx1ZS5pc09iamVjdCgpKSB7CisgICAgICAgICAgICBhdXRvKiBvYmplY3Qg
PSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOworICAgICAgICAgICAgaWYgKEpTVmFsdWUgZmFp
bHVyZUtpbmRWYWx1ZSA9IG9iamVjdC0+Z2V0RGlyZWN0KHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xp
ZW50RGF0YSY+KCp2bS5jbGllbnREYXRhKS5idWlsdGluTmFtZXMoKS5mYWlsdXJlS2luZFByaXZh
dGVOYW1lKCkpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBob3N0IHByb3BhZ2F0ZWQg
ZXJyb3IgaW4gdGhlIG1vZHVsZSBsb2FkZXIgcGlwZWxpbmUuCisgICAgICAgICAgICAgICAgc3dp
dGNoIChzdGF0aWNfY2FzdDxNb2R1bGVGZXRjaEZhaWx1cmVLaW5kPihmYWlsdXJlS2luZFZhbHVl
LmFzSW50MzIoKSkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIE1vZHVsZUZldGNoRmFpbHVyZUtp
bmQ6Oldhc0Vycm9yZWQ6CisgICAgICAgICAgICAgICAgICAgIG1vZHVsZVNjcmlwdFJlZi0+bm90
aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3IgeworICAgICAgICAgICAgICAgICAg
ICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgV1RGOjpudWxsb3B0CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE1vZHVsZUZldGNo
RmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkOgorICAgICAgICAgICAgICAgICAgICBtb2R1bGVTY3Jp
cHRSZWYtPm5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICAgICAgbW9kdWxlU2Ny
aXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAg
ICAgICBMb2FkYWJsZVNjcmlwdDo6RXJyb3JUeXBlOjpDYWNoZWRTY3JpcHQsCisgICAgICAgICAg
ICBMb2FkYWJsZVNjcmlwdDo6Q29uc29sZU1lc3NhZ2UgeworICAgICAgICAgICAgICAgIE1lc3Nh
Z2VTb3VyY2U6OkpTLAorICAgICAgICAgICAgICAgIE1lc3NhZ2VMZXZlbDo6RXJyb3IsCisgICAg
ICAgICAgICAgICAgcmV0cmlldmVFcnJvck1lc3NhZ2UoKmdsb2JhbE9iamVjdCwgdm0sIGVycm9y
VmFsdWUsIHNjb3BlKSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfSk7CisKKyAgICBwcm9taXNl
LnRoZW4oJmxleGljYWxHbG9iYWxPYmplY3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRs
ZXIpOworCisgICAgLy8gRHJpdmUgUnVuTG9vcCB1bnRpbCB3ZSBnZXQgZWl0aGVyIG9mICJXb3Jr
ZXIgaXMgdGVybWluYXRlZCIsICJMb2FkaW5nIGlzIGRvbmUiLCBvciAiTG9hZGluZyBpcyBmYWls
ZWQiLgorICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSBtX3dvcmtlckdsb2JhbFNjb3BlLT50
aHJlYWQoKS5ydW5Mb29wKCk7CisgICAgU3RyaW5nIG1vZGUgPSBtYWtlU3RyaW5nKCJsb2FkTW9k
dWxlU3luY2hyb25vdXNseSIsIHJ1bkxvb3AuY3JlYXRlVW5pcXVlSWQoKSk7CisKKyAgICBNZXNz
YWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZDsK
KyAgICB3aGlsZSAoKCFtb2R1bGVTY3JpcHRSZWYtPmlzTG9hZGVkKCkgfHwgIW1vZHVsZVNjcmlw
dFJlZi0+d2FzQ2FuY2VsZWQoKSkgJiYgcmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQp
CisgICAgICAgIHJlc3VsdCA9IHJ1bkxvb3AucnVuSW5Nb2RlKG1fd29ya2VyR2xvYmFsU2NvcGUs
IG1vZGUpOworCisgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBhcmUgbm90IG9mZmVyaW5nIGNh
bmNlbGxpbmcuCisgICAgLy8gaWYgKCFsb2FkZXItPmRvbmUoKSAmJiByZXN1bHQgPT0gTWVzc2Fn
ZVF1ZXVlVGVybWluYXRlZCkKKyAgICAvLyAgICAgbG9hZGVyLT5jYW5jZWwoKTsKKworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2
YWx1YXRlTW9kdWxlKExvYWRhYmxlTW9kdWxlU2NyaXB0JiBtb2R1bGVTY3JpcHQsIGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNz
YWdlKQoreworICAgIGlmIChpc0V4ZWN1dGlvbkZvcmJpZGRlbigpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpbml0U2NyaXB0SWZOZWVkZWQoKTsKKworICAgIGF1dG8mIGxleGljYWxHbG9iYWxP
YmplY3QgPSAqbV93b3JrZXJHbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0g
bGV4aWNhbEdsb2JhbE9iamVjdC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsK
KworICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICBK
U0V4ZWNTdGF0ZTo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKGxleGljYWxHbG9iYWxPYmplY3QsIElk
ZW50aWZpZXI6OmZyb21VaWQodm0sIG1vZHVsZVNjcmlwdC5tb2R1bGVLZXkoKSksIGpzVW5kZWZp
bmVkKCksIHJldHVybmVkRXhjZXB0aW9uKTsKKyAgICBpZiAoKHJldHVybmVkRXhjZXB0aW9uICYm
IGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbih2bSwgcmV0dXJuZWRFeGNlcHRpb24pKSB8
fCBpc1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkpIHsKKyAgICAgICAgZm9yYmlkRXhlY3V0aW9uKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAocmV0dXJuZWRFeGNlcHRpb24pIHsK
KyAgICAgICAgaWYgKG1fd29ya2VyR2xvYmFsU2NvcGUtPmNhbkluY2x1ZGVFcnJvckRldGFpbHMo
c291cmNlQ29kZS5jYWNoZWRTY3JpcHQoKSwgc291cmNlQ29kZS51cmwoKS5zdHJpbmcoKSkpIHsK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBJdCdzIG5vdCBncmVhdCB0aGF0IHRoaXMgY2FuIHJ1biBh
cmJpdHJhcnkgY29kZSB0byBzdHJpbmctaWZ5IHRoZSB2YWx1ZSBvZiB0aGUgZXhjZXB0aW9uLgor
ICAgICAgICAgICAgLy8gRG8gd2UgbmVlZCB0byBkbyBhbnl0aGluZyB0byBoYW5kbGUgdGhhdCBw
cm9wZXJseSwgaWYgaXQsIHNheSwgcmFpc2VzIGFub3RoZXIgZXhjZXB0aW9uPworICAgICAgICAg
ICAgaWYgKHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSkKKyAgICAgICAgICAgICAgICAqcmV0dXJu
ZWRFeGNlcHRpb25NZXNzYWdlID0gcmV0dXJuZWRFeGNlcHRpb24tPnZhbHVlKCkudG9XVEZTdHJp
bmcoJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
Ly8gT3ZlcndyaXRlIHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBlcnJvci4KKyAg
ICAgICAgICAgIFN0cmluZyBnZW5lcmljRXJyb3JNZXNzYWdlIHsgIlNjcmlwdCBlcnJvci4iX3Mg
fTsKKyAgICAgICAgICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAg
ICAgICAgKnJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IGdlbmVyaWNFcnJvck1lc3NhZ2U7Cisg
ICAgICAgICAgICByZXR1cm5lZEV4Y2VwdGlvbiA9IEpTQzo6RXhjZXB0aW9uOjpjcmVhdGUodm0s
IGNyZWF0ZUVycm9yKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBnZW5lcmljRXJyb3JNZXNzYWdlKSk7
CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6c2V0
RXhjZXB0aW9uKEpTQzo6RXhjZXB0aW9uKiBleGNlcHRpb24pCiB7CiAgICAgSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCA9IG1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVy
LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5oCmluZGV4IGQwYTU0N2FjNTY3MzlmZGRlMWU3MGU4ZWMxOWIyYjQ4ODVlYjU2
MDkuLjRiYmZmNDM0YWZlNjEzMjFmMGZiMDZlNWQ5MmE3ZTUwZjlmM2JjMmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3Rm
L01lc3NhZ2VRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9OYWtlZFB0ci5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsKQEAgLTQwLDYgKzQxLDcgQEAgY2xhc3MgVk07CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEpTV29ya2VyR2xvYmFsU2NvcGU7CitjbGFzcyBMb2FkYWJsZU1vZHVsZVNjcmlwdDsK
IGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBXb3JrZXJDb25zb2xlQ2xpZW50OwogY2xh
c3MgV29ya2VyR2xvYmFsU2NvcGU7CkBAIC01OCw2ICs2MCw5IEBAIGNsYXNzIFdvcmtlclNjcmlw
dENvbnRyb2xsZXIgewogCiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2Rl
JiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKICAgICB2b2lk
IGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlv
bj4mIHJldHVybmVkRXhjZXB0aW9uLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9
IG51bGxwdHIpOworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlKExvYWRhYmxlTW9kdWxl
U2NyaXB0JiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgU3RyaW5nKiByZXR1
cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKKworICAgIE1lc3NhZ2VRdWV1ZVdhaXRS
ZXN1bHQgbG9hZE1vZHVsZVN5bmNocm9ub3VzbHkoTG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJik7CiAKICAgICB2b2lkIHNldEV4Y2VwdGlvbihKU0M6OkV4Y2Vw
dGlvbiopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVT
Y3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcApp
bmRleCA5YTI1YzE2NTg4ZWVjYWQ2NzhmYjkxMWVjODYyMmY0MjQyNTkyYjVhLi40OGVjMDg1MWE0
NTdkOWJhNDc0NzNmZWMyOGQ3YjQ5MzEyYjc4OGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9M
b2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKQEAgLTg4LDE2ICs4OCw0IEBAIHZvaWQgTG9hZGFibGVN
b2R1bGVTY3JpcHQ6OmV4ZWN1dGUoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVudCkKICAgICBz
Y3JpcHRFbGVtZW50LmV4ZWN1dGVNb2R1bGVTY3JpcHQoKnRoaXMpOwogfQogCi12b2lkIExvYWRh
YmxlTW9kdWxlU2NyaXB0Ojpsb2FkKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiByb290
VVJMKQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0gICAgICAg
IGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KCp0aGlzLCByb290VVJMLnN0cmluZygp
LCBtX3BhcmFtZXRlcnMuY29weVJlZigpKTsKLX0KLQotdm9pZCBMb2FkYWJsZU1vZHVsZVNjcmlw
dDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJj
ZUNvZGUpCi17Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAg
ICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoKnRoaXMsIHNvdXJjZUNvZGUpOwot
fQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3Jp
cHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oCmluZGV4IGJi
Nzk5NTRkN2I5OWIwZWQwNmJmZTU1ZWY4NTRlY2NlMjFmMzU4NzcuLmQyNTM1OTYzZjY0OGIwMmE4
YTAxZmQ2M2JiMWUzODEzODZjZWU0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9M
b2FkYWJsZU1vZHVsZVNjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oCkBAIC01MCwxNSArNTAsMTQgQEAgY2xhc3MgTG9hZGFibGVNb2R1bGVTY3Jp
cHQgZmluYWwgOiBwdWJsaWMgTG9hZGFibGVTY3JpcHQgewogCiAgICAgdm9pZCBzZXRFcnJvcihF
cnJvciYmKTsKIAotICAgIHZvaWQgbG9hZChEb2N1bWVudCYsIGNvbnN0IFVSTCYgcm9vdFVSTCk7
Ci0gICAgdm9pZCBsb2FkKERvY3VtZW50JiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwotCiAg
ICAgdm9pZCBub3RpZnlMb2FkQ29tcGxldGVkKFVuaXF1ZWRTdHJpbmdJbXBsJik7CiAgICAgdm9p
ZCBub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciYmKTsKICAgICB2b2lkIG5v
dGlmeUxvYWRXYXNDYW5jZWxlZCgpOwogCiAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtl
eSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlS2V5LmdldCgpOyB9CiAKKyAgICBNb2R1bGVGZXRj
aFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMoKSB7IHJldHVybiBtX3BhcmFtZXRlcnMuZ2V0KCk7IH0K
KwogcHJpdmF0ZToKICAgICBMb2FkYWJsZU1vZHVsZVNjcmlwdChjb25zdCBTdHJpbmcmIG5vbmNl
LCBjb25zdCBTdHJpbmcmIGludGVncml0eSwgUmVmZXJyZXJQb2xpY3ksIGNvbnN0IFN0cmluZyYg
Y3Jvc3NPcmlnaW5Nb2RlLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0IEF0b21TdHJpbmcm
IGluaXRpYXRvck5hbWUsIGJvb2wgaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggMDU3NThiNjAwYzc1MjJiNDdmMzY0YmE2YTE4
ZDM1ZjE3MzExMDdmOS4uNWU5OWYwZjU3NzdiM2IyMTU4ZGQwZmE0YmMzODI3NzZjZGIzNDgxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2lu
Y2x1ZGUgIkxvYWRhYmxlQ2xhc3NpY1NjcmlwdC5oIgogI2luY2x1ZGUgIkxvYWRhYmxlTW9kdWxl
U2NyaXB0LmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vZHVs
ZUZldGNoUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBlbmRpbmdTY3JpcHQuaCIKICNpbmNsdWRl
ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50
LmgiCkBAIC0zNTEsOCArMzUyLDExIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVs
ZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiAgICAgICAg
ICAgICBzY3JpcHRDaGFyc2V0KCksCiAgICAgICAgICAgICBtX2VsZW1lbnQubG9jYWxOYW1lKCks
CiAgICAgICAgICAgICBtX2VsZW1lbnQuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSk7Ci0gICAg
ICAgIHNjcmlwdC0+bG9hZChtX2VsZW1lbnQuZG9jdW1lbnQoKSwgbW9kdWxlU2NyaXB0Um9vdFVS
TCk7CiAgICAgICAgIG1fbG9hZGFibGVTY3JpcHQgPSBXVEZNb3ZlKHNjcmlwdCk7CisgICAgICAg
IGlmIChhdXRvKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpIHsKKyAgICAg
ICAgICAgIGF1dG8mIHNjcmlwdCA9IGRvd25jYXN0PExvYWRhYmxlTW9kdWxlU2NyaXB0PigqbV9s
b2FkYWJsZVNjcmlwdC5nZXQoKSk7CisgICAgICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1v
ZHVsZVNjcmlwdChzY3JpcHQsIG1vZHVsZVNjcmlwdFJvb3RVUkwuc3RyaW5nKCksIG1ha2VSZWYo
c2NyaXB0LnBhcmFtZXRlcnMoKSkpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIApAQCAtMzY3LDggKzM3MSw5IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdE1v
ZHVsZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiAgICAg
aWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LmRv
Y3VtZW50KCkudXJsKCkuc3RyaW5nKCksIG1fc3RhcnRMaW5lTnVtYmVyLCBzb3VyY2VDb2RlLnNv
dXJjZSgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSwgaGFzS25vd25Ob25jZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIHNjcmlwdC0+bG9hZChtX2VsZW1lbnQuZG9jdW1lbnQoKSwg
c291cmNlQ29kZSk7CiAgICAgbV9sb2FkYWJsZVNjcmlwdCA9IFdURk1vdmUoc2NyaXB0KTsKKyAg
ICBpZiAoYXV0byogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAg
ICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdChkb3duY2FzdDxMb2FkYWJsZU1vZHVs
ZVNjcmlwdD4oKm1fbG9hZGFibGVTY3JpcHQuZ2V0KCkpLCBzb3VyY2VDb2RlKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IDgwODMzNWQwMjc0
MWZjOTgzOTVkOWNkMjc5ZWJlNTljMjMzMDBlMTQuLjBmYWRmYTUxYmRkMjI5OWNkMmVmNmFiYzRk
OTQ1NGFiZDNlNGNjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAgLTY5LDYgKzY5
LDggQEAgaW5saW5lIFdvcmtlcjo6V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWUKICAgICAsIG1faWRlbnRpZmllcigid29ya2Vy
OiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpKQog
ICAgICwgbV9jb250ZXh0UHJveHkoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6Y3JlYXRlKCp0aGlz
KSkKICAgICAsIG1fcnVudGltZUZsYWdzKHJ1bnRpbWVGbGFncykKKyAgICAsIG1fdHlwZShvcHRp
b25zLnR5cGUpCisgICAgLCBtX2NyZWRlbnRpYWxzKG9wdGlvbnMuY3JlZGVudGlhbHMpCiB7CiAg
ICAgc3RhdGljIGJvb2wgYWRkZWRMaXN0ZW5lcjsKICAgICBpZiAoIWFkZGVkTGlzdGVuZXIpIHsK
QEAgLTExMiwxMCArMTE0LDEzIEBAIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBXb3JrZXI6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OlJ1CiAKICAgICBGZXRj
aE9wdGlvbnMgZmV0Y2hPcHRpb25zOwogICAgIGZldGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRp
b25zOjpNb2RlOjpTYW1lT3JpZ2luOworICAgIGlmICh3b3JrZXItPm1fdHlwZSA9PSBXb3JrZXJU
eXBlOjpNb2R1bGUpCisgICAgICAgIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9IHdvcmtlci0+
bV9jcmVkZW50aWFsczsKICAgICBmZXRjaE9wdGlvbnMuY2FjaGUgPSBGZXRjaE9wdGlvbnM6OkNh
Y2hlOjpEZWZhdWx0OwogICAgIGZldGNoT3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6
UmVkaXJlY3Q6OkZvbGxvdzsKICAgICBmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9w
dGlvbnM6OkRlc3RpbmF0aW9uOjpXb3JrZXI7Ci0gICAgd29ya2VyLT5tX3NjcmlwdExvYWRlci0+
bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZmV0
Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3Jr
ZXJzTW9kZTo6QWxsLCB3b3JrZXIpOworICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRB
c3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0
aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01v
ZGU6OkFsbCwgd29ya2VyLmdldCgpKTsKKwogICAgIHJldHVybiB3b3JrZXI7CiB9CiAKQEAgLTIx
NCw3ICsyMTksNyBAQCB2b2lkIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQoKQogICAgIFJlZmVycmVy
UG9saWN5IHJlZmVycmVyUG9saWN5ID0gUmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nOwogICAg
IGlmIChhdXRvIHBvbGljeSA9IHBhcnNlUmVmZXJyZXJQb2xpY3kobV9zY3JpcHRMb2FkZXItPnJl
ZmVycmVyUG9saWN5KCksIFJlZmVycmVyUG9saWN5U291cmNlOjpIVFRQSGVhZGVyKSkKICAgICAg
ICAgcmVmZXJyZXJQb2xpY3kgPSAqcG9saWN5OwotICAgIG1fY29udGV4dFByb3h5LnN0YXJ0V29y
a2VyR2xvYmFsU2NvcGUobV9zY3JpcHRMb2FkZXItPnVybCgpLCBtX25hbWUsIGNvbnRleHQtPnVz
ZXJBZ2VudChtX3NjcmlwdExvYWRlci0+dXJsKCkpLCBpc09ubGluZSwgbV9zY3JpcHRMb2FkZXIt
PnNjcmlwdCgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIG1fc2hvdWxk
QnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBtX3dvcmtlckNyZWF0aW9uVGlt
ZSwgcmVmZXJyZXJQb2xpY3ksIG1fcnVudGltZUZsYWdzKTsKKyAgICBtX2NvbnRleHRQcm94eS5z
dGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0TG9hZGVyLT51cmwoKSwgbV9uYW1lLCBjb250
ZXh0LT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVybCgpKSwgaXNPbmxpbmUsIG1fc2NyaXB0
TG9hZGVyLT5zY3JpcHQoKSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBt
X3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgbV93b3JrZXJDcmVh
dGlvblRpbWUsIHJlZmVycmVyUG9saWN5LCBtX3R5cGUsIG1fY3JlZGVudGlhbHMsIG1fcnVudGlt
ZUZsYWdzKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNjcmlwdEltcG9ydGVkKCpj
b250ZXh0LCBtX3NjcmlwdExvYWRlci0+aWRlbnRpZmllcigpLCBtX3NjcmlwdExvYWRlci0+c2Ny
aXB0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAppbmRleCA2N2Y0YjJiNThhYjVhZGVm
ZjZmY2QxY2Q5NTlkNGI2M2I5ZmY1OTVkLi5hMWQ5Yjg5NGVlZGM1ODhiYjIyNzJjNWY1MTMwMTA4
M2EzYTExOWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKQEAgLTI5LDkgKzI5LDExIEBACiAj
aW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRl
ICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAj
aW5jbHVkZSAiUG9zdE1lc3NhZ2VPcHRpb25zLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9h
ZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiV29ya2VyVHlwZS5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1J1bnRpbWVGbGFncy5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC01Myw2ICs1NSw4IEBAIGNsYXNzIFdvcmtlciBm
aW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJp
dmF0ZSBXb3JrCiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrZXIpOwogcHVibGljOgog
ICAgIHN0cnVjdCBPcHRpb25zIHsKKyAgICAgICAgV29ya2VyVHlwZSB0eXBlOworICAgICAgICBG
ZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsKICAgICAgICAgU3RyaW5nIG5hbWU7
CiAgICAgfTsKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFdvcmtlcj4+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgSlNDOjpSdW50aW1lRmxhZ3MsIGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBPcHRpb25zJik7CkBAIC03MCw2ICs3NCw4IEBAIGNsYXNzIFdvcmtlciBmaW5hbCA6
IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBX
b3JrCiAKICAgICB2b2lkIGRpc3BhdGNoRXZlbnQoRXZlbnQmKSBmaW5hbDsKIAorICAgIFdvcmtl
clR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IFdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSlNDOjpSdW50aW1lRmxhZ3Ms
IGNvbnN0IE9wdGlvbnMmKTsKIApAQCAtMTAwLDYgKzEwNiw4IEBAIGNsYXNzIFdvcmtlciBmaW5h
bCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0
ZSBXb3JrCiAgICAgSlNDOjpSdW50aW1lRmxhZ3MgbV9ydW50aW1lRmxhZ3M7CiAgICAgRGVxdWU8
UmVmUHRyPEV2ZW50Pj4gbV9wZW5kaW5nRXZlbnRzOwogICAgIGJvb2wgbV93YXNUZXJtaW5hdGVk
IHsgZmFsc2UgfTsKKyAgICBXb3JrZXJUeXBlIG1fdHlwZSB7IFdvcmtlclR5cGU6OkNsYXNzaWMg
fTsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzIHsgRmV0Y2hSZXF1
ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAppbmRleCBhOWEyMmNhYmQ4NzllNWE0Yjk3MDM2
MzZhMmU0OTQ1ZjY0NTc5MThjLi5jYjRiMWM5N2U3NDRlYTVjNWQwZjhhMDg3MmQ4Nzc1M2RlZWJj
MDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCkBAIC0zNyw2ICszNyw4IEBACiB9Owog
CiBkaWN0aW9uYXJ5IFdvcmtlck9wdGlvbnMgeworICAgIFdvcmtlclR5cGUgdHlwZSA9ICJjbGFz
c2ljIjsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscyA9ICJzYW1lLW9y
aWdpbiI7IC8vIGNyZWRlbnRpYWxzIGlzIG9ubHkgdXNlZCBpZiB0eXBlIGlzICJtb2R1bGUiCiAg
ICAgRE9NU3RyaW5nIG5hbWUgPSAiIjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNTZkYTEyMDdiNzc3OWYyZWE3YmFlNmFi
NzM2ZjlkMmM5NTRmNzI0NC4uMDY4NmEwODFhOTVjZGQ3NmU2OTQ0MWYyYjNjMDgxMGZmZTExZWQx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5
LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGVQcm94eSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFdvcmtlckdsb2JhbFNjb3BlUHJveHkmIGNyZWF0ZShXb3JrZXImKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29s
IGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5
LCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNv
ZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRp
bWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNoUmVx
dWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzJiYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29u
c3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcAppbmRleCBiOWQxOTcwZmRiNGU3NzQ4ZDZmZjM1Mzc2NDJhOWQwOWJiODEyOWE3Li5hMjVk
OTcxMzJiYzAwNDNmZjgwNGFmYmUxODIzZTU0NDQxMjE3OTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtNzMsNyArNzMsNyBAQCBX
b3JrZXJNZXNzYWdpbmdQcm94eTo6fldvcmtlck1lc3NhZ2luZ1Byb3h5KCkKICAgICAgICAgfHwg
KGlzPFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSAmJiBkb3du
Y2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkudGhyZWFk
KCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKSk7CiB9CiAKLXZvaWQgV29ya2VyTWVz
c2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkws
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxp
bmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJv
b2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNU
aW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5LCBKU0M6OlJ1bnRp
bWVGbGFncyBydW50aW1lRmxhZ3MpCit2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdv
cmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNv
dXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZl
cnJlclBvbGljeSByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBGZXRjaFJl
cXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZs
YWdzKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8gYmUgcmV2aXNpdGVkIHdoZW4gd2Ug
c3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0KTsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6
c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3QKIAog
ICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciA9IGRvY3VtZW50LnNvY2tldFByb3Zp
ZGVyKCk7CiAKLSAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsgc2NyaXB0VVJMLCBuYW1l
LCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIGRvY3VtZW50LnNldHRpbmdzKCkucmVxdWVz
dEFuaW1hdGlvbkZyYW1lRW5hYmxlZCgpIH07CisgICAgV29ya2VyUGFyYW1ldGVycyBwYXJhbXMg
PSB7IHNjcmlwdFVSTCwgbmFtZSwgaWRlbnRpZmllciwgdXNlckFnZW50LCBpc09ubGluZSwgY29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3ksIHRpbWVPcmlnaW4sIHJlZmVycmVyUG9saWN5LCB3b3JrZXJU
eXBlLCBjcmVkZW50aWFscywgZG9jdW1lbnQuc2V0dGluZ3MoKS5yZXF1ZXN0QW5pbWF0aW9uRnJh
bWVFbmFibGVkKCkgfTsKICAgICBhdXRvIHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6
Y3JlYXRlKHBhcmFtcywgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAqdGhpcywgc3RhcnRNb2Rl
LCBkb2N1bWVudC50b3BPcmlnaW4oKSwgcHJveHksIHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxh
Z3MpOwogCiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGU3ODEyMjdmZWRi
YWI3ZWUyNWRlY2JjYWIxZjdiOTJjYmE5MTFlMTcuLmM3ZTU2ODk3YTJlYzQwMjg2YWQ5MzMzNTJk
ZjM5YThjZjQ5ZGM5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV29ya2VyTWVzc2FnaW5nUHJveHkg
ZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyTWVzc2FnaW5nUHIKIHBy
aXZhdGU6CiAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNjb3BlUHJveHku
CiAgICAgLy8gKE9ubHkgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgd29ya2VyIG9iamVjdCB0
aHJlYWQuKQotICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlw
dFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBp
c09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwg
SlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29w
ZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25z
dCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
LCBSZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVk
ZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOwogICAgIHZvaWQg
dGVybWluYXRlV29ya2VyR2xvYmFsU2NvcGUoKSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdl
VG9Xb3JrZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSBmaW5hbDsKICAg
ICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDcyMTk2YTA1NzdmMDBjZThhMDI3ZmU1NTZmOTJl
MzE2NGQ2YmUyYjAuLjU2ZTU1ZmFlYjRmZGNlMDYxNDU1NDU3ODczYWZkYzQ3ODIzMWIwOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94
eS5oIgorI2luY2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0LmgiCiAjaW5jbHVkZSAiU2NyaXB0
U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU29j
a2V0UHJvdmlkZXIuaCIKQEAgLTgxLDYgKzgyLDggQEAgV29ya2VyUGFyYW1ldGVycyBXb3JrZXJQ
YXJhbWV0ZXJzOjppc29sYXRlZENvcHkoKSBjb25zdAogICAgICAgICBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksCiAgICAgICAgIHRpbWVPcmlnaW4sCiAgICAgICAg
IHJlZmVycmVyUG9saWN5LAorICAgICAgICB3b3JrZXJUeXBlLAorICAgICAgICBjcmVkZW50aWFs
cywKICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCwKICAgICB9OwogfQpAQCAt
MTkxLDEwICsxOTQsMzMgQEAgdm9pZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAgICAg
ICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5mb3JiaWRFeGVjdXRpb24oKTsKICAgICB9CiAKLSAg
ICBTdHJpbmcgZXhjZXB0aW9uTWVzc2FnZTsKLSAgICBzY3JpcHRDb250cm9sbGVyLT5ldmFsdWF0
ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0
dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25NZXNzYWdlKTsKKyAgICAvLyBX
ZSBhcmUgY3VycmVudGx5IGhvbGRpbmcgb25seSB0aGUgaW5pdGlhbCBzY3JpcHQgY29kZS4gSWYg
dGhlIFdvcmtlclR5cGUgaXMgTW9kdWxlLCB3ZSBzaG91bGQgZmV0Y2ggdGhlIGVudGlyZSBncmFw
aCBiZWZvcmUgZXhlY3V0aW5nIHRoZSByZXN0IG9mIHRoaXMuCisgICAgLy8gV2UgaW52b2tlIG1v
ZHVsZSBsb2FkZXIgYXMgaWYgd2UgYXJlIGV4ZWN1dGluZyBpbmxpbmUgbW9kdWxlIHNjcmlwdCB0
YWcgaW4gRG9jdW1lbnQuCiAKLSAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAgICBT
dHJpbmcgZXhjZXB0aW9uTWVzc2FnZTsKKyAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUo
bV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3Jp
cHRVUkwpKTsKKyAgICBpZiAobV9zdGFydHVwRGF0YS0+cGFyYW1zLndvcmtlclR5cGUgPT0gV29y
a2VyVHlwZTo6Q2xhc3NpYykgeworICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5ldmFsdWF0ZShz
b3VyY2VDb2RlLCAmZXhjZXB0aW9uTWVzc2FnZSk7CisgICAgICAgIGZpbmlzaGVkRXZhbHVhdGlu
Z1NjcmlwdCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEZJWE1FIGNyb3NzT3JpZ2luIG1v
ZGUgc2hvdWxkIGJlIGNvbnZlcnRlZC4KKyAgICAgICAgLy8gRklYTUUgZml4IGluaXRpYXRvciBu
YW1lLgorICAgICAgICAvLyBGSVhNRSBwYXNzIFVSTCB0byBtb2R1bGUgbG9hZGVyLgorICAgICAg
ICBkYXRhTG9nTG4oIldPUktFUiBNT0RVTEUiKTsKKyAgICAgICAgYXV0byBtb2R1bGVTY3JpcHQg
PSBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6Y3JlYXRlKGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5n
KCksIG1fc3RhcnR1cERhdGEtPnBhcmFtcy5yZWZlcnJlclBvbGljeSwgU2NyaXB0RWxlbWVudENh
Y2hlZFNjcmlwdEZldGNoZXI6OmRlZmF1bHRDcm9zc09yaWdpbk1vZGVGb3JNb2R1bGUsIGVtcHR5
U3RyaW5nKCksIGVtcHR5QXRvbSgpLCBmYWxzZSk7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRS
ZXN1bHQgcmVzdWx0ID0gc2NyaXB0Q29udHJvbGxlci0+bG9hZE1vZHVsZVN5bmNocm9ub3VzbHko
bW9kdWxlU2NyaXB0LmdldCgpLCBzb3VyY2VDb2RlKTsKKyAgICAgICAgZGF0YUxvZ0xuKCJXT1JL
RVIgTU9EVUxFIEZFVENIRUQiKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBNZXNzYWdlUXVldWVU
ZXJtaW5hdGVkKSB7CisgICAgICAgICAgICBpZiAoIW1vZHVsZVNjcmlwdC0+ZXJyb3IoKSAmJiAh
bW9kdWxlU2NyaXB0LT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICAgICAgLy8gRXZhbHVh
dGUuCisgICAgICAgICAgICAgICAgc2NyaXB0Q29udHJvbGxlci0+bGlua0FuZEV2YWx1YXRlTW9k
dWxlKG1vZHVsZVNjcmlwdC5nZXQoKSwgc291cmNlQ29kZSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOwor
ICAgICAgICAgICAgICAgIGRhdGFMb2dMbigiV09SS0VSIE1PRFVMRSBFVkFMVUFURUQiKTsKKyAg
ICAgICAgICAgICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUUgVGhyb3cgYW4gZXJyb3IuCisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9CiAKICAgICBjYWxsT25NYWluVGhyZWFkKFtldmFsdWF0
ZUNhbGxiYWNrID0gV1RGTW92ZShtX2V2YWx1YXRlQ2FsbGJhY2spLCBtZXNzYWdlID0gZXhjZXB0
aW9uTWVzc2FnZS5pc29sYXRlZENvcHkoKV0gewogICAgICAgICBpZiAoZXZhbHVhdGVDYWxsYmFj
aykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCmluZGV4IGM2MjVlNDJlZGQxYTI5
NWYxODJlYjgxYjA0YjgwYTVkNzQ1MmQzN2EuLmE4OTIyMzA5YmFhMjQ0MjQ0Y2JjYjRiODJlOGU3
OTU2YzkyYmI0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAtMjYs
NyArMjYsOSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5o
IgogI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8bWVtb3J5
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC02OCw2ICs3MCw4IEBAIHN0cnVjdCBXb3Jr
ZXJQYXJhbWV0ZXJzIHsKICAgICBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeTsKICAgICBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW47CiAgICAgUmVmZXJyZXJQ
b2xpY3kgcmVmZXJyZXJQb2xpY3k7CisgICAgV29ya2VyVHlwZSB3b3JrZXJUeXBlOworICAgIEZl
dGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwogICAgIGJvb2wgcmVxdWVzdEFuaW1h
dGlvbkZyYW1lRW5hYmxlZDsKIAogICAgIFdvcmtlclBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDQ1MjI1YTZlNGYwYmUwOWQz
M2YxYjllNzdkNWFlZDM5MjM1YjRmZTUuLjM3NTM3NTI2OWY5MmUwZTM1ZjM3YTI2ODk1YTBjMjRi
NTllNGVkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC03Miw5ICs3Miw5IEBA
IGNsYXNzIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5IDogcHVibGljIFdvcmtlck9iamVj
dFByb3h5IHsKIC8vIEZJWE1FOiBVc2UgYSB2YWxpZCBXb3JrZXJSZXBvcnRpbmdQcm94eQogLy8g
RklYTUU6IFVzZSBhIHZhbGlkIFdvcmtlck9iamVjdFByb3h5CiAvLyBGSVhNRTogVXNlIHZhbGlk
IHJ1bnRpbWUgZmxhZ3MKLQorLy8gRklYTUU6IFVzZSBhIHZhbGlkIFdvcmtlclR5cGUgYW5kIENy
ZWRlbnRhaWxzIGZvciBtb2R1bGUgc2VydmljZSB3b3JrZXJzLgogU2VydmljZVdvcmtlclRocmVh
ZDo6U2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRh
dGEsIFN0cmluZyYmIHVzZXJBZ2VudCwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBX
b3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlk
ZXIpCi0gICAgOiBXb3JrZXJUaHJlYWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmcoKSwg
InNlcnZpY2V3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJ
ZGVudGlmaWVyKCksIFdURk1vdmUodXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxv
YWRlclN0cmF0ZWd5KCktPmlzT25MaW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5LCBm
YWxzZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHsgfSwgdHJ1ZSB9LCBkYXRhLnNjcmlwdCwgbG9h
ZGVyUHJveHksIGRlYnVnZ2VyUHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpz
aGFyZWQoKSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9u
LmtleS50b3BPcmlnaW4oKS5zZWN1cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJv
eHksIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgp
KQorICAgIDogV29ya2VyVGhyZWFkKHsgZGF0YS5zY3JpcHRVUkwsIGVtcHR5U3RyaW5nKCksICJz
ZXJ2aWNld29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRl
bnRpZmllcigpLCBXVEZNb3ZlKHVzZXJBZ2VudCksIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2Fk
ZXJTdHJhdGVneSgpLT5pc09uTGluZSgpLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZmFs
c2UsIE1vbm90b25pY1RpbWU6Om5vdygpLCB7IH0sIFdvcmtlclR5cGU6OkNsYXNzaWMsIEZldGNo
UmVxdWVzdENyZWRlbnRpYWxzOjpTYW1lT3JpZ2luLCB0cnVlIH0sIGRhdGEuc2NyaXB0LCBsb2Fk
ZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNo
YXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5yZWdpc3RyYXRpb24u
a2V5LnRvcE9yaWdpbigpLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rpb25Qcm94
eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCkp
CiAgICAgLCBtX2RhdGEoZGF0YS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0
UHJveHkoRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpKQogICAgICwgbV9o
ZWFydEJlYXRUaW1lb3V0KFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb24o
KS0+c2hvdWxkVXNlU2hvcnRUaW1lb3V0KCkgPyBoZWFydEJlYXRUaW1lb3V0Rm9yVGVzdCA6IGhl
YXJ0QmVhdFRpbWVvdXQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419557</attachid>
            <date>2021-02-07 23:33:13 -0800</date>
            <delta_ts>2021-02-08 01:52:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210207233312.patch</filename>
            <type>text/plain</type>
            <size>29021</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZlNjA0YWRhNjJiNWRm
MmIzMzA0MTk0ZTc2ZGNkNzNjMzdjN2E3NC4uYmFjYTNkMWVjMWRhZTAzNzE2MGVmNjBlOGY0MjYz
MzhkYjQ0ZTk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTAyLTA3ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBX
b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlw
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZCk6IERl
bGV0ZWQuCisgICAgICAgICogZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0Lmg6CisgICAgICAgICog
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6
cmVxdWVzdE1vZHVsZVNjcmlwdCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyOjpXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5pZGw6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5Lmg6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlU3luY2hyb25vdXNseSk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVh
dGVNb2R1bGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlclBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OmV2YWx1YXRlU2NyaXB0SWZOZWNlc3NhcnkpOgorICAgICAg
ICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKToKKwogMjAyMS0wMi0wNyAgTGF1cm8g
TW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNzIzNzkp
IFtXUEVdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWF0aG1sL3JlbGF0aW9ucy9j
c3Mtc3R5bGluZy9tYXRodmFyaWFudCB0ZXN0cyBhcmUgSW1hZ2UgRmFpbGluZwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKaW5kZXggOWEyNWMxNjU4OGVlY2Fk
Njc4ZmI5MTFlYzg2MjJmNDI0MjU5MmI1YS4uNDhlYzA4NTFhNDU3ZDliYTQ3NDczZmVjMjhkN2I0
OTMxMmI3ODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQu
Y3BwCkBAIC04OCwxNiArODgsNCBAQCB2b2lkIExvYWRhYmxlTW9kdWxlU2NyaXB0OjpleGVjdXRl
KFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiAgICAgc2NyaXB0RWxlbWVudC5leGVjdXRl
TW9kdWxlU2NyaXB0KCp0aGlzKTsKIH0KIAotdm9pZCBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9h
ZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgcm9vdFVSTCkKLXsKLSAgICBpZiAoYXV0
byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9h
ZE1vZHVsZVNjcmlwdCgqdGhpcywgcm9vdFVSTC5zdHJpbmcoKSwgbV9wYXJhbWV0ZXJzLmNvcHlS
ZWYoKSk7Ci19Ci0KLXZvaWQgTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQotewotICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5zY3JpcHQoKS5s
b2FkTW9kdWxlU2NyaXB0KCp0aGlzLCBzb3VyY2VDb2RlKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAppbmRleCBiYjc5OTU0ZDdiOTliMGVkMDZiZmU1
NWVmODU0ZWNjZTIxZjM1ODc3Li5kMjUzNTk2M2Y2NDhiMDJhOGEwMWZkNjNiYjFlMzgxMzg2Y2Vl
NDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaApAQCAtNTAs
MTUgKzUwLDE0IEBAIGNsYXNzIExvYWRhYmxlTW9kdWxlU2NyaXB0IGZpbmFsIDogcHVibGljIExv
YWRhYmxlU2NyaXB0IHsKIAogICAgIHZvaWQgc2V0RXJyb3IoRXJyb3ImJik7CiAKLSAgICB2b2lk
IGxvYWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHJvb3RVUkwpOwotICAgIHZvaWQgbG9hZChEb2N1
bWVudCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKLQogICAgIHZvaWQgbm90aWZ5TG9hZENv
bXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYpOwogICAgIHZvaWQgbm90aWZ5TG9hZEZhaWxlZChM
b2FkYWJsZVNjcmlwdDo6RXJyb3ImJik7CiAgICAgdm9pZCBub3RpZnlMb2FkV2FzQ2FuY2VsZWQo
KTsKIAogICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkoKSBjb25zdCB7IHJldHVybiBt
X21vZHVsZUtleS5nZXQoKTsgfQogCisgICAgTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgTG9h
ZGFibGVNb2R1bGVTY3JpcHQoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBpbnRl
Z3JpdHksIFJlZmVycmVyUG9saWN5LCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSwgY29u
c3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBBdG9tU3RyaW5nJiBpbml0aWF0b3JOYW1lLCBib29s
IGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQu
Y3BwCmluZGV4IDA1NzU4YjYwMGM3NTIyYjQ3ZjM2NGJhNmExOGQzNWYxNzMxMTA3ZjkuLjVlOTlm
MGY1Nzc3YjNiMjE1OGRkMGZhNGJjMzgyNzc2Y2RiMzQ4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJMb2FkYWJsZUNsYXNz
aWNTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZU1vZHVsZVNjcmlwdC5oIgogI2luY2x1ZGUg
Ik1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIK
ICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxlbWVudC5oIgpAQCAtMzUxLDggKzM1Miwx
MSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3JpcHQoY29uc3QgVGV4dFBv
c2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAgc2NyaXB0Q2hhcnNldCgp
LAogICAgICAgICAgICAgbV9lbGVtZW50LmxvY2FsTmFtZSgpLAogICAgICAgICAgICAgbV9lbGVt
ZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOwotICAgICAgICBzY3JpcHQtPmxvYWQobV9l
bGVtZW50LmRvY3VtZW50KCksIG1vZHVsZVNjcmlwdFJvb3RVUkwpOwogICAgICAgICBtX2xvYWRh
YmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBt
X2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKSB7CisgICAgICAgICAgICBhdXRvJiBzY3JpcHQg
PSBkb3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4oKm1fbG9hZGFibGVTY3JpcHQuZ2V0KCkp
OworICAgICAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoc2NyaXB0LCBt
b2R1bGVTY3JpcHRSb290VVJMLnN0cmluZygpLCBtYWtlUmVmKHNjcmlwdC5wYXJhbWV0ZXJzKCkp
KTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM2Nyw4ICsz
NzEsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3JpcHQoY29uc3QgVGV4
dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAgIGlmICghY29udGVudFNlY3VyaXR5
UG9saWN5LmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLnN0cmlu
ZygpLCBtX3N0YXJ0TGluZU51bWJlciwgc291cmNlQ29kZS5zb3VyY2UoKS50b1N0cmluZ1dpdGhv
dXRDb3B5aW5nKCksIGhhc0tub3duTm9uY2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIHNvdXJjZUNvZGUpOwogICAgIG1f
bG9hZGFibGVTY3JpcHQgPSBXVEZNb3ZlKHNjcmlwdCk7CisgICAgaWYgKGF1dG8qIGZyYW1lID0g
bV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxv
YWRNb2R1bGVTY3JpcHQoZG93bmNhc3Q8TG9hZGFibGVNb2R1bGVTY3JpcHQ+KCptX2xvYWRhYmxl
U2NyaXB0LmdldCgpKSwgc291cmNlQ29kZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCA2MmY5MTdhMzY3ODE5ZGVjM2NkNDEwZDk3NjY5NWNl
ZTYyZjZkNGI5Li43YzIyNDlhM2EyYWY5NTE4MjNhZTc5OTVlYzEzNzFhZGZiYjE0YWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC03MCw2ICs3MCw4IEBAIGlubGluZSBXb3JrZXI6
OldvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OlJ1bnRpbWVGbGFn
cyBydW50aW1lCiAgICAgLCBtX2lkZW50aWZpZXIoIndvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVu
dGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSkKICAgICAsIG1fY29udGV4dFByb3h5
KFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX3J1bnRpbWVG
bGFncyhydW50aW1lRmxhZ3MpCisgICAgLCBtX3R5cGUob3B0aW9ucy50eXBlKQorICAgICwgbV9j
cmVkZW50aWFscyhvcHRpb25zLmNyZWRlbnRpYWxzKQogewogICAgIHN0YXRpYyBib29sIGFkZGVk
TGlzdGVuZXI7CiAgICAgaWYgKCFhZGRlZExpc3RlbmVyKSB7CkBAIC0xMTMsMTAgKzExNSwxMyBA
QCBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gV29ya2VyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgSlNDOjpSdQogCiAgICAgRmV0Y2hPcHRpb25zIGZldGNoT3B0aW9u
czsKICAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdp
bjsKKyAgICBpZiAod29ya2VyLT5tX3R5cGUgPT0gV29ya2VyVHlwZTo6TW9kdWxlKQorICAgICAg
ICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSB3b3JrZXItPm1fY3JlZGVudGlhbHM7CiAgICAg
ZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKICAgICBm
ZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CiAg
ICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6
V29ya2VyOwotICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShj
b250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgd29ya2Vy
KTsKKyAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4
dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsIHdvcmtlci5nZXQo
KSk7CisKICAgICByZXR1cm4gd29ya2VyOwogfQogCkBAIC0yMTUsNyArMjIwLDcgQEAgdm9pZCBX
b3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGlj
eSA9IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZzsKICAgICBpZiAoYXV0byBwb2xpY3kgPSBw
YXJzZVJlZmVycmVyUG9saWN5KG1fc2NyaXB0TG9hZGVyLT5yZWZlcnJlclBvbGljeSgpLCBSZWZl
cnJlclBvbGljeVNvdXJjZTo6SFRUUEhlYWRlcikpCiAgICAgICAgIHJlZmVycmVyUG9saWN5ID0g
KnBvbGljeTsKLSAgICBtX2NvbnRleHRQcm94eS5zdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2Ny
aXB0TG9hZGVyLT51cmwoKSwgbV9uYW1lLCBjb250ZXh0LT51c2VyQWdlbnQobV9zY3JpcHRMb2Fk
ZXItPnVybCgpKSwgaXNPbmxpbmUsIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgY29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgbV93b3JrZXJDcmVhdGlvblRpbWUsIHJlZmVycmVyUG9saWN5LCBt
X3J1bnRpbWVGbGFncyk7CisgICAgbV9jb250ZXh0UHJveHkuc3RhcnRXb3JrZXJHbG9iYWxTY29w
ZShtX3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwgY29udGV4dC0+dXNlckFnZW50KG1fc2Ny
aXB0TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCksIGNv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9zaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2VyQ3JlYXRpb25UaW1lLCByZWZlcnJlclBv
bGljeSwgbV90eXBlLCBtX2NyZWRlbnRpYWxzLCBtX3J1bnRpbWVGbGFncyk7CiAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2Fk
ZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyLmgKaW5kZXggNTNmNWU2ZmZmMjdjOWZhM2U1YzBlMDFmMGY2YzQyYzZjYjZm
OWQwZS4uMzhhNjIzYTk4ZGJhMzVmZjgwMTNjZDZmYzhjODVjODEwMjA1MDIxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlci5oCkBAIC0yOSw5ICsyOSwxMSBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9i
amVjdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5o
IgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVu
dGlhbHMuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIlBvc3RNZXNzYWdl
T3B0aW9ucy5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1
ZGUgIldvcmtlclR5cGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3Mu
aD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25h
bC5oPgpAQCAtNTUsNiArNTcsOCBAQCBjbGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJh
Y3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV29yawogICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoV29ya2VyKTsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgT3B0aW9ucyB7
CisgICAgICAgIFdvcmtlclR5cGUgdHlwZTsKKyAgICAgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlh
bHMgY3JlZGVudGlhbHM7CiAgICAgICAgIFN0cmluZyBuYW1lOwogICAgIH07CiAgICAgc3RhdGlj
IEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IEpTQzo6UnVudGltZUZsYWdzLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgT3B0aW9ucyYpOwpA
QCAtNzksNiArODMsOCBAQCBjbGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3Jr
ZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV29yawogICAgIHZvaWQgcG9zdFRh
c2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpPiYmKTsKICNlbmRpZgogCisgICAgV29ya2VyVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3QgT3B0aW9ucyYpOwogCkBAIC0xMTIs
NiArMTE4LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3RyYWN0V29ya2VyLCBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICNpZiBFTkFCTEUoV0VCX1JUQykK
ICAgICBIYXNoU2V0PFN0cmluZz4gbV90cmFuc2Zvcm1lcnM7CiAjZW5kaWYKKyAgICBXb3JrZXJU
eXBlIG1fdHlwZSB7IFdvcmtlclR5cGU6OkNsYXNzaWMgfTsKKyAgICBGZXRjaFJlcXVlc3RDcmVk
ZW50aWFscyBtX2NyZWRlbnRpYWxzIHsgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmln
aW4gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmlkbAppbmRleCA0NWQ2YTA4Njc4NTRlZTQwNGRlN2U3ZDAxMjQ4Y2ViZjQ0ZGNhN2VkLi43MDIx
Nzk2ZGY1MDRhZGY4ZTZiOTU4OWFjZTlmMTQ0ODIxZjI5NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXIuaWRsCkBAIC0zOCw2ICszOCw4IEBACiB9OwogCiBkaWN0aW9uYXJ5IFdvcmtlck9wdGlv
bnMgeworICAgIFdvcmtlclR5cGUgdHlwZSA9ICJjbGFzc2ljIjsKKyAgICBGZXRjaFJlcXVlc3RD
cmVkZW50aWFscyBjcmVkZW50aWFscyA9ICJzYW1lLW9yaWdpbiI7IC8vIGNyZWRlbnRpYWxzIGlz
IG9ubHkgdXNlZCBpZiB0eXBlIGlzICJtb2R1bGUiCiAgICAgRE9NU3RyaW5nIG5hbWUgPSAiIjsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5
LmgKaW5kZXggNDAwMDNjM2UwMTA5OTk2MGY2NDc4NjFlNzAxNjg3ZDBlMzcxZDcyZC4uN2I5MWQ3
NTNkMWM5ZDcyOWFlNTA4NjU0YzJlODVmNzY3OTFlMDA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xh
c3MgV29ya2VyR2xvYmFsU2NvcGVQcm94eSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdvcmtlckds
b2JhbFNjb3BlUHJveHkmIGNyZWF0ZShXb3JrZXImKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFy
dFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcm
IHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYs
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9u
aWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBKU0M6OlJ1bnRpbWVGbGFncykgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29s
IGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5
LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRp
YWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVX
b3JrZXJHbG9iYWxTY29wZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dv
cmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpPiYmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDE5ZDRiZTY0OTkyZjMwZDNjY2U3NjU0N2Ez
ZDIyMThhOThjODQyYzMuLjc4ODM1ODdhN2FmNjIwOWUzZWNjOGU3YjQxYmFkNDdhZGY2MjI0MGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3Bw
CkBAIC03Myw3ICs3Myw3IEBAIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5n
UHJveHkoKQogICAgICAgICB8fCAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpICYmIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KS50aHJlYWQoKS50aHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpKTsK
IH0KIAotdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShj
b25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJy
ZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncykKK3ZvaWQgV29ya2VyTWVz
c2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkws
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxp
bmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJv
b2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNU
aW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBl
IHdvcmtlclR5cGUsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1
bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZCB0byBi
ZSByZXZpc2l0ZWQgd2hlbiB3ZSBzdXBwb3J0IG5lc3RlZCB3b3JrZXIgb25lIGRheQogICAgIEFT
U0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwpAQCAtODksNyArODksNyBAQCB2b2lkIFdv
cmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdAogCiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyID0g
ZG9jdW1lbnQuc29ja2V0UHJvdmlkZXIoKTsKIAotICAgIFdvcmtlclBhcmFtZXRlcnMgcGFyYW1z
ID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3JpZ2luLCByZWZlcnJlclBvbGljeSwgZG9jdW1l
bnQuc2V0dGluZ3NWYWx1ZXMoKSB9OworICAgIFdvcmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBz
Y3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCB0aW1lT3JpZ2luLCByZWZlcnJlclBvbGljeSwgd29ya2VyVHlwZSwg
Y3JlZGVudGlhbHMsIGRvY3VtZW50LnNldHRpbmdzVmFsdWVzKCkgfTsKICAgICBhdXRvIHRocmVh
ZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHBhcmFtcywgc291cmNlQ29kZSwgKnRo
aXMsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBkb2N1bWVudC50b3BPcmlnaW4oKSwgcHJveHks
IHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxhZ3MpOwogCiAgICAgd29ya2VyVGhyZWFkQ3JlYXRl
ZCh0aHJlYWQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5oCmluZGV4IGM1YjU3NWI5ZTYxNWIzZjNmNTk2YmZjM2RmNjgzYzg3N2NjNjJiYWIu
LjJlMjMxNjlmMDc5M2YwZGNmODA4YTliY2ZiNThlNmM5MDhjNmNjOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTUwLDcgKzUwLDcgQEAg
Y2xhc3MgV29ya2VyTWVzc2FnaW5nUHJveHkgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8V29ya2VyTWVzc2FnaW5nUHIKIHByaXZhdGU6CiAgICAgLy8gSW1wbGVtZW50YXRpb25z
IG9mIFdvcmtlckdsb2JhbFNjb3BlUHJveHkuCiAgICAgLy8gKE9ubHkgdXNlIHRoZXNlIGZ1bmN0
aW9ucyBpbiB0aGUgd29ya2VyIG9iamVjdCB0aHJlYWQuKQotICAgIHZvaWQgc3RhcnRXb3JrZXJH
bG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0
aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgSlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOworICAg
IHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB3
b3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpSdW50
aW1lRmxhZ3MpIGZpbmFsOwogICAgIHZvaWQgdGVybWluYXRlV29ya2VyR2xvYmFsU2NvcGUoKSBm
aW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cyYmKSBmaW5hbDsKICAgICB2b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxT
Y29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4mJikgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmNwcAppbmRleCBjZDRlYzI0NjgyNTI1YWFiYzY0MmQ4NzdhMGRhMDExZWJk
ZTExNDMxLi44YzUxNTE4ZTdiMjNkOTEzNTJiNzdmMmFkZDg3MjVlN2U2Njg1OTc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5jcHAKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNsdWRlICJKU0V4ZWNTdGF0ZS5o
IgogI2luY2x1ZGUgIkpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0
LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2NyaXB0
U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRl
ICJXb3JrZXJDb25zb2xlQ2xpZW50LmgiCkBAIC0yMjgsNyArMjMwLDExNiBAQCB2b2lkIFdvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmIHNvdXJjZUNvZAogICAgIH0KIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgSlNHbG9iYWxTY29w
ZVByb3RvdHlwZSwgdHlwZW5hbWUgSlNHbG9iYWxTY29wZSwgdHlwZW5hbWUgR2xvYmFsU2NvcGU+
CitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6
OmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KExvYWRhYmxlTW9kdWxlU2NyaXB0JiBtb2R1bGVTY3Jp
cHQsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgaWYgKGlzRXhl
Y3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAgIHJldHVybiBNZXNzYWdlUXVldWVUZXJtaW5hdGVk
OworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBsZXhpY2FsR2xvYmFs
T2JqZWN0ID0gKm1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9
IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07
CisKKyAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVjU3RhdGU6OmxvYWRNb2R1bGUobGV4aWNhbEds
b2JhbE9iamVjdCwgc291cmNlQ29kZS5qc1NvdXJjZUNvZGUoKSwgSlNDOjpKU1NjcmlwdEZldGNo
ZXI6OmNyZWF0ZSh2bSwgeyAmbW9kdWxlU2NyaXB0IH0pKTsKKworICAgIFJlZlB0cjxMb2FkYWJs
ZU1vZHVsZVNjcmlwdD4gbW9kdWxlU2NyaXB0UmVmKCZtb2R1bGVTY3JpcHQpOworCisgICAgYXV0
byYgZnVsZmlsbEhhbmRsZXIgPSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmbGV4
aWNhbEdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFttb2R1bGVTY3JpcHRSZWZdKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSAtPiBKU0M6OkVuY29k
ZWRKU1ZhbHVlIHsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAg
ICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICAgICAg
ICAgIElkZW50aWZpZXIgbW9kdWxlS2V5ID0ganNWYWx1ZVRvTW9kdWxlS2V5KGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOworICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2Fk
Q29tcGxldGVkKCptb2R1bGVLZXkuaW1wbCgpKTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICB9KTsKKworICAgIGF1dG8mIHJl
amVjdEhhbmRsZXIgPSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmbGV4aWNhbEds
b2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFttb2R1bGVTY3JpcHRSZWZdKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSB7CisgICAgICAgICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAgICAgICBKU1ZhbHVlIGVycm9yVmFsdWUg
PSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOworICAgICAgICAgICAgaWYgKGVycm9yVmFsdWUuaXNP
YmplY3QoKSkgeworICAgICAgICAgICAgYXV0byogb2JqZWN0ID0gSlNDOjphc09iamVjdChlcnJv
clZhbHVlKTsKKyAgICAgICAgICAgIGlmIChKU1ZhbHVlIGZhaWx1cmVLaW5kVmFsdWUgPSBvYmpl
Y3QtPmdldERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEmPigqdm0uY2xpZW50
RGF0YSkuYnVpbHRpbk5hbWVzKCkuZmFpbHVyZUtpbmRQcml2YXRlTmFtZSgpKSkgeworICAgICAg
ICAgICAgLy8gVGhpcyBpcyBob3N0IHByb3BhZ2F0ZWQgZXJyb3IgaW4gdGhlIG1vZHVsZSBsb2Fk
ZXIgcGlwZWxpbmUuCisgICAgICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PE1vZHVsZUZldGNo
RmFpbHVyZUtpbmQ+KGZhaWx1cmVLaW5kVmFsdWUuYXNJbnQzMigpKSkgeworICAgICAgICAgICAg
Y2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkOgorICAgICAgICAgICAgbW9k
dWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7Cisg
ICAgICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpFcnJvclR5cGU6OkNhY2hlZFNjcmlw
dCwKKyAgICAgICAgICAgICAgICAgICAgV1RGOjpudWxsb3B0CisgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE1vZHVsZUZldGNoRmFp
bHVyZUtpbmQ6Oldhc0NhbmNlbGVkOgorICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3Rp
ZnlMb2FkV2FzQ2FuY2VsZWQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlM
b2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgICAgIExv
YWRhYmxlU2NyaXB0OjpFcnJvclR5cGU6OkNhY2hlZFNjcmlwdCwKKyAgICAgICAgICAgICAgICAg
ICAgTG9hZGFibGVTY3JpcHQ6OkNvbnNvbGVNZXNzYWdlIHsKKyAgICAgICAgICAgICAgICAgICAg
TWVzc2FnZVNvdXJjZTo6SlMsCisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VMZXZlbDo6RXJy
b3IsCisgICAgICAgICAgICAgICAgICAgIHJldHJpZXZlRXJyb3JNZXNzYWdlKCpnbG9iYWxPYmpl
Y3QsIHZtLCBlcnJvclZhbHVlLCBzY29wZSksCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgcHJvbWlzZS50aGVuKCZsZXhpY2FsR2xvYmFs
T2JqZWN0LCAmZnVsZmlsbEhhbmRsZXIsICZyZWplY3RIYW5kbGVyKTsKKworICAgIC8vIERyaXZl
IFJ1bkxvb3AgdW50aWwgd2UgZ2V0IGVpdGhlciBvZiAiV29ya2VyIGlzIHRlcm1pbmF0ZWQiLCAi
TG9hZGluZyBpcyBkb25lIiwgb3IgIkxvYWRpbmcgaXMgZmFpbGVkIi4KKyAgICBXb3JrZXJSdW5M
b29wJiBydW5Mb29wID0gbV93b3JrZXJHbG9iYWxTY29wZS0+dGhyZWFkKCkucnVuTG9vcCgpOwor
ICAgIFN0cmluZyBtb2RlID0gbWFrZVN0cmluZygibG9hZE1vZHVsZVN5bmNocm9ub3VzbHkiLCBy
dW5Mb29wLmNyZWF0ZVVuaXF1ZUlkKCkpOworCisgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBy
ZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQ7CisgICAgd2hpbGUgKCghbW9kdWxl
U2NyaXB0UmVmLT5pc0xvYWRlZCgpIHx8ICFtb2R1bGVTY3JpcHRSZWYtPndhc0NhbmNlbGVkKCkp
ICYmIHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKQorICAgICAgICByZXN1bHQgPSBy
dW5Mb29wLnJ1bkluTW9kZShtX3dvcmtlckdsb2JhbFNjb3BlLCBtb2RlKTsKKworICAgIC8vIEZJ
WE1FOiBDdXJyZW50bHkgd2UgYXJlIG5vdCBvZmZlcmluZyBjYW5jZWxsaW5nLgorICAgIC8vIGlm
ICghbG9hZGVyLT5kb25lKCkgJiYgcmVzdWx0ID09IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpCisg
ICAgLy8gICAgIGxvYWRlci0+Y2FuY2VsKCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2
b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVs
ZShMb2FkYWJsZU1vZHVsZVNjcmlwdCYgbW9kdWxlU2NyaXB0LCBjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJiBzb3VyY2VDb2RlLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSkKK3sKKyAg
ICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5p
dFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gKm1f
d29ya2VyR2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGxleGljYWxHbG9i
YWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisKKyAgICBOYWtl
ZFB0cjxKU0M6OkV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247CisgICAgSlNFeGVjU3RhdGU6
OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpm
cm9tVWlkKHZtLCBtb2R1bGVTY3JpcHQubW9kdWxlS2V5KCkpLCBqc1VuZGVmaW5lZCgpLCByZXR1
cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKChyZXR1cm5lZEV4Y2VwdGlvbiAmJiBpc1Rlcm1pbmF0
ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVybmVkRXhjZXB0aW9uKSkgfHwgaXNUZXJtaW5h
dGluZ0V4ZWN1dGlvbigpKSB7CisgICAgICAgIGZvcmJpZEV4ZWN1dGlvbigpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CisgICAgICAgIGlm
IChtX3dvcmtlckdsb2JhbFNjb3BlLT5jYW5JbmNsdWRlRXJyb3JEZXRhaWxzKHNvdXJjZUNvZGUu
Y2FjaGVkU2NyaXB0KCksIHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCkpKSB7CisgICAgICAgICAg
ICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBydW4gYXJiaXRyYXJ5IGNv
ZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlvbi4KKyAgICAgICAgICAg
IC8vIERvIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgdG8gaGFuZGxlIHRoYXQgcHJvcGVybHksIGlm
IGl0LCBzYXksIHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlvbj8KKyAgICAgICAgICAgIGlmIChyZXR1
cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKnJldHVybmVkRXhjZXB0aW9u
TWVzc2FnZSA9IHJldHVybmVkRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3RyaW5nKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIE92ZXJ3cml0
ZSB0aGUgZGV0YWlsZWQgZXJyb3Igd2l0aCBhIGdlbmVyaWMgZXJyb3IuCisgICAgICAgICAgICBT
dHJpbmcgZ2VuZXJpY0Vycm9yTWVzc2FnZSB7ICJTY3JpcHQgZXJyb3IuIl9zIH07CisgICAgICAg
ICAgICBpZiAocmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlKQorICAgICAgICAgICAgICAgICpyZXR1
cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBnZW5lcmljRXJyb3JNZXNzYWdlOworICAgICAgICAgICAg
cmV0dXJuZWRFeGNlcHRpb24gPSBKU0M6OkV4Y2VwdGlvbjo6Y3JlYXRlKHZtLCBjcmVhdGVFcnJv
cigmbGV4aWNhbEdsb2JhbE9iamVjdCwgZ2VuZXJpY0Vycm9yTWVzc2FnZSkpOworICAgICAgICB9
CisgICAgfQorfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSlNHbG9iYWxTY29wZVByb3RvdHlw
ZSwgdHlwZW5hbWUgSlNHbG9iYWxTY29wZSwgdHlwZW5hbWUgR2xvYmFsU2NvcGU+CiB2b2lkIFdv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHRXaXRoU3ViY2xhc3MoKQog
ewogICAgIEFTU0VSVCghbV9nbG9iYWxTY29wZVdyYXBwZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAppbmRl
eCBjNDkzMDFhZWQzZGQwODlkYTc5NzMyNzYwY2FmMmY3YjY0ZGIxMWI2Li5mZjFhODlhMjNkZjVm
MWIwOTBiNjg4Yjk1MDAwMmQ0NTJmY2VlMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0
Zi9NZXNzYWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvTmFrZWRQdHIuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CkBAIC00NCw2ICs0NSw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2NsYXNzIExvYWRhYmxlTW9k
dWxlU2NyaXB0OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIGNsYXNzIFdvcmtlckNvbnNvbGVD
bGllbnQ7CiBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTsKQEAgLTk0LDYgKzk2LDkg
QEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgdm9pZCBldmFs
dWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1l
c3NhZ2UgPSBudWxscHRyKTsKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmLCBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0aW9uLCBTdHJpbmcq
IHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwogCisgICAgdm9pZCBsaW5rQW5k
RXZhbHVhdGVNb2R1bGUoTG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJiBzb3VyY2VDb2RlLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxw
dHIpOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgbG9hZE1vZHVsZVN5bmNocm9ub3VzbHko
TG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisKIHByb3Rl
Y3RlZDoKICAgICBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogZ2xvYmFsU2NvcGUoKSBjb25z
dCB7IHJldHVybiBtX2dsb2JhbFNjb3BlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmNwcAppbmRleCA3Mjc5MGEwMzMyMjYxOWU2ZWU3ZTYxNmE4YmRlMThiZDU1MmE1Nzgz
Li45ZTFkMjgxM2EyOThmNzMzNzlmOTA0ZjkwZThmYzhlZmM4ZTcwMmM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAi
V29ya2VyVGhyZWFkLmgiCiAKICNpbmNsdWRlICJJREJDb25uZWN0aW9uUHJveHkuaCIKKyNpbmNs
dWRlICJMb2FkYWJsZU1vZHVsZVNjcmlwdC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNvY2tldFByb3ZpZGVy
LmgiCkBAIC01NSw2ICs1Niw4IEBAIFdvcmtlclBhcmFtZXRlcnMgV29ya2VyUGFyYW1ldGVyczo6
aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICAgICAgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LAogICAgICAgICB0aW1lT3JpZ2luLAogICAgICAgICByZWZlcnJlclBv
bGljeSwKKyAgICAgICAgd29ya2VyVHlwZSwKKyAgICAgICAgY3JlZGVudGlhbHMsCiAgICAgICAg
IHNldHRpbmdzVmFsdWVzLmlzb2xhdGVkQ29weSgpCiAgICAgfTsKIH0KQEAgLTEyMyw5ICsxMjYs
MzIgQEAgYm9vbCBXb3JrZXJUaHJlYWQ6OnNob3VsZFdhaXRGb3JXZWJJbnNwZWN0b3JPblN0YXJ0
dXAoKSBjb25zdAogCiB2b2lkIFdvcmtlclRocmVhZDo6ZXZhbHVhdGVTY3JpcHRJZk5lY2Vzc2Fy
eShTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpCiB7Ci0gICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0
KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwg
VVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3NhZ2Up
OwotCi0gICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgLy8gV2UgYXJlIGN1cnJl
bnRseSBob2xkaW5nIG9ubHkgdGhlIGluaXRpYWwgc2NyaXB0IGNvZGUuIElmIHRoZSBXb3JrZXJU
eXBlIGlzIE1vZHVsZSwgd2Ugc2hvdWxkIGZldGNoIHRoZSBlbnRpcmUgZ3JhcGggYmVmb3JlIGV4
ZWN1dGluZyB0aGUgcmVzdCBvZiB0aGlzLgorICAgIC8vIFdlIGludm9rZSBtb2R1bGUgbG9hZGVy
IGFzIGlmIHdlIGFyZSBleGVjdXRpbmcgaW5saW5lIG1vZHVsZSBzY3JpcHQgdGFnIGluIERvY3Vt
ZW50LgorCisgICAgaWYgKG1fc3RhcnR1cERhdGEtPnBhcmFtcy53b3JrZXJUeXBlID09IFdvcmtl
clR5cGU6OkNsYXNzaWMpIHsKKyAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmV2YWx1
YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwgVVJMKG1fc3Rh
cnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOworICAgICAg
ICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBG
SVhNRSBjcm9zc09yaWdpbiBtb2RlIHNob3VsZCBiZSBjb252ZXJ0ZWQuCisgICAgICAgIC8vIEZJ
WE1FIGZpeCBpbml0aWF0b3IgbmFtZS4KKyAgICAgICAgLy8gRklYTUUgcGFzcyBVUkwgdG8gbW9k
dWxlIGxvYWRlci4KKyAgICAgICAgZGF0YUxvZ0xuKCJXT1JLRVIgTU9EVUxFIik7CisgICAgICAg
IFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBV
UkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNjcmlwdFVSTCkpOworICAgICAgICBhdXRvIG1vZHVs
ZVNjcmlwdCA9IExvYWRhYmxlTW9kdWxlU2NyaXB0OjpjcmVhdGUoZW1wdHlTdHJpbmcoKSwgZW1w
dHlTdHJpbmcoKSwgbV9zdGFydHVwRGF0YS0+cGFyYW1zLnJlZmVycmVyUG9saWN5LCBTY3JpcHRF
bGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6ZGVmYXVsdENyb3NzT3JpZ2luTW9kZUZvck1vZHVs
ZSwgZW1wdHlTdHJpbmcoKSwgZW1wdHlBdG9tKCksIGZhbHNlKTsKKyAgICAgICAgTWVzc2FnZVF1
ZXVlV2FpdFJlc3VsdCByZXN1bHQgPSBzY3JpcHRDb250cm9sbGVyLT5sb2FkTW9kdWxlU3luY2hy
b25vdXNseShtb2R1bGVTY3JpcHQuZ2V0KCksIHNvdXJjZUNvZGUpOworICAgICAgICBkYXRhTG9n
TG4oIldPUktFUiBNT0RVTEUgRkVUQ0hFRCIpOworICAgICAgICBpZiAocmVzdWx0ICE9IE1lc3Nh
Z2VRdWV1ZVRlcm1pbmF0ZWQpIHsKKyAgICAgICAgICAgIGlmICghbW9kdWxlU2NyaXB0LT5lcnJv
cigpICYmICFtb2R1bGVTY3JpcHQtPndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAgICAgICAv
LyBFdmFsdWF0ZS4KKyAgICAgICAgICAgICAgICBzY3JpcHRDb250cm9sbGVyLT5saW5rQW5kRXZh
bHVhdGVNb2R1bGUobW9kdWxlU2NyaXB0LmdldCgpLCBzb3VyY2VDb2RlLCAmZXhjZXB0aW9uTWVz
c2FnZSk7CisgICAgICAgICAgICAgICAgZGF0YUxvZ0xuKCJXT1JLRVIgTU9EVUxFIEVWQUxVQVRF
RCIpOworICAgICAgICAgICAgICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRSBUaHJvdyBhbiBlcnJvci4K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIAogICAgIC8vIEZyZWUgdGhlIHN0YXJ0
dXAgZGF0YSB0byBjYXVzZSBpdHMgbWVtYmVyIHZhcmlhYmxlIGRlcmVmJ3MgaGFwcGVuIG9uIHRo
ZSB3b3JrZXIncyB0aHJlYWQgKHNpbmNlCiAgICAgLy8gYWxsIHJlZi9kZXJlZnMgb2YgdGhlc2Ug
b2JqZWN0cyBhcmUgaGFwcGVuaW5nIG9uIHRoZSB0aHJlYWQgYXQgdGhpcyBwb2ludCkuIE5vdGUg
dGhhdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKaW5kZXggODg5MDc5MDhlN2E5
YjgwOWU4ZjJhNGU0NzNkNzUyZDExZDI5MzdjMC4uOTUxMmVmZGIxOGYzMmE1MGVjYjdmYjU2OTU5
ZDYxZTg4NzJmYTFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJU
aHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC0y
Niw3ICsyNiwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFs
cy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtl
clJ1bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9V
UkwuaD4KQEAgLTYzLDYgKzY2LDggQEAgc3RydWN0IFdvcmtlclBhcmFtZXRlcnMgewogICAgIGJv
b2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OwogICAgIE1vbm90
b25pY1RpbWUgdGltZU9yaWdpbjsKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeTsK
KyAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7CisgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMg
Y3JlZGVudGlhbHM7CiAgICAgU2V0dGluZ3M6OlZhbHVlcyBzZXR0aW5nc1ZhbHVlczsKIAogICAg
IFdvcmtlclBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwCmluZGV4IGM4YTdhOTk3MmY5Y2M4YzE2YTc5Njc1MTE1NTJmNTQ5M2E2ODZmOTgu
LjMzY2EwZWMyM2I1OGE1NTExODc2ODQ2YmEwNzE4MzUzMmI1YzQ3ZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwCkBAIC03Myw4ICs3Myw5IEBAIGNsYXNzIER1bW15U2VydmljZVdvcmtl
clRocmVhZFByb3h5IDogcHVibGljIFdvcmtlck9iamVjdFByb3h5IHsKIC8vIEZJWE1FOiBVc2Ug
YSB2YWxpZCBXb3JrZXJPYmplY3RQcm94eQogLy8gRklYTUU6IFVzZSB2YWxpZCBydW50aW1lIGZs
YWdzCiAKKy8vIEZJWE1FOiBVc2UgYSB2YWxpZCBXb3JrZXJUeXBlIGFuZCBDcmVkZW50YWlscyBm
b3IgbW9kdWxlIHNlcnZpY2Ugd29ya2Vycy4KIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VX
b3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBTdHJpbmcm
JiB1c2VyQWdlbnQsIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzLCBXb3Jr
ZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2Vy
UHJveHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHks
IFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcikKLSAgICA6IFdvcmtlclRocmVhZCh7IGRh
dGEuc2NyaXB0VVJMLCBlbXB0eVN0cmluZygpLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9y
OjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdl
bnQpLCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwg
ZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
eyB9LCBzZXR0aW5nc1ZhbHVlcyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRlYnVnZ2Vy
UHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29ya2VyVGhy
ZWFkU3RhcnRNb2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5z
ZWN1cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVy
LCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQorICAgIDogV29ya2VyVGhy
ZWFkKHsgZGF0YS5zY3JpcHRVUkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJ
bnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3Zl
KHVzZXJBZ2VudCksIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09u
TGluZSgpLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6
Om5vdygpLCB7IH0sIFdvcmtlclR5cGU6OkNsYXNzaWMsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxz
OjpTYW1lT3JpZ2luLCBzZXR0aW5nc1ZhbHVlcyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHks
IGRlYnVnZ2VyUHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwg
V29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BP
cmlnaW4oKS5zZWN1cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tl
dFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQogICAgICwg
bV9kYXRhKGRhdGEuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1
bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSkKICAgICAsIG1faGVhcnRCZWF0
VGltZW91dChTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCktPnNob3Vs
ZFVzZVNob3J0VGltZW91dCgpID8gaGVhcnRCZWF0VGltZW91dEZvclRlc3QgOiBoZWFydEJlYXRU
aW1lb3V0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419562</attachid>
            <date>2021-02-08 01:26:54 -0800</date>
            <delta_ts>2021-02-08 02:05:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210208012653.patch</filename>
            <type>text/plain</type>
            <size>29002</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZlNjA0YWRhNjJiNWRm
MmIzMzA0MTk0ZTc2ZGNkNzNjMzdjN2E3NC4uYTk1ZWM4YWE0YWFjOThjNjAyODE4MDk4YzkxZDgx
Njc3ZmRjMjI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTAyLTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBX
b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJs
ZU1vZHVsZVNjcmlwdDo6bG9hZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0xvYWRhYmxlTW9k
dWxlU2NyaXB0Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVsZVNjcmlwdCk6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpXb3JrZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuaDoKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlci5pZGw6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZVByb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9i
YWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxl
U3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRTY3JpcHRD
b250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclBhcmFtZXRlcnM6Omlzb2xhdGVk
Q29weSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OmV2YWx1YXRlU2Ny
aXB0SWZOZWNlc3NhcnkpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFk
KToKKwogMjAyMS0wMi0wNyAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OKHIyNzIzNzkpIFtXUEVdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvbWF0aG1sL3JlbGF0aW9ucy9jc3Mtc3R5bGluZy9tYXRodmFyaWFudCB0ZXN0cyBhcmUg
SW1hZ2UgRmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9k
dWxlU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5j
cHAKaW5kZXggOWEyNWMxNjU4OGVlY2FkNjc4ZmI5MTFlYzg2MjJmNDI0MjU5MmI1YS4uNDhlYzA4
NTFhNDU3ZDliYTQ3NDczZmVjMjhkN2I0OTMxMmI3ODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCkBAIC04OCwxNiArODgsNCBAQCB2b2lkIExvYWRh
YmxlTW9kdWxlU2NyaXB0OjpleGVjdXRlKFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiAg
ICAgc2NyaXB0RWxlbWVudC5leGVjdXRlTW9kdWxlU2NyaXB0KCp0aGlzKTsKIH0KIAotdm9pZCBM
b2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYg
cm9vdFVSTCkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAg
ICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgcm9vdFVSTC5zdHJp
bmcoKSwgbV9wYXJhbWV0ZXJzLmNvcHlSZWYoKSk7Ci19Ci0KLXZvaWQgTG9hZGFibGVNb2R1bGVT
Y3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBz
b3VyY2VDb2RlKQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0g
ICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KCp0aGlzLCBzb3VyY2VDb2Rl
KTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAppbmRl
eCBiYjc5OTU0ZDdiOTliMGVkMDZiZmU1NWVmODU0ZWNjZTIxZjM1ODc3Li5kMjUzNTk2M2Y2NDhi
MDJhOGEwMWZkNjNiYjFlMzgxMzg2Y2VlNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFi
bGVNb2R1bGVTY3JpcHQuaApAQCAtNTAsMTUgKzUwLDE0IEBAIGNsYXNzIExvYWRhYmxlTW9kdWxl
U2NyaXB0IGZpbmFsIDogcHVibGljIExvYWRhYmxlU2NyaXB0IHsKIAogICAgIHZvaWQgc2V0RXJy
b3IoRXJyb3ImJik7CiAKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHJvb3RV
UkwpOwotICAgIHZvaWQgbG9hZChEb2N1bWVudCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsK
LQogICAgIHZvaWQgbm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYpOwogICAg
IHZvaWQgbm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3ImJik7CiAgICAgdm9p
ZCBub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKIAogICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1
bGVLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQogCisgICAgTW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgp
OyB9CisKIHByaXZhdGU6CiAgICAgTG9hZGFibGVNb2R1bGVTY3JpcHQoY29uc3QgU3RyaW5nJiBu
b25jZSwgY29uc3QgU3RyaW5nJiBpbnRlZ3JpdHksIFJlZmVycmVyUG9saWN5LCBjb25zdCBTdHJp
bmcmIGNyb3NzT3JpZ2luTW9kZSwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBBdG9tU3Ry
aW5nJiBpbml0aWF0b3JOYW1lLCBib29sIGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDA1NzU4YjYwMGM3NTIyYjQ3ZjM2NGJh
NmExOGQzNWYxNzMxMTA3ZjkuLjVlOTlmMGY1Nzc3YjNiMjE1OGRkMGZhNGJjMzgyNzc2Y2RiMzQ4
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAK
ICNpbmNsdWRlICJMb2FkYWJsZUNsYXNzaWNTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJN
b2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5j
bHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxl
bWVudC5oIgpAQCAtMzUxLDggKzM1MiwxMSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RN
b2R1bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAg
ICAgICAgICAgc2NyaXB0Q2hhcnNldCgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmxvY2FsTmFt
ZSgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOwot
ICAgICAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIG1vZHVsZVNjcmlwdFJv
b3RVUkwpOwogICAgICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKSB7Cisg
ICAgICAgICAgICBhdXRvJiBzY3JpcHQgPSBkb3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4o
Km1fbG9hZGFibGVTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxv
YWRNb2R1bGVTY3JpcHQoc2NyaXB0LCBtb2R1bGVTY3JpcHRSb290VVJMLnN0cmluZygpLCBtYWtl
UmVmKHNjcmlwdC5wYXJhbWV0ZXJzKCkpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKQEAgLTM2Nyw4ICszNzEsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVl
c3RNb2R1bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQog
ICAgIGlmICghY29udGVudFNlY3VyaXR5UG9saWN5LmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVu
dC5kb2N1bWVudCgpLnVybCgpLnN0cmluZygpLCBtX3N0YXJ0TGluZU51bWJlciwgc291cmNlQ29k
ZS5zb3VyY2UoKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCksIGhhc0tub3duTm9uY2UpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50
KCksIHNvdXJjZUNvZGUpOwogICAgIG1fbG9hZGFibGVTY3JpcHQgPSBXVEZNb3ZlKHNjcmlwdCk7
CisgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAg
ICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoZG93bmNhc3Q8TG9hZGFibGVN
b2R1bGVTY3JpcHQ+KCptX2xvYWRhYmxlU2NyaXB0LmdldCgpKSwgc291cmNlQ29kZSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCA2MmY5MTdh
MzY3ODE5ZGVjM2NkNDEwZDk3NjY5NWNlZTYyZjZkNGI5Li43YzIyNDlhM2EyYWY5NTE4MjNhZTc5
OTVlYzEzNzFhZGZiYjE0YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC03MCw2
ICs3MCw4IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAgLCBtX2lkZW50aWZpZXIoIndv
cmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIo
KSkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNyZWF0ZSgq
dGhpcykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxhZ3MpCisgICAgLCBtX3R5cGUo
b3B0aW9ucy50eXBlKQorICAgICwgbV9jcmVkZW50aWFscyhvcHRpb25zLmNyZWRlbnRpYWxzKQog
ewogICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAgaWYgKCFhZGRlZExpc3RlbmVy
KSB7CkBAIC0xMTMsMTAgKzExNSwxMyBAQCBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gV29ya2Vy
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpSdQogCiAgICAg
RmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKICAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNo
T3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbjsKKyAgICBpZiAod29ya2VyLT5tX3R5cGUgPT0gV29y
a2VyVHlwZTo6TW9kdWxlKQorICAgICAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSB3b3Jr
ZXItPm1fY3JlZGVudGlhbHM7CiAgICAgZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25z
OjpDYWNoZTo6RGVmYXVsdDsKICAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlv
bnM6OlJlZGlyZWN0OjpGb2xsb3c7CiAgICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyOwotICAgIHdvcmtlci0+bV9zY3JpcHRMb2Fk
ZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNl
V29ya2Vyc01vZGU6OkFsbCwgd29ya2VyKTsKKyAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5s
b2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRj
aE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtl
cnNNb2RlOjpBbGwsIHdvcmtlci5nZXQoKSk7CisKICAgICByZXR1cm4gd29ya2VyOwogfQogCkBA
IC0yMTUsNyArMjIwLDcgQEAgdm9pZCBXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICBSZWZl
cnJlclBvbGljeSByZWZlcnJlclBvbGljeSA9IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZzsK
ICAgICBpZiAoYXV0byBwb2xpY3kgPSBwYXJzZVJlZmVycmVyUG9saWN5KG1fc2NyaXB0TG9hZGVy
LT5yZWZlcnJlclBvbGljeSgpLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6SFRUUEhlYWRlcikpCiAg
ICAgICAgIHJlZmVycmVyUG9saWN5ID0gKnBvbGljeTsKLSAgICBtX2NvbnRleHRQcm94eS5zdGFy
dFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0TG9hZGVyLT51cmwoKSwgbV9uYW1lLCBjb250ZXh0
LT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVybCgpKSwgaXNPbmxpbmUsIG1fc2NyaXB0TG9h
ZGVyLT5zY3JpcHQoKSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3No
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgbV93b3JrZXJDcmVhdGlv
blRpbWUsIHJlZmVycmVyUG9saWN5LCBtX3J1bnRpbWVGbGFncyk7CisgICAgbV9jb250ZXh0UHJv
eHkuc3RhcnRXb3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwg
Y29udGV4dC0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3Nj
cmlwdExvYWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cywgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2Vy
Q3JlYXRpb25UaW1lLCByZWZlcnJlclBvbGljeSwgbV90eXBlLCBtX2NyZWRlbnRpYWxzLCBtX3J1
bnRpbWVGbGFncyk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRl
ZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXIt
PnNjcmlwdCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXggNTNmNWU2ZmZmMjdj
OWZhM2U1YzBlMDFmMGY2YzQyYzZjYjZmOWQwZS4uMzhhNjIzYTk4ZGJhMzVmZjgwMTNjZDZmYzhj
ODVjODEwMjA1MDIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0yOSw5ICsyOSwxMSBA
QAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5j
bHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5o
IgogI2luY2x1ZGUgIlBvc3RNZXNzYWdlT3B0aW9ucy5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlw
dExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUuaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5o
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNTUsNiArNTcsOCBAQCBjbGFzcyBXb3Jr
ZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qs
IHByaXZhdGUgV29yawogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2VyKTsKIHB1Ymxp
YzoKICAgICBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgIFdvcmtlclR5cGUgdHlwZTsKKyAgICAg
ICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7CiAgICAgICAgIFN0cmluZyBu
YW1lOwogICAgIH07CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgT3B0aW9ucyYpOwpAQCAtNzksNiArODMsOCBAQCBjbGFzcyBXb3JrZXIgZmlu
YWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZh
dGUgV29yawogICAgIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZv
aWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKTsKICNlbmRpZgogCisgICAgV29ya2VyVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29u
c3QgT3B0aW9ucyYpOwogCkBAIC0xMTIsNiArMTE4LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDog
cHVibGljIEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdv
cmsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBIYXNoU2V0PFN0cmluZz4gbV90cmFuc2Zvcm1l
cnM7CiAjZW5kaWYKKyAgICBXb3JrZXJUeXBlIG1fdHlwZSB7IFdvcmtlclR5cGU6OkNsYXNzaWMg
fTsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzIHsgRmV0Y2hSZXF1
ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAppbmRleCA0NWQ2YTA4Njc4NTRlZTQwNGRlN2U3
ZDAxMjQ4Y2ViZjQ0ZGNhN2VkLi43MDIxNzk2ZGY1MDRhZGY4ZTZiOTU4OWFjZTlmMTQ0ODIxZjI5
NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCkBAIC0zOCw2ICszOCw4IEBACiB9Owog
CiBkaWN0aW9uYXJ5IFdvcmtlck9wdGlvbnMgeworICAgIFdvcmtlclR5cGUgdHlwZSA9ICJjbGFz
c2ljIjsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscyA9ICJzYW1lLW9y
aWdpbiI7IC8vIGNyZWRlbnRpYWxzIGlzIG9ubHkgdXNlZCBpZiB0eXBlIGlzICJtb2R1bGUiCiAg
ICAgRE9NU3RyaW5nIG5hbWUgPSAiIjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNDAwMDNjM2UwMTA5OTk2MGY2NDc4NjFl
NzAxNjg3ZDBlMzcxZDcyZC4uN2I5MWQ3NTNkMWM5ZDcyOWFlNTA4NjU0YzJlODVmNzY3OTFlMDA4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5
LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGVQcm94eSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFdvcmtlckdsb2JhbFNjb3BlUHJveHkmIGNyZWF0ZShXb3JrZXImKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29s
IGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5
LCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNv
ZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRp
bWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNoUmVx
dWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNj
b3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDE5
ZDRiZTY0OTkyZjMwZDNjY2U3NjU0N2EzZDIyMThhOThjODQyYzMuLjc4ODM1ODdhN2FmNjIwOWUz
ZWNjOGU3YjQxYmFkNDdhZGY2MjI0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8fCAoaXM8V29ya2VyR2xv
YmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGRvd25jYXN0PFdvcmtlckds
b2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJlYWQoKS50aHJlYWQoKSA9
PSAmVGhyZWFkOjpjdXJyZW50KCkpKTsKIH0KIAotdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6
c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdp
biwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRp
bWVGbGFncykKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2Nv
cGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29u
c3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNl
Y3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5IHJl
ZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNoUmVxdWVzdENyZWRlbnRp
YWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCiB7CiAgICAg
Ly8gRklYTUU6IFRoaXMgbmVlZCB0byBiZSByZXZpc2l0ZWQgd2hlbiB3ZSBzdXBwb3J0IG5lc3Rl
ZCB3b3JrZXIgb25lIGRheQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwpA
QCAtODksNyArODksNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogCiAgICAgU29ja2V0UHJv
dmlkZXIqIHNvY2tldFByb3ZpZGVyID0gZG9jdW1lbnQuc29ja2V0UHJvdmlkZXIoKTsKIAotICAg
IFdvcmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIs
IHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3JpZ2lu
LCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMoKSB9OworICAgIFdvcmtl
clBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIsIHVzZXJB
Z2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3JpZ2luLCByZWZl
cnJlclBvbGljeSwgd29ya2VyVHlwZSwgY3JlZGVudGlhbHMsIGRvY3VtZW50LnNldHRpbmdzVmFs
dWVzKCkgfTsKICAgICBhdXRvIHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRl
KHBhcmFtcywgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBkb2N1
bWVudC50b3BPcmlnaW4oKSwgcHJveHksIHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxhZ3MpOwog
CiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGM1YjU3NWI5ZTYxNWIzZjNm
NTk2YmZjM2RmNjgzYzg3N2NjNjJiYWIuLjJlMjMxNjlmMDc5M2YwZGNmODA4YTliY2ZiNThlNmM5
MDhjNmNjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2Fn
aW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1By
b3h5LmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV29ya2VyTWVzc2FnaW5nUHJveHkgZmluYWwg
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyTWVzc2FnaW5nUHIKIHByaXZhdGU6
CiAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNjb3BlUHJveHkuCiAgICAg
Ly8gKE9ubHkgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgd29ya2VyIG9iamVjdCB0aHJlYWQu
KQotICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGlu
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgSlNDOjpS
dW50aW1lRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25z
dCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZl
cnJlclBvbGljeSwgV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFs
cyBjcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOwogICAgIHZvaWQgdGVybWlu
YXRlV29ya2VyR2xvYmFsU2NvcGUoKSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9Xb3Jr
ZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSBmaW5hbDsKICAgICB2b2lk
IHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKT4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBjZDRlYzI0Njgy
NTI1YWFiYzY0MmQ4NzdhMGRhMDExZWJkZTExNDMxLi44YzUxNTE4ZTdiMjNkOTEzNTJiNzdmMmFk
ZDg3MjVlN2U2Njg1OTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM1LDYgKzM1LDggQEAK
ICNpbmNsdWRlICJKU0V4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIkpTUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1
ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIldlYkNvcmVK
U0NsaWVudERhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJDb25zb2xlQ2xpZW50LmgiCkBAIC0yMjgs
NyArMjMwLDExNiBAQCB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZAogICAgIH0KIH0KIAotdGVtcGxh
dGU8dHlwZW5hbWUgSlNHbG9iYWxTY29wZVByb3RvdHlwZSwgdHlwZW5hbWUgSlNHbG9iYWxTY29w
ZSwgdHlwZW5hbWUgR2xvYmFsU2NvcGU+CitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlck9y
V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KExvYWRhYmxl
TW9kdWxlU2NyaXB0JiBtb2R1bGVTY3JpcHQsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJj
ZUNvZGUpCit7CisgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAgIHJldHVy
biBNZXNzYWdlUXVldWVUZXJtaW5hdGVkOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisK
KyAgICBhdXRvJiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gKm1fd29ya2VyR2xvYmFsU2NvcGVXcmFw
cGVyLmdldCgpOworICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICBK
U0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisKKyAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVjU3Rh
dGU6OmxvYWRNb2R1bGUobGV4aWNhbEdsb2JhbE9iamVjdCwgc291cmNlQ29kZS5qc1NvdXJjZUNv
ZGUoKSwgSlNDOjpKU1NjcmlwdEZldGNoZXI6OmNyZWF0ZSh2bSwgeyAmbW9kdWxlU2NyaXB0IH0p
KTsKKworICAgIFJlZlB0cjxMb2FkYWJsZU1vZHVsZVNjcmlwdD4gbW9kdWxlU2NyaXB0UmVmKCZt
b2R1bGVTY3JpcHQpOworCisgICAgYXV0byYgZnVsZmlsbEhhbmRsZXIgPSAqSlNOYXRpdmVTdGRG
dW5jdGlvbjo6Y3JlYXRlKHZtLCAmbGV4aWNhbEdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFtt
b2R1bGVTY3JpcHRSZWZdKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSAtPiBKU0M6OkVuY29kZWRKU1ZhbHVlIHsKKyAgICAgICAgICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKyAgICAgICAgICAgIElkZW50aWZpZXIgbW9kdWxlS2V5ID0ganNWYWx1
ZVRvTW9kdWxlS2V5KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSk7CisgICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgICAgICAgICAgbW9k
dWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkQ29tcGxldGVkKCptb2R1bGVLZXkuaW1wbCgpKTsKKyAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAg
ICAgICB9KTsKKworICAgIGF1dG8mIHJlamVjdEhhbmRsZXIgPSAqSlNOYXRpdmVTdGRGdW5jdGlv
bjo6Y3JlYXRlKHZtLCAmbGV4aWNhbEdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFttb2R1bGVT
Y3JpcHRSZWZdKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSB7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAg
ICAgICBKU1ZhbHVlIGVycm9yVmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOworICAgICAg
ICAgICAgaWYgKGVycm9yVmFsdWUuaXNPYmplY3QoKSkgeworICAgICAgICAgICAgYXV0byogb2Jq
ZWN0ID0gSlNDOjphc09iamVjdChlcnJvclZhbHVlKTsKKyAgICAgICAgICAgIGlmIChKU1ZhbHVl
IGZhaWx1cmVLaW5kVmFsdWUgPSBvYmplY3QtPmdldERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8SlNW
TUNsaWVudERhdGEmPigqdm0uY2xpZW50RGF0YSkuYnVpbHRpbk5hbWVzKCkuZmFpbHVyZUtpbmRQ
cml2YXRlTmFtZSgpKSkgeworICAgICAgICAgICAgLy8gVGhpcyBpcyBob3N0IHByb3BhZ2F0ZWQg
ZXJyb3IgaW4gdGhlIG1vZHVsZSBsb2FkZXIgcGlwZWxpbmUuCisgICAgICAgICAgICBzd2l0Y2gg
KHN0YXRpY19jYXN0PE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ+KGZhaWx1cmVLaW5kVmFsdWUuYXNJ
bnQzMigpKSkgeworICAgICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNF
cnJvcmVkOgorICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExv
YWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0
OjpFcnJvclR5cGU6OkNhY2hlZFNjcmlwdCwKKyAgICAgICAgICAgICAgICAgICAgV1RGOjpudWxs
b3B0CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkOgorICAgICAgICAg
ICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAg
bW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7
CisgICAgICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpFcnJvclR5cGU6OkNhY2hlZFNj
cmlwdCwKKyAgICAgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkNvbnNvbGVNZXNzYWdl
IHsKKyAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVNvdXJjZTo6SlMsCisgICAgICAgICAgICAg
ICAgICAgIE1lc3NhZ2VMZXZlbDo6RXJyb3IsCisgICAgICAgICAgICAgICAgICAgIHJldHJpZXZl
RXJyb3JNZXNzYWdlKCpnbG9iYWxPYmplY3QsIHZtLCBlcnJvclZhbHVlLCBzY29wZSksCisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgcHJv
bWlzZS50aGVuKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCAmZnVsZmlsbEhhbmRsZXIsICZyZWplY3RI
YW5kbGVyKTsKKworICAgIC8vIERyaXZlIFJ1bkxvb3AgdW50aWwgd2UgZ2V0IGVpdGhlciBvZiAi
V29ya2VyIGlzIHRlcm1pbmF0ZWQiLCAiTG9hZGluZyBpcyBkb25lIiwgb3IgIkxvYWRpbmcgaXMg
ZmFpbGVkIi4KKyAgICBXb3JrZXJSdW5Mb29wJiBydW5Mb29wID0gbV93b3JrZXJHbG9iYWxTY29w
ZS0+dGhyZWFkKCkucnVuTG9vcCgpOworICAgIFN0cmluZyBtb2RlID0gbWFrZVN0cmluZygibG9h
ZE1vZHVsZVN5bmNocm9ub3VzbHkiLCBydW5Mb29wLmNyZWF0ZVVuaXF1ZUlkKCkpOworCisgICAg
TWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2
ZWQ7CisgICAgd2hpbGUgKCghbW9kdWxlU2NyaXB0UmVmLT5pc0xvYWRlZCgpIHx8ICFtb2R1bGVT
Y3JpcHRSZWYtPndhc0NhbmNlbGVkKCkpICYmIHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5h
dGVkKQorICAgICAgICByZXN1bHQgPSBydW5Mb29wLnJ1bkluTW9kZShtX3dvcmtlckdsb2JhbFNj
b3BlLCBtb2RlKTsKKworICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgd2UgYXJlIG5vdCBvZmZlcmlu
ZyBjYW5jZWxsaW5nLgorICAgIC8vIGlmICghbG9hZGVyLT5kb25lKCkgJiYgcmVzdWx0ID09IE1l
c3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpCisgICAgLy8gICAgIGxvYWRlci0+Y2FuY2VsKCk7CisKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShMb2FkYWJsZU1vZHVsZVNjcmlwdCYgbW9kdWxlU2Ny
aXB0LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBTdHJpbmcqIHJldHVybmVk
RXhjZXB0aW9uTWVzc2FnZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBs
ZXhpY2FsR2xvYmFsT2JqZWN0ID0gKm1fd29ya2VyR2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOwor
ICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIg
bG9jayB7IHZtIH07CisKKyAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNl
cHRpb247CisgICAgSlNFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShsZXhpY2FsR2xv
YmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBtb2R1bGVTY3JpcHQubW9kdWxlS2V5
KCkpLCBqc1VuZGVmaW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKChyZXR1cm5l
ZEV4Y2VwdGlvbiAmJiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVybmVk
RXhjZXB0aW9uKSkgfHwgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAgICAgIGZvcmJp
ZEV4ZWN1dGlvbigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHJldHVybmVk
RXhjZXB0aW9uKSB7CisgICAgICAgIGlmIChtX3dvcmtlckdsb2JhbFNjb3BlLT5jYW5JbmNsdWRl
RXJyb3JEZXRhaWxzKHNvdXJjZUNvZGUuY2FjaGVkU2NyaXB0KCksIHNvdXJjZUNvZGUudXJsKCku
c3RyaW5nKCkpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhhdCB0
aGlzIGNhbiBydW4gYXJiaXRyYXJ5IGNvZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhl
IGV4Y2VwdGlvbi4KKyAgICAgICAgICAgIC8vIERvIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgdG8g
aGFuZGxlIHRoYXQgcHJvcGVybHksIGlmIGl0LCBzYXksIHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlv
bj8KKyAgICAgICAgICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAg
ICAgICAgKnJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IHJldHVybmVkRXhjZXB0aW9uLT52YWx1
ZSgpLnRvV1RGU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgZGV0YWlsZWQgZXJyb3Igd2l0aCBhIGdlbmVy
aWMgZXJyb3IuCisgICAgICAgICAgICBTdHJpbmcgZ2VuZXJpY0Vycm9yTWVzc2FnZSB7ICJTY3Jp
cHQgZXJyb3IuIl9zIH07CisgICAgICAgICAgICBpZiAocmV0dXJuZWRFeGNlcHRpb25NZXNzYWdl
KQorICAgICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBnZW5lcmljRXJy
b3JNZXNzYWdlOworICAgICAgICAgICAgcmV0dXJuZWRFeGNlcHRpb24gPSBKU0M6OkV4Y2VwdGlv
bjo6Y3JlYXRlKHZtLCBjcmVhdGVFcnJvcigmbGV4aWNhbEdsb2JhbE9iamVjdCwgZ2VuZXJpY0Vy
cm9yTWVzc2FnZSkpOworICAgICAgICB9CisgICAgfQorfQorCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgSlNHbG9iYWxTY29wZVByb3RvdHlwZSwgdHlwZW5hbWUgSlNHbG9iYWxTY29wZSwgdHlwZW5h
bWUgR2xvYmFsU2NvcGU+CiB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6Omlu
aXRTY3JpcHRXaXRoU3ViY2xhc3MoKQogewogICAgIEFTU0VSVCghbV9nbG9iYWxTY29wZVdyYXBw
ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBjNDkzMDFhZWQzZGQwODlkYTc5NzMyNzYwY2FmMmY3
YjY0ZGIxMWI2Li5mZjFhODlhMjNkZjVmMWIwOTBiNjg4Yjk1MDAwMmQ0NTJmY2VlMTdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTUnVuTG9vcFRpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYv
TmFrZWRQdHIuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC00NCw2ICs0NSw3IEBAIGNsYXNzIEpT
R2xvYmFsT2JqZWN0OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBKU0RPTUdsb2JhbE9i
amVjdDsKK2NsYXNzIExvYWRhYmxlTW9kdWxlU2NyaXB0OwogY2xhc3MgU2NyaXB0U291cmNlQ29k
ZTsKIGNsYXNzIFdvcmtlckNvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZTsKQEAgLTk0LDYgKzk2LDkgQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlciB7CiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3Ry
aW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKICAgICB2b2lkIGV2YWx1
YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mIHJl
dHVybmVkRXhjZXB0aW9uLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxw
dHIpOwogCisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoTG9hZGFibGVNb2R1bGVTY3Jp
cHQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBTdHJpbmcqIHJldHVybmVk
RXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQg
bG9hZE1vZHVsZVN5bmNocm9ub3VzbHkoTG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3Jp
cHRTb3VyY2VDb2RlJik7CisKIHByb3RlY3RlZDoKICAgICBXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZSogZ2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbFNjb3BlOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA3Mjc5MGEwMzMyMjYxOWU2
ZWU3ZTYxNmE4YmRlMThiZDU1MmE1NzgzLi44NzkwMTE5YzE3NjIyNGUyOTEzMjc2ODc0OGRhMWVh
MDU1MzU1MWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0y
OCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAKICNpbmNsdWRlICJJREJD
b25uZWN0aW9uUHJveHkuaCIKKyNpbmNsdWRlICJMb2FkYWJsZU1vZHVsZVNjcmlwdC5oIgogI2lu
Y2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCkBAIC01NSw2ICs1Niw4IEBAIFdvcmtlclBhcmFt
ZXRlcnMgV29ya2VyUGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICAgICAgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LAogICAgICAgICB0aW1lT3Jp
Z2luLAogICAgICAgICByZWZlcnJlclBvbGljeSwKKyAgICAgICAgd29ya2VyVHlwZSwKKyAgICAg
ICAgY3JlZGVudGlhbHMsCiAgICAgICAgIHNldHRpbmdzVmFsdWVzLmlzb2xhdGVkQ29weSgpCiAg
ICAgfTsKIH0KQEAgLTEyMyw5ICsxMjYsMzIgQEAgYm9vbCBXb3JrZXJUaHJlYWQ6OnNob3VsZFdh
aXRGb3JXZWJJbnNwZWN0b3JPblN0YXJ0dXAoKSBjb25zdAogCiB2b2lkIFdvcmtlclRocmVhZDo6
ZXZhbHVhdGVTY3JpcHRJZk5lY2Vzc2FyeShTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpCiB7Ci0g
ICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9z
dGFydHVwRGF0YS0+c291cmNlQ29kZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRV
UkwpKSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOwotCi0gICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0
KCk7CisgICAgLy8gV2UgYXJlIGN1cnJlbnRseSBob2xkaW5nIG9ubHkgdGhlIGluaXRpYWwgc2Ny
aXB0IGNvZGUuIElmIHRoZSBXb3JrZXJUeXBlIGlzIE1vZHVsZSwgd2Ugc2hvdWxkIGZldGNoIHRo
ZSBlbnRpcmUgZ3JhcGggYmVmb3JlIGV4ZWN1dGluZyB0aGUgcmVzdCBvZiB0aGlzLgorICAgIC8v
IFdlIGludm9rZSBtb2R1bGUgbG9hZGVyIGFzIGlmIHdlIGFyZSBleGVjdXRpbmcgaW5saW5lIG1v
ZHVsZSBzY3JpcHQgdGFnIGluIERvY3VtZW50LgorCisgICAgaWYgKG1fc3RhcnR1cERhdGEtPnBh
cmFtcy53b3JrZXJUeXBlID09IFdvcmtlclR5cGU6OkNsYXNzaWMpIHsKKyAgICAgICAgZ2xvYmFs
U2NvcGUoKS0+c2NyaXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zdGFydHVwRGF0
YS0+c291cmNlQ29kZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKSwgJmV4
Y2VwdGlvbk1lc3NhZ2UpOworICAgICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICAvLyBGSVhNRSBjcm9zc09yaWdpbiBtb2RlIHNob3VsZCBiZSBj
b252ZXJ0ZWQuCisgICAgICAgIC8vIEZJWE1FIGZpeCBpbml0aWF0b3IgbmFtZS4KKyAgICAgICAg
Ly8gRklYTUUgcGFzcyBVUkwgdG8gbW9kdWxlIGxvYWRlci4KKyAgICAgICAgZGF0YUxvZ0xuKCJX
T1JLRVIgTU9EVUxFIik7CisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShtX3N0
YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNjcmlwdFVS
TCkpOworICAgICAgICBhdXRvIG1vZHVsZVNjcmlwdCA9IExvYWRhYmxlTW9kdWxlU2NyaXB0Ojpj
cmVhdGUoZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSwgbV9zdGFydHVwRGF0YS0+cGFyYW1z
LnJlZmVycmVyUG9saWN5LCBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6ZGVmYXVs
dENyb3NzT3JpZ2luTW9kZUZvck1vZHVsZSwgZW1wdHlTdHJpbmcoKSwgZW1wdHlBdG9tKCksIGZh
bHNlKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQgPSBnbG9iYWxTY29w
ZSgpLT5zY3JpcHQoKS0+bG9hZE1vZHVsZVN5bmNocm9ub3VzbHkobW9kdWxlU2NyaXB0LmdldCgp
LCBzb3VyY2VDb2RlKTsKKyAgICAgICAgZGF0YUxvZ0xuKCJXT1JLRVIgTU9EVUxFIEZFVENIRUQi
KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKSB7CisgICAg
ICAgICAgICBpZiAoIW1vZHVsZVNjcmlwdC0+ZXJyb3IoKSAmJiAhbW9kdWxlU2NyaXB0LT53YXND
YW5jZWxlZCgpKSB7CisgICAgICAgICAgICAgICAgLy8gRXZhbHVhdGUuCisgICAgICAgICAgICAg
ICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShtb2R1bGVT
Y3JpcHQuZ2V0KCksIHNvdXJjZUNvZGUsICZleGNlcHRpb25NZXNzYWdlKTsKKyAgICAgICAgICAg
ICAgICBkYXRhTG9nTG4oIldPUktFUiBNT0RVTEUgRVZBTFVBVEVEIik7CisgICAgICAgICAgICAg
ICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIC8vIEZJWE1FIFRocm93IGFuIGVycm9yLgorICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQogCiAgICAgLy8gRnJlZSB0aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNlIGl0
cyBtZW1iZXIgdmFyaWFibGUgZGVyZWYncyBoYXBwZW4gb24gdGhlIHdvcmtlcidzIHRocmVhZCAo
c2luY2UKICAgICAvLyBhbGwgcmVmL2RlcmVmcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBwZW5p
bmcgb24gdGhlIHRocmVhZCBhdCB0aGlzIHBvaW50KS4gTm90ZSB0aGF0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJUaHJlYWQuaAppbmRleCA4ODkwNzkwOGU3YTliODA5ZThmMmE0ZTQ3M2Q3NTJk
MTFkMjkzN2MwLi45NTEyZWZkYjE4ZjMyYTUwZWNiN2ZiNTY5NTlkNjFlODg3MmZhMWQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTI2LDcgKzI2LDEwIEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cy5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiV29y
a2VyT3JXb3JrbGV0VGhyZWFkLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1
ZGUgIldvcmtlclR5cGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3Mu
aD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtNjMsNiArNjYs
OCBAQCBzdHJ1Y3QgV29ya2VyUGFyYW1ldGVycyB7CiAgICAgYm9vbCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAgICAgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
OwogICAgIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5OworICAgIFdvcmtlclR5cGUgd29y
a2VyVHlwZTsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsKICAgICBT
ZXR0aW5nczo6VmFsdWVzIHNldHRpbmdzVmFsdWVzOwogCiAgICAgV29ya2VyUGFyYW1ldGVycyBp
c29sYXRlZENvcHkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5kZXggYzhh
N2E5OTcyZjljYzhjMTZhNzk2NzUxMTU1MmY1NDkzYTY4NmY5OC4uMzNjYTBlYzIzYjU4YTU1MTE4
NzY4NDZiYTA3MTgzNTMyYjVjNDdkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAg
LTczLDggKzczLDkgQEAgY2xhc3MgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgOiBwdWJs
aWMgV29ya2VyT2JqZWN0UHJveHkgewogLy8gRklYTUU6IFVzZSBhIHZhbGlkIFdvcmtlck9iamVj
dFByb3h5CiAvLyBGSVhNRTogVXNlIHZhbGlkIHJ1bnRpbWUgZmxhZ3MKIAorLy8gRklYTUU6IFVz
ZSBhIHZhbGlkIFdvcmtlclR5cGUgYW5kIENyZWRlbnRhaWxzIGZvciBtb2R1bGUgc2VydmljZSB3
b3JrZXJzLgogU2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZChjb25zdCBT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFN0cmluZyYmIHVzZXJBZ2VudCwgY29uc3Qg
U2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMsIFdvcmtlckxvYWRlclByb3h5JiBsb2Fk
ZXJQcm94eSwgV29ya2VyRGVidWdnZXJQcm94eSYgZGVidWdnZXJQcm94eSwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkqIGlkYkNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNv
Y2tldFByb3ZpZGVyKQotICAgIDogV29ya2VyVGhyZWFkKHsgZGF0YS5zY3JpcHRVUkwsIGVtcHR5
U3RyaW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9y
eTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHVzZXJBZ2VudCksIHBsYXRmb3JtU3RyYXRl
Z2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09uTGluZSgpLCBkYXRhLmNvbnRlbnRTZWN1cml0
eVBvbGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6Om5vdygpLCB7IH0sIHNldHRpbmdzVmFsdWVz
IH0sIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1h
bCwgZGF0YS5yZWdpc3RyYXRpb24ua2V5LnRvcE9yaWdpbigpLnNlY3VyaXR5T3JpZ2luKCkuZ2V0
KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdz
OjpjcmVhdGVBbGxFbmFibGVkKCkpCisgICAgOiBXb3JrZXJUaHJlYWQoeyBkYXRhLnNjcmlwdFVS
TCwgZW1wdHlTdHJpbmcoKSwgInNlcnZpY2V3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmll
cnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCksIFdURk1vdmUodXNlckFnZW50KSwgcGxhdGZv
cm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmlzT25MaW5lKCksIGRhdGEuY29udGVu
dFNlY3VyaXR5UG9saWN5LCBmYWxzZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHsgfSwgV29ya2Vy
VHlwZTo6Q2xhc3NpYywgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4sIHNldHRp
bmdzVmFsdWVzIH0sIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVt
bXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1v
ZGU6Ok5vcm1hbCwgZGF0YS5yZWdpc3RyYXRpb24ua2V5LnRvcE9yaWdpbigpLnNlY3VyaXR5T3Jp
Z2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVu
dGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCkpCiAgICAgLCBtX2RhdGEoZGF0YS5pc29sYXRl
ZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0UHJveHkoRHVtbXlTZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHk6OnNoYXJlZCgpKQogICAgICwgbV9oZWFydEJlYXRUaW1lb3V0KFNXQ29udGV4dE1h
bmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb24oKS0+c2hvdWxkVXNlU2hvcnRUaW1lb3V0KCkg
PyBoZWFydEJlYXRUaW1lb3V0Rm9yVGVzdCA6IGhlYXJ0QmVhdFRpbWVvdXQpCg==
</data>
<flag name="commit-queue"
          id="437830"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419565</attachid>
            <date>2021-02-08 01:52:58 -0800</date>
            <delta_ts>2021-02-09 03:04:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210208015257.patch</filename>
            <type>text/plain</type>
            <size>29732</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZlNjA0YWRhNjJiNWRm
MmIzMzA0MTk0ZTc2ZGNkNzNjMzdjN2E3NC4uYzI3ZTdmNWQ0ODJiYTI2OTkyYWY2MDE1MzE4NzY5
ZmJiOGQ5YmRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTAyLTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBX
b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJs
ZU1vZHVsZVNjcmlwdDo6bG9hZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0xvYWRhYmxlTW9k
dWxlU2NyaXB0Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVsZVNjcmlwdCk6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpXb3JrZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuaDoKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlci5pZGw6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZVByb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9i
YWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZVN5bmNocm9ub3VzbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bGlua0Fu
ZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJQYXJhbWV0ZXJzOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpldmFsdWF0ZVNjcmlwdElmTmVjZXNzYXJ5KToK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCk6CisKIDIwMjEtMDItMDcg
IExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
MjcyMzc5KSBbV1BFXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21hdGhtbC9yZWxh
dGlvbnMvY3NzLXN0eWxpbmcvbWF0aHZhcmlhbnQgdGVzdHMgYXJlIEltYWdlIEZhaWxpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCmluZGV4IDlhMjVjMTY1
ODhlZWNhZDY3OGZiOTExZWM4NjIyZjQyNDI1OTJiNWEuLjQ4ZWMwODUxYTQ1N2Q5YmE0NzQ3M2Zl
YzI4ZDdiNDkzMTJiNzg4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJs
ZU1vZHVsZVNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmNwcApAQCAtODgsMTYgKzg4LDQgQEAgdm9pZCBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6
ZXhlY3V0ZShTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50KQogICAgIHNjcmlwdEVsZW1lbnQu
ZXhlY3V0ZU1vZHVsZVNjcmlwdCgqdGhpcyk7CiB9CiAKLXZvaWQgTG9hZGFibGVNb2R1bGVTY3Jp
cHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHJvb3RVUkwpCi17Ci0gICAg
aWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgZnJhbWUtPnNjcmlw
dCgpLmxvYWRNb2R1bGVTY3JpcHQoKnRoaXMsIHJvb3RVUkwuc3RyaW5nKCksIG1fcGFyYW1ldGVy
cy5jb3B5UmVmKCkpOwotfQotCi12b2lkIExvYWRhYmxlTW9kdWxlU2NyaXB0Ojpsb2FkKERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKLXsKLSAg
ICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAgICAgICBmcmFtZS0+c2Ny
aXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgc291cmNlQ29kZSk7Ci19Ci0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgKaW5kZXggYmI3OTk1NGQ3Yjk5YjBl
ZDA2YmZlNTVlZjg1NGVjY2UyMWYzNTg3Ny4uZDI1MzU5NjNmNjQ4YjAyYThhMDFmZDYzYmIxZTM4
MTM4NmNlZTQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgK
QEAgLTUwLDE1ICs1MCwxNCBAQCBjbGFzcyBMb2FkYWJsZU1vZHVsZVNjcmlwdCBmaW5hbCA6IHB1
YmxpYyBMb2FkYWJsZVNjcmlwdCB7CiAKICAgICB2b2lkIHNldEVycm9yKEVycm9yJiYpOwogCi0g
ICAgdm9pZCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJMJiByb290VVJMKTsKLSAgICB2b2lkIGxv
YWQoRG9jdW1lbnQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7Ci0KICAgICB2b2lkIG5vdGlm
eUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmluZ0ltcGwmKTsKICAgICB2b2lkIG5vdGlmeUxvYWRG
YWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yJiYpOwogICAgIHZvaWQgbm90aWZ5TG9hZFdhc0Nh
bmNlbGVkKCk7CiAKICAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KCkgY29uc3QgeyBy
ZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0KIAorICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyYg
cGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQorCiBwcml2YXRlOgog
ICAgIExvYWRhYmxlTW9kdWxlU2NyaXB0KGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmlu
ZyYgaW50ZWdyaXR5LCBSZWZlcnJlclBvbGljeSwgY29uc3QgU3RyaW5nJiBjcm9zc09yaWdpbk1v
ZGUsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQXRvbVN0cmluZyYgaW5pdGlhdG9yTmFt
ZSwgYm9vbCBpc0luVXNlckFnZW50U2hhZG93VHJlZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
bGVtZW50LmNwcAppbmRleCAwNTc1OGI2MDBjNzUyMmI0N2YzNjRiYTZhMThkMzVmMTczMTEwN2Y5
Li41ZTk5ZjBmNTc3N2IzYjIxNThkZDBmYTRiYzM4Mjc3NmNkYjM0ODEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTG9hZGFi
bGVDbGFzc2ljU2NyaXB0LmgiCiAjaW5jbHVkZSAiTG9hZGFibGVNb2R1bGVTY3JpcHQuaCIKICNp
bmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzLmgiCiAjaW5jbHVkZSAiUGVuZGluZ1NjcmlwdC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1lbnQuaCIKQEAgLTM1MSw4
ICszNTIsMTEgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KGNvbnN0
IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKICAgICAgICAgICAgIHNjcmlwdENo
YXJzZXQoKSwKICAgICAgICAgICAgIG1fZWxlbWVudC5sb2NhbE5hbWUoKSwKICAgICAgICAgICAg
IG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKTsKLSAgICAgICAgc2NyaXB0LT5s
b2FkKG1fZWxlbWVudC5kb2N1bWVudCgpLCBtb2R1bGVTY3JpcHRSb290VVJMKTsKICAgICAgICAg
bV9sb2FkYWJsZVNjcmlwdCA9IFdURk1vdmUoc2NyaXB0KTsKKyAgICAgICAgaWYgKGF1dG8qIGZy
YW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkgeworICAgICAgICAgICAgYXV0byYg
c2NyaXB0ID0gZG93bmNhc3Q8TG9hZGFibGVNb2R1bGVTY3JpcHQ+KCptX2xvYWRhYmxlU2NyaXB0
LmdldCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KHNj
cmlwdCwgbW9kdWxlU2NyaXB0Um9vdFVSTC5zdHJpbmcoKSwgbWFrZVJlZihzY3JpcHQucGFyYW1l
dGVycygpKSk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0z
NjcsOCArMzcxLDkgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KGNv
bnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKICAgICBpZiAoIWNvbnRlbnRT
ZWN1cml0eVBvbGljeS5hbGxvd0lubGluZVNjcmlwdChtX2VsZW1lbnQuZG9jdW1lbnQoKS51cmwo
KS5zdHJpbmcoKSwgbV9zdGFydExpbmVOdW1iZXIsIHNvdXJjZUNvZGUuc291cmNlKCkudG9TdHJp
bmdXaXRob3V0Q29weWluZygpLCBoYXNLbm93bk5vbmNlKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgc2NyaXB0LT5sb2FkKG1fZWxlbWVudC5kb2N1bWVudCgpLCBzb3VyY2VDb2RlKTsK
ICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAgIGlmIChhdXRvKiBm
cmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpCisgICAgICAgIGZyYW1lLT5zY3Jp
cHQoKS5sb2FkTW9kdWxlU2NyaXB0KGRvd25jYXN0PExvYWRhYmxlTW9kdWxlU2NyaXB0PigqbV9s
b2FkYWJsZVNjcmlwdC5nZXQoKSksIHNvdXJjZUNvZGUpOwogICAgIHJldHVybiB0cnVlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggNjJmOTE3YTM2NzgxOWRlYzNjZDQxMGQ5
NzY2OTVjZWU2MmY2ZDRiOS4uN2MyMjQ5YTNhMmFmOTUxODIzYWU3OTk1ZWMxMzcxYWRmYmIxNGFh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtNzAsNiArNzAsOCBAQCBpbmxpbmUg
V29ya2VyOjpXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpSdW50
aW1lRmxhZ3MgcnVudGltZQogICAgICwgbV9pZGVudGlmaWVyKCJ3b3JrZXI6IiArIEluc3BlY3Rv
cjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpCiAgICAgLCBtX2NvbnRl
eHRQcm94eShXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9y
dW50aW1lRmxhZ3MocnVudGltZUZsYWdzKQorICAgICwgbV90eXBlKG9wdGlvbnMudHlwZSkKKyAg
ICAsIG1fY3JlZGVudGlhbHMob3B0aW9ucy5jcmVkZW50aWFscykKIHsKICAgICBzdGF0aWMgYm9v
bCBhZGRlZExpc3RlbmVyOwogICAgIGlmICghYWRkZWRMaXN0ZW5lcikgewpAQCAtMTEzLDEwICsx
MTUsMTMgQEAgRXhjZXB0aW9uT3I8UmVmPFdvcmtlcj4+IFdvcmtlcjo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTQzo6UnUKIAogICAgIEZldGNoT3B0aW9ucyBmZXRj
aE9wdGlvbnM7CiAgICAgZmV0Y2hPcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNh
bWVPcmlnaW47CisgICAgaWYgKHdvcmtlci0+bV90eXBlID09IFdvcmtlclR5cGU6Ok1vZHVsZSkK
KyAgICAgICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gd29ya2VyLT5tX2NyZWRlbnRpYWxz
OwogICAgIGZldGNoT3B0aW9ucy5jYWNoZSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQ7
CiAgICAgZmV0Y2hPcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9s
bG93OwogICAgIGZldGNoT3B0aW9ucy5kZXN0aW5hdGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGlu
YXRpb246OldvcmtlcjsKLSAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9u
b3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBj
b250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGws
IHdvcmtlcik7CisgICAgd29ya2VyLT5tX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5
KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZmV0Y2hPcHRpb25zKSwgY29udGVu
dFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZTo6QWxsLCB3b3Jr
ZXIuZ2V0KCkpOworCiAgICAgcmV0dXJuIHdvcmtlcjsKIH0KIApAQCAtMjE1LDcgKzIyMCw3IEBA
IHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJy
ZXJQb2xpY3kgPSBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmc7CiAgICAgaWYgKGF1dG8gcG9s
aWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShtX3NjcmlwdExvYWRlci0+cmVmZXJyZXJQb2xpY3ko
KSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OkhUVFBIZWFkZXIpKQogICAgICAgICByZWZlcnJlclBv
bGljeSA9ICpwb2xpY3k7Ci0gICAgbV9jb250ZXh0UHJveHkuc3RhcnRXb3JrZXJHbG9iYWxTY29w
ZShtX3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwgY29udGV4dC0+dXNlckFnZW50KG1fc2Ny
aXB0TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCksIGNv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9zaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2VyQ3JlYXRpb25UaW1lLCByZWZlcnJlclBv
bGljeSwgbV9ydW50aW1lRmxhZ3MpOworICAgIG1fY29udGV4dFByb3h5LnN0YXJ0V29ya2VyR2xv
YmFsU2NvcGUobV9zY3JpcHRMb2FkZXItPnVybCgpLCBtX25hbWUsIGNvbnRleHQtPnVzZXJBZ2Vu
dChtX3NjcmlwdExvYWRlci0+dXJsKCkpLCBpc09ubGluZSwgbV9zY3JpcHRMb2FkZXItPnNjcmlw
dCgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIG1fc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBtX3dvcmtlckNyZWF0aW9uVGltZSwgcmVm
ZXJyZXJQb2xpY3ksIG1fdHlwZSwgbV9jcmVkZW50aWFscywgbV9ydW50aW1lRmxhZ3MpOwogICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWQoKmNvbnRleHQsIG1fc2Ny
aXB0TG9hZGVyLT5pZGVudGlmaWVyKCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5oCmluZGV4IDUzZjVlNmZmZjI3YzlmYTNlNWMwZTAxZjBmNmM0
MmM2Y2I2ZjlkMGUuLjM4YTYyM2E5OGRiYTM1ZmY4MDEzY2Q2ZmM4Yzg1YzgxMDIwNTAyMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaApAQCAtMjksOSArMjksMTEgQEAKICNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVz
dENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJQb3N0
TWVzc2FnZU9wdGlvbnMuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIK
KyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGlt
ZUZsYWdzLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KQEAgLTU1LDYgKzU3LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGlj
IEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtlcik7CiBwdWJsaWM6CiAgICAgc3RydWN0IE9w
dGlvbnMgeworICAgICAgICBXb3JrZXJUeXBlIHR5cGU7CisgICAgICAgIEZldGNoUmVxdWVzdENy
ZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwogICAgICAgICBTdHJpbmcgbmFtZTsKICAgICB9OwogICAg
IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IE9wdGlv
bnMmKTsKQEAgLTc5LDYgKzgzLDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3Ry
YWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICAgICB2b2lk
IHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKT4mJik7CiAjZW5kaWYKIAorICAgIFdvcmtlclR5cGUgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdvcmtlcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgSlNDOjpSdW50aW1lRmxhZ3MsIGNvbnN0IE9wdGlvbnMmKTsKIApA
QCAtMTEyLDYgKzExOCw4IEBAIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdv
cmtlciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBXb3JrCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fdHJhbnNmb3JtZXJzOwogI2VuZGlmCisgICAg
V29ya2VyVHlwZSBtX3R5cGUgeyBXb3JrZXJUeXBlOjpDbGFzc2ljIH07CisgICAgRmV0Y2hSZXF1
ZXN0Q3JlZGVudGlhbHMgbV9jcmVkZW50aWFscyB7IEZldGNoUmVxdWVzdENyZWRlbnRpYWxzOjpT
YW1lT3JpZ2luIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlci5pZGwKaW5kZXggNDVkNmEwODY3ODU0ZWU0MDRkZTdlN2QwMTI0OGNlYmY0NGRjYTdl
ZC4uNzAyMTc5NmRmNTA0YWRmOGU2Yjk1ODlhY2U5ZjE0NDgyMWYyOTVmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyLmlkbApAQCAtMzgsNiArMzgsOCBAQAogfTsKIAogZGljdGlvbmFyeSBXb3Jr
ZXJPcHRpb25zIHsKKyAgICBXb3JrZXJUeXBlIHR5cGUgPSAiY2xhc3NpYyI7CisgICAgRmV0Y2hS
ZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMgPSAic2FtZS1vcmlnaW4iOyAvLyBjcmVkZW50
aWFscyBpcyBvbmx5IHVzZWQgaWYgdHlwZSBpcyAibW9kdWxlIgogICAgIERPTVN0cmluZyBuYW1l
ID0gIiI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGVQcm94eS5oCmluZGV4IDQwMDAzYzNlMDEwOTk5NjBmNjQ3ODYxZTcwMTY4N2QwZTM3MWQ3MmQu
LjdiOTFkNzUzZDFjOWQ3MjlhZTUwODY1NGMyZTg1Zjc2NzkxZTAwOGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCkBAIC00OCw3ICs0OCw3
IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlUHJveHkgewogcHVibGljOgogICAgIHN0YXRpYyBX
b3JrZXJHbG9iYWxTY29wZVByb3h5JiBjcmVhdGUoV29ya2VyJik7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwg
TW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgSlNDOjpSdW50aW1lRmxh
Z3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBV
UkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJl
clBvbGljeSwgV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBj
cmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3MpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVy
bWluYXRlV29ya2VyR2xvYmFsU2NvcGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNz
YWdlVG9Xb3JrZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lk
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4mJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCAxOWQ0YmU2NDk5MmYzMGQzY2Nl
NzY1NDdhM2QyMjE4YTk4Yzg0MmMzLi43ODgzNTg3YTdhZjYyMDllM2VjYzhlN2I0MWJhZDQ3YWRm
NjIyNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1By
b3h5LmNwcApAQCAtNzMsNyArNzMsNyBAQCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6fldvcmtlck1l
c3NhZ2luZ1Byb3h5KCkKICAgICAgICAgfHwgKGlzPFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KSAmJiBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkudGhyZWFkKCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVu
dCgpKSk7CiB9CiAKLXZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5
IHJlZmVycmVyUG9saWN5LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCit2b2lkIFdv
cmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29s
IGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9u
b3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSwgV29y
a2VyVHlwZSB3b3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscywg
SlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZsYWdzKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5l
ZWQgdG8gYmUgcmV2aXNpdGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkK
ICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKQEAgLTg5LDcgKzg5LDcgQEAg
dm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBV
UkwmIHNjcmlwdFVSTCwgY29uc3QgU3QKIAogICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92
aWRlciA9IGRvY3VtZW50LnNvY2tldFByb3ZpZGVyKCk7CiAKLSAgICBXb3JrZXJQYXJhbWV0ZXJz
IHBhcmFtcyA9IHsgc2NyaXB0VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25s
aW5lLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ks
IGRvY3VtZW50LnNldHRpbmdzVmFsdWVzKCkgfTsKKyAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFt
cyA9IHsgc2NyaXB0VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIHdvcmtl
clR5cGUsIGNyZWRlbnRpYWxzLCBkb2N1bWVudC5zZXR0aW5nc1ZhbHVlcygpIH07CiAgICAgYXV0
byB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShwYXJhbXMsIHNvdXJjZUNv
ZGUsICp0aGlzLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwgZG9jdW1lbnQudG9wT3JpZ2luKCks
IHByb3h5LCBzb2NrZXRQcm92aWRlciwgcnVudGltZUZsYWdzKTsKIAogICAgIHdvcmtlclRocmVh
ZENyZWF0ZWQodGhyZWFkLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuaAppbmRleCBjNWI1NzViOWU2MTViM2YzZjU5NmJmYzNkZjY4M2M4Nzdj
YzYyYmFiLi4yZTIzMTY5ZjA3OTNmMGRjZjgwOGE5YmNmYjU4ZTZjOTA4YzZjYzkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC01MCw3ICs1
MCw3IEBAIGNsYXNzIFdvcmtlck1lc3NhZ2luZ1Byb3h5IGZpbmFsIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFdvcmtlck1lc3NhZ2luZ1ByCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVu
dGF0aW9ucyBvZiBXb3JrZXJHbG9iYWxTY29wZVByb3h5LgogICAgIC8vIChPbmx5IHVzZSB0aGVz
ZSBmdW5jdGlvbnMgaW4gdGhlIHdvcmtlciBvYmplY3QgdGhyZWFkLikKLSAgICB2b2lkIHN0YXJ0
V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYg
c291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwg
Ym9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25p
Y1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzKSBmaW5h
bDsKKyAgICB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkws
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxp
bmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtl
clR5cGUgd29ya2VyVHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIEpT
Qzo6UnVudGltZUZsYWdzKSBmaW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckdsb2JhbFNj
b3BlKCkgZmluYWw7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFsU2NvcGUoTWVz
c2FnZVdpdGhNZXNzYWdlUG9ydHMmJikgZmluYWw7CiAgICAgdm9pZCBwb3N0VGFza1RvV29ya2Vy
R2xvYmFsU2NvcGUoRnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+JiYpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggY2Q0ZWMyNDY4MjUyNWFhYmM2NDJkODc3YTBk
YTAxMWViZGUxMTQzMS4uNzNkM2U5NmQ4MGI1ZTJlYzAyNWU2ZWYwNjJkYzk5YTg4NTRkMWY1ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zNSw2ICszNSw5IEBACiAjaW5jbHVkZSAiSlNFeGVj
U3RhdGUuaCIKICNpbmNsdWRlICJKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVk
ZSAiSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJMb2FkYWJsZU1vZHVs
ZVNjcmlwdC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoRmFpbHVyZUtpbmQuaCIKKyNpbmNsdWRl
ICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnNv
bGVDbGllbnQuaCIKQEAgLTQzLDcgKzQ2LDExIEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
RXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uSGVscGVycy5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dDQWN0aXZpdHlDYWxsYmFjay5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNMb2NrLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNOYXRpdmVTdGRG
dW5jdGlvbi5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2NyaXB0RmV0Y2hQYXJhbWV0
ZXJzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRjaGVyLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0yMjgsNyArMjM1LDEyNCBAQCB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZAogICAgIH0K
IH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgSlNHbG9iYWxTY29wZVByb3RvdHlwZSwgdHlwZW5hbWUg
SlNHbG9iYWxTY29wZSwgdHlwZW5hbWUgR2xvYmFsU2NvcGU+CitzdGF0aWMgSWRlbnRpZmllciBq
c1ZhbHVlVG9Nb2R1bGVLZXkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVy
biBJZGVudGlmaWVyOjpmcm9tVWlkKGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1l
KCkpOworICAgIEFTU0VSVCh2YWx1ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gYXNTdHJpbmco
dmFsdWUpLT50b0lkZW50aWZpZXIobGV4aWNhbEdsb2JhbE9iamVjdCk7Cit9CisKK01lc3NhZ2VR
dWV1ZVdhaXRSZXN1bHQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVs
ZVN5bmNocm9ub3VzbHkoTG9hZGFibGVNb2R1bGVTY3JpcHQmIG1vZHVsZVNjcmlwdCwgY29uc3Qg
U2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3Ji
aWRkZW4oKSkKKyAgICAgICAgcmV0dXJuIE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQ7CisKKyAgICBp
bml0U2NyaXB0SWZOZWVkZWQoKTsKKworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2Jh
bFNjb3BlV3JhcHBlci5nZXQoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAg
ICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisKKyAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVj
U3RhdGU6OmxvYWRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgp
LCBKU0M6OkpTU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKHZtLCB7ICZtb2R1bGVTY3JpcHQgfSkpOwor
CisgICAgUmVmUHRyPExvYWRhYmxlTW9kdWxlU2NyaXB0PiBtb2R1bGVTY3JpcHRSZWYoJm1vZHVs
ZVNjcmlwdCk7CisKKyAgICBhdXRvJiBmdWxmaWxsSGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0
aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbbW9kdWxlU2NyaXB0
UmVmXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkg
LT4gSlNDOjpFbmNvZGVkSlNWYWx1ZSB7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CisgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CisgICAgICAgICAgICBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGpzVmFsdWVUb01vZHVsZUtl
eShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOworICAgICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgICAgIG1vZHVsZVNjcmlwdFJl
Zi0+bm90aWZ5TG9hZENvbXBsZXRlZCgqbW9kdWxlS2V5LmltcGwoKSk7CisgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgfSk7CisK
KyAgICBhdXRvJiByZWplY3RIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZSh2
bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFttb2R1bGVTY3JpcHRSZWZdKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSB7CisgICAgICAgICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAgICAgICBKU1ZhbHVlIGVycm9y
VmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOworICAgICAgICAgICAgaWYgKGVycm9yVmFs
dWUuaXNPYmplY3QoKSkgeworICAgICAgICAgICAgYXV0byogb2JqZWN0ID0gSlNDOjphc09iamVj
dChlcnJvclZhbHVlKTsKKyAgICAgICAgICAgIGlmIChKU1ZhbHVlIGZhaWx1cmVLaW5kVmFsdWUg
PSBvYmplY3QtPmdldERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEmPigqdm0u
Y2xpZW50RGF0YSkuYnVpbHRpbk5hbWVzKCkuZmFpbHVyZUtpbmRQcml2YXRlTmFtZSgpKSkgewor
ICAgICAgICAgICAgLy8gVGhpcyBpcyBob3N0IHByb3BhZ2F0ZWQgZXJyb3IgaW4gdGhlIG1vZHVs
ZSBsb2FkZXIgcGlwZWxpbmUuCisgICAgICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PE1vZHVs
ZUZldGNoRmFpbHVyZUtpbmQ+KGZhaWx1cmVLaW5kVmFsdWUuYXNJbnQzMigpKSkgeworICAgICAg
ICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkOgorICAgICAgICAg
ICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJv
ciB7CisgICAgICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpFcnJvclR5cGU6OkNhY2hl
ZFNjcmlwdCwKKyAgICAgICAgICAgICAgICAgICAgV1RGOjpudWxsb3B0CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE1vZHVsZUZl
dGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkOgorICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVm
LT5ub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5u
b3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAg
ICAgIExvYWRhYmxlU2NyaXB0OjpFcnJvclR5cGU6OkNhY2hlZFNjcmlwdCwKKyAgICAgICAgICAg
ICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkNvbnNvbGVNZXNzYWdlIHsKKyAgICAgICAgICAgICAg
ICAgICAgTWVzc2FnZVNvdXJjZTo6SlMsCisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VMZXZl
bDo6RXJyb3IsCisgICAgICAgICAgICAgICAgICAgIHJldHJpZXZlRXJyb3JNZXNzYWdlKCpnbG9i
YWxPYmplY3QsIHZtLCBlcnJvclZhbHVlLCBzY29wZSksCisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0pOworCisgICAgcHJvbWlzZS50aGVuKCZnbG9iYWxP
YmplY3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRsZXIpOworCisgICAgLy8gRHJpdmUg
UnVuTG9vcCB1bnRpbCB3ZSBnZXQgZWl0aGVyIG9mICJXb3JrZXIgaXMgdGVybWluYXRlZCIsICJM
b2FkaW5nIGlzIGRvbmUiLCBvciAiTG9hZGluZyBpcyBmYWlsZWQiLgorICAgIFdvcmtlclJ1bkxv
b3AmIHJ1bkxvb3AgPSBtX2dsb2JhbFNjb3BlLT53b3JrZXJPcldvcmtsZXRUaHJlYWQoKS0+cnVu
TG9vcCgpOworICAgIFN0cmluZyBtb2RlID0gbWFrZVN0cmluZygibG9hZE1vZHVsZVN5bmNocm9u
b3VzbHkiLCBydW5Mb29wLmNyZWF0ZVVuaXF1ZUlkKCkpOworCisgICAgTWVzc2FnZVF1ZXVlV2Fp
dFJlc3VsdCByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQ7CisgICAgd2hpbGUg
KCghbW9kdWxlU2NyaXB0UmVmLT5pc0xvYWRlZCgpIHx8ICFtb2R1bGVTY3JpcHRSZWYtPndhc0Nh
bmNlbGVkKCkpICYmIHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKQorICAgICAgICBy
ZXN1bHQgPSBydW5Mb29wLnJ1bkluTW9kZShtX2dsb2JhbFNjb3BlLCBtb2RlKTsKKworICAgIC8v
IEZJWE1FOiBDdXJyZW50bHkgd2UgYXJlIG5vdCBvZmZlcmluZyBjYW5jZWxsaW5nLgorICAgIC8v
IGlmICghbG9hZGVyLT5kb25lKCkgJiYgcmVzdWx0ID09IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQp
CisgICAgLy8gICAgIGxvYWRlci0+Y2FuY2VsKCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Cit2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1v
ZHVsZShMb2FkYWJsZU1vZHVsZVNjcmlwdCYgbW9kdWxlU2NyaXB0LCBjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiBzb3VyY2VDb2RlLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSkKK3sK
KyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9i
YWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7Cisg
ICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworCisgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRp
b24+IHJldHVybmVkRXhjZXB0aW9uOworICAgIEpTRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVN
b2R1bGUoZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBtb2R1bGVTY3JpcHQu
bW9kdWxlS2V5KCkpLCBqc1VuZGVmaW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYg
KChyZXR1cm5lZEV4Y2VwdGlvbiAmJiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0s
IHJldHVybmVkRXhjZXB0aW9uKSkgfHwgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAg
ICAgIGZvcmJpZEV4ZWN1dGlvbigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KHJldHVybmVkRXhjZXB0aW9uKSB7CisgICAgICAgIGlmIChtX2dsb2JhbFNjb3BlLT5jYW5JbmNs
dWRlRXJyb3JEZXRhaWxzKHNvdXJjZUNvZGUuY2FjaGVkU2NyaXB0KCksIHNvdXJjZUNvZGUudXJs
KCkuc3RyaW5nKCkpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhh
dCB0aGlzIGNhbiBydW4gYXJiaXRyYXJ5IGNvZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2Yg
dGhlIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgIC8vIERvIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcg
dG8gaGFuZGxlIHRoYXQgcHJvcGVybHksIGlmIGl0LCBzYXksIHJhaXNlcyBhbm90aGVyIGV4Y2Vw
dGlvbj8KKyAgICAgICAgICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAg
ICAgICAgICAgKnJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IHJldHVybmVkRXhjZXB0aW9uLT52
YWx1ZSgpLnRvV1RGU3RyaW5nKCZnbG9iYWxPYmplY3QpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgLy8gT3ZlcndyaXRlIHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBl
cnJvci4KKyAgICAgICAgICAgIFN0cmluZyBnZW5lcmljRXJyb3JNZXNzYWdlIHsgIlNjcmlwdCBl
cnJvci4iX3MgfTsKKyAgICAgICAgICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisg
ICAgICAgICAgICAgICAgKnJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IGdlbmVyaWNFcnJvck1l
c3NhZ2U7CisgICAgICAgICAgICByZXR1cm5lZEV4Y2VwdGlvbiA9IEpTQzo6RXhjZXB0aW9uOjpj
cmVhdGUodm0sIGNyZWF0ZUVycm9yKCZnbG9iYWxPYmplY3QsIGdlbmVyaWNFcnJvck1lc3NhZ2Up
KTsKKyAgICAgICAgfQorICAgIH0KK30KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEpTR2xvYmFs
U2NvcGVQcm90b3R5cGUsIHR5cGVuYW1lIEpTR2xvYmFsU2NvcGUsIHR5cGVuYW1lIEdsb2JhbFNj
b3BlPgogdm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0V2l0
aFN1YmNsYXNzKCkKIHsKICAgICBBU1NFUlQoIW1fZ2xvYmFsU2NvcGVXcmFwcGVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmgKaW5kZXggYzQ5MzAxYWVkM2RkMDg5ZGE3OTczMjc2MGNhZjJmN2I2NGRiMTFiNi4u
ZmYxYTg5YTIzZGY1ZjFiMDkwYjY4OGI5NTAwMDJkNDUyZmNlZTE3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BU
aW1lci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4K
KyNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL05ha2VkUHRyLmg+
CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDQsNiArNDUsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVj
dDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFz
cyBMb2FkYWJsZU1vZHVsZVNjcmlwdDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBX
b3JrZXJDb25zb2xlQ2xpZW50OwogY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU7CkBA
IC05NCw2ICs5Niw5IEBAIGNsYXNzIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewog
ICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIFN0cmluZyogcmV0dXJu
ZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2Vw
dGlvbiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKIAorICAg
IHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlKExvYWRhYmxlTW9kdWxlU2NyaXB0JiwgY29uc3Qg
U2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1l
c3NhZ2UgPSBudWxscHRyKTsKKyAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IGxvYWRNb2R1bGVT
eW5jaHJvbm91c2x5KExvYWRhYmxlTW9kdWxlU2NyaXB0JiwgY29uc3QgU2NyaXB0U291cmNlQ29k
ZSYpOworCiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGdsb2Jh
bFNjb3BlKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxTY29wZTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggNzI3OTBhMDMzMjI2MTllNmVlN2U2MTZhOGJk
ZTE4YmQ1NTJhNTc4My4uODc5MDExOWMxNzYyMjRlMjkxMzI3Njg3NDhkYTFlYTA1NTM1NTFhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMjgsNiArMjgsNyBA
QAogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogCiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblBy
b3h5LmgiCisjaW5jbHVkZSAiTG9hZGFibGVNb2R1bGVTY3JpcHQuaCIKICNpbmNsdWRlICJTY3Jp
cHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJT
b2NrZXRQcm92aWRlci5oIgpAQCAtNTUsNiArNTYsOCBAQCBXb3JrZXJQYXJhbWV0ZXJzIFdvcmtl
clBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgICAgIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwKICAgICAgICAgdGltZU9yaWdpbiwKICAgICAg
ICAgcmVmZXJyZXJQb2xpY3ksCisgICAgICAgIHdvcmtlclR5cGUsCisgICAgICAgIGNyZWRlbnRp
YWxzLAogICAgICAgICBzZXR0aW5nc1ZhbHVlcy5pc29sYXRlZENvcHkoKQogICAgIH07CiB9CkBA
IC0xMjMsOSArMTI2LDMyIEBAIGJvb2wgV29ya2VyVGhyZWFkOjpzaG91bGRXYWl0Rm9yV2ViSW5z
cGVjdG9yT25TdGFydHVwKCkgY29uc3QKIAogdm9pZCBXb3JrZXJUaHJlYWQ6OmV2YWx1YXRlU2Ny
aXB0SWZOZWNlc3NhcnkoU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQogewotICAgIGdsb2JhbFNj
b3BlKCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEt
PnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNl
cHRpb25NZXNzYWdlKTsKLQotICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAgIC8v
IFdlIGFyZSBjdXJyZW50bHkgaG9sZGluZyBvbmx5IHRoZSBpbml0aWFsIHNjcmlwdCBjb2RlLiBJ
ZiB0aGUgV29ya2VyVHlwZSBpcyBNb2R1bGUsIHdlIHNob3VsZCBmZXRjaCB0aGUgZW50aXJlIGdy
YXBoIGJlZm9yZSBleGVjdXRpbmcgdGhlIHJlc3Qgb2YgdGhpcy4KKyAgICAvLyBXZSBpbnZva2Ug
bW9kdWxlIGxvYWRlciBhcyBpZiB3ZSBhcmUgZXhlY3V0aW5nIGlubGluZSBtb2R1bGUgc2NyaXB0
IHRhZyBpbiBEb2N1bWVudC4KKworICAgIGlmIChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMud29ya2Vy
VHlwZSA9PSBXb3JrZXJUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgIGdsb2JhbFNjb3BlKCktPnNj
cmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJjZUNv
ZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25NZXNz
YWdlKTsKKyAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgLy8gRklYTUUgY3Jvc3NPcmlnaW4gbW9kZSBzaG91bGQgYmUgY29udmVydGVkLgor
ICAgICAgICAvLyBGSVhNRSBmaXggaW5pdGlhdG9yIG5hbWUuCisgICAgICAgIC8vIEZJWE1FIHBh
c3MgVVJMIHRvIG1vZHVsZSBsb2FkZXIuCisgICAgICAgIGRhdGFMb2dMbigiV09SS0VSIE1PRFVM
RSIpOworICAgICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+
c291cmNlQ29kZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKTsKKyAgICAg
ICAgYXV0byBtb2R1bGVTY3JpcHQgPSBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6Y3JlYXRlKGVtcHR5
U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksIG1fc3RhcnR1cERhdGEtPnBhcmFtcy5yZWZlcnJlclBv
bGljeSwgU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXI6OmRlZmF1bHRDcm9zc09yaWdp
bk1vZGVGb3JNb2R1bGUsIGVtcHR5U3RyaW5nKCksIGVtcHR5QXRvbSgpLCBmYWxzZSk7CisgICAg
ICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcmVzdWx0ID0gZ2xvYmFsU2NvcGUoKS0+c2NyaXB0
KCktPmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KG1vZHVsZVNjcmlwdC5nZXQoKSwgc291cmNlQ29k
ZSk7CisgICAgICAgIGRhdGFMb2dMbigiV09SS0VSIE1PRFVMRSBGRVRDSEVEIik7CisgICAgICAg
IGlmIChyZXN1bHQgIT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgeworICAgICAgICAgICAgaWYg
KCFtb2R1bGVTY3JpcHQtPmVycm9yKCkgJiYgIW1vZHVsZVNjcmlwdC0+d2FzQ2FuY2VsZWQoKSkg
eworICAgICAgICAgICAgICAgIC8vIEV2YWx1YXRlLgorICAgICAgICAgICAgICAgIGdsb2JhbFNj
b3BlKCktPnNjcmlwdCgpLT5saW5rQW5kRXZhbHVhdGVNb2R1bGUobW9kdWxlU2NyaXB0LmdldCgp
LCBzb3VyY2VDb2RlLCAmZXhjZXB0aW9uTWVzc2FnZSk7CisgICAgICAgICAgICAgICAgZGF0YUxv
Z0xuKCJXT1JLRVIgTU9EVUxFIEVWQUxVQVRFRCIpOworICAgICAgICAgICAgICAgIGZpbmlzaGVk
RXZhbHVhdGluZ1NjcmlwdCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAvLyBGSVhNRSBUaHJvdyBhbiBlcnJvci4KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KIAogICAgIC8vIEZyZWUgdGhlIHN0YXJ0dXAgZGF0YSB0byBjYXVzZSBpdHMgbWVtYmVyIHZh
cmlhYmxlIGRlcmVmJ3MgaGFwcGVuIG9uIHRoZSB3b3JrZXIncyB0aHJlYWQgKHNpbmNlCiAgICAg
Ly8gYWxsIHJlZi9kZXJlZnMgb2YgdGhlc2Ugb2JqZWN0cyBhcmUgaGFwcGVuaW5nIG9uIHRoZSB0
aHJlYWQgYXQgdGhpcyBwb2ludCkuIE5vdGUgdGhhdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmgKaW5kZXggODg5MDc5MDhlN2E5YjgwOWU4ZjJhNGU0NzNkNzUyZDExZDI5MzdjMC4u
OTUxMmVmZGIxOGYzMmE1MGVjYjdmYjU2OTU5ZDYxZTg4NzJmYTFkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC0yNiw3ICsyNiwxMCBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNs
dWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xl
dFRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJU
eXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVk
ZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTYzLDYgKzY2LDggQEAgc3RydWN0
IFdvcmtlclBhcmFtZXRlcnMgewogICAgIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5OwogICAgIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbjsKICAgICBSZWZl
cnJlclBvbGljeSByZWZlcnJlclBvbGljeTsKKyAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7Cisg
ICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7CiAgICAgU2V0dGluZ3M6OlZh
bHVlcyBzZXR0aW5nc1ZhbHVlczsKIAogICAgIFdvcmtlclBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IGM4YTdhOTk3MmY5Y2M4
YzE2YTc5Njc1MTE1NTJmNTQ5M2E2ODZmOTguLjMzY2EwZWMyM2I1OGE1NTExODc2ODQ2YmEwNzE4
MzUzMmI1YzQ3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC03Myw4ICs3Myw5
IEBAIGNsYXNzIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5IDogcHVibGljIFdvcmtlck9i
amVjdFByb3h5IHsKIC8vIEZJWE1FOiBVc2UgYSB2YWxpZCBXb3JrZXJPYmplY3RQcm94eQogLy8g
RklYTUU6IFVzZSB2YWxpZCBydW50aW1lIGZsYWdzCiAKKy8vIEZJWE1FOiBVc2UgYSB2YWxpZCBX
b3JrZXJUeXBlIGFuZCBDcmVkZW50YWlscyBmb3IgbW9kdWxlIHNlcnZpY2Ugd29ya2Vycy4KIFNl
cnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhJiBkYXRhLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGNvbnN0IFNldHRpbmdzOjpW
YWx1ZXMmIHNldHRpbmdzVmFsdWVzLCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdv
cmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2VyUHJveHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlv
blByb3h5KiBpZGJDb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRl
cikKLSAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0eVN0cmluZygpLCAi
c2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlk
ZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9h
ZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZh
bHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9LCBzZXR0aW5nc1ZhbHVlcyB9LCBkYXRhLnNj
cmlwdCwgbG9hZGVyUHJveHksIGRlYnVnZ2VyUHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVh
ZFByb3h5OjpzaGFyZWQoKSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIGRhdGEucmVn
aXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5zZWN1cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25u
ZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxs
RW5hYmxlZCgpKQorICAgIDogV29ya2VyVGhyZWFkKHsgZGF0YS5zY3JpcHRVUkwsIGVtcHR5U3Ry
aW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6
Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHVzZXJBZ2VudCksIHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09uTGluZSgpLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBv
bGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6Om5vdygpLCB7IH0sIFdvcmtlclR5cGU6OkNsYXNz
aWMsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzOjpTYW1lT3JpZ2luLCBzZXR0aW5nc1ZhbHVlcyB9
LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRlYnVnZ2VyUHJveHksIER1bW15U2VydmljZVdv
cmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWws
IGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5zZWN1cml0eU9yaWdpbigpLmdldCgp
LCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6
Y3JlYXRlQWxsRW5hYmxlZCgpKQogICAgICwgbV9kYXRhKGRhdGEuaXNvbGF0ZWRDb3B5KCkpCiAg
ICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpz
aGFyZWQoKSkKICAgICAsIG1faGVhcnRCZWF0VGltZW91dChTV0NvbnRleHRNYW5hZ2VyOjpzaW5n
bGV0b24oKS5jb25uZWN0aW9uKCktPnNob3VsZFVzZVNob3J0VGltZW91dCgpID8gaGVhcnRCZWF0
VGltZW91dEZvclRlc3QgOiBoZWFydEJlYXRUaW1lb3V0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419694</attachid>
            <date>2021-02-09 03:04:39 -0800</date>
            <delta_ts>2021-02-09 20:26:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210209030438.patch</filename>
            <type>text/plain</type>
            <size>68550</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZlNjA0YWRhNjJiNWRm
MmIzMzA0MTk0ZTc2ZGNkNzNjMzdjN2E3NC4uMDNhOTdjYzllOGM2ZTAyOTEyMmNjMDVjNmNlNmMw
MmZhN2VjOWFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDIxLTAyLTA5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBX
b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0Nh
Y2hlZFNjcmlwdEZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0
Y2hlcjo6cmVxdWVzdE1vZHVsZVNjcmlwdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRTY3JpcHRGZXRjaGVyOjpyZXF1ZXN0U2NyaXB0V2l0aENhY2hlIGNvbnN0KToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0TW9kdWxl
TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2Fk
ZXJSZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVM
b2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1v
ZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdp
bmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJD
cmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNj
b3BlQmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6U2NyaXB0TW9kdWxlTG9h
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVNb2R1bGVTcGVjaWZpZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNvbHZlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
TW9kdWxlTG9hZGVyOjptb2R1bGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxl
TG9hZGVyOjpyZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9k
dWxlTG9hZGVyOjppbXBvcnRNb2R1bGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1v
ZHVsZUxvYWRlci5oOgorICAgICAgICAqIGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZCk6IERlbGV0ZWQuCisg
ICAgICAgICogZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0Lmg6CisgICAgICAgICogZG9tL1Njcmlw
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdE1v
ZHVsZVNjcmlwdCk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRj
aGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRj
aGVyOjpyZXF1ZXN0TW9kdWxlU2NyaXB0IGNvbnN0KToKKyAgICAgICAgKiBkb20vU2NyaXB0RWxl
bWVudENhY2hlZFNjcmlwdEZldGNoZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Oldvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVk
KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
LmlkbDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQ
cm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU6
Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9k
dWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI6OmV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmRyaXZlUnVuTG9vcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9k
dWxlU3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyUnVuTG9vcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW5Mb29wOjpwb3N0VGFz
a0FuZFRlcm1pbmF0ZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyUGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6ZXZhbHVhdGVTY3JpcHRJZk5lY2Vzc2FyeSk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQpOgorCiAyMDIxLTAyLTA3
ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjI3MjM3OSkgW1dQRV0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tYXRobWwvcmVs
YXRpb25zL2Nzcy1zdHlsaW5nL21hdGh2YXJpYW50IHRlc3RzIGFyZSBJbWFnZSBGYWlsaW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyLmNwcAppbmRleCAzNTJkY2M0YWNmNzUxNzZkOThhZDM0MTBiZTE1MTYwODAxMDg4NTI0
Li45YmNjYjdjMmMyNTIwNWZiMGIwYzJlNmZiZDU3MTEwYmU1NjJhODI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5j
cHAKQEAgLTYxLDExICs2MSwxMSBAQCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6On5DYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIoKQogICAgIH0KIH0KIAotYm9vbCBDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXI6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNvdXJjZVVSTCkKK2Jv
b2wgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIGNvbnN0IFVSTCYgc291cmNlVVJMKQogewogICAgIEFTU0VSVCghbV9jYWNoZWRT
Y3JpcHQpOwogICAgIFN0cmluZyBpbnRlZ3JpdHkgPSBtX3BhcmFtZXRlcnMgPyBtX3BhcmFtZXRl
cnMtPmludGVncml0eSgpIDogU3RyaW5nIHsgfTsKLSAgICBtX2NhY2hlZFNjcmlwdCA9IG1fc2Ny
aXB0RmV0Y2hlci0+cmVxdWVzdE1vZHVsZVNjcmlwdChkb2N1bWVudCwgc291cmNlVVJMLCBXVEZN
b3ZlKGludGVncml0eSkpOworICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9zY3JpcHRGZXRjaGVyLT5y
ZXF1ZXN0TW9kdWxlU2NyaXB0KGNvbnRleHQsIHNvdXJjZVVSTCwgV1RGTW92ZShpbnRlZ3JpdHkp
KTsKICAgICBpZiAoIW1fY2FjaGVkU2NyaXB0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
bV9zb3VyY2VVUkwgPSBzb3VyY2VVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCmluZGV4IDQzYWJkODc1YjI0M2ZhZjVm
Y2Q0ZDk4ZWMzYzVkMjRlNzkwYjU3MmUuLjhlMjM1ZmViODZjYmExNDllODQ2NjdmODFhZWY2MmJh
MTJhMmU1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0zOCw5ICszOCw5IEBAIGNsYXNzIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIENhY2hlZFNj
cmlwdEZldGNoZXI7CiBjbGFzcyBEZWZlcnJlZFByb21pc2U7Ci1jbGFzcyBEb2N1bWVudDsKIGNs
YXNzIEpTRE9NR2xvYmFsT2JqZWN0OwogY2xhc3MgTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzOworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiwg
cHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiBwdWJsaWM6CkBAIC00OCw3ICs0OCw3IEBA
IGNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVk
PENhY2hlZE1vZHVsZVNjcmlwdExvYWRlCiAKICAgICB2aXJ0dWFsIH5DYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIoKTsKIAotICAgIGJvb2wgbG9hZChEb2N1bWVudCYsIGNvbnN0IFVSTCYgc291cmNl
VVJMKTsKKyAgICBib29sIGxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFVSTCYg
c291cmNlVVJMKTsKIAogICAgIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIoKSB7
IHJldHVybiBtX3NjcmlwdEZldGNoZXIuZ2V0KCk7IH0KICAgICBDYWNoZWRTY3JpcHQqIGNhY2hl
ZFNjcmlwdCgpIHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LmdldCgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwCmluZGV4IGE0MzM3
NTg2NWJiZjFlYzU5NzNiZjE3MmM5MWEzODUzMjM0ZTM3NGQuLmE1YWFiZGI2ZWJmZTdiMGJkNWFh
ZjI1M2Q4ZTlhOTBmMjY1MDhiODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsMzIgKzQxLDM5IEBAIFJlZjxDYWNoZWRT
Y3JpcHRGZXRjaGVyPiBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBj
aGFyc2V0KQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hlZFNjcmlwdEZldGNoZXIoY2hh
cnNldCkpOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFNj
cmlwdEZldGNoZXI6OnJlcXVlc3RNb2R1bGVTY3JpcHQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBVUkwmIHNvdXJjZVVSTCwgU3RyaW5nJiYgaW50ZWdyaXR5KSBjb25zdAorQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRTY3JpcHRGZXRjaGVyOjpyZXF1ZXN0TW9kdWxl
U2NyaXB0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFVSTCYgc291cmNl
VVJMLCBTdHJpbmcmJiBpbnRlZ3JpdHkpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHJlcXVlc3RTY3Jp
cHRXaXRoQ2FjaGUoZG9jdW1lbnQsIHNvdXJjZVVSTCwgU3RyaW5nIHsgfSwgV1RGTW92ZShpbnRl
Z3JpdHkpLCB7IH0pOworICAgIHJldHVybiByZXF1ZXN0U2NyaXB0V2l0aENhY2hlKGNvbnRleHQs
IHNvdXJjZVVSTCwgU3RyaW5nIHsgfSwgV1RGTW92ZShpbnRlZ3JpdHkpLCB7IH0pOwogfQogCi1D
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFNjcmlwdEZldGNoZXI6OnJl
cXVlc3RTY3JpcHRXaXRoQ2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNvdXJj
ZVVSTCwgY29uc3QgU3RyaW5nJiBjcm9zc09yaWdpbk1vZGUsIFN0cmluZyYmIGludGVncml0eSwg
T3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+IHJlc291cmNlTG9hZFByaW9yaXR5KSBjb25z
dAorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRTY3JpcHRGZXRjaGVy
OjpyZXF1ZXN0U2NyaXB0V2l0aENhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFVSTCYgc291cmNlVVJMLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSwgU3Ry
aW5nJiYgaW50ZWdyaXR5LCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4gcmVzb3VyY2VM
b2FkUHJpb3JpdHkpIGNvbnN0CiB7Ci0gICAgaWYgKCFkb2N1bWVudC5zZXR0aW5ncygpLmlzU2Ny
aXB0RW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAvLyBXaXRob3V0IHNj
cmlwdGluZywgdGhlcmUgaXMgbm8gd2F5IHRvIHN0YXJ0IFdvcmtlcnMuCisgICAgaWYgKGlzPERv
Y3VtZW50Pihjb250ZXh0KSkgeworICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERv
Y3VtZW50Pihjb250ZXh0KTsKKyAgICAgICAgaWYgKCFkb2N1bWVudC5zZXR0aW5ncygpLmlzU2Ny
aXB0RW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBBU1NFUlQo
ZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCkpOwotICAgIGJvb2wgaGFzS25vd25Ob25j
ZSA9IGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd1NjcmlwdFdpdGhOb25j
ZShtX25vbmNlLCBtX2lzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKLSAgICBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVz
b3VyY2VPcHRpb25zKCk7Ci0gICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0
aW9uID0gaGFzS25vd25Ob25jZSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNr
aXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5
Q2hlY2s7Ci0gICAgb3B0aW9ucy5zYW1lT3JpZ2luRGF0YVVSTEZsYWcgPSBTYW1lT3JpZ2luRGF0
YVVSTEZsYWc6OlNldDsKLSAgICBvcHRpb25zLmludGVncml0eSA9IFdURk1vdmUoaW50ZWdyaXR5
KTsKLSAgICBvcHRpb25zLnJlZmVycmVyUG9saWN5ID0gbV9yZWZlcnJlclBvbGljeTsKKyAgICAg
ICAgQVNTRVJUKGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpKTsKKyAgICAgICAgYm9v
bCBoYXNLbm93bk5vbmNlID0gZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93
U2NyaXB0V2l0aE5vbmNlKG1fbm9uY2UsIG1faXNJblVzZXJBZ2VudFNoYWRvd1RyZWUpOworICAg
ICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVy
OjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CisgICAgICAgIG9wdGlvbnMuY29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IGhhc0tub3duTm9uY2UgPyBDb250ZW50U2VjdXJp
dHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xp
Y3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrOworICAgICAgICBvcHRpb25zLnNhbWVPcmlnaW5E
YXRhVVJMRmxhZyA9IFNhbWVPcmlnaW5EYXRhVVJMRmxhZzo6U2V0OworICAgICAgICBvcHRpb25z
LmludGVncml0eSA9IFdURk1vdmUoaW50ZWdyaXR5KTsKKyAgICAgICAgb3B0aW9ucy5yZWZlcnJl
clBvbGljeSA9IG1fcmVmZXJyZXJQb2xpY3k7CiAKLSAgICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVQ
b3RlbnRpYWxBY2Nlc3NDb250cm9sUmVxdWVzdChzb3VyY2VVUkwsIFdURk1vdmUob3B0aW9ucyks
IGRvY3VtZW50LCBjcm9zc09yaWdpbk1vZGUpOwotICAgIHJlcXVlc3QudXBncmFkZUluc2VjdXJl
UmVxdWVzdElmTmVlZGVkKGRvY3VtZW50KTsKLSAgICByZXF1ZXN0LnNldENoYXJzZXQobV9jaGFy
c2V0KTsKLSAgICByZXF1ZXN0LnNldFByaW9yaXR5KFdURk1vdmUocmVzb3VyY2VMb2FkUHJpb3Jp
dHkpKTsKLSAgICBpZiAoIW1faW5pdGlhdG9yTmFtZS5pc051bGwoKSkKLSAgICAgICAgcmVxdWVz
dC5zZXRJbml0aWF0b3IobV9pbml0aWF0b3JOYW1lKTsKKyAgICAgICAgYXV0byByZXF1ZXN0ID0g
Y3JlYXRlUG90ZW50aWFsQWNjZXNzQ29udHJvbFJlcXVlc3Qoc291cmNlVVJMLCBXVEZNb3ZlKG9w
dGlvbnMpLCBkb2N1bWVudCwgY3Jvc3NPcmlnaW5Nb2RlKTsKKyAgICAgICAgcmVxdWVzdC51cGdy
YWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQoZG9jdW1lbnQpOworICAgICAgICByZXF1ZXN0LnNl
dENoYXJzZXQobV9jaGFyc2V0KTsKKyAgICAgICAgcmVxdWVzdC5zZXRQcmlvcml0eShXVEZNb3Zl
KHJlc291cmNlTG9hZFByaW9yaXR5KSk7CisgICAgICAgIGlmICghbV9pbml0aWF0b3JOYW1lLmlz
TnVsbCgpKQorICAgICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IobV9pbml0aWF0b3JOYW1l
KTsKIAotICAgIHJldHVybiBkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RT
Y3JpcHQoV1RGTW92ZShyZXF1ZXN0KSkudmFsdWVfb3IobnVsbHB0cik7CisgICAgICAgIHJldHVy
biBkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RTY3JpcHQoV1RGTW92ZShy
ZXF1ZXN0KSkudmFsdWVfb3IobnVsbHB0cik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGF0YUxv
Z0xuKCJXT1JLRVIiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmgKaW5k
ZXggMjk5Mjg0ZGNmYjBjZjE4MTdkM2YyNjFjNWRiMTYwOTUxMWQ5YmMyOC4uNjE2N2JmZTVjZjQy
NGYxMDZmNWQ3ZWIyOTEwZWMwMTRlNTdmMjI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuaApAQCAtMzUsMTEgKzM1LDExIEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFNjcmlwdDsKLWNsYXNzIERvY3VtZW50Owor
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0RmV0Y2hl
ciA6IHB1YmxpYyBKU0M6OlNjcmlwdEZldGNoZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiByZXF1ZXN0TW9kdWxlU2NyaXB0KERvY3Vt
ZW50JiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIFN0cmluZyYmIGludGVncml0eSkgY29uc3Q7Cisg
ICAgdmlydHVhbCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RNb2R1
bGVTY3JpcHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBT
dHJpbmcmJiBpbnRlZ3JpdHkpIGNvbnN0OwogCiAgICAgc3RhdGljIFJlZjxDYWNoZWRTY3JpcHRG
ZXRjaGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKIApAQCAtNTgsNyArNTgsNyBA
QCBjbGFzcyBDYWNoZWRTY3JpcHRGZXRjaGVyIDogcHVibGljIEpTQzo6U2NyaXB0RmV0Y2hlciB7
CiAgICAgewogICAgIH0KIAotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4g
cmVxdWVzdFNjcmlwdFdpdGhDYWNoZShEb2N1bWVudCYsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBj
b25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSwgU3RyaW5nJiYgaW50ZWdyaXR5LCBPcHRpb25h
bDxSZXNvdXJjZUxvYWRQcmlvcml0eT4pIGNvbnN0OworICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFNjcmlwdD4gcmVxdWVzdFNjcmlwdFdpdGhDYWNoZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2Rl
LCBTdHJpbmcmJiBpbnRlZ3JpdHksIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PikgY29u
c3Q7CiAKIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fbm9uY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggNThiN2RmNzYwYzAwYTMx
ZmYwOGVkMjJkZWUyMmE4Yzc0NDNhZThkZC4uMTAyMjk1NDg0ZjY0YzE0ZDhmNGJhNzg3YTJhZWU2
ZDZiMzBiYTBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xv
YmFsT2JqZWN0LmNwcApAQCAtNDIyLDYgKzQyMiw3OSBAQCBKU0M6OkpTUHJvbWlzZSogSlNET01H
bG9iYWxPYmplY3Q6Omluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
bwogfQogI2VuZGlmCiAKK3N0YXRpYyBTY3JpcHRNb2R1bGVMb2FkZXIqIHNjcmlwdE1vZHVsZUxv
YWRlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU0RPTVdp
bmRvd0Jhc2U+KHZtKSkgeworICAgICAgICBpZiAoYXV0byBkb2N1bWVudCA9IGpzQ2FzdDxjb25z
dCBKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkuZG9jdW1lbnQoKSkK
KyAgICAgICAgICAgIHJldHVybiAmZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNS
ZW1vdGVET01XaW5kb3dCYXNlPih2bSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlm
IChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlPih2bSkpCisg
ICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKj4oZ2xv
YmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxvYWRlcigpOworICAgIGlmIChnbG9iYWxPYmpl
Y3QtPmluaGVyaXRzPEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZT4odm0pKQorICAgICAgICByZXR1
cm4gJmpzQ2FzdDxjb25zdCBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3Qp
LT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNJREJTZXJpYWxpemF0aW9uR2xvYmFs
T2JqZWN0Pih2bSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisgICAgZGF0YUxv
ZygiVW5leHBlY3RlZCBnbG9iYWwgb2JqZWN0OiAiLCBKU1ZhbHVlKGdsb2JhbE9iamVjdCksICJc
biIpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTQzo6SWRlbnRpZmllciBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVy
UmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVM
b2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1
ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7CisgICAg
SlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlwdE1vZHVs
ZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxvYWRlci0+cmVzb2x2ZShnbG9i
YWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1wb3J0ZXJNb2R1bGVLZXksIHNj
cmlwdEZldGNoZXIpOworICAgIHJldHVybiB7IH07Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21p
c2UqIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlND
OjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1
ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNET01HbG9iYWxP
YmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2Jh
bE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlz
T2JqZWN0KSkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBsb2FkZXItPmZldGNo
KGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIHBhcmFtZXRlcnMsIHNjcmlw
dEZldGNoZXIpKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNDOjpK
U0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlz
ZVN0cnVjdHVyZSgpKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7CisgICAgcHJvbWlzZS0+cmVqZWN0
KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CisK
K0pTQzo6SlNWYWx1ZSBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1
bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNv
cmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIEpTRE9NR2xvYmFsT2JqZWN0
KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmpl
Y3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVj
dCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmV2YWx1YXRlKGdsb2JhbE9iamVjdCwgbW9kdWxl
TG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0
dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNE
T01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlND
OjpKU1N0cmluZyogbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIGNvbnN0IEpT
Qzo6U291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAg
ICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9k
dWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IGxvYWRlci0+aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVO
YW1lLCBwYXJhbWV0ZXJzLCBzb3VyY2VPcmlnaW4pKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlKiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7
CisgICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7CisgICAg
cmV0dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNPYmplY3QqIEpTRE9NR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpK
U1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkLCBKU0M6
OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09i
amVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAg
ICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAg
ICAgICByZXR1cm4gbG9hZGVyLT5jcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhnbG9iYWxPYmpl
Y3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQsIHNjcmlwdEZldGNoZXIp
OworICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QtPnZtKCksIGds
b2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVyZSgpKTsKK30KKwogSlNET01H
bG9iYWxPYmplY3QmIGNhbGxlckdsb2JhbE9iamVjdChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUpCiB7CiAgICAgY2xhc3MgR2V0Q2FsbGVy
R2xvYmFsT2JqZWN0RnVuY3RvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01HbG9iYWxPYmplY3QuaAppbmRleCBiODQwNzJkZGQ3NDZiM2Q2YzUxMDYwZDkwNTAxYjVjZWEx
YjQ5OWIxLi5mNDlhNGNkMjU3MTk3MTE4OTE3YTdkN2E0YjZjMGUxMWZjNzZiYTc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTEwNSw2
ICsxMDUsMTIgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNET01HbG9iYWxPYmplY3QgOiBwdWJs
aWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CiAgICAgc3RhdGljIEpTQzo6SlNQcm9taXNlKiBpbnN0
YW50aWF0ZVN0cmVhbWluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTT2JqZWN0Kik7CiAjZW5kaWYKIAorICAgIHN0YXRpYyBKU0M6OklkZW50aWZpZXIgbW9kdWxl
TG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlcios
IEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBK
U0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVh
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFs
dWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVy
bmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0cmluZyosIEpTQzo6SlNWYWx1ZSwgY29u
c3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKKyAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogbW9kdWxl
TG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBK
U0M6OkpTVmFsdWUpOworCiAgICAgSlNET01TdHJ1Y3R1cmVNYXAgbV9zdHJ1Y3R1cmVzOwogICAg
IEpTRE9NQ29uc3RydWN0b3JNYXAgbV9jb25zdHJ1Y3RvcnM7CiAgICAgRE9NR3VhcmRlZE9iamVj
dFNldCBtX2d1YXJkZWRPYmplY3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAKaW5kZXggNTYzZWZhMDU3MWI1ZDQ2MmQ5ZTY0NTA4OWYwYmQ4Zjc3
ZDE5YTc2OC4uMzEyYTAxMTU4ZThjMjgwODNjMDdlNDJkYjg3MjQ1ZmU0ZTVjNTdhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0zMzks
NTQgKzMzOSw0IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJlRnJhbWVDbGVhcmVkV2F0Y2hw
b2ludHNGb3JXaW5kb3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAgfQogfQogCi1KU0M6OklkZW50
aWZpZXIgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBK
U0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBK
U0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNP
YmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwotICAg
IGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRv
Y3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkucmVzb2x2
ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1wb3J0ZXJNb2R1bGVL
ZXksIHNjcmlwdEZldGNoZXIpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLUpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBwYXJhbWV0ZXJzLCBKU0M6OkpT
VmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIEpTRE9NV2lu
ZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2Jh
bE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0
LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuZmV0Y2goZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2Fk
ZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hlcikpOwotICAgIEpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOwotICAgIHNjb3Bl
LnJlbGVhc2UoKTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5l
ZCgpKTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpKU1ZhbHVlIEpTRE9NV2luZG93
QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1
bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRj
aGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpT
RE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4g
ZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0
dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5ldmFsdWF0ZShnbG9iYWxPYmplY3QsIG1vZHVs
ZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQsIHNjcmlwdEZldGNoZXIpOwotICAgIHJl
dHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpT
RE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6
OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVycywgY29uc3QgSlND
OjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAg
IEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFz
ZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuaW1wb3J0TW9kdWxlKGdsb2JhbE9i
amVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0ZXJzLCBzb3VyY2VPcmlnaW4p
KTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFs
UHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVy
ZSgpKTsKLSAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9i
amVjdCwganNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIHByb21pc2U7Ci19Ci0KLUpTQzo6SlNP
YmplY3QqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3Bl
cnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNNb2R1bGVS
ZWNvcmQqIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCi17Ci0gICAg
SlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNl
Kj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRo
aXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQt
Pm1vZHVsZUxvYWRlcigpLmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdCwg
bW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7Ci0g
ICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFs
T2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkpOwotfQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5oCmluZGV4IDNlZjk4MGRkMjdmNmIyMTM5ODcwMDhiYTQ3NmM4Y2E2OWYyZjBiNjQuLjUxNDJi
MWM3ZGMyNWMyMmZlOTc4OTVlNzVhZTIyZWY0ZDFlNTg5ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC05OSwxMiArOTksNiBAQCBjbGFzcyBX
RUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd0Jhc2UgOiBwdWJsaWMgSlNET01HbG9iYWxPYmplY3Qg
ewogcHJpdmF0ZToKICAgICB1c2luZyBSZXNwb25zZUNhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2
b2lkKGNvbnN0IGNoYXIqLCBzaXplX3QpPjsKIAotICAgIHN0YXRpYyBKU0M6OklkZW50aWZpZXIg
bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxv
YWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0
YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1Zh
bHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgbW9kdWxlTG9hZGVy
RXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgSlNDOjpK
U0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0cmluZyosIEpTQzo6SlNWYWx1
ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKLSAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNNb2R1bGVSZWNv
cmQqLCBKU0M6OkpTVmFsdWUpOwotCiAgICAgUmVmUHRyPERPTVdpbmRvdz4gbV93cmFwcGVkOwog
ICAgIFJlZlB0cjxFdmVudD4gbV9jdXJyZW50RXZlbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDQy
YjI2YzlmNGVhMjE2MjA3ZGU0Yzg2ODIwYjhhODFiNjAzNWI3ZWIuLjJkNzkzZmZmMjE4NTNhOGEx
YTc4ODA2NjcyNTBmNTdlNzUyZmUzZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTU5LDExICs1OSwxMSBA
QCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6
c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZQogICAgICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLAog
ICAgICZxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wLAogICAgICZzaG91bGRJbnRlcnJ1cHRTY3Jp
cHRCZWZvcmVUaW1lb3V0LAotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckltcG9ydE1vZHVs
ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlclJlc29sdmUKLSAgICBudWxscHRyLCAvLyBt
b2R1bGVMb2FkZXJGZXRjaAotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckNyZWF0ZUltcG9y
dE1ldGFQcm9wZXJ0aWVzCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyRXZhbHVhdGUKKyAg
ICAmbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlLAorICAgICZtb2R1bGVMb2FkZXJSZXNvbHZlLAor
ICAgICZtb2R1bGVMb2FkZXJGZXRjaCwKKyAgICAmbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0
YVByb3BlcnRpZXMsCisgICAgJm1vZHVsZUxvYWRlckV2YWx1YXRlLAogICAgICZwcm9taXNlUmVq
ZWN0aW9uVHJhY2tlciwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwK
ICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggMzVm
YTZlMzI3N2ZiMGQ0YmUwZTBlMWVkYzQzNzIyZWRhZGZjOGFmMi4uOWZhZWM5NTljMzlkMTc0ODE4
MWM5ODY1MDAzZDVhODZmMTdmNWUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCkBAIC00OSwxMSArNDksMTEg
QEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNl
OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywK
ICAgICBudWxscHRyLCAvLyBxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wCiAgICAgJnNob3VsZElu
dGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVy
SW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyUmVzb2x2ZQotICAgIG51
bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZldGNoCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVy
Q3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJF
dmFsdWF0ZQorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUsCisgICAgJm1vZHVsZUxvYWRl
clJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNoLAorICAgICZtb2R1bGVMb2FkZXJDcmVh
dGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9kdWxlTG9hZGVyRXZhbHVhdGUsCiAgICAg
JnByb21pc2VSZWplY3Rpb25UcmFja2VyLAogICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0
RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9uT3duZXIsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhYTVi
ODBiNTg2Yjc5ZTBlNTc1MDFjZDUxMDc4ZGYyNWE2MjVlNWQ5Li5jZjUxZjQyZTNiMTE0NGVjZjc3
NDE5YTMxODNiY2I1OGU1MzYyZmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNp
bmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpT
RE9NUHJvbWlzZURlZmVycmVkLmgiCkBAIC01Miw4ICs1MSw4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotU2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIoRG9jdW1lbnQm
IGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK1NjcmlwdE1vZHVsZUxvYWRl
cjo6U2NyaXB0TW9kdWxlTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCisg
ICAgOiBtX2NvbnRleHQoY29udGV4dCkKIHsKIH0KIApAQCAtNjgsNyArNjcsNyBAQCBzdGF0aWMg
Ym9vbCBpc1Jvb3RNb2R1bGUoSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5KQogICAgIHJl
dHVybiBpbXBvcnRlck1vZHVsZUtleS5pc1N5bWJvbCgpIHx8IGltcG9ydGVyTW9kdWxlS2V5Lmlz
VW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gcmVzb2x2ZU1v
ZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgc3BlY2lmaWVy
LCBjb25zdCBVUkwmIGJhc2VVUkwpCitzdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29s
dmVNb2R1bGVTcGVjaWZpZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
U3RyaW5nJiBzcGVjaWZpZXIsIGNvbnN0IFVSTCYgYmFzZVVSTCkKIHsKICAgICAvLyBodHRwczov
L2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcmVzb2x2ZS1h
LW1vZHVsZS1zcGVjaWZpZXIKIApAQCAtNzksNyArNzgsMTIgQEAgc3RhdGljIEV4cGVjdGVkPFVS
TCwgU3RyaW5nPiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3QKICAgICBpZiAoIXNwZWNpZmllci5zdGFydHNXaXRoKCcvJykgJiYgIXNwZWNpZmllci5z
dGFydHNXaXRoKCIuLyIpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi4vIikpCiAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lmaWVyLCAnIl9z
LCBzcGVjaWZpZXIsICInIGRvZXMgbm90IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9cIiwgb3IgXCIu
Li9cIi4gUmVmZXJlbmNlZCBmcm9tICJfcywgYmFzZVVSTC5zdHJpbmcoKSkpOwogCi0gICAgYXV0
byByZXN1bHQgPSBkb2N1bWVudC5jb21wbGV0ZVVSTChzcGVjaWZpZXIsIGJhc2VVUkwpOworICAg
IFVSTCByZXN1bHQ7CisgICAgaWYgKGlzPERvY3VtZW50Pihjb250ZXh0KSkKKyAgICAgICAgcmVz
dWx0ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmNvbXBsZXRlVVJMKHNwZWNpZmllciwg
YmFzZVVSTCk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBVUkwoYmFzZVVSTCwgc3BlY2lm
aWVyKTsKKwogICAgIGlmICghcmVzdWx0LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1vZHVsZSBuYW1lLCAnIl9zLCByZXN1bHQuc3RyaW5nKCks
ICInIGRvZXMgbm90IHJlc29sdmUgdG8gYSB2YWxpZCBVUkwuIl9zKSk7CiAgICAgcmV0dXJuIHJl
c3VsdDsKQEAgLTEwNyw3ICsxMTEsNyBAQCBKU0M6OklkZW50aWZpZXIgU2NyaXB0TW9kdWxlTG9h
ZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LAogICAgIFVS
TCBiYXNlVVJMID0gcmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTCgqanNHbG9iYWxPYmplY3QsIGlt
cG9ydGVyTW9kdWxlS2V5KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwog
Ci0gICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNw
ZWNpZmllciwgYmFzZVVSTCk7CisgICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lm
aWVyKG1fY29udGV4dCwgc3BlY2lmaWVyLCBiYXNlVVJMKTsKICAgICBpZiAoIXJlc3VsdCkgewog
ICAgICAgICBKU0M6OnRocm93VHlwZUVycm9yKGpzR2xvYmFsT2JqZWN0LCBzY29wZSwgcmVzdWx0
LmVycm9yKCkpOwogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTYzLDcgKzE2Nyw3IEBAIEpTQzo6
SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2Jh
bE9iamVjdCoganNHbG9iYWxPCiAKICAgICBhdXRvIGxvYWRlciA9IENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19jYXN0PENhY2hl
ZFNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hlcio+KHNjcmlw
dEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzKSk7
CiAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKLSAgICBpZiAoIWxvYWRlci0+
bG9hZChtX2RvY3VtZW50LCBjb21wbGV0ZWRVUkwpKSB7CisgICAgaWYgKCFsb2FkZXItPmxvYWQo
bV9jb250ZXh0LCBjb21wbGV0ZWRVUkwpKSB7CiAgICAgICAgIGxvYWRlci0+Y2xlYXJDbGllbnQo
KTsKICAgICAgICAgbV9sb2FkZXJzLnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOwogICAgICAgICBy
ZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihkZWZlcnJlZC5nZXQoKSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVk
LiJfcyk7CkBAIC0xNzYsNyArMTgwLDcgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0
TW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE8KIFVSTCBT
Y3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2Jh
bE9iamVjdCwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlKQogewogICAgIGlmIChtb2R1bGVL
ZXlWYWx1ZS5pc1N5bWJvbCgpKQotICAgICAgICByZXR1cm4gbV9kb2N1bWVudC51cmwoKTsKKyAg
ICAgICAgcmV0dXJuIG1fY29udGV4dC51cmwoKTsKIAogICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1
ZS5pc1N0cmluZygpKTsKICAgICByZXR1cm4gVVJMKFVSTCgpLCBhc1N0cmluZyhtb2R1bGVLZXlW
YWx1ZSktPnZhbHVlKCZqc0dsb2JhbE9iamVjdCkpOwpAQCAtMTg3LDggKzE5MSwxMSBAQCBVUkwg
U2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKEpTQzo6SlNHbG9i
YWxPYmplY3QmIGpzR2xvYmFsTwogICAgIEpTQzo6Vk0mIHZtID0ganNHbG9iYWxPYmplY3Qudm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBpZiAo
aXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkKLSAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQu
YmFzZVVSTCgpOworICAgIGlmIChpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKSB7CisgICAg
ICAgIGlmIChpczxEb2N1bWVudD4obV9jb250ZXh0KSkKKyAgICAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5iYXNlVVJMKCk7CisgICAgICAgIHJldHVybiBtX2Nv
bnRleHQudXJsKCk7CisgICAgfQogCiAgICAgQVNTRVJUKCFpc1Jvb3RNb2R1bGUobW9kdWxlS2V5
VmFsdWUpKTsKICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CkBAIC0yMTks
OCArMjI2LDE0IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKCiAgICAgaWYgKCFzb3VyY2VVUkwu
aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9i
amVjdCwgc2NvcGUsICJNb2R1bGUga2V5IGlzIGFuIGludmFsaWQgVVJMLiJfcyk7CiAKLSAgICBp
ZiAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFt
ZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAg
ICBpZiAoaXM8RG9jdW1lbnQ+KG1fY29udGV4dCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1l
ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuZnJhbWUoKSkKKyAgICAgICAgICAgIHJl
dHVybiBmcmFtZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVj
b3JkKTsKKyAgICB9IGVsc2UgeworICAgICAgICBBU1NFUlQoaXM8V29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGU+KG1fY29udGV4dCkpOworICAgICAgICBpZiAoYXV0byogc2NyaXB0ID0gZG93bmNh
c3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KG1fY29udGV4dCkuc2NyaXB0KCkpCisgICAg
ICAgICAgICByZXR1cm4gc2NyaXB0LT5ldmFsdWF0ZU1vZHVsZSgqbW9kdWxlUmVjb3JkKTsKKyAg
ICB9CiAgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKIH0KIApAQCAtMjQ4LDIzICsyNjEs
MzYgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVyOjppbXBvcnRN
b2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganMKICAgICBVUkwgYmFzZVVSTDsKICAgICBSZWZQ
dHI8SlNDOjpTY3JpcHRGZXRjaGVyPiBzY3JpcHRGZXRjaGVyOwogICAgIGlmIChzb3VyY2VPcmln
aW4uaXNOdWxsKCkpIHsKLSAgICAgICAgYmFzZVVSTCA9IG1fZG9jdW1lbnQuYmFzZVVSTCgpOwot
ICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKG1fZG9j
dW1lbnQuY2hhcnNldCgpKTsKKyAgICAgICAgU3RyaW5nIGNoYXJzZXQ7CisgICAgICAgIGlmIChp
czxEb2N1bWVudD4obV9jb250ZXh0KSkgeworICAgICAgICAgICAgYmFzZVVSTCA9IGRvd25jYXN0
PERvY3VtZW50PihtX2NvbnRleHQpLmJhc2VVUkwoKTsKKyAgICAgICAgICAgIGNoYXJzZXQgPSBk
b3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5jaGFyc2V0KCk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBiYXNlVVJMID0gbV9jb250ZXh0LnVybCgpOworICAgICAgICAgICAgY2hh
cnNldCA9ICJ1dGYtOCJfczsKKyAgICAgICAgfQorICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2Fj
aGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKFdURk1vdmUoY2hhcnNldCkpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGJhc2VVUkwgPSBVUkwoVVJMKCksIHNvdXJjZU9yaWdpbi5zdHJpbmcoKSk7CiAg
ICAgICAgIGlmICghYmFzZVVSTC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVqZWN0
UHJvbWlzZShnbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgIkltcG9ydGVyIG1vZHVsZSBrZXkgaXMg
bm90IGEgU3ltYm9sIG9yIGEgU3RyaW5nLiJfcyk7CiAKKyAgICAgICAgU3RyaW5nIGNoYXJzZXQ7
CisgICAgICAgIGlmIChpczxEb2N1bWVudD4obV9jb250ZXh0KSkKKyAgICAgICAgICAgIGNoYXJz
ZXQgPSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5jaGFyc2V0KCk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGNoYXJzZXQgPSAidXRmLTgiX3M7CisKICAgICAgICAgaWYgKHNvdXJj
ZU9yaWdpbi5mZXRjaGVyKCkpCiAgICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gc291cmNlT3Jp
Z2luLmZldGNoZXIoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9
IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7CisgICAg
ICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKFdURk1v
dmUoY2hhcnNldCkpOwogICAgIH0KICAgICBBU1NFUlQoYmFzZVVSTC5pc1ZhbGlkKCkpOwogICAg
IEFTU0VSVChzY3JpcHRGZXRjaGVyKTsKIAogICAgIGF1dG8gc3BlY2lmaWVyID0gbW9kdWxlTmFt
ZS0+dmFsdWUoanNHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVs
ZVNwZWNpZmllcihtX2RvY3VtZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVz
dWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2NvbnRleHQsIHNwZWNpZmllciwgYmFzZVVS
TCk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiByZWplY3RQcm9taXNlKGdsb2Jh
bE9iamVjdCwgVHlwZUVycm9yLCByZXN1bHQuZXJyb3IoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKaW5kZXggZGUyOWQyZjRiZjA5NmI2
MGMzNjk5ODAzMTZjMTQ4NmIyODJhYmYwOS4uMzBlNzRhNDFlNWQ4NjRmZmRkZTdmNWFhODgwYWVi
OGNlZWFiNDRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9k
dWxlTG9hZGVyLmgKQEAgLTQ1LDE2ICs0NSwxNiBAQCBjbGFzcyBTb3VyY2VPcmlnaW47CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBKU0RPTUdsb2JhbE9i
amVjdDsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNzIFNjcmlwdE1vZHVs
ZUxvYWRlciBmaW5hbCA6IHByaXZhdGUgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY3JpcHRNb2R1bGVMb2FkZXIpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIo
RG9jdW1lbnQmKTsKKyAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpOwogICAgIH5TY3JpcHRNb2R1bGVMb2FkZXIoKTsKIAotICAgIERvY3VtZW50
JiBkb2N1bWVudCgpIHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAgICBKU0M6OklkZW50
aWZpZXIgcmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlcios
IEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXks
IEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKICAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBwYXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUg
c2NyaXB0RmV0Y2hlcik7CkBAIC02Nyw3ICs2Nyw3IEBAIGNsYXNzIFNjcmlwdE1vZHVsZUxvYWRl
ciBmaW5hbCA6IHByaXZhdGUgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKICAgICBV
UkwgbW9kdWxlVVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpTVmFsdWUpOwogICAgIFVS
TCByZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpT
VmFsdWUpOwogCi0gICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CisgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgbV9jb250ZXh0OwogICAgIEhhc2hNYXA8U3RyaW5nLCBVUkw+IG1fcmVxdWVzdFVS
TFRvUmVzcG9uc2VVUkxNYXA7CiAgICAgSGFzaFNldDxSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyPj4gbV9sb2FkZXJzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2Fk
YWJsZU1vZHVsZVNjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVT
Y3JpcHQuY3BwCmluZGV4IDlhMjVjMTY1ODhlZWNhZDY3OGZiOTExZWM4NjIyZjQyNDI1OTJiNWEu
LjQ4ZWMwODUxYTQ1N2Q5YmE0NzQ3M2ZlYzI4ZDdiNDkzMTJiNzg4YjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcApAQCAtODgsMTYgKzg4LDQgQEAgdm9p
ZCBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6ZXhlY3V0ZShTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVt
ZW50KQogICAgIHNjcmlwdEVsZW1lbnQuZXhlY3V0ZU1vZHVsZVNjcmlwdCgqdGhpcyk7CiB9CiAK
LXZvaWQgTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBVUkwmIHJvb3RVUkwpCi17Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUo
KSkKLSAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoKnRoaXMsIHJvb3RV
Ukwuc3RyaW5nKCksIG1fcGFyYW1ldGVycy5jb3B5UmVmKCkpOwotfQotCi12b2lkIExvYWRhYmxl
TW9kdWxlU2NyaXB0Ojpsb2FkKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU2NyaXB0U291cmNl
Q29kZSYgc291cmNlQ29kZSkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFt
ZSgpKQotICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgc291
cmNlQ29kZSk7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJs
ZU1vZHVsZVNjcmlwdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0
LmgKaW5kZXggYmI3OTk1NGQ3Yjk5YjBlZDA2YmZlNTVlZjg1NGVjY2UyMWYzNTg3Ny4uZDI1MzU5
NjNmNjQ4YjAyYThhMDFmZDYzYmIxZTM4MTM4NmNlZTQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgKQEAgLTUwLDE1ICs1MCwxNCBAQCBjbGFzcyBMb2FkYWJs
ZU1vZHVsZVNjcmlwdCBmaW5hbCA6IHB1YmxpYyBMb2FkYWJsZVNjcmlwdCB7CiAKICAgICB2b2lk
IHNldEVycm9yKEVycm9yJiYpOwogCi0gICAgdm9pZCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJM
JiByb290VVJMKTsKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJik7Ci0KICAgICB2b2lkIG5vdGlmeUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmluZ0ltcGwm
KTsKICAgICB2b2lkIG5vdGlmeUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yJiYpOwog
ICAgIHZvaWQgbm90aWZ5TG9hZFdhc0NhbmNlbGVkKCk7CiAKICAgICBVbmlxdWVkU3RyaW5nSW1w
bCogbW9kdWxlS2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0KIAorICAg
IE1vZHVsZUZldGNoUGFyYW1ldGVycyYgcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVy
cy5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIExvYWRhYmxlTW9kdWxlU2NyaXB0KGNvbnN0IFN0
cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYgaW50ZWdyaXR5LCBSZWZlcnJlclBvbGljeSwgY29u
c3QgU3RyaW5nJiBjcm9zc09yaWdpbk1vZGUsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3Qg
QXRvbVN0cmluZyYgaW5pdGlhdG9yTmFtZSwgYm9vbCBpc0luVXNlckFnZW50U2hhZG93VHJlZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCAwNTc1OGI2MDBjNzUyMmI0
N2YzNjRiYTZhMThkMzVmMTczMTEwN2Y5Li41ZTk5ZjBmNTc3N2IzYjIxNThkZDBmYTRiYzM4Mjc3
NmNkYjM0ODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC00Miw2ICs0
Miw3IEBACiAjaW5jbHVkZSAiTG9hZGFibGVDbGFzc2ljU2NyaXB0LmgiCiAjaW5jbHVkZSAiTG9h
ZGFibGVNb2R1bGVTY3JpcHQuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5j
bHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGVuZGluZ1NjcmlwdC5o
IgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlNWR1Nj
cmlwdEVsZW1lbnQuaCIKQEAgLTM1MSw4ICszNTIsMTEgQEAgYm9vbCBTY3JpcHRFbGVtZW50Ojpy
ZXF1ZXN0TW9kdWxlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlv
bikKICAgICAgICAgICAgIHNjcmlwdENoYXJzZXQoKSwKICAgICAgICAgICAgIG1fZWxlbWVudC5s
b2NhbE5hbWUoKSwKICAgICAgICAgICAgIG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93VHJl
ZSgpKTsKLSAgICAgICAgc2NyaXB0LT5sb2FkKG1fZWxlbWVudC5kb2N1bWVudCgpLCBtb2R1bGVT
Y3JpcHRSb290VVJMKTsKICAgICAgICAgbV9sb2FkYWJsZVNjcmlwdCA9IFdURk1vdmUoc2NyaXB0
KTsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUo
KSkgeworICAgICAgICAgICAgYXV0byYgc2NyaXB0ID0gZG93bmNhc3Q8TG9hZGFibGVNb2R1bGVT
Y3JpcHQ+KCptX2xvYWRhYmxlU2NyaXB0LmdldCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT5zY3Jp
cHQoKS5sb2FkTW9kdWxlU2NyaXB0KHNjcmlwdCwgbW9kdWxlU2NyaXB0Um9vdFVSTC5zdHJpbmco
KSwgbWFrZVJlZihzY3JpcHQucGFyYW1ldGVycygpKSk7CisgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCkBAIC0zNjcsOCArMzcxLDkgQEAgYm9vbCBTY3JpcHRFbGVtZW50
OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3Np
dGlvbikKICAgICBpZiAoIWNvbnRlbnRTZWN1cml0eVBvbGljeS5hbGxvd0lubGluZVNjcmlwdCht
X2VsZW1lbnQuZG9jdW1lbnQoKS51cmwoKS5zdHJpbmcoKSwgbV9zdGFydExpbmVOdW1iZXIsIHNv
dXJjZUNvZGUuc291cmNlKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpLCBoYXNLbm93bk5vbmNl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc2NyaXB0LT5sb2FkKG1fZWxlbWVudC5k
b2N1bWVudCgpLCBzb3VyY2VDb2RlKTsKICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShz
Y3JpcHQpOworICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1l
KCkpCisgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KGRvd25jYXN0PExv
YWRhYmxlTW9kdWxlU2NyaXB0PigqbV9sb2FkYWJsZVNjcmlwdC5nZXQoKSksIHNvdXJjZUNvZGUp
OwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmNwcAppbmRleCAxMDQzYjczNzJmYjFk
YTViYWJhNzMwNWZkNWNjMjk4NmUzMDkxMjgyLi40ZTI2YTYwZjlhYTdlNjQ5NTllNjdiMTEyYTkz
NjM1NDQyNjdiOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dENhY2hlZFNjcmlwdEZldGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
bGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKQEAgLTMzLDEzICszMywxMyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNvbnN0IEFTQ0lJTGl0ZXJhbCBTY3JpcHRFbGVtZW50Q2FjaGVkU2Ny
aXB0RmV0Y2hlcjo6ZGVmYXVsdENyb3NzT3JpZ2luTW9kZUZvck1vZHVsZSB7ICJhbm9ueW1vdXMi
X3MgfTsKIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBTY3JpcHRFbGVtZW50
Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdE1vZHVsZVNjcmlwdChEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBTdHJpbmcmJiBpbnRlZ3JpdHkpIGNvbnN0CitDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRG
ZXRjaGVyOjpyZXF1ZXN0TW9kdWxlU2NyaXB0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBTdHJpbmcmJiBpbnRlZ3JpdHkpIGNvbnN0CiB7CiAg
ICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvdXJscy1hbmQtZmV0
Y2hpbmcuaHRtbCNjb3JzLXNldHRpbmdzLWF0dHJpYnV0ZXMKICAgICAvLyBJZiB0aGUgZmV0Y2hl
ciBpcyBub3QgbW9kdWxlIHNjcmlwdCwgY3JlZGVudGlhbCBtb2RlIGlzIGFsd2F5cyAic2FtZS1v
cmlnaW4iICgiYW5vbnltb3VzIikuCiAgICAgLy8gVGhpcyBjb2RlIGlzIGZvciBkeW5hbWljIG1v
ZHVsZSBpbXBvcnQgKGBpbXBvcnRgIG9wZXJhdG9yKS4KIAotICAgIHJldHVybiByZXF1ZXN0U2Ny
aXB0V2l0aENhY2hlKGRvY3VtZW50LCBzb3VyY2VVUkwsIGlzQ2xhc3NpY1NjcmlwdCgpID8gZGVm
YXVsdENyb3NzT3JpZ2luTW9kZUZvck1vZHVsZSA6IG1fY3Jvc3NPcmlnaW5Nb2RlLCBXVEZNb3Zl
KGludGVncml0eSksIHsgfSk7CisgICAgcmV0dXJuIHJlcXVlc3RTY3JpcHRXaXRoQ2FjaGUoY29u
dGV4dCwgc291cmNlVVJMLCBpc0NsYXNzaWNTY3JpcHQoKSA/IGRlZmF1bHRDcm9zc09yaWdpbk1v
ZGVGb3JNb2R1bGUgOiBtX2Nyb3NzT3JpZ2luTW9kZSwgV1RGTW92ZShpbnRlZ3JpdHkpLCB7IH0p
OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudENh
Y2hlZFNjcmlwdEZldGNoZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50Q2Fj
aGVkU2NyaXB0RmV0Y2hlci5oCmluZGV4IDIxNWYxZDlmZjEwMjFkODk3ZTEyY2ExNTU4YzAxNzUz
NTE4NWVjYjQuLjI2NjRkOTcwZDBkNGI2NjYxYTg0ODY1ZGUzM2E3OTUyZmE5NWY3M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0
Y2hlci5oCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRG
ZXRjaGVyIDogcHVibGljIENhY2hlZFNjcmlwdEZldGNoZXIgewogcHVibGljOgogICAgIHN0YXRp
YyBjb25zdCBBU0NJSUxpdGVyYWwgZGVmYXVsdENyb3NzT3JpZ2luTW9kZUZvck1vZHVsZTsKIAot
ICAgIHZpcnR1YWwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiByZXF1ZXN0TW9k
dWxlU2NyaXB0KERvY3VtZW50JiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIFN0cmluZyYmIGludGVn
cml0eSkgY29uc3Q7CisgICAgdmlydHVhbCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3Jp
cHQ+IHJlcXVlc3RNb2R1bGVTY3JpcHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFVS
TCYgc291cmNlVVJMLCBTdHJpbmcmJiBpbnRlZ3JpdHkpIGNvbnN0OwogCiAgICAgdmlydHVhbCBi
b29sIGlzQ2xhc3NpY1NjcmlwdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb2R1
bGVTY3JpcHQoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggNjJm
OTE3YTM2NzgxOWRlYzNjZDQxMGQ5NzY2OTVjZWU2MmY2ZDRiOS4uN2MyMjQ5YTNhMmFmOTUxODIz
YWU3OTk1ZWMxMzcxYWRmYmIxNGFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAt
NzAsNiArNzAsOCBAQCBpbmxpbmUgV29ya2VyOjpXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZQogICAgICwgbV9pZGVudGlmaWVy
KCJ3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlm
aWVyKCkpCiAgICAgLCBtX2NvbnRleHRQcm94eShXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpjcmVh
dGUoKnRoaXMpKQogICAgICwgbV9ydW50aW1lRmxhZ3MocnVudGltZUZsYWdzKQorICAgICwgbV90
eXBlKG9wdGlvbnMudHlwZSkKKyAgICAsIG1fY3JlZGVudGlhbHMob3B0aW9ucy5jcmVkZW50aWFs
cykKIHsKICAgICBzdGF0aWMgYm9vbCBhZGRlZExpc3RlbmVyOwogICAgIGlmICghYWRkZWRMaXN0
ZW5lcikgewpAQCAtMTEzLDEwICsxMTUsMTMgQEAgRXhjZXB0aW9uT3I8UmVmPFdvcmtlcj4+IFdv
cmtlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTQzo6UnUKIAog
ICAgIEZldGNoT3B0aW9ucyBmZXRjaE9wdGlvbnM7CiAgICAgZmV0Y2hPcHRpb25zLm1vZGUgPSBG
ZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW47CisgICAgaWYgKHdvcmtlci0+bV90eXBlID09
IFdvcmtlclR5cGU6Ok1vZHVsZSkKKyAgICAgICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0g
d29ya2VyLT5tX2NyZWRlbnRpYWxzOwogICAgIGZldGNoT3B0aW9ucy5jYWNoZSA9IEZldGNoT3B0
aW9uczo6Q2FjaGU6OkRlZmF1bHQ7CiAgICAgZmV0Y2hPcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hP
cHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93OwogICAgIGZldGNoT3B0aW9ucy5kZXN0aW5hdGlvbiA9
IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OldvcmtlcjsKLSAgICB3b3JrZXItPm1fc2NyaXB0
TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RG
TW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2Vy
dmljZVdvcmtlcnNNb2RlOjpBbGwsIHdvcmtlcik7CisgICAgd29ya2VyLT5tX3NjcmlwdExvYWRl
ci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUo
ZmV0Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VX
b3JrZXJzTW9kZTo6QWxsLCB3b3JrZXIuZ2V0KCkpOworCiAgICAgcmV0dXJuIHdvcmtlcjsKIH0K
IApAQCAtMjE1LDcgKzIyMCw3IEBAIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAg
UmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kgPSBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJp
bmc7CiAgICAgaWYgKGF1dG8gcG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShtX3NjcmlwdExv
YWRlci0+cmVmZXJyZXJQb2xpY3koKSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OkhUVFBIZWFkZXIp
KQogICAgICAgICByZWZlcnJlclBvbGljeSA9ICpwb2xpY3k7Ci0gICAgbV9jb250ZXh0UHJveHku
c3RhcnRXb3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwgY29u
dGV4dC0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3Njcmlw
dExvYWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywg
bV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2VyQ3Jl
YXRpb25UaW1lLCByZWZlcnJlclBvbGljeSwgbV9ydW50aW1lRmxhZ3MpOworICAgIG1fY29udGV4
dFByb3h5LnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUobV9zY3JpcHRMb2FkZXItPnVybCgpLCBtX25h
bWUsIGNvbnRleHQtPnVzZXJBZ2VudChtX3NjcmlwdExvYWRlci0+dXJsKCkpLCBpc09ubGluZSwg
bV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMsIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBtX3dv
cmtlckNyZWF0aW9uVGltZSwgcmVmZXJyZXJQb2xpY3ksIG1fdHlwZSwgbV9jcmVkZW50aWFscywg
bV9ydW50aW1lRmxhZ3MpOwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0SW1w
b3J0ZWQoKmNvbnRleHQsIG1fc2NyaXB0TG9hZGVyLT5pZGVudGlmaWVyKCksIG1fc2NyaXB0TG9h
ZGVyLT5zY3JpcHQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCmluZGV4IDUzZjVlNmZm
ZjI3YzlmYTNlNWMwZTAxZjBmNmM0MmM2Y2I2ZjlkMGUuLjM4YTYyM2E5OGRiYTM1ZmY4MDEzY2Q2
ZmM4Yzg1YzgxMDIwNTAyMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaApAQCAtMjksOSArMjks
MTEgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgor
I2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBv
cnQuaCIKICNpbmNsdWRlICJQb3N0TWVzc2FnZU9wdGlvbnMuaCIKICNpbmNsdWRlICJXb3JrZXJT
Y3JpcHRMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1Rp
bWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTU1LDYgKzU3LDggQEAgY2xhc3Mg
V29ya2VyIGZpbmFsIDogcHVibGljIEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2Jq
ZWN0LCBwcml2YXRlIFdvcmsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtlcik7CiBw
dWJsaWM6CiAgICAgc3RydWN0IE9wdGlvbnMgeworICAgICAgICBXb3JrZXJUeXBlIHR5cGU7Cisg
ICAgICAgIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwogICAgICAgICBTdHJp
bmcgbmFtZTsKICAgICB9OwogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IE9wdGlvbnMmKTsKQEAgLTc5LDYgKzgzLDggQEAgY2xhc3MgV29ya2Vy
IGZpbmFsIDogcHVibGljIEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBw
cml2YXRlIFdvcmsKICAgICB2b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlv
bjx2b2lkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4mJik7CiAjZW5kaWYKIAorICAgIFdvcmtl
clR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IFdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSlNDOjpSdW50aW1lRmxhZ3Ms
IGNvbnN0IE9wdGlvbnMmKTsKIApAQCAtMTEyLDYgKzExOCw4IEBAIGNsYXNzIFdvcmtlciBmaW5h
bCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0
ZSBXb3JrCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fdHJhbnNm
b3JtZXJzOwogI2VuZGlmCisgICAgV29ya2VyVHlwZSBtX3R5cGUgeyBXb3JrZXJUeXBlOjpDbGFz
c2ljIH07CisgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgbV9jcmVkZW50aWFscyB7IEZldGNo
UmVxdWVzdENyZWRlbnRpYWxzOjpTYW1lT3JpZ2luIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKaW5kZXggNDVkNmEwODY3ODU0ZWU0MDRk
ZTdlN2QwMTI0OGNlYmY0NGRjYTdlZC4uNzAyMTc5NmRmNTA0YWRmOGU2Yjk1ODlhY2U5ZjE0NDgy
MWYyOTVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbApAQCAtMzgsNiArMzgsOCBAQAog
fTsKIAogZGljdGlvbmFyeSBXb3JrZXJPcHRpb25zIHsKKyAgICBXb3JrZXJUeXBlIHR5cGUgPSAi
Y2xhc3NpYyI7CisgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMgPSAic2Ft
ZS1vcmlnaW4iOyAvLyBjcmVkZW50aWFscyBpcyBvbmx5IHVzZWQgaWYgdHlwZSBpcyAibW9kdWxl
IgogICAgIERPTVN0cmluZyBuYW1lID0gIiI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggNDZkNDlkOTRjNTIzOGU0Njg4ZDM5NWQ4N2MyMDYz
ZWI1NzIwZDFiZi4uMzg0MWE3ODFkODVkMTYwZDQwMzZjZjAwYjdkMGUzOWUwMGVhMWFkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMTYzLDggKzE2
Myw2IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFN1cHBsZW1lbnRhYmxlPFdv
cmtlckdsb2JhbFNjb3BlPiwgcHVibGljIEJhc2U2CiAgICAgbXV0YWJsZSBSZWZQdHI8V29ya2Vy
TG9jYXRpb24+IG1fbG9jYXRpb247CiAgICAgbXV0YWJsZSBSZWZQdHI8V29ya2VyTmF2aWdhdG9y
PiBtX25hdmlnYXRvcjsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyPiBtX3NjcmlwdDsKLQogICAgIGJvb2wgbV9pc09ubGluZTsKICAgICBib29s
IG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCmluZGV4IDQwMDAz
YzNlMDEwOTk5NjBmNjQ3ODYxZTcwMTY4N2QwZTM3MWQ3MmQuLjdiOTFkNzUzZDFjOWQ3MjlhZTUw
ODY1NGMyZTg1Zjc2NzkxZTAwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGVQcm94eS5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFdvcmtlckdsb2Jh
bFNjb3BlUHJveHkgewogcHVibGljOgogICAgIHN0YXRpYyBXb3JrZXJHbG9iYWxTY29wZVByb3h5
JiBjcmVhdGUoV29ya2VyJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxT
Y29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBj
b25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3Jp
Z2luLCBSZWZlcnJlclBvbGljeSwgSlNDOjpSdW50aW1lRmxhZ3MpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB3
b3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpSdW50
aW1lRmxhZ3MpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRlV29ya2VyR2xvYmFsU2Nv
cGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxTY29w
ZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RU
YXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKT4mJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcAppbmRleCAxOWQ0YmU2NDk5MmYzMGQzY2NlNzY1NDdhM2QyMjE4YTk4Yzg0MmMz
Li43ODgzNTg3YTdhZjYyMDllM2VjYzhlN2I0MWJhZDQ3YWRmNjIyNDBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtNzMsNyArNzMs
NyBAQCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6fldvcmtlck1lc3NhZ2luZ1Byb3h5KCkKICAgICAg
ICAgfHwgKGlzPFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSAm
JiBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCku
dGhyZWFkKCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKSk7CiB9CiAKLXZvaWQgV29y
a2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3Jp
cHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wg
aXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25v
dG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5LCBKU0M6
OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCit2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpz
dGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJp
bmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
LCBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBG
ZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3MgcnVu
dGltZUZsYWdzKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8gYmUgcmV2aXNpdGVkIHdo
ZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBBU1NFUlQobV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KTsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQ
cm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3Qg
U3QKIAogICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciA9IGRvY3VtZW50LnNvY2tl
dFByb3ZpZGVyKCk7CiAKLSAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsgc2NyaXB0VVJM
LCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIGRvY3VtZW50LnNldHRpbmdzVmFs
dWVzKCkgfTsKKyAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsgc2NyaXB0VVJMLCBuYW1l
LCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIHdvcmtlclR5cGUsIGNyZWRlbnRpYWxzLCBk
b2N1bWVudC5zZXR0aW5nc1ZhbHVlcygpIH07CiAgICAgYXV0byB0aHJlYWQgPSBEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQ6OmNyZWF0ZShwYXJhbXMsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcywgKnRo
aXMsIHN0YXJ0TW9kZSwgZG9jdW1lbnQudG9wT3JpZ2luKCksIHByb3h5LCBzb2NrZXRQcm92aWRl
ciwgcnVudGltZUZsYWdzKTsKIAogICAgIHdvcmtlclRocmVhZENyZWF0ZWQodGhyZWFkLmdldCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAppbmRl
eCBjNWI1NzViOWU2MTViM2YzZjU5NmJmYzNkZjY4M2M4NzdjYzYyYmFiLi4yZTIzMTY5ZjA3OTNm
MGRjZjgwOGE5YmNmYjU4ZTZjOTA4YzZjYzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFdvcmtlck1l
c3NhZ2luZ1Byb3h5IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdvcmtlck1l
c3NhZ2luZ1ByCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBXb3JrZXJHbG9i
YWxTY29wZVByb3h5LgogICAgIC8vIChPbmx5IHVzZSB0aGVzZSBmdW5jdGlvbnMgaW4gdGhlIHdv
cmtlciBvYmplY3QgdGhyZWFkLikKLSAgICB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29u
c3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVm
ZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0V29y
a2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291
cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9v
bCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1Rp
bWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUgd29ya2VyVHlwZSwgRmV0
Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIEpTQzo6UnVudGltZUZsYWdzKSBmaW5h
bDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckdsb2JhbFNjb3BlKCkgZmluYWw7CiAgICAgdm9p
ZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFsU2NvcGUoTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMm
JikgZmluYWw7CiAgICAgdm9pZCBwb3N0VGFza1RvV29ya2VyR2xvYmFsU2NvcGUoRnVuY3Rpb248
dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+JiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCAy
Mzg0YTVhOGM3ZDJhMzAyZWVlNWNiNDA1ZTEwNWUwMjVjOTg0M2NjLi5hZjQ5NjhiNGJlYWVmM2Q1
YWY0ZjczNzRjNThlMDEwYTMzZThmYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMjYsNiArMjYsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
LmgiCiAKKyNpbmNsdWRlICJTY3JpcHRNb2R1bGVMb2FkZXIuaCIKICNpbmNsdWRlICJXb3JrZXJF
dmVudExvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgpAQCAtMzksNiArNDAsNyBA
QCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUp
OwogCiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUoV29ya2VyVGhyZWFkVHlwZSB0eXBlLCBSZWY8SlNDOjpWTT4mJiB2bSwgV29ya2VyT3JXb3Jr
bGV0VGhyZWFkKiB0aHJlYWQpCiAgICAgOiBtX3NjcmlwdChtYWtlVW5pcXVlPFdvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXI+KHR5cGUsIFdURk1vdmUodm0pLCB0aGlzKSkKKyAgICAsIG1f
bW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9hZGVyPigqdGhpcykpCiAgICAg
LCBtX3RocmVhZCh0aHJlYWQpCiAgICAgLCBtX2luc3BlY3RvckNvbnRyb2xsZXIobWFrZVVuaXF1
ZTxXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyPigqdGhpcykpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKaW5kZXggNmMyNDRh
MGM0MjdlZTFjOGM2NWZkY2M3NjU5NTJmODc3ZmQ5YjE2Yi4uNTQ0ZjA0N2FlYzI3ODMyNzQ0ZDBh
OGE3MGFmN2U5MzljMzMwOTkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMzIsNiArMzIsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBFdmVudExvb3BUYXNrR3JvdXA7CitjbGFzcyBTY3JpcHRNb2R1
bGVMb2FkZXI7CiBjbGFzcyBXb3JrZXJFdmVudExvb3A7CiBjbGFzcyBXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyOwogY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjsKQEAgLTU0
LDYgKzU1LDggQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KIAogICAgIHVuc2lnbmVkIGxvbmcg
Y3JlYXRlVW5pcXVlSWRlbnRpZmllcigpIHsgcmV0dXJuIG1fdW5pcXVlSWRlbnRpZmllcisrOyB9
CiAKKyAgICBTY3JpcHRNb2R1bGVMb2FkZXImIG1vZHVsZUxvYWRlcigpIHsgcmV0dXJuICptX21v
ZHVsZUxvYWRlcjsgfQorCiAgICAgLy8gU2NyaXB0RXhlY3V0aW9uQ29udGV4dC4KICAgICBFdmVu
dExvb3BUYXNrR3JvdXAmIGV2ZW50TG9vcCgpIGZpbmFsOwogICAgIGJvb2wgaXNDb250ZXh0VGhy
ZWFkKCkgY29uc3QgZmluYWw7CkBAIC04OCw2ICs5MSw3IEBAIGNsYXNzIFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBSZWZD
b3VuCiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4gbV9zY3Jp
cHQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gbV9tb2R1bGVMb2Fk
ZXI7CiAgICAgV29ya2VyT3JXb3JrbGV0VGhyZWFkKiBtX3RocmVhZDsKICAgICBSZWZQdHI8V29y
a2VyRXZlbnRMb29wPiBtX2V2ZW50TG9vcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29w
VGFza0dyb3VwPiBtX2RlZmF1bHRUYXNrR3JvdXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBj
ZDRlYzI0NjgyNTI1YWFiYzY0MmQ4NzdhMGRhMDExZWJkZTExNDMxLi4xMjJjMmYyMzI4NGEyZWNi
Njg5YzViZDI2ODMzZjFlYWRiOTM2MTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM1LDYg
KzM1LDkgQEAKICNpbmNsdWRlICJKU0V4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIkpTUGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5o
IgorI2luY2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0
Y2hGYWlsdXJlS2luZC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgogI2lu
Y2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRh
LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29uc29sZUNsaWVudC5oIgpAQCAtNDMsNyArNDYsMTIgQEAK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb24uaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9FeGNlcHRpb25IZWxwZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvR0NB
Y3Rpdml0eUNhbGxiYWNrLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5hbFBy
b21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTTmF0aXZlU3RkRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1Njcmlw
dEZldGNoUGFyYW1ldGVycy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2NyaXB0RmV0
Y2hlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZ0lubGluZXMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMjI4LDcgKzIzNiwxNTYgQEAgdm9pZCBXb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3Vy
Y2VDb2QKICAgICB9CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEpTR2xvYmFsU2NvcGVQcm90b3R5
cGUsIHR5cGVuYW1lIEpTR2xvYmFsU2NvcGUsIHR5cGVuYW1lIEdsb2JhbFNjb3BlPgorc3RhdGlj
IElkZW50aWZpZXIganNWYWx1ZVRvTW9kdWxlS2V5KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc1N5bWJvbCgpKQor
ICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVVpZChqc0Nhc3Q8U3ltYm9sKj4odmFsdWUp
LT5wcml2YXRlTmFtZSgpKTsKKyAgICBBU1NFUlQodmFsdWUuaXNTdHJpbmcoKSk7CisgICAgcmV0
dXJuIGFzU3RyaW5nKHZhbHVlKS0+dG9JZGVudGlmaWVyKGxleGljYWxHbG9iYWxPYmplY3QpOwor
fQorCitKU0M6OkpTVmFsdWUgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVh
dGVNb2R1bGUoSlNDOjpKU01vZHVsZVJlY29yZCYgbW9kdWxlUmVjb3JkKQoreworICAgIGF1dG8m
IGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBlci5nZXQoKTsKKyAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisgICAg
cmV0dXJuIG1vZHVsZVJlY29yZC5ldmFsdWF0ZSgmZ2xvYmFsT2JqZWN0KTsKK30KKworc3RhdGlj
IHZvaWQgZHJpdmVSdW5Mb29wKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVy
aXRzPEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlPih2bSkpIHsKKyAgICAgICAganNDYXN0PGNvbnN0
IEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLnBvc3RU
YXNrKFtdKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKXt9KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2U+KHZtKSkgeworICAgICAgICBqc0Nhc3Q8Y29uc3QgSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNl
Kj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLnBvc3RUYXNrKFtdKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKXt9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKworTWVzc2FnZVF1ZXVlV2Fp
dFJlc3VsdCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlU3luY2hy
b25vdXNseShMb2FkYWJsZU1vZHVsZVNjcmlwdCYgbW9kdWxlU2NyaXB0LCBjb25zdCBTY3JpcHRT
b3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIGlmIChpc0V4ZWN1dGlvbkZvcmJpZGRlbigp
KQorICAgICAgICByZXR1cm4gTWVzc2FnZVF1ZXVlVGVybWluYXRlZDsKKworICAgIGluaXRTY3Jp
cHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsU2NvcGVX
cmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOworICAgIEpTTG9j
a0hvbGRlciBsb2NrIHsgdm0gfTsKKworICAgIFJlZlB0cjxMb2FkYWJsZU1vZHVsZVNjcmlwdD4g
bW9kdWxlU2NyaXB0UmVmOworICAgIHsKKyAgICAgICAgYXV0byYgcHJvbWlzZSA9IEpTRXhlY1N0
YXRlOjpsb2FkTW9kdWxlKGdsb2JhbE9iamVjdCwgc291cmNlQ29kZS5qc1NvdXJjZUNvZGUoKSwg
SlNDOjpKU1NjcmlwdEZldGNoZXI6OmNyZWF0ZSh2bSwgeyAmbW9kdWxlU2NyaXB0IH0pKTsKKwor
ICAgICAgICBtb2R1bGVTY3JpcHRSZWYgPSAmbW9kdWxlU2NyaXB0OworCisgICAgICAgIGF1dG8m
IGZ1bGZpbGxIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZSh2bSwgJmdsb2Jh
bE9iamVjdCwgMSwgU3RyaW5nKCksIFttb2R1bGVTY3JpcHRSZWZdKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSAtPiBKU0M6OkVuY29kZWRKU1ZhbHVl
IHsKKyAgICAgICAgICAgIGRyaXZlUnVuTG9vcChnbG9iYWxPYmplY3QpOworICAgICAgICAgICAg
V1RGUmVwb3J0QmFja3RyYWNlKCk7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CisgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgICAgICAgICBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGpzVmFsdWVUb01vZHVsZUtleShn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOworICAgICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgICAgIG1vZHVsZVNjcmlwdFJlZi0+
bm90aWZ5TG9hZENvbXBsZXRlZCgqbW9kdWxlS2V5LmltcGwoKSk7CisgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICB9KTsKKworICAgICAg
ICBhdXRvJiByZWplY3RIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZSh2bSwg
Jmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFttb2R1bGVTY3JpcHRSZWZdKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSB7CisgICAgICAgICAgICBk
cml2ZVJ1bkxvb3AoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgIFdURlJlcG9ydEJhY2t0cmFj
ZSgpOworICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAg
ICAgSlNWYWx1ZSBlcnJvclZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICAgICAg
ICAgIGlmIChlcnJvclZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvKiBv
YmplY3QgPSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChK
U1ZhbHVlIGZhaWx1cmVLaW5kVmFsdWUgPSBvYmplY3QtPmdldERpcmVjdCh2bSwgc3RhdGljX2Nh
c3Q8SlNWTUNsaWVudERhdGEmPigqdm0uY2xpZW50RGF0YSkuYnVpbHRpbk5hbWVzKCkuZmFpbHVy
ZUtpbmRQcml2YXRlTmFtZSgpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGhv
c3QgcHJvcGFnYXRlZCBlcnJvciBpbiB0aGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZS4KKyAgICAg
ICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxNb2R1bGVGZXRjaEZhaWx1cmVLaW5k
PihmYWlsdXJlS2luZFZhbHVlLmFzSW50MzIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkOgorICAgICAgICAgICAgICAgICAg
ICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpF
cnJvciB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9y
VHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6bnVs
bG9wdAorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5k
OjpXYXNDYW5jZWxlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZVNjcmlwdFJlZi0+
bm90aWZ5TG9hZFdhc0NhbmNlbGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwor
ICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2Ny
aXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlwZTo6
Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVz
c2FnZSB7CisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VTb3VyY2U6OkpTLAorICAgICAgICAg
ICAgICAgICAgICBNZXNzYWdlTGV2ZWw6OkVycm9yLAorICAgICAgICAgICAgICAgICAgICByZXRy
aWV2ZUVycm9yTWVzc2FnZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1ZSwgc2NvcGUpLAor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGF0
YUxvZ0xuKCJTVEFUVVMgIiwgc3RhdGljX2Nhc3Q8aW50Pihwcm9taXNlLnN0YXR1cyh2bSkpKTsK
KyAgICAgICAgcHJvbWlzZS50aGVuKCZnbG9iYWxPYmplY3QsICZmdWxmaWxsSGFuZGxlciwgJnJl
amVjdEhhbmRsZXIpOworICAgIH0KKyAgICBtX2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5wZXJm
b3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworCisgICAgLy8gRHJpdmUgUnVuTG9vcCB1bnRpbCB3
ZSBnZXQgZWl0aGVyIG9mICJXb3JrZXIgaXMgdGVybWluYXRlZCIsICJMb2FkaW5nIGlzIGRvbmUi
LCBvciAiTG9hZGluZyBpcyBmYWlsZWQiLgorICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSBt
X2dsb2JhbFNjb3BlLT53b3JrZXJPcldvcmtsZXRUaHJlYWQoKS0+cnVuTG9vcCgpOworICAgIFN0
cmluZyBtb2RlID0gbWFrZVN0cmluZygibG9hZE1vZHVsZVN5bmNocm9ub3VzbHkiLCBydW5Mb29w
LmNyZWF0ZVVuaXF1ZUlkKCkpOworCisgICAgZGF0YUxvZ0xuKCJSVU5MT09QICIsIHN0YXRpY19j
YXN0PGludD4obW9kdWxlU2NyaXB0UmVmLT5pc0xvYWRlZCgpKSwgIiAiLCBzdGF0aWNfY2FzdDxp
bnQ+KG1vZHVsZVNjcmlwdFJlZi0+d2FzQ2FuY2VsZWQoKSkpOworICAgIE1lc3NhZ2VRdWV1ZVdh
aXRSZXN1bHQgcmVzdWx0ID0gTWVzc2FnZVF1ZXVlTWVzc2FnZVJlY2VpdmVkOworICAgIHdoaWxl
ICgoIW1vZHVsZVNjcmlwdFJlZi0+aXNMb2FkZWQoKSAmJiAhbW9kdWxlU2NyaXB0UmVmLT53YXND
YW5jZWxlZCgpKSAmJiByZXN1bHQgIT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgeworICAgICAg
ICByZXN1bHQgPSBydW5Mb29wLnJ1bkluTW9kZShtX2dsb2JhbFNjb3BlLCBtb2RlKTsKKyAgICB9
CisKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGFyZSBub3Qgb2ZmZXJpbmcgY2FuY2VsbGlu
Zy4KKyAgICAvLyBpZiAoIWxvYWRlci0+ZG9uZSgpICYmIHJlc3VsdCA9PSBNZXNzYWdlUXVldWVU
ZXJtaW5hdGVkKQorICAgIC8vICAgICBsb2FkZXItPmNhbmNlbCgpOworCisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKwordm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5k
RXZhbHVhdGVNb2R1bGUoTG9hZGFibGVNb2R1bGVTY3JpcHQmIG1vZHVsZVNjcmlwdCwgY29uc3Qg
U2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1l
c3NhZ2UpCit7CisgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZ2xvYmFsT2JqZWN0
ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKworICAgIE5ha2VkUHRyPEpT
Qzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICBKU0V4ZWNTdGF0ZTo6bGlua0Fu
ZEV2YWx1YXRlTW9kdWxlKGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwgbW9k
dWxlU2NyaXB0Lm1vZHVsZUtleSgpKSwganNVbmRlZmluZWQoKSwgcmV0dXJuZWRFeGNlcHRpb24p
OworICAgIGlmICgocmV0dXJuZWRFeGNlcHRpb24gJiYgaXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhj
ZXB0aW9uKHZtLCByZXR1cm5lZEV4Y2VwdGlvbikpIHx8IGlzVGVybWluYXRpbmdFeGVjdXRpb24o
KSkgeworICAgICAgICBmb3JiaWRFeGVjdXRpb24oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbikgeworICAgICAgICBpZiAobV9nbG9iYWxTY29w
ZS0+Y2FuSW5jbHVkZUVycm9yRGV0YWlscyhzb3VyY2VDb2RlLmNhY2hlZFNjcmlwdCgpLCBzb3Vy
Y2VDb2RlLnVybCgpLnN0cmluZygpKSkgeworICAgICAgICAgICAgLy8gRklYTUU6IEl0J3Mgbm90
IGdyZWF0IHRoYXQgdGhpcyBjYW4gcnVuIGFyYml0cmFyeSBjb2RlIHRvIHN0cmluZy1pZnkgdGhl
IHZhbHVlIG9mIHRoZSBleGNlcHRpb24uCisgICAgICAgICAgICAvLyBEbyB3ZSBuZWVkIHRvIGRv
IGFueXRoaW5nIHRvIGhhbmRsZSB0aGF0IHByb3Blcmx5LCBpZiBpdCwgc2F5LCByYWlzZXMgYW5v
dGhlciBleGNlcHRpb24/CisgICAgICAgICAgICBpZiAocmV0dXJuZWRFeGNlcHRpb25NZXNzYWdl
KQorICAgICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSByZXR1cm5lZEV4
Y2VwdGlvbi0+dmFsdWUoKS50b1dURlN0cmluZygmZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgZGV0YWlsZWQgZXJyb3Igd2l0aCBh
IGdlbmVyaWMgZXJyb3IuCisgICAgICAgICAgICBTdHJpbmcgZ2VuZXJpY0Vycm9yTWVzc2FnZSB7
ICJTY3JpcHQgZXJyb3IuIl9zIH07CisgICAgICAgICAgICBpZiAocmV0dXJuZWRFeGNlcHRpb25N
ZXNzYWdlKQorICAgICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBnZW5l
cmljRXJyb3JNZXNzYWdlOworICAgICAgICAgICAgcmV0dXJuZWRFeGNlcHRpb24gPSBKU0M6OkV4
Y2VwdGlvbjo6Y3JlYXRlKHZtLCBjcmVhdGVFcnJvcigmZ2xvYmFsT2JqZWN0LCBnZW5lcmljRXJy
b3JNZXNzYWdlKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBKU0dsb2JhbFNjb3BlUHJvdG90eXBlLCB0eXBlbmFtZSBKU0dsb2JhbFNjb3BlLCB0eXBlbmFt
ZSBHbG9iYWxTY29wZT4KIHZvaWQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6aW5p
dFNjcmlwdFdpdGhTdWJjbGFzcygpCiB7CiAgICAgQVNTRVJUKCFtX2dsb2JhbFNjb3BlV3JhcHBl
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNj
cmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGM0OTMwMWFlZDNkZDA4OWRhNzk3MzI3NjBjYWYyZjdi
NjRkYjExYjYuLmZhNWFkNWQwYzI3MGJjMTY1MzA1MmYxMjAxOGM5N2FkYzU5NjBjMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNSdW5Mb29wVGltZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9O
YWtlZFB0ci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTQ0LDYgKzQ1LDcgQEAgY2xhc3MgSlNH
bG9iYWxPYmplY3Q7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEpTRE9NR2xvYmFsT2Jq
ZWN0OworY2xhc3MgTG9hZGFibGVNb2R1bGVTY3JpcHQ7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2Rl
OwogY2xhc3MgV29ya2VyQ29uc29sZUNsaWVudDsKIGNsYXNzIFdvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlOwpAQCAtOTQsNiArOTYsMTEgQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlciB7CiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3Ry
aW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKICAgICB2b2lkIGV2YWx1
YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mIHJl
dHVybmVkRXhjZXB0aW9uLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxw
dHIpOwogCisgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlTW9kdWxlKEpTQzo6SlNNb2R1bGVSZWNv
cmQmKTsKKworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlKExvYWRhYmxlTW9kdWxlU2Ny
aXB0JiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgU3RyaW5nKiByZXR1cm5l
ZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKKyAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0
IGxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KExvYWRhYmxlTW9kdWxlU2NyaXB0JiwgY29uc3QgU2Ny
aXB0U291cmNlQ29kZSYpOworCiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUqIGdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxTY29wZTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcAppbmRleCBjOTU2ZGY5NTZiMGI0
MTNiNmYzMWU2OGIxMjcwMTFlMmMwNzJlNjRlLi5kNWRkMTRhMDE0NmExZjZiYmNmNTc2YWM2MDc4
NjVhMjlkNGI2NWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1
bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAK
QEAgLTI1MSw2ICsyNTEsNyBAQCB2b2lkIFdvcmtlclJ1bkxvb3A6OnBvc3RUYXNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrKQogCiB2b2lkIFdvcmtlclJ1bkxvb3A6OnBvc3RU
YXNrQW5kVGVybWluYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrKQogewor
ICAgIFdURlJlcG9ydEJhY2t0cmFjZSgpOwogICAgIG1fbWVzc2FnZVF1ZXVlLmFwcGVuZEFuZEtp
bGwobWFrZVVuaXF1ZTxUYXNrPihXVEZNb3ZlKHRhc2spLCBkZWZhdWx0TW9kZSgpKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA3Mjc5MGEwMzMyMjYx
OWU2ZWU3ZTYxNmE4YmRlMThiZDU1MmE1NzgzLi4xOGZjYjIyOTI2ODBiNWMyYzc4NTdkZDgxOWVl
ZGY4YWU5Y2I5MWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAKICNpbmNsdWRlICJJ
REJDb25uZWN0aW9uUHJveHkuaCIKKyNpbmNsdWRlICJMb2FkYWJsZU1vZHVsZVNjcmlwdC5oIgog
I2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgogI2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCkBAIC01NSw2ICs1Niw4IEBAIFdvcmtlclBh
cmFtZXRlcnMgV29ya2VyUGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICAgICAg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LAogICAgICAgICB0aW1l
T3JpZ2luLAogICAgICAgICByZWZlcnJlclBvbGljeSwKKyAgICAgICAgd29ya2VyVHlwZSwKKyAg
ICAgICAgY3JlZGVudGlhbHMsCiAgICAgICAgIHNldHRpbmdzVmFsdWVzLmlzb2xhdGVkQ29weSgp
CiAgICAgfTsKIH0KQEAgLTEyMyw5ICsxMjYsMzIgQEAgYm9vbCBXb3JrZXJUaHJlYWQ6OnNob3Vs
ZFdhaXRGb3JXZWJJbnNwZWN0b3JPblN0YXJ0dXAoKSBjb25zdAogCiB2b2lkIFdvcmtlclRocmVh
ZDo6ZXZhbHVhdGVTY3JpcHRJZk5lY2Vzc2FyeShTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpCiB7
Ci0gICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUo
bV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3Jp
cHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOwotCi0gICAgZmluaXNoZWRFdmFsdWF0aW5nU2Ny
aXB0KCk7CisgICAgLy8gV2UgYXJlIGN1cnJlbnRseSBob2xkaW5nIG9ubHkgdGhlIGluaXRpYWwg
c2NyaXB0IGNvZGUuIElmIHRoZSBXb3JrZXJUeXBlIGlzIE1vZHVsZSwgd2Ugc2hvdWxkIGZldGNo
IHRoZSBlbnRpcmUgZ3JhcGggYmVmb3JlIGV4ZWN1dGluZyB0aGUgcmVzdCBvZiB0aGlzLgorICAg
IC8vIFdlIGludm9rZSBtb2R1bGUgbG9hZGVyIGFzIGlmIHdlIGFyZSBleGVjdXRpbmcgaW5saW5l
IG1vZHVsZSBzY3JpcHQgdGFnIGluIERvY3VtZW50LgorCisgICAgaWYgKG1fc3RhcnR1cERhdGEt
PnBhcmFtcy53b3JrZXJUeXBlID09IFdvcmtlclR5cGU6OkNsYXNzaWMpIHsKKyAgICAgICAgZ2xv
YmFsU2NvcGUoKS0+c2NyaXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zdGFydHVw
RGF0YS0+c291cmNlQ29kZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKSwg
JmV4Y2VwdGlvbk1lc3NhZ2UpOworICAgICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsK
KyAgICB9IGVsc2UgeworICAgICAgICAvLyBGSVhNRSBjcm9zc09yaWdpbiBtb2RlIHNob3VsZCBi
ZSBjb252ZXJ0ZWQuCisgICAgICAgIC8vIEZJWE1FIGZpeCBpbml0aWF0b3IgbmFtZS4KKyAgICAg
ICAgLy8gRklYTUUgcGFzcyBVUkwgdG8gbW9kdWxlIGxvYWRlci4KKyAgICAgICAgZGF0YUxvZ0xu
KCJXT1JLRVIgTU9EVUxFIik7CisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZSht
X3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNjcmlw
dFVSTCksIHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSk7CisgICAg
ICAgIGF1dG8gbW9kdWxlU2NyaXB0ID0gTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmNyZWF0ZShlbXB0
eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCBtX3N0YXJ0dXBEYXRhLT5wYXJhbXMucmVmZXJyZXJQ
b2xpY3ksIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyOjpkZWZhdWx0Q3Jvc3NPcmln
aW5Nb2RlRm9yTW9kdWxlLCBlbXB0eVN0cmluZygpLCBlbXB0eUF0b20oKSwgZmFsc2UpOworICAg
ICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9IGdsb2JhbFNjb3BlKCktPnNjcmlw
dCgpLT5sb2FkTW9kdWxlU3luY2hyb25vdXNseShtb2R1bGVTY3JpcHQuZ2V0KCksIHNvdXJjZUNv
ZGUpOworICAgICAgICBkYXRhTG9nTG4oIldPUktFUiBNT0RVTEUgRkVUQ0hFRCIpOworICAgICAg
ICBpZiAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpIHsKKyAgICAgICAgICAgIGlm
ICghbW9kdWxlU2NyaXB0LT5lcnJvcigpICYmICFtb2R1bGVTY3JpcHQtPndhc0NhbmNlbGVkKCkp
IHsKKyAgICAgICAgICAgICAgICAvLyBFdmFsdWF0ZS4KKyAgICAgICAgICAgICAgICBnbG9iYWxT
Y29wZSgpLT5zY3JpcHQoKS0+bGlua0FuZEV2YWx1YXRlTW9kdWxlKG1vZHVsZVNjcmlwdC5nZXQo
KSwgc291cmNlQ29kZSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOworICAgICAgICAgICAgICAgIGRhdGFM
b2dMbigiV09SS0VSIE1PRFVMRSBFVkFMVUFURUQiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hl
ZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgLy8gRklYTUUgVGhyb3cgYW4gZXJyb3IuCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CiAKICAgICAvLyBGcmVlIHRoZSBzdGFydHVwIGRhdGEgdG8gY2F1c2UgaXRzIG1lbWJlciB2
YXJpYWJsZSBkZXJlZidzIGhhcHBlbiBvbiB0aGUgd29ya2VyJ3MgdGhyZWFkIChzaW5jZQogICAg
IC8vIGFsbCByZWYvZGVyZWZzIG9mIHRoZXNlIG9iamVjdHMgYXJlIGhhcHBlbmluZyBvbiB0aGUg
dGhyZWFkIGF0IHRoaXMgcG9pbnQpLiBOb3RlIHRoYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5oCmluZGV4IDg4OTA3OTA4ZTdhOWI4MDllOGYyYTRlNDczZDc1MmQxMWQyOTM3YzAu
Ljk1MTJlZmRiMThmMzJhNTBlY2I3ZmI1Njk1OWQ2MWU4ODcyZmExZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAtMjYsNyArMjYsMTAgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgiCisjaW5j
bHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmts
ZXRUaHJlYWQuaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCisjaW5jbHVkZSAiV29ya2Vy
VHlwZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgogI2luY2x1
ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC02Myw2ICs2Niw4IEBAIHN0cnVj
dCBXb3JrZXJQYXJhbWV0ZXJzIHsKICAgICBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeTsKICAgICBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW47CiAgICAgUmVm
ZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3k7CisgICAgV29ya2VyVHlwZSB3b3JrZXJUeXBlOwor
ICAgIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwogICAgIFNldHRpbmdzOjpW
YWx1ZXMgc2V0dGluZ3NWYWx1ZXM7CiAKICAgICBXb3JrZXJQYXJhbWV0ZXJzIGlzb2xhdGVkQ29w
eSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCBjOGE3YTk5NzJmOWNj
OGMxNmE3OTY3NTExNTUyZjU0OTNhNjg2Zjk4Li4zM2NhMGVjMjNiNThhNTUxMTg3Njg0NmJhMDcx
ODM1MzJiNWM0N2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtNzMsOCArNzMs
OSBAQCBjbGFzcyBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA6IHB1YmxpYyBXb3JrZXJP
YmplY3RQcm94eSB7CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkKIC8v
IEZJWE1FOiBVc2UgdmFsaWQgcnVudGltZSBmbGFncwogCisvLyBGSVhNRTogVXNlIGEgdmFsaWQg
V29ya2VyVHlwZSBhbmQgQ3JlZGVudGFpbHMgZm9yIG1vZHVsZSBzZXJ2aWNlIHdvcmtlcnMuCiBT
ZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YSYgZGF0YSwgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBTZXR0aW5nczo6
VmFsdWVzJiBzZXR0aW5nc1ZhbHVlcywgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBX
b3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlk
ZXIpCi0gICAgOiBXb3JrZXJUaHJlYWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmcoKSwg
InNlcnZpY2V3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJ
ZGVudGlmaWVyKCksIFdURk1vdmUodXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxv
YWRlclN0cmF0ZWd5KCktPmlzT25MaW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5LCBm
YWxzZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHsgfSwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0YS5z
Y3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRhLnJl
Z2lzdHJhdGlvbi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRiQ29u
bmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFs
bEVuYWJsZWQoKSkKKyAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0eVN0
cmluZygpLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6
OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJpdHlQ
b2xpY3ksIGZhbHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9LCBXb3JrZXJUeXBlOjpDbGFz
c2ljLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFsczo6U2FtZU9yaWdpbiwgc2V0dGluZ3NWYWx1ZXMg
fSwgZGF0YS5zY3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFs
LCBkYXRhLnJlZ2lzdHJhdGlvbi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQo
KSwgaWRiQ29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6
OmNyZWF0ZUFsbEVuYWJsZWQoKSkKICAgICAsIG1fZGF0YShkYXRhLmlzb2xhdGVkQ29weSgpKQog
ICAgICwgbV93b3JrZXJPYmplY3RQcm94eShEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6
c2hhcmVkKCkpCiAgICAgLCBtX2hlYXJ0QmVhdFRpbWVvdXQoU1dDb250ZXh0TWFuYWdlcjo6c2lu
Z2xldG9uKCkuY29ubmVjdGlvbigpLT5zaG91bGRVc2VTaG9ydFRpbWVvdXQoKSA/IGhlYXJ0QmVh
dFRpbWVvdXRGb3JUZXN0IDogaGVhcnRCZWF0VGltZW91dCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419807</attachid>
            <date>2021-02-09 20:26:57 -0800</date>
            <delta_ts>2021-02-10 00:51:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210209202656.patch</filename>
            <type>text/plain</type>
            <size>100123</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZlNjA0YWRhNjJiNWRm
MmIzMzA0MTk0ZTc2ZGNkNzNjMzdjN2E3NC4uMWRkZDE3MjJkOWJjODIyYjAwNzAzZjkwYmU3YWQ1
ZTJlYWZkNTBhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDIxLTAyLTA5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBX
b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjps
b2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5
RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNo
ZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2NyaXB0TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1w
b3J0TWV0YVByb3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2Jq
ZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNo
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9h
ZGVyRXZhbHVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyk6
IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oLgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpjbGVhckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpN
b2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgICogYmluZGlu
Z3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRN
b2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9h
ZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVs
ZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJM
RnJvbVJlcXVlc3RVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpl
dmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1v
ZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlz
aGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
LgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
Ojp+V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1v
ZHVsZVNjcmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmguCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQpOiBEZWxldGVkLgorICAgICAgICAq
IGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3Jp
cHQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlcjo6V29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Oldvcmtlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuaWRsOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2Jh
bFNjb3BlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAg
ICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVMb2Fk
ZXIpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1v
ZHVsZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKiB3b3JrZXJz
L1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dv
cmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJQYXJhbWV0ZXJzOjppc29s
YXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpldmFsdWF0
ZVNjcmlwdElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRo
cmVhZCk6CisKIDIwMjEtMDItMDcgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMjcyMzc5KSBbV1BFXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21hdGhtbC9yZWxhdGlvbnMvY3NzLXN0eWxpbmcvbWF0aHZhcmlhbnQgdGVzdHMg
YXJlIEltYWdlIEZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYTVlMTVjODUwN2Y2OWU4MTQ4ZWU3
N2IzODRkZTEzODFkYTc3OTYwMC4uYmRhNGNjODlhZDJjOWI5ZDBjYTIyZjIxNmU3NDNiNjAzYmZh
Mjc1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYzOCw2ICs2MzgsNyBAQCBiaW5kaW5ncy9qcy9TdHJ1
Y3R1cmVkQ2xvbmUuY3BwCiBiaW5kaW5ncy9qcy9XZWJDb3JlSklUT3BlcmF0aW9ucy5jcHAKIGJp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCiBiaW5kaW5ncy9qcy9XZWJDb3JlVHlw
ZWRBcnJheUNvbnRyb2xsZXIuY3BwCitiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2Fk
ZXIuY3BwCiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKIGJpbmRpbmdzL2pzL1dyaXRhYmxl
U3RyZWFtLmNwcAogYnJpZGdlL0lkZW50aWZpZXJSZXAuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzA3YzJhODExZmQ2M2Ji
YWUxZmJmMmU5YzJlZWExOWExODVkZDZkYy4uMjRjMzk2NWM1YjQxZTIyODA4YmE5NWUzMGYxMDcz
ZWY0MGU0NDNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTA2MiwxNSArNTA2MiwxNyBAQAogCQlFMzA1OTI2NDFFMjdBM0FE
MDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTkyNjIxRTI3QTM4QzAwRDU3Qzk4IC8qIElubGlu
ZUNsYXNzaWNTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlFMzA1OTI2ODFFMjdBM0QxMDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTky
NjYxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzA3REVEMDFEODFFNEM3MDAx
NDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJRTMwN0RFRDExRDgxRTRDQjAwMTQxQ0FGIC8qIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzMDdERUQ1MUQ4MUU0RjIwMDE0MUNBRiAvKiBMb2FkYWJsZU1vZHVsZVNjcmlw
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RF
RDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMxNTBFQTcxREE3MjE5MzAw
MTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzMTUwRUE1MURBNzIxOEQwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJz
LmggKi87IH07CiAJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAzMiAvKiBNb2R1bGVGZXRjaFBhcmFt
ZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
OEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzIzQ0ZGQTFFNUFG
NkFGMDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMyM0NGRjkxRTVBRjZBNTAwRjBCNEEwIC8qIEpT
RE9NQ29udmVydFByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlFMzQzMkRFNDI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgg
Ki87IH07CisJCUUzNTE4OEI0MjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
NTE4OEIzMjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU2NUI3QjFE
QzJENkM5MDAyMTdEQkQgLyogSlNFdmVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZl
bnRDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFMzU4MDJCNjFEQzg0MzVEMDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODAyQjUxREM4
NDM1ODAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU4MkMyODI1MjdGNjY5MDBEMUI3OTAg
LyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzNTgyQzI2MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3Bl
cmF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUUzNUI5MDdGMjNGNjBBNTAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1QjkwN0MyM0Y2
MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM2NDMyMUMyNUQzN0E2NzAwRjkwRTJB
IC8qIE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExv
YWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURDMDQ1MDA3MThG
M0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RPTVByb21pc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzN0M4NjRG
MUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyog
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIERldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTYxNzcsNyArMTYxNzksNiBAQAogCQlFMzA1OTI2NjFF
MjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDYWNoZWRTY3JpcHRGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzMDdERUM2MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMw
N0RFQzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8q
IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFRDIxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9k
dWxlU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRh
YmxlTW9kdWxlU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RF
RDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvYWRhYmxlTW9kdWxlU2NyaXB0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzMTUwRUE1MURBNzIxOEQwMDE5NDAxMiAvKiBET01KSVRIZWxw
ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVEhlbHBlcnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTkwLDEyICsxNjE5MSwxNiBAQAogCQlF
MzI5Mjc2MzIyNTQzRjU5MDAzMDhBOUEgLyogVHlwZWRPTUNTU1VuaXRWYWx1ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTMyOTI3NjYyMjU0M0ZERTAwMzA4QTlBIC8qIERPTVJlY3RSZWFkT25seS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01SZWN0UmVhZE9ubHkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMzM0ODI1RTFEQzkzQUEwMDA5Qzk1NDQgLyogRE9NSklUQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBET01K
SVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0RPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKKwkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNj
cmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM0MzJERTMy
NUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzRFRTQ5RjFEQzJENTc1MDBFQUE5RDMg
LyogSlNFdmVudEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2
ZW50Q3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNTE4OEIzMjVEMzg3
Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExU
eXBlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVElETFR5
cGVGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODJDMjQyNTI3RjY2
ODAwRDFCNzkwIC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVKSVRPcGVyYXRpb25zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODJDMjYyNTI3RjY2ODAwRDFCNzkwIC8qIFdlYkNvcmVKSVRP
cGVyYXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVKSVRP
cGVyYXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUI5MDdDMjNGNjA2
NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzVCOTA3RTIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9k
ZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbGl6ZWRE
ZXZpY2VNb2RlbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM2NDMyMUEyNUQz
N0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNb2R1bGVTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVByb21pc2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVs
ZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRN
b2R1bGVMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NTFC
QUQxNDVGMDBENjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjY5ODcsNyArMjY5OTIsNiBAQAogCQkJCTJERkE0ODhFMURCNTQxQzIwMDM2
MkI5OSAvKiBCdWZmZXJTb3VyY2UuaCAqLywKIAkJCQlFMzA3REVDNjFEODFFNDQ4MDAxNDFDQUYg
LyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAqLywKIAkJCQlFMzA3REVDNzFEODFFNDQ4
MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8sCi0JCQkJRTMwN0RFQzgx
RDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovLAog
CQkJCUUzMDU5MjY1MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmNwcCAq
LywKIAkJCQlFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5o
ICovLAogCQkJCUJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oICovLApAQCAtMjcwNjEsNiArMjcwNjUsOCBAQAogCQkJCTRCREVBMzJEMjE4MDM0
MDUwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwICovLAogCQkJCTRCREVB
MzJCMjE4MDMzRUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCAqLywKIAkJ
CQk3MDlBMDFGRDFFM0QwQkNDMDA2QjBENEMgLyogTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oICov
LAorCQkJCUUzNjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCAq
LywKKwkJCQlFMzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xp
ZW50LmggKi8sCiAJCQkJNDFCNDU5RUQxRjU1RUJDNzAwMDBGNkZEIC8qIFJlYWRhYmxlU3RyZWFt
LmNwcCAqLywKIAkJCQk0MUI0NTlEQTFGNENBREI5MDAwMEY2RkQgLyogUmVhZGFibGVTdHJlYW0u
aCAqLywKIAkJCQk0MThDMzk1RTFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1EZWZh
dWx0Q29udHJvbGxlci5jcHAgKi8sCkBAIC0yNzA5Miw2ICsyNzA5OCw4IEBACiAJCQkJMEYwOTlE
MDcxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oICovLAog
CQkJCTQ2MzUyMUFDMjA4MTA5MEUwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5jcHAgKi8sCiAJCQkJ
NDYzNTIxQUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi8sCisJCQkJRTM0MzJE
RTMyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8sCisJ
CQkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5o
ICovLAogCQkJCTQxNDE4QTAzMjU2NDNFMTIwMDM2MzQxNyAvKiBXcml0YWJsZVN0cmVhbS5jcHAg
Ki8sCiAJCQkJNDE0MThBMDQyNTY0M0UxMzAwMzYzNDE3IC8qIFdyaXRhYmxlU3RyZWFtLmggKi8s
CiAJCQkpOwpAQCAtMzEzNTcsNyArMzEzNjUsNiBAQAogCQkJCUJDQjE2QzFDMDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE5RkJENUYxNUQyRjQ2
NDAwOTY0MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA3
REVEMDFEODFFNEM3MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlFMzA3REVEMTFEODFFNENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2Ny
aXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTAxODQ2OTBCMDg2MDJBMDA0
QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDBFREE3NzUxNDNFMzAz
QzAwMjhFMzgzIC8qIENhY2hlZFJhd1Jlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUI1
MzM0OTE3MTdERUUzMDBGMjA1RjkgLyogQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzM4MjcsNiArMzM4MzQsOCBAQAogCQkJCUM2RDc0QUQ1MDlBQTI4MkUwMDBC
MEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTcw
OUEwMUZFMUUzRDBCREQwMDZCMEQ0QyAvKiBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMzIwMUMxQTFGOEU4MjEzMDA3NkEwMzIgLyogTW9kdWxlRmV0Y2hQYXJh
bWV0ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzY0MzIxQzI1RDM3QTY3MDBGOTBFMkEgLyog
TW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzUxODhCNDI1RDM4N0NG
MDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNTVCM0RDNjEyNTFGMTJEMDAzRUYyNjkgLyogTW9udGhJbnB1dFR5cGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUzOTYyOEMxMjM5NTc0MzEwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0NjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VF
dmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTQ3Niw2ICszNTQ4NSw3IEBACiAJCQkJMThGODMx
QjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTG9jYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJFNDM0NjUwMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQ
cm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM0MzJERTQyNUQzNzdFMzAwNThFNjEyIC8qIFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNzFBMEIwRUVF
Qzc3QTAwRjYxMjEzIC8qIFdvcmtlck5hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVD
QjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8qIFdvcmtlck5ldHdvcmtBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0Nh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9D
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCmluZGV4IDM1MmRjYzRhY2Y3NTE3NmQ5OGFkMzQx
MGJlMTUxNjA4MDEwODg1MjQuLmM2YmM0NDdkMzE5MDQwMjRiM2NiZDdjY2E2YzBjMjljZmI0ODBh
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyOjpjcmVhdGUoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERl
ZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hl
ciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQorUmVmPENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcj4gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwg
Q2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFy
YW1ldGVycz4mJiBwYXJhbWV0ZXJzKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1v
dmUocGFyYW1ldGVycykpKTsKIH0KIAotQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQs
IERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0
Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQotICAgIDog
bV9jbGllbnQoJmNsaWVudCkKK0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Q2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFBy
b21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0
cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICA6IE1vZHVsZVNjcmlw
dExvYWRlcihjbGllbnQpCiAgICAgLCBtX3Byb21pc2UoJnByb21pc2UpCiAgICAgLCBtX3Njcmlw
dEZldGNoZXIoc2NyaXB0RmV0Y2hlcikKICAgICAsIG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFt
ZXRlcnMpKQpAQCAtNjEsMTQgKzYxLDE0IEBAIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6fkNh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlcigpCiAgICAgfQogfQogCi1ib29sIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcjo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc291cmNlVVJM
KQorYm9vbCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50
LCBVUkwmJiBzb3VyY2VVUkwpCiB7CiAgICAgQVNTRVJUKCFtX2NhY2hlZFNjcmlwdCk7CiAgICAg
U3RyaW5nIGludGVncml0eSA9IG1fcGFyYW1ldGVycyA/IG1fcGFyYW1ldGVycy0+aW50ZWdyaXR5
KCkgOiBTdHJpbmcgeyB9OwogICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9zY3JpcHRGZXRjaGVyLT5y
ZXF1ZXN0TW9kdWxlU2NyaXB0KGRvY3VtZW50LCBzb3VyY2VVUkwsIFdURk1vdmUoaW50ZWdyaXR5
KSk7CiAgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IG1fc291cmNlVVJMID0gc291cmNlVVJMOworICAgIG1fc291cmNlVVJMID0gV1RGTW92ZShzb3Vy
Y2VVUkwpOwogCiAgICAgLy8gSWYgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQsIHRoaXMg
aW1tZWRpYXRlbHkgY2FsbHMgbm90aWZ5RmluaXNoZWQuCiAgICAgbV9jYWNoZWRTY3JpcHQtPmFk
ZENsaWVudCgqdGhpcyk7CkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IE5l
CiAKICAgICBSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlz
KTsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgq
dGhpcywgV1RGTW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlz
aGVkKCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxs
KCkpOwogCiAgICAgLy8gUmVtb3ZlIHRoZSBjbGllbnQgYWZ0ZXIgY2FsbGluZyBub3RpZnlGaW5p
c2hlZCB0byBrZWVwIHRoZSBkYXRhIGJ1ZmZlciBpbgogICAgIC8vIENhY2hlZFJlc291cmNlIGFs
aXZlIHdoaWxlIG5vdGlmeUZpbmlzaGVkIHByb2Nlc3NlcyB0aGUgcmVzb3VyY2UuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5o
CmluZGV4IDQzYWJkODc1YjI0M2ZhZjVmY2Q0ZDk4ZWMzYzVkMjRlNzkwYjU3MmUuLjA0NDg3NjE4
OTlkZWVlN2E4NjU4MjhjMDAxZWRhMWJmNzgzNTMzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzQsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKK2NsYXNzIE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIENhY2hlZFNjcmlw
dEZldGNoZXI7CiBjbGFzcyBEZWZlcnJlZFByb21pc2U7CkBAIC00MiwzMSArNDMsMjMgQEAgY2xh
c3MgRG9jdW1lbnQ7CiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKIGNsYXNzIE1vZHVsZUZldGNo
UGFyYW1ldGVyczsKIAotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVi
bGljIFJlZkNvdW50ZWQ8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiwgcHJpdmF0ZSBDYWNoZWRS
ZXNvdXJjZUNsaWVudCB7CitjbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBw
dWJsaWMgTW9kdWxlU2NyaXB0TG9hZGVyLCBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRl
KENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hl
ZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKyAgICBz
dGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQ
dHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZpcnR1YWwgfkNhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcigpOwogCi0gICAgYm9vbCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJMJiBz
b3VyY2VVUkwpOworICAgIGJvb2wgbG9hZChEb2N1bWVudCYsIFVSTCYmIHNvdXJjZVVSTCk7CiAK
ICAgICBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyKCkgeyByZXR1cm4gbV9zY3Jp
cHRGZXRjaGVyLmdldCgpOyB9CiAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSB7IHJl
dHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQogICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyog
cGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQotICAgIGNvbnN0IFVS
TCYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KLQotICAgIHZvaWQg
Y2xlYXJDbGllbnQoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fY2xpZW50KTsKLSAgICAgICAg
bV9jbGllbnQgPSBudWxscHRyOwotICAgIH0KIAogcHJpdmF0ZToKLSAgICBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9t
aXNlJiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+
JiYpOworICAgIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVs
ZUZldGNoUGFyYW1ldGVycz4mJik7CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlJiwgY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CiAKLSAgICBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwogICAgIFJlZlB0
cjxEZWZlcnJlZFByb21pc2U+IG1fcHJvbWlzZTsKICAgICBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hl
cj4gbV9zY3JpcHRGZXRjaGVyOwogICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+IG1f
cGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDg2ODhhZDkwZGFlM2VjZTk0OWVhMDliMWVmZWU1ZGEyNmY5NGM3ODYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcjsKLWNsYXNzIERlZmVycmVkUHJvbWlzZTsKLQotY2xhc3MgQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5DYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQoKSA9IGRlZmF1bHQ7Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVy
cmVkUHJvbWlzZT4pID0gMDsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKaW5kZXggYTQzMzc1ODY1YmJmMWVjNTk3M2Jm
MTcyYzkxYTM4NTMyMzRlMzc0ZC4uZGYzYzZiNmViYjg0YWY3MmVkMjk1NWY5OTExZDA3YTg3YWIz
NTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0
RmV0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0
RmV0Y2hlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC00Nyw2ICs0OCw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNj
cmlwdD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdE1vZHVsZVNjcmlwdChEb2N1CiAKIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVx
dWVzdFNjcmlwdFdpdGhDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc291cmNl
VVJMLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSwgU3RyaW5nJiYgaW50ZWdyaXR5LCBP
cHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4gcmVzb3VyY2VMb2FkUHJpb3JpdHkpIGNvbnN0
CiB7CisgICAgLy8gV2l0aG91dCBzY3JpcHRpbmcsIHRoZXJlIGlzIG5vIHdheSB0byBzdGFydCBX
b3JrZXJzLgogICAgIGlmICghZG9jdW1lbnQuc2V0dGluZ3MoKS5pc1NjcmlwdEVuYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCA1OGI3ZGY3NjBjMDBhMzFmZjA4ZWQyMmRl
ZTIyYThjNzQ0M2FlOGRkLi4xMDIyOTU0ODRmNjRjMTRkOGY0YmE3ODdhMmFlZTZkNmIzMGJhMGRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwCkBAIC00MjIsNiArNDIyLDc5IEBAIEpTQzo6SlNQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVj
dDo6aW5zdGFudGlhdGVTdHJlYW1pbmcoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAjZW5k
aWYKIAorc3RhdGljIFNjcmlwdE1vZHVsZUxvYWRlciogc2NyaXB0TW9kdWxlTG9hZGVyKEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTRE9NV2luZG93QmFzZT4o
dm0pKSB7CisgICAgICAgIGlmIChhdXRvIGRvY3VtZW50ID0ganNDYXN0PGNvbnN0IEpTRE9NV2lu
ZG93QmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBwZWQoKS5kb2N1bWVudCgpKQorICAgICAgICAg
ICAgcmV0dXJuICZkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1JlbW90ZURPTVdp
bmRvd0Jhc2U+KHZtKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGdsb2JhbE9i
amVjdC0+aW5oZXJpdHM8SlNXb3JrZXJHbG9iYWxTY29wZUJhc2U+KHZtKSkKKyAgICAgICAgcmV0
dXJuICZqc0Nhc3Q8Y29uc3QgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3Qp
LT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJp
dHM8SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0
PGNvbnN0IEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBwZWQo
KS5tb2R1bGVMb2FkZXIoKTsKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBpZiAo
Z2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU0lEQlNlcmlhbGl6YXRpb25HbG9iYWxPYmplY3Q+KHZt
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKyAgICBkYXRhTG9nKCJVbmV4cGVj
dGVkIGdsb2JhbCBvYmplY3Q6ICIsIEpTVmFsdWUoZ2xvYmFsT2JqZWN0KSwgIlxuIik7CisgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
SlNDOjpJZGVudGlmaWVyIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9k
dWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVy
TW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUdsb2Jh
bE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xv
YmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRo
aXNPYmplY3QpKQorICAgICAgICByZXR1cm4gbG9hZGVyLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwg
bW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hl
cik7CisgICAgcmV0dXJuIHsgfTsKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01H
bG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUg
bW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZl
dGNoZXIpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhp
c09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsK
KyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQor
ICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+ZmV0Y2goZ2xvYmFsT2Jq
ZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hlcikp
OworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJl
KCkpOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2Jq
ZWN0LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gcHJvbWlzZTsKK30KKworSlNDOjpKU1Zh
bHVlIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwg
SlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpK
U1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmpl
Y3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAg
aWYgKGF1dG8qIGxvYWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAg
ICAgcmV0dXJuIGxvYWRlci0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1v
ZHVsZUtleSwgbW9kdWxlUmVjb3JkLCBzY3JpcHRGZXRjaGVyKTsKKyAgICByZXR1cm4gSlNDOjpq
c1VuZGVmaW5lZCgpOworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5n
KiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VP
cmlnaW4mIHNvdXJjZU9yaWdpbikKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTRE9NR2xv
YmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihn
bG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIo
dGhpc09iamVjdCkpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbG9hZGVyLT5p
bXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBhcmFt
ZXRlcnMsIHNvdXJjZU9yaWdpbikpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21p
c2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50
ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBwcm9t
aXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gcHJv
bWlzZTsKK30KKworSlNDOjpKU09iamVjdCogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRl
ckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9k
dWxlS2V5LCBKU0M6OkpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBz
Y3JpcHRGZXRjaGVyKQoreworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlND
Ojpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRv
KiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVy
biBsb2FkZXItPmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxl
TG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0
dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0
LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkpOworfQorCiBKU0RPTUdsb2JhbE9iamVj
dCYgY2FsbGVyR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUmIGNhbGxGcmFtZSkKIHsKICAgICBjbGFzcyBHZXRDYWxsZXJHbG9iYWxPYmpl
Y3RGdW5jdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5oCmluZGV4IGI4NDA3MmRkZDc0NmIzZDZjNTEwNjBkOTA1MDFiNWNlYTFiNDk5YjEuLmY0
OWE0Y2QyNTcxOTcxMTg5MTdhN2Q3YTRiNmMwZTExZmM3NmJhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtMTA1LDYgKzEwNSwxMiBA
QCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU0RPTUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0M6OkpT
R2xvYmFsT2JqZWN0IHsKICAgICBzdGF0aWMgSlNDOjpKU1Byb21pc2UqIGluc3RhbnRpYXRlU3Ry
ZWFtaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNPYmplY3Qq
KTsKICNlbmRpZgogCisgICAgc3RhdGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNv
bHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1Zh
bHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNJbnRl
cm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1
ZSk7CisgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpK
U1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTU3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNv
dXJjZU9yaWdpbiYpOworICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVh
dGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVs
ZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1
ZSk7CisKICAgICBKU0RPTVN0cnVjdHVyZU1hcCBtX3N0cnVjdHVyZXM7CiAgICAgSlNET01Db25z
dHJ1Y3Rvck1hcCBtX2NvbnN0cnVjdG9yczsKICAgICBET01HdWFyZGVkT2JqZWN0U2V0IG1fZ3Vh
cmRlZE9iamVjdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmNwcAppbmRleCA1NjNlZmEwNTcxYjVkNDYyZDllNjQ1MDg5ZjBiZDhmNzdkMTlhNzY4Li4z
MTJhMDExNThlOGMyODA4M2MwN2U0MmRiODcyNDVmZTRlNWM1N2FhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTMzOSw1NCArMzM5LDQg
QEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0Zvcldp
bmRvdyhET01XaW5kb3cqIHdpbmRvdykKICAgICB9CiB9CiAKLUpTQzo6SWRlbnRpZmllciBKU0RP
TVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1
ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNWYWx1
ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpT
Qzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0
cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkK
LSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5yZXNvbHZlKGdsb2JhbE9i
amVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0
RmV0Y2hlcik7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSog
SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1Zh
bHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3Jp
cHRGZXRjaGVyKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0
aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsK
LSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5kb2N1bWVudCgpKQotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50
LT5tb2R1bGVMb2FkZXIoKS5mZXRjaChnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxl
S2V5LCBwYXJhbWV0ZXJzLCBzY3JpcHRGZXRjaGVyKSk7Ci0gICAgSlNDOjpKU0ludGVybmFsUHJv
bWlzZSogcHJvbWlzZSA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2U6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LT5pbnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgp
OwotICAgIHByb21pc2UtPnJlamVjdChnbG9iYWxPYmplY3QsIGpzVW5kZWZpbmVkKCkpOwotICAg
IHJldHVybiBwcm9taXNlOwotfQotCi1KU0M6OkpTVmFsdWUgSlNET01XaW5kb3dCYXNlOjptb2R1
bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlND
OjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCi17Ci0g
ICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dC
YXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1l
bnQtPm1vZHVsZUxvYWRlcigpLmV2YWx1YXRlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBt
b2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIEpTQzo6
anNVbmRlZmluZWQoKTsKLX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dC
YXNlOjptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNTdHJpbmcq
IG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBwYXJhbWV0ZXJzLCBjb25zdCBKU0M6OlNvdXJjZU9y
aWdpbiYgc291cmNlT3JpZ2luKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
LSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5k
b3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFs
T2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5pbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1
bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBhcmFtZXRlcnMsIHNvdXJjZU9yaWdpbikpOwotICAgIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOwotICAg
IHNjb3BlLnJlbGVhc2UoKTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1Vu
ZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpKU09iamVjdCogSlNE
T01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVs
ZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCogbW9k
dWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RPTVdpbmRv
d0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxP
YmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+
d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9h
ZGVyKCkuY3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2Fk
ZXIsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkLCBzY3JpcHRGZXRjaGVyKTsKLSAgICByZXR1cm4g
Y29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPm51
bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXgg
M2VmOTgwZGQyN2Y2YjIxMzk4NzAwOGJhNDc2YzhjYTY5ZjJmMGI2NC4uNTE0MmIxYzdkYzI1YzIy
ZmU5Nzg5NWU3NWFlMjJlZjRkMWU1ODlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTk5LDEyICs5OSw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQ
T1JUIEpTRE9NV2luZG93QmFzZSA6IHB1YmxpYyBKU0RPTUdsb2JhbE9iamVjdCB7CiBwcml2YXRl
OgogICAgIHVzaW5nIFJlc3BvbnNlQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3Qg
Y2hhciosIHNpemVfdCk+OwogCi0gICAgc3RhdGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2Fk
ZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlND
OjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6
SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwg
SlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlKiBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTU3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBK
U0M6OlNvdXJjZU9yaWdpbiYpOwotICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2Fk
ZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpK
U01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6
SlNWYWx1ZSk7Ci0KICAgICBSZWZQdHI8RE9NV2luZG93PiBtX3dyYXBwZWQ7CiAgICAgUmVmUHRy
PEV2ZW50PiBtX2N1cnJlbnRFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDJiMjZjOWY0ZWEy
MTYyMDdkZTRjODY4MjBiOGE4MWI2MDM1YjdlYi4uMmQ3OTNmZmYyMTg1M2E4YTFhNzg4MDY2NzI1
MGY1N2U3NTJmZTNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNTksMTEgKzU5LDExIEBAIGNvbnN0IEds
b2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlCiAgICAgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsCiAgICAgJnF1ZXVl
TWljcm90YXNrVG9FdmVudExvb3AsCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRp
bWVvdXQsCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVs
bHB0ciwgLy8gbW9kdWxlTG9hZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRl
ckZldGNoCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3Bl
cnRpZXMKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVM
b2FkZXJJbXBvcnRNb2R1bGUsCisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVs
ZUxvYWRlckZldGNoLAorICAgICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGll
cywKKyAgICAmbW9kdWxlTG9hZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFj
a2VyLAogICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJy
ZW50U2NyaXB0RXhlY3V0aW9uT3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCAzNWZhNmUzMjc3ZmIw
ZDRiZTBlMGUxZWRjNDM3MjJlZGFkZmM4YWYyLi45ZmFlYzk1OWMzOWQxNzQ4MTgxYzk4NjUwMDNk
NWE4NmYxN2Y1ZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTQ5LDExICs0OSwxMSBAQCBjb25zdCBH
bG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFs
T2JqZWN0TWV0aG9kVGFibAogICAgICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLAogICAgIG51bGxw
dHIsIC8vIHF1ZXVlTWljcm90YXNrVG9FdmVudExvb3AKICAgICAmc2hvdWxkSW50ZXJydXB0U2Ny
aXB0QmVmb3JlVGltZW91dCwKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1
bGUKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJSZXNvbHZlCi0gICAgbnVsbHB0ciwgLy8g
bW9kdWxlTG9hZGVyRmV0Y2gKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJDcmVhdGVJbXBv
cnRNZXRhUHJvcGVydGllcwotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckV2YWx1YXRlCisg
ICAgJm1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSwKKyAgICAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwK
KyAgICAmbW9kdWxlTG9hZGVyRmV0Y2gsCisgICAgJm1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1l
dGFQcm9wZXJ0aWVzLAorICAgICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwKICAgICAmcHJvbWlzZVJl
amVjdGlvblRyYWNrZXIsCiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3As
CiAgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTE5ZDk3ZGJjNDFm
NzU0MjZlYWYyY2RkZDFiNWI5NzFlODAyNzhjZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
OworCitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVT
Y3JpcHRMb2FkZXI+IHsKK3B1YmxpYzoKKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX2NsaWVudCk7CisgICAgICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKKyAg
ICB9CisKK3Byb3RlY3RlZDoKKyAgICBNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50JiBjbGllbnQpCisgICAgICAgIDogbV9jbGllbnQoJmNsaWVudCkKKyAgICB7Cisg
ICAgfQorCisgICAgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk5NWY0OGVlM2QxZTAy
YzFkOGM5YzlkYTJiZDU4MjM2ZjNiYTA3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCkBAIC0wLDAgKzEsNDAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVy
OworY2xhc3MgRGVmZXJyZWRQcm9taXNlOworCitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfk1vZHVsZVNjcmlwdExvYWRlckNsaWVudCgpID0g
ZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRM
b2FkZXImLCBVUkwmJiwgUmVmPERlZmVycmVkUHJvbWlzZT4pID0gMDsKK307CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4
IGFhNWI4MGI1ODZiNzllMGU1NzUwMWNkNTEwNzhkZjI1YTYyNWU1ZDkuLjQzOTUzMDM4ZDA1M2Ew
MjNlZmY4OWNjZjZiYmJiOGEwOWI1OTdmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1
ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5o
IgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKQEAgLTUyLDggKzUxLDkgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1TY3JpcHRNb2R1bGVMb2FkZXI6OlNjcmlwdE1vZHVsZUxvYWRlcihEb2N1
bWVudCYgZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorU2NyaXB0TW9kdWxl
TG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgT3duZXJUeXBlIG93bmVyVHlwZSkKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwg
bV9vd25lclR5cGUob3duZXJUeXBlKQogewogfQogCkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBi
b29sIGlzUm9vdE1vZHVsZShKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpCiAgICAgcmV0
dXJuIGltcG9ydGVyTW9kdWxlS2V5LmlzU3ltYm9sKCkgfHwgaW1wb3J0ZXJNb2R1bGVLZXkuaXNV
bmRlZmluZWQoKTsKIH0KIAotc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9k
dWxlU3BlY2lmaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBzcGVjaWZpZXIs
IGNvbnN0IFVSTCYgYmFzZVVSTCkKK3N0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gcmVzb2x2
ZU1vZHVsZVNwZWNpZmllcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTY3JpcHRN
b2R1bGVMb2FkZXI6Ok93bmVyVHlwZSBvd25lclR5cGUsIGNvbnN0IFN0cmluZyYgc3BlY2lmaWVy
LCBjb25zdCBVUkwmIGJhc2VVUkwpCiB7CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3Jlc29sdmUtYS1tb2R1bGUtc3BlY2lmaWVy
CiAKQEAgLTc5LDcgKzc5LDEyIEBAIHN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gcmVzb2x2
ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0CiAgICAgaWYgKCFz
cGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi8iKSAm
JiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4uLyIpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIHNwZWNpZmllciwgJyJfcywgc3BlY2lmaWVyLCAiJyBk
b2VzIG5vdCBzdGFydCB3aXRoIFwiL1wiLCBcIi4vXCIsIG9yIFwiLi4vXCIuIFJlZmVyZW5jZWQg
ZnJvbSAiX3MsIGJhc2VVUkwuc3RyaW5nKCkpKTsKIAotICAgIGF1dG8gcmVzdWx0ID0gZG9jdW1l
bnQuY29tcGxldGVVUkwoc3BlY2lmaWVyLCBiYXNlVVJMKTsKKyAgICBVUkwgcmVzdWx0OworICAg
IGlmIChvd25lclR5cGUgPT0gU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGU6OkRvY3VtZW50
KQorICAgICAgICByZXN1bHQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuY29tcGxldGVV
Ukwoc3BlY2lmaWVyLCBiYXNlVVJMKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IFVSTChi
YXNlVVJMLCBzcGVjaWZpZXIpOworCiAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCgpKQogICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIG5hbWUsICciX3MsIHJl
c3VsdC5zdHJpbmcoKSwgIicgZG9lcyBub3QgcmVzb2x2ZSB0byBhIHZhbGlkIFVSTC4iX3MpKTsK
ICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTA3LDcgKzExMiw3IEBAIEpTQzo6SWRlbnRpZmllciBT
Y3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxP
YmplY3QsCiAgICAgVVJMIGJhc2VVUkwgPSByZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKCpqc0ds
b2JhbE9iamVjdCwgaW1wb3J0ZXJNb2R1bGVLZXkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIo
bV9kb2N1bWVudCwgc3BlY2lmaWVyLCBiYXNlVVJMKTsKKyAgICBhdXRvIHJlc3VsdCA9IHJlc29s
dmVNb2R1bGVTcGVjaWZpZXIobV9jb250ZXh0LCBtX293bmVyVHlwZSwgc3BlY2lmaWVyLCBiYXNl
VVJMKTsKICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICBKU0M6OnRocm93VHlwZUVycm9yKGpz
R2xvYmFsT2JqZWN0LCBzY29wZSwgcmVzdWx0LmVycm9yKCkpOwogICAgICAgICByZXR1cm4geyB9
OwpAQCAtMTYxLDEzICsxNjYsMTkgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9k
dWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE8KICAgICBpZiAo
YXV0byogc2NyaXB0RmV0Y2hQYXJhbWV0ZXJzID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNT
Y3JpcHRGZXRjaFBhcmFtZXRlcnMqPih2bSwgcGFyYW1ldGVycykpCiAgICAgICAgIHRvcExldmVs
RmV0Y2hQYXJhbWV0ZXJzID0gc3RhdGljX2Nhc3Q8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzKj4oJnNj
cmlwdEZldGNoUGFyYW1ldGVycy0+cGFyYW1ldGVycygpKTsKIAotICAgIGF1dG8gbG9hZGVyID0g
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAq
c3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3Jp
cHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxG
ZXRjaFBhcmFtZXRlcnMpKTsKLSAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOwot
ICAgIGlmICghbG9hZGVyLT5sb2FkKG1fZG9jdW1lbnQsIGNvbXBsZXRlZFVSTCkpIHsKLSAgICAg
ICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOwotICAgICAgICBtX2xvYWRlcnMucmVtb3ZlKFdURk1v
dmUobG9hZGVyKSk7Ci0gICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKGRlZmVy
cmVkLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5n
IGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsKLSAgICAgICAgcmV0dXJuIGpzUHJvbWlzZTsK
KyAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBh
dXRvIGxvYWRlciA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZl
cnJlZC5nZXQoKSwgKnN0YXRpY19jYXN0PENhY2hlZFNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2Fz
dDxKU0M6OkpTU2NyaXB0RmV0Y2hlcio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZN
b3ZlKHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzKSk7CisgICAgICAgIG1fbG9hZGVycy5hZGQobG9h
ZGVyLmNvcHlSZWYoKSk7CisgICAgICAgIGlmICghbG9hZGVyLT5sb2FkKGRvd25jYXN0PERvY3Vt
ZW50PihtX2NvbnRleHQpLCBXVEZNb3ZlKGNvbXBsZXRlZFVSTCkpKSB7CisgICAgICAgICAgICBs
b2FkZXItPmNsZWFyQ2xpZW50KCk7CisgICAgICAgICAgICBtX2xvYWRlcnMucmVtb3ZlKFdURk1v
dmUobG9hZGVyKSk7CisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihk
ZWZlcnJlZC5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9y
dGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm4ganNQ
cm9taXNlOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBsb2FkZXIgPSBX
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpz
dGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1Njcmlw
dEZldGNoZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZl
dGNoUGFyYW1ldGVycykpOworICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkp
OworICAgICAgICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBXVEZNb3ZlKGNvbXBsZXRlZFVSTCkp
OwogICAgIH0KIAogICAgIHJldHVybiBqc1Byb21pc2U7CkBAIC0xNzYsNyArMTg3LDcgQEAgSlND
OjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xv
YmFsT2JqZWN0KiBqc0dsb2JhbE8KIFVSTCBTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVSTChK
U0M6OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtl
eVZhbHVlKQogewogICAgIGlmIChtb2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgpKQotICAgICAgICBy
ZXR1cm4gbV9kb2N1bWVudC51cmwoKTsKKyAgICAgICAgcmV0dXJuIG1fY29udGV4dC51cmwoKTsK
IAogICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKICAgICByZXR1cm4gVVJM
KFVSTCgpLCBhc1N0cmluZyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKCZqc0dsb2JhbE9iamVjdCkp
OwpAQCAtMTg3LDggKzE5OCwxMSBAQCBVUkwgU2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNwb25zZVVS
TEZyb21SZXF1ZXN0VVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmIGpzR2xvYmFsTwogICAgIEpTQzo6
Vk0mIHZtID0ganNHbG9iYWxPYmplY3Qudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAKLSAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkK
LSAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQuYmFzZVVSTCgpOworICAgIGlmIChpc1Jvb3RNb2R1
bGUobW9kdWxlS2V5VmFsdWUpKSB7CisgICAgICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5
cGU6OkRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihtX2Nv
bnRleHQpLmJhc2VVUkwoKTsKKyAgICAgICAgcmV0dXJuIG1fY29udGV4dC51cmwoKTsKKyAgICB9
CiAKICAgICBBU1NFUlQoIWlzUm9vdE1vZHVsZShtb2R1bGVLZXlWYWx1ZSkpOwogICAgIEFTU0VS
VChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKQEAgLTIxOSw4ICsyMzMsMTQgQEAgSlNDOjpK
U1ZhbHVlIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCog
anNHbG9iYWxPYmplY3QsIEoKICAgICBpZiAoIXNvdXJjZVVSTC5pc1ZhbGlkKCkpCiAgICAgICAg
IHJldHVybiBKU0M6OnRocm93VHlwZUVycm9yKGpzR2xvYmFsT2JqZWN0LCBzY29wZSwgIk1vZHVs
ZSBrZXkgaXMgYW4gaW52YWxpZCBVUkwuIl9zKTsKIAotICAgIGlmIChhdXRvKiBmcmFtZSA9IG1f
ZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0
ZU1vZHVsZShzb3VyY2VVUkwsICptb2R1bGVSZWNvcmQpOworICAgIGlmIChtX293bmVyVHlwZSA9
PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvd25j
YXN0PERvY3VtZW50PihtX2NvbnRleHQpLmZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm4gZnJh
bWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgKm1vZHVsZVJlY29yZCk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKGlzPFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
PihtX2NvbnRleHQpKTsKKyAgICAgICAgaWYgKGF1dG8qIHNjcmlwdCA9IGRvd25jYXN0PFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlPihtX2NvbnRleHQpLnNjcmlwdCgpKQorICAgICAgICAgICAg
cmV0dXJuIHNjcmlwdC0+ZXZhbHVhdGVNb2R1bGUoKm1vZHVsZVJlY29yZCk7CisgICAgfQogICAg
IHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAKQEAgLTI0OCwyMyArMjY4LDM2IEBAIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6aW1wb3J0TW9kdWxlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGpzCiAgICAgVVJMIGJhc2VVUkw7CiAgICAgUmVmUHRyPEpTQzo6
U2NyaXB0RmV0Y2hlcj4gc2NyaXB0RmV0Y2hlcjsKICAgICBpZiAoc291cmNlT3JpZ2luLmlzTnVs
bCgpKSB7Ci0gICAgICAgIGJhc2VVUkwgPSBtX2RvY3VtZW50LmJhc2VVUkwoKTsKLSAgICAgICAg
c2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShtX2RvY3VtZW50LmNo
YXJzZXQoKSk7CisgICAgICAgIFN0cmluZyBjaGFyc2V0OworICAgICAgICBpZiAobV9vd25lclR5
cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICAgICAgYmFzZVVSTCA9IGRvd25j
YXN0PERvY3VtZW50PihtX2NvbnRleHQpLmJhc2VVUkwoKTsKKyAgICAgICAgICAgIGNoYXJzZXQg
PSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5jaGFyc2V0KCk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBiYXNlVVJMID0gbV9jb250ZXh0LnVybCgpOworICAgICAgICAgICAg
Y2hhcnNldCA9ICJ1dGYtOCJfczsKKyAgICAgICAgfQorICAgICAgICBzY3JpcHRGZXRjaGVyID0g
Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKFdURk1vdmUoY2hhcnNldCkpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGJhc2VVUkwgPSBVUkwoVVJMKCksIHNvdXJjZU9yaWdpbi5zdHJpbmcoKSk7
CiAgICAgICAgIGlmICghYmFzZVVSTC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVq
ZWN0UHJvbWlzZShnbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgIkltcG9ydGVyIG1vZHVsZSBrZXkg
aXMgbm90IGEgU3ltYm9sIG9yIGEgU3RyaW5nLiJfcyk7CiAKKyAgICAgICAgU3RyaW5nIGNoYXJz
ZXQ7CisgICAgICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KQorICAg
ICAgICAgICAgY2hhcnNldCA9IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmNoYXJzZXQo
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2hhcnNldCA9ICJ1dGYtOCJfczsKKwogICAg
ICAgICBpZiAoc291cmNlT3JpZ2luLmZldGNoZXIoKSkKICAgICAgICAgICAgIHNjcmlwdEZldGNo
ZXIgPSBzb3VyY2VPcmlnaW4uZmV0Y2hlcigpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBz
Y3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKG1fZG9jdW1lbnQuY2hh
cnNldCgpKTsKKyAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVy
OjpjcmVhdGUoV1RGTW92ZShjaGFyc2V0KSk7CiAgICAgfQogICAgIEFTU0VSVChiYXNlVVJMLmlz
VmFsaWQoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEZldGNoZXIpOwogCiAgICAgYXV0byBzcGVjaWZp
ZXIgPSBtb2R1bGVOYW1lLT52YWx1ZShqc0dsb2JhbE9iamVjdCk7Ci0gICAgYXV0byByZXN1bHQg
PSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmllciwgYmFzZVVSTCk7
CisgICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fY29udGV4dCwgbV9v
d25lclR5cGUsIHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAg
IHJldHVybiByZWplY3RQcm9taXNlKGdsb2JhbE9iamVjdCwgVHlwZUVycm9yLCByZXN1bHQuZXJy
b3IoKSk7CiAKQEAgLTI4OCw2MiArMzIxLDkyIEBAIEpTQzo6SlNPYmplY3QqIFNjcmlwdE1vZHVs
ZUxvYWRlcjo6Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjCiAg
ICAgcmV0dXJuIG1ldGFQcm9wZXJ0aWVzOwogfQogCi12b2lkIFNjcmlwdE1vZHVsZUxvYWRlcjo6
bm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiBsb2FkZXIsIFJlZlB0cjxE
ZWZlcnJlZFByb21pc2U+IHByb21pc2UpCit2b2lkIFNjcmlwdE1vZHVsZUxvYWRlcjo6bm90aWZ5
RmluaXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVyJiBtb2R1bGVTY3JpcHRMb2FkZXIsIFVSTCYmIHNv
dXJjZVVSTCwgUmVmPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZSkKIHsKICAgICAvLyBodHRwczov
L2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1z
aW5nbGUtbW9kdWxlLXNjcmlwdAogCi0gICAgVVJMIHNvdXJjZVVSTCA9IGxvYWRlci5zb3VyY2VV
UkwoKTsKLSAgICBpZiAoIW1fbG9hZGVycy5yZW1vdmUoJmxvYWRlcikpCisgICAgaWYgKCFtX2xv
YWRlcnMucmVtb3ZlKCZtb2R1bGVTY3JpcHRMb2FkZXIpKQogICAgICAgICByZXR1cm47Ci0gICAg
bG9hZGVyLmNsZWFyQ2xpZW50KCk7CisgICAgbW9kdWxlU2NyaXB0TG9hZGVyLmNsZWFyQ2xpZW50
KCk7CiAKLSAgICBhdXRvJiBjYWNoZWRTY3JpcHQgPSAqbG9hZGVyLmNhY2hlZFNjcmlwdCgpOwor
ICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CisgICAgICAgIGF1
dG8mIGxvYWRlciA9IHN0YXRpY19jYXN0PENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciY+KG1vZHVs
ZVNjcmlwdExvYWRlcik7CisgICAgICAgIGF1dG8mIGNhY2hlZFNjcmlwdCA9ICpsb2FkZXIuY2Fj
aGVkU2NyaXB0KCk7CiAKLSAgICBpZiAoY2FjaGVkU2NyaXB0LnJlc291cmNlRXJyb3IoKS5pc0Fj
Y2Vzc0NvbnRyb2woKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCAiQ3Jv
c3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hh
cmluZyBwb2xpY3kuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYgKGNh
Y2hlZFNjcmlwdC5yZXNvdXJjZUVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkpIHsKKyAgICAgICAg
ICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQg
ZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iX3MpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICBpZiAoY2FjaGVkU2NyaXB0LmVycm9y
T2NjdXJyZWQoKSkgewotICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcigqcHJv
bWlzZSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1v
ZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAg
IGlmIChjYWNoZWRTY3JpcHQuZXJyb3JPY2N1cnJlZCgpKSB7CisgICAgICAgICAgICByZWplY3RU
b1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVL
aW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC53
YXNDYW5jZWxlZCgpKSB7Ci0gICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKCpw
cm9taXNlLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZCwgIkltcG9ydGluZyBh
IG1vZHVsZSBzY3JpcHQgaXMgY2FuY2VsZWQuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
KyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICBy
ZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZh
aWx1cmVLaW5kOjpXYXNDYW5jZWxlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgaXMgY2Fu
Y2VsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYgKCFN
SU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjYWNoZWRTY3Jp
cHQucmVzcG9uc2UoKS5taW1lVHlwZSgpKSkgewotICAgICAgICAvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9k
dWxlLXNjcmlwdAotICAgICAgICAvLyBUaGUgcmVzdWx0IG9mIGV4dHJhY3RpbmcgYSBNSU1FIHR5
cGUgZnJvbSByZXNwb25zZSdzIGhlYWRlciBsaXN0IChpZ25vcmluZyBwYXJhbWV0ZXJzKSBpcyBu
b3QgYSBKYXZhU2NyaXB0IE1JTUUgdHlwZS4KLSAgICAgICAgLy8gRm9yIGhpc3RvcmljYWwgcmVh
c29ucywgZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBkb2VzIG5vdCBpbmNsdWRlIE1JTUUgdHlw
ZSBjaGVja2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBzY3JpcHRzIHdpbGwgZmFpbCB0byBsb2Fk
IGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlNRSB0eXBlLgotICAgICAgICBwcm9taXNl
LT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2NyaXB0LnJlc3BvbnNl
KCkubWltZVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1p
bWVUeXBlKCkpKSB7CisgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAor
ICAgICAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20g
cmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2
YVNjcmlwdCBNSU1FIHR5cGUuCisgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25z
LCBmZXRjaGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNo
ZWNraW5nLiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYg
dGhleSBhcmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCisgICAgICAgICAgICBwcm9taXNl
LT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2NyaXB0LnJlc3BvbnNl
KCkubWltZVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8qIHBh
cmFtZXRlcnMgPSBsb2FkZXIucGFyYW1ldGVycygpKSB7CisgICAgICAgICAgICBpZiAoIW1hdGNo
SW50ZWdyaXR5TWV0YWRhdGEoY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkp
IHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5n
KCJDYW5ub3QgbG9hZCBzY3JpcHQgIiwgaW50ZWdyaXR5TWlzbWF0Y2hEZXNjcmlwdGlvbihjYWNo
ZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFVSTCByZXNwb25zZVVS
TCA9IGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpOworICAgICAgICAvLyBJZiB3ZSBkbyBu
b3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJh
Z21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRo
ZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgLy8g
RklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRpcmVjdGlvbnMuCisg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAK
KyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5
MAorICAgICAgICBpZiAoIWNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlvbnMoKSAmJiBjYWNoZWRT
Y3JpcHQucmVzcG9uc2UoKS5zb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNl
cnZpY2VXb3JrZXIpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVu
dGlmaWVyKCkpCisgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlm
aWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgICAgIH0KKworICAgICAg
ICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIFdU
Rk1vdmUocmVzcG9uc2VVUkwpKTsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFj
ayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAgICAgICAgICAg
cmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKKyAg
ICAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hl
ZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNj
cmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOworICAgICAgICB9KTsKKyAgICB9IGVs
c2UgeworICAgICAgICBhdXRvJiBsb2FkZXIgPSBzdGF0aWNfY2FzdDxXb3JrZXJNb2R1bGVTY3Jp
cHRMb2FkZXImPihtb2R1bGVTY3JpcHRMb2FkZXIpOworICAgICAgICBhdXRvJiB3b3JrZXJTY3Jp
cHRMb2FkZXIgPSBsb2FkZXIuc2NyaXB0TG9hZGVyKCk7CisKKyAgICAgICAgaWYgKHdvcmtlclNj
cmlwdExvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgaWYgKHdvcmtlclNjcmlwdExvYWRl
ci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KFR5cGVFcnJvciwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jv
c3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9h
ZGVyLmVycm9yKCkuaXNDYW5jZWxsYXRpb24oKSkgeworICAgICAgICAgICAgICAgIHJlamVjdFRv
UHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtp
bmQ6Oldhc0NhbmNlbGVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4i
X3MpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAotICAgIGlmIChh
dXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAgICBpZiAoIW1h
dGNoSW50ZWdyaXR5TWV0YWRhdGEoY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHko
KSkpIHsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1ha2VTdHJpbmco
IkNhbm5vdCBsb2FkIHNjcmlwdCAiLCBpbnRlZ3JpdHlNaXNtYXRjaERlc2NyaXB0aW9uKGNhY2hl
ZFNjcmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkpKSk7CisgICAgICAgICAgICByZWplY3RU
b1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVL
aW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH0KIAotICAgIFVSTCByZXNwb25z
ZVVSTCA9IGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpOwotICAgIC8vIElmIHdlIGRvIG5v
dCBoYXZlIHJlZGlyZWN0aW9uLCB3ZSBtdXN0IHJlc2VydmUgdGhlIHNvdXJjZSBVUkwncyBmcmFn
bWVudCBleHBsaWNpdGx5IGhlcmUgc2luY2UgUmVzb3VyY2VSZXNwb25zZTo6dXJsKCkgaXMgdGhl
IG9uZSB3aGVuIHdlIGZpcnN0IGNhY2hlIGl0IHRvIE1lbW9yeUNhY2hlLgotICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgdHJhY2sgZnJhZ21lbnRzIHRocm91Z2ggcmVkaXJlY3Rpb25zLgotICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKLSAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNDkwCi0gICAgaWYgKCFj
YWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCkgJiYgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCku
c291cmNlKCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7Ci0g
ICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCi0gICAgICAgICAg
ICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIoc291cmNlVVJMLmZyYWdtZW50SWRl
bnRpZmllcigpKTsKLSAgICB9CisgICAgICAgIC8vIEZJWE1FOiBNSU1FVHlwZSBjaGVja2luZy4K
IAotICAgIG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmco
KSwgV1RGTW92ZShyZXNwb25zZVVSTCkpOwotICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJh
Y2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QpIHsKLSAgICAgICAgcmV0
dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAg
ICAgICAgIEpTQzo6U291cmNlQ29kZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyAmY2FjaGVkU2NyaXB0
LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0
Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkgfSk7Ci0gICAgfSk7CisgICAgICAgIFVSTCByZXNwb25z
ZVVSTCA9IHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25zZVVSTCgpOworCisgICAgICAgIG1fcmVx
dWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwgcmVzcG9uc2VV
UkwpOworICAgICAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9i
YWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpKU1Nv
dXJjZUNvZGU6OmNyZWF0ZShqc0dsb2JhbE9iamVjdC52bSgpLAorICAgICAgICAgICAgICAgIEpT
Qzo6U291cmNlQ29kZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyB3b3JrZXJTY3JpcHRMb2FkZXIuc2Ny
aXB0KCksIFdURk1vdmUocmVzcG9uc2VVUkwpLCB7IH0sIEpTQzo6U291cmNlUHJvdmlkZXJTb3Vy
Y2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUoKSB9
KTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCmluZGV4IGRlMjlkMmY0YmYwOTZiNjBjMzY5OTgw
MzE2YzE0ODZiMjgyYWJmMDkuLjU2NThiYzIxZTFhMzBkMDJiMjcwOWFhOTliMjZjN2NhOWE1ZWI1
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5oCkBAIC0yNSw4ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIk1vZHVs
ZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIgog
I2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIldvcmtlck1vZHVsZVNjcmlwdExv
YWRlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDUsMTYg
KzQ3LDE3IEBAIGNsYXNzIFNvdXJjZU9yaWdpbjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBEb2N1bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKIAotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0
ZSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworY2xhc3MgU2NyaXB0TW9kdWxlTG9h
ZGVyIGZpbmFsIDogcHJpdmF0ZSBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFNjcmlwdE1vZHVsZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRlcihEb2N1bWVudCYp
OworICAgIGVudW0gY2xhc3MgT3duZXJUeXBlIDogdWludDhfdCB7IERvY3VtZW50LCBXb3JrZXJP
cldvcmtsZXQgfTsKKyAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIE93bmVyVHlwZSk7CiAgICAgflNjcmlwdE1vZHVsZUxvYWRlcigpOwogCi0g
ICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsgfQorICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogICAg
IEpTQzo6SWRlbnRpZmllciByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9k
dWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRl
ck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwogICAgIEpTQzo6SlNJbnRl
cm5hbFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpT
Qzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTYzLDEzICs2NiwxNSBAQCBjbGFzcyBTY3Jp
cHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNs
aWVudCB7CiAgICAgSlNDOjpKU09iamVjdCogY3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpT
Qzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwogCiBwcml2YXRlOgotICAgIHZvaWQg
bm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVycmVk
UHJvbWlzZT4pIGZpbmFsOworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoTW9kdWxlU2NyaXB0TG9h
ZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSBmaW5hbDsKKwogICAgIFVSTCBtb2R1
bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAgICAgVVJMIHJlc3Bv
bnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7
CiAKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBtX2NvbnRleHQ7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNw
b25zZVVSTE1hcDsKLSAgICBIYXNoU2V0PFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+PiBt
X2xvYWRlcnM7CisgICAgSGFzaFNldDxSZWY8TW9kdWxlU2NyaXB0TG9hZGVyPj4gbV9sb2FkZXJz
OworICAgIE93bmVyVHlwZSBtX293bmVyVHlwZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNj
cmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2ZmU3ZTc3ZThmOTllZTM5MDMyNGQyNzM0MGM1
NDRkYjJiZDRlOWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyLmgiCisKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCisjaW5jbHVkZSAiRE9N
V3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIk1vZHVs
ZUZldGNoUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgor
I2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRNb2R1bGVMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiV29ya2VyU2Ny
aXB0TG9hZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdvcmtlck1vZHVsZVNj
cmlwdExvYWRlcj4gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2Ny
aXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4m
JiBwYXJhbWV0ZXJzKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtlck1vZHVsZVNj
cmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1vdmUocGFyYW1l
dGVycykpKTsKK30KKworV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpXb3JrZXJNb2R1bGVTY3Jp
cHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlz
ZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1v
ZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQorICAgIDogTW9kdWxlU2NyaXB0TG9h
ZGVyKGNsaWVudCkKKyAgICAsIG1fcHJvbWlzZSgmcHJvbWlzZSkKKyAgICAsIG1fc2NyaXB0RmV0
Y2hlcihzY3JpcHRGZXRjaGVyKQorICAgICwgbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVy
cykpCisgICAgLCBtX3NjcmlwdExvYWRlcihXb3JrZXJTY3JpcHRMb2FkZXI6OmNyZWF0ZSgpKQor
eworfQorCitXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6On5Xb3JrZXJNb2R1bGVTY3JpcHRMb2Fk
ZXIoKQoreworICAgIG1fc2NyaXB0TG9hZGVyLT5jYW5jZWwoKTsKK30KKworYm9vbCBXb3JrZXJN
b2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
VVJMJiYgc291cmNlVVJMKQoreworICAgIG1fc291cmNlVVJMID0gV1RGTW92ZShzb3VyY2VVUkwp
OworCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBtX3NvdXJjZVVSTCB9OworCisgICAg
RmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKKyAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNo
T3B0aW9uczo6TW9kZTo6Q29yczsKKyAgICBmZXRjaE9wdGlvbnMuY2FjaGUgPSBGZXRjaE9wdGlv
bnM6OkNhY2hlOjpEZWZhdWx0OworICAgIGZldGNoT3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0
aW9uczo6UmVkaXJlY3Q6OkZvbGxvdzsKKyAgICAvLyBGSVhNRTogUHJvcGFnYXRlIGNyZWRlbnRp
YWxzLgorICAgIC8vIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9IHNjcmlwdEZldGNoSm9iLmNy
ZWRlbnRpYWxzOworICAgIGF1dG8gY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgPSBj
b250ZXh0LnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpID8gQ29u
dGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSA6IENvbnRlbnRTZWN1
cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ2hpbGRTcmNEaXJlY3RpdmU7CisKKyAgICBt
X3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVz
dCksIFdURk1vdmUoZmV0Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1l
bnQsIFNlcnZpY2VXb3JrZXJzTW9kZTo6QWxsLCAqdGhpcyk7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK3ZvaWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCit7Cisg
ICAgQVNTRVJUKG1fcHJvbWlzZSk7CisKKyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5p
c2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJjZVVSTCksIG1fcHJvbWlzZS5yZWxlYXNlTm9uTnVs
bCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNGQ5NzdiZjFjMDQyZDcwNTU5NzJk
ZWJjYjQ0MWY5ODFmOGIyMTFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgKQEAgLTAsMCArMSw2OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgi
CisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBE
ZWZlcnJlZFByb21pc2U7CitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2NsYXNzIE1vZHVsZUZl
dGNoUGFyYW1ldGVyczsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBNb2R1
bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFzcyBXb3JrZXJTY3JpcHRMb2FkZXI7CisKK2NsYXNz
IFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBNb2R1bGVTY3JpcHRMb2Fk
ZXIsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVsZVNjcmlwdExvYWRl
ckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8
TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKworICAgIHZpcnR1YWwgfldvcmtlck1vZHVsZVNj
cmlwdExvYWRlcigpOworCisgICAgYm9vbCBsb2FkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBV
UkwmJiBzb3VyY2VVUkwpOworCisgICAgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hl
cigpIHsgcmV0dXJuIG1fc2NyaXB0RmV0Y2hlci5nZXQoKTsgfQorICAgIE1vZHVsZUZldGNoUGFy
YW1ldGVycyogcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQorICAg
IFdvcmtlclNjcmlwdExvYWRlciYgc2NyaXB0TG9hZGVyKCkgeyByZXR1cm4gbV9zY3JpcHRMb2Fk
ZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2FjaGVkU2NyaXB0RmV0
Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOworCisgICAgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZp
bmFsIHsgfQorICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoKSBmaW5hbDsKKworICAgIFJlZlB0cjxE
ZWZlcnJlZFByb21pc2U+IG1fcHJvbWlzZTsKKyAgICBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hlcj4g
bV9zY3JpcHRGZXRjaGVyOworICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+IG1fcGFy
YW1ldGVyczsKKyAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKKyAg
ICBVUkwgbV9zb3VyY2VVUkw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCBkY2QzYWExYzdjNTcyZTY4Mzk1Y2MwNWRhOGM4M2ZmMjBiMjZi
MDM4Li5hZDExNDk0ZWRlNDRkNDA4OTA1NzUzMjdiOTU2MDgyYTNmNTk1Nzk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTYxNSw3ICs2MTUsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsLCBEb2N1
bQogICAgICwgbV9kb2N1bWVudENyZWF0aW9uVGltZShNb25vdG9uaWNUaW1lOjpub3coKSkKICNl
bmRpZgogICAgICwgbV9zY3JpcHRSdW5uZXIobWFrZVVuaXF1ZTxTY3JpcHRSdW5uZXI+KCp0aGlz
KSkKLSAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9hZGVyPigq
dGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlcihtYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRl
cj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlOjpEb2N1bWVudCkpCiAjaWYg
RU5BQkxFKFhTTFQpCiAgICAgLCBtX2FwcGx5UGVuZGluZ1hTTFRyYW5zZm9ybXNUaW1lcigqdGhp
cywgJkRvY3VtZW50OjphcHBseVBlbmRpbmdYU0xUcmFuc2Zvcm1zVGltZXJGaXJlZCkKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKaW5kZXggOWEy
NWMxNjU4OGVlY2FkNjc4ZmI5MTFlYzg2MjJmNDI0MjU5MmI1YS4uNDhlYzA4NTFhNDU3ZDliYTQ3
NDczZmVjMjhkN2I0OTMxMmI3ODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xv
YWRhYmxlTW9kdWxlU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVN
b2R1bGVTY3JpcHQuY3BwCkBAIC04OCwxNiArODgsNCBAQCB2b2lkIExvYWRhYmxlTW9kdWxlU2Ny
aXB0OjpleGVjdXRlKFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiAgICAgc2NyaXB0RWxl
bWVudC5leGVjdXRlTW9kdWxlU2NyaXB0KCp0aGlzKTsKIH0KIAotdm9pZCBMb2FkYWJsZU1vZHVs
ZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgcm9vdFVSTCkKLXsK
LSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAgICAgICBmcmFtZS0+
c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgcm9vdFVSTC5zdHJpbmcoKSwgbV9wYXJh
bWV0ZXJzLmNvcHlSZWYoKSk7Ci19Ci0KLXZvaWQgTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQot
ewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIGZyYW1l
LT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KCp0aGlzLCBzb3VyY2VDb2RlKTsKLX0KLQogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAppbmRleCBiYjc5OTU0ZDdi
OTliMGVkMDZiZmU1NWVmODU0ZWNjZTIxZjM1ODc3Li5kMjUzNTk2M2Y2NDhiMDJhOGEwMWZkNjNi
YjFlMzgxMzg2Y2VlNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVN
b2R1bGVTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3Jp
cHQuaApAQCAtNTAsMTUgKzUwLDE0IEBAIGNsYXNzIExvYWRhYmxlTW9kdWxlU2NyaXB0IGZpbmFs
IDogcHVibGljIExvYWRhYmxlU2NyaXB0IHsKIAogICAgIHZvaWQgc2V0RXJyb3IoRXJyb3ImJik7
CiAKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHJvb3RVUkwpOwotICAgIHZv
aWQgbG9hZChEb2N1bWVudCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKLQogICAgIHZvaWQg
bm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYpOwogICAgIHZvaWQgbm90aWZ5
TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3ImJik7CiAgICAgdm9pZCBub3RpZnlMb2Fk
V2FzQ2FuY2VsZWQoKTsKIAogICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkoKSBjb25z
dCB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQogCisgICAgTW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9CisKIHByaXZh
dGU6CiAgICAgTG9hZGFibGVNb2R1bGVTY3JpcHQoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3Qg
U3RyaW5nJiBpbnRlZ3JpdHksIFJlZmVycmVyUG9saWN5LCBjb25zdCBTdHJpbmcmIGNyb3NzT3Jp
Z2luTW9kZSwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBBdG9tU3RyaW5nJiBpbml0aWF0
b3JOYW1lLCBib29sIGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEVsZW1lbnQuY3BwCmluZGV4IDA1NzU4YjYwMGM3NTIyYjQ3ZjM2NGJhNmExOGQzNWYxNzMx
MTA3ZjkuLjVlOTlmMGY1Nzc3YjNiMjE1OGRkMGZhNGJjMzgyNzc2Y2RiMzQ4MTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJM
b2FkYWJsZUNsYXNzaWNTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZU1vZHVsZVNjcmlwdC5o
IgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBh
cmFtZXRlcnMuaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5jbHVkZSAiUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxlbWVudC5oIgpAQCAt
MzUxLDggKzM1MiwxMSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3JpcHQo
Y29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAgc2Ny
aXB0Q2hhcnNldCgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmxvY2FsTmFtZSgpLAogICAgICAg
ICAgICAgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOwotICAgICAgICBzY3Jp
cHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIG1vZHVsZVNjcmlwdFJvb3RVUkwpOwogICAg
ICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAgICAgICBpZiAoYXV0
byogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKSB7CisgICAgICAgICAgICBh
dXRvJiBzY3JpcHQgPSBkb3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4oKm1fbG9hZGFibGVT
Y3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3Jp
cHQoc2NyaXB0LCBtb2R1bGVTY3JpcHRSb290VVJMLnN0cmluZygpLCBtYWtlUmVmKHNjcmlwdC5w
YXJhbWV0ZXJzKCkpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
QEAgLTM2Nyw4ICszNzEsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3Jp
cHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAgIGlmICghY29u
dGVudFNlY3VyaXR5UG9saWN5LmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1bWVudCgp
LnVybCgpLnN0cmluZygpLCBtX3N0YXJ0TGluZU51bWJlciwgc291cmNlQ29kZS5zb3VyY2UoKS50
b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCksIGhhc0tub3duTm9uY2UpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIHNvdXJjZUNv
ZGUpOwogICAgIG1fbG9hZGFibGVTY3JpcHQgPSBXVEZNb3ZlKHNjcmlwdCk7CisgICAgaWYgKGF1
dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAgICAgZnJhbWUt
PnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoZG93bmNhc3Q8TG9hZGFibGVNb2R1bGVTY3JpcHQ+
KCptX2xvYWRhYmxlU2NyaXB0LmdldCgpKSwgc291cmNlQ29kZSk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCA2MmY5MTdhMzY3ODE5ZGVjM2Nk
NDEwZDk3NjY5NWNlZTYyZjZkNGI5Li43YzIyNDlhM2EyYWY5NTE4MjNhZTc5OTVlYzEzNzFhZGZi
YjE0YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC03MCw2ICs3MCw4IEBAIGlu
bGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6
OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAgLCBtX2lkZW50aWZpZXIoIndvcmtlcjoiICsgSW5z
cGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSkKICAgICAsIG1f
Y29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNyZWF0ZSgqdGhpcykpCiAgICAg
LCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxhZ3MpCisgICAgLCBtX3R5cGUob3B0aW9ucy50eXBl
KQorICAgICwgbV9jcmVkZW50aWFscyhvcHRpb25zLmNyZWRlbnRpYWxzKQogewogICAgIHN0YXRp
YyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAgaWYgKCFhZGRlZExpc3RlbmVyKSB7CkBAIC0xMTMs
MTAgKzExNSwxMyBAQCBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gV29ya2VyOjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpSdQogCiAgICAgRmV0Y2hPcHRpb25z
IGZldGNoT3B0aW9uczsKICAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9k
ZTo6U2FtZU9yaWdpbjsKKyAgICBpZiAod29ya2VyLT5tX3R5cGUgPT0gV29ya2VyVHlwZTo6TW9k
dWxlKQorICAgICAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSB3b3JrZXItPm1fY3JlZGVu
dGlhbHM7CiAgICAgZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVm
YXVsdDsKICAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0
OjpGb2xsb3c7CiAgICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpE
ZXN0aW5hdGlvbjo6V29ya2VyOwotICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3lu
Y2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9u
cyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6
OkFsbCwgd29ya2VyKTsKKyAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9u
b3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBj
b250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGws
IHdvcmtlci5nZXQoKSk7CisKICAgICByZXR1cm4gd29ya2VyOwogfQogCkBAIC0yMTUsNyArMjIw
LDcgQEAgdm9pZCBXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICBSZWZlcnJlclBvbGljeSBy
ZWZlcnJlclBvbGljeSA9IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZzsKICAgICBpZiAoYXV0
byBwb2xpY3kgPSBwYXJzZVJlZmVycmVyUG9saWN5KG1fc2NyaXB0TG9hZGVyLT5yZWZlcnJlclBv
bGljeSgpLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6SFRUUEhlYWRlcikpCiAgICAgICAgIHJlZmVy
cmVyUG9saWN5ID0gKnBvbGljeTsKLSAgICBtX2NvbnRleHRQcm94eS5zdGFydFdvcmtlckdsb2Jh
bFNjb3BlKG1fc2NyaXB0TG9hZGVyLT51cmwoKSwgbV9uYW1lLCBjb250ZXh0LT51c2VyQWdlbnQo
bV9zY3JpcHRMb2FkZXItPnVybCgpKSwgaXNPbmxpbmUsIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQo
KSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3Nob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgbV93b3JrZXJDcmVhdGlvblRpbWUsIHJlZmVy
cmVyUG9saWN5LCBtX3J1bnRpbWVGbGFncyk7CisgICAgbV9jb250ZXh0UHJveHkuc3RhcnRXb3Jr
ZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwgY29udGV4dC0+dXNl
ckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3NjcmlwdExvYWRlci0+
c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9zaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2VyQ3JlYXRpb25UaW1l
LCByZWZlcnJlclBvbGljeSwgbV90eXBlLCBtX2NyZWRlbnRpYWxzLCBtX3J1bnRpbWVGbGFncyk7
CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZCgqY29udGV4dCwg
bV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXggNTNmNWU2ZmZmMjdjOWZhM2U1YzBlMDFm
MGY2YzQyYzZjYjZmOWQwZS4uMzhhNjIzYTk4ZGJhMzVmZjgwMTNjZDZmYzhjODVjODEwMjA1MDIx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0yOSw5ICsyOSwxMSBAQAogI2luY2x1ZGUg
IkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiRmV0Y2hS
ZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUg
IlBvc3RNZXNzYWdlT3B0aW9ucy5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlckNsaWVu
dC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9S
dW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgpAQCAtNTUsNiArNTcsOCBAQCBjbGFzcyBXb3JrZXIgZmluYWwgOiBw
dWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV29y
awogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2VyKTsKIHB1YmxpYzoKICAgICBzdHJ1
Y3QgT3B0aW9ucyB7CisgICAgICAgIFdvcmtlclR5cGUgdHlwZTsKKyAgICAgICAgRmV0Y2hSZXF1
ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7CiAgICAgICAgIFN0cmluZyBuYW1lOwogICAgIH07
CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
T3B0aW9ucyYpOwpAQCAtNzksNiArODMsOCBAQCBjbGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMg
QWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV29yawogICAg
IHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpPiYmKTsKICNlbmRpZgogCisgICAgV29ya2VyVHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV29ya2VyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3QgT3B0aW9ucyYp
OwogCkBAIC0xMTIsNiArMTE4LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3Ry
YWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICNpZiBFTkFC
TEUoV0VCX1JUQykKICAgICBIYXNoU2V0PFN0cmluZz4gbV90cmFuc2Zvcm1lcnM7CiAjZW5kaWYK
KyAgICBXb3JrZXJUeXBlIG1fdHlwZSB7IFdvcmtlclR5cGU6OkNsYXNzaWMgfTsKKyAgICBGZXRj
aFJlcXVlc3RDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzIHsgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlh
bHM6OlNhbWVPcmlnaW4gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyLmlkbAppbmRleCA0NWQ2YTA4Njc4NTRlZTQwNGRlN2U3ZDAxMjQ4Y2ViZjQ0
ZGNhN2VkLi43MDIxNzk2ZGY1MDRhZGY4ZTZiOTU4OWFjZTlmMTQ0ODIxZjI5NWYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXIuaWRsCkBAIC0zOCw2ICszOCw4IEBACiB9OwogCiBkaWN0aW9uYXJ5
IFdvcmtlck9wdGlvbnMgeworICAgIFdvcmtlclR5cGUgdHlwZSA9ICJjbGFzc2ljIjsKKyAgICBG
ZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscyA9ICJzYW1lLW9yaWdpbiI7IC8vIGNy
ZWRlbnRpYWxzIGlzIG9ubHkgdXNlZCBpZiB0eXBlIGlzICJtb2R1bGUiCiAgICAgRE9NU3RyaW5n
IG5hbWUgPSAiIjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuaAppbmRleCA0NmQ0OWQ5NGM1MjM4ZTQ2ODhkMzk1ZDg3YzIwNjNlYjU3MjBkMWJmLi4zODQx
YTc4MWQ4NWQxNjBkNDAzNmNmMDBiN2QwZTM5ZTAwZWExYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0xNjMsOCArMTYzLDYgQEAgY2xhc3MgV29y
a2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+
LCBwdWJsaWMgQmFzZTYKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJMb2NhdGlvbj4gbV9sb2Nh
dGlvbjsKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJOYXZpZ2F0b3I+IG1fbmF2aWdhdG9yOwog
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+IG1f
c2NyaXB0OwotCiAgICAgYm9vbCBtX2lzT25saW5lOwogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NN
YWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNDAwMDNjM2UwMTA5OTk2MGY2NDc4
NjFlNzAxNjg3ZDBlMzcxZDcyZC4uN2I5MWQ3NTNkMWM5ZDcyOWFlNTA4NjU0YzJlODVmNzY3OTFl
MDA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVBy
b3h5LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGVQcm94eSB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFdvcmtlckdsb2JhbFNjb3BlUHJveHkmIGNyZWF0ZShXb3JrZXIm
KTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYg
c2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBi
b29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29u
dGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9s
aWN5LCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1l
IHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNo
UmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2Jh
bFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4
IDE5ZDRiZTY0OTkyZjMwZDNjY2U3NjU0N2EzZDIyMThhOThjODQyYzMuLjc4ODM1ODdhN2FmNjIw
OWUzZWNjOGU3YjQxYmFkNDdhZGY2MjI0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFdvcmtlck1lc3Nh
Z2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8fCAoaXM8V29ya2Vy
R2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGRvd25jYXN0PFdvcmtl
ckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJlYWQoKS50aHJlYWQo
KSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpKTsKIH0KIAotdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94
eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9y
aWdpbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzIHJ1
bnRpbWVGbGFncykKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5
IHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNoUmVxdWVzdENyZWRl
bnRpYWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCiB7CiAg
ICAgLy8gRklYTUU6IFRoaXMgbmVlZCB0byBiZSByZXZpc2l0ZWQgd2hlbiB3ZSBzdXBwb3J0IG5l
c3RlZCB3b3JrZXIgb25lIGRheQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
OwpAQCAtODksNyArODksNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogCiAgICAgU29ja2V0
UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyID0gZG9jdW1lbnQuc29ja2V0UHJvdmlkZXIoKTsKIAot
ICAgIFdvcmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZp
ZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3Jp
Z2luLCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMoKSB9OworICAgIFdv
cmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIsIHVz
ZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3JpZ2luLCBy
ZWZlcnJlclBvbGljeSwgd29ya2VyVHlwZSwgY3JlZGVudGlhbHMsIGRvY3VtZW50LnNldHRpbmdz
VmFsdWVzKCkgfTsKICAgICBhdXRvIHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3Jl
YXRlKHBhcmFtcywgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBk
b2N1bWVudC50b3BPcmlnaW4oKSwgcHJveHksIHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxhZ3Mp
OwogCiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGM1YjU3NWI5ZTYxNWIz
ZjNmNTk2YmZjM2RmNjgzYzg3N2NjNjJiYWIuLjJlMjMxNjlmMDc5M2YwZGNmODA4YTliY2ZiNThl
NmM5MDhjNmNjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV29ya2VyTWVzc2FnaW5nUHJveHkgZmlu
YWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyTWVzc2FnaW5nUHIKIHByaXZh
dGU6CiAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNjb3BlUHJveHkuCiAg
ICAgLy8gKE9ubHkgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgd29ya2VyIG9iamVjdCB0aHJl
YWQuKQotICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVS
TCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09u
bGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgSlND
OjpSdW50aW1lRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShj
b25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBS
ZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50
aWFscyBjcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOwogICAgIHZvaWQgdGVy
bWluYXRlV29ya2VyR2xvYmFsU2NvcGUoKSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9X
b3JrZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSBmaW5hbDsKICAgICB2
b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmKT4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDIzODRhNWE4YzdkMmEzMDJl
ZWU1Y2I0MDVlMTA1ZTAyNWM5ODQzY2MuLmY0ZjRiMjc0NjZmOWEzMGIyOGI4YjIxZjZmMmJlZjhi
ZGU5Mzg1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKIAorI2luY2x1ZGUg
IlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1ZGUgIldvcmtlckV2ZW50TG9vcC5oIgogI2lu
Y2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0zOSw2ICs0MCw3IEBAIFdURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSk7CiAKIFdvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShXb3JrZXJUaHJlYWRU
eXBlIHR5cGUsIFJlZjxKU0M6OlZNPiYmIHZtLCBXb3JrZXJPcldvcmtsZXRUaHJlYWQqIHRocmVh
ZCkKICAgICA6IG1fc2NyaXB0KG1ha2VVbmlxdWU8V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlcj4odHlwZSwgV1RGTW92ZSh2bSksIHRoaXMpKQorICAgICwgbV9tb2R1bGVMb2FkZXIobWFr
ZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KCp0aGlzLCBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93
bmVyVHlwZTo6V29ya2VyT3JXb3JrbGV0KSkKICAgICAsIG1fdGhyZWFkKHRocmVhZCkKICAgICAs
IG1faW5zcGVjdG9yQ29udHJvbGxlcihtYWtlVW5pcXVlPFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXI+KCp0aGlzKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCA2YzI0NGEwYzQyN2VlMWM4YzY1ZmRjYzc2NTk1MmY4
NzdmZDliMTZiLi41NDRmMDQ3YWVjMjc4MzI3NDRkMGE4YTcwYWY3ZTkzOWMzMzA5OTJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZS5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV2ZW50
TG9vcFRhc2tHcm91cDsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNsYXNzIFdvcmtlckV2
ZW50TG9vcDsKIGNsYXNzIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBXb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyOwpAQCAtNTQsNiArNTUsOCBAQCBjbGFzcyBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJs
aWMgUmVmQ291bgogCiAgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJZGVudGlmaWVyKCkg
eyByZXR1cm4gbV91bmlxdWVJZGVudGlmaWVyKys7IH0KIAorICAgIFNjcmlwdE1vZHVsZUxvYWRl
ciYgbW9kdWxlTG9hZGVyKCkgeyByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOyB9CisKICAgICAvLyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LgogICAgIEV2ZW50TG9vcFRhc2tHcm91cCYgZXZlbnRMb29w
KCkgZmluYWw7CiAgICAgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCBmaW5hbDsKQEAgLTg4
LDYgKzkxLDcgQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KICAgICB2b2lkIGRlcmVmRXZlbnRU
YXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyPiBtX3NjcmlwdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
U2NyaXB0TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRlcjsKICAgICBXb3JrZXJPcldvcmtsZXRU
aHJlYWQqIG1fdGhyZWFkOwogICAgIFJlZlB0cjxXb3JrZXJFdmVudExvb3A+IG1fZXZlbnRMb29w
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrR3JvdXA+IG1fZGVmYXVsdFRhc2tH
cm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGNkNGVjMjQ2ODI1MjVhYWJjNjQyZDg3N2Ew
ZGEwMTFlYmRlMTE0MzEuLmMxMjZkNWM5MTE3MzdjMDhlYmEwNWYwZDBkMmYzYmZjNTUyM2M4ZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzUsNiArMzUsOSBAQAogI2luY2x1ZGUgIkpTRXhl
Y1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1
ZGUgIkpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiTG9hZGFibGVNb2R1
bGVTY3JpcHQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmgiCisjaW5jbHVk
ZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5o
IgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJDb25z
b2xlQ2xpZW50LmgiCkBAIC00Myw3ICs0NiwxMiBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0V4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2VwdGlvbkhlbHBlcnMu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9HQ0FjdGl2aXR5Q2FsbGJhY2suaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTTG9jay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTW9kdWxlUmVj
b3JkLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNOYXRpdmVTdGRGdW5jdGlvbi5oPgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzLmg+CisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRjaGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMjgs
NyArMjM2LDEzNSBAQCB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZAogICAgIH0KIH0KIAotdGVtcGxh
dGU8dHlwZW5hbWUgSlNHbG9iYWxTY29wZVByb3RvdHlwZSwgdHlwZW5hbWUgSlNHbG9iYWxTY29w
ZSwgdHlwZW5hbWUgR2xvYmFsU2NvcGU+CitzdGF0aWMgSWRlbnRpZmllciBqc1ZhbHVlVG9Nb2R1
bGVLZXkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUp
Cit7CisgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlmaWVy
Ojpmcm9tVWlkKGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAgIEFT
U0VSVCh2YWx1ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gYXNTdHJpbmcodmFsdWUpLT50b0lk
ZW50aWZpZXIobGV4aWNhbEdsb2JhbE9iamVjdCk7Cit9CisKK0pTQzo6SlNWYWx1ZSBXb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShKU0M6OkpTTW9kdWxlUmVj
b3JkJiBtb2R1bGVSZWNvcmQpCit7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFs
U2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOworICAg
IEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICByZXR1cm4gbW9kdWxlUmVjb3JkLmV2YWx1
YXRlKCZnbG9iYWxPYmplY3QpOworfQorCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlck9y
V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KExvYWRhYmxl
TW9kdWxlU2NyaXB0JiBtb2R1bGVTY3JpcHQsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJj
ZUNvZGUpCit7CisgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAgIHJldHVy
biBNZXNzYWdlUXVldWVUZXJtaW5hdGVkOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisK
KyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7Cisg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2
bSB9OworCisgICAgUmVmUHRyPExvYWRhYmxlTW9kdWxlU2NyaXB0PiBtb2R1bGVTY3JpcHRSZWY7
CisgICAgeworICAgICAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVjU3RhdGU6OmxvYWRNb2R1bGUo
Z2xvYmFsT2JqZWN0LCBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgpLCBKU0M6OkpTU2NyaXB0RmV0
Y2hlcjo6Y3JlYXRlKHZtLCB7ICZtb2R1bGVTY3JpcHQgfSkpOworCisgICAgICAgIG1vZHVsZVNj
cmlwdFJlZiA9ICZtb2R1bGVTY3JpcHQ7CisKKyAgICAgICAgYXV0byYgZnVsZmlsbEhhbmRsZXIg
PSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCAxLCBTdHJp
bmcoKSwgW21vZHVsZVNjcmlwdFJlZl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpIC0+IEpTQzo6RW5jb2RlZEpTVmFsdWUgeworICAgICAgICAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkg
PSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
KTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAg
ICAgICBtb2R1bGVTY3JpcHRSZWYtPm5vdGlmeUxvYWRDb21wbGV0ZWQoKm1vZHVsZUtleS5pbXBs
KCkpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0SGFuZGxlciA9ICpKU05hdGl2ZVN0
ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbbW9kdWxl
U2NyaXB0UmVmXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkgeworICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAg
ICAgICAgSlNWYWx1ZSBlcnJvclZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICAg
ICAgICAgIGlmIChlcnJvclZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRv
KiBvYmplY3QgPSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOworICAgICAgICAgICAgICAgIGlm
IChKU1ZhbHVlIGZhaWx1cmVLaW5kVmFsdWUgPSBvYmplY3QtPmdldERpcmVjdCh2bSwgc3RhdGlj
X2Nhc3Q8SlNWTUNsaWVudERhdGEmPigqdm0uY2xpZW50RGF0YSkuYnVpbHRpbk5hbWVzKCkuZmFp
bHVyZUtpbmRQcml2YXRlTmFtZSgpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlz
IGhvc3QgcHJvcGFnYXRlZCBlcnJvciBpbiB0aGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZS4KKyAg
ICAgICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxNb2R1bGVGZXRjaEZhaWx1cmVL
aW5kPihmYWlsdXJlS2luZFZhbHVlLmFzSW50MzIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkOgorICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0
OjpFcnJvciB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVy
cm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6
bnVsbG9wdAorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVL
aW5kOjpXYXNDYW5jZWxlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZVNjcmlwdFJl
Zi0+bm90aWZ5TG9hZFdhc0NhbmNlbGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0p
OworICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxl
U2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlw
ZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpDb25zb2xl
TWVzc2FnZSB7CisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VTb3VyY2U6OkpTLAorICAgICAg
ICAgICAgICAgICAgICBNZXNzYWdlTGV2ZWw6OkVycm9yLAorICAgICAgICAgICAgICAgICAgICBy
ZXRyaWV2ZUVycm9yTWVzc2FnZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1ZSwgc2NvcGUp
LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
cHJvbWlzZS50aGVuKCZnbG9iYWxPYmplY3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRs
ZXIpOworICAgIH0KKyAgICBtX2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90
YXNrQ2hlY2twb2ludCgpOworCisgICAgLy8gRHJpdmUgUnVuTG9vcCB1bnRpbCB3ZSBnZXQgZWl0
aGVyIG9mICJXb3JrZXIgaXMgdGVybWluYXRlZCIsICJMb2FkaW5nIGlzIGRvbmUiLCBvciAiTG9h
ZGluZyBpcyBmYWlsZWQiLgorICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSBtX2dsb2JhbFNj
b3BlLT53b3JrZXJPcldvcmtsZXRUaHJlYWQoKS0+cnVuTG9vcCgpOworCisgICAgTWVzc2FnZVF1
ZXVlV2FpdFJlc3VsdCByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQ7CisgICAg
d2hpbGUgKCghbW9kdWxlU2NyaXB0UmVmLT5pc0xvYWRlZCgpICYmICFtb2R1bGVTY3JpcHRSZWYt
Pndhc0NhbmNlbGVkKCkpICYmIHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKQorICAg
ICAgICByZXN1bHQgPSBydW5Mb29wLnJ1bkluTW9kZShtX2dsb2JhbFNjb3BlLCBXb3JrZXJSdW5M
b29wOjpkZWZhdWx0TW9kZSgpKTsKKworICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgd2UgYXJlIG5v
dCBvZmZlcmluZyBjYW5jZWxsaW5nLgorICAgIC8vIGlmICghbG9hZGVyLT5kb25lKCkgJiYgcmVz
dWx0ID09IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpCisgICAgLy8gICAgIGxvYWRlci0+Y2FuY2Vs
KCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFdvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShMb2FkYWJsZU1vZHVsZVNjcmlwdCYg
bW9kdWxlU2NyaXB0LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBTdHJpbmcq
IHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRk
ZW4oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAg
ICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9
OworCisgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9uOworICAg
IEpTRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LCBJZGVudGlm
aWVyOjpmcm9tVWlkKHZtLCBtb2R1bGVTY3JpcHQubW9kdWxlS2V5KCkpLCBqc1VuZGVmaW5lZCgp
LCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKChyZXR1cm5lZEV4Y2VwdGlvbiAmJiBpc1Rl
cm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVybmVkRXhjZXB0aW9uKSkgfHwgaXNU
ZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAgICAgIGZvcmJpZEV4ZWN1dGlvbigpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CisgICAg
ICAgIGlmIChtX2dsb2JhbFNjb3BlLT5jYW5JbmNsdWRlRXJyb3JEZXRhaWxzKHNvdXJjZUNvZGUu
Y2FjaGVkU2NyaXB0KCksIHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCkpKSB7CisgICAgICAgICAg
ICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBydW4gYXJiaXRyYXJ5IGNv
ZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlvbi4KKyAgICAgICAgICAg
IC8vIERvIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgdG8gaGFuZGxlIHRoYXQgcHJvcGVybHksIGlm
IGl0LCBzYXksIHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlvbj8KKyAgICAgICAgICAgIGlmIChyZXR1
cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKnJldHVybmVkRXhjZXB0aW9u
TWVzc2FnZSA9IHJldHVybmVkRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3RyaW5nKCZnbG9iYWxP
YmplY3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gT3ZlcndyaXRlIHRoZSBk
ZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBlcnJvci4KKyAgICAgICAgICAgIFN0cmluZyBn
ZW5lcmljRXJyb3JNZXNzYWdlIHsgIlNjcmlwdCBlcnJvci4iX3MgfTsKKyAgICAgICAgICAgIGlm
IChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKnJldHVybmVkRXhj
ZXB0aW9uTWVzc2FnZSA9IGdlbmVyaWNFcnJvck1lc3NhZ2U7CisgICAgICAgICAgICByZXR1cm5l
ZEV4Y2VwdGlvbiA9IEpTQzo6RXhjZXB0aW9uOjpjcmVhdGUodm0sIGNyZWF0ZUVycm9yKCZnbG9i
YWxPYmplY3QsIGdlbmVyaWNFcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEpTR2xvYmFsU2NvcGVQcm90b3R5cGUsIHR5cGVuYW1lIEpT
R2xvYmFsU2NvcGUsIHR5cGVuYW1lIEdsb2JhbFNjb3BlPgogdm9pZCBXb3JrZXJPcldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0V2l0aFN1YmNsYXNzKCkKIHsKICAgICBBU1NFUlQo
IW1fZ2xvYmFsU2NvcGVXcmFwcGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggYzQ5MzAxYWVkM2Rk
MDg5ZGE3OTczMjc2MGNhZjJmN2I2NGRiMTFiNi4uZmE1YWQ1ZDBjMjcwYmMxNjUzMDUyZjEyMDE4
Yzk3YWRjNTk2MGMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVl
Lmg+CiAjaW5jbHVkZSA8d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDQs
NiArNDUsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBMb2FkYWJsZU1vZHVsZVNjcmlwdDsKIGNs
YXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBXb3JrZXJDb25zb2xlQ2xpZW50OwogY2xhc3Mg
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU7CkBAIC05NCw2ICs5NiwxMSBAQCBjbGFzcyBXb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxw
dHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIE5ha2VkUHRy
PEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0cmluZyogcmV0dXJuZWRFeGNl
cHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVNb2R1
bGUoSlNDOjpKU01vZHVsZVJlY29yZCYpOworCisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1
bGUoTG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VD
b2RlLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOworICAgIE1l
c3NhZ2VRdWV1ZVdhaXRSZXN1bHQgbG9hZE1vZHVsZVN5bmNocm9ub3VzbHkoTG9hZGFibGVNb2R1
bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisKIHByb3RlY3RlZDoKICAgICBX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogZ2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBt
X2dsb2JhbFNjb3BlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApp
bmRleCA3Mjc5MGEwMzMyMjYxOWU2ZWU3ZTYxNmE4YmRlMThiZDU1MmE1NzgzLi4yMDA0OTU3ODBm
MTYwNDhkOTY4ODYyYzk4ZjgzOTgwNGEyZmI4ZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV29ya2VyVGhyZWFk
LmgiCiAKICNpbmNsdWRlICJJREJDb25uZWN0aW9uUHJveHkuaCIKKyNpbmNsdWRlICJMb2FkYWJs
ZU1vZHVsZVNjcmlwdC5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCkBAIC01NSw2
ICs1Niw4IEBAIFdvcmtlclBhcmFtZXRlcnMgV29ya2VyUGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5
KCkgY29uc3QKICAgICAgICAgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LAogICAgICAgICB0aW1lT3JpZ2luLAogICAgICAgICByZWZlcnJlclBvbGljeSwKKyAgICAg
ICAgd29ya2VyVHlwZSwKKyAgICAgICAgY3JlZGVudGlhbHMsCiAgICAgICAgIHNldHRpbmdzVmFs
dWVzLmlzb2xhdGVkQ29weSgpCiAgICAgfTsKIH0KQEAgLTEyMyw5ICsxMjYsMjkgQEAgYm9vbCBX
b3JrZXJUaHJlYWQ6OnNob3VsZFdhaXRGb3JXZWJJbnNwZWN0b3JPblN0YXJ0dXAoKSBjb25zdAog
CiB2b2lkIFdvcmtlclRocmVhZDo6ZXZhbHVhdGVTY3JpcHRJZk5lY2Vzc2FyeShTdHJpbmcmIGV4
Y2VwdGlvbk1lc3NhZ2UpCiB7Ci0gICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmV2YWx1YXRl
KFNjcmlwdFNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwgVVJMKG1fc3RhcnR1
cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOwotCi0gICAgZmlu
aXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgLy8gV2UgYXJlIGN1cnJlbnRseSBob2xkaW5n
IG9ubHkgdGhlIGluaXRpYWwgc2NyaXB0IGNvZGUuIElmIHRoZSBXb3JrZXJUeXBlIGlzIE1vZHVs
ZSwgd2Ugc2hvdWxkIGZldGNoIHRoZSBlbnRpcmUgZ3JhcGggYmVmb3JlIGV4ZWN1dGluZyB0aGUg
cmVzdCBvZiB0aGlzLgorICAgIC8vIFdlIGludm9rZSBtb2R1bGUgbG9hZGVyIGFzIGlmIHdlIGFy
ZSBleGVjdXRpbmcgaW5saW5lIG1vZHVsZSBzY3JpcHQgdGFnIGluIERvY3VtZW50LgorCisgICAg
aWYgKG1fc3RhcnR1cERhdGEtPnBhcmFtcy53b3JrZXJUeXBlID09IFdvcmtlclR5cGU6OkNsYXNz
aWMpIHsKKyAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmV2YWx1YXRlKFNjcmlwdFNv
dXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBh
cmFtcy5zY3JpcHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOworICAgICAgICBmaW5pc2hlZEV2
YWx1YXRpbmdTY3JpcHQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBGSVhNRSBjcm9zc09y
aWdpbiBtb2RlIHNob3VsZCBiZSBjb252ZXJ0ZWQuCisgICAgICAgIC8vIEZJWE1FIGZpeCBpbml0
aWF0b3IgbmFtZS4KKyAgICAgICAgLy8gRklYTUUgcGFzcyBVUkwgdG8gbW9kdWxlIGxvYWRlci4K
KyAgICAgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJj
ZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSwgeyB9LCBKU0M6OlNv
dXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlKTsKKyAgICAgICAgYXV0byBtb2R1bGVTY3Jp
cHQgPSBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6Y3JlYXRlKGVtcHR5U3RyaW5nKCksIGVtcHR5U3Ry
aW5nKCksIG1fc3RhcnR1cERhdGEtPnBhcmFtcy5yZWZlcnJlclBvbGljeSwgU2NyaXB0RWxlbWVu
dENhY2hlZFNjcmlwdEZldGNoZXI6OmRlZmF1bHRDcm9zc09yaWdpbk1vZGVGb3JNb2R1bGUsIGVt
cHR5U3RyaW5nKCksIGVtcHR5QXRvbSgpLCBmYWxzZSk7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdh
aXRSZXN1bHQgcmVzdWx0ID0gZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmxvYWRNb2R1bGVTeW5j
aHJvbm91c2x5KG1vZHVsZVNjcmlwdC5nZXQoKSwgc291cmNlQ29kZSk7CisgICAgICAgIGlmIChy
ZXN1bHQgIT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgeworICAgICAgICAgICAgaWYgKCFtb2R1
bGVTY3JpcHQtPmVycm9yKCkgJiYgIW1vZHVsZVNjcmlwdC0+d2FzQ2FuY2VsZWQoKSkgeworICAg
ICAgICAgICAgICAgIC8vIEV2YWx1YXRlLgorICAgICAgICAgICAgICAgIGdsb2JhbFNjb3BlKCkt
PnNjcmlwdCgpLT5saW5rQW5kRXZhbHVhdGVNb2R1bGUobW9kdWxlU2NyaXB0LmdldCgpLCBzb3Vy
Y2VDb2RlLCAmZXhjZXB0aW9uTWVzc2FnZSk7CisgICAgICAgICAgICAgICAgZmluaXNoZWRFdmFs
dWF0aW5nU2NyaXB0KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8v
IEZJWE1FIFRocm93IGFuIGVycm9yLgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQog
CiAgICAgLy8gRnJlZSB0aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNlIGl0cyBtZW1iZXIgdmFyaWFi
bGUgZGVyZWYncyBoYXBwZW4gb24gdGhlIHdvcmtlcidzIHRocmVhZCAoc2luY2UKICAgICAvLyBh
bGwgcmVmL2RlcmVmcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBwZW5pbmcgb24gdGhlIHRocmVh
ZCBhdCB0aGlzIHBvaW50KS4gTm90ZSB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuaAppbmRleCA4ODkwNzkwOGU3YTliODA5ZThmMmE0ZTQ3M2Q3NTJkMTFkMjkzN2MwLi45NTEy
ZWZkYjE4ZjMyYTUwZWNiN2ZiNTY5NTlkNjFlODg3MmZhMWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmgKQEAgLTI2LDcgKzI2LDEwIEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgorI2luY2x1ZGUg
IkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0VGhy
ZWFkLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDxt
ZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtNjMsNiArNjYsOCBAQCBzdHJ1Y3QgV29y
a2VyUGFyYW1ldGVycyB7CiAgICAgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3k7CiAgICAgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luOwogICAgIFJlZmVycmVy
UG9saWN5IHJlZmVycmVyUG9saWN5OworICAgIFdvcmtlclR5cGUgd29ya2VyVHlwZTsKKyAgICBG
ZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsKICAgICBTZXR0aW5nczo6VmFsdWVz
IHNldHRpbmdzVmFsdWVzOwogCiAgICAgV29ya2VyUGFyYW1ldGVycyBpc29sYXRlZENvcHkoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5kZXggYzhhN2E5OTcyZjljYzhjMTZh
Nzk2NzUxMTU1MmY1NDkzYTY4NmY5OC4uMzNjYTBlYzIzYjU4YTU1MTE4NzY4NDZiYTA3MTgzNTMy
YjVjNDdkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTczLDggKzczLDkgQEAg
Y2xhc3MgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgOiBwdWJsaWMgV29ya2VyT2JqZWN0
UHJveHkgewogLy8gRklYTUU6IFVzZSBhIHZhbGlkIFdvcmtlck9iamVjdFByb3h5CiAvLyBGSVhN
RTogVXNlIHZhbGlkIHJ1bnRpbWUgZmxhZ3MKIAorLy8gRklYTUU6IFVzZSBhIHZhbGlkIFdvcmtl
clR5cGUgYW5kIENyZWRlbnRhaWxzIGZvciBtb2R1bGUgc2VydmljZSB3b3JrZXJzLgogU2Vydmlj
ZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEmIGRhdGEsIFN0cmluZyYmIHVzZXJBZ2VudCwgY29uc3QgU2V0dGluZ3M6OlZhbHVl
cyYgc2V0dGluZ3NWYWx1ZXMsIFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2Vy
RGVidWdnZXJQcm94eSYgZGVidWdnZXJQcm94eSwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJv
eHkqIGlkYkNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKQot
ICAgIDogV29ya2VyVGhyZWFkKHsgZGF0YS5zY3JpcHRVUkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2
aWNld29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRp
ZmllcigpLCBXVEZNb3ZlKHVzZXJBZ2VudCksIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJT
dHJhdGVneSgpLT5pc09uTGluZSgpLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZmFsc2Us
IE1vbm90b25pY1RpbWU6Om5vdygpLCB7IH0sIHNldHRpbmdzVmFsdWVzIH0sIGRhdGEuc2NyaXB0
LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5yZWdpc3Ry
YXRpb24ua2V5LnRvcE9yaWdpbigpLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rp
b25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFi
bGVkKCkpCisgICAgOiBXb3JrZXJUaHJlYWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmco
KSwgInNlcnZpY2V3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVh
dGVJZGVudGlmaWVyKCksIFdURk1vdmUodXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PmxvYWRlclN0cmF0ZWd5KCktPmlzT25MaW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5
LCBmYWxzZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHsgfSwgV29ya2VyVHlwZTo6Q2xhc3NpYywg
RmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4sIHNldHRpbmdzVmFsdWVzIH0sIGRh
dGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0
YS5yZWdpc3RyYXRpb24ua2V5LnRvcE9yaWdpbigpLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIGlk
YkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVh
dGVBbGxFbmFibGVkKCkpCiAgICAgLCBtX2RhdGEoZGF0YS5pc29sYXRlZENvcHkoKSkKICAgICAs
IG1fd29ya2VyT2JqZWN0UHJveHkoRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJl
ZCgpKQogICAgICwgbV9oZWFydEJlYXRUaW1lb3V0KFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRv
bigpLmNvbm5lY3Rpb24oKS0+c2hvdWxkVXNlU2hvcnRUaW1lb3V0KCkgPyBoZWFydEJlYXRUaW1l
b3V0Rm9yVGVzdCA6IGhlYXJ0QmVhdFRpbWVvdXQpCg==
</data>
<flag name="commit-queue"
          id="438170"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419819</attachid>
            <date>2021-02-10 00:29:20 -0800</date>
            <delta_ts>2021-02-10 00:42:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210210002919.patch</filename>
            <type>text/plain</type>
            <size>105463</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZlNjA0YWRhNjJiNWRm
MmIzMzA0MTk0ZTc2ZGNkNzNjMzdjN2E3NC4uNTIzMDkyNDc5YzE4NDY5ODk4YzI0Nzc4MDc1MWZm
YzU3YzQwOGQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDIxLTAyLTEwICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBX
b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjps
b2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5
RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNo
ZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2NyaXB0TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1w
b3J0TWV0YVByb3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2Jq
ZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNo
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9h
ZGVyRXZhbHVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyk6
IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oLgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpjbGVhckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpN
b2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgICogYmluZGlu
Z3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRN
b2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9h
ZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVs
ZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJM
RnJvbVJlcXVlc3RVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpl
dmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1v
ZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlz
aGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
LgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
Ojp+V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1v
ZHVsZVNjcmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmguCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQpOiBEZWxldGVkLgorICAgICAgICAq
IGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3Jp
cHQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlcjo6V29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Oldvcmtlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuaWRsOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2Jh
bFNjb3BlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAg
ICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVMb2Fk
ZXIpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1v
ZHVsZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKiB3b3JrZXJz
L1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dv
cmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJQYXJhbWV0ZXJzOjppc29s
YXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpldmFsdWF0
ZVNjcmlwdElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRo
cmVhZCk6CisKIDIwMjEtMDItMDcgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMjcyMzc5KSBbV1BFXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21hdGhtbC9yZWxhdGlvbnMvY3NzLXN0eWxpbmcvbWF0aHZhcmlhbnQgdGVzdHMg
YXJlIEltYWdlIEZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYTVlMTVjODUwN2Y2OWU4MTQ4ZWU3
N2IzODRkZTEzODFkYTc3OTYwMC4uYmRhNGNjODlhZDJjOWI5ZDBjYTIyZjIxNmU3NDNiNjAzYmZh
Mjc1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYzOCw2ICs2MzgsNyBAQCBiaW5kaW5ncy9qcy9TdHJ1
Y3R1cmVkQ2xvbmUuY3BwCiBiaW5kaW5ncy9qcy9XZWJDb3JlSklUT3BlcmF0aW9ucy5jcHAKIGJp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCiBiaW5kaW5ncy9qcy9XZWJDb3JlVHlw
ZWRBcnJheUNvbnRyb2xsZXIuY3BwCitiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2Fk
ZXIuY3BwCiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKIGJpbmRpbmdzL2pzL1dyaXRhYmxl
U3RyZWFtLmNwcAogYnJpZGdlL0lkZW50aWZpZXJSZXAuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzA3YzJhODExZmQ2M2Ji
YWUxZmJmMmU5YzJlZWExOWExODVkZDZkYy4uMjRjMzk2NWM1YjQxZTIyODA4YmE5NWUzMGYxMDcz
ZWY0MGU0NDNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTA2MiwxNSArNTA2MiwxNyBAQAogCQlFMzA1OTI2NDFFMjdBM0FE
MDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTkyNjIxRTI3QTM4QzAwRDU3Qzk4IC8qIElubGlu
ZUNsYXNzaWNTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlFMzA1OTI2ODFFMjdBM0QxMDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTky
NjYxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzA3REVEMDFEODFFNEM3MDAx
NDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJRTMwN0RFRDExRDgxRTRDQjAwMTQxQ0FGIC8qIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzMDdERUQ1MUQ4MUU0RjIwMDE0MUNBRiAvKiBMb2FkYWJsZU1vZHVsZVNjcmlw
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RF
RDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMxNTBFQTcxREE3MjE5MzAw
MTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzMTUwRUE1MURBNzIxOEQwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJz
LmggKi87IH07CiAJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAzMiAvKiBNb2R1bGVGZXRjaFBhcmFt
ZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
OEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzIzQ0ZGQTFFNUFG
NkFGMDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMyM0NGRjkxRTVBRjZBNTAwRjBCNEEwIC8qIEpT
RE9NQ29udmVydFByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlFMzQzMkRFNDI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgg
Ki87IH07CisJCUUzNTE4OEI0MjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
NTE4OEIzMjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU2NUI3QjFE
QzJENkM5MDAyMTdEQkQgLyogSlNFdmVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZl
bnRDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFMzU4MDJCNjFEQzg0MzVEMDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODAyQjUxREM4
NDM1ODAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU4MkMyODI1MjdGNjY5MDBEMUI3OTAg
LyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzNTgyQzI2MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3Bl
cmF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUUzNUI5MDdGMjNGNjBBNTAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1QjkwN0MyM0Y2
MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM2NDMyMUMyNUQzN0E2NzAwRjkwRTJB
IC8qIE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExv
YWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURDMDQ1MDA3MThG
M0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RPTVByb21pc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzN0M4NjRG
MUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyog
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIERldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTYxNzcsNyArMTYxNzksNiBAQAogCQlFMzA1OTI2NjFF
MjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDYWNoZWRTY3JpcHRGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzMDdERUM2MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMw
N0RFQzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8q
IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFRDIxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9k
dWxlU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRh
YmxlTW9kdWxlU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RF
RDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvYWRhYmxlTW9kdWxlU2NyaXB0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzMTUwRUE1MURBNzIxOEQwMDE5NDAxMiAvKiBET01KSVRIZWxw
ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVEhlbHBlcnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTkwLDEyICsxNjE5MSwxNiBAQAogCQlF
MzI5Mjc2MzIyNTQzRjU5MDAzMDhBOUEgLyogVHlwZWRPTUNTU1VuaXRWYWx1ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTMyOTI3NjYyMjU0M0ZERTAwMzA4QTlBIC8qIERPTVJlY3RSZWFkT25seS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01SZWN0UmVhZE9ubHkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMzM0ODI1RTFEQzkzQUEwMDA5Qzk1NDQgLyogRE9NSklUQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBET01K
SVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0RPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKKwkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNj
cmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM0MzJERTMy
NUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzRFRTQ5RjFEQzJENTc1MDBFQUE5RDMg
LyogSlNFdmVudEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2
ZW50Q3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNTE4OEIzMjVEMzg3
Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExU
eXBlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVElETFR5
cGVGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODJDMjQyNTI3RjY2
ODAwRDFCNzkwIC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVKSVRPcGVyYXRpb25zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODJDMjYyNTI3RjY2ODAwRDFCNzkwIC8qIFdlYkNvcmVKSVRP
cGVyYXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVKSVRP
cGVyYXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUI5MDdDMjNGNjA2
NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzVCOTA3RTIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9k
ZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbGl6ZWRE
ZXZpY2VNb2RlbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM2NDMyMUEyNUQz
N0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNb2R1bGVTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVByb21pc2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVs
ZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRN
b2R1bGVMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NTFC
QUQxNDVGMDBENjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjY5ODcsNyArMjY5OTIsNiBAQAogCQkJCTJERkE0ODhFMURCNTQxQzIwMDM2
MkI5OSAvKiBCdWZmZXJTb3VyY2UuaCAqLywKIAkJCQlFMzA3REVDNjFEODFFNDQ4MDAxNDFDQUYg
LyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAqLywKIAkJCQlFMzA3REVDNzFEODFFNDQ4
MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8sCi0JCQkJRTMwN0RFQzgx
RDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovLAog
CQkJCUUzMDU5MjY1MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmNwcCAq
LywKIAkJCQlFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5o
ICovLAogCQkJCUJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oICovLApAQCAtMjcwNjEsNiArMjcwNjUsOCBAQAogCQkJCTRCREVBMzJEMjE4MDM0
MDUwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwICovLAogCQkJCTRCREVB
MzJCMjE4MDMzRUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCAqLywKIAkJ
CQk3MDlBMDFGRDFFM0QwQkNDMDA2QjBENEMgLyogTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oICov
LAorCQkJCUUzNjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCAq
LywKKwkJCQlFMzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xp
ZW50LmggKi8sCiAJCQkJNDFCNDU5RUQxRjU1RUJDNzAwMDBGNkZEIC8qIFJlYWRhYmxlU3RyZWFt
LmNwcCAqLywKIAkJCQk0MUI0NTlEQTFGNENBREI5MDAwMEY2RkQgLyogUmVhZGFibGVTdHJlYW0u
aCAqLywKIAkJCQk0MThDMzk1RTFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1EZWZh
dWx0Q29udHJvbGxlci5jcHAgKi8sCkBAIC0yNzA5Miw2ICsyNzA5OCw4IEBACiAJCQkJMEYwOTlE
MDcxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oICovLAog
CQkJCTQ2MzUyMUFDMjA4MTA5MEUwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5jcHAgKi8sCiAJCQkJ
NDYzNTIxQUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi8sCisJCQkJRTM0MzJE
RTMyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8sCisJ
CQkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5o
ICovLAogCQkJCTQxNDE4QTAzMjU2NDNFMTIwMDM2MzQxNyAvKiBXcml0YWJsZVN0cmVhbS5jcHAg
Ki8sCiAJCQkJNDE0MThBMDQyNTY0M0UxMzAwMzYzNDE3IC8qIFdyaXRhYmxlU3RyZWFtLmggKi8s
CiAJCQkpOwpAQCAtMzEzNTcsNyArMzEzNjUsNiBAQAogCQkJCUJDQjE2QzFDMDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE5RkJENUYxNUQyRjQ2
NDAwOTY0MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA3
REVEMDFEODFFNEM3MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlFMzA3REVEMTFEODFFNENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2Ny
aXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTAxODQ2OTBCMDg2MDJBMDA0
QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDBFREE3NzUxNDNFMzAz
QzAwMjhFMzgzIC8qIENhY2hlZFJhd1Jlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUI1
MzM0OTE3MTdERUUzMDBGMjA1RjkgLyogQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzM4MjcsNiArMzM4MzQsOCBAQAogCQkJCUM2RDc0QUQ1MDlBQTI4MkUwMDBC
MEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTcw
OUEwMUZFMUUzRDBCREQwMDZCMEQ0QyAvKiBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMzIwMUMxQTFGOEU4MjEzMDA3NkEwMzIgLyogTW9kdWxlRmV0Y2hQYXJh
bWV0ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzY0MzIxQzI1RDM3QTY3MDBGOTBFMkEgLyog
TW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzUxODhCNDI1RDM4N0NG
MDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNTVCM0RDNjEyNTFGMTJEMDAzRUYyNjkgLyogTW9udGhJbnB1dFR5cGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUzOTYyOEMxMjM5NTc0MzEwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0NjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VF
dmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTQ3Niw2ICszNTQ4NSw3IEBACiAJCQkJMThGODMx
QjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTG9jYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJFNDM0NjUwMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQ
cm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM0MzJERTQyNUQzNzdFMzAwNThFNjEyIC8qIFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNzFBMEIwRUVF
Qzc3QTAwRjYxMjEzIC8qIFdvcmtlck5hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVD
QjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8qIFdvcmtlck5ldHdvcmtBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0Nh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9D
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCmluZGV4IDM1MmRjYzRhY2Y3NTE3NmQ5OGFkMzQx
MGJlMTUxNjA4MDEwODg1MjQuLmM2YmM0NDdkMzE5MDQwMjRiM2NiZDdjY2E2YzBjMjljZmI0ODBh
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyOjpjcmVhdGUoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERl
ZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hl
ciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQorUmVmPENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcj4gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwg
Q2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFy
YW1ldGVycz4mJiBwYXJhbWV0ZXJzKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1v
dmUocGFyYW1ldGVycykpKTsKIH0KIAotQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQs
IERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0
Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQotICAgIDog
bV9jbGllbnQoJmNsaWVudCkKK0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Q2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFBy
b21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0
cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICA6IE1vZHVsZVNjcmlw
dExvYWRlcihjbGllbnQpCiAgICAgLCBtX3Byb21pc2UoJnByb21pc2UpCiAgICAgLCBtX3Njcmlw
dEZldGNoZXIoc2NyaXB0RmV0Y2hlcikKICAgICAsIG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFt
ZXRlcnMpKQpAQCAtNjEsMTQgKzYxLDE0IEBAIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6fkNh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlcigpCiAgICAgfQogfQogCi1ib29sIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcjo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc291cmNlVVJM
KQorYm9vbCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50
LCBVUkwmJiBzb3VyY2VVUkwpCiB7CiAgICAgQVNTRVJUKCFtX2NhY2hlZFNjcmlwdCk7CiAgICAg
U3RyaW5nIGludGVncml0eSA9IG1fcGFyYW1ldGVycyA/IG1fcGFyYW1ldGVycy0+aW50ZWdyaXR5
KCkgOiBTdHJpbmcgeyB9OwogICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9zY3JpcHRGZXRjaGVyLT5y
ZXF1ZXN0TW9kdWxlU2NyaXB0KGRvY3VtZW50LCBzb3VyY2VVUkwsIFdURk1vdmUoaW50ZWdyaXR5
KSk7CiAgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IG1fc291cmNlVVJMID0gc291cmNlVVJMOworICAgIG1fc291cmNlVVJMID0gV1RGTW92ZShzb3Vy
Y2VVUkwpOwogCiAgICAgLy8gSWYgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQsIHRoaXMg
aW1tZWRpYXRlbHkgY2FsbHMgbm90aWZ5RmluaXNoZWQuCiAgICAgbV9jYWNoZWRTY3JpcHQtPmFk
ZENsaWVudCgqdGhpcyk7CkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IE5l
CiAKICAgICBSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlz
KTsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgq
dGhpcywgV1RGTW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlz
aGVkKCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxs
KCkpOwogCiAgICAgLy8gUmVtb3ZlIHRoZSBjbGllbnQgYWZ0ZXIgY2FsbGluZyBub3RpZnlGaW5p
c2hlZCB0byBrZWVwIHRoZSBkYXRhIGJ1ZmZlciBpbgogICAgIC8vIENhY2hlZFJlc291cmNlIGFs
aXZlIHdoaWxlIG5vdGlmeUZpbmlzaGVkIHByb2Nlc3NlcyB0aGUgcmVzb3VyY2UuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5o
CmluZGV4IDQzYWJkODc1YjI0M2ZhZjVmY2Q0ZDk4ZWMzYzVkMjRlNzkwYjU3MmUuLjA0NDg3NjE4
OTlkZWVlN2E4NjU4MjhjMDAxZWRhMWJmNzgzNTMzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzQsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKK2NsYXNzIE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIENhY2hlZFNjcmlw
dEZldGNoZXI7CiBjbGFzcyBEZWZlcnJlZFByb21pc2U7CkBAIC00MiwzMSArNDMsMjMgQEAgY2xh
c3MgRG9jdW1lbnQ7CiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKIGNsYXNzIE1vZHVsZUZldGNo
UGFyYW1ldGVyczsKIAotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVi
bGljIFJlZkNvdW50ZWQ8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiwgcHJpdmF0ZSBDYWNoZWRS
ZXNvdXJjZUNsaWVudCB7CitjbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBw
dWJsaWMgTW9kdWxlU2NyaXB0TG9hZGVyLCBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRl
KENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hl
ZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKyAgICBz
dGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQ
dHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZpcnR1YWwgfkNhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcigpOwogCi0gICAgYm9vbCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJMJiBz
b3VyY2VVUkwpOworICAgIGJvb2wgbG9hZChEb2N1bWVudCYsIFVSTCYmIHNvdXJjZVVSTCk7CiAK
ICAgICBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyKCkgeyByZXR1cm4gbV9zY3Jp
cHRGZXRjaGVyLmdldCgpOyB9CiAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSB7IHJl
dHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQogICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyog
cGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQotICAgIGNvbnN0IFVS
TCYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KLQotICAgIHZvaWQg
Y2xlYXJDbGllbnQoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fY2xpZW50KTsKLSAgICAgICAg
bV9jbGllbnQgPSBudWxscHRyOwotICAgIH0KIAogcHJpdmF0ZToKLSAgICBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9t
aXNlJiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+
JiYpOworICAgIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVs
ZUZldGNoUGFyYW1ldGVycz4mJik7CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlJiwgY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CiAKLSAgICBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwogICAgIFJlZlB0
cjxEZWZlcnJlZFByb21pc2U+IG1fcHJvbWlzZTsKICAgICBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hl
cj4gbV9zY3JpcHRGZXRjaGVyOwogICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+IG1f
cGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDg2ODhhZDkwZGFlM2VjZTk0OWVhMDliMWVmZWU1ZGEyNmY5NGM3ODYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcjsKLWNsYXNzIERlZmVycmVkUHJvbWlzZTsKLQotY2xhc3MgQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5DYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQoKSA9IGRlZmF1bHQ7Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVy
cmVkUHJvbWlzZT4pID0gMDsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKaW5kZXggYTQzMzc1ODY1YmJmMWVjNTk3M2Jm
MTcyYzkxYTM4NTMyMzRlMzc0ZC4uZGYzYzZiNmViYjg0YWY3MmVkMjk1NWY5OTExZDA3YTg3YWIz
NTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0
RmV0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0
RmV0Y2hlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC00Nyw2ICs0OCw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNj
cmlwdD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdE1vZHVsZVNjcmlwdChEb2N1CiAKIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVx
dWVzdFNjcmlwdFdpdGhDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc291cmNl
VVJMLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSwgU3RyaW5nJiYgaW50ZWdyaXR5LCBP
cHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4gcmVzb3VyY2VMb2FkUHJpb3JpdHkpIGNvbnN0
CiB7CisgICAgLy8gV2l0aG91dCBzY3JpcHRpbmcsIHRoZXJlIGlzIG5vIHdheSB0byBzdGFydCBX
b3JrZXJzLgogICAgIGlmICghZG9jdW1lbnQuc2V0dGluZ3MoKS5pc1NjcmlwdEVuYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCA1OGI3ZGY3NjBjMDBhMzFmZjA4ZWQyMmRl
ZTIyYThjNzQ0M2FlOGRkLi45ZDY5N2Q0NTliNTYzNDVjYzgzOTYyMDI2Njc2ZTAwYTk4YmY0OWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlICJSZWplY3RlZFByb21pc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZWRDbG9uZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIK
ICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtNDIyLDYgKzQyMyw3OSBAQCBKU0M6
OkpTUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Omluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsbwogfQogI2VuZGlmCiAKK3N0YXRpYyBTY3JpcHRNb2R1bGVMb2Fk
ZXIqIHNjcmlwdE1vZHVsZUxvYWRlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5pbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKSkgeworICAgICAgICBpZiAoYXV0byBkb2N1
bWVudCA9IGpzQ2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpLT53cmFw
cGVkKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiAmZG9jdW1lbnQtPm1vZHVsZUxv
YWRlcigpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKGdsb2JhbE9i
amVjdC0+aW5oZXJpdHM8SlNSZW1vdGVET01XaW5kb3dCYXNlPih2bSkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2VyR2xvYmFs
U2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxvYWRlcigpOwor
ICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZT4o
dm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNJREJT
ZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0Pih2bSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
I2VuZGlmCisgICAgZGF0YUxvZygiVW5leHBlY3RlZCBnbG9iYWwgb2JqZWN0OiAiLCBKU1ZhbHVl
KGdsb2JhbE9iamVjdCksICJcbiIpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTQzo6SWRlbnRpZmllciBKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6Ompz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxv
YWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxv
YWRlci0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1w
b3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiB7IH07Cit9CisKK0pT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFt
ZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlw
dE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBsb2FkZXItPmZldGNoKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXks
IHBhcmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7Cisg
ICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7CisgICAgcmV0
dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6
SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAg
IEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1
bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmV2YWx1YXRlKGds
b2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0
RmV0Y2hlcik7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKworSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVs
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1N0cmluZyogbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcnMsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byog
bG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9k
dWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0ZXJzLCBzb3VyY2VPcmlnaW4pKTsKKyAgICBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAg
ICBzY29wZS5yZWxlYXNlKCk7CisgICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNV
bmRlZmluZWQoKSk7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNPYmplY3QqIEpT
RE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1v
ZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCog
bW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUds
b2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
Z2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVy
KHRoaXNPYmplY3QpKQorICAgICAgICByZXR1cm4gbG9hZGVyLT5jcmVhdGVJbXBvcnRNZXRhUHJv
cGVydGllcyhnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNv
cmQsIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVy
ZSgpKTsKK30KKwogSlNET01HbG9iYWxPYmplY3QmIGNhbGxlckdsb2JhbE9iamVjdChKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUpCiB7CiAg
ICAgY2xhc3MgR2V0Q2FsbGVyR2xvYmFsT2JqZWN0RnVuY3RvciB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCBiODQwNzJkZGQ3NDZiM2Q2
YzUxMDYwZDkwNTAxYjVjZWExYjQ5OWIxLi5mNDlhNGNkMjU3MTk3MTE4OTE3YTdkN2E0YjZjMGUx
MWZjNzZiYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgKQEAgLTEwNSw2ICsxMDUsMTIgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNET01H
bG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CiAgICAgc3RhdGljIEpT
Qzo6SlNQcm9taXNlKiBpbnN0YW50aWF0ZVN0cmVhbWluZyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OkpTT2JqZWN0Kik7CiAjZW5kaWYKIAorICAgIHN0YXRpYyBKU0M6
OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFs
dWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUg
bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVM
b2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICBz
dGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0cmluZyos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKKyAgICBzdGF0aWMgSlND
OjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOworCiAgICAgSlNET01TdHJ1Y3R1cmVNYXAg
bV9zdHJ1Y3R1cmVzOwogICAgIEpTRE9NQ29uc3RydWN0b3JNYXAgbV9jb25zdHJ1Y3RvcnM7CiAg
ICAgRE9NR3VhcmRlZE9iamVjdFNldCBtX2d1YXJkZWRPYmplY3RzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggNTYzZWZhMDU3MWI1ZDQ2
MmQ5ZTY0NTA4OWYwYmQ4Zjc3ZDE5YTc2OC4uMzEyYTAxMTU4ZThjMjgwODNjMDdlNDJkYjg3MjQ1
ZmU0ZTVjNTdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwCkBAIC0zMzksNTQgKzMzOSw0IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJl
RnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAg
fQogfQogCi1KU0M6OklkZW50aWZpZXIgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNv
bHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RP
TVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihn
bG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09i
amVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9k
dWxlTG9hZGVyKCkucmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFt
ZSwgaW1wb3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOwotICAgIHJldHVybiB7IH07Ci19
Ci0KLUpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVy
RmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBw
YXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9N
V2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9j
dW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuZmV0Y2goZ2xvYmFs
T2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hl
cikpOwotICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0
dXJlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFs
T2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpK
U1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6
SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVj
dCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYg
KFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5ldmFsdWF0ZShn
bG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQsIHNjcmlw
dEZldGNoZXIpOwotICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxl
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciog
bW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcGFy
YW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKLXsKLSAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anND
YXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1
bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuaW1w
b3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0
ZXJzLCBzb3VyY2VPcmlnaW4pKTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNl
ID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVy
bmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKLSAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcHJvbWlz
ZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIHByb21p
c2U7Ci19Ci0KLUpTQzo6SlNPYmplY3QqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyQ3Jl
YXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVL
ZXksIEpTQzo6SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nh
c3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3Vt
ZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAg
ICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0
aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwg
c2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9i
amVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDNlZjk4MGRkMjdmNmIyMTM5ODcwMDhiYTQ3NmM4
Y2E2OWYyZjBiNjQuLjUxNDJiMWM3ZGMyNWMyMmZlOTc4OTVlNzVhZTIyZWY0ZDFlNTg5ZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC05OSwx
MiArOTksNiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd0Jhc2UgOiBwdWJsaWMg
SlNET01HbG9iYWxPYmplY3QgewogcHJpdmF0ZToKICAgICB1c2luZyBSZXNwb25zZUNhbGxiYWNr
ID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IGNoYXIqLCBzaXplX3QpPjsKIAotICAgIHN0YXRp
YyBKU0M6OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2Fk
ZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpT
VmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsK
LSAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9k
dWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0
cmluZyosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKLSAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwotCiAgICAgUmVmUHRyPERPTVdp
bmRvdz4gbV93cmFwcGVkOwogICAgIFJlZlB0cjxFdmVudD4gbV9jdXJyZW50RXZlbnQ7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwCmluZGV4IDQyYjI2YzlmNGVhMjE2MjA3ZGU0Yzg2ODIwYjhhODFiNjAzNWI3ZWIu
LjJkNzkzZmZmMjE4NTNhOGExYTc4ODA2NjcyNTBmNTdlNzUyZmUzZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAK
QEAgLTU5LDExICs1OSwxMSBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZQogICAgICZqYXZhU2Ny
aXB0UnVudGltZUZsYWdzLAogICAgICZxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wLAogICAgICZz
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckltcG9ydE1vZHVsZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlclJlc29sdmUK
LSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJGZXRjaAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxl
TG9hZGVyRXZhbHVhdGUKKyAgICAmbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlLAorICAgICZtb2R1
bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1bGVMb2FkZXJGZXRjaCwKKyAgICAmbW9kdWxlTG9h
ZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMsCisgICAgJm1vZHVsZUxvYWRlckV2YWx1YXRl
LAogICAgICZwcm9taXNlUmVqZWN0aW9uVHJhY2tlciwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNl
cHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5jcHAKaW5kZXggMzVmYTZlMzI3N2ZiMGQ0YmUwZTBlMWVkYzQzNzIyZWRhZGZjOGFmMi4u
OWZhZWM5NTljMzlkMTc0ODE4MWM5ODY1MDAzZDVhODZmMTdmNWUzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3Bw
CkBAIC00OSwxMSArNDksMTEgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICAmamF2YVNj
cmlwdFJ1bnRpbWVGbGFncywKICAgICBudWxscHRyLCAvLyBxdWV1ZU1pY3JvdGFza1RvRXZlbnRM
b29wCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9h
ZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZldGNoCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMKLSAgICBudWxscHRy
LCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUs
CisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNoLAorICAg
ICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9kdWxlTG9h
ZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAogICAgICZyZXBvcnRV
bmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9u
T3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE4ZWFiMTIzYWVlZWIwMmU4YTI2Mzc4YjMyZTE5NTdkMzMzOTVjYWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlU2NyaXB0TG9hZGVyPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+TW9kdWxlU2NyaXB0TG9hZGVyKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBjbGVh
ckNsaWVudCgpCisgICAgeworICAgICAgICBBU1NFUlQobV9jbGllbnQpOworICAgICAgICBtX2Ns
aWVudCA9IG51bGxwdHI7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgTW9kdWxlU2NyaXB0TG9h
ZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50KQorICAgICAgICA6IG1fY2xpZW50
KCZjbGllbnQpCisgICAgeworICAgIH0KKworICAgIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCog
bV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY5OTVmNDhlZTNkMWUwMmMxZDhjOWM5ZGEyYmQ1ODIzNmYzYmEwN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlLCBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IE1vZHVsZVNjcmlwdExvYWRlcjsKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsKKworY2xhc3MgTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmlu
aXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSA9
IDA7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9k
dWxlTG9hZGVyLmNwcAppbmRleCBhYTViODBiNTg2Yjc5ZTBlNTc1MDFjZDUxMDc4ZGYyNWE2MjVl
NWQ5Li44MGU5YjEwYzRlMDJkNjJmMDhjNmNmMGI3MzRkMjY5MjJmNDY1NTRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTI5
LDcgKzI5LDYgQEAKICNpbmNsdWRlICJDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCIKICNpbmNs
dWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCi0j
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCkBAIC01Miw4ICs1
MSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2NyaXB0TW9kdWxlTG9hZGVyOjpTY3Jp
cHRNb2R1bGVMb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChkb2N1
bWVudCkKK1NjcmlwdE1vZHVsZUxvYWRlcjo6U2NyaXB0TW9kdWxlTG9hZGVyKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIE93bmVyVHlwZSBvd25lclR5cGUpCisgICAgOiBtX2NvbnRl
eHQoY29udGV4dCkKKyAgICAsIG1fb3duZXJUeXBlKG93bmVyVHlwZSkKIHsKIH0KIApAQCAtNjgs
NyArNjgsNyBAQCBzdGF0aWMgYm9vbCBpc1Jvb3RNb2R1bGUoSlNDOjpKU1ZhbHVlIGltcG9ydGVy
TW9kdWxlS2V5KQogICAgIHJldHVybiBpbXBvcnRlck1vZHVsZUtleS5pc1N5bWJvbCgpIHx8IGlt
cG9ydGVyTW9kdWxlS2V5LmlzVW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBFeHBlY3RlZDxVUkws
IFN0cmluZz4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgc3BlY2lmaWVyLCBjb25zdCBVUkwmIGJhc2VVUkwpCitzdGF0aWMgRXhwZWN0ZWQ8
VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGUgb3duZXJUeXBlLCBjb25z
dCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3QgVVJMJiBiYXNlVVJMKQogewogICAgIC8vIGh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNyZXNvbHZl
LWEtbW9kdWxlLXNwZWNpZmllcgogCkBAIC03OSw3ICs3OSwxMiBAQCBzdGF0aWMgRXhwZWN0ZWQ8
VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBTdAogICAgIGlmICghc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy8nKSAmJiAhc3BlY2lmaWVy
LnN0YXJ0c1dpdGgoIi4vIikgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLi8iKSkKICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1vZHVsZSBzcGVjaWZpZXIsICci
X3MsIHNwZWNpZmllciwgIicgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBc
Ii4uL1wiLiBSZWZlcmVuY2VkIGZyb20gIl9zLCBiYXNlVVJMLnN0cmluZygpKSk7CiAKLSAgICBh
dXRvIHJlc3VsdCA9IGRvY3VtZW50LmNvbXBsZXRlVVJMKHNwZWNpZmllciwgYmFzZVVSTCk7Cisg
ICAgVVJMIHJlc3VsdDsKKyAgICBpZiAob3duZXJUeXBlID09IFNjcmlwdE1vZHVsZUxvYWRlcjo6
T3duZXJUeXBlOjpEb2N1bWVudCkKKyAgICAgICAgcmVzdWx0ID0gZG93bmNhc3Q8RG9jdW1lbnQ+
KGNvbnRleHQpLmNvbXBsZXRlVVJMKHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgZWxzZQorICAg
ICAgICByZXN1bHQgPSBVUkwoYmFzZVVSTCwgc3BlY2lmaWVyKTsKKwogICAgIGlmICghcmVzdWx0
LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1v
ZHVsZSBuYW1lLCAnIl9zLCByZXN1bHQuc3RyaW5nKCksICInIGRvZXMgbm90IHJlc29sdmUgdG8g
YSB2YWxpZCBVUkwuIl9zKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTEwNyw3ICsxMTIsNyBA
QCBKU0M6OklkZW50aWZpZXIgU2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LAogICAgIFVSTCBiYXNlVVJMID0gcmVzcG9uc2VVUkxG
cm9tUmVxdWVzdFVSTCgqanNHbG9iYWxPYmplY3QsIGltcG9ydGVyTW9kdWxlS2V5KTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgYXV0byByZXN1bHQgPSByZXNv
bHZlTW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAg
YXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fY29udGV4dCwgbV9vd25lclR5
cGUsIHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgSlND
Ojp0aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9iamVjdCwgc2NvcGUsIHJlc3VsdC5lcnJvcigpKTsK
ICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE2MSwxMyArMTY2LDE5IEBAIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCog
anNHbG9iYWxPCiAgICAgaWYgKGF1dG8qIHNjcmlwdEZldGNoUGFyYW1ldGVycyA9IEpTQzo6anNE
eW5hbWljQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzKj4odm0sIHBhcmFtZXRlcnMp
KQogICAgICAgICB0b3BMZXZlbEZldGNoUGFyYW1ldGVycyA9IHN0YXRpY19jYXN0PE1vZHVsZUZl
dGNoUGFyYW1ldGVycyo+KCZzY3JpcHRGZXRjaFBhcmFtZXRlcnMtPnBhcmFtZXRlcnMoKSk7CiAK
LSAgICBhdXRvIGxvYWRlciA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlz
LCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19jYXN0PENhY2hlZFNjcmlwdEZldGNoZXIqPihKU0M6
OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hlcio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkp
LCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzKSk7Ci0gICAgbV9sb2FkZXJzLmFkZChs
b2FkZXIuY29weVJlZigpKTsKLSAgICBpZiAoIWxvYWRlci0+bG9hZChtX2RvY3VtZW50LCBjb21w
bGV0ZWRVUkwpKSB7Ci0gICAgICAgIGxvYWRlci0+Y2xlYXJDbGllbnQoKTsKLSAgICAgICAgbV9s
b2FkZXJzLnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOwotICAgICAgICByZWplY3RUb1Byb3BhZ2F0
ZU5ldHdvcmtFcnJvcihkZWZlcnJlZC5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2Fz
RXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7Ci0gICAgICAg
IHJldHVybiBqc1Byb21pc2U7CisgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9j
dW1lbnQpIHsKKyAgICAgICAgYXV0byBsb2FkZXIgPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6
OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRG
ZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNoZXIqPihzY3JpcHRGZXRjaGVy
KS0+ZmV0Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFyYW1ldGVycykpOworICAgICAg
ICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOworICAgICAgICBpZiAoIWxvYWRlci0+
bG9hZChkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KSwgV1RGTW92ZShjb21wbGV0ZWRVUkwp
KSkgeworICAgICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOworICAgICAgICAgICAgbV9s
b2FkZXJzLnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOworICAgICAgICAgICAgcmVqZWN0VG9Qcm9w
YWdhdGVOZXR3b3JrRXJyb3IoZGVmZXJyZWQuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6
Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOworICAg
ICAgICAgICAgcmV0dXJuIGpzUHJvbWlzZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAg
ICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMs
IGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlcio+KEpTQzo6
anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSks
IFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKKyAgICAgICAgbV9sb2FkZXJzLmFk
ZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgbG9hZGVyLT5sb2FkKG1fY29udGV4dCwgV1RG
TW92ZShjb21wbGV0ZWRVUkwpKTsKICAgICB9CiAKICAgICByZXR1cm4ganNQcm9taXNlOwpAQCAt
MTc2LDcgKzE4Nyw3IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRl
cjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPCiBVUkwgU2NyaXB0TW9kdWxl
TG9hZGVyOjptb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QsIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSkKIHsKICAgICBpZiAobW9kdWxlS2V5VmFsdWUuaXNT
eW1ib2woKSkKLSAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQudXJsKCk7CisgICAgICAgIHJldHVy
biBtX2NvbnRleHQudXJsKCk7CiAKICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmco
KSk7CiAgICAgcmV0dXJuIFVSTChVUkwoKSwgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1
ZSgmanNHbG9iYWxPYmplY3QpKTsKQEAgLTE4Nyw4ICsxOTgsMTEgQEAgVVJMIFNjcmlwdE1vZHVs
ZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiBq
c0dsb2JhbE8KICAgICBKU0M6OlZNJiB2bSA9IGpzR2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgaWYgKGlzUm9vdE1vZHVs
ZShtb2R1bGVLZXlWYWx1ZSkpCi0gICAgICAgIHJldHVybiBtX2RvY3VtZW50LmJhc2VVUkwoKTsK
KyAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkgeworICAgICAgICBpZiAobV9v
d25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5iYXNlVVJMKCk7CisgICAgICAgIHJldHVybiBtX2Nv
bnRleHQudXJsKCk7CisgICAgfQogCiAgICAgQVNTRVJUKCFpc1Jvb3RNb2R1bGUobW9kdWxlS2V5
VmFsdWUpKTsKICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CkBAIC0yMTks
OCArMjMzLDE0IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKCiAgICAgaWYgKCFzb3VyY2VVUkwu
aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9i
amVjdCwgc2NvcGUsICJNb2R1bGUga2V5IGlzIGFuIGludmFsaWQgVVJMLiJfcyk7CiAKLSAgICBp
ZiAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFt
ZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAg
ICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBpZiAo
YXV0byogZnJhbWUgPSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5mcmFtZSgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkws
ICptb2R1bGVSZWNvcmQpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChpczxXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZT4obV9jb250ZXh0KSk7CisgICAgICAgIGlmIChhdXRvKiBzY3Jp
cHQgPSBkb3duY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZT4obV9jb250ZXh0KS5zY3Jp
cHQoKSkKKyAgICAgICAgICAgIHJldHVybiBzY3JpcHQtPmV2YWx1YXRlTW9kdWxlKCptb2R1bGVS
ZWNvcmQpOworICAgIH0KICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwogfQogCkBAIC0y
NDgsMjMgKzI2OCwzNiBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2Fk
ZXI6OmltcG9ydE1vZHVsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqcwogICAgIFVSTCBiYXNlVVJM
OwogICAgIFJlZlB0cjxKU0M6OlNjcmlwdEZldGNoZXI+IHNjcmlwdEZldGNoZXI7CiAgICAgaWYg
KHNvdXJjZU9yaWdpbi5pc051bGwoKSkgewotICAgICAgICBiYXNlVVJMID0gbV9kb2N1bWVudC5i
YXNlVVJMKCk7Ci0gICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpj
cmVhdGUobV9kb2N1bWVudC5jaGFyc2V0KCkpOworICAgICAgICBTdHJpbmcgY2hhcnNldDsKKyAg
ICAgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAg
ICAgIGJhc2VVUkwgPSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5iYXNlVVJMKCk7Cisg
ICAgICAgICAgICBjaGFyc2V0ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuY2hhcnNl
dCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFzZVVSTCA9IG1fY29udGV4dC51
cmwoKTsKKyAgICAgICAgICAgIGNoYXJzZXQgPSAidXRmLTgiX3M7CisgICAgICAgIH0KKyAgICAg
ICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShXVEZNb3ZlKGNo
YXJzZXQpKTsKICAgICB9IGVsc2UgewogICAgICAgICBiYXNlVVJMID0gVVJMKFVSTCgpLCBzb3Vy
Y2VPcmlnaW4uc3RyaW5nKCkpOwogICAgICAgICBpZiAoIWJhc2VVUkwuaXNWYWxpZCgpKQogICAg
ICAgICAgICAgcmV0dXJuIHJlamVjdFByb21pc2UoZ2xvYmFsT2JqZWN0LCBUeXBlRXJyb3IsICJJ
bXBvcnRlciBtb2R1bGUga2V5IGlzIG5vdCBhIFN5bWJvbCBvciBhIFN0cmluZy4iX3MpOwogCisg
ICAgICAgIFN0cmluZyBjaGFyc2V0OworICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJU
eXBlOjpEb2N1bWVudCkKKyAgICAgICAgICAgIGNoYXJzZXQgPSBkb3duY2FzdDxEb2N1bWVudD4o
bV9jb250ZXh0KS5jaGFyc2V0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNoYXJzZXQg
PSAidXRmLTgiX3M7CisKICAgICAgICAgaWYgKHNvdXJjZU9yaWdpbi5mZXRjaGVyKCkpCiAgICAg
ICAgICAgICBzY3JpcHRGZXRjaGVyID0gc291cmNlT3JpZ2luLmZldGNoZXIoKTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNy
ZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7CisgICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0g
Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKFdURk1vdmUoY2hhcnNldCkpOwogICAgIH0KICAg
ICBBU1NFUlQoYmFzZVVSTC5pc1ZhbGlkKCkpOwogICAgIEFTU0VSVChzY3JpcHRGZXRjaGVyKTsK
IAogICAgIGF1dG8gc3BlY2lmaWVyID0gbW9kdWxlTmFtZS0+dmFsdWUoanNHbG9iYWxPYmplY3Qp
OwotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2RvY3VtZW50LCBz
cGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNp
ZmllcihtX2NvbnRleHQsIG1fb3duZXJUeXBlLCBzcGVjaWZpZXIsIGJhc2VVUkwpOwogICAgIGlm
ICghcmVzdWx0KQogICAgICAgICByZXR1cm4gcmVqZWN0UHJvbWlzZShnbG9iYWxPYmplY3QsIFR5
cGVFcnJvciwgcmVzdWx0LmVycm9yKCkpOwogCkBAIC0yODgsNjIgKzMyMSw5OCBAQCBKU0M6OkpT
T2JqZWN0KiBTY3JpcHRNb2R1bGVMb2FkZXI6OmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpT
Qzo6SlNHbG9iYWxPYmplYwogICAgIHJldHVybiBtZXRhUHJvcGVydGllczsKIH0KIAotdm9pZCBT
Y3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ciYgbG9hZGVyLCBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBwcm9taXNlKQordm9pZCBTY3JpcHRN
b2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2Ny
aXB0TG9hZGVyLCBVUkwmJiBzb3VyY2VVUkwsIFJlZjxEZWZlcnJlZFByb21pc2U+IHByb21pc2Up
CiB7CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBw
YXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKIAotICAgIFVSTCBzb3VyY2VV
UkwgPSBsb2FkZXIuc291cmNlVVJMKCk7Ci0gICAgaWYgKCFtX2xvYWRlcnMucmVtb3ZlKCZsb2Fk
ZXIpKQorICAgIGlmICghbV9sb2FkZXJzLnJlbW92ZSgmbW9kdWxlU2NyaXB0TG9hZGVyKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIGxvYWRlci5jbGVhckNsaWVudCgpOworICAgIG1vZHVsZVNjcmlw
dExvYWRlci5jbGVhckNsaWVudCgpOwogCi0gICAgYXV0byYgY2FjaGVkU2NyaXB0ID0gKmxvYWRl
ci5jYWNoZWRTY3JpcHQoKTsKKyAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1
bWVudCkgeworICAgICAgICBhdXRvJiBsb2FkZXIgPSBzdGF0aWNfY2FzdDxDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXImPihtb2R1bGVTY3JpcHRMb2FkZXIpOworICAgICAgICBhdXRvJiBjYWNoZWRT
Y3JpcHQgPSAqbG9hZGVyLmNhY2hlZFNjcmlwdCgpOwogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC5y
ZXNvdXJjZUVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KFR5cGVFcnJvciwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3Mt
T3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQucmVzb3VyY2VFcnJvcigpLmlzQWNjZXNzQ29u
dHJvbCgpKSB7CisgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCAiQ3Jvc3Mt
b3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmlu
ZyBwb2xpY3kuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYg
KGNhY2hlZFNjcmlwdC5lcnJvck9jY3VycmVkKCkpIHsKLSAgICAgICAgcmVqZWN0VG9Qcm9wYWdh
dGVOZXR3b3JrRXJyb3IoKnByb21pc2UsIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9y
ZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQorICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LmVycm9yT2NjdXJyZWQoKSkgewor
ICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwg
TW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBz
Y3JpcHQgZmFpbGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAg
IGlmIChjYWNoZWRTY3JpcHQud2FzQ2FuY2VsZWQoKSkgewotICAgICAgICByZWplY3RUb1Byb3Bh
Z2F0ZU5ldHdvcmtFcnJvcigqcHJvbWlzZSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2Fu
Y2VsZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQud2FzQ2FuY2VsZWQo
KSkgeworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5n
ZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcgYSBt
b2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KIAotICAgIGlmICghTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0
TUlNRVR5cGUoY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSkpIHsKLSAgICAgICAg
Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1s
I2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKLSAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBl
eHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3Jp
bmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCi0gICAgICAgIC8v
IEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGZldGNoaW5nIGEgY2xhc3NpYyBzY3JpcHQgZG9lcyBu
b3QgaW5jbHVkZSBNSU1FIHR5cGUgY2hlY2tpbmcuIEluIGNvbnRyYXN0LCBtb2R1bGUgc2NyaXB0
cyB3aWxsIGZhaWwgdG8gbG9hZCBpZiB0aGV5IGFyZSBub3Qgb2YgYSBjb3JyZWN0IE1JTUUgdHlw
ZS4KLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGNh
Y2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFT
Y3JpcHQgTUlNRSB0eXBlLiIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYg
KCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjYWNoZWRT
Y3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpKSkgeworICAgICAgICAgICAgLy8gaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2lu
Z2xlLW1vZHVsZS1zY3JpcHQKKyAgICAgICAgICAgIC8vIFRoZSByZXN1bHQgb2YgZXh0cmFjdGlu
ZyBhIE1JTUUgdHlwZSBmcm9tIHJlc3BvbnNlJ3MgaGVhZGVyIGxpc3QgKGlnbm9yaW5nIHBhcmFt
ZXRlcnMpIGlzIG5vdCBhIEphdmFTY3JpcHQgTUlNRSB0eXBlLgorICAgICAgICAgICAgLy8gRm9y
IGhpc3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBkb2VzIG5vdCBp
bmNsdWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBzY3JpcHRzIHdp
bGwgZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlNRSB0eXBlLgor
ICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGNh
Y2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFT
Y3JpcHQgTUlNRSB0eXBlLiIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0g
ICAgaWYgKGF1dG8qIHBhcmFtZXRlcnMgPSBsb2FkZXIucGFyYW1ldGVycygpKSB7Ci0gICAgICAg
IGlmICghbWF0Y2hJbnRlZ3JpdHlNZXRhZGF0YShjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmlu
dGVncml0eSgpKSkgewotICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFr
ZVN0cmluZygiQ2Fubm90IGxvYWQgc2NyaXB0ICIsIGludGVncml0eU1pc21hdGNoRGVzY3JpcHRp
b24oY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpKTsKKyAgICAgICAgaWYg
KGF1dG8qIHBhcmFtZXRlcnMgPSBsb2FkZXIucGFyYW1ldGVycygpKSB7CisgICAgICAgICAgICBp
ZiAoIW1hdGNoSW50ZWdyaXR5TWV0YWRhdGEoY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRl
Z3JpdHkoKSkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBt
YWtlU3RyaW5nKCJDYW5ub3QgbG9hZCBzY3JpcHQgIiwgaW50ZWdyaXR5TWlzbWF0Y2hEZXNjcmlw
dGlvbihjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFVSTCBy
ZXNwb25zZVVSTCA9IGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpOworICAgICAgICAvLyBJ
ZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2Ug
VVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVy
bCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KKyAg
ICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRpcmVj
dGlvbnMuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTg0MjAKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMDQ5MAorICAgICAgICBpZiAoIWNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlvbnMoKSAm
JiBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5zb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpT
b3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJh
Z21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21l
bnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgICAgIH0K
KworICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3Ry
aW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdp
dGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAg
ICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qu
dm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2Rl
IHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwg
bG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOworICAgICAgICB9KTsK
KyAgICB9IGVsc2UgeworICAgICAgICBhdXRvJiBsb2FkZXIgPSBzdGF0aWNfY2FzdDxXb3JrZXJN
b2R1bGVTY3JpcHRMb2FkZXImPihtb2R1bGVTY3JpcHRMb2FkZXIpOworICAgICAgICBhdXRvJiB3
b3JrZXJTY3JpcHRMb2FkZXIgPSBsb2FkZXIuc2NyaXB0TG9hZGVyKCk7CisKKyAgICAgICAgaWYg
KHdvcmtlclNjcmlwdExvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgaWYgKHdvcmtlclNj
cmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CisgICAgICAgICAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5p
ZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod29ya2Vy
U2NyaXB0TG9hZGVyLmVycm9yKCkuaXNDYW5jZWxsYXRpb24oKSkgeworICAgICAgICAgICAgICAg
IHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNo
RmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBpcyBj
YW5jZWxlZC4iX3MpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwg
TW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBz
Y3JpcHQgZmFpbGVkLiJfcyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9
CiAKLSAgICBVUkwgcmVzcG9uc2VVUkwgPSBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKTsK
LSAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRo
ZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVz
cG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlD
YWNoZS4KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNrIGZyYWdtZW50cyB0aHJvdWdoIHJl
ZGlyZWN0aW9ucy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU4NDIwCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMDQ5MAotICAgIGlmICghY2FjaGVkU2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpICYmIGNhY2hl
ZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6
U2VydmljZVdvcmtlcikgewotICAgICAgICBpZiAoc291cmNlVVJMLmhhc0ZyYWdtZW50SWRlbnRp
ZmllcigpKQotICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNv
dXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgfQorICAgICAgICBpZiAoIU1JTUVU
eXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKHdvcmtlclNjcmlwdExv
YWRlci5yZXNwb25zZU1JTUVUeXBlKCkpKSB7CisgICAgICAgICAgICAvLyBodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUt
bW9kdWxlLXNjcmlwdAorICAgICAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEg
TUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVy
cykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCisgICAgICAgICAgICAvLyBGb3IgaGlz
dG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1
ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBm
YWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCisgICAg
ICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2Vy
U2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlNRVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNj
cmlwdCBNSU1FIHR5cGUuIikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAg
ICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIFdU
Rk1vdmUocmVzcG9uc2VVUkwpKTsKLSAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsm
XSAoSlNET01HbG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7Ci0gICAgICAgIHJldHVybiBK
U0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCi0gICAgICAgICAg
ICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hlZFNjcmlwdCwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIo
KSB9LmpzU291cmNlQ29kZSgpIH0pOwotICAgIH0pOworICAgICAgICBVUkwgcmVzcG9uc2VVUkwg
PSB3b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VVUkwoKTsKKworICAgICAgICBtX3JlcXVlc3RV
UkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIHJlc3BvbnNlVVJMKTsK
KyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2Jq
ZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VD
b2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6OlNv
dXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0TG9hZGVyLnNjcmlwdCgp
LCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkgfSk7Cisg
ICAgICAgIH0pOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRNb2R1bGVMb2FkZXIuaAppbmRleCBkZTI5ZDJmNGJmMDk2YjYwYzM2OTk4MDMxNmMx
NDg2YjI4MmFiZjA5Li5kZjM0ZDU1MWExMWNkOThmNGUyMzZhMmFhMWY0ODI3OWQ5NjRjNjg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaApA
QCAtMjUsOCArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIk1vZHVsZVNj
cmlwdExvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgpAQCAtNDUsMTYgKzQ1LDE3IEBAIGNsYXNzIFNvdXJjZU9yaWdpbjsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZp
bmFsIDogcHJpdmF0ZSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworY2xhc3MgU2Ny
aXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNjcmlwdE1vZHVsZUxvYWRlcik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRl
cihEb2N1bWVudCYpOworICAgIGVudW0gY2xhc3MgT3duZXJUeXBlIDogdWludDhfdCB7IERvY3Vt
ZW50LCBXb3JrZXJPcldvcmtsZXQgfTsKKyAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE93bmVyVHlwZSk7CiAgICAgflNjcmlwdE1vZHVsZUxv
YWRlcigpOwogCi0gICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsg
fQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRl
eHQ7IH0KIAogICAgIEpTQzo6SWRlbnRpZmllciByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNW
YWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwogICAg
IEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTYzLDEzICs2NCwxNSBA
QCBjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudCB7CiAgICAgSlNDOjpKU09iamVjdCogY3JlYXRlSW1wb3J0TWV0YVBy
b3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTVmFsdWUsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwogCiBwcml2YXRl
OgotICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVm
UHRyPERlZmVycmVkUHJvbWlzZT4pIGZpbmFsOworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoTW9k
dWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSBmaW5hbDsKKwog
ICAgIFVSTCBtb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAg
ICAgVVJMIHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpT
Qzo6SlNWYWx1ZSk7CiAKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBtX2NvbnRleHQ7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1
ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKLSAgICBIYXNoU2V0PFJlZjxDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXI+PiBtX2xvYWRlcnM7CisgICAgSGFzaFNldDxSZWY8TW9kdWxlU2NyaXB0TG9hZGVy
Pj4gbV9sb2FkZXJzOworICAgIE93bmVyVHlwZSBtX293bmVyVHlwZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2ZmU3ZTc3ZThmOTllZTM5
MDMyNGQyNzM0MGM1NDRkYjJiZDRlOWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCkBAIC0wLDAgKzEsODkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyLmgiCisKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCisj
aW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2lu
Y2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVy
T3B0aW9ucy5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3Jp
cHRNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5jbHVk
ZSAiV29ya2VyU2NyaXB0TG9hZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlcj4gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUo
TW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlz
ZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNo
UGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdU
Rk1vdmUocGFyYW1ldGVycykpKTsKK30KKworV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpXb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERl
ZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hl
ciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQorICAgIDogTW9k
dWxlU2NyaXB0TG9hZGVyKGNsaWVudCkKKyAgICAsIG1fcHJvbWlzZSgmcHJvbWlzZSkKKyAgICAs
IG1fc2NyaXB0RmV0Y2hlcihzY3JpcHRGZXRjaGVyKQorICAgICwgbV9wYXJhbWV0ZXJzKFdURk1v
dmUocGFyYW1ldGVycykpCisgICAgLCBtX3NjcmlwdExvYWRlcihXb3JrZXJTY3JpcHRMb2FkZXI6
OmNyZWF0ZSgpKQoreworfQorCitXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6On5Xb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXIoKQoreworICAgIG1fc2NyaXB0TG9hZGVyLT5jYW5jZWwoKTsKK30KKwor
Ym9vbCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgVVJMJiYgc291cmNlVVJMKQoreworICAgIG1fc291cmNlVVJMID0gV1RGTW92
ZShzb3VyY2VVUkwpOworCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBtX3NvdXJjZVVS
TCB9OworCisgICAgRmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKKyAgICBmZXRjaE9wdGlvbnMu
bW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKKyAgICBmZXRjaE9wdGlvbnMuY2FjaGUg
PSBGZXRjaE9wdGlvbnM6OkNhY2hlOjpEZWZhdWx0OworICAgIGZldGNoT3B0aW9ucy5yZWRpcmVj
dCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZvbGxvdzsKKyAgICAvLyBGSVhNRTogUHJvcGFn
YXRlIGNyZWRlbnRpYWxzLgorICAgIC8vIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9IHNjcmlw
dEZldGNoSm9iLmNyZWRlbnRpYWxzOworICAgIGF1dG8gY29udGVudFNlY3VyaXR5UG9saWN5RW5m
b3JjZW1lbnQgPSBjb250ZXh0LnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSA6
IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ2hpbGRTcmNEaXJlY3Rp
dmU7CisKKyAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdU
Rk1vdmUocmVxdWVzdCksIFdURk1vdmUoZmV0Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9s
aWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZTo6QWxsLCAqdGhpcyk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5p
c2hlZCgpCit7CisgICAgQVNTRVJUKG1fcHJvbWlzZSk7CisKKyAgICBhdXRvIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50
LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJjZVVSTCksIG1fcHJvbWlzZS5y
ZWxlYXNlTm9uTnVsbCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNGQ5NzdiZjFj
MDQyZDcwNTU5NzJkZWJjYjQ0MWY5ODFmOGIyMTFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgKQEAgLTAsMCAr
MSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTW9kdWxlU2Ny
aXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBEZWZlcnJlZFByb21pc2U7CitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2Ns
YXNzIE1vZHVsZUZldGNoUGFyYW1ldGVyczsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFzcyBXb3JrZXJTY3JpcHRMb2Fk
ZXI7CisKK2NsYXNzIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBNb2R1
bGVTY3JpcHRMb2FkZXIsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNo
ZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKworICAgIHZpcnR1YWwgfldv
cmtlck1vZHVsZVNjcmlwdExvYWRlcigpOworCisgICAgYm9vbCBsb2FkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBVUkwmJiBzb3VyY2VVUkwpOworCisgICAgQ2FjaGVkU2NyaXB0RmV0Y2hlciYg
c2NyaXB0RmV0Y2hlcigpIHsgcmV0dXJuIG1fc2NyaXB0RmV0Y2hlci5nZXQoKTsgfQorICAgIE1v
ZHVsZUZldGNoUGFyYW1ldGVycyogcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5n
ZXQoKTsgfQorICAgIFdvcmtlclNjcmlwdExvYWRlciYgc2NyaXB0TG9hZGVyKCkgeyByZXR1cm4g
bV9zY3JpcHRMb2FkZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBXb3JrZXJNb2R1bGVTY3Jp
cHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2Fj
aGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoKSBmaW5hbDsKKwor
ICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IG1fcHJvbWlzZTsKKyAgICBSZWY8Q2FjaGVkU2Ny
aXB0RmV0Y2hlcj4gbV9zY3JpcHRGZXRjaGVyOworICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFt
ZXRlcnM+IG1fcGFyYW1ldGVyczsKKyAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3Njcmlw
dExvYWRlcjsKKyAgICBVUkwgbV9zb3VyY2VVUkw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBkY2QzYWExYzdjNTcyZTY4Mzk1Y2MwNWRh
OGM4M2ZmMjBiMjZiMDM4Li5hZDExNDk0ZWRlNDRkNDA4OTA1NzUzMjdiOTU2MDgyYTNmNTk1Nzk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYxNSw3ICs2MTUsNyBAQCBEb2N1bWVudDo6
RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVS
TCYgdXJsLCBEb2N1bQogICAgICwgbV9kb2N1bWVudENyZWF0aW9uVGltZShNb25vdG9uaWNUaW1l
Ojpub3coKSkKICNlbmRpZgogICAgICwgbV9zY3JpcHRSdW5uZXIobWFrZVVuaXF1ZTxTY3JpcHRS
dW5uZXI+KCp0aGlzKSkKLSAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9k
dWxlTG9hZGVyPigqdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlcihtYWtlVW5pcXVlPFNjcmlw
dE1vZHVsZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlOjpEb2N1
bWVudCkpCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgLCBtX2FwcGx5UGVuZGluZ1hTTFRyYW5zZm9y
bXNUaW1lcigqdGhpcywgJkRvY3VtZW50OjphcHBseVBlbmRpbmdYU0xUcmFuc2Zvcm1zVGltZXJG
aXJlZCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9k
dWxlU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5j
cHAKaW5kZXggOWEyNWMxNjU4OGVlY2FkNjc4ZmI5MTFlYzg2MjJmNDI0MjU5MmI1YS4uNDhlYzA4
NTFhNDU3ZDliYTQ3NDczZmVjMjhkN2I0OTMxMmI3ODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCkBAIC04OCwxNiArODgsNCBAQCB2b2lkIExvYWRh
YmxlTW9kdWxlU2NyaXB0OjpleGVjdXRlKFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiAg
ICAgc2NyaXB0RWxlbWVudC5leGVjdXRlTW9kdWxlU2NyaXB0KCp0aGlzKTsKIH0KIAotdm9pZCBM
b2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYg
cm9vdFVSTCkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAg
ICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgcm9vdFVSTC5zdHJp
bmcoKSwgbV9wYXJhbWV0ZXJzLmNvcHlSZWYoKSk7Ci19Ci0KLXZvaWQgTG9hZGFibGVNb2R1bGVT
Y3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBz
b3VyY2VDb2RlKQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0g
ICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KCp0aGlzLCBzb3VyY2VDb2Rl
KTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAppbmRl
eCBiYjc5OTU0ZDdiOTliMGVkMDZiZmU1NWVmODU0ZWNjZTIxZjM1ODc3Li5kMjUzNTk2M2Y2NDhi
MDJhOGEwMWZkNjNiYjFlMzgxMzg2Y2VlNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFi
bGVNb2R1bGVTY3JpcHQuaApAQCAtNTAsMTUgKzUwLDE0IEBAIGNsYXNzIExvYWRhYmxlTW9kdWxl
U2NyaXB0IGZpbmFsIDogcHVibGljIExvYWRhYmxlU2NyaXB0IHsKIAogICAgIHZvaWQgc2V0RXJy
b3IoRXJyb3ImJik7CiAKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHJvb3RV
UkwpOwotICAgIHZvaWQgbG9hZChEb2N1bWVudCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsK
LQogICAgIHZvaWQgbm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYpOwogICAg
IHZvaWQgbm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3ImJik7CiAgICAgdm9p
ZCBub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKIAogICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1
bGVLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQogCisgICAgTW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgp
OyB9CisKIHByaXZhdGU6CiAgICAgTG9hZGFibGVNb2R1bGVTY3JpcHQoY29uc3QgU3RyaW5nJiBu
b25jZSwgY29uc3QgU3RyaW5nJiBpbnRlZ3JpdHksIFJlZmVycmVyUG9saWN5LCBjb25zdCBTdHJp
bmcmIGNyb3NzT3JpZ2luTW9kZSwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBBdG9tU3Ry
aW5nJiBpbml0aWF0b3JOYW1lLCBib29sIGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDA1NzU4YjYwMGM3NTIyYjQ3ZjM2NGJh
NmExOGQzNWYxNzMxMTA3ZjkuLjVlOTlmMGY1Nzc3YjNiMjE1OGRkMGZhNGJjMzgyNzc2Y2RiMzQ4
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAK
ICNpbmNsdWRlICJMb2FkYWJsZUNsYXNzaWNTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJN
b2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5j
bHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxl
bWVudC5oIgpAQCAtMzUxLDggKzM1MiwxMSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RN
b2R1bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAg
ICAgICAgICAgc2NyaXB0Q2hhcnNldCgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmxvY2FsTmFt
ZSgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOwot
ICAgICAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIG1vZHVsZVNjcmlwdFJv
b3RVUkwpOwogICAgICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKSB7Cisg
ICAgICAgICAgICBhdXRvJiBzY3JpcHQgPSBkb3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4o
Km1fbG9hZGFibGVTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxv
YWRNb2R1bGVTY3JpcHQoc2NyaXB0LCBtb2R1bGVTY3JpcHRSb290VVJMLnN0cmluZygpLCBtYWtl
UmVmKHNjcmlwdC5wYXJhbWV0ZXJzKCkpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKQEAgLTM2Nyw4ICszNzEsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVl
c3RNb2R1bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQog
ICAgIGlmICghY29udGVudFNlY3VyaXR5UG9saWN5LmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVu
dC5kb2N1bWVudCgpLnVybCgpLnN0cmluZygpLCBtX3N0YXJ0TGluZU51bWJlciwgc291cmNlQ29k
ZS5zb3VyY2UoKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCksIGhhc0tub3duTm9uY2UpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50
KCksIHNvdXJjZUNvZGUpOwogICAgIG1fbG9hZGFibGVTY3JpcHQgPSBXVEZNb3ZlKHNjcmlwdCk7
CisgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAg
ICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoZG93bmNhc3Q8TG9hZGFibGVN
b2R1bGVTY3JpcHQ+KCptX2xvYWRhYmxlU2NyaXB0LmdldCgpKSwgc291cmNlQ29kZSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCA2MmY5MTdh
MzY3ODE5ZGVjM2NkNDEwZDk3NjY5NWNlZTYyZjZkNGI5Li43YzIyNDlhM2EyYWY5NTE4MjNhZTc5
OTVlYzEzNzFhZGZiYjE0YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC03MCw2
ICs3MCw4IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAgLCBtX2lkZW50aWZpZXIoIndv
cmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIo
KSkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNyZWF0ZSgq
dGhpcykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxhZ3MpCisgICAgLCBtX3R5cGUo
b3B0aW9ucy50eXBlKQorICAgICwgbV9jcmVkZW50aWFscyhvcHRpb25zLmNyZWRlbnRpYWxzKQog
ewogICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAgaWYgKCFhZGRlZExpc3RlbmVy
KSB7CkBAIC0xMTMsMTAgKzExNSwxMyBAQCBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gV29ya2Vy
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpSdQogCiAgICAg
RmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKICAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNo
T3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbjsKKyAgICBpZiAod29ya2VyLT5tX3R5cGUgPT0gV29y
a2VyVHlwZTo6TW9kdWxlKQorICAgICAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSB3b3Jr
ZXItPm1fY3JlZGVudGlhbHM7CiAgICAgZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25z
OjpDYWNoZTo6RGVmYXVsdDsKICAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlv
bnM6OlJlZGlyZWN0OjpGb2xsb3c7CiAgICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyOwotICAgIHdvcmtlci0+bV9zY3JpcHRMb2Fk
ZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNl
V29ya2Vyc01vZGU6OkFsbCwgd29ya2VyKTsKKyAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5s
b2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRj
aE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtl
cnNNb2RlOjpBbGwsIHdvcmtlci5nZXQoKSk7CisKICAgICByZXR1cm4gd29ya2VyOwogfQogCkBA
IC0yMTUsNyArMjIwLDcgQEAgdm9pZCBXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICBSZWZl
cnJlclBvbGljeSByZWZlcnJlclBvbGljeSA9IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZzsK
ICAgICBpZiAoYXV0byBwb2xpY3kgPSBwYXJzZVJlZmVycmVyUG9saWN5KG1fc2NyaXB0TG9hZGVy
LT5yZWZlcnJlclBvbGljeSgpLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6SFRUUEhlYWRlcikpCiAg
ICAgICAgIHJlZmVycmVyUG9saWN5ID0gKnBvbGljeTsKLSAgICBtX2NvbnRleHRQcm94eS5zdGFy
dFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0TG9hZGVyLT51cmwoKSwgbV9uYW1lLCBjb250ZXh0
LT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVybCgpKSwgaXNPbmxpbmUsIG1fc2NyaXB0TG9h
ZGVyLT5zY3JpcHQoKSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3No
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgbV93b3JrZXJDcmVhdGlv
blRpbWUsIHJlZmVycmVyUG9saWN5LCBtX3J1bnRpbWVGbGFncyk7CisgICAgbV9jb250ZXh0UHJv
eHkuc3RhcnRXb3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwg
Y29udGV4dC0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3Nj
cmlwdExvYWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cywgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2Vy
Q3JlYXRpb25UaW1lLCByZWZlcnJlclBvbGljeSwgbV90eXBlLCBtX2NyZWRlbnRpYWxzLCBtX3J1
bnRpbWVGbGFncyk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRl
ZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXIt
PnNjcmlwdCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXggNTNmNWU2ZmZmMjdj
OWZhM2U1YzBlMDFmMGY2YzQyYzZjYjZmOWQwZS4uMzhhNjIzYTk4ZGJhMzVmZjgwMTNjZDZmYzhj
ODVjODEwMjA1MDIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0yOSw5ICsyOSwxMSBA
QAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5j
bHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5o
IgogI2luY2x1ZGUgIlBvc3RNZXNzYWdlT3B0aW9ucy5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlw
dExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUuaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5o
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNTUsNiArNTcsOCBAQCBjbGFzcyBXb3Jr
ZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qs
IHByaXZhdGUgV29yawogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2VyKTsKIHB1Ymxp
YzoKICAgICBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgIFdvcmtlclR5cGUgdHlwZTsKKyAgICAg
ICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7CiAgICAgICAgIFN0cmluZyBu
YW1lOwogICAgIH07CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgT3B0aW9ucyYpOwpAQCAtNzksNiArODMsOCBAQCBjbGFzcyBXb3JrZXIgZmlu
YWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZh
dGUgV29yawogICAgIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZv
aWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKTsKICNlbmRpZgogCisgICAgV29ya2VyVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29u
c3QgT3B0aW9ucyYpOwogCkBAIC0xMTIsNiArMTE4LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDog
cHVibGljIEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdv
cmsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBIYXNoU2V0PFN0cmluZz4gbV90cmFuc2Zvcm1l
cnM7CiAjZW5kaWYKKyAgICBXb3JrZXJUeXBlIG1fdHlwZSB7IFdvcmtlclR5cGU6OkNsYXNzaWMg
fTsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzIHsgRmV0Y2hSZXF1
ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAppbmRleCA0NWQ2YTA4Njc4NTRlZTQwNGRlN2U3
ZDAxMjQ4Y2ViZjQ0ZGNhN2VkLi43MDIxNzk2ZGY1MDRhZGY4ZTZiOTU4OWFjZTlmMTQ0ODIxZjI5
NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCkBAIC0zOCw2ICszOCw4IEBACiB9Owog
CiBkaWN0aW9uYXJ5IFdvcmtlck9wdGlvbnMgeworICAgIFdvcmtlclR5cGUgdHlwZSA9ICJjbGFz
c2ljIjsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscyA9ICJzYW1lLW9y
aWdpbiI7IC8vIGNyZWRlbnRpYWxzIGlzIG9ubHkgdXNlZCBpZiB0eXBlIGlzICJtb2R1bGUiCiAg
ICAgRE9NU3RyaW5nIG5hbWUgPSAiIjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaAppbmRleCA0NmQ0OWQ5NGM1MjM4ZTQ2ODhkMzk1ZDg3YzIwNjNlYjU3
MjBkMWJmLi4zODQxYTc4MWQ4NWQxNjBkNDAzNmNmMDBiN2QwZTM5ZTAwZWExYWRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0xNjMsOCArMTYzLDYg
QEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2Vy
R2xvYmFsU2NvcGU+LCBwdWJsaWMgQmFzZTYKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJMb2Nh
dGlvbj4gbV9sb2NhdGlvbjsKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJOYXZpZ2F0b3I+IG1f
bmF2aWdhdG9yOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXI+IG1fc2NyaXB0OwotCiAgICAgYm9vbCBtX2lzT25saW5lOwogICAgIGJvb2wgbV9z
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNDAwMDNjM2Uw
MTA5OTk2MGY2NDc4NjFlNzAxNjg3ZDBlMzcxZDcyZC4uN2I5MWQ3NTNkMWM5ZDcyOWFlNTA4NjU0
YzJlODVmNzY3OTFlMDA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZVByb3h5LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2Nv
cGVQcm94eSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdvcmtlckdsb2JhbFNjb3BlUHJveHkmIGNy
ZWF0ZShXb3JrZXImKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3Bl
KGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4s
IFJlZmVycmVyUG9saWN5LCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBN
b25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHdvcmtl
clR5cGUsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVG
bGFncykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKE1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tU
b1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
PiYmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwCmluZGV4IDE5ZDRiZTY0OTkyZjMwZDNjY2U3NjU0N2EzZDIyMThhOThjODQyYzMuLjc4
ODM1ODdhN2FmNjIwOWUzZWNjOGU3YjQxYmFkNDdhZGY2MjI0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC03Myw3ICs3Myw3IEBA
IFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8
fCAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGRv
d25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJl
YWQoKS50aHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpKTsKIH0KIAotdm9pZCBXb3JrZXJN
ZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVS
TCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09u
bGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywg
Ym9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25p
Y1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVu
dGltZUZsYWdzIHJ1bnRpbWVGbGFncykKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0
V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYg
c291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJl
ZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNo
UmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1l
RmxhZ3MpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZCB0byBiZSByZXZpc2l0ZWQgd2hlbiB3
ZSBzdXBwb3J0IG5lc3RlZCB3b3JrZXIgb25lIGRheQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOwpAQCAtODksNyArODksNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5
OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAog
CiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyID0gZG9jdW1lbnQuc29ja2V0UHJv
dmlkZXIoKTsKIAotICAgIFdvcmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5h
bWUsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LCB0aW1lT3JpZ2luLCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMo
KSB9OworICAgIFdvcmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlk
ZW50aWZpZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0
aW1lT3JpZ2luLCByZWZlcnJlclBvbGljeSwgd29ya2VyVHlwZSwgY3JlZGVudGlhbHMsIGRvY3Vt
ZW50LnNldHRpbmdzVmFsdWVzKCkgfTsKICAgICBhdXRvIHRocmVhZCA9IERlZGljYXRlZFdvcmtl
clRocmVhZDo6Y3JlYXRlKHBhcmFtcywgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAqdGhpcywg
c3RhcnRNb2RlLCBkb2N1bWVudC50b3BPcmlnaW4oKSwgcHJveHksIHNvY2tldFByb3ZpZGVyLCBy
dW50aW1lRmxhZ3MpOwogCiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGM1
YjU3NWI5ZTYxNWIzZjNmNTk2YmZjM2RmNjgzYzg3N2NjNjJiYWIuLjJlMjMxNjlmMDc5M2YwZGNm
ODA4YTliY2ZiNThlNmM5MDhjNmNjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV29ya2VyTWVzc2Fn
aW5nUHJveHkgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyTWVzc2Fn
aW5nUHIKIHByaXZhdGU6CiAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNj
b3BlUHJveHkuCiAgICAgLy8gKE9ubHkgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgd29ya2Vy
IG9iamVjdCB0aHJlYWQuKQotICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBV
UkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJl
clBvbGljeSwgSlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgc3RhcnRXb3JrZXJH
bG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0
aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBGZXRjaFJl
cXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOwog
ICAgIHZvaWQgdGVybWluYXRlV29ya2VyR2xvYmFsU2NvcGUoKSBmaW5hbDsKICAgICB2b2lkIHBv
c3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSBm
aW5hbDsKICAgICB2b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lk
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDIzODRh
NWE4YzdkMmEzMDJlZWU1Y2I0MDVlMTA1ZTAyNWM5ODQzY2MuLmY0ZjRiMjc0NjZmOWEzMGIyOGI4
YjIxZjZmMmJlZjhiZGU5Mzg1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
IAorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1ZGUgIldvcmtlckV2ZW50
TG9vcC5oIgogI2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0zOSw2ICs0MCw3IEBAIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSk7CiAK
IFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShX
b3JrZXJUaHJlYWRUeXBlIHR5cGUsIFJlZjxKU0M6OlZNPiYmIHZtLCBXb3JrZXJPcldvcmtsZXRU
aHJlYWQqIHRocmVhZCkKICAgICA6IG1fc2NyaXB0KG1ha2VVbmlxdWU8V29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlcj4odHlwZSwgV1RGTW92ZSh2bSksIHRoaXMpKQorICAgICwgbV9tb2R1
bGVMb2FkZXIobWFrZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KCp0aGlzLCBTY3JpcHRNb2R1
bGVMb2FkZXI6Ok93bmVyVHlwZTo6V29ya2VyT3JXb3JrbGV0KSkKICAgICAsIG1fdGhyZWFkKHRo
cmVhZCkKICAgICAsIG1faW5zcGVjdG9yQ29udHJvbGxlcihtYWtlVW5pcXVlPFdvcmtlckluc3Bl
Y3RvckNvbnRyb2xsZXI+KCp0aGlzKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCA2YzI0NGEwYzQyN2VlMWM4YzY1
ZmRjYzc2NTk1MmY4NzdmZDliMTZiLi41NDRmMDQ3YWVjMjc4MzI3NDRkMGE4YTcwYWY3ZTkzOWMz
MzA5OTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZS5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEV2ZW50TG9vcFRhc2tHcm91cDsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNs
YXNzIFdvcmtlckV2ZW50TG9vcDsKIGNsYXNzIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI7CiBj
bGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOwpAQCAtNTQsNiArNTUsOCBAQCBj
bGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBwdWJsaWMgUmVmQ291bgogCiAgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCkgeyByZXR1cm4gbV91bmlxdWVJZGVudGlmaWVyKys7IH0KIAorICAgIFNjcmlw
dE1vZHVsZUxvYWRlciYgbW9kdWxlTG9hZGVyKCkgeyByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOyB9
CisKICAgICAvLyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LgogICAgIEV2ZW50TG9vcFRhc2tHcm91
cCYgZXZlbnRMb29wKCkgZmluYWw7CiAgICAgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCBm
aW5hbDsKQEAgLTg4LDYgKzkxLDcgQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUg
OiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KICAgICB2b2lk
IGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyPiBtX3NjcmlwdDsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8U2NyaXB0TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRlcjsKICAgICBXb3Jr
ZXJPcldvcmtsZXRUaHJlYWQqIG1fdGhyZWFkOwogICAgIFJlZlB0cjxXb3JrZXJFdmVudExvb3A+
IG1fZXZlbnRMb29wOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrR3JvdXA+IG1f
ZGVmYXVsdFRhc2tHcm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGNkNGVjMjQ2ODI1MjVh
YWJjNjQyZDg3N2EwZGEwMTFlYmRlMTE0MzEuLmMxMjZkNWM5MTE3MzdjMDhlYmEwNWYwZDBkMmYz
YmZjNTUyM2M4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzUsNiArMzUsOSBAQAogI2lu
Y2x1ZGUgIkpTRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNQYWludFdvcmtsZXRHbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAi
TG9hZGFibGVNb2R1bGVTY3JpcHQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaEZhaWx1cmVLaW5k
LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2NyaXB0
U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRl
ICJXb3JrZXJDb25zb2xlQ2xpZW50LmgiCkBAIC00Myw3ICs0NiwxMiBAQAogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0V4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2Vw
dGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9HQ0FjdGl2aXR5Q2FsbGJh
Y2suaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTTW9kdWxlUmVjb3JkLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNOYXRpdmVTdGRG
dW5jdGlvbi5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2NyaXB0RmV0Y2hQYXJhbWV0
ZXJzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRjaGVyLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0yMjgsNyArMjM2LDEzNSBAQCB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZAogICAgIH0K
IH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgSlNHbG9iYWxTY29wZVByb3RvdHlwZSwgdHlwZW5hbWUg
SlNHbG9iYWxTY29wZSwgdHlwZW5hbWUgR2xvYmFsU2NvcGU+CitzdGF0aWMgSWRlbnRpZmllciBq
c1ZhbHVlVG9Nb2R1bGVLZXkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVy
biBJZGVudGlmaWVyOjpmcm9tVWlkKGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1l
KCkpOworICAgIEFTU0VSVCh2YWx1ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gYXNTdHJpbmco
dmFsdWUpLT50b0lkZW50aWZpZXIobGV4aWNhbEdsb2JhbE9iamVjdCk7Cit9CisKK0pTQzo6SlNW
YWx1ZSBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShKU0M6
OkpTTW9kdWxlUmVjb3JkJiBtb2R1bGVSZWNvcmQpCit7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0
ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICByZXR1cm4gbW9kdWxl
UmVjb3JkLmV2YWx1YXRlKCZnbG9iYWxPYmplY3QpOworfQorCitNZXNzYWdlUXVldWVXYWl0UmVz
dWx0IFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91
c2x5KExvYWRhYmxlTW9kdWxlU2NyaXB0JiBtb2R1bGVTY3JpcHQsIGNvbnN0IFNjcmlwdFNvdXJj
ZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisg
ICAgICAgIHJldHVybiBNZXNzYWdlUXVldWVUZXJtaW5hdGVkOworCisgICAgaW5pdFNjcmlwdElm
TmVlZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBw
ZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9s
ZGVyIGxvY2sgeyB2bSB9OworCisgICAgUmVmUHRyPExvYWRhYmxlTW9kdWxlU2NyaXB0PiBtb2R1
bGVTY3JpcHRSZWY7CisgICAgeworICAgICAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVjU3RhdGU6
OmxvYWRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgpLCBKU0M6
OkpTU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKHZtLCB7ICZtb2R1bGVTY3JpcHQgfSkpOworCisgICAg
ICAgIG1vZHVsZVNjcmlwdFJlZiA9ICZtb2R1bGVTY3JpcHQ7CisKKyAgICAgICAgYXV0byYgZnVs
ZmlsbEhhbmRsZXIgPSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2Jq
ZWN0LCAxLCBTdHJpbmcoKSwgW21vZHVsZVNjcmlwdFJlZl0oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIC0+IEpTQzo6RW5jb2RlZEpTVmFsdWUgewor
ICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgICAgICAgICAgSWRlbnRpZmll
ciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisgICAgICAgICAgICBtb2R1bGVTY3JpcHRSZWYtPm5vdGlmeUxvYWRDb21wbGV0ZWQoKm1v
ZHVsZUtleS5pbXBsKCkpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0SGFuZGxlciA9
ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmlu
ZygpLCBbbW9kdWxlU2NyaXB0UmVmXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkgeworICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgICAgICAgICAgSlNWYWx1ZSBlcnJvclZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVu
dCgwKTsKKyAgICAgICAgICAgIGlmIChlcnJvclZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAg
ICAgICAgICBhdXRvKiBvYmplY3QgPSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOworICAgICAg
ICAgICAgICAgIGlmIChKU1ZhbHVlIGZhaWx1cmVLaW5kVmFsdWUgPSBvYmplY3QtPmdldERpcmVj
dCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEmPigqdm0uY2xpZW50RGF0YSkuYnVpbHRp
bk5hbWVzKCkuZmFpbHVyZUtpbmRQcml2YXRlTmFtZSgpKSkgeworICAgICAgICAgICAgICAgICAg
ICAvLyBUaGlzIGlzIGhvc3QgcHJvcGFnYXRlZCBlcnJvciBpbiB0aGUgbW9kdWxlIGxvYWRlciBw
aXBlbGluZS4KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxNb2R1bGVG
ZXRjaEZhaWx1cmVLaW5kPihmYWlsdXJlS2luZFZhbHVlLmFzSW50MzIoKSkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkOgorICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExv
YWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGFi
bGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdURjo6bnVsbG9wdAorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2R1bGVG
ZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1v
ZHVsZVNjcmlwdFJlZi0+bm90aWZ5TG9hZFdhc0NhbmNlbGVkKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FU
Q0hfU0NPUEUodm0pOworICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFp
bGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgTG9hZGFibGVTY3Jp
cHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgIExvYWRhYmxlU2Ny
aXB0OjpDb25zb2xlTWVzc2FnZSB7CisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VTb3VyY2U6
OkpTLAorICAgICAgICAgICAgICAgICAgICBNZXNzYWdlTGV2ZWw6OkVycm9yLAorICAgICAgICAg
ICAgICAgICAgICByZXRyaWV2ZUVycm9yTWVzc2FnZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JW
YWx1ZSwgc2NvcGUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgcHJvbWlzZS50aGVuKCZnbG9iYWxPYmplY3QsICZmdWxmaWxsSGFuZGxlciwg
JnJlamVjdEhhbmRsZXIpOworICAgIH0KKyAgICBtX2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5w
ZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworCisgICAgLy8gRHJpdmUgUnVuTG9vcCB1bnRp
bCB3ZSBnZXQgZWl0aGVyIG9mICJXb3JrZXIgaXMgdGVybWluYXRlZCIsICJMb2FkaW5nIGlzIGRv
bmUiLCBvciAiTG9hZGluZyBpcyBmYWlsZWQiLgorICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3Ag
PSBtX2dsb2JhbFNjb3BlLT53b3JrZXJPcldvcmtsZXRUaHJlYWQoKS0+cnVuTG9vcCgpOworCisg
ICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVj
ZWl2ZWQ7CisgICAgd2hpbGUgKCghbW9kdWxlU2NyaXB0UmVmLT5pc0xvYWRlZCgpICYmICFtb2R1
bGVTY3JpcHRSZWYtPndhc0NhbmNlbGVkKCkpICYmIHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJt
aW5hdGVkKQorICAgICAgICByZXN1bHQgPSBydW5Mb29wLnJ1bkluTW9kZShtX2dsb2JhbFNjb3Bl
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKworICAgIC8vIEZJWE1FOiBDdXJyZW50
bHkgd2UgYXJlIG5vdCBvZmZlcmluZyBjYW5jZWxsaW5nLgorICAgIC8vIGlmICghbG9hZGVyLT5k
b25lKCkgJiYgcmVzdWx0ID09IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpCisgICAgLy8gICAgIGxv
YWRlci0+Y2FuY2VsKCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFdvcmtlck9y
V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShMb2FkYWJsZU1v
ZHVsZVNjcmlwdCYgbW9kdWxlU2NyaXB0LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VD
b2RlLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSkKK3sKKyAgICBpZiAoaXNFeGVj
dXRpb25Gb3JiaWRkZW4oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdFNjcmlwdElmTmVl
ZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIu
Z2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVy
IGxvY2sgeyB2bSB9OworCisgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhj
ZXB0aW9uOworICAgIEpTRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBtb2R1bGVTY3JpcHQubW9kdWxlS2V5KCkpLCBq
c1VuZGVmaW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKChyZXR1cm5lZEV4Y2Vw
dGlvbiAmJiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVybmVkRXhjZXB0
aW9uKSkgfHwgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAgICAgIGZvcmJpZEV4ZWN1
dGlvbigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHJldHVybmVkRXhjZXB0
aW9uKSB7CisgICAgICAgIGlmIChtX2dsb2JhbFNjb3BlLT5jYW5JbmNsdWRlRXJyb3JEZXRhaWxz
KHNvdXJjZUNvZGUuY2FjaGVkU2NyaXB0KCksIHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCkpKSB7
CisgICAgICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBydW4g
YXJiaXRyYXJ5IGNvZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlvbi4K
KyAgICAgICAgICAgIC8vIERvIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgdG8gaGFuZGxlIHRoYXQg
cHJvcGVybHksIGlmIGl0LCBzYXksIHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlvbj8KKyAgICAgICAg
ICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKnJldHVy
bmVkRXhjZXB0aW9uTWVzc2FnZSA9IHJldHVybmVkRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3Ry
aW5nKCZnbG9iYWxPYmplY3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gT3Zl
cndyaXRlIHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBlcnJvci4KKyAgICAgICAg
ICAgIFN0cmluZyBnZW5lcmljRXJyb3JNZXNzYWdlIHsgIlNjcmlwdCBlcnJvci4iX3MgfTsKKyAg
ICAgICAgICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAg
KnJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IGdlbmVyaWNFcnJvck1lc3NhZ2U7CisgICAgICAg
ICAgICByZXR1cm5lZEV4Y2VwdGlvbiA9IEpTQzo6RXhjZXB0aW9uOjpjcmVhdGUodm0sIGNyZWF0
ZUVycm9yKCZnbG9iYWxPYmplY3QsIGdlbmVyaWNFcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgfQor
ICAgIH0KK30KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEpTR2xvYmFsU2NvcGVQcm90b3R5cGUs
IHR5cGVuYW1lIEpTR2xvYmFsU2NvcGUsIHR5cGVuYW1lIEdsb2JhbFNjb3BlPgogdm9pZCBXb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0V2l0aFN1YmNsYXNzKCkKIHsK
ICAgICBBU1NFUlQoIW1fZ2xvYmFsU2NvcGVXcmFwcGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKaW5kZXgg
YzQ5MzAxYWVkM2RkMDg5ZGE3OTczMjc2MGNhZjJmN2I2NGRiMTFiNi4uZmE1YWQ1ZDBjMjcwYmMx
NjUzMDUyZjEyMDE4Yzk3YWRjNTk2MGMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYv
TWVzc2FnZVF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewpAQCAtNDQsNiArNDUsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBMb2FkYWJsZU1vZHVs
ZVNjcmlwdDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBXb3JrZXJDb25zb2xlQ2xp
ZW50OwogY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU7CkBAIC05NCw2ICs5NiwxMSBA
QCBjbGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICB2b2lkIGV2YWx1
YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVz
c2FnZSA9IG51bGxwdHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29k
ZSYsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0cmluZyog
cmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKKyAgICBKU0M6OkpTVmFsdWUg
ZXZhbHVhdGVNb2R1bGUoSlNDOjpKU01vZHVsZVJlY29yZCYpOworCisgICAgdm9pZCBsaW5rQW5k
RXZhbHVhdGVNb2R1bGUoTG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJiBzb3VyY2VDb2RlLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxw
dHIpOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgbG9hZE1vZHVsZVN5bmNocm9ub3VzbHko
TG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisKIHByb3Rl
Y3RlZDoKICAgICBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogZ2xvYmFsU2NvcGUoKSBjb25z
dCB7IHJldHVybiBtX2dsb2JhbFNjb3BlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmNwcAppbmRleCA3Mjc5MGEwMzMyMjYxOWU2ZWU3ZTYxNmE4YmRlMThiZDU1MmE1Nzgz
Li4zZTk2OGI1NmJhNjFjNjJjNGJjYjQxMTVlZGFmYjA1NDc4NjRjZGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0yOCwxMCArMjgsMTIgQEAKICNpbmNsdWRl
ICJXb3JrZXJUaHJlYWQuaCIKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94eS5oIgorI2lu
Y2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29k
ZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTUsNiArNTcsOCBAQCBXb3JrZXJQYXJhbWV0ZXJzIFdv
cmtlclBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgICAgIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwKICAgICAgICAgdGltZU9yaWdpbiwKICAg
ICAgICAgcmVmZXJyZXJQb2xpY3ksCisgICAgICAgIHdvcmtlclR5cGUsCisgICAgICAgIGNyZWRl
bnRpYWxzLAogICAgICAgICBzZXR0aW5nc1ZhbHVlcy5pc29sYXRlZENvcHkoKQogICAgIH07CiB9
CkBAIC0xMjMsOSArMTI3LDMzIEBAIGJvb2wgV29ya2VyVGhyZWFkOjpzaG91bGRXYWl0Rm9yV2Vi
SW5zcGVjdG9yT25TdGFydHVwKCkgY29uc3QKIAogdm9pZCBXb3JrZXJUaHJlYWQ6OmV2YWx1YXRl
U2NyaXB0SWZOZWNlc3NhcnkoU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQogewotICAgIGdsb2Jh
bFNjb3BlKCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERh
dGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZl
eGNlcHRpb25NZXNzYWdlKTsKLQotICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAg
IC8vIFdlIGFyZSBjdXJyZW50bHkgaG9sZGluZyBvbmx5IHRoZSBpbml0aWFsIHNjcmlwdCBjb2Rl
LiBJZiB0aGUgV29ya2VyVHlwZSBpcyBNb2R1bGUsIHdlIHNob3VsZCBmZXRjaCB0aGUgZW50aXJl
IGdyYXBoIGJlZm9yZSBleGVjdXRpbmcgdGhlIHJlc3Qgb2YgdGhpcy4KKyAgICAvLyBXZSBpbnZv
a2UgbW9kdWxlIGxvYWRlciBhcyBpZiB3ZSBhcmUgZXhlY3V0aW5nIGlubGluZSBtb2R1bGUgc2Ny
aXB0IHRhZyBpbiBEb2N1bWVudC4KKworICAgIGlmIChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMud29y
a2VyVHlwZSA9PSBXb3JrZXJUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgIGdsb2JhbFNjb3BlKCkt
PnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJj
ZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25N
ZXNzYWdlKTsKKyAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgLy8gRklYTUUgY3Jvc3NPcmlnaW4gbW9kZSBzaG91bGQgYmUgY29udmVydGVk
LgorICAgICAgICAvLyBGSVhNRSBmaXggaW5pdGlhdG9yIG5hbWUuCisgICAgICAgIC8vIEZJWE1F
IHBhc3MgVVJMIHRvIG1vZHVsZSBsb2FkZXIuCisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291
cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFy
YW1zLnNjcmlwdFVSTCksIHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVs
ZSk7CisgICAgICAgIGF1dG8gbW9kdWxlU2NyaXB0ID0gTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmNy
ZWF0ZShlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCBtX3N0YXJ0dXBEYXRhLT5wYXJhbXMu
cmVmZXJyZXJQb2xpY3ksIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyOjpkZWZhdWx0
Q3Jvc3NPcmlnaW5Nb2RlRm9yTW9kdWxlLCBlbXB0eVN0cmluZygpLCBlbXB0eUF0b20oKSwgZmFs
c2UpOworICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9IGdsb2JhbFNjb3Bl
KCktPnNjcmlwdCgpLT5sb2FkTW9kdWxlU3luY2hyb25vdXNseShtb2R1bGVTY3JpcHQuZ2V0KCks
IHNvdXJjZUNvZGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0
ZWQpIHsKKyAgICAgICAgICAgIGlmIChPcHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6RXJyb3I+IGVy
cm9yID0gbW9kdWxlU2NyaXB0LT5lcnJvcigpKSB7CisgICAgICAgICAgICAgICAgaWYgKE9wdGlv
bmFsPExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVzc2FnZT4gbWVzc2FnZSA9IGVycm9yLT5jb25z
b2xlTWVzc2FnZSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uTWVzc2FnZSA9IG1lc3Nh
Z2UtPm1lc3NhZ2U7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBl
eGNlcHRpb25NZXNzYWdlID0gIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfczsK
KyAgICAgICAgICAgICAgICBnbG9iYWxTY29wZSgpLT5yZXBvcnRFeGNlcHRpb24oZXhjZXB0aW9u
TWVzc2FnZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0pOworICAgICAgICAgICAgfSBlbHNlIGlm
ICghbW9kdWxlU2NyaXB0LT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICAgICAgLy8gRXZh
bHVhdGUuCisgICAgICAgICAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmxpbmtBbmRF
dmFsdWF0ZU1vZHVsZShtb2R1bGVTY3JpcHQuZ2V0KCksIHNvdXJjZUNvZGUsICZleGNlcHRpb25N
ZXNzYWdlKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIAogICAgIC8vIEZyZWUgdGhlIHN0YXJ0dXAg
ZGF0YSB0byBjYXVzZSBpdHMgbWVtYmVyIHZhcmlhYmxlIGRlcmVmJ3MgaGFwcGVuIG9uIHRoZSB3
b3JrZXIncyB0aHJlYWQgKHNpbmNlCiAgICAgLy8gYWxsIHJlZi9kZXJlZnMgb2YgdGhlc2Ugb2Jq
ZWN0cyBhcmUgaGFwcGVuaW5nIG9uIHRoZSB0aHJlYWQgYXQgdGhpcyBwb2ludCkuIE5vdGUgdGhh
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKaW5kZXggODg5MDc5MDhlN2E5Yjgw
OWU4ZjJhNGU0NzNkNzUyZDExZDI5MzdjMC4uOTUxMmVmZGIxOGYzMmE1MGVjYjdmYjU2OTU5ZDYx
ZTg4NzJmYTFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC0yNiw3
ICsyNiwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5o
IgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtlclJ1
bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9VUkwu
aD4KQEAgLTYzLDYgKzY2LDggQEAgc3RydWN0IFdvcmtlclBhcmFtZXRlcnMgewogICAgIGJvb2wg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OwogICAgIE1vbm90b25p
Y1RpbWUgdGltZU9yaWdpbjsKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeTsKKyAg
ICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7CisgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3Jl
ZGVudGlhbHM7CiAgICAgU2V0dGluZ3M6OlZhbHVlcyBzZXR0aW5nc1ZhbHVlczsKIAogICAgIFdv
cmtlclBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWQuY3BwCmluZGV4IGM4YTdhOTk3MmY5Y2M4YzE2YTc5Njc1MTE1NTJmNTQ5M2E2ODZmOTguLjMz
Y2EwZWMyM2I1OGE1NTExODc2ODQ2YmEwNzE4MzUzMmI1YzQ3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuY3BwCkBAIC03Myw4ICs3Myw5IEBAIGNsYXNzIER1bW15U2VydmljZVdvcmtlclRo
cmVhZFByb3h5IDogcHVibGljIFdvcmtlck9iamVjdFByb3h5IHsKIC8vIEZJWE1FOiBVc2UgYSB2
YWxpZCBXb3JrZXJPYmplY3RQcm94eQogLy8gRklYTUU6IFVzZSB2YWxpZCBydW50aW1lIGZsYWdz
CiAKKy8vIEZJWE1FOiBVc2UgYSB2YWxpZCBXb3JrZXJUeXBlIGFuZCBDcmVkZW50YWlscyBmb3Ig
bW9kdWxlIHNlcnZpY2Ugd29ya2Vycy4KIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3Jr
ZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBTdHJpbmcmJiB1
c2VyQWdlbnQsIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzLCBXb3JrZXJM
b2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2VyUHJv
eHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHksIFNv
Y2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcikKLSAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEu
c2NyaXB0VVJMLCBlbXB0eVN0cmluZygpLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJ
ZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQp
LCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0
YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9
LCBzZXR0aW5nc1ZhbHVlcyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRlYnVnZ2VyUHJv
eHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29ya2VyVGhyZWFk
U3RhcnRNb2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5zZWN1
cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBK
U0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQorICAgIDogV29ya2VyVGhyZWFk
KHsgZGF0YS5zY3JpcHRVUkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJbnNw
ZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHVz
ZXJBZ2VudCksIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09uTGlu
ZSgpLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6Om5v
dygpLCB7IH0sIFdvcmtlclR5cGU6OkNsYXNzaWMsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzOjpT
YW1lT3JpZ2luLCBzZXR0aW5nc1ZhbHVlcyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRl
YnVnZ2VyUHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29y
a2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmln
aW4oKS5zZWN1cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFBy
b3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQogICAgICwgbV9k
YXRhKGRhdGEuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1bW15
U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSkKICAgICAsIG1faGVhcnRCZWF0VGlt
ZW91dChTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCktPnNob3VsZFVz
ZVNob3J0VGltZW91dCgpID8gaGVhcnRCZWF0VGltZW91dEZvclRlc3QgOiBoZWFydEJlYXRUaW1l
b3V0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMjNkZTc2YzJjYWVjY2I3NzIz
MGU0ODRmN2ZhZTg4MGM2YTU2NzRlNy4uMWNkMDc4MDFmNTYwOGU3M2JmZGYwOTY1N2VjZjI4YTFi
YmM3YzkyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMjEtMDItMTAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAg
ICBKUyBNb2R1bGVzIGluIFdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NDg2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhy
b3ctd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0
aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5
cGUtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAyLTA2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm9uLXNwZWNpYWwgVVJMcyBzaG91bGQgaGF2
ZSBhbiBvcGFxdWUgb3JpZ2luCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9u
LW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThmYmE4
YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLjJmMTJhMjM0MmZhZDIyNGUzYTE4YTZmYjVkODQ4
MzI1ZWE2Nzc2ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9y
ZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCi1IYXJu
ZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorUEFTUyBUZXN0IGV2YWx1YXRp
b24gb3JkZXIgb2YgbW9kdWxlcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3Jp
cHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0
aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThm
YmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLjJmMTJhMjM0MmZhZDIyNGUzYTE4YTZmYjVk
ODQ4MzI1ZWE2Nzc2ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9u
LW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCi1I
YXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorUEFTUyBUZXN0IGV2YWx1
YXRpb24gb3JkZXIgb2YgbW9kdWxlcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2Vy
LW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMt
dHlwZS1leHBlY3RlZC50eHQKaW5kZXggZGEwZTRlYjY3NThkMTRhMzdhMzk4ZDBiNmZjNzFhZDM4
NzZiZDI2Yi4uMWZjMGM2NmZkZjcyNGMyYWEzYjkxMDY5ODBiZmJlN2U5ODhmOTc3MyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1
bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dApAQCAtMiwxMSAr
Miw2IEBACiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIHRoZSBkZWZhdWx0IHdv
cmtlciB0eXBlLgogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCB0aGUgImNsYXNz
aWMiIHdvcmtlciB0eXBlLgogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCB0aGUg
Im1vZHVsZSIgd29ya2VyIHR5cGUuCi1GQUlMIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRo
IGFuIGVtcHR5IHdvcmtlciB0eXBlLiBhc3NlcnRfdGhyb3dzX2pzOiBXb3JrZXIgY29uc3RydWN0
aW9uIHdpdGggYW4gZW1wdHkgdHlwZSBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIGZ1bmN0aW9u
ICIoKSA9PiB7Ci0gICAgICAgIG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9wb3N0LW1lc3NhZ2Utb24t
bG9hZC13b3JrZXIuanMnLCB7IHR5cGU6ICcnIH0pOwotICAgICAgfSIgZGlkIG5vdCB0aHJvdwot
RkFJTCBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1bmtub3duIHdvcmtlciB0eXBl
LiBhc3NlcnRfdGhyb3dzX2pzOiBXb3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gdW5rbm93biB0
eXBlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gZnVuY3Rpb24gIigpID0+IHsKLSAgICAgICAg
bmV3IFdvcmtlcigncmVzb3VyY2VzL3Bvc3QtbWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcycsCi0g
ICAgICAgICAgICAgICAgICAgeyB0eXBlOiAndW5rbm93bicgfSk7Ci0gICAgICB9IiBkaWQgbm90
IHRocm93CitQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIGVtcHR5IHdvcmtl
ciB0eXBlLgorUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1bmtub3duIHdv
cmtlciB0eXBlLgogCg==
</data>
<flag name="commit-queue"
          id="438168"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419821</attachid>
            <date>2021-02-10 00:39:08 -0800</date>
            <delta_ts>2021-02-10 13:40:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210210003907.patch</filename>
            <type>text/plain</type>
            <size>114064</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZlNjA0YWRhNjJiNWRm
MmIzMzA0MTk0ZTc2ZGNkNzNjMzdjN2E3NC4uNTIzMDkyNDc5YzE4NDY5ODk4YzI0Nzc4MDc1MWZm
YzU3YzQwOGQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDIxLTAyLTEwICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBX
b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjps
b2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5
RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNo
ZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2NyaXB0TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1w
b3J0TWV0YVByb3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2Jq
ZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNo
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9h
ZGVyRXZhbHVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyk6
IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oLgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpjbGVhckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpN
b2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgICogYmluZGlu
Z3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRN
b2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9h
ZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVs
ZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJM
RnJvbVJlcXVlc3RVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpl
dmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1v
ZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlz
aGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
LgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
Ojp+V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1v
ZHVsZVNjcmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmguCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQpOiBEZWxldGVkLgorICAgICAgICAq
IGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3Jp
cHQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlcjo6V29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Oldvcmtlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuaWRsOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2Jh
bFNjb3BlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAg
ICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVMb2Fk
ZXIpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1v
ZHVsZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKiB3b3JrZXJz
L1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dv
cmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJQYXJhbWV0ZXJzOjppc29s
YXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpldmFsdWF0
ZVNjcmlwdElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRo
cmVhZCk6CisKIDIwMjEtMDItMDcgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMjcyMzc5KSBbV1BFXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL21hdGhtbC9yZWxhdGlvbnMvY3NzLXN0eWxpbmcvbWF0aHZhcmlhbnQgdGVzdHMg
YXJlIEltYWdlIEZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYTVlMTVjODUwN2Y2OWU4MTQ4ZWU3
N2IzODRkZTEzODFkYTc3OTYwMC4uYmRhNGNjODlhZDJjOWI5ZDBjYTIyZjIxNmU3NDNiNjAzYmZh
Mjc1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYzOCw2ICs2MzgsNyBAQCBiaW5kaW5ncy9qcy9TdHJ1
Y3R1cmVkQ2xvbmUuY3BwCiBiaW5kaW5ncy9qcy9XZWJDb3JlSklUT3BlcmF0aW9ucy5jcHAKIGJp
bmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCiBiaW5kaW5ncy9qcy9XZWJDb3JlVHlw
ZWRBcnJheUNvbnRyb2xsZXIuY3BwCitiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2Fk
ZXIuY3BwCiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKIGJpbmRpbmdzL2pzL1dyaXRhYmxl
U3RyZWFtLmNwcAogYnJpZGdlL0lkZW50aWZpZXJSZXAuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzA3YzJhODExZmQ2M2Ji
YWUxZmJmMmU5YzJlZWExOWExODVkZDZkYy4uMjRjMzk2NWM1YjQxZTIyODA4YmE5NWUzMGYxMDcz
ZWY0MGU0NDNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTA2MiwxNSArNTA2MiwxNyBAQAogCQlFMzA1OTI2NDFFMjdBM0FE
MDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTkyNjIxRTI3QTM4QzAwRDU3Qzk4IC8qIElubGlu
ZUNsYXNzaWNTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlFMzA1OTI2ODFFMjdBM0QxMDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTky
NjYxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzA3REVEMDFEODFFNEM3MDAx
NDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJRTMwN0RFRDExRDgxRTRDQjAwMTQxQ0FGIC8qIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzMDdERUQ1MUQ4MUU0RjIwMDE0MUNBRiAvKiBMb2FkYWJsZU1vZHVsZVNjcmlw
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RF
RDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMxNTBFQTcxREE3MjE5MzAw
MTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzMTUwRUE1MURBNzIxOEQwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJz
LmggKi87IH07CiAJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAzMiAvKiBNb2R1bGVGZXRjaFBhcmFt
ZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
OEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzIzQ0ZGQTFFNUFG
NkFGMDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMyM0NGRjkxRTVBRjZBNTAwRjBCNEEwIC8qIEpT
RE9NQ29udmVydFByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlFMzQzMkRFNDI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgg
Ki87IH07CisJCUUzNTE4OEI0MjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
NTE4OEIzMjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU2NUI3QjFE
QzJENkM5MDAyMTdEQkQgLyogSlNFdmVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZl
bnRDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFMzU4MDJCNjFEQzg0MzVEMDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODAyQjUxREM4
NDM1ODAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU4MkMyODI1MjdGNjY5MDBEMUI3OTAg
LyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzNTgyQzI2MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3Bl
cmF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUUzNUI5MDdGMjNGNjBBNTAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1QjkwN0MyM0Y2
MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM2NDMyMUMyNUQzN0E2NzAwRjkwRTJB
IC8qIE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExv
YWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURDMDQ1MDA3MThG
M0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RPTVByb21pc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzN0M4NjRG
MUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyog
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIERldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTYxNzcsNyArMTYxNzksNiBAQAogCQlFMzA1OTI2NjFF
MjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDYWNoZWRTY3JpcHRGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzMDdERUM2MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMw
N0RFQzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8q
IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFRDIxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9k
dWxlU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRh
YmxlTW9kdWxlU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RF
RDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvYWRhYmxlTW9kdWxlU2NyaXB0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzMTUwRUE1MURBNzIxOEQwMDE5NDAxMiAvKiBET01KSVRIZWxw
ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVEhlbHBlcnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTkwLDEyICsxNjE5MSwxNiBAQAogCQlF
MzI5Mjc2MzIyNTQzRjU5MDAzMDhBOUEgLyogVHlwZWRPTUNTU1VuaXRWYWx1ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTMyOTI3NjYyMjU0M0ZERTAwMzA4QTlBIC8qIERPTVJlY3RSZWFkT25seS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01SZWN0UmVhZE9ubHkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMzM0ODI1RTFEQzkzQUEwMDA5Qzk1NDQgLyogRE9NSklUQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBET01K
SVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0RPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKKwkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNj
cmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM0MzJERTMy
NUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzRFRTQ5RjFEQzJENTc1MDBFQUE5RDMg
LyogSlNFdmVudEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2
ZW50Q3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNTE4OEIzMjVEMzg3
Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExU
eXBlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVElETFR5
cGVGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODJDMjQyNTI3RjY2
ODAwRDFCNzkwIC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVKSVRPcGVyYXRpb25zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODJDMjYyNTI3RjY2ODAwRDFCNzkwIC8qIFdlYkNvcmVKSVRP
cGVyYXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVKSVRP
cGVyYXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUI5MDdDMjNGNjA2
NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzVCOTA3RTIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9k
ZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbGl6ZWRE
ZXZpY2VNb2RlbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM2NDMyMUEyNUQz
N0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNb2R1bGVTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVByb21pc2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVs
ZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRN
b2R1bGVMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NTFC
QUQxNDVGMDBENjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjY5ODcsNyArMjY5OTIsNiBAQAogCQkJCTJERkE0ODhFMURCNTQxQzIwMDM2
MkI5OSAvKiBCdWZmZXJTb3VyY2UuaCAqLywKIAkJCQlFMzA3REVDNjFEODFFNDQ4MDAxNDFDQUYg
LyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAqLywKIAkJCQlFMzA3REVDNzFEODFFNDQ4
MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8sCi0JCQkJRTMwN0RFQzgx
RDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovLAog
CQkJCUUzMDU5MjY1MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmNwcCAq
LywKIAkJCQlFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5o
ICovLAogCQkJCUJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oICovLApAQCAtMjcwNjEsNiArMjcwNjUsOCBAQAogCQkJCTRCREVBMzJEMjE4MDM0
MDUwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwICovLAogCQkJCTRCREVB
MzJCMjE4MDMzRUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCAqLywKIAkJ
CQk3MDlBMDFGRDFFM0QwQkNDMDA2QjBENEMgLyogTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oICov
LAorCQkJCUUzNjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCAq
LywKKwkJCQlFMzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xp
ZW50LmggKi8sCiAJCQkJNDFCNDU5RUQxRjU1RUJDNzAwMDBGNkZEIC8qIFJlYWRhYmxlU3RyZWFt
LmNwcCAqLywKIAkJCQk0MUI0NTlEQTFGNENBREI5MDAwMEY2RkQgLyogUmVhZGFibGVTdHJlYW0u
aCAqLywKIAkJCQk0MThDMzk1RTFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1EZWZh
dWx0Q29udHJvbGxlci5jcHAgKi8sCkBAIC0yNzA5Miw2ICsyNzA5OCw4IEBACiAJCQkJMEYwOTlE
MDcxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oICovLAog
CQkJCTQ2MzUyMUFDMjA4MTA5MEUwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5jcHAgKi8sCiAJCQkJ
NDYzNTIxQUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi8sCisJCQkJRTM0MzJE
RTMyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8sCisJ
CQkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5o
ICovLAogCQkJCTQxNDE4QTAzMjU2NDNFMTIwMDM2MzQxNyAvKiBXcml0YWJsZVN0cmVhbS5jcHAg
Ki8sCiAJCQkJNDE0MThBMDQyNTY0M0UxMzAwMzYzNDE3IC8qIFdyaXRhYmxlU3RyZWFtLmggKi8s
CiAJCQkpOwpAQCAtMzEzNTcsNyArMzEzNjUsNiBAQAogCQkJCUJDQjE2QzFDMDk3OUMzQkQwMDQ2
Nzc0MSAvKiBDYWNoZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE5RkJENUYxNUQyRjQ2
NDAwOTY0MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA3
REVEMDFEODFFNEM3MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlFMzA3REVEMTFEODFFNENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2Ny
aXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTAxODQ2OTBCMDg2MDJBMDA0
QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDBFREE3NzUxNDNFMzAz
QzAwMjhFMzgzIC8qIENhY2hlZFJhd1Jlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUI1
MzM0OTE3MTdERUUzMDBGMjA1RjkgLyogQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzM4MjcsNiArMzM4MzQsOCBAQAogCQkJCUM2RDc0QUQ1MDlBQTI4MkUwMDBC
MEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTcw
OUEwMUZFMUUzRDBCREQwMDZCMEQ0QyAvKiBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMzIwMUMxQTFGOEU4MjEzMDA3NkEwMzIgLyogTW9kdWxlRmV0Y2hQYXJh
bWV0ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzY0MzIxQzI1RDM3QTY3MDBGOTBFMkEgLyog
TW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzUxODhCNDI1RDM4N0NG
MDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNTVCM0RDNjEyNTFGMTJEMDAzRUYyNjkgLyogTW9udGhJbnB1dFR5cGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUzOTYyOEMxMjM5NTc0MzEwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0NjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VF
dmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTQ3Niw2ICszNTQ4NSw3IEBACiAJCQkJMThGODMx
QjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTG9jYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJFNDM0NjUwMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQ
cm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM0MzJERTQyNUQzNzdFMzAwNThFNjEyIC8qIFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNzFBMEIwRUVF
Qzc3QTAwRjYxMjEzIC8qIFdvcmtlck5hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVD
QjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8qIFdvcmtlck5ldHdvcmtBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0Nh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9D
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCmluZGV4IDM1MmRjYzRhY2Y3NTE3NmQ5OGFkMzQx
MGJlMTUxNjA4MDEwODg1MjQuLmM2YmM0NDdkMzE5MDQwMjRiM2NiZDdjY2E2YzBjMjljZmI0ODBh
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyOjpjcmVhdGUoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERl
ZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hl
ciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQorUmVmPENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcj4gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwg
Q2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFy
YW1ldGVycz4mJiBwYXJhbWV0ZXJzKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1v
dmUocGFyYW1ldGVycykpKTsKIH0KIAotQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQs
IERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0
Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQotICAgIDog
bV9jbGllbnQoJmNsaWVudCkKK0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Q2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFBy
b21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0
cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICA6IE1vZHVsZVNjcmlw
dExvYWRlcihjbGllbnQpCiAgICAgLCBtX3Byb21pc2UoJnByb21pc2UpCiAgICAgLCBtX3Njcmlw
dEZldGNoZXIoc2NyaXB0RmV0Y2hlcikKICAgICAsIG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFt
ZXRlcnMpKQpAQCAtNjEsMTQgKzYxLDE0IEBAIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6fkNh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlcigpCiAgICAgfQogfQogCi1ib29sIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcjo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc291cmNlVVJM
KQorYm9vbCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50
LCBVUkwmJiBzb3VyY2VVUkwpCiB7CiAgICAgQVNTRVJUKCFtX2NhY2hlZFNjcmlwdCk7CiAgICAg
U3RyaW5nIGludGVncml0eSA9IG1fcGFyYW1ldGVycyA/IG1fcGFyYW1ldGVycy0+aW50ZWdyaXR5
KCkgOiBTdHJpbmcgeyB9OwogICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9zY3JpcHRGZXRjaGVyLT5y
ZXF1ZXN0TW9kdWxlU2NyaXB0KGRvY3VtZW50LCBzb3VyY2VVUkwsIFdURk1vdmUoaW50ZWdyaXR5
KSk7CiAgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IG1fc291cmNlVVJMID0gc291cmNlVVJMOworICAgIG1fc291cmNlVVJMID0gV1RGTW92ZShzb3Vy
Y2VVUkwpOwogCiAgICAgLy8gSWYgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQsIHRoaXMg
aW1tZWRpYXRlbHkgY2FsbHMgbm90aWZ5RmluaXNoZWQuCiAgICAgbV9jYWNoZWRTY3JpcHQtPmFk
ZENsaWVudCgqdGhpcyk7CkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IE5l
CiAKICAgICBSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlz
KTsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgq
dGhpcywgV1RGTW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlz
aGVkKCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxs
KCkpOwogCiAgICAgLy8gUmVtb3ZlIHRoZSBjbGllbnQgYWZ0ZXIgY2FsbGluZyBub3RpZnlGaW5p
c2hlZCB0byBrZWVwIHRoZSBkYXRhIGJ1ZmZlciBpbgogICAgIC8vIENhY2hlZFJlc291cmNlIGFs
aXZlIHdoaWxlIG5vdGlmeUZpbmlzaGVkIHByb2Nlc3NlcyB0aGUgcmVzb3VyY2UuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5o
CmluZGV4IDQzYWJkODc1YjI0M2ZhZjVmY2Q0ZDk4ZWMzYzVkMjRlNzkwYjU3MmUuLjA0NDg3NjE4
OTlkZWVlN2E4NjU4MjhjMDAxZWRhMWJmNzgzNTMzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzQsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKK2NsYXNzIE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIENhY2hlZFNjcmlw
dEZldGNoZXI7CiBjbGFzcyBEZWZlcnJlZFByb21pc2U7CkBAIC00MiwzMSArNDMsMjMgQEAgY2xh
c3MgRG9jdW1lbnQ7CiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKIGNsYXNzIE1vZHVsZUZldGNo
UGFyYW1ldGVyczsKIAotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVi
bGljIFJlZkNvdW50ZWQ8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiwgcHJpdmF0ZSBDYWNoZWRS
ZXNvdXJjZUNsaWVudCB7CitjbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBw
dWJsaWMgTW9kdWxlU2NyaXB0TG9hZGVyLCBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRl
KENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hl
ZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKyAgICBz
dGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQ
dHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZpcnR1YWwgfkNhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcigpOwogCi0gICAgYm9vbCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJMJiBz
b3VyY2VVUkwpOworICAgIGJvb2wgbG9hZChEb2N1bWVudCYsIFVSTCYmIHNvdXJjZVVSTCk7CiAK
ICAgICBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyKCkgeyByZXR1cm4gbV9zY3Jp
cHRGZXRjaGVyLmdldCgpOyB9CiAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSB7IHJl
dHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQogICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyog
cGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQotICAgIGNvbnN0IFVS
TCYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KLQotICAgIHZvaWQg
Y2xlYXJDbGllbnQoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fY2xpZW50KTsKLSAgICAgICAg
bV9jbGllbnQgPSBudWxscHRyOwotICAgIH0KIAogcHJpdmF0ZToKLSAgICBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9t
aXNlJiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+
JiYpOworICAgIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVs
ZUZldGNoUGFyYW1ldGVycz4mJik7CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlJiwgY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CiAKLSAgICBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwogICAgIFJlZlB0
cjxEZWZlcnJlZFByb21pc2U+IG1fcHJvbWlzZTsKICAgICBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hl
cj4gbV9zY3JpcHRGZXRjaGVyOwogICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+IG1f
cGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDg2ODhhZDkwZGFlM2VjZTk0OWVhMDliMWVmZWU1ZGEyNmY5NGM3ODYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcjsKLWNsYXNzIERlZmVycmVkUHJvbWlzZTsKLQotY2xhc3MgQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5DYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQoKSA9IGRlZmF1bHQ7Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVy
cmVkUHJvbWlzZT4pID0gMDsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKaW5kZXggYTQzMzc1ODY1YmJmMWVjNTk3M2Jm
MTcyYzkxYTM4NTMyMzRlMzc0ZC4uZGYzYzZiNmViYjg0YWY3MmVkMjk1NWY5OTExZDA3YTg3YWIz
NTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0
RmV0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0
RmV0Y2hlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC00Nyw2ICs0OCw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNj
cmlwdD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdE1vZHVsZVNjcmlwdChEb2N1CiAKIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVx
dWVzdFNjcmlwdFdpdGhDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc291cmNl
VVJMLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSwgU3RyaW5nJiYgaW50ZWdyaXR5LCBP
cHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4gcmVzb3VyY2VMb2FkUHJpb3JpdHkpIGNvbnN0
CiB7CisgICAgLy8gV2l0aG91dCBzY3JpcHRpbmcsIHRoZXJlIGlzIG5vIHdheSB0byBzdGFydCBX
b3JrZXJzLgogICAgIGlmICghZG9jdW1lbnQuc2V0dGluZ3MoKS5pc1NjcmlwdEVuYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCA1OGI3ZGY3NjBjMDBhMzFmZjA4ZWQyMmRl
ZTIyYThjNzQ0M2FlOGRkLi45ZDY5N2Q0NTliNTYzNDVjYzgzOTYyMDI2Njc2ZTAwYTk4YmY0OWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlICJSZWplY3RlZFByb21pc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZWRDbG9uZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIK
ICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtNDIyLDYgKzQyMyw3OSBAQCBKU0M6
OkpTUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Omluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsbwogfQogI2VuZGlmCiAKK3N0YXRpYyBTY3JpcHRNb2R1bGVMb2Fk
ZXIqIHNjcmlwdE1vZHVsZUxvYWRlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5pbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKSkgeworICAgICAgICBpZiAoYXV0byBkb2N1
bWVudCA9IGpzQ2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpLT53cmFw
cGVkKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiAmZG9jdW1lbnQtPm1vZHVsZUxv
YWRlcigpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKGdsb2JhbE9i
amVjdC0+aW5oZXJpdHM8SlNSZW1vdGVET01XaW5kb3dCYXNlPih2bSkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2VyR2xvYmFs
U2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxvYWRlcigpOwor
ICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZT4o
dm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNJREJT
ZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0Pih2bSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
I2VuZGlmCisgICAgZGF0YUxvZygiVW5leHBlY3RlZCBnbG9iYWwgb2JqZWN0OiAiLCBKU1ZhbHVl
KGdsb2JhbE9iamVjdCksICJcbiIpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTQzo6SWRlbnRpZmllciBKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6Ompz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxv
YWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxv
YWRlci0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1w
b3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiB7IH07Cit9CisKK0pT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFt
ZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlw
dE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBsb2FkZXItPmZldGNoKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXks
IHBhcmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7Cisg
ICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7CisgICAgcmV0
dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6
SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAg
IEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1
bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmV2YWx1YXRlKGds
b2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0
RmV0Y2hlcik7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKworSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVs
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1N0cmluZyogbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcnMsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byog
bG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9k
dWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0ZXJzLCBzb3VyY2VPcmlnaW4pKTsKKyAgICBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAg
ICBzY29wZS5yZWxlYXNlKCk7CisgICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNV
bmRlZmluZWQoKSk7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNPYmplY3QqIEpT
RE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1v
ZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCog
bW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUds
b2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
Z2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVy
KHRoaXNPYmplY3QpKQorICAgICAgICByZXR1cm4gbG9hZGVyLT5jcmVhdGVJbXBvcnRNZXRhUHJv
cGVydGllcyhnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNv
cmQsIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVy
ZSgpKTsKK30KKwogSlNET01HbG9iYWxPYmplY3QmIGNhbGxlckdsb2JhbE9iamVjdChKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUpCiB7CiAg
ICAgY2xhc3MgR2V0Q2FsbGVyR2xvYmFsT2JqZWN0RnVuY3RvciB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCBiODQwNzJkZGQ3NDZiM2Q2
YzUxMDYwZDkwNTAxYjVjZWExYjQ5OWIxLi5mNDlhNGNkMjU3MTk3MTE4OTE3YTdkN2E0YjZjMGUx
MWZjNzZiYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgKQEAgLTEwNSw2ICsxMDUsMTIgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNET01H
bG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CiAgICAgc3RhdGljIEpT
Qzo6SlNQcm9taXNlKiBpbnN0YW50aWF0ZVN0cmVhbWluZyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OkpTT2JqZWN0Kik7CiAjZW5kaWYKIAorICAgIHN0YXRpYyBKU0M6
OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFs
dWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUg
bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVM
b2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICBz
dGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0cmluZyos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKKyAgICBzdGF0aWMgSlND
OjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOworCiAgICAgSlNET01TdHJ1Y3R1cmVNYXAg
bV9zdHJ1Y3R1cmVzOwogICAgIEpTRE9NQ29uc3RydWN0b3JNYXAgbV9jb25zdHJ1Y3RvcnM7CiAg
ICAgRE9NR3VhcmRlZE9iamVjdFNldCBtX2d1YXJkZWRPYmplY3RzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggNTYzZWZhMDU3MWI1ZDQ2
MmQ5ZTY0NTA4OWYwYmQ4Zjc3ZDE5YTc2OC4uMzEyYTAxMTU4ZThjMjgwODNjMDdlNDJkYjg3MjQ1
ZmU0ZTVjNTdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwCkBAIC0zMzksNTQgKzMzOSw0IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJl
RnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAg
fQogfQogCi1KU0M6OklkZW50aWZpZXIgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNv
bHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RP
TVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihn
bG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09i
amVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9k
dWxlTG9hZGVyKCkucmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFt
ZSwgaW1wb3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOwotICAgIHJldHVybiB7IH07Ci19
Ci0KLUpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVy
RmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBw
YXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9N
V2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9j
dW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuZmV0Y2goZ2xvYmFs
T2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hl
cikpOwotICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0
dXJlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFs
T2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpK
U1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6
SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVj
dCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYg
KFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5ldmFsdWF0ZShn
bG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQsIHNjcmlw
dEZldGNoZXIpOwotICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxl
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciog
bW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcGFy
YW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKLXsKLSAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anND
YXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1
bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuaW1w
b3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0
ZXJzLCBzb3VyY2VPcmlnaW4pKTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNl
ID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVy
bmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKLSAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcHJvbWlz
ZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIHByb21p
c2U7Ci19Ci0KLUpTQzo6SlNPYmplY3QqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyQ3Jl
YXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVL
ZXksIEpTQzo6SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nh
c3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3Vt
ZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAg
ICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0
aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwg
c2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9i
amVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDNlZjk4MGRkMjdmNmIyMTM5ODcwMDhiYTQ3NmM4
Y2E2OWYyZjBiNjQuLjUxNDJiMWM3ZGMyNWMyMmZlOTc4OTVlNzVhZTIyZWY0ZDFlNTg5ZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC05OSwx
MiArOTksNiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd0Jhc2UgOiBwdWJsaWMg
SlNET01HbG9iYWxPYmplY3QgewogcHJpdmF0ZToKICAgICB1c2luZyBSZXNwb25zZUNhbGxiYWNr
ID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IGNoYXIqLCBzaXplX3QpPjsKIAotICAgIHN0YXRp
YyBKU0M6OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2Fk
ZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpT
VmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsK
LSAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9k
dWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0
cmluZyosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKLSAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwotCiAgICAgUmVmUHRyPERPTVdp
bmRvdz4gbV93cmFwcGVkOwogICAgIFJlZlB0cjxFdmVudD4gbV9jdXJyZW50RXZlbnQ7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwCmluZGV4IDQyYjI2YzlmNGVhMjE2MjA3ZGU0Yzg2ODIwYjhhODFiNjAzNWI3ZWIu
LjJkNzkzZmZmMjE4NTNhOGExYTc4ODA2NjcyNTBmNTdlNzUyZmUzZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAK
QEAgLTU5LDExICs1OSwxMSBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZQogICAgICZqYXZhU2Ny
aXB0UnVudGltZUZsYWdzLAogICAgICZxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wLAogICAgICZz
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckltcG9ydE1vZHVsZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlclJlc29sdmUK
LSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJGZXRjaAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxl
TG9hZGVyRXZhbHVhdGUKKyAgICAmbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlLAorICAgICZtb2R1
bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1bGVMb2FkZXJGZXRjaCwKKyAgICAmbW9kdWxlTG9h
ZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMsCisgICAgJm1vZHVsZUxvYWRlckV2YWx1YXRl
LAogICAgICZwcm9taXNlUmVqZWN0aW9uVHJhY2tlciwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNl
cHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5jcHAKaW5kZXggMzVmYTZlMzI3N2ZiMGQ0YmUwZTBlMWVkYzQzNzIyZWRhZGZjOGFmMi4u
OWZhZWM5NTljMzlkMTc0ODE4MWM5ODY1MDAzZDVhODZmMTdmNWUzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3Bw
CkBAIC00OSwxMSArNDksMTEgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICAmamF2YVNj
cmlwdFJ1bnRpbWVGbGFncywKICAgICBudWxscHRyLCAvLyBxdWV1ZU1pY3JvdGFza1RvRXZlbnRM
b29wCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9h
ZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZldGNoCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMKLSAgICBudWxscHRy
LCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUs
CisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNoLAorICAg
ICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9kdWxlTG9h
ZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAogICAgICZyZXBvcnRV
bmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9u
T3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE4ZWFiMTIzYWVlZWIwMmU4YTI2Mzc4YjMyZTE5NTdkMzMzOTVjYWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlU2NyaXB0TG9hZGVyPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+TW9kdWxlU2NyaXB0TG9hZGVyKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBjbGVh
ckNsaWVudCgpCisgICAgeworICAgICAgICBBU1NFUlQobV9jbGllbnQpOworICAgICAgICBtX2Ns
aWVudCA9IG51bGxwdHI7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgTW9kdWxlU2NyaXB0TG9h
ZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50KQorICAgICAgICA6IG1fY2xpZW50
KCZjbGllbnQpCisgICAgeworICAgIH0KKworICAgIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCog
bV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY5OTVmNDhlZTNkMWUwMmMxZDhjOWM5ZGEyYmQ1ODIzNmYzYmEwN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlLCBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IE1vZHVsZVNjcmlwdExvYWRlcjsKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsKKworY2xhc3MgTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmlu
aXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSA9
IDA7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9k
dWxlTG9hZGVyLmNwcAppbmRleCBhYTViODBiNTg2Yjc5ZTBlNTc1MDFjZDUxMDc4ZGYyNWE2MjVl
NWQ5Li44MGU5YjEwYzRlMDJkNjJmMDhjNmNmMGI3MzRkMjY5MjJmNDY1NTRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTI5
LDcgKzI5LDYgQEAKICNpbmNsdWRlICJDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCIKICNpbmNs
dWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCi0j
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCkBAIC01Miw4ICs1
MSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2NyaXB0TW9kdWxlTG9hZGVyOjpTY3Jp
cHRNb2R1bGVMb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChkb2N1
bWVudCkKK1NjcmlwdE1vZHVsZUxvYWRlcjo6U2NyaXB0TW9kdWxlTG9hZGVyKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIE93bmVyVHlwZSBvd25lclR5cGUpCisgICAgOiBtX2NvbnRl
eHQoY29udGV4dCkKKyAgICAsIG1fb3duZXJUeXBlKG93bmVyVHlwZSkKIHsKIH0KIApAQCAtNjgs
NyArNjgsNyBAQCBzdGF0aWMgYm9vbCBpc1Jvb3RNb2R1bGUoSlNDOjpKU1ZhbHVlIGltcG9ydGVy
TW9kdWxlS2V5KQogICAgIHJldHVybiBpbXBvcnRlck1vZHVsZUtleS5pc1N5bWJvbCgpIHx8IGlt
cG9ydGVyTW9kdWxlS2V5LmlzVW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBFeHBlY3RlZDxVUkws
IFN0cmluZz4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgc3BlY2lmaWVyLCBjb25zdCBVUkwmIGJhc2VVUkwpCitzdGF0aWMgRXhwZWN0ZWQ8
VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGUgb3duZXJUeXBlLCBjb25z
dCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3QgVVJMJiBiYXNlVVJMKQogewogICAgIC8vIGh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNyZXNvbHZl
LWEtbW9kdWxlLXNwZWNpZmllcgogCkBAIC03OSw3ICs3OSwxMiBAQCBzdGF0aWMgRXhwZWN0ZWQ8
VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBTdAogICAgIGlmICghc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy8nKSAmJiAhc3BlY2lmaWVy
LnN0YXJ0c1dpdGgoIi4vIikgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLi8iKSkKICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1vZHVsZSBzcGVjaWZpZXIsICci
X3MsIHNwZWNpZmllciwgIicgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBc
Ii4uL1wiLiBSZWZlcmVuY2VkIGZyb20gIl9zLCBiYXNlVVJMLnN0cmluZygpKSk7CiAKLSAgICBh
dXRvIHJlc3VsdCA9IGRvY3VtZW50LmNvbXBsZXRlVVJMKHNwZWNpZmllciwgYmFzZVVSTCk7Cisg
ICAgVVJMIHJlc3VsdDsKKyAgICBpZiAob3duZXJUeXBlID09IFNjcmlwdE1vZHVsZUxvYWRlcjo6
T3duZXJUeXBlOjpEb2N1bWVudCkKKyAgICAgICAgcmVzdWx0ID0gZG93bmNhc3Q8RG9jdW1lbnQ+
KGNvbnRleHQpLmNvbXBsZXRlVVJMKHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgZWxzZQorICAg
ICAgICByZXN1bHQgPSBVUkwoYmFzZVVSTCwgc3BlY2lmaWVyKTsKKwogICAgIGlmICghcmVzdWx0
LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1v
ZHVsZSBuYW1lLCAnIl9zLCByZXN1bHQuc3RyaW5nKCksICInIGRvZXMgbm90IHJlc29sdmUgdG8g
YSB2YWxpZCBVUkwuIl9zKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTEwNyw3ICsxMTIsNyBA
QCBKU0M6OklkZW50aWZpZXIgU2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LAogICAgIFVSTCBiYXNlVVJMID0gcmVzcG9uc2VVUkxG
cm9tUmVxdWVzdFVSTCgqanNHbG9iYWxPYmplY3QsIGltcG9ydGVyTW9kdWxlS2V5KTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgYXV0byByZXN1bHQgPSByZXNv
bHZlTW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAg
YXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fY29udGV4dCwgbV9vd25lclR5
cGUsIHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgSlND
Ojp0aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9iamVjdCwgc2NvcGUsIHJlc3VsdC5lcnJvcigpKTsK
ICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE2MSwxMyArMTY2LDE5IEBAIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCog
anNHbG9iYWxPCiAgICAgaWYgKGF1dG8qIHNjcmlwdEZldGNoUGFyYW1ldGVycyA9IEpTQzo6anNE
eW5hbWljQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzKj4odm0sIHBhcmFtZXRlcnMp
KQogICAgICAgICB0b3BMZXZlbEZldGNoUGFyYW1ldGVycyA9IHN0YXRpY19jYXN0PE1vZHVsZUZl
dGNoUGFyYW1ldGVycyo+KCZzY3JpcHRGZXRjaFBhcmFtZXRlcnMtPnBhcmFtZXRlcnMoKSk7CiAK
LSAgICBhdXRvIGxvYWRlciA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlz
LCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19jYXN0PENhY2hlZFNjcmlwdEZldGNoZXIqPihKU0M6
OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hlcio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkp
LCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzKSk7Ci0gICAgbV9sb2FkZXJzLmFkZChs
b2FkZXIuY29weVJlZigpKTsKLSAgICBpZiAoIWxvYWRlci0+bG9hZChtX2RvY3VtZW50LCBjb21w
bGV0ZWRVUkwpKSB7Ci0gICAgICAgIGxvYWRlci0+Y2xlYXJDbGllbnQoKTsKLSAgICAgICAgbV9s
b2FkZXJzLnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOwotICAgICAgICByZWplY3RUb1Byb3BhZ2F0
ZU5ldHdvcmtFcnJvcihkZWZlcnJlZC5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2Fz
RXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7Ci0gICAgICAg
IHJldHVybiBqc1Byb21pc2U7CisgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9j
dW1lbnQpIHsKKyAgICAgICAgYXV0byBsb2FkZXIgPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6
OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRG
ZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNoZXIqPihzY3JpcHRGZXRjaGVy
KS0+ZmV0Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFyYW1ldGVycykpOworICAgICAg
ICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOworICAgICAgICBpZiAoIWxvYWRlci0+
bG9hZChkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KSwgV1RGTW92ZShjb21wbGV0ZWRVUkwp
KSkgeworICAgICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOworICAgICAgICAgICAgbV9s
b2FkZXJzLnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOworICAgICAgICAgICAgcmVqZWN0VG9Qcm9w
YWdhdGVOZXR3b3JrRXJyb3IoZGVmZXJyZWQuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6
Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOworICAg
ICAgICAgICAgcmV0dXJuIGpzUHJvbWlzZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAg
ICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMs
IGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlcio+KEpTQzo6
anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSks
IFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKKyAgICAgICAgbV9sb2FkZXJzLmFk
ZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgbG9hZGVyLT5sb2FkKG1fY29udGV4dCwgV1RG
TW92ZShjb21wbGV0ZWRVUkwpKTsKICAgICB9CiAKICAgICByZXR1cm4ganNQcm9taXNlOwpAQCAt
MTc2LDcgKzE4Nyw3IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRl
cjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPCiBVUkwgU2NyaXB0TW9kdWxl
TG9hZGVyOjptb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QsIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSkKIHsKICAgICBpZiAobW9kdWxlS2V5VmFsdWUuaXNT
eW1ib2woKSkKLSAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQudXJsKCk7CisgICAgICAgIHJldHVy
biBtX2NvbnRleHQudXJsKCk7CiAKICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmco
KSk7CiAgICAgcmV0dXJuIFVSTChVUkwoKSwgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1
ZSgmanNHbG9iYWxPYmplY3QpKTsKQEAgLTE4Nyw4ICsxOTgsMTEgQEAgVVJMIFNjcmlwdE1vZHVs
ZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiBq
c0dsb2JhbE8KICAgICBKU0M6OlZNJiB2bSA9IGpzR2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgaWYgKGlzUm9vdE1vZHVs
ZShtb2R1bGVLZXlWYWx1ZSkpCi0gICAgICAgIHJldHVybiBtX2RvY3VtZW50LmJhc2VVUkwoKTsK
KyAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkgeworICAgICAgICBpZiAobV9v
d25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5iYXNlVVJMKCk7CisgICAgICAgIHJldHVybiBtX2Nv
bnRleHQudXJsKCk7CisgICAgfQogCiAgICAgQVNTRVJUKCFpc1Jvb3RNb2R1bGUobW9kdWxlS2V5
VmFsdWUpKTsKICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CkBAIC0yMTks
OCArMjMzLDE0IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKCiAgICAgaWYgKCFzb3VyY2VVUkwu
aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9i
amVjdCwgc2NvcGUsICJNb2R1bGUga2V5IGlzIGFuIGludmFsaWQgVVJMLiJfcyk7CiAKLSAgICBp
ZiAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFt
ZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAg
ICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBpZiAo
YXV0byogZnJhbWUgPSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5mcmFtZSgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkws
ICptb2R1bGVSZWNvcmQpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChpczxXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZT4obV9jb250ZXh0KSk7CisgICAgICAgIGlmIChhdXRvKiBzY3Jp
cHQgPSBkb3duY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZT4obV9jb250ZXh0KS5zY3Jp
cHQoKSkKKyAgICAgICAgICAgIHJldHVybiBzY3JpcHQtPmV2YWx1YXRlTW9kdWxlKCptb2R1bGVS
ZWNvcmQpOworICAgIH0KICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwogfQogCkBAIC0y
NDgsMjMgKzI2OCwzNiBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2Fk
ZXI6OmltcG9ydE1vZHVsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqcwogICAgIFVSTCBiYXNlVVJM
OwogICAgIFJlZlB0cjxKU0M6OlNjcmlwdEZldGNoZXI+IHNjcmlwdEZldGNoZXI7CiAgICAgaWYg
KHNvdXJjZU9yaWdpbi5pc051bGwoKSkgewotICAgICAgICBiYXNlVVJMID0gbV9kb2N1bWVudC5i
YXNlVVJMKCk7Ci0gICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpj
cmVhdGUobV9kb2N1bWVudC5jaGFyc2V0KCkpOworICAgICAgICBTdHJpbmcgY2hhcnNldDsKKyAg
ICAgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAg
ICAgIGJhc2VVUkwgPSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5iYXNlVVJMKCk7Cisg
ICAgICAgICAgICBjaGFyc2V0ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuY2hhcnNl
dCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFzZVVSTCA9IG1fY29udGV4dC51
cmwoKTsKKyAgICAgICAgICAgIGNoYXJzZXQgPSAidXRmLTgiX3M7CisgICAgICAgIH0KKyAgICAg
ICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShXVEZNb3ZlKGNo
YXJzZXQpKTsKICAgICB9IGVsc2UgewogICAgICAgICBiYXNlVVJMID0gVVJMKFVSTCgpLCBzb3Vy
Y2VPcmlnaW4uc3RyaW5nKCkpOwogICAgICAgICBpZiAoIWJhc2VVUkwuaXNWYWxpZCgpKQogICAg
ICAgICAgICAgcmV0dXJuIHJlamVjdFByb21pc2UoZ2xvYmFsT2JqZWN0LCBUeXBlRXJyb3IsICJJ
bXBvcnRlciBtb2R1bGUga2V5IGlzIG5vdCBhIFN5bWJvbCBvciBhIFN0cmluZy4iX3MpOwogCisg
ICAgICAgIFN0cmluZyBjaGFyc2V0OworICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJU
eXBlOjpEb2N1bWVudCkKKyAgICAgICAgICAgIGNoYXJzZXQgPSBkb3duY2FzdDxEb2N1bWVudD4o
bV9jb250ZXh0KS5jaGFyc2V0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNoYXJzZXQg
PSAidXRmLTgiX3M7CisKICAgICAgICAgaWYgKHNvdXJjZU9yaWdpbi5mZXRjaGVyKCkpCiAgICAg
ICAgICAgICBzY3JpcHRGZXRjaGVyID0gc291cmNlT3JpZ2luLmZldGNoZXIoKTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNy
ZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7CisgICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0g
Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKFdURk1vdmUoY2hhcnNldCkpOwogICAgIH0KICAg
ICBBU1NFUlQoYmFzZVVSTC5pc1ZhbGlkKCkpOwogICAgIEFTU0VSVChzY3JpcHRGZXRjaGVyKTsK
IAogICAgIGF1dG8gc3BlY2lmaWVyID0gbW9kdWxlTmFtZS0+dmFsdWUoanNHbG9iYWxPYmplY3Qp
OwotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2RvY3VtZW50LCBz
cGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNp
ZmllcihtX2NvbnRleHQsIG1fb3duZXJUeXBlLCBzcGVjaWZpZXIsIGJhc2VVUkwpOwogICAgIGlm
ICghcmVzdWx0KQogICAgICAgICByZXR1cm4gcmVqZWN0UHJvbWlzZShnbG9iYWxPYmplY3QsIFR5
cGVFcnJvciwgcmVzdWx0LmVycm9yKCkpOwogCkBAIC0yODgsNjIgKzMyMSw5OCBAQCBKU0M6OkpT
T2JqZWN0KiBTY3JpcHRNb2R1bGVMb2FkZXI6OmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpT
Qzo6SlNHbG9iYWxPYmplYwogICAgIHJldHVybiBtZXRhUHJvcGVydGllczsKIH0KIAotdm9pZCBT
Y3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ciYgbG9hZGVyLCBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBwcm9taXNlKQordm9pZCBTY3JpcHRN
b2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2Ny
aXB0TG9hZGVyLCBVUkwmJiBzb3VyY2VVUkwsIFJlZjxEZWZlcnJlZFByb21pc2U+IHByb21pc2Up
CiB7CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBw
YXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKIAotICAgIFVSTCBzb3VyY2VV
UkwgPSBsb2FkZXIuc291cmNlVVJMKCk7Ci0gICAgaWYgKCFtX2xvYWRlcnMucmVtb3ZlKCZsb2Fk
ZXIpKQorICAgIGlmICghbV9sb2FkZXJzLnJlbW92ZSgmbW9kdWxlU2NyaXB0TG9hZGVyKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIGxvYWRlci5jbGVhckNsaWVudCgpOworICAgIG1vZHVsZVNjcmlw
dExvYWRlci5jbGVhckNsaWVudCgpOwogCi0gICAgYXV0byYgY2FjaGVkU2NyaXB0ID0gKmxvYWRl
ci5jYWNoZWRTY3JpcHQoKTsKKyAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1
bWVudCkgeworICAgICAgICBhdXRvJiBsb2FkZXIgPSBzdGF0aWNfY2FzdDxDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXImPihtb2R1bGVTY3JpcHRMb2FkZXIpOworICAgICAgICBhdXRvJiBjYWNoZWRT
Y3JpcHQgPSAqbG9hZGVyLmNhY2hlZFNjcmlwdCgpOwogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC5y
ZXNvdXJjZUVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KFR5cGVFcnJvciwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3Mt
T3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQucmVzb3VyY2VFcnJvcigpLmlzQWNjZXNzQ29u
dHJvbCgpKSB7CisgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCAiQ3Jvc3Mt
b3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmlu
ZyBwb2xpY3kuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYg
KGNhY2hlZFNjcmlwdC5lcnJvck9jY3VycmVkKCkpIHsKLSAgICAgICAgcmVqZWN0VG9Qcm9wYWdh
dGVOZXR3b3JrRXJyb3IoKnByb21pc2UsIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9y
ZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQorICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LmVycm9yT2NjdXJyZWQoKSkgewor
ICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwg
TW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBz
Y3JpcHQgZmFpbGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAg
IGlmIChjYWNoZWRTY3JpcHQud2FzQ2FuY2VsZWQoKSkgewotICAgICAgICByZWplY3RUb1Byb3Bh
Z2F0ZU5ldHdvcmtFcnJvcigqcHJvbWlzZSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2Fu
Y2VsZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQud2FzQ2FuY2VsZWQo
KSkgeworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5n
ZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcgYSBt
b2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KIAotICAgIGlmICghTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0
TUlNRVR5cGUoY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSkpIHsKLSAgICAgICAg
Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1s
I2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKLSAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBl
eHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3Jp
bmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCi0gICAgICAgIC8v
IEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGZldGNoaW5nIGEgY2xhc3NpYyBzY3JpcHQgZG9lcyBu
b3QgaW5jbHVkZSBNSU1FIHR5cGUgY2hlY2tpbmcuIEluIGNvbnRyYXN0LCBtb2R1bGUgc2NyaXB0
cyB3aWxsIGZhaWwgdG8gbG9hZCBpZiB0aGV5IGFyZSBub3Qgb2YgYSBjb3JyZWN0IE1JTUUgdHlw
ZS4KLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGNh
Y2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFT
Y3JpcHQgTUlNRSB0eXBlLiIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYg
KCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjYWNoZWRT
Y3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpKSkgeworICAgICAgICAgICAgLy8gaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2lu
Z2xlLW1vZHVsZS1zY3JpcHQKKyAgICAgICAgICAgIC8vIFRoZSByZXN1bHQgb2YgZXh0cmFjdGlu
ZyBhIE1JTUUgdHlwZSBmcm9tIHJlc3BvbnNlJ3MgaGVhZGVyIGxpc3QgKGlnbm9yaW5nIHBhcmFt
ZXRlcnMpIGlzIG5vdCBhIEphdmFTY3JpcHQgTUlNRSB0eXBlLgorICAgICAgICAgICAgLy8gRm9y
IGhpc3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBkb2VzIG5vdCBp
bmNsdWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBzY3JpcHRzIHdp
bGwgZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlNRSB0eXBlLgor
ICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGNh
Y2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFT
Y3JpcHQgTUlNRSB0eXBlLiIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0g
ICAgaWYgKGF1dG8qIHBhcmFtZXRlcnMgPSBsb2FkZXIucGFyYW1ldGVycygpKSB7Ci0gICAgICAg
IGlmICghbWF0Y2hJbnRlZ3JpdHlNZXRhZGF0YShjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmlu
dGVncml0eSgpKSkgewotICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFr
ZVN0cmluZygiQ2Fubm90IGxvYWQgc2NyaXB0ICIsIGludGVncml0eU1pc21hdGNoRGVzY3JpcHRp
b24oY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpKTsKKyAgICAgICAgaWYg
KGF1dG8qIHBhcmFtZXRlcnMgPSBsb2FkZXIucGFyYW1ldGVycygpKSB7CisgICAgICAgICAgICBp
ZiAoIW1hdGNoSW50ZWdyaXR5TWV0YWRhdGEoY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRl
Z3JpdHkoKSkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBt
YWtlU3RyaW5nKCJDYW5ub3QgbG9hZCBzY3JpcHQgIiwgaW50ZWdyaXR5TWlzbWF0Y2hEZXNjcmlw
dGlvbihjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFVSTCBy
ZXNwb25zZVVSTCA9IGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpOworICAgICAgICAvLyBJ
ZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2Ug
VVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVy
bCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KKyAg
ICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRpcmVj
dGlvbnMuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTg0MjAKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMDQ5MAorICAgICAgICBpZiAoIWNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlvbnMoKSAm
JiBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5zb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpT
b3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJh
Z21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21l
bnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgICAgIH0K
KworICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3Ry
aW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdp
dGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAg
ICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qu
dm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2Rl
IHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwg
bG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOworICAgICAgICB9KTsK
KyAgICB9IGVsc2UgeworICAgICAgICBhdXRvJiBsb2FkZXIgPSBzdGF0aWNfY2FzdDxXb3JrZXJN
b2R1bGVTY3JpcHRMb2FkZXImPihtb2R1bGVTY3JpcHRMb2FkZXIpOworICAgICAgICBhdXRvJiB3
b3JrZXJTY3JpcHRMb2FkZXIgPSBsb2FkZXIuc2NyaXB0TG9hZGVyKCk7CisKKyAgICAgICAgaWYg
KHdvcmtlclNjcmlwdExvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgaWYgKHdvcmtlclNj
cmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CisgICAgICAgICAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5p
ZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod29ya2Vy
U2NyaXB0TG9hZGVyLmVycm9yKCkuaXNDYW5jZWxsYXRpb24oKSkgeworICAgICAgICAgICAgICAg
IHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNo
RmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBpcyBj
YW5jZWxlZC4iX3MpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwg
TW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBz
Y3JpcHQgZmFpbGVkLiJfcyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9
CiAKLSAgICBVUkwgcmVzcG9uc2VVUkwgPSBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKTsK
LSAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRo
ZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVz
cG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlD
YWNoZS4KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNrIGZyYWdtZW50cyB0aHJvdWdoIHJl
ZGlyZWN0aW9ucy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU4NDIwCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMDQ5MAotICAgIGlmICghY2FjaGVkU2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpICYmIGNhY2hl
ZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6
U2VydmljZVdvcmtlcikgewotICAgICAgICBpZiAoc291cmNlVVJMLmhhc0ZyYWdtZW50SWRlbnRp
ZmllcigpKQotICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNv
dXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgfQorICAgICAgICBpZiAoIU1JTUVU
eXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKHdvcmtlclNjcmlwdExv
YWRlci5yZXNwb25zZU1JTUVUeXBlKCkpKSB7CisgICAgICAgICAgICAvLyBodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUt
bW9kdWxlLXNjcmlwdAorICAgICAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEg
TUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVy
cykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCisgICAgICAgICAgICAvLyBGb3IgaGlz
dG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1
ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBm
YWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCisgICAg
ICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2Vy
U2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlNRVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNj
cmlwdCBNSU1FIHR5cGUuIikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAg
ICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIFdU
Rk1vdmUocmVzcG9uc2VVUkwpKTsKLSAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsm
XSAoSlNET01HbG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7Ci0gICAgICAgIHJldHVybiBK
U0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCi0gICAgICAgICAg
ICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hlZFNjcmlwdCwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIo
KSB9LmpzU291cmNlQ29kZSgpIH0pOwotICAgIH0pOworICAgICAgICBVUkwgcmVzcG9uc2VVUkwg
PSB3b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VVUkwoKTsKKworICAgICAgICBtX3JlcXVlc3RV
UkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIHJlc3BvbnNlVVJMKTsK
KyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2Jq
ZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VD
b2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6OlNv
dXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0TG9hZGVyLnNjcmlwdCgp
LCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkgfSk7Cisg
ICAgICAgIH0pOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRNb2R1bGVMb2FkZXIuaAppbmRleCBkZTI5ZDJmNGJmMDk2YjYwYzM2OTk4MDMxNmMx
NDg2YjI4MmFiZjA5Li5kZjM0ZDU1MWExMWNkOThmNGUyMzZhMmFhMWY0ODI3OWQ5NjRjNjg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaApA
QCAtMjUsOCArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIk1vZHVsZVNj
cmlwdExvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgpAQCAtNDUsMTYgKzQ1LDE3IEBAIGNsYXNzIFNvdXJjZU9yaWdpbjsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZp
bmFsIDogcHJpdmF0ZSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworY2xhc3MgU2Ny
aXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNjcmlwdE1vZHVsZUxvYWRlcik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRl
cihEb2N1bWVudCYpOworICAgIGVudW0gY2xhc3MgT3duZXJUeXBlIDogdWludDhfdCB7IERvY3Vt
ZW50LCBXb3JrZXJPcldvcmtsZXQgfTsKKyAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE93bmVyVHlwZSk7CiAgICAgflNjcmlwdE1vZHVsZUxv
YWRlcigpOwogCi0gICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsg
fQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRl
eHQ7IH0KIAogICAgIEpTQzo6SWRlbnRpZmllciByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNW
YWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwogICAg
IEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTYzLDEzICs2NCwxNSBA
QCBjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudCB7CiAgICAgSlNDOjpKU09iamVjdCogY3JlYXRlSW1wb3J0TWV0YVBy
b3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTVmFsdWUsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwogCiBwcml2YXRl
OgotICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVm
UHRyPERlZmVycmVkUHJvbWlzZT4pIGZpbmFsOworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoTW9k
dWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSBmaW5hbDsKKwog
ICAgIFVSTCBtb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAg
ICAgVVJMIHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpT
Qzo6SlNWYWx1ZSk7CiAKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBtX2NvbnRleHQ7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1
ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKLSAgICBIYXNoU2V0PFJlZjxDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXI+PiBtX2xvYWRlcnM7CisgICAgSGFzaFNldDxSZWY8TW9kdWxlU2NyaXB0TG9hZGVy
Pj4gbV9sb2FkZXJzOworICAgIE93bmVyVHlwZSBtX293bmVyVHlwZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2ZmU3ZTc3ZThmOTllZTM5
MDMyNGQyNzM0MGM1NDRkYjJiZDRlOWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCkBAIC0wLDAgKzEsODkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyLmgiCisKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCisj
aW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2lu
Y2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVy
T3B0aW9ucy5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3Jp
cHRNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5jbHVk
ZSAiV29ya2VyU2NyaXB0TG9hZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlcj4gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUo
TW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlz
ZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNo
UGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdU
Rk1vdmUocGFyYW1ldGVycykpKTsKK30KKworV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpXb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERl
ZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hl
ciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQorICAgIDogTW9k
dWxlU2NyaXB0TG9hZGVyKGNsaWVudCkKKyAgICAsIG1fcHJvbWlzZSgmcHJvbWlzZSkKKyAgICAs
IG1fc2NyaXB0RmV0Y2hlcihzY3JpcHRGZXRjaGVyKQorICAgICwgbV9wYXJhbWV0ZXJzKFdURk1v
dmUocGFyYW1ldGVycykpCisgICAgLCBtX3NjcmlwdExvYWRlcihXb3JrZXJTY3JpcHRMb2FkZXI6
OmNyZWF0ZSgpKQoreworfQorCitXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6On5Xb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXIoKQoreworICAgIG1fc2NyaXB0TG9hZGVyLT5jYW5jZWwoKTsKK30KKwor
Ym9vbCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgVVJMJiYgc291cmNlVVJMKQoreworICAgIG1fc291cmNlVVJMID0gV1RGTW92
ZShzb3VyY2VVUkwpOworCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBtX3NvdXJjZVVS
TCB9OworCisgICAgRmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKKyAgICBmZXRjaE9wdGlvbnMu
bW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKKyAgICBmZXRjaE9wdGlvbnMuY2FjaGUg
PSBGZXRjaE9wdGlvbnM6OkNhY2hlOjpEZWZhdWx0OworICAgIGZldGNoT3B0aW9ucy5yZWRpcmVj
dCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZvbGxvdzsKKyAgICAvLyBGSVhNRTogUHJvcGFn
YXRlIGNyZWRlbnRpYWxzLgorICAgIC8vIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9IHNjcmlw
dEZldGNoSm9iLmNyZWRlbnRpYWxzOworICAgIGF1dG8gY29udGVudFNlY3VyaXR5UG9saWN5RW5m
b3JjZW1lbnQgPSBjb250ZXh0LnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBv
bGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSA6
IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ2hpbGRTcmNEaXJlY3Rp
dmU7CisKKyAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdU
Rk1vdmUocmVxdWVzdCksIFdURk1vdmUoZmV0Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9s
aWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZTo6QWxsLCAqdGhpcyk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5p
c2hlZCgpCit7CisgICAgQVNTRVJUKG1fcHJvbWlzZSk7CisKKyAgICBhdXRvIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50
LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJjZVVSTCksIG1fcHJvbWlzZS5y
ZWxlYXNlTm9uTnVsbCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNGQ5NzdiZjFj
MDQyZDcwNTU5NzJkZWJjYjQ0MWY5ODFmOGIyMTFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgKQEAgLTAsMCAr
MSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTW9kdWxlU2Ny
aXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBEZWZlcnJlZFByb21pc2U7CitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2Ns
YXNzIE1vZHVsZUZldGNoUGFyYW1ldGVyczsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFzcyBXb3JrZXJTY3JpcHRMb2Fk
ZXI7CisKK2NsYXNzIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBNb2R1
bGVTY3JpcHRMb2FkZXIsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNo
ZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKworICAgIHZpcnR1YWwgfldv
cmtlck1vZHVsZVNjcmlwdExvYWRlcigpOworCisgICAgYm9vbCBsb2FkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBVUkwmJiBzb3VyY2VVUkwpOworCisgICAgQ2FjaGVkU2NyaXB0RmV0Y2hlciYg
c2NyaXB0RmV0Y2hlcigpIHsgcmV0dXJuIG1fc2NyaXB0RmV0Y2hlci5nZXQoKTsgfQorICAgIE1v
ZHVsZUZldGNoUGFyYW1ldGVycyogcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5n
ZXQoKTsgfQorICAgIFdvcmtlclNjcmlwdExvYWRlciYgc2NyaXB0TG9hZGVyKCkgeyByZXR1cm4g
bV9zY3JpcHRMb2FkZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBXb3JrZXJNb2R1bGVTY3Jp
cHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2Fj
aGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOworCisg
ICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoKSBmaW5hbDsKKwor
ICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IG1fcHJvbWlzZTsKKyAgICBSZWY8Q2FjaGVkU2Ny
aXB0RmV0Y2hlcj4gbV9zY3JpcHRGZXRjaGVyOworICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFt
ZXRlcnM+IG1fcGFyYW1ldGVyczsKKyAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3Njcmlw
dExvYWRlcjsKKyAgICBVUkwgbV9zb3VyY2VVUkw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBkY2QzYWExYzdjNTcyZTY4Mzk1Y2MwNWRh
OGM4M2ZmMjBiMjZiMDM4Li5hZDExNDk0ZWRlNDRkNDA4OTA1NzUzMjdiOTU2MDgyYTNmNTk1Nzk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYxNSw3ICs2MTUsNyBAQCBEb2N1bWVudDo6
RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVS
TCYgdXJsLCBEb2N1bQogICAgICwgbV9kb2N1bWVudENyZWF0aW9uVGltZShNb25vdG9uaWNUaW1l
Ojpub3coKSkKICNlbmRpZgogICAgICwgbV9zY3JpcHRSdW5uZXIobWFrZVVuaXF1ZTxTY3JpcHRS
dW5uZXI+KCp0aGlzKSkKLSAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9k
dWxlTG9hZGVyPigqdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlcihtYWtlVW5pcXVlPFNjcmlw
dE1vZHVsZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlOjpEb2N1
bWVudCkpCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgLCBtX2FwcGx5UGVuZGluZ1hTTFRyYW5zZm9y
bXNUaW1lcigqdGhpcywgJkRvY3VtZW50OjphcHBseVBlbmRpbmdYU0xUcmFuc2Zvcm1zVGltZXJG
aXJlZCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9k
dWxlU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5j
cHAKaW5kZXggOWEyNWMxNjU4OGVlY2FkNjc4ZmI5MTFlYzg2MjJmNDI0MjU5MmI1YS4uNDhlYzA4
NTFhNDU3ZDliYTQ3NDczZmVjMjhkN2I0OTMxMmI3ODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCkBAIC04OCwxNiArODgsNCBAQCB2b2lkIExvYWRh
YmxlTW9kdWxlU2NyaXB0OjpleGVjdXRlKFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiAg
ICAgc2NyaXB0RWxlbWVudC5leGVjdXRlTW9kdWxlU2NyaXB0KCp0aGlzKTsKIH0KIAotdm9pZCBM
b2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYg
cm9vdFVSTCkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAg
ICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgcm9vdFVSTC5zdHJp
bmcoKSwgbV9wYXJhbWV0ZXJzLmNvcHlSZWYoKSk7Ci19Ci0KLXZvaWQgTG9hZGFibGVNb2R1bGVT
Y3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBz
b3VyY2VDb2RlKQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0g
ICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KCp0aGlzLCBzb3VyY2VDb2Rl
KTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAppbmRl
eCBiYjc5OTU0ZDdiOTliMGVkMDZiZmU1NWVmODU0ZWNjZTIxZjM1ODc3Li5kMjUzNTk2M2Y2NDhi
MDJhOGEwMWZkNjNiYjFlMzgxMzg2Y2VlNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFi
bGVNb2R1bGVTY3JpcHQuaApAQCAtNTAsMTUgKzUwLDE0IEBAIGNsYXNzIExvYWRhYmxlTW9kdWxl
U2NyaXB0IGZpbmFsIDogcHVibGljIExvYWRhYmxlU2NyaXB0IHsKIAogICAgIHZvaWQgc2V0RXJy
b3IoRXJyb3ImJik7CiAKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHJvb3RV
UkwpOwotICAgIHZvaWQgbG9hZChEb2N1bWVudCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsK
LQogICAgIHZvaWQgbm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYpOwogICAg
IHZvaWQgbm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3ImJik7CiAgICAgdm9p
ZCBub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKIAogICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1
bGVLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQogCisgICAgTW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgp
OyB9CisKIHByaXZhdGU6CiAgICAgTG9hZGFibGVNb2R1bGVTY3JpcHQoY29uc3QgU3RyaW5nJiBu
b25jZSwgY29uc3QgU3RyaW5nJiBpbnRlZ3JpdHksIFJlZmVycmVyUG9saWN5LCBjb25zdCBTdHJp
bmcmIGNyb3NzT3JpZ2luTW9kZSwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBBdG9tU3Ry
aW5nJiBpbml0aWF0b3JOYW1lLCBib29sIGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDA1NzU4YjYwMGM3NTIyYjQ3ZjM2NGJh
NmExOGQzNWYxNzMxMTA3ZjkuLjVlOTlmMGY1Nzc3YjNiMjE1OGRkMGZhNGJjMzgyNzc2Y2RiMzQ4
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAK
ICNpbmNsdWRlICJMb2FkYWJsZUNsYXNzaWNTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJN
b2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5j
bHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxl
bWVudC5oIgpAQCAtMzUxLDggKzM1MiwxMSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RN
b2R1bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAg
ICAgICAgICAgc2NyaXB0Q2hhcnNldCgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmxvY2FsTmFt
ZSgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOwot
ICAgICAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIG1vZHVsZVNjcmlwdFJv
b3RVUkwpOwogICAgICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKSB7Cisg
ICAgICAgICAgICBhdXRvJiBzY3JpcHQgPSBkb3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4o
Km1fbG9hZGFibGVTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxv
YWRNb2R1bGVTY3JpcHQoc2NyaXB0LCBtb2R1bGVTY3JpcHRSb290VVJMLnN0cmluZygpLCBtYWtl
UmVmKHNjcmlwdC5wYXJhbWV0ZXJzKCkpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKQEAgLTM2Nyw4ICszNzEsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVl
c3RNb2R1bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQog
ICAgIGlmICghY29udGVudFNlY3VyaXR5UG9saWN5LmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVu
dC5kb2N1bWVudCgpLnVybCgpLnN0cmluZygpLCBtX3N0YXJ0TGluZU51bWJlciwgc291cmNlQ29k
ZS5zb3VyY2UoKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCksIGhhc0tub3duTm9uY2UpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50
KCksIHNvdXJjZUNvZGUpOwogICAgIG1fbG9hZGFibGVTY3JpcHQgPSBXVEZNb3ZlKHNjcmlwdCk7
CisgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAg
ICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoZG93bmNhc3Q8TG9hZGFibGVN
b2R1bGVTY3JpcHQ+KCptX2xvYWRhYmxlU2NyaXB0LmdldCgpKSwgc291cmNlQ29kZSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCA2MmY5MTdh
MzY3ODE5ZGVjM2NkNDEwZDk3NjY5NWNlZTYyZjZkNGI5Li43YzIyNDlhM2EyYWY5NTE4MjNhZTc5
OTVlYzEzNzFhZGZiYjE0YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC03MCw2
ICs3MCw4IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAgLCBtX2lkZW50aWZpZXIoIndv
cmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIo
KSkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNyZWF0ZSgq
dGhpcykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxhZ3MpCisgICAgLCBtX3R5cGUo
b3B0aW9ucy50eXBlKQorICAgICwgbV9jcmVkZW50aWFscyhvcHRpb25zLmNyZWRlbnRpYWxzKQog
ewogICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAgaWYgKCFhZGRlZExpc3RlbmVy
KSB7CkBAIC0xMTMsMTAgKzExNSwxMyBAQCBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gV29ya2Vy
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpSdQogCiAgICAg
RmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKICAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNo
T3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbjsKKyAgICBpZiAod29ya2VyLT5tX3R5cGUgPT0gV29y
a2VyVHlwZTo6TW9kdWxlKQorICAgICAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSB3b3Jr
ZXItPm1fY3JlZGVudGlhbHM7CiAgICAgZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25z
OjpDYWNoZTo6RGVmYXVsdDsKICAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlv
bnM6OlJlZGlyZWN0OjpGb2xsb3c7CiAgICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyOwotICAgIHdvcmtlci0+bV9zY3JpcHRMb2Fk
ZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNl
V29ya2Vyc01vZGU6OkFsbCwgd29ya2VyKTsKKyAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5s
b2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRj
aE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtl
cnNNb2RlOjpBbGwsIHdvcmtlci5nZXQoKSk7CisKICAgICByZXR1cm4gd29ya2VyOwogfQogCkBA
IC0yMTUsNyArMjIwLDcgQEAgdm9pZCBXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICBSZWZl
cnJlclBvbGljeSByZWZlcnJlclBvbGljeSA9IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZzsK
ICAgICBpZiAoYXV0byBwb2xpY3kgPSBwYXJzZVJlZmVycmVyUG9saWN5KG1fc2NyaXB0TG9hZGVy
LT5yZWZlcnJlclBvbGljeSgpLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6SFRUUEhlYWRlcikpCiAg
ICAgICAgIHJlZmVycmVyUG9saWN5ID0gKnBvbGljeTsKLSAgICBtX2NvbnRleHRQcm94eS5zdGFy
dFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0TG9hZGVyLT51cmwoKSwgbV9uYW1lLCBjb250ZXh0
LT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVybCgpKSwgaXNPbmxpbmUsIG1fc2NyaXB0TG9h
ZGVyLT5zY3JpcHQoKSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3No
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgbV93b3JrZXJDcmVhdGlv
blRpbWUsIHJlZmVycmVyUG9saWN5LCBtX3J1bnRpbWVGbGFncyk7CisgICAgbV9jb250ZXh0UHJv
eHkuc3RhcnRXb3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwg
Y29udGV4dC0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3Nj
cmlwdExvYWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cywgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2Vy
Q3JlYXRpb25UaW1lLCByZWZlcnJlclBvbGljeSwgbV90eXBlLCBtX2NyZWRlbnRpYWxzLCBtX3J1
bnRpbWVGbGFncyk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRl
ZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXIt
PnNjcmlwdCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXggNTNmNWU2ZmZmMjdj
OWZhM2U1YzBlMDFmMGY2YzQyYzZjYjZmOWQwZS4uMzhhNjIzYTk4ZGJhMzVmZjgwMTNjZDZmYzhj
ODVjODEwMjA1MDIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0yOSw5ICsyOSwxMSBA
QAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5j
bHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5o
IgogI2luY2x1ZGUgIlBvc3RNZXNzYWdlT3B0aW9ucy5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlw
dExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUuaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5o
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNTUsNiArNTcsOCBAQCBjbGFzcyBXb3Jr
ZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qs
IHByaXZhdGUgV29yawogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2VyKTsKIHB1Ymxp
YzoKICAgICBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgIFdvcmtlclR5cGUgdHlwZTsKKyAgICAg
ICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7CiAgICAgICAgIFN0cmluZyBu
YW1lOwogICAgIH07CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgT3B0aW9ucyYpOwpAQCAtNzksNiArODMsOCBAQCBjbGFzcyBXb3JrZXIgZmlu
YWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZh
dGUgV29yawogICAgIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZv
aWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKTsKICNlbmRpZgogCisgICAgV29ya2VyVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29u
c3QgT3B0aW9ucyYpOwogCkBAIC0xMTIsNiArMTE4LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDog
cHVibGljIEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdv
cmsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBIYXNoU2V0PFN0cmluZz4gbV90cmFuc2Zvcm1l
cnM7CiAjZW5kaWYKKyAgICBXb3JrZXJUeXBlIG1fdHlwZSB7IFdvcmtlclR5cGU6OkNsYXNzaWMg
fTsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzIHsgRmV0Y2hSZXF1
ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAppbmRleCA0NWQ2YTA4Njc4NTRlZTQwNGRlN2U3
ZDAxMjQ4Y2ViZjQ0ZGNhN2VkLi43MDIxNzk2ZGY1MDRhZGY4ZTZiOTU4OWFjZTlmMTQ0ODIxZjI5
NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCkBAIC0zOCw2ICszOCw4IEBACiB9Owog
CiBkaWN0aW9uYXJ5IFdvcmtlck9wdGlvbnMgeworICAgIFdvcmtlclR5cGUgdHlwZSA9ICJjbGFz
c2ljIjsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscyA9ICJzYW1lLW9y
aWdpbiI7IC8vIGNyZWRlbnRpYWxzIGlzIG9ubHkgdXNlZCBpZiB0eXBlIGlzICJtb2R1bGUiCiAg
ICAgRE9NU3RyaW5nIG5hbWUgPSAiIjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaAppbmRleCA0NmQ0OWQ5NGM1MjM4ZTQ2ODhkMzk1ZDg3YzIwNjNlYjU3
MjBkMWJmLi4zODQxYTc4MWQ4NWQxNjBkNDAzNmNmMDBiN2QwZTM5ZTAwZWExYWRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0xNjMsOCArMTYzLDYg
QEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2Vy
R2xvYmFsU2NvcGU+LCBwdWJsaWMgQmFzZTYKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJMb2Nh
dGlvbj4gbV9sb2NhdGlvbjsKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJOYXZpZ2F0b3I+IG1f
bmF2aWdhdG9yOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXI+IG1fc2NyaXB0OwotCiAgICAgYm9vbCBtX2lzT25saW5lOwogICAgIGJvb2wgbV9z
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNDAwMDNjM2Uw
MTA5OTk2MGY2NDc4NjFlNzAxNjg3ZDBlMzcxZDcyZC4uN2I5MWQ3NTNkMWM5ZDcyOWFlNTA4NjU0
YzJlODVmNzY3OTFlMDA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZVByb3h5LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2Nv
cGVQcm94eSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdvcmtlckdsb2JhbFNjb3BlUHJveHkmIGNy
ZWF0ZShXb3JrZXImKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3Bl
KGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4s
IFJlZmVycmVyUG9saWN5LCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBN
b25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHdvcmtl
clR5cGUsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVG
bGFncykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKE1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tU
b1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
PiYmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwCmluZGV4IDE5ZDRiZTY0OTkyZjMwZDNjY2U3NjU0N2EzZDIyMThhOThjODQyYzMuLjc4
ODM1ODdhN2FmNjIwOWUzZWNjOGU3YjQxYmFkNDdhZGY2MjI0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC03Myw3ICs3Myw3IEBA
IFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8
fCAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGRv
d25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJl
YWQoKS50aHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpKTsKIH0KIAotdm9pZCBXb3JrZXJN
ZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVS
TCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09u
bGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywg
Ym9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25p
Y1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVu
dGltZUZsYWdzIHJ1bnRpbWVGbGFncykKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0
V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYg
c291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJl
ZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNo
UmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1l
RmxhZ3MpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZCB0byBiZSByZXZpc2l0ZWQgd2hlbiB3
ZSBzdXBwb3J0IG5lc3RlZCB3b3JrZXIgb25lIGRheQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOwpAQCAtODksNyArODksNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5
OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAog
CiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyID0gZG9jdW1lbnQuc29ja2V0UHJv
dmlkZXIoKTsKIAotICAgIFdvcmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5h
bWUsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LCB0aW1lT3JpZ2luLCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMo
KSB9OworICAgIFdvcmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlk
ZW50aWZpZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0
aW1lT3JpZ2luLCByZWZlcnJlclBvbGljeSwgd29ya2VyVHlwZSwgY3JlZGVudGlhbHMsIGRvY3Vt
ZW50LnNldHRpbmdzVmFsdWVzKCkgfTsKICAgICBhdXRvIHRocmVhZCA9IERlZGljYXRlZFdvcmtl
clRocmVhZDo6Y3JlYXRlKHBhcmFtcywgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAqdGhpcywg
c3RhcnRNb2RlLCBkb2N1bWVudC50b3BPcmlnaW4oKSwgcHJveHksIHNvY2tldFByb3ZpZGVyLCBy
dW50aW1lRmxhZ3MpOwogCiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGM1
YjU3NWI5ZTYxNWIzZjNmNTk2YmZjM2RmNjgzYzg3N2NjNjJiYWIuLjJlMjMxNjlmMDc5M2YwZGNm
ODA4YTliY2ZiNThlNmM5MDhjNmNjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV29ya2VyTWVzc2Fn
aW5nUHJveHkgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyTWVzc2Fn
aW5nUHIKIHByaXZhdGU6CiAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNj
b3BlUHJveHkuCiAgICAgLy8gKE9ubHkgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgd29ya2Vy
IG9iamVjdCB0aHJlYWQuKQotICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBV
UkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJl
clBvbGljeSwgSlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgc3RhcnRXb3JrZXJH
bG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0
aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBGZXRjaFJl
cXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOwog
ICAgIHZvaWQgdGVybWluYXRlV29ya2VyR2xvYmFsU2NvcGUoKSBmaW5hbDsKICAgICB2b2lkIHBv
c3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSBm
aW5hbDsKICAgICB2b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lk
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDIzODRh
NWE4YzdkMmEzMDJlZWU1Y2I0MDVlMTA1ZTAyNWM5ODQzY2MuLmY0ZjRiMjc0NjZmOWEzMGIyOGI4
YjIxZjZmMmJlZjhiZGU5Mzg1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
IAorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1ZGUgIldvcmtlckV2ZW50
TG9vcC5oIgogI2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0zOSw2ICs0MCw3IEBAIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSk7CiAK
IFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShX
b3JrZXJUaHJlYWRUeXBlIHR5cGUsIFJlZjxKU0M6OlZNPiYmIHZtLCBXb3JrZXJPcldvcmtsZXRU
aHJlYWQqIHRocmVhZCkKICAgICA6IG1fc2NyaXB0KG1ha2VVbmlxdWU8V29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlcj4odHlwZSwgV1RGTW92ZSh2bSksIHRoaXMpKQorICAgICwgbV9tb2R1
bGVMb2FkZXIobWFrZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KCp0aGlzLCBTY3JpcHRNb2R1
bGVMb2FkZXI6Ok93bmVyVHlwZTo6V29ya2VyT3JXb3JrbGV0KSkKICAgICAsIG1fdGhyZWFkKHRo
cmVhZCkKICAgICAsIG1faW5zcGVjdG9yQ29udHJvbGxlcihtYWtlVW5pcXVlPFdvcmtlckluc3Bl
Y3RvckNvbnRyb2xsZXI+KCp0aGlzKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCA2YzI0NGEwYzQyN2VlMWM4YzY1
ZmRjYzc2NTk1MmY4NzdmZDliMTZiLi41NDRmMDQ3YWVjMjc4MzI3NDRkMGE4YTcwYWY3ZTkzOWMz
MzA5OTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZS5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEV2ZW50TG9vcFRhc2tHcm91cDsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNs
YXNzIFdvcmtlckV2ZW50TG9vcDsKIGNsYXNzIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI7CiBj
bGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOwpAQCAtNTQsNiArNTUsOCBAQCBj
bGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBwdWJsaWMgUmVmQ291bgogCiAgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCkgeyByZXR1cm4gbV91bmlxdWVJZGVudGlmaWVyKys7IH0KIAorICAgIFNjcmlw
dE1vZHVsZUxvYWRlciYgbW9kdWxlTG9hZGVyKCkgeyByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOyB9
CisKICAgICAvLyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LgogICAgIEV2ZW50TG9vcFRhc2tHcm91
cCYgZXZlbnRMb29wKCkgZmluYWw7CiAgICAgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCBm
aW5hbDsKQEAgLTg4LDYgKzkxLDcgQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUg
OiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KICAgICB2b2lk
IGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyPiBtX3NjcmlwdDsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8U2NyaXB0TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRlcjsKICAgICBXb3Jr
ZXJPcldvcmtsZXRUaHJlYWQqIG1fdGhyZWFkOwogICAgIFJlZlB0cjxXb3JrZXJFdmVudExvb3A+
IG1fZXZlbnRMb29wOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrR3JvdXA+IG1f
ZGVmYXVsdFRhc2tHcm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGNkNGVjMjQ2ODI1MjVh
YWJjNjQyZDg3N2EwZGEwMTFlYmRlMTE0MzEuLmMxMjZkNWM5MTE3MzdjMDhlYmEwNWYwZDBkMmYz
YmZjNTUyM2M4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzUsNiArMzUsOSBAQAogI2lu
Y2x1ZGUgIkpTRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNQYWludFdvcmtsZXRHbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAi
TG9hZGFibGVNb2R1bGVTY3JpcHQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaEZhaWx1cmVLaW5k
LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2NyaXB0
U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRl
ICJXb3JrZXJDb25zb2xlQ2xpZW50LmgiCkBAIC00Myw3ICs0NiwxMiBAQAogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0V4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2Vw
dGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9HQ0FjdGl2aXR5Q2FsbGJh
Y2suaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTTW9kdWxlUmVjb3JkLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNOYXRpdmVTdGRG
dW5jdGlvbi5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2NyaXB0RmV0Y2hQYXJhbWV0
ZXJzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRjaGVyLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0yMjgsNyArMjM2LDEzNSBAQCB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZAogICAgIH0K
IH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgSlNHbG9iYWxTY29wZVByb3RvdHlwZSwgdHlwZW5hbWUg
SlNHbG9iYWxTY29wZSwgdHlwZW5hbWUgR2xvYmFsU2NvcGU+CitzdGF0aWMgSWRlbnRpZmllciBq
c1ZhbHVlVG9Nb2R1bGVLZXkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVy
biBJZGVudGlmaWVyOjpmcm9tVWlkKGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1l
KCkpOworICAgIEFTU0VSVCh2YWx1ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gYXNTdHJpbmco
dmFsdWUpLT50b0lkZW50aWZpZXIobGV4aWNhbEdsb2JhbE9iamVjdCk7Cit9CisKK0pTQzo6SlNW
YWx1ZSBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShKU0M6
OkpTTW9kdWxlUmVjb3JkJiBtb2R1bGVSZWNvcmQpCit7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0
ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICByZXR1cm4gbW9kdWxl
UmVjb3JkLmV2YWx1YXRlKCZnbG9iYWxPYmplY3QpOworfQorCitNZXNzYWdlUXVldWVXYWl0UmVz
dWx0IFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91
c2x5KExvYWRhYmxlTW9kdWxlU2NyaXB0JiBtb2R1bGVTY3JpcHQsIGNvbnN0IFNjcmlwdFNvdXJj
ZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisg
ICAgICAgIHJldHVybiBNZXNzYWdlUXVldWVUZXJtaW5hdGVkOworCisgICAgaW5pdFNjcmlwdElm
TmVlZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBw
ZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9s
ZGVyIGxvY2sgeyB2bSB9OworCisgICAgUmVmUHRyPExvYWRhYmxlTW9kdWxlU2NyaXB0PiBtb2R1
bGVTY3JpcHRSZWY7CisgICAgeworICAgICAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVjU3RhdGU6
OmxvYWRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgpLCBKU0M6
OkpTU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKHZtLCB7ICZtb2R1bGVTY3JpcHQgfSkpOworCisgICAg
ICAgIG1vZHVsZVNjcmlwdFJlZiA9ICZtb2R1bGVTY3JpcHQ7CisKKyAgICAgICAgYXV0byYgZnVs
ZmlsbEhhbmRsZXIgPSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2Jq
ZWN0LCAxLCBTdHJpbmcoKSwgW21vZHVsZVNjcmlwdFJlZl0oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIC0+IEpTQzo6RW5jb2RlZEpTVmFsdWUgewor
ICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgICAgICAgICAgSWRlbnRpZmll
ciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisgICAgICAgICAgICBtb2R1bGVTY3JpcHRSZWYtPm5vdGlmeUxvYWRDb21wbGV0ZWQoKm1v
ZHVsZUtleS5pbXBsKCkpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0SGFuZGxlciA9
ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmlu
ZygpLCBbbW9kdWxlU2NyaXB0UmVmXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkgeworICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgICAgICAgICAgSlNWYWx1ZSBlcnJvclZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVu
dCgwKTsKKyAgICAgICAgICAgIGlmIChlcnJvclZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAg
ICAgICAgICBhdXRvKiBvYmplY3QgPSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOworICAgICAg
ICAgICAgICAgIGlmIChKU1ZhbHVlIGZhaWx1cmVLaW5kVmFsdWUgPSBvYmplY3QtPmdldERpcmVj
dCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEmPigqdm0uY2xpZW50RGF0YSkuYnVpbHRp
bk5hbWVzKCkuZmFpbHVyZUtpbmRQcml2YXRlTmFtZSgpKSkgeworICAgICAgICAgICAgICAgICAg
ICAvLyBUaGlzIGlzIGhvc3QgcHJvcGFnYXRlZCBlcnJvciBpbiB0aGUgbW9kdWxlIGxvYWRlciBw
aXBlbGluZS4KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxNb2R1bGVG
ZXRjaEZhaWx1cmVLaW5kPihmYWlsdXJlS2luZFZhbHVlLmFzSW50MzIoKSkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkOgorICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExv
YWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGFi
bGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdURjo6bnVsbG9wdAorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2R1bGVG
ZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1v
ZHVsZVNjcmlwdFJlZi0+bm90aWZ5TG9hZFdhc0NhbmNlbGVkKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FU
Q0hfU0NPUEUodm0pOworICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFp
bGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgTG9hZGFibGVTY3Jp
cHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgIExvYWRhYmxlU2Ny
aXB0OjpDb25zb2xlTWVzc2FnZSB7CisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VTb3VyY2U6
OkpTLAorICAgICAgICAgICAgICAgICAgICBNZXNzYWdlTGV2ZWw6OkVycm9yLAorICAgICAgICAg
ICAgICAgICAgICByZXRyaWV2ZUVycm9yTWVzc2FnZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JW
YWx1ZSwgc2NvcGUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgcHJvbWlzZS50aGVuKCZnbG9iYWxPYmplY3QsICZmdWxmaWxsSGFuZGxlciwg
JnJlamVjdEhhbmRsZXIpOworICAgIH0KKyAgICBtX2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5w
ZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworCisgICAgLy8gRHJpdmUgUnVuTG9vcCB1bnRp
bCB3ZSBnZXQgZWl0aGVyIG9mICJXb3JrZXIgaXMgdGVybWluYXRlZCIsICJMb2FkaW5nIGlzIGRv
bmUiLCBvciAiTG9hZGluZyBpcyBmYWlsZWQiLgorICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3Ag
PSBtX2dsb2JhbFNjb3BlLT53b3JrZXJPcldvcmtsZXRUaHJlYWQoKS0+cnVuTG9vcCgpOworCisg
ICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVj
ZWl2ZWQ7CisgICAgd2hpbGUgKCghbW9kdWxlU2NyaXB0UmVmLT5pc0xvYWRlZCgpICYmICFtb2R1
bGVTY3JpcHRSZWYtPndhc0NhbmNlbGVkKCkpICYmIHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJt
aW5hdGVkKQorICAgICAgICByZXN1bHQgPSBydW5Mb29wLnJ1bkluTW9kZShtX2dsb2JhbFNjb3Bl
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKworICAgIC8vIEZJWE1FOiBDdXJyZW50
bHkgd2UgYXJlIG5vdCBvZmZlcmluZyBjYW5jZWxsaW5nLgorICAgIC8vIGlmICghbG9hZGVyLT5k
b25lKCkgJiYgcmVzdWx0ID09IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpCisgICAgLy8gICAgIGxv
YWRlci0+Y2FuY2VsKCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFdvcmtlck9y
V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShMb2FkYWJsZU1v
ZHVsZVNjcmlwdCYgbW9kdWxlU2NyaXB0LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VD
b2RlLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSkKK3sKKyAgICBpZiAoaXNFeGVj
dXRpb25Gb3JiaWRkZW4oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdFNjcmlwdElmTmVl
ZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIu
Z2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVy
IGxvY2sgeyB2bSB9OworCisgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhj
ZXB0aW9uOworICAgIEpTRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBtb2R1bGVTY3JpcHQubW9kdWxlS2V5KCkpLCBq
c1VuZGVmaW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKChyZXR1cm5lZEV4Y2Vw
dGlvbiAmJiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVybmVkRXhjZXB0
aW9uKSkgfHwgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAgICAgIGZvcmJpZEV4ZWN1
dGlvbigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHJldHVybmVkRXhjZXB0
aW9uKSB7CisgICAgICAgIGlmIChtX2dsb2JhbFNjb3BlLT5jYW5JbmNsdWRlRXJyb3JEZXRhaWxz
KHNvdXJjZUNvZGUuY2FjaGVkU2NyaXB0KCksIHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCkpKSB7
CisgICAgICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBydW4g
YXJiaXRyYXJ5IGNvZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlvbi4K
KyAgICAgICAgICAgIC8vIERvIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgdG8gaGFuZGxlIHRoYXQg
cHJvcGVybHksIGlmIGl0LCBzYXksIHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlvbj8KKyAgICAgICAg
ICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKnJldHVy
bmVkRXhjZXB0aW9uTWVzc2FnZSA9IHJldHVybmVkRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3Ry
aW5nKCZnbG9iYWxPYmplY3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gT3Zl
cndyaXRlIHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBlcnJvci4KKyAgICAgICAg
ICAgIFN0cmluZyBnZW5lcmljRXJyb3JNZXNzYWdlIHsgIlNjcmlwdCBlcnJvci4iX3MgfTsKKyAg
ICAgICAgICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAg
KnJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IGdlbmVyaWNFcnJvck1lc3NhZ2U7CisgICAgICAg
ICAgICByZXR1cm5lZEV4Y2VwdGlvbiA9IEpTQzo6RXhjZXB0aW9uOjpjcmVhdGUodm0sIGNyZWF0
ZUVycm9yKCZnbG9iYWxPYmplY3QsIGdlbmVyaWNFcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgfQor
ICAgIH0KK30KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEpTR2xvYmFsU2NvcGVQcm90b3R5cGUs
IHR5cGVuYW1lIEpTR2xvYmFsU2NvcGUsIHR5cGVuYW1lIEdsb2JhbFNjb3BlPgogdm9pZCBXb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0V2l0aFN1YmNsYXNzKCkKIHsK
ICAgICBBU1NFUlQoIW1fZ2xvYmFsU2NvcGVXcmFwcGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKaW5kZXgg
YzQ5MzAxYWVkM2RkMDg5ZGE3OTczMjc2MGNhZjJmN2I2NGRiMTFiNi4uZmE1YWQ1ZDBjMjcwYmMx
NjUzMDUyZjEyMDE4Yzk3YWRjNTk2MGMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYv
TWVzc2FnZVF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewpAQCAtNDQsNiArNDUsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBMb2FkYWJsZU1vZHVs
ZVNjcmlwdDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBXb3JrZXJDb25zb2xlQ2xp
ZW50OwogY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU7CkBAIC05NCw2ICs5NiwxMSBA
QCBjbGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICB2b2lkIGV2YWx1
YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVz
c2FnZSA9IG51bGxwdHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29k
ZSYsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0cmluZyog
cmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKKyAgICBKU0M6OkpTVmFsdWUg
ZXZhbHVhdGVNb2R1bGUoSlNDOjpKU01vZHVsZVJlY29yZCYpOworCisgICAgdm9pZCBsaW5rQW5k
RXZhbHVhdGVNb2R1bGUoTG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJiBzb3VyY2VDb2RlLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxw
dHIpOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgbG9hZE1vZHVsZVN5bmNocm9ub3VzbHko
TG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisKIHByb3Rl
Y3RlZDoKICAgICBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogZ2xvYmFsU2NvcGUoKSBjb25z
dCB7IHJldHVybiBtX2dsb2JhbFNjb3BlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmNwcAppbmRleCA3Mjc5MGEwMzMyMjYxOWU2ZWU3ZTYxNmE4YmRlMThiZDU1MmE1Nzgz
Li4zZTk2OGI1NmJhNjFjNjJjNGJjYjQxMTVlZGFmYjA1NDc4NjRjZGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0yOCwxMCArMjgsMTIgQEAKICNpbmNsdWRl
ICJXb3JrZXJUaHJlYWQuaCIKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94eS5oIgorI2lu
Y2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29k
ZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTUsNiArNTcsOCBAQCBXb3JrZXJQYXJhbWV0ZXJzIFdv
cmtlclBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgICAgIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwKICAgICAgICAgdGltZU9yaWdpbiwKICAg
ICAgICAgcmVmZXJyZXJQb2xpY3ksCisgICAgICAgIHdvcmtlclR5cGUsCisgICAgICAgIGNyZWRl
bnRpYWxzLAogICAgICAgICBzZXR0aW5nc1ZhbHVlcy5pc29sYXRlZENvcHkoKQogICAgIH07CiB9
CkBAIC0xMjMsOSArMTI3LDMzIEBAIGJvb2wgV29ya2VyVGhyZWFkOjpzaG91bGRXYWl0Rm9yV2Vi
SW5zcGVjdG9yT25TdGFydHVwKCkgY29uc3QKIAogdm9pZCBXb3JrZXJUaHJlYWQ6OmV2YWx1YXRl
U2NyaXB0SWZOZWNlc3NhcnkoU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQogewotICAgIGdsb2Jh
bFNjb3BlKCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERh
dGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZl
eGNlcHRpb25NZXNzYWdlKTsKLQotICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAg
IC8vIFdlIGFyZSBjdXJyZW50bHkgaG9sZGluZyBvbmx5IHRoZSBpbml0aWFsIHNjcmlwdCBjb2Rl
LiBJZiB0aGUgV29ya2VyVHlwZSBpcyBNb2R1bGUsIHdlIHNob3VsZCBmZXRjaCB0aGUgZW50aXJl
IGdyYXBoIGJlZm9yZSBleGVjdXRpbmcgdGhlIHJlc3Qgb2YgdGhpcy4KKyAgICAvLyBXZSBpbnZv
a2UgbW9kdWxlIGxvYWRlciBhcyBpZiB3ZSBhcmUgZXhlY3V0aW5nIGlubGluZSBtb2R1bGUgc2Ny
aXB0IHRhZyBpbiBEb2N1bWVudC4KKworICAgIGlmIChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMud29y
a2VyVHlwZSA9PSBXb3JrZXJUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgIGdsb2JhbFNjb3BlKCkt
PnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJj
ZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25N
ZXNzYWdlKTsKKyAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgLy8gRklYTUUgY3Jvc3NPcmlnaW4gbW9kZSBzaG91bGQgYmUgY29udmVydGVk
LgorICAgICAgICAvLyBGSVhNRSBmaXggaW5pdGlhdG9yIG5hbWUuCisgICAgICAgIC8vIEZJWE1F
IHBhc3MgVVJMIHRvIG1vZHVsZSBsb2FkZXIuCisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291
cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFy
YW1zLnNjcmlwdFVSTCksIHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVs
ZSk7CisgICAgICAgIGF1dG8gbW9kdWxlU2NyaXB0ID0gTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmNy
ZWF0ZShlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCBtX3N0YXJ0dXBEYXRhLT5wYXJhbXMu
cmVmZXJyZXJQb2xpY3ksIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyOjpkZWZhdWx0
Q3Jvc3NPcmlnaW5Nb2RlRm9yTW9kdWxlLCBlbXB0eVN0cmluZygpLCBlbXB0eUF0b20oKSwgZmFs
c2UpOworICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9IGdsb2JhbFNjb3Bl
KCktPnNjcmlwdCgpLT5sb2FkTW9kdWxlU3luY2hyb25vdXNseShtb2R1bGVTY3JpcHQuZ2V0KCks
IHNvdXJjZUNvZGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0
ZWQpIHsKKyAgICAgICAgICAgIGlmIChPcHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6RXJyb3I+IGVy
cm9yID0gbW9kdWxlU2NyaXB0LT5lcnJvcigpKSB7CisgICAgICAgICAgICAgICAgaWYgKE9wdGlv
bmFsPExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVzc2FnZT4gbWVzc2FnZSA9IGVycm9yLT5jb25z
b2xlTWVzc2FnZSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uTWVzc2FnZSA9IG1lc3Nh
Z2UtPm1lc3NhZ2U7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBl
eGNlcHRpb25NZXNzYWdlID0gIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfczsK
KyAgICAgICAgICAgICAgICBnbG9iYWxTY29wZSgpLT5yZXBvcnRFeGNlcHRpb24oZXhjZXB0aW9u
TWVzc2FnZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0pOworICAgICAgICAgICAgfSBlbHNlIGlm
ICghbW9kdWxlU2NyaXB0LT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICAgICAgLy8gRXZh
bHVhdGUuCisgICAgICAgICAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmxpbmtBbmRF
dmFsdWF0ZU1vZHVsZShtb2R1bGVTY3JpcHQuZ2V0KCksIHNvdXJjZUNvZGUsICZleGNlcHRpb25N
ZXNzYWdlKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIAogICAgIC8vIEZyZWUgdGhlIHN0YXJ0dXAg
ZGF0YSB0byBjYXVzZSBpdHMgbWVtYmVyIHZhcmlhYmxlIGRlcmVmJ3MgaGFwcGVuIG9uIHRoZSB3
b3JrZXIncyB0aHJlYWQgKHNpbmNlCiAgICAgLy8gYWxsIHJlZi9kZXJlZnMgb2YgdGhlc2Ugb2Jq
ZWN0cyBhcmUgaGFwcGVuaW5nIG9uIHRoZSB0aHJlYWQgYXQgdGhpcyBwb2ludCkuIE5vdGUgdGhh
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKaW5kZXggODg5MDc5MDhlN2E5Yjgw
OWU4ZjJhNGU0NzNkNzUyZDExZDI5MzdjMC4uOTUxMmVmZGIxOGYzMmE1MGVjYjdmYjU2OTU5ZDYx
ZTg4NzJmYTFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC0yNiw3
ICsyNiwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5o
IgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtlclJ1
bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9VUkwu
aD4KQEAgLTYzLDYgKzY2LDggQEAgc3RydWN0IFdvcmtlclBhcmFtZXRlcnMgewogICAgIGJvb2wg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OwogICAgIE1vbm90b25p
Y1RpbWUgdGltZU9yaWdpbjsKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeTsKKyAg
ICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7CisgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3Jl
ZGVudGlhbHM7CiAgICAgU2V0dGluZ3M6OlZhbHVlcyBzZXR0aW5nc1ZhbHVlczsKIAogICAgIFdv
cmtlclBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWQuY3BwCmluZGV4IGM4YTdhOTk3MmY5Y2M4YzE2YTc5Njc1MTE1NTJmNTQ5M2E2ODZmOTguLjMz
Y2EwZWMyM2I1OGE1NTExODc2ODQ2YmEwNzE4MzUzMmI1YzQ3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuY3BwCkBAIC03Myw4ICs3Myw5IEBAIGNsYXNzIER1bW15U2VydmljZVdvcmtlclRo
cmVhZFByb3h5IDogcHVibGljIFdvcmtlck9iamVjdFByb3h5IHsKIC8vIEZJWE1FOiBVc2UgYSB2
YWxpZCBXb3JrZXJPYmplY3RQcm94eQogLy8gRklYTUU6IFVzZSB2YWxpZCBydW50aW1lIGZsYWdz
CiAKKy8vIEZJWE1FOiBVc2UgYSB2YWxpZCBXb3JrZXJUeXBlIGFuZCBDcmVkZW50YWlscyBmb3Ig
bW9kdWxlIHNlcnZpY2Ugd29ya2Vycy4KIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3Jr
ZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBTdHJpbmcmJiB1
c2VyQWdlbnQsIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzLCBXb3JrZXJM
b2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2VyUHJv
eHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHksIFNv
Y2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcikKLSAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEu
c2NyaXB0VVJMLCBlbXB0eVN0cmluZygpLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJ
ZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQp
LCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0
YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9
LCBzZXR0aW5nc1ZhbHVlcyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRlYnVnZ2VyUHJv
eHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29ya2VyVGhyZWFk
U3RhcnRNb2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5zZWN1
cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBK
U0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQorICAgIDogV29ya2VyVGhyZWFk
KHsgZGF0YS5zY3JpcHRVUkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJbnNw
ZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHVz
ZXJBZ2VudCksIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09uTGlu
ZSgpLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6Om5v
dygpLCB7IH0sIFdvcmtlclR5cGU6OkNsYXNzaWMsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzOjpT
YW1lT3JpZ2luLCBzZXR0aW5nc1ZhbHVlcyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRl
YnVnZ2VyUHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29y
a2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmln
aW4oKS5zZWN1cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFBy
b3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQogICAgICwgbV9k
YXRhKGRhdGEuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1bW15
U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSkKICAgICAsIG1faGVhcnRCZWF0VGlt
ZW91dChTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCktPnNob3VsZFVz
ZVNob3J0VGltZW91dCgpID8gaGVhcnRCZWF0VGltZW91dEZvclRlc3QgOiBoZWFydEJlYXRUaW1l
b3V0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMjNkZTc2YzJjYWVjY2I3NzIz
MGU0ODRmN2ZhZTg4MGM2YTU2NzRlNy4uMGE0MjM4NzM3YzliZTFjYjQ0ZjNkYzExMDUwZDRhODU3
NGMwYjAyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMjEtMDItMTAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAg
ICBKUyBNb2R1bGVzIGluIFdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NDg2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9ub24tb2JqZWN0LnRlbnRhdGl2
ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3Mv
Y2hlY2twb2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFz
ZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUv
ZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtl
ci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRl
ci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAyLTA2ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm9u
LXNwZWNpYWwgVVJMcyBzaG91bGQgaGF2ZSBhbiBvcGFxdWUgb3JpZ2luCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9ub24tb2JqZWN0LnRl
bnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CmluZGV4IDQ5MjY5YjNiNTBiOTE3NWNiNjJlY2EzMTJlNTg2YjNiMTY2MmEyNTku
LjJjYWU1ZjdlMzVhMzJmZWNlYjI2OGYyOTAwMDBlNGU1NTU2YzY4NjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVu
dGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1GQUlMIE5vbi1vYmplY3Q6IG51bGwgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6
IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9udWxsLmpzb24nLiIKLUZBSUwgTm9uLW9i
amVjdDogdHJ1ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL3RydWUuanNvbicu
IgotRkFJTCBOb24tb2JqZWN0OiBmYWxzZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxl
ICcuL2ZhbHNlLmpzb24nLiIKLUZBSUwgTm9uLW9iamVjdDogc3RyaW5nIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3Qg
aW1wb3J0IHRoZSBtb2R1bGUgJy4vc3RyaW5nLmpzb24nLiIKLUZBSUwgTm9uLW9iamVjdDogYXJy
YXkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
RXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9hcnJheS5qc29uJy4iCitGQUlM
IE5vbi1vYmplY3Q6IG51bGwgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFs
aWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiB0cnVlIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
J2FwcGxpY2F0aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIK
K0ZBSUwgTm9uLW9iamVjdDogZmFsc2UgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90
IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiBzdHJpbmcg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1F
IHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiBhcnJheSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29u
JyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRl
ci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29y
a2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1
ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLmUzZTk3N2IzZDRjNWE0ZjQ1ZTZkMDhj
ZDMyODQ2MjNkNTdmNzE2NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVy
cm9yLW1vZHVsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJy
b3ItbW9kdWxlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDYgQEAKIAogSGFybmVzcyBFcnJvciAo
VElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCiAKK0ZBSUwgUHJvbWlzZSByZXNvbHZlZCBkdXJpbmcg
I3JlcG9ydC10aGUtZXJyb3IgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4
cGVjdGVkIGFycmF5IFsiaGFuZGxlciAxIiwgImhhbmRsZXIgMiIsICJoYW5kbGVyIDEgcHJvbWlz
ZSIsICJoYW5kbGVyIDIgcHJvbWlzZSJdIGxlbmd0aCA0LCBnb3QgW10gbGVuZ3RoIDAKK05PVFJV
TiBQcm9taXNlIHJlc29sdmVkIGR1cmluZyBldmVudCBoYW5kbGVycyBvdGhlciB0aGFuIGVycm9y
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9k
eW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBo
YS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dAppbmRleCA4NjZlYmIyMjdhZDI2YWFj
ZTFhNTc4YmFlYTZhODFkYzBlNmU3N2YwLi5iOTRkZWE2ZTNhMWQwZGQ3NDdmNjZiOTlkOWRiODU0
ODdkZGJhMmEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMt
aW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NCBAQAogCi1GQUlMIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gd29ya2VyIHRvcC1sZXZlbCBzY3Jp
cHQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
RXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9pbXBvcnQuanM/cGlwZT1oZWFk
ZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPXJlbGF0aXZlLXdvcmtlciB0
b3AtbGV2ZWwgc2NyaXB0Jy4iCi1GQUlMIEFic29sdXRlIFVSTC1saWtlIGZyb20gd29ya2VyIHRv
cC1sZXZlbCBzY3JpcHQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnaHR0cDovLzEy
Ny4wLjAuMTo4ODAwL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvZ2FtbWEvaW1wb3J0LmpzP3BpcGU9aGVhZGVyKEFjY2Vz
cy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJlbD1hYnNvbHV0ZS13b3JrZXIgdG9wLWxldmVs
IHNjcmlwdCcuIgorRkFJTCBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwg
c2NyaXB0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJnYW1tYS9pbXBvcnQuanMiIGJ1dCBnb3Qg
ImJldGEvaW1wb3J0LmpzIgorUEFTUyBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHdvcmtlciB0b3At
bGV2ZWwgc2NyaXB0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3Jk
ZXItMS1ub3Rocm93LXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5
NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uMmYxMmEyMzQyZmFkMjI0ZTNhMThhNmZiNWQ4NDgzMjVl
YTY3NzZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXIt
MS1ub3Rocm93LXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3Mg
RXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitQQVNTIFRlc3QgZXZhbHVhdGlvbiBv
cmRlciBvZiBtb2R1bGVzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEt
d29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0
YzFkY2IzYTVmLi5iODYxZjcwMWY5NDhmYjEzMjc2OTMyMmMzODM2NmYyZDEzOGYwNGUyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlv
bi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsMyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51
bGwKLQorRkFJTCBUZXN0IGV2YWx1YXRpb24gb3JkZXIgb2YgbW9kdWxlcyBhc3NlcnRfYXJyYXlf
ZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgWyJzdGVwLTEtMSIsICJzdGVw
LTEtMiIsICJnbG9iYWwtZXJyb3IiLCAiZXJyb3IiLCAibWljcm90YXNrIl0gbGVuZ3RoIDUsIGdv
dCBbInN0ZXAtMS0xIiwgInN0ZXAtMS0yIiwgIm1pY3JvdGFzayJdIGxlbmd0aCAzCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9u
LW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhw
ZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYu
LmMxZDM4YmRlNTBjNTllNWQ1OTQxNzNkOTZmOWNkMTllYjEwN2M5YjQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTIt
aW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29ya2VyLWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2Ug
PSBudWxsCi0KK0ZBSUwgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVsZXMgYXNzZXJ0X2Fy
cmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsic3RlcC0yLjItMSIs
ICJzdGVwLTIuMi0yIiwgImdsb2JhbC1lcnJvciIsICJlcnJvciIsICJtaWNyb3Rhc2stMi4yIl0g
bGVuZ3RoIDUsIGdvdCBbInN0ZXAtMi4yLTEiLCAic3RlcC0yLjItMiIsICJtaWNyb3Rhc2stMi4y
Il0gbGVuZ3RoIDMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRl
ci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1
OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi4yZjEyYTIzNDJmYWQyMjRlM2ExOGE2ZmI1ZDg0ODMyNWVh
Njc3NmZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0z
LWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBF
cnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK1BBU1MgVGVzdCBldmFsdWF0aW9uIG9y
ZGVyIG9mIG1vZHVsZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQt
bWV0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVj
dGVkLnR4dAppbmRleCBkNTgwNjIwNDFjM2U2OTUxNWI4MTVlMDJkN2MzODY4NGQ3N2M3NmI3Li5l
NzgyNTdhMzIyOGQwZjMyMDMwM2ZkNjMyNmFmNmE3NTE0NTNmYzNjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDUgQEAKLUNPTlNP
TEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRl
IG1vZHVsZXMuCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6
IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCi0KLUZBSUwgVGVzdCBp
bXBvcnQubWV0YS51cmwgb24gdGhlIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0LiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBpbXBvcnQu
bWV0YSBpcyBvbmx5IHZhbGlkIGluc2lkZSBtb2R1bGVzLiIKLUZBSUwgVGVzdCBpbXBvcnQubWV0
YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQuIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgdG9wLWxl
dmVsIG1vZHVsZSBzY3JpcHQuCitQQVNTIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBv
cnRlZCBtb2R1bGUgc2NyaXB0LgogRkFJTCBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1w
b3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJhZ21lbnQuIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlv
bnMtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1l
eHBlY3RlZC50eHQKaW5kZXggZGEwZTRlYjY3NThkMTRhMzdhMzk4ZDBiNmZjNzFhZDM4NzZiZDI2
Yi4uMWZjMGM2NmZkZjcyNGMyYWEzYjkxMDY5ODBiZmJlN2U5ODhmOTc3MyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVs
ZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2Rl
ZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dApAQCAtMiwxMSArMiw2IEBA
CiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIHRoZSBkZWZhdWx0IHdvcmtlciB0
eXBlLgogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCB0aGUgImNsYXNzaWMiIHdv
cmtlciB0eXBlLgogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCB0aGUgIm1vZHVs
ZSIgd29ya2VyIHR5cGUuCi1GQUlMIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIGVt
cHR5IHdvcmtlciB0eXBlLiBhc3NlcnRfdGhyb3dzX2pzOiBXb3JrZXIgY29uc3RydWN0aW9uIHdp
dGggYW4gZW1wdHkgdHlwZSBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIGZ1bmN0aW9uICIoKSA9
PiB7Ci0gICAgICAgIG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9wb3N0LW1lc3NhZ2Utb24tbG9hZC13
b3JrZXIuanMnLCB7IHR5cGU6ICcnIH0pOwotICAgICAgfSIgZGlkIG5vdCB0aHJvdwotRkFJTCBU
ZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1bmtub3duIHdvcmtlciB0eXBlLiBhc3Nl
cnRfdGhyb3dzX2pzOiBXb3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gdW5rbm93biB0eXBlIHNo
b3VsZCB0aHJvdyBhbiBleGNlcHRpb24gZnVuY3Rpb24gIigpID0+IHsKLSAgICAgICAgbmV3IFdv
cmtlcigncmVzb3VyY2VzL3Bvc3QtbWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcycsCi0gICAgICAg
ICAgICAgICAgICAgeyB0eXBlOiAndW5rbm93bicgfSk7Ci0gICAgICB9IiBkaWQgbm90IHRocm93
CitQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIGVtcHR5IHdvcmtlciB0eXBl
LgorUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1bmtub3duIHdvcmtlciB0
eXBlLgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419895</attachid>
            <date>2021-02-10 13:40:32 -0800</date>
            <delta_ts>2021-02-10 16:46:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210210134031.patch</filename>
            <type>text/plain</type>
            <size>114133</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA1MTUzZGY5Mjc2YTBl
YzEzMzI1OTg1ZDNjMGE5NGQwOTE3M2I4ZC4uNDcwNGQ3MDQ2MjU1MjI2ZTgxNzA2OTNlNjk3NWMz
MmQ5NDhhMzRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDIxLTAyLTEwICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBX
b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjps
b2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5
RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNo
ZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2NyaXB0TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1w
b3J0TWV0YVByb3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2Jq
ZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNo
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9h
ZGVyRXZhbHVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyk6
IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oLgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpjbGVhckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpN
b2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgICogYmluZGlu
Z3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRN
b2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9h
ZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVs
ZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJM
RnJvbVJlcXVlc3RVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpl
dmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1v
ZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlz
aGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
LgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
Ojp+V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1v
ZHVsZVNjcmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmguCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKiBkb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQpOiBEZWxldGVkLgorICAgICAgICAq
IGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3Jp
cHQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlcjo6V29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Oldvcmtlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuaWRsOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2Jh
bFNjb3BlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAg
ICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVMb2Fk
ZXIpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1v
ZHVsZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKiB3b3JrZXJz
L1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dv
cmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJQYXJhbWV0ZXJzOjppc29s
YXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpldmFsdWF0
ZVNjcmlwdElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRo
cmVhZCk6CisKIDIwMjEtMDItMTAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CiAKICAgICAgICAgRG8gbm90IGRpZmZlcmVudGlhdGUgYmV0d2VlbiBSZWxlYXNlIGFuZCBQcm9k
dWN0aW9uIHZpYSBFTkFCTEVfREVWRUxPUEVSX01PREUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOGMwM2I5
MzI2NDk4NWYwYmIxZWU5ZjZkMjAyM2UzNDgzMDkyZjQ2Mi4uNjIzYTY3OGFhNWNiNDMyYWUwZDM5
NDY3YTRiZWZkMzQ1Njg4YTIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYzOSw2ICs2MzksNyBAQCBi
aW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwCiBiaW5kaW5ncy9qcy9XZWJDb3JlSklUT3Bl
cmF0aW9ucy5jcHAKIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCiBiaW5kaW5n
cy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCitiaW5kaW5ncy9qcy9Xb3JrZXJN
b2R1bGVTY3JpcHRMb2FkZXIuY3BwCiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKIGJpbmRp
bmdzL2pzL1dyaXRhYmxlU3RyZWFtLmNwcAogYnJpZGdlL0lkZW50aWZpZXJSZXAuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MmUzYmEyZDhiYmFhMTc2MjQ0ZGE2MjNjNjkyOTZlNWZlYmYwNzMwYi4uMDE4ZmUyY2VhNjk2NTIx
YTE0NGMzZjU4ZmE2ZmM0ZTMzYmMwOTZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA3MSwxNSArNTA3MSwxNyBAQAogCQlF
MzA1OTI2NDFFMjdBM0FEMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTkyNjIxRTI3QTM4QzAw
RDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzA1OTI2ODFFMjdBM0QxMDBENTdDOTggLyogQ2Fj
aGVkU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTMwNTkyNjYxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzA3
REVEMDFEODFFNEM3MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVDNzFEODFFNDQ4
MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTMwN0RFRDExRDgxRTRDQjAwMTQxQ0FG
IC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8qIENh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDdERUQ1MUQ4MUU0RjIwMDE0MUNBRiAvKiBMb2Fk
YWJsZU1vZHVsZVNjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTMwN0RFRDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMx
NTBFQTcxREE3MjE5MzAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMTUwRUE1MURBNzIxOEQwMDE5NDAxMiAv
KiBET01KSVRIZWxwZXJzLmggKi87IH07CiAJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAzMiAvKiBN
b2R1bGVGZXRjaFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzOEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1bGVGZXRjaFBhcmFt
ZXRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFMzIzQ0ZGQTFFNUFGNkFGMDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMyM0NGRjkxRTVBRjZB
NTAwRjBCNEEwIC8qIEpTRE9NQ29udmVydFByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzQzMkRFNDI1RDM3N0UzMDA1OEU2MTIgLyog
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmggKi87IH07CisJCUUzNTE4OEI0MjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1
bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzNTE4OEIzMjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFMzU2NUI3QjFEQzJENkM5MDAyMTdEQkQgLyogSlNFdmVudEN1c3RvbS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0RUU0OUYxREMyRDU3NTAw
RUFBOUQzIC8qIEpTRXZlbnRDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFMzU4MDJCNjFEQzg0MzVEMDBBOTc3M0MgLyogRE9NSklUSURM
VHlwZUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTM1ODAyQjUxREM4NDM1ODAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU4MkMyODI1
MjdGNjY5MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTgyQzI2MjUyN0Y2NjgwMEQxQjc5MCAv
KiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUUzNUI5MDdGMjNGNjBBNTAwMDAwMTFGRiAvKiBMb2NhbGl6ZWRE
ZXZpY2VNb2RlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTM1QjkwN0MyM0Y2MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM2NDMyMUMy
NUQzN0E2NzAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8q
IE1vZHVsZVNjcmlwdExvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5
MzFEQURDMDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAv
KiBKU0RPTVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzk2MjhCRjIzOTU3
MjhGMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAw
NjU4RUNEIC8qIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTYyMDIsNyArMTYyMDQsNiBA
QAogCQlFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRTY3JpcHRGZXRjaGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDdERUM2MUQ4MUU0NDgwMDE0MUNBRiAvKiBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTMwN0RFQzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTMwN0RFQzgxRDgx
RTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFRDIxRDgxRTRFRDAwMTQxQ0FG
IC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IExvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTMwN0RFRDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvYWRhYmxlTW9kdWxlU2NyaXB0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMTUwRUE1MURBNzIxOEQwMDE5NDAx
MiAvKiBET01KSVRIZWxwZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TUpJVEhlbHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjE1LDEyICsx
NjIxNiwxNiBAQAogCQlFMzI5Mjc2MzIyNTQzRjU5MDAzMDhBOUEgLyogVHlwZWRPTUNTU1VuaXRW
YWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMyOTI3NjYyMjU0M0ZERTAwMzA4QTlBIC8qIERP
TVJlY3RSZWFkT25seS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01SZWN0UmVhZE9ubHkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzM0ODI1RTFEQzkzQUEwMDA5Qzk1NDQg
LyogRE9NSklUQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBET01KSVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0RPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8q
IFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTM0MzJERTMyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzRFRTQ5RjFE
QzJENTc1MDBFQUE5RDMgLyogSlNFdmVudEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0V2ZW50Q3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUzNTE4OEIzMjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTgwMkI1MURDODQzNTgwMEE5Nzcz
QyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUpJVElETFR5cGVGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTM1ODJDMjQyNTI3RjY2ODAwRDFCNzkwIC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVKSVRPcGVyYXRpb25zLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODJDMjYyNTI3RjY2ODAwRDFCNzkw
IC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkNvcmVKSVRPcGVyYXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzNUI5MDdDMjNGNjA2NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVCOTA3RTIzRjYwNjc3MDAwMDExRkYgLyogTG9j
YWxpemVkRGV2aWNlTW9kZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVTY3JpcHRMb2FkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9N
UHJvbWlzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVByb21pc2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUz
IC8qIFNjcmlwdE1vZHVsZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzg4Mzg5NTFCQUQxNDVGMDBENjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjcwMjEsNyArMjcwMjYsNiBAQAogCQkJCTJERkE0
ODhFMURCNTQxQzIwMDM2MkI5OSAvKiBCdWZmZXJTb3VyY2UuaCAqLywKIAkJCQlFMzA3REVDNjFE
ODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAqLywKIAkJCQlF
MzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8s
Ci0JCQkJRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ckNsaWVudC5oICovLAogCQkJCUUzMDU5MjY1MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3Jp
cHRGZXRjaGVyLmNwcCAqLywKIAkJCQlFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2FjaGVk
U2NyaXB0RmV0Y2hlci5oICovLAogCQkJCUJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNo
ZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oICovLApAQCAtMjcwOTUsNiArMjcwOTksOCBAQAogCQkJ
CTRCREVBMzJEMjE4MDM0MDUwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3Bw
ICovLAogCQkJCTRCREVBMzJCMjE4MDMzRUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29w
ZUJhc2UuaCAqLywKIAkJCQk3MDlBMDFGRDFFM0QwQkNDMDA2QjBENEMgLyogTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZC5oICovLAorCQkJCUUzNjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1bGVT
Y3JpcHRMb2FkZXIuaCAqLywKKwkJCQlFMzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxl
U2NyaXB0TG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJNDFCNDU5RUQxRjU1RUJDNzAwMDBGNkZEIC8q
IFJlYWRhYmxlU3RyZWFtLmNwcCAqLywKIAkJCQk0MUI0NTlEQTFGNENBREI5MDAwMEY2RkQgLyog
UmVhZGFibGVTdHJlYW0uaCAqLywKIAkJCQk0MThDMzk1RTFDOEYwQUFCMDA1MUM4QTMgLyogUmVh
ZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAgKi8sCkBAIC0yNzEyNiw2ICsyNzEzMiw4
IEBACiAJCQkJMEYwOTlEMDcxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29u
dHJvbGxlci5oICovLAogCQkJCTQ2MzUyMUFDMjA4MTA5MEUwMEMyODkyMiAvKiBXaW5kb3dQcm94
eS5jcHAgKi8sCiAJCQkJNDYzNTIxQUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5Lmgg
Ki8sCisJCQkJRTM0MzJERTMyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExv
YWRlci5jcHAgKi8sCisJCQkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVs
ZVNjcmlwdExvYWRlci5oICovLAogCQkJCTQxNDE4QTAzMjU2NDNFMTIwMDM2MzQxNyAvKiBXcml0
YWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDE0MThBMDQyNTY0M0UxMzAwMzYzNDE3IC8qIFdyaXRh
YmxlU3RyZWFtLmggKi8sCiAJCQkpOwpAQCAtMzEzOTksNyArMzE0MDcsNiBAQAogCQkJCUJDQjE2
QzFDMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzE5RkJENUYxNUQyRjQ2NDAwOTY0MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMzA3REVEMDFEODFFNEM3MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMzA3REVEMTFEODFFNENCMDAxNDFDQUYgLyog
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTAx
ODQ2OTBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RDBFREE3NzUxNDNFMzAzQzAwMjhFMzgzIC8qIENhY2hlZFJhd1Jlc291cmNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUI1MzM0OTE3MTdERUUzMDBGMjA1RjkgLyogQ2FjaGVkUmF3UmVzb3VyY2VD
bGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzM4NzQsNiArMzM4ODEsOCBAQAogCQkJCUM2RDc0
QUQ1MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTcwOUEwMUZFMUUzRDBCREQwMDZCMEQ0QyAvKiBNb2R1bGVGZXRjaEZhaWx1
cmVLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzIwMUMxQTFGOEU4MjEzMDA3NkEwMzIgLyog
TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzY0MzIxQzI1RDM3
QTY3MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
MzUxODhCNDI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlGNTVCM0RDNjEyNTFGMTJEMDAzRUYyNjkgLyogTW9udGhJbnB1dFR5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOTYyOEMxMjM5NTc0MzEwMDY1OEVDRCAvKiBNb3Rp
b25NYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0NjBBNDRFRkM3MDBG
OTkyRTAgLyogTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTUyNiw2ICszNTUzNSw3
IEBACiAJCQkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTG9j
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUwMEY1NDZBODIwMEIwRjFCQSAvKiBX
b3JrZXJNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM0MzJERTQyNUQzNzdF
MzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTEyNzFBMEIwRUVFQzc3QTAwRjYxMjEzIC8qIFdvcmtlck5hdmlnYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTVDQjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8qIFdvcmtlck5ldHdvcmtBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
ck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCmluZGV4IDM1MmRjYzRh
Y2Y3NTE3NmQ5OGFkMzQxMGJlMTUxNjA4MDEwODg1MjQuLmM2YmM0NDdkMzE5MDQwMjRiM2NiZDdj
Y2E2YzBjMjljZmI0ODBhNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xp
ZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hl
ciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0
ZXJzKQorUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyOjpjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJv
bWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRy
PE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQogewogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlw
dEZldGNoZXIsIFdURk1vdmUocGFyYW1ldGVycykpKTsKIH0KIAotQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0
Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJh
bWV0ZXJzKQotICAgIDogbV9jbGllbnQoJmNsaWVudCkKK0NhY2hlZE1vZHVsZVNjcmlwdExvYWRl
cjo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xp
ZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlw
dEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAg
ICA6IE1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQpCiAgICAgLCBtX3Byb21pc2UoJnByb21pc2Up
CiAgICAgLCBtX3NjcmlwdEZldGNoZXIoc2NyaXB0RmV0Y2hlcikKICAgICAsIG1fcGFyYW1ldGVy
cyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQpAQCAtNjEsMTQgKzYxLDE0IEBAIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcjo6fkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcigpCiAgICAgfQogfQogCi1ib29s
IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFVSTCYgc291cmNlVVJMKQorYm9vbCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoRG9j
dW1lbnQmIGRvY3VtZW50LCBVUkwmJiBzb3VyY2VVUkwpCiB7CiAgICAgQVNTRVJUKCFtX2NhY2hl
ZFNjcmlwdCk7CiAgICAgU3RyaW5nIGludGVncml0eSA9IG1fcGFyYW1ldGVycyA/IG1fcGFyYW1l
dGVycy0+aW50ZWdyaXR5KCkgOiBTdHJpbmcgeyB9OwogICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9z
Y3JpcHRGZXRjaGVyLT5yZXF1ZXN0TW9kdWxlU2NyaXB0KGRvY3VtZW50LCBzb3VyY2VVUkwsIFdU
Rk1vdmUoaW50ZWdyaXR5KSk7CiAgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIG1fc291cmNlVVJMID0gc291cmNlVVJMOworICAgIG1fc291cmNlVVJM
ID0gV1RGTW92ZShzb3VyY2VVUkwpOwogCiAgICAgLy8gSWYgdGhlIGNvbnRlbnQgaXMgYWxyZWFk
eSBjYWNoZWQsIHRoaXMgaW1tZWRpYXRlbHkgY2FsbHMgbm90aWZ5RmluaXNoZWQuCiAgICAgbV9j
YWNoZWRTY3JpcHQtPmFkZENsaWVudCgqdGhpcyk7CkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYgcmVz
b3VyY2UsIGNvbnN0IE5lCiAKICAgICBSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBwcm90
ZWN0ZWRUaGlzKCp0aGlzKTsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5u
b3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgbV9jbGll
bnQtPm5vdGlmeUZpbmlzaGVkKCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNl
LnJlbGVhc2VOb25OdWxsKCkpOwogCiAgICAgLy8gUmVtb3ZlIHRoZSBjbGllbnQgYWZ0ZXIgY2Fs
bGluZyBub3RpZnlGaW5pc2hlZCB0byBrZWVwIHRoZSBkYXRhIGJ1ZmZlciBpbgogICAgIC8vIENh
Y2hlZFJlc291cmNlIGFsaXZlIHdoaWxlIG5vdGlmeUZpbmlzaGVkIHByb2Nlc3NlcyB0aGUgcmVz
b3VyY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlci5oCmluZGV4IDQzYWJkODc1YjI0M2ZhZjVmY2Q0ZDk4ZWMzYzVkMjRlNzkw
YjU3MmUuLjA0NDg3NjE4OTlkZWVlN2E4NjU4MjhjMDAxZWRhMWJmNzgzNTMzNjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiTW9kdWxlU2Ny
aXB0TG9hZGVyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzQsNyArMzUsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsK
K2NsYXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNs
YXNzIENhY2hlZFNjcmlwdEZldGNoZXI7CiBjbGFzcyBEZWZlcnJlZFByb21pc2U7CkBAIC00Miwz
MSArNDMsMjMgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKIGNs
YXNzIE1vZHVsZUZldGNoUGFyYW1ldGVyczsKIAotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiwg
cHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CitjbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxlU2NyaXB0TG9hZGVyLCBwcml2YXRlIENhY2hlZFJl
c291cmNlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlcj4gY3JlYXRlKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVk
UHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzPiYmKTsKKyAgICBzdGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRl
KE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlw
dEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZpcnR1
YWwgfkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcigpOwogCi0gICAgYm9vbCBsb2FkKERvY3VtZW50
JiwgY29uc3QgVVJMJiBzb3VyY2VVUkwpOworICAgIGJvb2wgbG9hZChEb2N1bWVudCYsIFVSTCYm
IHNvdXJjZVVSTCk7CiAKICAgICBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyKCkg
eyByZXR1cm4gbV9zY3JpcHRGZXRjaGVyLmdldCgpOyB9CiAgICAgQ2FjaGVkU2NyaXB0KiBjYWNo
ZWRTY3JpcHQoKSB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQogICAgIE1vZHVsZUZl
dGNoUGFyYW1ldGVycyogcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsg
fQotICAgIGNvbnN0IFVSTCYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7
IH0KLQotICAgIHZvaWQgY2xlYXJDbGllbnQoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fY2xp
ZW50KTsKLSAgICAgICAgbV9jbGllbnQgPSBudWxscHRyOwotICAgIH0KIAogcHJpdmF0ZToKLSAg
ICBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVG
ZXRjaFBhcmFtZXRlcnM+JiYpOworICAgIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVy
JiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CiAKICAgICB2b2lkIG5vdGlmeUZp
bmlzaGVkKENhY2hlZFJlc291cmNlJiwgY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7
CiAKLSAgICBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0
ciB9OwogICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IG1fcHJvbWlzZTsKICAgICBSZWY8Q2Fj
aGVkU2NyaXB0RmV0Y2hlcj4gbV9zY3JpcHRGZXRjaGVyOwogICAgIFJlZlB0cjxNb2R1bGVGZXRj
aFBhcmFtZXRlcnM+IG1fcGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2ODhhZDkwZGFlM2VjZTk0OWVhMDliMWVmZWU1ZGEyNmY5
NGM3ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgK
KysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjsKLWNsYXNzIERlZmVycmVkUHJvbWlz
ZTsKLQotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKLXB1YmxpYzoKLSAg
ICB2aXJ0dWFsIH5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQoKSA9IGRlZmF1bHQ7Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
JiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4pID0gMDsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKaW5kZXggYTQzMzc1
ODY1YmJmMWVjNTk3M2JmMTcyYzkxYTM4NTMyMzRlMzc0ZC4uZGYzYzZiNmViYjg0YWY3MmVkMjk1
NWY5OTExZDA3YTg3YWIzNTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJD
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw2ICs0OCw3IEBAIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdE1vZHVsZVNj
cmlwdChEb2N1CiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkU2Ny
aXB0RmV0Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFVSTCYgc291cmNlVVJMLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSwgU3RyaW5n
JiYgaW50ZWdyaXR5LCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4gcmVzb3VyY2VMb2Fk
UHJpb3JpdHkpIGNvbnN0CiB7CisgICAgLy8gV2l0aG91dCBzY3JpcHRpbmcsIHRoZXJlIGlzIG5v
IHdheSB0byBzdGFydCBXb3JrZXJzLgogICAgIGlmICghZG9jdW1lbnQuc2V0dGluZ3MoKS5pc1Nj
cmlwdEVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCA1OGI3ZGY3NjBj
MDBhMzFmZjA4ZWQyMmRlZTIyYThjNzQ0M2FlOGRkLi45ZDY5N2Q0NTliNTYzNDVjYzgzOTYyMDI2
Njc2ZTAwYTk4YmY0OWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01HbG9iYWxPYmplY3QuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSlNXb3JrbGV0
R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJSZWplY3RlZFByb21pc2VUcmFja2VyLmgiCiAjaW5j
bHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxv
YWRlci5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZWRDbG9uZS5oIgogI2luY2x1ZGUgIldlYkNvcmVK
U0NsaWVudERhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtNDIyLDYg
KzQyMyw3OSBAQCBKU0M6OkpTUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Omluc3RhbnRpYXRl
U3RyZWFtaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsbwogfQogI2VuZGlmCiAKK3N0YXRpYyBT
Y3JpcHRNb2R1bGVMb2FkZXIqIHNjcmlwdE1vZHVsZUxvYWRlcihKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBp
ZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKSkgeworICAgICAg
ICBpZiAoYXV0byBkb2N1bWVudCA9IGpzQ2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jhc2UqPihnbG9i
YWxPYmplY3QpLT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiAmZG9j
dW1lbnQtPm1vZHVsZUxvYWRlcigpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cisg
ICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNSZW1vdGVET01XaW5kb3dCYXNlPih2bSkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRz
PEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNv
bnN0IEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1v
ZHVsZUxvYWRlcigpOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2xldEds
b2JhbFNjb3BlQmFzZT4odm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1dvcmts
ZXRHbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVy
KCk7CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisgICAgaWYgKGdsb2JhbE9iamVjdC0+
aW5oZXJpdHM8SlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0Pih2bSkpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworI2VuZGlmCisgICAgZGF0YUxvZygiVW5leHBlY3RlZCBnbG9iYWwgb2Jq
ZWN0OiAiLCBKU1ZhbHVlKGdsb2JhbE9iamVjdCksICJcbiIpOworICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTQzo6SWRlbnRpZmll
ciBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlND
OjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlND
OjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNP
YmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7Cisg
ICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAg
ICAgICAgcmV0dXJuIGxvYWRlci0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwg
bW9kdWxlTmFtZSwgaW1wb3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVy
biB7IH07Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlND
OjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6
OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8q
IGxvYWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBsb2FkZXItPmZldGNoKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9h
ZGVyLCBtb2R1bGVLZXksIHBhcmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpKTsKKyAgICBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAgICBzY29w
ZS5yZWxlYXNlKCk7CisgICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmlu
ZWQoKSk7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0RPTUdsb2Jh
bE9iamVjdDo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBt
b2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRG
ZXRjaGVyKQoreworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2Fk
ZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2Fk
ZXItPmV2YWx1YXRlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVs
ZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsK
K30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxv
YWRlckltcG9ydE1vZHVsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1N0cmluZyogbW9kdWxlTmFtZSwg
SlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJiBzb3VyY2VP
cmlnaW4pCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhp
c09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsK
KyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQor
ICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+aW1wb3J0TW9kdWxlKGds
b2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0ZXJzLCBzb3VyY2VP
cmlnaW4pKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNDOjpKU0lu
dGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0
cnVjdHVyZSgpKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7CisgICAgcHJvbWlzZS0+cmVqZWN0KGds
b2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CisKK0pT
Qzo6SlNPYmplY3QqIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRN
ZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNN
b2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpK
U01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikK
K3sKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9N
R2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2Ny
aXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICByZXR1cm4gbG9hZGVyLT5jcmVh
dGVJbXBvcnRNZXRhUHJvcGVydGllcyhnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxl
S2V5LCBtb2R1bGVSZWNvcmQsIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiBjb25zdHJ1Y3RF
bXB0eU9iamVjdChnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlw
ZU9iamVjdFN0cnVjdHVyZSgpKTsKK30KKwogSlNET01HbG9iYWxPYmplY3QmIGNhbGxlckdsb2Jh
bE9iamVjdChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBj
YWxsRnJhbWUpCiB7CiAgICAgY2xhc3MgR2V0Q2FsbGVyR2xvYmFsT2JqZWN0RnVuY3RvciB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCBi
ODQwNzJkZGQ3NDZiM2Q2YzUxMDYwZDkwNTAxYjVjZWExYjQ5OWIxLi5mNDlhNGNkMjU3MTk3MTE4
OTE3YTdkN2E0YjZjMGUxMWZjNzZiYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTEwNSw2ICsxMDUsMTIgQEAgY2xhc3MgV0VCQ09S
RV9FWFBPUlQgSlNET01HbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7
CiAgICAgc3RhdGljIEpTQzo6SlNQcm9taXNlKiBpbnN0YW50aWF0ZVN0cmVhbWluZyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTT2JqZWN0Kik7CiAjZW5kaWYKIAor
ICAgIHN0YXRpYyBKU0M6OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1Zh
bHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBt
b2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRl
ciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRp
YyBKU0M6OkpTVmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpK
U1ZhbHVlKTsKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVy
SW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwg
SlNDOjpKU1N0cmluZyosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsK
KyAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVBy
b3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTVmFsdWUsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOworCiAgICAgSlNE
T01TdHJ1Y3R1cmVNYXAgbV9zdHJ1Y3R1cmVzOwogICAgIEpTRE9NQ29uc3RydWN0b3JNYXAgbV9j
b25zdHJ1Y3RvcnM7CiAgICAgRE9NR3VhcmRlZE9iamVjdFNldCBtX2d1YXJkZWRPYmplY3RzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXgg
NTYzZWZhMDU3MWI1ZDQ2MmQ5ZTY0NTA4OWYwYmQ4Zjc3ZDE5YTc2OC4uMzEyYTAxMTU4ZThjMjgw
ODNjMDdlNDJkYjg3MjQ1ZmU0ZTVjNTdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0zMzksNTQgKzMzOSw0IEBAIHZvaWQgSlNET01X
aW5kb3dCYXNlOjpmaXJlRnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93
KiB3aW5kb3cpCiAgICAgfQogfQogCi1KU0M6OklkZW50aWZpZXIgSlNET01XaW5kb3dCYXNlOjpt
b2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
OjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwg
SlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hl
cikKLXsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RP
TVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRv
Y3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVy
biBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkucmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxv
YWRlciwgbW9kdWxlTmFtZSwgaW1wb3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOwotICAg
IHJldHVybiB7IH07Ci19Ci0KLUpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFz
ZTo6bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXks
IEpTQzo6SlNWYWx1ZSBwYXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsK
LSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpT
Qzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0
cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkK
LSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVy
KCkuZmV0Y2goZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVy
cywgc2NyaXB0RmV0Y2hlcikpOwotICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2Ug
PSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJu
YWxQcm9taXNlU3RydWN0dXJlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBwcm9taXNl
LT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gcHJvbWlz
ZTsKLX0KLQotSlNDOjpKU1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVh
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVy
KiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1
bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93
QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9i
amVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53
cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2Fk
ZXIoKS5ldmFsdWF0ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1
bGVSZWNvcmQsIHNjcmlwdEZldGNoZXIpOwotICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7
Ci19Ci0KLUpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9h
ZGVySW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpK
U01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBK
U0M6OkpTVmFsdWUgcGFyYW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9y
aWdpbikKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09i
amVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAg
aWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9j
dW1lbnQoKSkKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9k
dWxlTG9hZGVyKCkuaW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1
bGVOYW1lLCBwYXJhbWV0ZXJzLCBzb3VyY2VPcmlnaW4pKTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlKiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKLSAgICBzY29wZS5yZWxlYXNl
KCk7Ci0gICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7Ci0g
ICAgcmV0dXJuIHByb21pc2U7Ci19Ci0KLUpTQzo6SlNPYmplY3QqIEpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6
SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgSlND
OjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2Jq
ZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBp
ZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1
bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmNyZWF0ZUlt
cG9ydE1ldGFQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXks
IG1vZHVsZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5
T2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2Jq
ZWN0U3RydWN0dXJlKCkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDNlZjk4MGRkMjdmNmIy
MTM5ODcwMDhiYTQ3NmM4Y2E2OWYyZjBiNjQuLjUxNDJiMWM3ZGMyNWMyMmZlOTc4OTVlNzVhZTIy
ZWY0ZDFlNTg5ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5oCkBAIC05OSwxMiArOTksNiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRv
d0Jhc2UgOiBwdWJsaWMgSlNET01HbG9iYWxPYmplY3QgewogcHJpdmF0ZToKICAgICB1c2luZyBS
ZXNwb25zZUNhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IGNoYXIqLCBzaXplX3Qp
PjsKIAotICAgIHN0YXRpYyBKU0M6OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlND
OjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVs
ZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAg
IHN0YXRpYyBKU0M6OkpTVmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwg
SlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxl
TG9hZGVySW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiwgSlNDOjpKU1N0cmluZyosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmln
aW4mKTsKLSAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0
TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIq
LCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwotCiAg
ICAgUmVmUHRyPERPTVdpbmRvdz4gbV93cmFwcGVkOwogICAgIFJlZlB0cjxFdmVudD4gbV9jdXJy
ZW50RXZlbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDQyYjI2YzlmNGVhMjE2MjA3ZGU0Yzg2ODIw
YjhhODFiNjAzNWI3ZWIuLjJkNzkzZmZmMjE4NTNhOGExYTc4ODA2NjcyNTBmNTdlNzUyZmUzZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2Nv
cGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZS5jcHAKQEAgLTU5LDExICs1OSwxMSBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZQogICAgICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLAogICAgICZxdWV1ZU1pY3JvdGFza1RvRXZl
bnRMb29wLAogICAgICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LAotICAgIG51
bGxwdHIsIC8vIG1vZHVsZUxvYWRlckltcG9ydE1vZHVsZQotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlclJlc29sdmUKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJGZXRjaAotICAgIG51
bGxwdHIsIC8vIG1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzCi0gICAgbnVs
bHB0ciwgLy8gbW9kdWxlTG9hZGVyRXZhbHVhdGUKKyAgICAmbW9kdWxlTG9hZGVySW1wb3J0TW9k
dWxlLAorICAgICZtb2R1bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1bGVMb2FkZXJGZXRjaCwK
KyAgICAmbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMsCisgICAgJm1vZHVs
ZUxvYWRlckV2YWx1YXRlLAogICAgICZwcm9taXNlUmVqZWN0aW9uVHJhY2tlciwKICAgICAmcmVw
b3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1
dGlvbk93bmVyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggMzVmYTZlMzI3N2ZiMGQ0YmUwZTBlMWVkYzQz
NzIyZWRhZGZjOGFmMi4uOWZhZWM5NTljMzlkMTc0ODE4MWM5ODY1MDAzZDVhODZmMTdmNWUzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2Nv
cGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9i
YWxTY29wZUJhc2UuY3BwCkBAIC00OSwxMSArNDksMTEgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUgSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRh
YmwKICAgICAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywKICAgICBudWxscHRyLCAvLyBxdWV1ZU1p
Y3JvdGFza1RvRXZlbnRMb29wCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVv
dXQsCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZl
dGNoCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRp
ZXMKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2Fk
ZXJJbXBvcnRNb2R1bGUsCisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxv
YWRlckZldGNoLAorICAgICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywK
KyAgICAmbW9kdWxlTG9hZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2Vy
LAogICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50
U2NyaXB0RXhlY3V0aW9uT3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01v
ZHVsZVNjcmlwdExvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZWFiMTIzYWVlZWIwMmU4YTI2Mzc4YjMy
ZTE5NTdkMzMzOTVjYWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXIuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKKworY2xhc3MgTW9k
dWxlU2NyaXB0TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlU2NyaXB0TG9hZGVyPiB7
CitwdWJsaWM6CisgICAgdmlydHVhbCB+TW9kdWxlU2NyaXB0TG9hZGVyKCkgPSBkZWZhdWx0Owor
CisgICAgdm9pZCBjbGVhckNsaWVudCgpCisgICAgeworICAgICAgICBBU1NFUlQobV9jbGllbnQp
OworICAgICAgICBtX2NsaWVudCA9IG51bGxwdHI7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAg
TW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50KQorICAg
ICAgICA6IG1fY2xpZW50KCZjbGllbnQpCisgICAgeworICAgIH0KKworICAgIE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudCogbV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNs
aWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY5OTVmNDhlZTNkMWUwMmMxZDhjOWM5ZGEyYmQ1ODIzNmYzYmEw
N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIE1vZHVsZVNjcmlwdExvYWRlcjsKK2NsYXNzIERlZmVycmVkUHJvbWlz
ZTsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIH5Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFs
IHZvaWQgbm90aWZ5RmluaXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZl
cnJlZFByb21pc2U+KSA9IDA7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBhYTViODBiNTg2Yjc5ZTBlNTc1MDFj
ZDUxMDc4ZGYyNWE2MjVlNWQ5Li5jMmU1YmU1ZWFmZjM4YjQzMDk1ZTAyMDI0ZGNhNmRjMjBiNzlj
YTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxv
YWRlci5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRTY3Jp
cHRGZXRjaGVyLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVk
LmgiCkBAIC00MSw2ICs0MCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2lu
Y2x1ZGUgIlN1YnJlc291cmNlSW50ZWdyaXR5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50
RGF0YS5oIgorI2luY2x1ZGUgIldvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0NvbXBsZXRpb24uaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0ludGVybmFsUHJvbWlzZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTW9kdWxlUmVj
b3JkLmg+CkBAIC01Miw4ICs1Miw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2NyaXB0
TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50KQotICAg
IDogbV9kb2N1bWVudChkb2N1bWVudCkKK1NjcmlwdE1vZHVsZUxvYWRlcjo6U2NyaXB0TW9kdWxl
TG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE93bmVyVHlwZSBvd25lclR5
cGUpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fb3duZXJUeXBlKG93bmVyVHlw
ZSkKIHsKIH0KIApAQCAtNjgsNyArNjksNyBAQCBzdGF0aWMgYm9vbCBpc1Jvb3RNb2R1bGUoSlND
OjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5KQogICAgIHJldHVybiBpbXBvcnRlck1vZHVsZUtl
eS5pc1N5bWJvbCgpIHx8IGltcG9ydGVyTW9kdWxlS2V5LmlzVW5kZWZpbmVkKCk7CiB9CiAKLXN0
YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgc3BlY2lmaWVyLCBjb25zdCBVUkwmIGJhc2VVUkwp
CitzdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5
cGUgb3duZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3QgVVJMJiBiYXNlVVJM
KQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFw
cGFwaXMuaHRtbCNyZXNvbHZlLWEtbW9kdWxlLXNwZWNpZmllcgogCkBAIC03OSw3ICs4MCwxMiBA
QCBzdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdAogICAgIGlmICghc3BlY2lmaWVyLnN0YXJ0c1dpdGgo
Jy8nKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4vIikgJiYgIXNwZWNpZmllci5zdGFydHNX
aXRoKCIuLi8iKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1v
ZHVsZSBzcGVjaWZpZXIsICciX3MsIHNwZWNpZmllciwgIicgZG9lcyBub3Qgc3RhcnQgd2l0aCBc
Ii9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiBSZWZlcmVuY2VkIGZyb20gIl9zLCBiYXNlVVJMLnN0
cmluZygpKSk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IGRvY3VtZW50LmNvbXBsZXRlVVJMKHNwZWNp
ZmllciwgYmFzZVVSTCk7CisgICAgVVJMIHJlc3VsdDsKKyAgICBpZiAob3duZXJUeXBlID09IFNj
cmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlOjpEb2N1bWVudCkKKyAgICAgICAgcmVzdWx0ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmNvbXBsZXRlVVJMKHNwZWNpZmllciwgYmFzZVVS
TCk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBVUkwoYmFzZVVSTCwgc3BlY2lmaWVyKTsK
KwogICAgIGlmICghcmVzdWx0LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKG1ha2VTdHJpbmcoIk1vZHVsZSBuYW1lLCAnIl9zLCByZXN1bHQuc3RyaW5nKCksICInIGRv
ZXMgbm90IHJlc29sdmUgdG8gYSB2YWxpZCBVUkwuIl9zKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
QEAgLTEwNyw3ICsxMTMsNyBAQCBKU0M6OklkZW50aWZpZXIgU2NyaXB0TW9kdWxlTG9hZGVyOjpy
ZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LAogICAgIFVSTCBiYXNl
VVJMID0gcmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTCgqanNHbG9iYWxPYmplY3QsIGltcG9ydGVy
TW9kdWxlS2V5KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAg
YXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmll
ciwgYmFzZVVSTCk7CisgICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1f
Y29udGV4dCwgbV9vd25lclR5cGUsIHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1
bHQpIHsKICAgICAgICAgSlNDOjp0aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9iamVjdCwgc2NvcGUs
IHJlc3VsdC5lcnJvcigpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE2MSwxMyArMTY3LDE5
IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlND
OjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPCiAgICAgaWYgKGF1dG8qIHNjcmlwdEZldGNoUGFy
YW1ldGVycyA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJz
Kj4odm0sIHBhcmFtZXRlcnMpKQogICAgICAgICB0b3BMZXZlbEZldGNoUGFyYW1ldGVycyA9IHN0
YXRpY19jYXN0PE1vZHVsZUZldGNoUGFyYW1ldGVycyo+KCZzY3JpcHRGZXRjaFBhcmFtZXRlcnMt
PnBhcmFtZXRlcnMoKSk7CiAKLSAgICBhdXRvIGxvYWRlciA9IENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19jYXN0PENhY2hlZFNj
cmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hlcio+KHNjcmlwdEZl
dGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzKSk7Ci0g
ICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKLSAgICBpZiAoIWxvYWRlci0+bG9h
ZChtX2RvY3VtZW50LCBjb21wbGV0ZWRVUkwpKSB7Ci0gICAgICAgIGxvYWRlci0+Y2xlYXJDbGll
bnQoKTsKLSAgICAgICAgbV9sb2FkZXJzLnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOwotICAgICAg
ICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihkZWZlcnJlZC5nZXQoKSwgTW9kdWxlRmV0
Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFp
bGVkLiJfcyk7Ci0gICAgICAgIHJldHVybiBqc1Byb21pc2U7CisgICAgaWYgKG1fb3duZXJUeXBl
ID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgYXV0byBsb2FkZXIgPSBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNf
Y2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNo
ZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFy
YW1ldGVycykpOworICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOworICAg
ICAgICBpZiAoIWxvYWRlci0+bG9hZChkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KSwgV1RG
TW92ZShjb21wbGV0ZWRVUkwpKSkgeworICAgICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgp
OworICAgICAgICAgICAgbV9sb2FkZXJzLnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOworICAgICAg
ICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoZGVmZXJyZWQuZ2V0KCksIE1vZHVs
ZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0
IGZhaWxlZC4iX3MpOworICAgICAgICAgICAgcmV0dXJuIGpzUHJvbWlzZTsKKyAgICAgICAgfQor
ICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8Q2FjaGVkU2Ny
aXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0
Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKKyAg
ICAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgbG9hZGVyLT5s
b2FkKG1fY29udGV4dCwgV1RGTW92ZShjb21wbGV0ZWRVUkwpKTsKICAgICB9CiAKICAgICByZXR1
cm4ganNQcm9taXNlOwpAQCAtMTc2LDcgKzE4OCw3IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2Uq
IFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxP
CiBVUkwgU2NyaXB0TW9kdWxlTG9hZGVyOjptb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYg
anNHbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSkKIHsKICAgICBpZiAo
bW9kdWxlS2V5VmFsdWUuaXNTeW1ib2woKSkKLSAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQudXJs
KCk7CisgICAgICAgIHJldHVybiBtX2NvbnRleHQudXJsKCk7CiAKICAgICBBU1NFUlQobW9kdWxl
S2V5VmFsdWUuaXNTdHJpbmcoKSk7CiAgICAgcmV0dXJuIFVSTChVUkwoKSwgYXNTdHJpbmcobW9k
dWxlS2V5VmFsdWUpLT52YWx1ZSgmanNHbG9iYWxPYmplY3QpKTsKQEAgLTE4Nyw4ICsxOTksMTEg
QEAgVVJMIFNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTChKU0M6
OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE8KICAgICBKU0M6OlZNJiB2bSA9IGpzR2xvYmFsT2Jq
ZWN0LnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0g
ICAgaWYgKGlzUm9vdE1vZHVsZShtb2R1bGVLZXlWYWx1ZSkpCi0gICAgICAgIHJldHVybiBtX2Rv
Y3VtZW50LmJhc2VVUkwoKTsKKyAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkg
eworICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkKKyAgICAg
ICAgICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5iYXNlVVJMKCk7Cisg
ICAgICAgIHJldHVybiBtX2NvbnRleHQudXJsKCk7CisgICAgfQogCiAgICAgQVNTRVJUKCFpc1Jv
b3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKTsKICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNT
dHJpbmcoKSk7CkBAIC0yMTksOCArMjM0LDE0IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVM
b2FkZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKCiAg
ICAgaWYgKCFzb3VyY2VVUkwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5
cGVFcnJvcihqc0dsb2JhbE9iamVjdCwgc2NvcGUsICJNb2R1bGUga2V5IGlzIGFuIGludmFsaWQg
VVJMLiJfcyk7CiAKLSAgICBpZiAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCi0g
ICAgICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAq
bW9kdWxlUmVjb3JkKTsKKyAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVu
dCkgeworICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250
ZXh0KS5mcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0
ZU1vZHVsZShzb3VyY2VVUkwsICptb2R1bGVSZWNvcmQpOworICAgIH0gZWxzZSB7CisgICAgICAg
IEFTU0VSVChpczxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZT4obV9jb250ZXh0KSk7CisgICAg
ICAgIGlmIChhdXRvKiBzY3JpcHQgPSBkb3duY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZT4obV9jb250ZXh0KS5zY3JpcHQoKSkKKyAgICAgICAgICAgIHJldHVybiBzY3JpcHQtPmV2YWx1
YXRlTW9kdWxlKCptb2R1bGVSZWNvcmQpOworICAgIH0KICAgICByZXR1cm4gSlNDOjpqc1VuZGVm
aW5lZCgpOwogfQogCkBAIC0yNDgsMjMgKzI2OSwzNiBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1vZHVsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBq
cwogICAgIFVSTCBiYXNlVVJMOwogICAgIFJlZlB0cjxKU0M6OlNjcmlwdEZldGNoZXI+IHNjcmlw
dEZldGNoZXI7CiAgICAgaWYgKHNvdXJjZU9yaWdpbi5pc051bGwoKSkgewotICAgICAgICBiYXNl
VVJMID0gbV9kb2N1bWVudC5iYXNlVVJMKCk7Ci0gICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNo
ZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9kb2N1bWVudC5jaGFyc2V0KCkpOworICAgICAgICBT
dHJpbmcgY2hhcnNldDsKKyAgICAgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9j
dW1lbnQpIHsKKyAgICAgICAgICAgIGJhc2VVUkwgPSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250
ZXh0KS5iYXNlVVJMKCk7CisgICAgICAgICAgICBjaGFyc2V0ID0gZG93bmNhc3Q8RG9jdW1lbnQ+
KG1fY29udGV4dCkuY2hhcnNldCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFz
ZVVSTCA9IG1fY29udGV4dC51cmwoKTsKKyAgICAgICAgICAgIGNoYXJzZXQgPSAidXRmLTgiX3M7
CisgICAgICAgIH0KKyAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6
OmNyZWF0ZShXVEZNb3ZlKGNoYXJzZXQpKTsKICAgICB9IGVsc2UgewogICAgICAgICBiYXNlVVJM
ID0gVVJMKFVSTCgpLCBzb3VyY2VPcmlnaW4uc3RyaW5nKCkpOwogICAgICAgICBpZiAoIWJhc2VV
UkwuaXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuIHJlamVjdFByb21pc2UoZ2xvYmFsT2Jq
ZWN0LCBUeXBlRXJyb3IsICJJbXBvcnRlciBtb2R1bGUga2V5IGlzIG5vdCBhIFN5bWJvbCBvciBh
IFN0cmluZy4iX3MpOwogCisgICAgICAgIFN0cmluZyBjaGFyc2V0OworICAgICAgICBpZiAobV9v
d25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkKKyAgICAgICAgICAgIGNoYXJzZXQgPSBk
b3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5jaGFyc2V0KCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGNoYXJzZXQgPSAidXRmLTgiX3M7CisKICAgICAgICAgaWYgKHNvdXJjZU9yaWdp
bi5mZXRjaGVyKCkpCiAgICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gc291cmNlT3JpZ2luLmZl
dGNoZXIoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hl
ZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7CisgICAgICAgICAg
ICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKFdURk1vdmUoY2hh
cnNldCkpOwogICAgIH0KICAgICBBU1NFUlQoYmFzZVVSTC5pc1ZhbGlkKCkpOwogICAgIEFTU0VS
VChzY3JpcHRGZXRjaGVyKTsKIAogICAgIGF1dG8gc3BlY2lmaWVyID0gbW9kdWxlTmFtZS0+dmFs
dWUoanNHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNp
ZmllcihtX2RvY3VtZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVzdWx0ID0g
cmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2NvbnRleHQsIG1fb3duZXJUeXBlLCBzcGVjaWZpZXIs
IGJhc2VVUkwpOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4gcmVqZWN0UHJvbWlz
ZShnbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgcmVzdWx0LmVycm9yKCkpOwogCkBAIC0yODgsNjIg
KzMyMiw5OCBAQCBKU0M6OkpTT2JqZWN0KiBTY3JpcHRNb2R1bGVMb2FkZXI6OmNyZWF0ZUltcG9y
dE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplYwogICAgIHJldHVybiBtZXRhUHJvcGVy
dGllczsKIH0KIAotdm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlciYgbG9hZGVyLCBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBwcm9t
aXNlKQordm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlw
dExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVyLCBVUkwmJiBzb3VyY2VVUkwsIFJlZjxEZWZlcnJl
ZFByb21pc2U+IHByb21pc2UpCiB7CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQK
IAotICAgIFVSTCBzb3VyY2VVUkwgPSBsb2FkZXIuc291cmNlVVJMKCk7Ci0gICAgaWYgKCFtX2xv
YWRlcnMucmVtb3ZlKCZsb2FkZXIpKQorICAgIGlmICghbV9sb2FkZXJzLnJlbW92ZSgmbW9kdWxl
U2NyaXB0TG9hZGVyKSkKICAgICAgICAgcmV0dXJuOwotICAgIGxvYWRlci5jbGVhckNsaWVudCgp
OworICAgIG1vZHVsZVNjcmlwdExvYWRlci5jbGVhckNsaWVudCgpOwogCi0gICAgYXV0byYgY2Fj
aGVkU2NyaXB0ID0gKmxvYWRlci5jYWNoZWRTY3JpcHQoKTsKKyAgICBpZiAobV9vd25lclR5cGUg
PT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBhdXRvJiBsb2FkZXIgPSBzdGF0aWNf
Y2FzdDxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImPihtb2R1bGVTY3JpcHRMb2FkZXIpOworICAg
ICAgICBhdXRvJiBjYWNoZWRTY3JpcHQgPSAqbG9hZGVyLmNhY2hlZFNjcmlwdCgpOwogCi0gICAg
aWYgKGNhY2hlZFNjcmlwdC5yZXNvdXJjZUVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkpIHsKLSAg
ICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9h
ZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQucmVzb3VyY2VF
cnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CisgICAgICAgICAgICBwcm9taXNlLT5yZWplY3Qo
VHlwZUVycm9yLCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1Pcmln
aW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC5lcnJvck9jY3VycmVkKCkpIHsKLSAgICAg
ICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoKnByb21pc2UsIE1vZHVsZUZldGNoRmFp
bHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4i
X3MpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LmVy
cm9yT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJy
b3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIklt
cG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KIAotICAgIGlmIChjYWNoZWRTY3JpcHQud2FzQ2FuY2VsZWQoKSkgewotICAg
ICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcigqcHJvbWlzZSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNh
bmNlbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNoZWRT
Y3JpcHQud2FzQ2FuY2VsZWQoKSkgeworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3
b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2Vs
ZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIGlmICghTUlNRVR5cGVSZWdpc3RyeTo6aXNT
dXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUoY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5
cGUoKSkpIHsKLSAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKLSAgICAgICAg
Ly8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBo
ZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1F
IHR5cGUuCi0gICAgICAgIC8vIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGZldGNoaW5nIGEgY2xh
c3NpYyBzY3JpcHQgZG9lcyBub3QgaW5jbHVkZSBNSU1FIHR5cGUgY2hlY2tpbmcuIEluIGNvbnRy
YXN0LCBtb2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwgdG8gbG9hZCBpZiB0aGV5IGFyZSBub3Qgb2Yg
YSBjb3JyZWN0IE1JTUUgdHlwZS4KLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwg
bWFrZVN0cmluZygiJyIsIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCksICInIGlz
IG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KKyAgICAgICAgaWYgKCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3Jp
cHRNSU1FVHlwZShjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpKSkgeworICAgICAg
ICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBp
cy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKKyAgICAgICAgICAgIC8vIFRoZSBy
ZXN1bHQgb2YgZXh0cmFjdGluZyBhIE1JTUUgdHlwZSBmcm9tIHJlc3BvbnNlJ3MgaGVhZGVyIGxp
c3QgKGlnbm9yaW5nIHBhcmFtZXRlcnMpIGlzIG5vdCBhIEphdmFTY3JpcHQgTUlNRSB0eXBlLgor
ICAgICAgICAgICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBjbGFzc2lj
IHNjcmlwdCBkb2VzIG5vdCBpbmNsdWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29udHJhc3Qs
IG1vZHVsZSBzY3JpcHRzIHdpbGwgZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNv
cnJlY3QgTUlNRSB0eXBlLgorICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwg
bWFrZVN0cmluZygiJyIsIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCksICInIGlz
IG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQogCi0gICAgaWYgKGF1dG8qIHBhcmFtZXRlcnMgPSBsb2FkZXIucGFyYW1l
dGVycygpKSB7Ci0gICAgICAgIGlmICghbWF0Y2hJbnRlZ3JpdHlNZXRhZGF0YShjYWNoZWRTY3Jp
cHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkgewotICAgICAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiQ2Fubm90IGxvYWQgc2NyaXB0ICIsIGludGVncml0
eU1pc21hdGNoRGVzY3JpcHRpb24oY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHko
KSkpKTsKKyAgICAgICAgaWYgKGF1dG8qIHBhcmFtZXRlcnMgPSBsb2FkZXIucGFyYW1ldGVycygp
KSB7CisgICAgICAgICAgICBpZiAoIW1hdGNoSW50ZWdyaXR5TWV0YWRhdGEoY2FjaGVkU2NyaXB0
LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5y
ZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCJDYW5ub3QgbG9hZCBzY3JpcHQgIiwgaW50ZWdy
aXR5TWlzbWF0Y2hEZXNjcmlwdGlvbihjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0
eSgpKSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorCisgICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVy
bCgpOworICAgICAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCBy
ZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJl
c291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0
byBNZW1vcnlDYWNoZS4KKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVu
dHMgdGhyb3VnaCByZWRpcmVjdGlvbnMuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAorICAgICAgICBpZiAoIWNhY2hlZFNjcmlwdC5o
YXNSZWRpcmVjdGlvbnMoKSAmJiBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5zb3VyY2UoKSAhPSBS
ZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKKyAgICAgICAgICAgIGlm
IChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgcmVz
cG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZp
ZXIoKSk7CisgICAgICAgIH0KKworICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFw
LmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsKKyAgICAgICAg
cHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0ds
b2JhbE9iamVjdCkgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVh
dGUoanNHbG9iYWxPYmplY3Qudm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUg
eyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNv
dXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgp
IH0pOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvJiBsb2FkZXIgPSBz
dGF0aWNfY2FzdDxXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXImPihtb2R1bGVTY3JpcHRMb2FkZXIp
OworICAgICAgICBhdXRvJiB3b3JrZXJTY3JpcHRMb2FkZXIgPSBsb2FkZXIuc2NyaXB0TG9hZGVy
KCk7CisKKyAgICAgICAgaWYgKHdvcmtlclNjcmlwdExvYWRlci5mYWlsZWQoKSkgeworICAgICAg
ICAgICAgaWYgKHdvcmtlclNjcmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7
CisgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgIkNyb3NzLW9yaWdp
biBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9s
aWN5LiJfcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmVycm9yKCkuaXNDYW5jZWxsYXRpb24oKSkg
eworICAgICAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2Uu
Z2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkLCAiSW1wb3J0aW5nIGEg
bW9kdWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4iX3MpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJy
b3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIklt
cG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICBVUkwgcmVzcG9uc2VVUkwgPSBjYWNoZWRTY3JpcHQu
cmVzcG9uc2UoKS51cmwoKTsKLSAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwg
d2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJl
IHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBj
YWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNrIGZy
YWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAotICAgIGlmICghY2FjaGVkU2NyaXB0Lmhhc1JlZGly
ZWN0aW9ucygpICYmIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpICE9IFJlc291cmNl
UmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgewotICAgICAgICBpZiAoc291cmNlVVJM
Lmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQotICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJh
Z21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgfQor
ICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVU
eXBlKHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkpKSB7CisgICAgICAgICAg
ICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0
bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAorICAgICAgICAgICAgLy8gVGhlIHJlc3Vs
dCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAo
aWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCisgICAg
ICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNzaWMgc2Ny
aXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFzdCwgbW9k
dWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEgY29ycmVj
dCBNSU1FIHR5cGUuCisgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtl
U3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlNRVR5cGUoKSwgIicgaXMg
bm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CiAKLSAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3Vy
Y2VVUkwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsKLSAgICBwcm9taXNlLT5yZXNv
bHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7
Ci0gICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0
LnZtKCksCi0gICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsg
JmNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9h
ZGVyLnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOwotICAgIH0pOworICAgICAg
ICBVUkwgcmVzcG9uc2VVUkwgPSB3b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VVUkwoKTsKKwor
ICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5n
KCksIHJlc3BvbnNlVVJMKTsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhb
Jl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAgICAgICAgICAgcmV0
dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKKyAgICAg
ICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2Ny
aXB0TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJj
ZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNT
b3VyY2VDb2RlKCkgfSk7CisgICAgICAgIH0pOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAppbmRleCBkZTI5ZDJmNGJm
MDk2YjYwYzM2OTk4MDMxNmMxNDg2YjI4MmFiZjA5Li5kZjM0ZDU1MWExMWNkOThmNGUyMzZhMmFh
MWY0ODI3OWQ5NjRjNjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRNb2R1bGVMb2FkZXIuaApAQCAtMjUsOCArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlci5oIgor
I2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDUsMTYgKzQ1LDE3IEBAIGNsYXNzIFNvdXJjZU9yaWdp
bjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKIGNsYXNzIEpTRE9N
R2xvYmFsT2JqZWN0OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotY2xhc3MgU2Ny
aXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQgeworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNjcmlwdE1vZHVs
ZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0
IFNjcmlwdE1vZHVsZUxvYWRlcihEb2N1bWVudCYpOworICAgIGVudW0gY2xhc3MgT3duZXJUeXBl
IDogdWludDhfdCB7IERvY3VtZW50LCBXb3JrZXJPcldvcmtsZXQgfTsKKyAgICBleHBsaWNpdCBT
Y3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE93bmVyVHlwZSk7CiAg
ICAgflNjcmlwdE1vZHVsZUxvYWRlcigpOwogCi0gICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyBy
ZXR1cm4gbV9kb2N1bWVudDsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQo
KSB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogICAgIEpTQzo6SWRlbnRpZmllciByZXNvbHZlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1v
ZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNj
cmlwdEZldGNoZXIpOwogICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGZldGNoKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtl
eSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsK
QEAgLTYzLDEzICs2NCwxNSBAQCBjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2
YXRlIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7CiAgICAgSlNDOjpKU09iamVjdCog
Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpT
VmFsdWUpOwogCiBwcml2YXRlOgotICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4pIGZpbmFsOworICAgIHZvaWQg
bm90aWZ5RmluaXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFBy
b21pc2U+KSBmaW5hbDsKKwogICAgIFVSTCBtb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYs
IEpTQzo6SlNWYWx1ZSk7CiAgICAgVVJMIHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpK
U0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVu
dDsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBtX2NvbnRleHQ7CiAgICAgSGFzaE1hcDxT
dHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKLSAgICBIYXNoU2V0PFJl
ZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7CisgICAgSGFzaFNldDxSZWY8
TW9kdWxlU2NyaXB0TG9hZGVyPj4gbV9sb2FkZXJzOworICAgIE93bmVyVHlwZSBtX293bmVyVHlw
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg2ZmU3ZTc3ZThmOTllZTM5MDMyNGQyNzM0MGM1NDRkYjJiZDRlOWYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
Y3BwCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisKKyNpbmNsdWRlICJDYWNoZWRT
Y3JpcHRGZXRjaGVyLmgiCisjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0RPTVByb21p
c2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgorI2luY2x1
ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIu
aCIKKyNpbmNsdWRlICJTY3JpcHRNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRTb3Vy
Y2VDb2RlLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcj4gV29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyOjpjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVy
cmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwg
UmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2Us
IHNjcmlwdEZldGNoZXIsIFdURk1vdmUocGFyYW1ldGVycykpKTsKK30KKworV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0
Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJh
bWV0ZXJzKQorICAgIDogTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCkKKyAgICAsIG1fcHJvbWlz
ZSgmcHJvbWlzZSkKKyAgICAsIG1fc2NyaXB0RmV0Y2hlcihzY3JpcHRGZXRjaGVyKQorICAgICwg
bV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCisgICAgLCBtX3NjcmlwdExvYWRlcihX
b3JrZXJTY3JpcHRMb2FkZXI6OmNyZWF0ZSgpKQoreworfQorCitXb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXI6On5Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoKQoreworICAgIG1fc2NyaXB0TG9hZGVy
LT5jYW5jZWwoKTsKK30KKworYm9vbCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVVJMJiYgc291cmNlVVJMKQoreworICAgIG1f
c291cmNlVVJMID0gV1RGTW92ZShzb3VyY2VVUkwpOworCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QgeyBtX3NvdXJjZVVSTCB9OworCisgICAgRmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsK
KyAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKKyAgICBm
ZXRjaE9wdGlvbnMuY2FjaGUgPSBGZXRjaE9wdGlvbnM6OkNhY2hlOjpEZWZhdWx0OworICAgIGZl
dGNoT3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZvbGxvdzsKKyAg
ICAvLyBGSVhNRTogUHJvcGFnYXRlIGNyZWRlbnRpYWxzLgorICAgIC8vIGZldGNoT3B0aW9ucy5j
cmVkZW50aWFscyA9IHNjcmlwdEZldGNoSm9iLmNyZWRlbnRpYWxzOworICAgIGF1dG8gY29udGVu
dFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgPSBjb250ZXh0LnNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1l
bnQ6OkRvTm90RW5mb3JjZSA6IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZv
cmNlQ2hpbGRTcmNEaXJlY3RpdmU7CisKKyAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJv
bm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZmV0Y2hPcHRpb25zKSwg
Y29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZTo6QWxs
LCAqdGhpcyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCit7CisgICAgQVNTRVJUKG1fcHJvbWlzZSk7CisKKyAg
ICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKyAgICBpZiAobV9jbGllbnQp
CisgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJj
ZVVSTCksIG1fcHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNGQ5NzdiZjFjMDQyZDcwNTU5NzJkZWJjYjQ0MWY5ODFmOGIyMTFkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9h
ZGVyQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZWZlcnJlZFByb21pc2U7CitjbGFzcyBKU0RP
TUdsb2JhbE9iamVjdDsKK2NsYXNzIE1vZHVsZUZldGNoUGFyYW1ldGVyczsKK2NsYXNzIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFz
cyBXb3JrZXJTY3JpcHRMb2FkZXI7CisKK2NsYXNzIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciBm
aW5hbCA6IHB1YmxpYyBNb2R1bGVTY3JpcHRMb2FkZXIsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9h
ZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdvcmtlck1vZHVsZVNjcmlwdExv
YWRlcj4gY3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYs
IENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsK
KworICAgIHZpcnR1YWwgfldvcmtlck1vZHVsZVNjcmlwdExvYWRlcigpOworCisgICAgYm9vbCBs
b2FkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBVUkwmJiBzb3VyY2VVUkwpOworCisgICAgQ2Fj
aGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlcigpIHsgcmV0dXJuIG1fc2NyaXB0RmV0Y2hl
ci5nZXQoKTsgfQorICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyogcGFyYW1ldGVycygpIHsgcmV0
dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQorICAgIFdvcmtlclNjcmlwdExvYWRlciYgc2NyaXB0
TG9hZGVyKCkgeyByZXR1cm4gbV9zY3JpcHRMb2FkZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAg
ICBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVm
ZXJyZWRQcm9taXNlJiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBh
cmFtZXRlcnM+JiYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9u
ZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgbm90aWZ5Rmlu
aXNoZWQoKSBmaW5hbDsKKworICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IG1fcHJvbWlzZTsK
KyAgICBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hlcj4gbV9zY3JpcHRGZXRjaGVyOworICAgIFJlZlB0
cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+IG1fcGFyYW1ldGVyczsKKyAgICBSZWY8V29ya2VyU2Ny
aXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKKyAgICBVUkwgbV9zb3VyY2VVUkw7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA5YjIxMzhi
NzdjMTgwZDcyMDk1MTgwMGUxNGUzNDdhMTQzZTk3MTcxLi41NGNmZjA0YTk2ZGJjODA5ZDYzNmFh
ZWM4ZWNiMjA1ZTQ2NzdmMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYxNSw3ICs2
MTUsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYg
c2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsLCBEb2N1bQogICAgICwgbV9kb2N1bWVudENyZWF0aW9u
VGltZShNb25vdG9uaWNUaW1lOjpub3coKSkKICNlbmRpZgogICAgICwgbV9zY3JpcHRSdW5uZXIo
bWFrZVVuaXF1ZTxTY3JpcHRSdW5uZXI+KCp0aGlzKSkKLSAgICAsIG1fbW9kdWxlTG9hZGVyKG1h
a2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9hZGVyPigqdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRl
cihtYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxvYWRl
cjo6T3duZXJUeXBlOjpEb2N1bWVudCkpCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgLCBtX2FwcGx5
UGVuZGluZ1hTTFRyYW5zZm9ybXNUaW1lcigqdGhpcywgJkRvY3VtZW50OjphcHBseVBlbmRpbmdY
U0xUcmFuc2Zvcm1zVGltZXJGaXJlZCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2Fk
YWJsZU1vZHVsZVNjcmlwdC5jcHAKaW5kZXggOWEyNWMxNjU4OGVlY2FkNjc4ZmI5MTFlYzg2MjJm
NDI0MjU5MmI1YS4uNDhlYzA4NTFhNDU3ZDliYTQ3NDczZmVjMjhkN2I0OTMxMmI3ODhiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCkBAIC04OCwxNiAr
ODgsNCBAQCB2b2lkIExvYWRhYmxlTW9kdWxlU2NyaXB0OjpleGVjdXRlKFNjcmlwdEVsZW1lbnQm
IHNjcmlwdEVsZW1lbnQpCiAgICAgc2NyaXB0RWxlbWVudC5leGVjdXRlTW9kdWxlU2NyaXB0KCp0
aGlzKTsKIH0KIAotdm9pZCBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFVSTCYgcm9vdFVSTCkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1
bWVudC5mcmFtZSgpKQotICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgq
dGhpcywgcm9vdFVSTC5zdHJpbmcoKSwgbV9wYXJhbWV0ZXJzLmNvcHlSZWYoKSk7Ci19Ci0KLXZv
aWQgTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRv
Y3VtZW50LmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0
KCp0aGlzLCBzb3VyY2VDb2RlKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVN
b2R1bGVTY3JpcHQuaAppbmRleCBiYjc5OTU0ZDdiOTliMGVkMDZiZmU1NWVmODU0ZWNjZTIxZjM1
ODc3Li5kMjUzNTk2M2Y2NDhiMDJhOGEwMWZkNjNiYjFlMzgxMzg2Y2VlNDM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaApAQCAtNTAsMTUgKzUwLDE0IEBAIGNs
YXNzIExvYWRhYmxlTW9kdWxlU2NyaXB0IGZpbmFsIDogcHVibGljIExvYWRhYmxlU2NyaXB0IHsK
IAogICAgIHZvaWQgc2V0RXJyb3IoRXJyb3ImJik7CiAKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQm
LCBjb25zdCBVUkwmIHJvb3RVUkwpOwotICAgIHZvaWQgbG9hZChEb2N1bWVudCYsIGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmKTsKLQogICAgIHZvaWQgbm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVk
U3RyaW5nSW1wbCYpOwogICAgIHZvaWQgbm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6
RXJyb3ImJik7CiAgICAgdm9pZCBub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKIAogICAgIFVuaXF1
ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleS5nZXQo
KTsgfQogCisgICAgTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4g
bV9wYXJhbWV0ZXJzLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgTG9hZGFibGVNb2R1bGVTY3Jp
cHQoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBpbnRlZ3JpdHksIFJlZmVycmVy
UG9saWN5LCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSwgY29uc3QgU3RyaW5nJiBjaGFy
c2V0LCBjb25zdCBBdG9tU3RyaW5nJiBpbml0aWF0b3JOYW1lLCBib29sIGlzSW5Vc2VyQWdlbnRT
aGFkb3dUcmVlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDA1NzU4
YjYwMGM3NTIyYjQ3ZjM2NGJhNmExOGQzNWYxNzMxMTA3ZjkuLjVlOTlmMGY1Nzc3YjNiMjE1OGRk
MGZhNGJjMzgyNzc2Y2RiMzQ4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAK
QEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJMb2FkYWJsZUNsYXNzaWNTY3JpcHQuaCIKICNp
bmNsdWRlICJMb2FkYWJsZU1vZHVsZVNjcmlwdC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0
cnkuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQZW5k
aW5nU2NyaXB0LmgiCiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5j
bHVkZSAiU1ZHU2NyaXB0RWxlbWVudC5oIgpAQCAtMzUxLDggKzM1MiwxMSBAQCBib29sIFNjcmlw
dEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRT
dGFydFBvc2l0aW9uKQogICAgICAgICAgICAgc2NyaXB0Q2hhcnNldCgpLAogICAgICAgICAgICAg
bV9lbGVtZW50LmxvY2FsTmFtZSgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmlzSW5Vc2VyQWdl
bnRTaGFkb3dUcmVlKCkpOwotICAgICAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50
KCksIG1vZHVsZVNjcmlwdFJvb3RVUkwpOwogICAgICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RG
TW92ZShzY3JpcHQpOworICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1l
bnQoKS5mcmFtZSgpKSB7CisgICAgICAgICAgICBhdXRvJiBzY3JpcHQgPSBkb3duY2FzdDxMb2Fk
YWJsZU1vZHVsZVNjcmlwdD4oKm1fbG9hZGFibGVTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAg
ZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoc2NyaXB0LCBtb2R1bGVTY3JpcHRSb290
VVJMLnN0cmluZygpLCBtYWtlUmVmKHNjcmlwdC5wYXJhbWV0ZXJzKCkpKTsKKyAgICAgICAgfQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM2Nyw4ICszNzEsOSBAQCBib29sIFNj
cmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3Jp
cHRTdGFydFBvc2l0aW9uKQogICAgIGlmICghY29udGVudFNlY3VyaXR5UG9saWN5LmFsbG93SW5s
aW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLnN0cmluZygpLCBtX3N0YXJ0TGlu
ZU51bWJlciwgc291cmNlQ29kZS5zb3VyY2UoKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCksIGhh
c0tub3duTm9uY2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzY3JpcHQtPmxvYWQo
bV9lbGVtZW50LmRvY3VtZW50KCksIHNvdXJjZUNvZGUpOwogICAgIG1fbG9hZGFibGVTY3JpcHQg
PSBXVEZNb3ZlKHNjcmlwdCk7CisgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3Vt
ZW50KCkuZnJhbWUoKSkKKyAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQo
ZG93bmNhc3Q8TG9hZGFibGVNb2R1bGVTY3JpcHQ+KCptX2xvYWRhYmxlU2NyaXB0LmdldCgpKSwg
c291cmNlQ29kZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmNwcAppbmRleCA2MmY5MTdhMzY3ODE5ZGVjM2NkNDEwZDk3NjY5NWNlZTYyZjZkNGI5Li43YzIy
NDlhM2EyYWY5NTE4MjNhZTc5OTVlYzEzNzFhZGZiYjE0YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXIuY3BwCkBAIC03MCw2ICs3MCw4IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAg
LCBtX2lkZW50aWZpZXIoIndvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6
OmNyZWF0ZUlkZW50aWZpZXIoKSkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNj
b3BlUHJveHk6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxh
Z3MpCisgICAgLCBtX3R5cGUob3B0aW9ucy50eXBlKQorICAgICwgbV9jcmVkZW50aWFscyhvcHRp
b25zLmNyZWRlbnRpYWxzKQogewogICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAg
aWYgKCFhZGRlZExpc3RlbmVyKSB7CkBAIC0xMTMsMTAgKzExNSwxMyBAQCBFeGNlcHRpb25PcjxS
ZWY8V29ya2VyPj4gV29ya2VyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgSlNDOjpSdQogCiAgICAgRmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKICAgICBmZXRjaE9w
dGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbjsKKyAgICBpZiAod29y
a2VyLT5tX3R5cGUgPT0gV29ya2VyVHlwZTo6TW9kdWxlKQorICAgICAgICBmZXRjaE9wdGlvbnMu
Y3JlZGVudGlhbHMgPSB3b3JrZXItPm1fY3JlZGVudGlhbHM7CiAgICAgZmV0Y2hPcHRpb25zLmNh
Y2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKICAgICBmZXRjaE9wdGlvbnMucmVk
aXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CiAgICAgZmV0Y2hPcHRpb25z
LmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyOwotICAgIHdv
cmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3Zl
KHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVu
Zm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgd29ya2VyKTsKKyAgICB3b3JrZXIt
Pm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1
ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNl
bWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsIHdvcmtlci5nZXQoKSk7CisKICAgICByZXR1
cm4gd29ya2VyOwogfQogCkBAIC0yMTUsNyArMjIwLDcgQEAgdm9pZCBXb3JrZXI6Om5vdGlmeUZp
bmlzaGVkKCkKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSA9IFJlZmVycmVyUG9s
aWN5OjpFbXB0eVN0cmluZzsKICAgICBpZiAoYXV0byBwb2xpY3kgPSBwYXJzZVJlZmVycmVyUG9s
aWN5KG1fc2NyaXB0TG9hZGVyLT5yZWZlcnJlclBvbGljeSgpLCBSZWZlcnJlclBvbGljeVNvdXJj
ZTo6SFRUUEhlYWRlcikpCiAgICAgICAgIHJlZmVycmVyUG9saWN5ID0gKnBvbGljeTsKLSAgICBt
X2NvbnRleHRQcm94eS5zdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0TG9hZGVyLT51cmwo
KSwgbV9uYW1lLCBjb250ZXh0LT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVybCgpKSwgaXNP
bmxpbmUsIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgbV93b3JrZXJDcmVhdGlvblRpbWUsIHJlZmVycmVyUG9saWN5LCBtX3J1bnRpbWVGbGFncyk7
CisgICAgbV9jb250ZXh0UHJveHkuc3RhcnRXb3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRl
ci0+dXJsKCksIG1fbmFtZSwgY29udGV4dC0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwo
KSksIGlzT25saW5lLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycywgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIG1fd29ya2VyQ3JlYXRpb25UaW1lLCByZWZlcnJlclBvbGljeSwgbV90eXBlLCBt
X2NyZWRlbnRpYWxzLCBtX3J1bnRpbWVGbGFncyk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpzY3JpcHRJbXBvcnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIo
KSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgK
aW5kZXggNTNmNWU2ZmZmMjdjOWZhM2U1YzBlMDFmMGY2YzQyYzZjYjZmOWQwZS4uMzhhNjIzYTk4
ZGJhMzVmZjgwMTNjZDZmYzhjODVjODEwMjA1MDIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5o
CkBAIC0yOSw5ICsyOSwxMSBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkV2
ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNs
dWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIlBvc3RNZXNzYWdlT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgIldvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDx3
dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNTUsNiAr
NTcsOCBAQCBjbGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1Ymxp
YyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV29yawogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoV29ya2VyKTsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgIFdvcmtl
clR5cGUgdHlwZTsKKyAgICAgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7
CiAgICAgICAgIFN0cmluZyBuYW1lOwogICAgIH07CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJl
ZjxXb3JrZXI+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZs
YWdzLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgT3B0aW9ucyYpOwpAQCAtNzksNiArODMsOCBA
QCBjbGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3Rp
dmVET01PYmplY3QsIHByaXZhdGUgV29yawogICAgIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2Jh
bFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKTsKICNlbmRp
ZgogCisgICAgV29ya2VyVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6
OlJ1bnRpbWVGbGFncywgY29uc3QgT3B0aW9ucyYpOwogCkBAIC0xMTIsNiArMTE4LDggQEAgY2xh
c3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0LCBwcml2YXRlIFdvcmsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBIYXNoU2V0PFN0
cmluZz4gbV90cmFuc2Zvcm1lcnM7CiAjZW5kaWYKKyAgICBXb3JrZXJUeXBlIG1fdHlwZSB7IFdv
cmtlclR5cGU6OkNsYXNzaWMgfTsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBtX2NyZWRl
bnRpYWxzIHsgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4gfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAppbmRleCA0NWQ2
YTA4Njc4NTRlZTQwNGRlN2U3ZDAxMjQ4Y2ViZjQ0ZGNhN2VkLi43MDIxNzk2ZGY1MDRhZGY4ZTZi
OTU4OWFjZTlmMTQ0ODIxZjI5NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCkBAIC0z
OCw2ICszOCw4IEBACiB9OwogCiBkaWN0aW9uYXJ5IFdvcmtlck9wdGlvbnMgeworICAgIFdvcmtl
clR5cGUgdHlwZSA9ICJjbGFzc2ljIjsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVk
ZW50aWFscyA9ICJzYW1lLW9yaWdpbiI7IC8vIGNyZWRlbnRpYWxzIGlzIG9ubHkgdXNlZCBpZiB0
eXBlIGlzICJtb2R1bGUiCiAgICAgRE9NU3RyaW5nIG5hbWUgPSAiIjsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCA0NmQ0OWQ5NGM1MjM4ZTQ2
ODhkMzk1ZDg3YzIwNjNlYjU3MjBkMWJmLi4zODQxYTc4MWQ4NWQxNjBkNDAzNmNmMDBiN2QwZTM5
ZTAwZWExYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5o
CkBAIC0xNjMsOCArMTYzLDYgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgU3Vw
cGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgQmFzZTYKICAgICBtdXRhYmxl
IFJlZlB0cjxXb3JrZXJMb2NhdGlvbj4gbV9sb2NhdGlvbjsKICAgICBtdXRhYmxlIFJlZlB0cjxX
b3JrZXJOYXZpZ2F0b3I+IG1fbmF2aWdhdG9yOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+IG1fc2NyaXB0OwotCiAgICAgYm9vbCBtX2lzT25s
aW5lOwogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3k7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5
LmgKaW5kZXggNDAwMDNjM2UwMTA5OTk2MGY2NDc4NjFlNzAxNjg3ZDBlMzcxZDcyZC4uZWQ2NzNh
YzhmN2MwZWU1NGMwNjBlY2I1OTIxNjM5MGVkNzBmZTJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xh
c3MgV29ya2VyR2xvYmFsU2NvcGVQcm94eSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdvcmtlckds
b2JhbFNjb3BlUHJveHkmIGNyZWF0ZShXb3JrZXImKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFy
dFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcm
IHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYs
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9u
aWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBKU0M6OlJ1bnRpbWVGbGFncykgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29s
IGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5
LCBXb3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3Mp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRlV29ya2VyR2xvYmFsU2NvcGUoKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxTY29wZShNZXNzYWdl
V2l0aE1lc3NhZ2VQb3J0cyYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrVG9Xb3Jr
ZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4mJikg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cAppbmRleCAxOWQ0YmU2NDk5MmYzMGQzY2NlNzY1NDdhM2QyMjE4YTk4Yzg0MmMzLi43ODgzNTg3
YTdhZjYyMDllM2VjYzhlN2I0MWJhZDQ3YWRmNjIyNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtNzMsNyArNzMsNyBAQCBXb3Jr
ZXJNZXNzYWdpbmdQcm94eTo6fldvcmtlck1lc3NhZ2luZ1Byb3h5KCkKICAgICAgICAgfHwgKGlz
PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSAmJiBkb3duY2Fz
dDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkudGhyZWFkKCku
dGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKSk7CiB9CiAKLXZvaWQgV29ya2VyTWVzc2Fn
aW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUs
IGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1l
IHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5LCBKU0M6OlJ1bnRpbWVG
bGFncyBydW50aW1lRmxhZ3MpCit2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJl
clBvbGljeSByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBGZXRjaFJlcXVl
c3RDcmVkZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZsYWdz
KQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8gYmUgcmV2aXNpdGVkIHdoZW4gd2Ugc3Vw
cG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KTsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3Rh
cnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3QKIAogICAg
IFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciA9IGRvY3VtZW50LnNvY2tldFByb3ZpZGVy
KCk7CiAKLSAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsgc2NyaXB0VVJMLCBuYW1lLCBp
ZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwg
dGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIGRvY3VtZW50LnNldHRpbmdzVmFsdWVzKCkgfTsK
KyAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsgc2NyaXB0VVJMLCBuYW1lLCBpZGVudGlm
aWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdGltZU9y
aWdpbiwgcmVmZXJyZXJQb2xpY3ksIHdvcmtlclR5cGUsIGNyZWRlbnRpYWxzLCBkb2N1bWVudC5z
ZXR0aW5nc1ZhbHVlcygpIH07CiAgICAgYXV0byB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQ6OmNyZWF0ZShwYXJhbXMsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcywgKnRoaXMsIHN0YXJ0
TW9kZSwgZG9jdW1lbnQudG9wT3JpZ2luKCksIHByb3h5LCBzb2NrZXRQcm92aWRlciwgcnVudGlt
ZUZsYWdzKTsKIAogICAgIHdvcmtlclRocmVhZENyZWF0ZWQodGhyZWFkLmdldCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAppbmRleCBjNWI1NzVi
OWU2MTViM2YzZjU5NmJmYzNkZjY4M2M4NzdjYzYyYmFiLi5kOWU4MWUxNTdhMGY0ODUyZTQ5YjU5
ZDI1NjZhOGE4MGY1ZjgxOGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFdvcmtlck1lc3NhZ2luZ1By
b3h5IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdvcmtlck1lc3NhZ2luZ1By
CiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBXb3JrZXJHbG9iYWxTY29wZVBy
b3h5LgogICAgIC8vIChPbmx5IHVzZSB0aGVzZSBmdW5jdGlvbnMgaW4gdGhlIHdvcmtlciBvYmpl
Y3QgdGhyZWFkLikKLSAgICB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBz
Y3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJv
b2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xp
Y3ksIEpTQzo6UnVudGltZUZsYWdzKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0V29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9y
aWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxz
LCBKU0M6OlJ1bnRpbWVGbGFncykgZmluYWw7CiAgICAgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9i
YWxTY29wZSgpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3Bl
KE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYpIGZpbmFsOwogICAgIHZvaWQgcG9zdFRhc2tUb1dv
cmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYm
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggMjM4NGE1YThjN2QyYTMwMmVlZTVjYjQwNWUxMDVlMDI1
Yzk4NDNjYy4uZjRmNGIyNzQ2NmY5YTMwYjI4YjhiMjFmNmYyYmVmOGJkZTkzODUxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCIKQEAgLTM5LDYgKzQwLDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlKTsKIAogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU6
Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFdvcmtlclRocmVhZFR5cGUgdHlwZSwgUmVmPEpT
Qzo6Vk0+JiYgdm0sIFdvcmtlck9yV29ya2xldFRocmVhZCogdGhyZWFkKQogICAgIDogbV9zY3Jp
cHQobWFrZVVuaXF1ZTxXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyPih0eXBlLCBXVEZN
b3ZlKHZtKSwgdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlcihtYWtlVW5pcXVlPFNjcmlwdE1v
ZHVsZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlOjpXb3JrZXJP
cldvcmtsZXQpKQogICAgICwgbV90aHJlYWQodGhyZWFkKQogICAgICwgbV9pbnNwZWN0b3JDb250
cm9sbGVyKG1ha2VVbmlxdWU8V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcj4oKnRoaXMpKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZS5oCmluZGV4IDZjMjQ0YTBjNDI3ZWUxYzhjNjVmZGNjNzY1OTUyZjg3N2ZkOWIxNmIuLjU0NGYw
NDdhZWMyNzgzMjc0NGQwYThhNzBhZjdlOTM5YzMzMDk5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTMyLDYgKzMy
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZlbnRMb29wVGFza0dyb3VwOwor
Y2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogY2xhc3MgV29ya2VyRXZlbnRMb29wOwogY2xhc3Mg
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNzIFdvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXI7CkBAIC01NCw2ICs1NSw4IEBAIGNsYXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNj
b3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBSZWZDb3VuCiAKICAg
ICB1bnNpZ25lZCBsb25nIGNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKSB7IHJldHVybiBtX3VuaXF1
ZUlkZW50aWZpZXIrKzsgfQogCisgICAgU2NyaXB0TW9kdWxlTG9hZGVyJiBtb2R1bGVMb2FkZXIo
KSB7IHJldHVybiAqbV9tb2R1bGVMb2FkZXI7IH0KKwogICAgIC8vIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuCiAgICAgRXZlbnRMb29wVGFza0dyb3VwJiBldmVudExvb3AoKSBmaW5hbDsKICAgICBi
b29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IGZpbmFsOwpAQCAtODgsNiArOTEsNyBAQCBjbGFz
cyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBwdWJsaWMgUmVmQ291bgogICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsg
ZGVyZWYoKTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXI+IG1fc2NyaXB0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRNb2R1bGVMb2Fk
ZXI+IG1fbW9kdWxlTG9hZGVyOwogICAgIFdvcmtlck9yV29ya2xldFRocmVhZCogbV90aHJlYWQ7
CiAgICAgUmVmUHRyPFdvcmtlckV2ZW50TG9vcD4gbV9ldmVudExvb3A7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPEV2ZW50TG9vcFRhc2tHcm91cD4gbV9kZWZhdWx0VGFza0dyb3VwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5jcHAKaW5kZXggY2Q0ZWMyNDY4MjUyNWFhYmM2NDJkODc3YTBkYTAxMWViZGUxMTQzMS4u
ZDNlMzdmMjQ5MDQ1ODA0ZWNjNmUyNzM4NDJhZDQzZTU3OWQ4ZmUwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuY3BwCkBAIC0zNSw2ICszNSw5IEBACiAjaW5jbHVkZSAiSlNFeGVjU3RhdGUuaCIKICNpbmNs
dWRlICJKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJMb2FkYWJsZU1vZHVsZVNjcmlwdC5oIgorI2lu
Y2x1ZGUgIk1vZHVsZUZldGNoRmFpbHVyZUtpbmQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBh
cmFtZXRlcnMuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVDbGllbnQuaCIKQEAg
LTQzLDcgKzQ2LDEyIEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uSGVscGVycy5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0dDQWN0aXZpdHlDYWxsYmFjay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2Nr
Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4KKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNTY3JpcHRGZXRjaFBhcmFtZXRlcnMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU1NjcmlwdEZldGNoZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmdJ
bmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIyOCw2ICsyMzYsMTM0IEBAIHZv
aWQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0
U291cmNlQ29kZSYgc291cmNlQ29kCiAgICAgfQogfQogCitzdGF0aWMgSWRlbnRpZmllciBqc1Zh
bHVlVG9Nb2R1bGVLZXkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFs
dWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJ
ZGVudGlmaWVyOjpmcm9tVWlkKGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkp
OworICAgIEFTU0VSVCh2YWx1ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gYXNTdHJpbmcodmFs
dWUpLT50b0lkZW50aWZpZXIobGV4aWNhbEdsb2JhbE9iamVjdCk7Cit9CisKK0pTQzo6SlNWYWx1
ZSBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShKU0M6OkpT
TW9kdWxlUmVjb3JkJiBtb2R1bGVSZWNvcmQpCit7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0g
Km1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC52
bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICByZXR1cm4gbW9kdWxlUmVj
b3JkLmV2YWx1YXRlKCZnbG9iYWxPYmplY3QpOworfQorCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0
IFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5
KExvYWRhYmxlTW9kdWxlU2NyaXB0JiBtb2R1bGVTY3JpcHQsIGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmIHNvdXJjZUNvZGUpCit7CisgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAg
ICAgIHJldHVybiBNZXNzYWdlUXVldWVUZXJtaW5hdGVkOworCisgICAgaW5pdFNjcmlwdElmTmVl
ZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIu
Z2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVy
IGxvY2sgeyB2bSB9OworCisgICAgUmVmUHRyPExvYWRhYmxlTW9kdWxlU2NyaXB0PiBtb2R1bGVT
Y3JpcHRSZWY7CisgICAgeworICAgICAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVjU3RhdGU6Omxv
YWRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgpLCBKU0M6OkpT
U2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKHZtLCB7ICZtb2R1bGVTY3JpcHQgfSkpOworCisgICAgICAg
IG1vZHVsZVNjcmlwdFJlZiA9ICZtb2R1bGVTY3JpcHQ7CisKKyAgICAgICAgYXV0byYgZnVsZmls
bEhhbmRsZXIgPSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0
LCAxLCBTdHJpbmcoKSwgW21vZHVsZVNjcmlwdFJlZl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIC0+IEpTQzo6RW5jb2RlZEpTVmFsdWUgeworICAg
ICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgICAgICAgICAgSWRlbnRpZmllciBt
b2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFy
Z3VtZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CisgICAgICAgICAgICBtb2R1bGVTY3JpcHRSZWYtPm5vdGlmeUxvYWRDb21wbGV0ZWQoKm1vZHVs
ZUtleS5pbXBsKCkpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0SGFuZGxlciA9ICpK
U05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygp
LCBbbW9kdWxlU2NyaXB0UmVmXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkgeworICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OworICAgICAgICAgICAgSlNWYWx1ZSBlcnJvclZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgw
KTsKKyAgICAgICAgICAgIGlmIChlcnJvclZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAg
ICAgICBhdXRvKiBvYmplY3QgPSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOworICAgICAgICAg
ICAgICAgIGlmIChKU1ZhbHVlIGZhaWx1cmVLaW5kVmFsdWUgPSBvYmplY3QtPmdldERpcmVjdCh2
bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEmPigqdm0uY2xpZW50RGF0YSkuYnVpbHRpbk5h
bWVzKCkuZmFpbHVyZUtpbmRQcml2YXRlTmFtZSgpKSkgeworICAgICAgICAgICAgICAgICAgICAv
LyBUaGlzIGlzIGhvc3QgcHJvcGFnYXRlZCBlcnJvciBpbiB0aGUgbW9kdWxlIGxvYWRlciBwaXBl
bGluZS4KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxNb2R1bGVGZXRj
aEZhaWx1cmVLaW5kPihmYWlsdXJlS2luZFZhbHVlLmFzSW50MzIoKSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkOgorICAgICAg
ICAgICAgICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRh
YmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGFibGVT
Y3JpcHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdURjo6bnVsbG9wdAorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2R1bGVGZXRj
aEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVs
ZVNjcmlwdFJlZi0+bm90aWZ5TG9hZFdhc0NhbmNlbGVkKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hf
U0NPUEUodm0pOworICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVk
KExvYWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6
OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0
OjpDb25zb2xlTWVzc2FnZSB7CisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VTb3VyY2U6OkpT
LAorICAgICAgICAgICAgICAgICAgICBNZXNzYWdlTGV2ZWw6OkVycm9yLAorICAgICAgICAgICAg
ICAgICAgICByZXRyaWV2ZUVycm9yTWVzc2FnZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1
ZSwgc2NvcGUpLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgcHJvbWlzZS50aGVuKCZnbG9iYWxPYmplY3QsICZmdWxmaWxsSGFuZGxlciwgJnJl
amVjdEhhbmRsZXIpOworICAgIH0KKyAgICBtX2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5wZXJm
b3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworCisgICAgLy8gRHJpdmUgUnVuTG9vcCB1bnRpbCB3
ZSBnZXQgZWl0aGVyIG9mICJXb3JrZXIgaXMgdGVybWluYXRlZCIsICJMb2FkaW5nIGlzIGRvbmUi
LCBvciAiTG9hZGluZyBpcyBmYWlsZWQiLgorICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSBt
X2dsb2JhbFNjb3BlLT53b3JrZXJPcldvcmtsZXRUaHJlYWQoKS0+cnVuTG9vcCgpOworCisgICAg
TWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2
ZWQ7CisgICAgd2hpbGUgKCghbW9kdWxlU2NyaXB0UmVmLT5pc0xvYWRlZCgpICYmICFtb2R1bGVT
Y3JpcHRSZWYtPndhc0NhbmNlbGVkKCkpICYmIHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5h
dGVkKQorICAgICAgICByZXN1bHQgPSBydW5Mb29wLnJ1bkluTW9kZShtX2dsb2JhbFNjb3BlLCBX
b3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKworICAgIC8vIEZJWE1FOiBDdXJyZW50bHkg
d2UgYXJlIG5vdCBvZmZlcmluZyBjYW5jZWxsaW5nLgorICAgIC8vIGlmICghbG9hZGVyLT5kb25l
KCkgJiYgcmVzdWx0ID09IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpCisgICAgLy8gICAgIGxvYWRl
ci0+Y2FuY2VsKCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFdvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShMb2FkYWJsZU1vZHVs
ZVNjcmlwdCYgbW9kdWxlU2NyaXB0LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2Rl
LCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRp
b25Gb3JiaWRkZW4oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVk
KCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0
KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxv
Y2sgeyB2bSB9OworCisgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0
aW9uOworICAgIEpTRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0
LCBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBtb2R1bGVTY3JpcHQubW9kdWxlS2V5KCkpLCBqc1Vu
ZGVmaW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKChyZXR1cm5lZEV4Y2VwdGlv
biAmJiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVybmVkRXhjZXB0aW9u
KSkgfHwgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAgICAgIGZvcmJpZEV4ZWN1dGlv
bigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHJldHVybmVkRXhjZXB0aW9u
KSB7CisgICAgICAgIGlmIChtX2dsb2JhbFNjb3BlLT5jYW5JbmNsdWRlRXJyb3JEZXRhaWxzKHNv
dXJjZUNvZGUuY2FjaGVkU2NyaXB0KCksIHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCkpKSB7Cisg
ICAgICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBydW4gYXJi
aXRyYXJ5IGNvZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlvbi4KKyAg
ICAgICAgICAgIC8vIERvIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgdG8gaGFuZGxlIHRoYXQgcHJv
cGVybHksIGlmIGl0LCBzYXksIHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlvbj8KKyAgICAgICAgICAg
IGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKnJldHVybmVk
RXhjZXB0aW9uTWVzc2FnZSA9IHJldHVybmVkRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3RyaW5n
KCZnbG9iYWxPYmplY3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gT3Zlcndy
aXRlIHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBlcnJvci4KKyAgICAgICAgICAg
IFN0cmluZyBnZW5lcmljRXJyb3JNZXNzYWdlIHsgIlNjcmlwdCBlcnJvci4iX3MgfTsKKyAgICAg
ICAgICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKnJl
dHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IGdlbmVyaWNFcnJvck1lc3NhZ2U7CisgICAgICAgICAg
ICByZXR1cm5lZEV4Y2VwdGlvbiA9IEpTQzo6RXhjZXB0aW9uOjpjcmVhdGUodm0sIGNyZWF0ZUVy
cm9yKCZnbG9iYWxPYmplY3QsIGdlbmVyaWNFcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgfQorICAg
IH0KK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgSlNHbG9iYWxTY29wZVByb3RvdHlwZSwgdHlwZW5h
bWUgSlNHbG9iYWxTY29wZSwgdHlwZW5hbWUgR2xvYmFsU2NvcGU+CiB2b2lkIFdvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHRXaXRoU3ViY2xhc3MoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaAppbmRleCBjNDkzMDFhZWQzZGQwODlkYTc5NzMyNzYwY2FmMmY3YjY0ZGIxMWI2Li5j
MzZkMTlmMDk4ZjU5OWU1NWVhMDM4NjRiMmRlODgzZWY1NDZkYzViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
aApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRp
bWVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgor
I2luY2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvTmFrZWRQdHIuaD4K
IAogbmFtZXNwYWNlIEpTQyB7CkBAIC00NCw2ICs0NSw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0
OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2NsYXNz
IExvYWRhYmxlTW9kdWxlU2NyaXB0OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIGNsYXNzIFdv
cmtlckNvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTsKQEAg
LTk0LDYgKzk2LDExIEBAIGNsYXNzIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewog
ICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIFN0cmluZyogcmV0dXJu
ZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2Vw
dGlvbiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKIAorICAg
IEpTQzo6SlNWYWx1ZSBldmFsdWF0ZU1vZHVsZShKU0M6OkpTTW9kdWxlUmVjb3JkJik7CisKKyAg
ICB2b2lkIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShMb2FkYWJsZU1vZHVsZVNjcmlwdCYsIGNvbnN0
IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51
bGxwdHIpOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgbG9hZE1vZHVsZVN5bmNocm9ub3Vz
bHkoTG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisKIHBy
b3RlY3RlZDoKICAgICBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogZ2xvYmFsU2NvcGUoKSBj
b25zdCB7IHJldHVybiBtX2dsb2JhbFNjb3BlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmNwcAppbmRleCA3Mjc5MGEwMzMyMjYxOWU2ZWU3ZTYxNmE4YmRlMThiZDU1MmE1
NzgzLi4zZTk2OGI1NmJhNjFjNjJjNGJjYjQxMTVlZGFmYjA1NDc4NjRjZGIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0yOCwxMCArMjgsMTIgQEAKICNpbmNs
dWRlICJXb3JrZXJUaHJlYWQuaCIKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94eS5oIgor
I2luY2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNl
Q29kZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJv
dmlkZXIuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTUsNiArNTcsOCBAQCBXb3JrZXJQYXJhbWV0ZXJz
IFdvcmtlclBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgICAgIHNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwKICAgICAgICAgdGltZU9yaWdpbiwK
ICAgICAgICAgcmVmZXJyZXJQb2xpY3ksCisgICAgICAgIHdvcmtlclR5cGUsCisgICAgICAgIGNy
ZWRlbnRpYWxzLAogICAgICAgICBzZXR0aW5nc1ZhbHVlcy5pc29sYXRlZENvcHkoKQogICAgIH07
CiB9CkBAIC0xMjMsOSArMTI3LDMzIEBAIGJvb2wgV29ya2VyVGhyZWFkOjpzaG91bGRXYWl0Rm9y
V2ViSW5zcGVjdG9yT25TdGFydHVwKCkgY29uc3QKIAogdm9pZCBXb3JrZXJUaHJlYWQ6OmV2YWx1
YXRlU2NyaXB0SWZOZWNlc3NhcnkoU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQogewotICAgIGds
b2JhbFNjb3BlKCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1
cERhdGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSks
ICZleGNlcHRpb25NZXNzYWdlKTsKLQotICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOwor
ICAgIC8vIFdlIGFyZSBjdXJyZW50bHkgaG9sZGluZyBvbmx5IHRoZSBpbml0aWFsIHNjcmlwdCBj
b2RlLiBJZiB0aGUgV29ya2VyVHlwZSBpcyBNb2R1bGUsIHdlIHNob3VsZCBmZXRjaCB0aGUgZW50
aXJlIGdyYXBoIGJlZm9yZSBleGVjdXRpbmcgdGhlIHJlc3Qgb2YgdGhpcy4KKyAgICAvLyBXZSBp
bnZva2UgbW9kdWxlIGxvYWRlciBhcyBpZiB3ZSBhcmUgZXhlY3V0aW5nIGlubGluZSBtb2R1bGUg
c2NyaXB0IHRhZyBpbiBEb2N1bWVudC4KKworICAgIGlmIChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMu
d29ya2VyVHlwZSA9PSBXb3JrZXJUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgIGdsb2JhbFNjb3Bl
KCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNv
dXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRp
b25NZXNzYWdlKTsKKyAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgLy8gRklYTUUgY3Jvc3NPcmlnaW4gbW9kZSBzaG91bGQgYmUgY29udmVy
dGVkLgorICAgICAgICAvLyBGSVhNRSBmaXggaW5pdGlhdG9yIG5hbWUuCisgICAgICAgIC8vIEZJ
WE1FIHBhc3MgVVJMIHRvIG1vZHVsZSBsb2FkZXIuCisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUg
c291cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+
cGFyYW1zLnNjcmlwdFVSTCksIHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1v
ZHVsZSk7CisgICAgICAgIGF1dG8gbW9kdWxlU2NyaXB0ID0gTG9hZGFibGVNb2R1bGVTY3JpcHQ6
OmNyZWF0ZShlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCBtX3N0YXJ0dXBEYXRhLT5wYXJh
bXMucmVmZXJyZXJQb2xpY3ksIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyOjpkZWZh
dWx0Q3Jvc3NPcmlnaW5Nb2RlRm9yTW9kdWxlLCBlbXB0eVN0cmluZygpLCBlbXB0eUF0b20oKSwg
ZmFsc2UpOworICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9IGdsb2JhbFNj
b3BlKCktPnNjcmlwdCgpLT5sb2FkTW9kdWxlU3luY2hyb25vdXNseShtb2R1bGVTY3JpcHQuZ2V0
KCksIHNvdXJjZUNvZGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1p
bmF0ZWQpIHsKKyAgICAgICAgICAgIGlmIChPcHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6RXJyb3I+
IGVycm9yID0gbW9kdWxlU2NyaXB0LT5lcnJvcigpKSB7CisgICAgICAgICAgICAgICAgaWYgKE9w
dGlvbmFsPExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVzc2FnZT4gbWVzc2FnZSA9IGVycm9yLT5j
b25zb2xlTWVzc2FnZSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uTWVzc2FnZSA9IG1l
c3NhZ2UtPm1lc3NhZ2U7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICBleGNlcHRpb25NZXNzYWdlID0gIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJf
czsKKyAgICAgICAgICAgICAgICBnbG9iYWxTY29wZSgpLT5yZXBvcnRFeGNlcHRpb24oZXhjZXB0
aW9uTWVzc2FnZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0pOworICAgICAgICAgICAgfSBlbHNl
IGlmICghbW9kdWxlU2NyaXB0LT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICAgICAgLy8g
RXZhbHVhdGUuCisgICAgICAgICAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmxpbmtB
bmRFdmFsdWF0ZU1vZHVsZShtb2R1bGVTY3JpcHQuZ2V0KCksIHNvdXJjZUNvZGUsICZleGNlcHRp
b25NZXNzYWdlKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIAogICAgIC8vIEZyZWUgdGhlIHN0YXJ0
dXAgZGF0YSB0byBjYXVzZSBpdHMgbWVtYmVyIHZhcmlhYmxlIGRlcmVmJ3MgaGFwcGVuIG9uIHRo
ZSB3b3JrZXIncyB0aHJlYWQgKHNpbmNlCiAgICAgLy8gYWxsIHJlZi9kZXJlZnMgb2YgdGhlc2Ug
b2JqZWN0cyBhcmUgaGFwcGVuaW5nIG9uIHRoZSB0aHJlYWQgYXQgdGhpcyBwb2ludCkuIE5vdGUg
dGhhdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKaW5kZXggODg5MDc5MDhlN2E5
YjgwOWU4ZjJhNGU0NzNkNzUyZDExZDI5MzdjMC4uOTUxMmVmZGIxOGYzMmE1MGVjYjdmYjU2OTU5
ZDYxZTg4NzJmYTFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJU
aHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC0y
Niw3ICsyNiwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFs
cy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtl
clJ1bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9V
UkwuaD4KQEAgLTYzLDYgKzY2LDggQEAgc3RydWN0IFdvcmtlclBhcmFtZXRlcnMgewogICAgIGJv
b2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OwogICAgIE1vbm90
b25pY1RpbWUgdGltZU9yaWdpbjsKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeTsK
KyAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7CisgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMg
Y3JlZGVudGlhbHM7CiAgICAgU2V0dGluZ3M6OlZhbHVlcyBzZXR0aW5nc1ZhbHVlczsKIAogICAg
IFdvcmtlclBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwCmluZGV4IGM4YTdhOTk3MmY5Y2M4YzE2YTc5Njc1MTE1NTJmNTQ5M2E2ODZmOTgu
LjMzY2EwZWMyM2I1OGE1NTExODc2ODQ2YmEwNzE4MzUzMmI1YzQ3ZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwCkBAIC03Myw4ICs3Myw5IEBAIGNsYXNzIER1bW15U2VydmljZVdvcmtl
clRocmVhZFByb3h5IDogcHVibGljIFdvcmtlck9iamVjdFByb3h5IHsKIC8vIEZJWE1FOiBVc2Ug
YSB2YWxpZCBXb3JrZXJPYmplY3RQcm94eQogLy8gRklYTUU6IFVzZSB2YWxpZCBydW50aW1lIGZs
YWdzCiAKKy8vIEZJWE1FOiBVc2UgYSB2YWxpZCBXb3JrZXJUeXBlIGFuZCBDcmVkZW50YWlscyBm
b3IgbW9kdWxlIHNlcnZpY2Ugd29ya2Vycy4KIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VX
b3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBTdHJpbmcm
JiB1c2VyQWdlbnQsIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzLCBXb3Jr
ZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2Vy
UHJveHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHks
IFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcikKLSAgICA6IFdvcmtlclRocmVhZCh7IGRh
dGEuc2NyaXB0VVJMLCBlbXB0eVN0cmluZygpLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9y
OjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdl
bnQpLCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwg
ZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
eyB9LCBzZXR0aW5nc1ZhbHVlcyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRlYnVnZ2Vy
UHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29ya2VyVGhy
ZWFkU3RhcnRNb2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5z
ZWN1cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVy
LCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQorICAgIDogV29ya2VyVGhy
ZWFkKHsgZGF0YS5zY3JpcHRVUkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJ
bnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3Zl
KHVzZXJBZ2VudCksIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09u
TGluZSgpLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6
Om5vdygpLCB7IH0sIFdvcmtlclR5cGU6OkNsYXNzaWMsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxz
OjpTYW1lT3JpZ2luLCBzZXR0aW5nc1ZhbHVlcyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHks
IGRlYnVnZ2VyUHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwg
V29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BP
cmlnaW4oKS5zZWN1cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tl
dFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQogICAgICwg
bV9kYXRhKGRhdGEuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1
bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSkKICAgICAsIG1faGVhcnRCZWF0
VGltZW91dChTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCktPnNob3Vs
ZFVzZVNob3J0VGltZW91dCgpID8gaGVhcnRCZWF0VGltZW91dEZvclRlc3QgOiBoZWFydEJlYXRU
aW1lb3V0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZDMwZTU2MjkyMmU1YTRk
NmYzMTYyNjVlMWVhMjU2OGU5OWU3ZTgxYy4uNWIwNTc4Y2JiYjAwNDU5OTA2ZjhmNmU1ZDBmYTM0
MzM0MjU5ZTg1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMjEtMDItMTAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAg
ICAgICBKUyBNb2R1bGVzIGluIFdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NDg2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9ub24tb2JqZWN0LnRlbnRh
dGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFz
a3MvY2hlY2twb2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEv
YmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdv
cmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1v
cmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMv
ZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAyLTEw
ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBtb2RpZmllciBrZXlzIGluIHRlc3RfZHJpdmVyLnNlbmRfa2V5cygpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9u
b24tb2JqZWN0LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDQ5MjY5YjNiNTBiOTE3NWNiNjJlY2EzMTJlNTg2
YjNiMTY2MmEyNTkuLjJjYWU1ZjdlMzVhMzJmZWNlYjI2OGYyOTAwMDBlNGU1NTU2YzY4NjAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25v
bi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZl
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1GQUlMIE5vbi1vYmpl
Y3Q6IG51bGwgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9udWxsLmpzb24nLiIK
LUZBSUwgTm9uLW9iamVjdDogdHJ1ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcu
L3RydWUuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBmYWxzZSBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9y
dCB0aGUgbW9kdWxlICcuL2ZhbHNlLmpzb24nLiIKLUZBSUwgTm9uLW9iamVjdDogc3RyaW5nIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9y
OiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vc3RyaW5nLmpzb24nLiIKLUZBSUwgTm9u
LW9iamVjdDogYXJyYXkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9hcnJheS5q
c29uJy4iCitGQUlMIE5vbi1vYmplY3Q6IG51bGwgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicg
aXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiB0
cnVlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQg
TUlNRSB0eXBlLiIKK0ZBSUwgTm9uLW9iamVjdDogZmFsc2UgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24v
anNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2Jq
ZWN0OiBzdHJpbmcgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2
YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiBhcnJheSBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBs
aWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hl
Y2twb2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9p
bnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDg5MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLmUzZTk3N2IzZDRj
NWE0ZjQ1ZTZkMDhjZDMyODQ2MjNkNTdmNzE2NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRlci13b3JrZXJnbG9i
YWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2Jh
bHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDYgQEAKIAogSGFy
bmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCiAKK0ZBSUwgUHJvbWlzZSByZXNv
bHZlZCBkdXJpbmcgI3JlcG9ydC10aGUtZXJyb3IgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3Ro
cyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsiaGFuZGxlciAxIiwgImhhbmRsZXIgMiIsICJoYW5k
bGVyIDEgcHJvbWlzZSIsICJoYW5kbGVyIDIgcHJvbWlzZSJdIGxlbmd0aCA0LCBnb3QgW10gbGVu
Z3RoIDAKK05PVFJVTiBQcm9taXNlIHJlc29sdmVkIGR1cmluZyBldmVudCBoYW5kbGVycyBvdGhl
ciB0aGFuIGVycm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWlj
LWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dAppbmRleCA4NjZl
YmIyMjdhZDI2YWFjZTFhNTc4YmFlYTZhODFkYzBlNmU3N2YwLi5iOTRkZWE2ZTNhMWQwZGQ3NDdm
NjZiOTlkOWRiODU0ODdkZGJhMmEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3Jp
cHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1
Yi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsNCBAQAogCi1GQUlMIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gd29ya2VyIHRv
cC1sZXZlbCBzY3JpcHQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9pbXBvcnQu
anM/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPXJlbGF0
aXZlLXdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0Jy4iCi1GQUlMIEFic29sdXRlIFVSTC1saWtlIGZy
b20gd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVs
ZSAnaHR0cDovLzEyNy4wLjAuMTo4ODAwL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvZ2FtbWEvaW1wb3J0LmpzP3BpcGU9
aGVhZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJlbD1hYnNvbHV0ZS13b3Jr
ZXIgdG9wLWxldmVsIHNjcmlwdCcuIgorRkFJTCBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHdvcmtl
ciB0b3AtbGV2ZWwgc2NyaXB0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJnYW1tYS9pbXBvcnQu
anMiIGJ1dCBnb3QgImJldGEvaW1wb3J0LmpzIgorUEFTUyBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9t
IHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2
YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3
NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uMmYxMmEyMzQyZmFkMjI0ZTNhMThh
NmZiNWQ4NDgzMjVlYTY3NzZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtlci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1
YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBA
CiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitQQVNTIFRlc3Qg
ZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0
aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1
OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi5iODYxZjcwMWY5NDhmYjEzMjc2OTMyMmMzODM2NmYyZDEz
OGYwNGUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXIt
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwg
bWVzc2FnZSA9IG51bGwKLQorRkFJTCBUZXN0IGV2YWx1YXRpb24gb3JkZXIgb2YgbW9kdWxlcyBh
c3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgWyJzdGVw
LTEtMSIsICJzdGVwLTEtMiIsICJnbG9iYWwtZXJyb3IiLCAiZXJyb3IiLCAibWljcm90YXNrIl0g
bGVuZ3RoIDUsIGdvdCBbInN0ZXAtMS0xIiwgInN0ZXAtMS0yIiwgIm1pY3JvdGFzayJdIGxlbmd0
aCAzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9y
dC13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIy
ZTRjMWRjYjNhNWYuLmMxZDM4YmRlNTBjNTllNWQ1OTQxNzNkOTZmOWNkMTllYjEwN2M5YjQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0
aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29y
a2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9V
VCksIG1lc3NhZ2UgPSBudWxsCi0KK0ZBSUwgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVs
ZXMgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsi
c3RlcC0yLjItMSIsICJzdGVwLTIuMi0yIiwgImdsb2JhbC1lcnJvciIsICJlcnJvciIsICJtaWNy
b3Rhc2stMi4yIl0gbGVuZ3RoIDUsIGdvdCBbInN0ZXAtMi4yLTEiLCAic3RlcC0yLjItMiIsICJt
aWNyb3Rhc2stMi4yIl0gbGVuZ3RoIDMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZh
bHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3
NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi4yZjEyYTIzNDJmYWQyMjRlM2ExOGE2
ZmI1ZDg0ODMyNWVhNjc3NmZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVh
dGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAK
IAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK1BBU1MgVGVzdCBl
dmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVsZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9y
dC1tZXRhLWV4cGVjdGVkLnR4dAppbmRleCBkNTgwNjIwNDFjM2U2OTUxNWI4MTVlMDJkN2MzODY4
NGQ3N2M3NmI3Li5lNzgyNTdhMzIyOGQwZjMyMDMwM2ZkNjMyNmFmNmE3NTE0NTNmYzNjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9k
dWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsx
LDUgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkg
dmFsaWQgaW5zaWRlIG1vZHVsZXMuCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0g
U3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCi0K
LUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0
LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVy
cm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5IHZhbGlkIGluc2lkZSBtb2R1bGVzLiIKLUZBSUwgVGVz
dCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQuIGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBUZXN0IGltcG9ydC5tZXRhLnVybCBv
biB0aGUgdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQuCitQQVNTIFRlc3QgaW1wb3J0Lm1ldGEudXJs
IG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2NyaXB0LgogRkFJTCBUZXN0IGltcG9ydC5tZXRhLnVy
bCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJhZ21lbnQuIGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9w
dGlvbnMtdHlwZS1leHBlY3RlZC50eHQKaW5kZXggZGEwZTRlYjY3NThkMTRhMzdhMzk4ZDBiNmZj
NzFhZDM4NzZiZDI2Yi4uMWZjMGM2NmZkZjcyNGMyYWEzYjkxMDY5ODBiZmJlN2U5ODhmOTc3MyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dApAQCAt
MiwxMSArMiw2IEBACiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIHRoZSBkZWZh
dWx0IHdvcmtlciB0eXBlLgogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCB0aGUg
ImNsYXNzaWMiIHdvcmtlciB0eXBlLgogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0
aCB0aGUgIm1vZHVsZSIgd29ya2VyIHR5cGUuCi1GQUlMIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlv
biB3aXRoIGFuIGVtcHR5IHdvcmtlciB0eXBlLiBhc3NlcnRfdGhyb3dzX2pzOiBXb3JrZXIgY29u
c3RydWN0aW9uIHdpdGggYW4gZW1wdHkgdHlwZSBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIGZ1
bmN0aW9uICIoKSA9PiB7Ci0gICAgICAgIG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9wb3N0LW1lc3Nh
Z2Utb24tbG9hZC13b3JrZXIuanMnLCB7IHR5cGU6ICcnIH0pOwotICAgICAgfSIgZGlkIG5vdCB0
aHJvdwotRkFJTCBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1bmtub3duIHdvcmtl
ciB0eXBlLiBhc3NlcnRfdGhyb3dzX2pzOiBXb3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gdW5r
bm93biB0eXBlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gZnVuY3Rpb24gIigpID0+IHsKLSAg
ICAgICAgbmV3IFdvcmtlcigncmVzb3VyY2VzL3Bvc3QtbWVzc2FnZS1vbi1sb2FkLXdvcmtlci5q
cycsCi0gICAgICAgICAgICAgICAgICAgeyB0eXBlOiAndW5rbm93bicgfSk7Ci0gICAgICB9IiBk
aWQgbm90IHRocm93CitQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIGVtcHR5
IHdvcmtlciB0eXBlLgorUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1bmtu
b3duIHdvcmtlciB0eXBlLgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419922</attachid>
            <date>2021-02-10 16:46:59 -0800</date>
            <delta_ts>2021-02-10 18:11:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210210164658.patch</filename>
            <type>text/plain</type>
            <size>143952</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA1MTUzZGY5Mjc2YTBl
YzEzMzI1OTg1ZDNjMGE5NGQwOTE3M2I4ZC4uMzg2NWQxODI3NmYyY2Y5Yzk2N2U5ZDcwMzRmMWIy
ZGM4ZTdhNjhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAyMS0wMi0xMCAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4g
V29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2Ny
aXB0TG9hZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0Nh
Y2hlZFNjcmlwdEZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0
Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNoZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0TW9kdWxl
TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2Fk
ZXJSZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVM
b2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1v
ZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdp
bmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJD
cmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNj
b3BlQmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oLgorICAgICAg
ICAoV2ViQ29yZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpjbGVhckNsaWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAg
ICogYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQu
aC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmllcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om1vZHVsZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJl
c3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxl
TG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6
OmltcG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpXb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyOjp+V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmguCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBkb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQpOiBEZWxldGVkLgor
ICAgICAgICAqIGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RN
b2R1bGVTY3JpcHQpOgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgICogbG9h
ZGVyL1RocmVhZGFibGVMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2Fk
ZXI6OmNyZWF0ZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyOjpXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5pZGw6CisgICAgICAg
ICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwdHMpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHku
aDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUpOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVMb2FkZXIpOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVs
ZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKiB3b3JrZXJzL1dv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
clNjcmlwdExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6
OmxvYWRBc3luY2hyb25vdXNseSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2Fk
ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJQYXJhbWV0ZXJzOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkOjpldmFsdWF0ZVNjcmlwdElmTmVjZXNzYXJ5KToKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVHlwZS5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4dCk6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2Vy
VGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2Vy
Lmg6CisgICAgICAgICogd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6cHJvY2Vzc05leHRTY3JpcHRGZXRjaEpvYklm
TmVlZGVkKToKKwogMjAyMS0wMi0xMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNv
bT4KIAogICAgICAgICBEbyBub3QgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIFJlbGVhc2UgYW5kIFBy
b2R1Y3Rpb24gdmlhIEVOQUJMRV9ERVZFTE9QRVJfTU9ERQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXgg
NGYzOGZiMDY4NGJjNTllZTZmN2M5ODk4MjllYzg4MmNlODA1ODZjOC4uMGZjODNjNzkxNjMyMzI5
YzM5ZjNlODkzZTgyNTM3YzVhZGM2YTM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0zMCw2ICsz
MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAgIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
U291cmNlLmgKKyAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgKICAg
ICBNb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaElk
ZW50aWZpZXIuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCA4YzAzYjkzMjY0OTg1ZjBiYjFlZTlmNmQyMDIzZTM0ODMwOTJmNDYyLi42MjNhNjc4YWE1
Y2I0MzJhZTBkMzk0NjdhNGJlZmQzNDU2ODhhMjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjM5LDYg
KzYzOSw3IEBAIGJpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5jcHAKIGJpbmRpbmdzL2pzL1dl
YkNvcmVKSVRPcGVyYXRpb25zLmNwcAogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5j
cHAKIGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAKK2JpbmRpbmdz
L2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
LmNwcAogYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uY3BwCiBicmlkZ2UvSWRlbnRpZmllclJl
cC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAyZTNiYTJkOGJiYWExNzYyNDRkYTYyM2M2OTI5NmU1ZmViZjA3MzBiLi4wMThm
ZTJjZWE2OTY1MjFhMTQ0YzNmNThmYTZmYzRlMzNiYzA5NmZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDcxLDE1ICs1MDcx
LDE3IEBACiAJCUUzMDU5MjY0MUUyN0EzQUQwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2ljU2NyaXB0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA1OTI2
MjFFMjdBMzhDMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDU5MjY4MUUyN0EzRDEwMEQ1
N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2Ny
aXB0RmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUUzMDdERUQwMUQ4MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDdE
RUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlFMzA3REVEMTFEODFF
NENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVDODFEODFFNDQ4MDAx
NDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwN0RFRDUxRDgxRTRGMjAwMTQx
Q0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYgLyogTG9hZGFibGVN
b2R1bGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFMzE1MEVBNzFEQTcyMTkzMDAxOTQwMTIgLyogRE9NSklUSGVscGVycy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMxNTBFQTUxREE3MjE4
RDAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCAqLzsgfTsKIAkJRTMyMDFDMUExRjhFODIxMzAw
NzZBMDMyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4RDA2MDkxRjhFODExOTAwNjQ5Q0YyIC8qIE1vZHVs
ZUZldGNoUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzMjNDRkZBMUU1QUY2QUYwMEYwQjRBMCAvKiBKU0RPTUNvbnZlcnRQcm9t
aXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzIz
Q0ZGOTFFNUFGNkE1MDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzNDMyREU0MjVEMzc3RTMw
MDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDMyREUwMjVEMzc3RTIwMDU4RTYxMiAvKiBX
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLzsgfTsKKwkJRTM1MTg4QjQyNUQzODdDRjAwQTc3
QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUUzNTY1QjdCMURDMkQ2QzkwMDIxN0RCRCAvKiBKU0V2ZW50Q3VzdG9t
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRFRTQ5
RjFEQzJENTc1MDBFQUE5RDMgLyogSlNFdmVudEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNTgwMkI2MURDODQzNUQwMEE5NzczQyAv
KiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZp
bHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUzNTgyQzI4MjUyN0Y2NjkwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODJDMjYyNTI3RjY2
ODAwRDFCNzkwIC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1QjkwN0YyM0Y2MEE1MDAwMDAxMUZGIC8q
IExvY2FsaXplZERldmljZU1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzVCOTA3QzIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNl
TW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlFMzY0MzIxQzI1RDM3QTY3MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzY0MzIxQTI1RDM3QTY2
MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3N0ZFNEQxREFERTE2NTAwQ0REMDI1IC8qIE5v
ZGVDb25zdGFudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzRDA0OTkzMURBREMwNDUwMDcxOEYzQyAvKiBOb2RlQ29uc3RhbnRzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3Qzg2NTAxRUI2M0Uz
RjAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlz
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUz
OTYyOEJGMjM5NTcyOEYwMDY1OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhC
RDIzOTU3MjhFMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNjIwMiw3
ICsxNjIwNCw2IEBACiAJCUUzMDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRG
ZXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFNjcmlwdEZl
dGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFQzYxRDgxRTQ0ODAw
MTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlF
MzA3REVDODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVEMjFEODFF
NEVEMDAxNDFDQUYgLyogTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYgLyogTG9hZGFibGVN
b2R1bGVTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9hZGFibGVN
b2R1bGVTY3JpcHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMxNTBFQTUxREE3
MjE4RDAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NSklUSGVscGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTYyMTUsMTIgKzE2MjE2LDE2IEBACiAJCUUzMjkyNzYzMjI1NDNGNTkwMDMwOEE5QSAvKiBUeXBl
ZE9NQ1NTVW5pdFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGVkT01DU1NVbml0VmFs
dWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzI5Mjc2NjIyNTQzRkRFMDAz
MDhBOUEgLyogRE9NUmVjdFJlYWRPbmx5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3RS
ZWFkT25seS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMzQ4MjVFMURDOTNB
QTAwMDlDOTU0NCAvKiBET01KSVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NSklUQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5o
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlFMzQzMkRFMDI1RDM3N0Uy
MDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMzQzMkRFMzI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzNEVFNDlGMURDMkQ1NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3VzdG9tLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXZlbnRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTM1MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRl
ckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVTY3JpcHRM
b2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODAyQjUxREM4
NDM1ODAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NSklUSURMVHlwZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzU4MkMyNDI1MjdGNjY4MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlv
bnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUpJVE9w
ZXJhdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4MkMyNjI1MjdG
NjY4MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViQ29yZUpJVE9wZXJhdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTM1QjkwN0MyM0Y2MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1v
ZGVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsaXplZERldmljZU1v
ZGVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUI5MDdFMjNGNjA2NzcwMDAw
MTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IExvY2FsaXplZERldmljZU1vZGVsLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9h
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVNjcmlwdExvYWRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzdDODY0RjFFQjYzRTJEMDA4N0M2
Q0EgLyogSlNET01Qcm9taXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
RE9NUHJvbWlzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NDFCQUQx
NDVGMDBENjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVM
b2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9h
ZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzAyMSw3ICsyNzAyNiw2IEBA
CiAJCQkJMkRGQTQ4OEUxREI1NDFDMjAwMzYyQjk5IC8qIEJ1ZmZlclNvdXJjZS5oICovLAogCQkJ
CUUzMDdERUM2MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
ICovLAogCQkJCUUzMDdERUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXIuaCAqLywKLQkJCQlFMzA3REVDODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJRTMwNTkyNjUxRTI3QTNDNjAwRDU3Qzk4IC8q
IENhY2hlZFNjcmlwdEZldGNoZXIuY3BwICovLAogCQkJCUUzMDU5MjY2MUUyN0EzQzYwMEQ1N0M5
OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3
NDY4IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8sCkBAIC0yNzA5NSw2ICsyNzA5
OSw4IEBACiAJCQkJNEJERUEzMkQyMTgwMzQwNTAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNj
b3BlQmFzZS5jcHAgKi8sCiAJCQkJNEJERUEzMkIyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29ya2xl
dEdsb2JhbFNjb3BlQmFzZS5oICovLAogCQkJCTcwOUEwMUZEMUUzRDBCQ0MwMDZCMEQ0QyAvKiBN
b2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggKi8sCisJCQkJRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJB
IC8qIE1vZHVsZVNjcmlwdExvYWRlci5oICovLAorCQkJCUUzNTE4OEIzMjVEMzg3Q0YwMEE3N0FG
MyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLywKIAkJCQk0MUI0NTlFRDFGNTVFQkM3
MDAwMEY2RkQgLyogUmVhZGFibGVTdHJlYW0uY3BwICovLAogCQkJCTQxQjQ1OURBMUY0Q0FEQjkw
MDAwRjZGRCAvKiBSZWFkYWJsZVN0cmVhbS5oICovLAogCQkJCTQxOEMzOTVFMUM4RjBBQUIwMDUx
QzhBMyAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCAqLywKQEAgLTI3MTI2
LDYgKzI3MTMyLDggQEAKIAkJCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5
cGVkQXJyYXlDb250cm9sbGVyLmggKi8sCiAJCQkJNDYzNTIxQUMyMDgxMDkwRTAwQzI4OTIyIC8q
IFdpbmRvd1Byb3h5LmNwcCAqLywKIAkJCQk0NjM1MjFBQTIwODEwOTBCMDBDMjg5MjIgLyogV2lu
ZG93UHJveHkuaCAqLywKKwkJCQlFMzQzMkRFMzI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyLmNwcCAqLywKKwkJCQlFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyog
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8sCiAJCQkJNDE0MThBMDMyNTY0M0UxMjAwMzYz
NDE3IC8qIFdyaXRhYmxlU3RyZWFtLmNwcCAqLywKIAkJCQk0MTQxOEEwNDI1NjQzRTEzMDAzNjM0
MTcgLyogV3JpdGFibGVTdHJlYW0uaCAqLywKIAkJCSk7CkBAIC0zMTM5OSw3ICszMTQwNyw2IEBA
CiAJCQkJQkNCMTZDMUMwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZEltYWdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMTlGQkQ1RjE1RDJGNDY0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUzMDdERUQwMUQ4MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUUzMDdERUQxMUQ4MUU0Q0Iw
MDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxMDE4NDY5MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlEMEVEQTc3NTE0M0UzMDNDMDAyOEUzODMgLyogQ2FjaGVkUmF3UmVzb3VyY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjUzMzQ5MTcxN0RFRTMwMEYyMDVGOSAvKiBDYWNoZWRS
YXdSZXNvdXJjZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzg3NCw2ICszMzg4MSw4IEBA
CiAJCQkJQzZENzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZl
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzA5QTAxRkUxRTNEMEJERDAwNkIwRDRDIC8qIE1vZHVs
ZUZldGNoRmFpbHVyZUtpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMjAxQzFBMUY4RTgyMTMw
MDc2QTAzMiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUUz
NjQzMjFDMjVEMzdBNjcwMEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUUzNTE4OEI0MjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREM2MTI1MUYxMkQwMDNFRjI2OSAvKiBN
b250aElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM5NjI4QzEyMzk1NzQzMTAwNjU4
RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjQ2
MEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM1NTI2
LDYgKzM1NTM1LDcgQEAKIAkJCQkxOEY4MzFCODBGRDQ4Qzc4MDBEOEM1NkIgLyogV29ya2VyTG9h
ZGVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjREMEY1NDZBODIwMEIwRjFCQSAv
KiBXb3JrZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTAwRjU0NkE4MjAw
QjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzQz
MkRFNDI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMTI3MUEwQjBFRUVDNzdBMDBGNjEyMTMgLyogV29ya2VyTmF2aWdhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUNCMDUyNTFGQjUxRjNBMDAwODlCOTcgLyogV29ya2Vy
TmV0d29ya0FnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MTBGNTQ2QTgyMDBCMEYx
QkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKaW5k
ZXggMzUyZGNjNGFjZjc1MTc2ZDk4YWQzNDEwYmUxNTE2MDgwMTA4ODUyNC4uYzZiYzQ0N2QzMTkw
NDAyNGIzY2JkN2NjYTZjMGMyOWNmYjQ4MGE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCkBAIC00MCwxMyAr
NDAsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8Q2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyPiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRT
Y3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJz
PiYmIHBhcmFtZXRlcnMpCitSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBDYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwg
RGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRj
aGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJv
bWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RGTW92ZShwYXJhbWV0ZXJzKSkpOwogfQogCi1DYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNo
ZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzPiYmIHBhcmFtZXRlcnMpCi0gICAgOiBtX2NsaWVudCgmY2xpZW50KQorQ2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0
Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJh
bWV0ZXJzKQorICAgIDogTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCkKICAgICAsIG1fcHJvbWlz
ZSgmcHJvbWlzZSkKICAgICAsIG1fc2NyaXB0RmV0Y2hlcihzY3JpcHRGZXRjaGVyKQogICAgICwg
bV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCkBAIC02MSwxNCArNjEsMTQgQEAgQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyOjp+Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKCkKICAgICB9
CiB9CiAKLWJvb2wgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgVVJMJiBzb3VyY2VVUkwpCitib29sIENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
cjo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIFVSTCYmIHNvdXJjZVVSTCkKIHsKICAgICBBU1NF
UlQoIW1fY2FjaGVkU2NyaXB0KTsKICAgICBTdHJpbmcgaW50ZWdyaXR5ID0gbV9wYXJhbWV0ZXJz
ID8gbV9wYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSA6IFN0cmluZyB7IH07CiAgICAgbV9jYWNoZWRT
Y3JpcHQgPSBtX3NjcmlwdEZldGNoZXItPnJlcXVlc3RNb2R1bGVTY3JpcHQoZG9jdW1lbnQsIHNv
dXJjZVVSTCwgV1RGTW92ZShpbnRlZ3JpdHkpKTsKICAgICBpZiAoIW1fY2FjaGVkU2NyaXB0KQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgbV9zb3VyY2VVUkwgPSBzb3VyY2VVUkw7CisgICAg
bV9zb3VyY2VVUkwgPSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKICAgICAvLyBJZiB0aGUgY29udGVu
dCBpcyBhbHJlYWR5IGNhY2hlZCwgdGhpcyBpbW1lZGlhdGVseSBjYWxscyBub3RpZnlGaW5pc2hl
ZC4KICAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KCp0aGlzKTsKQEAgLTgzLDcgKzgzLDcg
QEAgdm9pZCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJl
c291cmNlJiByZXNvdXJjZSwgY29uc3QgTmUKIAogICAgIFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAg
bV9jbGllbnQtPm5vdGlmeUZpbmlzaGVkKCp0aGlzLCBXVEZNb3ZlKG1fcHJvbWlzZSkpOworICAg
ICAgICBtX2NsaWVudC0+bm90aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9zb3VyY2VVUkwp
LCBtX3Byb21pc2UucmVsZWFzZU5vbk51bGwoKSk7CiAKICAgICAvLyBSZW1vdmUgdGhlIGNsaWVu
dCBhZnRlciBjYWxsaW5nIG5vdGlmeUZpbmlzaGVkIHRvIGtlZXAgdGhlIGRhdGEgYnVmZmVyIGlu
CiAgICAgLy8gQ2FjaGVkUmVzb3VyY2UgYWxpdmUgd2hpbGUgbm90aWZ5RmluaXNoZWQgcHJvY2Vz
c2VzIHRoZSByZXNvdXJjZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmgKaW5kZXggNDNhYmQ4NzViMjQzZmFmNWZjZDRkOThl
YzNjNWQyNGU3OTBiNTcyZS4uMDQ0ODc2MTg5OWRlZWU3YTg2NTgyOGMwMDFlZGExYmY3ODM1MzM2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2Ny
aXB0TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRl
ICJNb2R1bGVTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zNCw3ICszNSw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50OworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OwogY2xhc3MgQ2FjaGVk
U2NyaXB0OwogY2xhc3MgQ2FjaGVkU2NyaXB0RmV0Y2hlcjsKIGNsYXNzIERlZmVycmVkUHJvbWlz
ZTsKQEAgLTQyLDMxICs0MywyMyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFs
T2JqZWN0OwogY2xhc3MgTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzOwogCi1jbGFzcyBDYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXI+LCBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKK2NsYXNzIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBNb2R1bGVTY3JpcHRMb2FkZXIsIHByaXZh
dGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyPiBjcmVhdGUoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVG
ZXRjaFBhcmFtZXRlcnM+JiYpOworICAgIHN0YXRpYyBSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyPiBjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwg
Q2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOwog
CiAgICAgdmlydHVhbCB+Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKCk7CiAKLSAgICBib29sIGxv
YWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHNvdXJjZVVSTCk7CisgICAgYm9vbCBsb2FkKERvY3Vt
ZW50JiwgVVJMJiYgc291cmNlVVJMKTsKIAogICAgIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlw
dEZldGNoZXIoKSB7IHJldHVybiBtX3NjcmlwdEZldGNoZXIuZ2V0KCk7IH0KICAgICBDYWNoZWRT
Y3JpcHQqIGNhY2hlZFNjcmlwdCgpIHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LmdldCgpOyB9CiAg
ICAgTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0
ZXJzLmdldCgpOyB9Ci0gICAgY29uc3QgVVJMJiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBt
X3NvdXJjZVVSTDsgfQotCi0gICAgdm9pZCBjbGVhckNsaWVudCgpCi0gICAgewotICAgICAgICBB
U1NFUlQobV9jbGllbnQpOwotICAgICAgICBtX2NsaWVudCA9IG51bGxwdHI7Ci0gICAgfQogCiBw
cml2YXRlOgotICAgIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVm
UHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisgICAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNj
cmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZv
aWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UmLCBjb25zdCBOZXR3b3JrTG9hZE1ldHJp
Y3MmKSBmaW5hbDsKIAotICAgIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCogbV9jbGll
bnQgeyBudWxscHRyIH07CiAgICAgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gbV9wcm9taXNlOwog
ICAgIFJlZjxDYWNoZWRTY3JpcHRGZXRjaGVyPiBtX3NjcmlwdEZldGNoZXI7CiAgICAgUmVmUHRy
PE1vZHVsZUZldGNoUGFyYW1ldGVycz4gbV9wYXJhbWV0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODY4OGFkOTBkYWUzZWNlOTQ5ZWEwOWIx
ZWZlZTVkYTI2Zjk0Yzc4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOwotY2xhc3MgRGVm
ZXJyZWRQcm9taXNlOwotCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgewot
cHVibGljOgotICAgIHZpcnR1YWwgfkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCgpID0g
ZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXImLCBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPikgPSAwOwotfTsKLQotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcApp
bmRleCBhNDMzNzU4NjViYmYxZWM1OTczYmYxNzJjOTFhMzg1MzIzNGUzNzRkLi5kZjNjNmI2ZWJi
ODRhZjcyZWQyOTU1Zjk5MTFkMDdhODdhYjM1MzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ3LDYgKzQ4LDcgQEAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRTY3JpcHRGZXRjaGVyOjpyZXF1
ZXN0TW9kdWxlU2NyaXB0KERvY3UKIAogQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0
PiBDYWNoZWRTY3JpcHRGZXRjaGVyOjpyZXF1ZXN0U2NyaXB0V2l0aENhY2hlKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5N
b2RlLCBTdHJpbmcmJiBpbnRlZ3JpdHksIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiBy
ZXNvdXJjZUxvYWRQcmlvcml0eSkgY29uc3QKIHsKKyAgICAvLyBXaXRob3V0IHNjcmlwdGluZywg
dGhlcmUgaXMgbm8gd2F5IHRvIHN0YXJ0IFdvcmtlcnMuCiAgICAgaWYgKCFkb2N1bWVudC5zZXR0
aW5ncygpLmlzU2NyaXB0RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4
IDU4YjdkZjc2MGMwMGEzMWZmMDhlZDIyZGVlMjJhOGM3NDQzYWU4ZGQuLjlkNjk3ZDQ1OWI1NjM0
NWNjODM5NjIwMjY2NzZlMDBhOThiZjQ5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRl
ICJKU1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlJlamVjdGVkUHJvbWlzZVRyYWNr
ZXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU2Ny
aXB0TW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlZENsb25lLmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgi
CkBAIC00MjIsNiArNDIzLDc5IEBAIEpTQzo6SlNQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVjdDo6
aW5zdGFudGlhdGVTdHJlYW1pbmcoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAjZW5kaWYK
IAorc3RhdGljIFNjcmlwdE1vZHVsZUxvYWRlciogc2NyaXB0TW9kdWxlTG9hZGVyKEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTRE9NV2luZG93QmFzZT4odm0p
KSB7CisgICAgICAgIGlmIChhdXRvIGRvY3VtZW50ID0ganNDYXN0PGNvbnN0IEpTRE9NV2luZG93
QmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBwZWQoKS5kb2N1bWVudCgpKQorICAgICAgICAgICAg
cmV0dXJuICZkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCk7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1JlbW90ZURPTVdpbmRv
d0Jhc2U+KHZtKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGdsb2JhbE9iamVj
dC0+aW5oZXJpdHM8SlNXb3JrZXJHbG9iYWxTY29wZUJhc2U+KHZtKSkKKyAgICAgICAgcmV0dXJu
ICZqc0Nhc3Q8Y29uc3QgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT53
cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8
SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNv
bnN0IEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBwZWQoKS5t
b2R1bGVMb2FkZXIoKTsKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBpZiAoZ2xv
YmFsT2JqZWN0LT5pbmhlcml0czxKU0lEQlNlcmlhbGl6YXRpb25HbG9iYWxPYmplY3Q+KHZtKSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKyAgICBkYXRhTG9nKCJVbmV4cGVjdGVk
IGdsb2JhbCBvYmplY3Q6ICIsIEpTVmFsdWUoZ2xvYmFsT2JqZWN0KSwgIlxuIik7CisgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlND
OjpJZGVudGlmaWVyIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxl
TG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9k
dWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUdsb2JhbE9i
amVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFs
T2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNP
YmplY3QpKQorICAgICAgICByZXR1cm4gbG9hZGVyLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgbW9k
dWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hlcik7
CisgICAgcmV0dXJuIHsgfTsKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01HbG9i
YWxPYmplY3Q6Om1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9k
dWxlS2V5LCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNo
ZXIpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09i
amVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAg
ICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAg
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+ZmV0Y2goZ2xvYmFsT2JqZWN0
LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hlcikpOwor
ICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkp
OworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0
LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gcHJvbWlzZTsKK30KKworSlNDOjpKU1ZhbHVl
IEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlND
OjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpKU1Zh
bHVlIHNjcmlwdEZldGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3Qg
PSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYg
KGF1dG8qIGxvYWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAg
cmV0dXJuIGxvYWRlci0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVs
ZUtleSwgbW9kdWxlUmVjb3JkLCBzY3JpcHRGZXRjaGVyKTsKKyAgICByZXR1cm4gSlNDOjpqc1Vu
ZGVmaW5lZCgpOworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVj
dDo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBt
b2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmln
aW4mIHNvdXJjZU9yaWdpbikKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Cisg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTRE9NR2xvYmFs
T2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9i
YWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhp
c09iamVjdCkpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbG9hZGVyLT5pbXBv
cnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBhcmFtZXRl
cnMsIHNvdXJjZU9yaWdpbikpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2Ug
PSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJu
YWxQcm9taXNlU3RydWN0dXJlKCkpOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBwcm9taXNl
LT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gcHJvbWlz
ZTsKK30KKworSlNDOjpKU09iamVjdCogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNy
ZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxl
S2V5LCBKU0M6OkpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3Jp
cHRGZXRjaGVyKQoreworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBs
b2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBs
b2FkZXItPmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9h
ZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0dXJu
IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5u
dWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkpOworfQorCiBKU0RPTUdsb2JhbE9iamVjdCYg
Y2FsbGVyR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUmIGNhbGxGcmFtZSkKIHsKICAgICBjbGFzcyBHZXRDYWxsZXJHbG9iYWxPYmplY3RG
dW5jdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xv
YmFsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5oCmluZGV4IGI4NDA3MmRkZDc0NmIzZDZjNTEwNjBkOTA1MDFiNWNlYTFiNDk5YjEuLmY0OWE0
Y2QyNTcxOTcxMTg5MTdhN2Q3YTRiNmMwZTExZmM3NmJhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtMTA1LDYgKzEwNSwxMiBAQCBj
bGFzcyBXRUJDT1JFX0VYUE9SVCBKU0RPTUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0M6OkpTR2xv
YmFsT2JqZWN0IHsKICAgICBzdGF0aWMgSlNDOjpKU1Byb21pc2UqIGluc3RhbnRpYXRlU3RyZWFt
aW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNPYmplY3QqKTsK
ICNlbmRpZgogCisgICAgc3RhdGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNvbHZl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVl
LCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7
CisgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1Zh
bHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBt
b2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1
bGVMb2FkZXIqLCBKU0M6OkpTU3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNvdXJj
ZU9yaWdpbiYpOworICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVhdGVJ
bXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxv
YWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7
CisKICAgICBKU0RPTVN0cnVjdHVyZU1hcCBtX3N0cnVjdHVyZXM7CiAgICAgSlNET01Db25zdHJ1
Y3Rvck1hcCBtX2NvbnN0cnVjdG9yczsKICAgICBET01HdWFyZGVkT2JqZWN0U2V0IG1fZ3VhcmRl
ZE9iamVjdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcAppbmRleCA1NjNlZmEwNTcxYjVkNDYyZDllNjQ1MDg5ZjBiZDhmNzdkMTlhNzY4Li4zMTJh
MDExNThlOGMyODA4M2MwN2U0MmRiODcyNDVmZTRlNWM1N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTMzOSw1NCArMzM5LDQgQEAg
dm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRv
dyhET01XaW5kb3cqIHdpbmRvdykKICAgICB9CiB9CiAKLUpTQzo6SWRlbnRpZmllciBKU0RPTVdp
bmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBt
b2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBz
Y3JpcHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6
anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxE
b2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAg
ICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5yZXNvbHZlKGdsb2JhbE9iamVj
dCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0
Y2hlcik7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNE
T01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVl
IG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRG
ZXRjaGVyKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlz
T2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAg
ICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5k
b2N1bWVudCgpKQotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50LT5t
b2R1bGVMb2FkZXIoKS5mZXRjaChnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5
LCBwYXJhbWV0ZXJzLCBzY3JpcHRGZXRjaGVyKSk7Ci0gICAgSlNDOjpKU0ludGVybmFsUHJvbWlz
ZSogcHJvbWlzZSA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2U6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LT5pbnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgpOwot
ICAgIHByb21pc2UtPnJlamVjdChnbG9iYWxPYmplY3QsIGpzVW5kZWZpbmVkKCkpOwotICAgIHJl
dHVybiBwcm9taXNlOwotfQotCi1KU0M6OkpTVmFsdWUgSlNET01XaW5kb3dCYXNlOjptb2R1bGVM
b2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNN
b2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpK
U1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCi17Ci0gICAg
SlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNl
Kj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRo
aXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQt
Pm1vZHVsZUxvYWRlcigpLmV2YWx1YXRlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1
bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIEpTQzo6anNV
bmRlZmluZWQoKTsKLX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNTdHJpbmcqIG1v
ZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBwYXJhbWV0ZXJzLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdp
biYgc291cmNlT3JpZ2luKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dC
YXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2Jq
ZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndy
YXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRv
Y3VtZW50LT5tb2R1bGVMb2FkZXIoKS5pbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVM
b2FkZXIsIG1vZHVsZU5hbWUsIHBhcmFtZXRlcnMsIHNvdXJjZU9yaWdpbikpOwotICAgIEpTQzo6
SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOwotICAgIHNj
b3BlLnJlbGVhc2UoKTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVm
aW5lZCgpKTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpKU09iamVjdCogSlNET01X
aW5kb3dCYXNlOjptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxv
YWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCogbW9kdWxl
UmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RPTVdpbmRvd0Jh
c2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmpl
Y3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3Jh
cHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVy
KCkuY3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIs
IG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkLCBzY3JpcHRGZXRjaGVyKTsKLSAgICByZXR1cm4gY29u
c3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPm51bGxQ
cm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggM2Vm
OTgwZGQyN2Y2YjIxMzk4NzAwOGJhNDc2YzhjYTY5ZjJmMGI2NC4uNTE0MmIxYzdkYzI1YzIyZmU5
Nzg5NWU3NWFlMjJlZjRkMWU1ODlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmgKQEAgLTk5LDEyICs5OSw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JU
IEpTRE9NV2luZG93QmFzZSA6IHB1YmxpYyBKU0RPTUdsb2JhbE9iamVjdCB7CiBwcml2YXRlOgog
ICAgIHVzaW5nIFJlc3BvbnNlQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgY2hh
ciosIHNpemVfdCk+OwogCi0gICAgc3RhdGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJS
ZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpK
U1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNW
YWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlND
OjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlKiBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTU3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6
OlNvdXJjZU9yaWdpbiYpOwotICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJD
cmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01v
ZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNW
YWx1ZSk7Ci0KICAgICBSZWZQdHI8RE9NV2luZG93PiBtX3dyYXBwZWQ7CiAgICAgUmVmUHRyPEV2
ZW50PiBtX2N1cnJlbnRFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDJiMjZjOWY0ZWEyMTYy
MDdkZTRjODY4MjBiOGE4MWI2MDM1YjdlYi4uMmQ3OTNmZmYyMTg1M2E4YTFhNzg4MDY2NzI1MGY1
N2U3NTJmZTNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNTksMTEgKzU5LDExIEBAIGNvbnN0IEdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVj
dE1ldGhvZFRhYmxlCiAgICAgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsCiAgICAgJnF1ZXVlTWlj
cm90YXNrVG9FdmVudExvb3AsCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVv
dXQsCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZl
dGNoCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRp
ZXMKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2Fk
ZXJJbXBvcnRNb2R1bGUsCisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxv
YWRlckZldGNoLAorICAgICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywK
KyAgICAmbW9kdWxlTG9hZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2Vy
LAogICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50
U2NyaXB0RXhlY3V0aW9uT3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCAzNWZhNmUzMjc3ZmIwZDRi
ZTBlMGUxZWRjNDM3MjJlZGFkZmM4YWYyLi45ZmFlYzk1OWMzOWQxNzQ4MTgxYzk4NjUwMDNkNWE4
NmYxN2Y1ZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmts
ZXRHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTQ5LDExICs0OSwxMSBAQCBjb25zdCBHbG9i
YWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibAogICAgICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLAogICAgIG51bGxwdHIs
IC8vIHF1ZXVlTWljcm90YXNrVG9FdmVudExvb3AKICAgICAmc2hvdWxkSW50ZXJydXB0U2NyaXB0
QmVmb3JlVGltZW91dCwKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUK
LSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJSZXNvbHZlCi0gICAgbnVsbHB0ciwgLy8gbW9k
dWxlTG9hZGVyRmV0Y2gKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRN
ZXRhUHJvcGVydGllcwotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckV2YWx1YXRlCisgICAg
Jm1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSwKKyAgICAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwKKyAg
ICAmbW9kdWxlTG9hZGVyRmV0Y2gsCisgICAgJm1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQ
cm9wZXJ0aWVzLAorICAgICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwKICAgICAmcHJvbWlzZVJlamVj
dGlvblRyYWNrZXIsCiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AsCiAg
ICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThlYWIxMjNhZWVlYjAy
ZThhMjYzNzhiMzJlMTk1N2QzMzM5NWNhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0wLDAgKzEsNTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Owor
CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVTY3Jp
cHRMb2FkZXI+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3JpcHRMb2FkZXIoKSA9
IGRlZmF1bHQ7CisKKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkKKyAgICB7CisgICAgICAgIEFTU0VS
VChtX2NsaWVudCk7CisgICAgICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKKyAgICB9CisKK3Byb3Rl
Y3RlZDoKKyAgICBNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBj
bGllbnQpCisgICAgICAgIDogbV9jbGllbnQoJmNsaWVudCkKKyAgICB7CisgICAgfQorCisgICAg
TW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KiBtX2NsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNj
cmlwdExvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlU2Ny
aXB0TG9hZGVyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk5NWY0OGVlM2QxZTAyYzFkOGM5YzlkYTJi
ZDU4MjM2ZjNiYTA3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyOworY2xhc3MgRGVm
ZXJyZWRQcm9taXNlOworCitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworcHVibGlj
OgorICAgIHZpcnR1YWwgfk1vZHVsZVNjcmlwdExvYWRlckNsaWVudCgpID0gZGVmYXVsdDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImLCBVUkwm
JiwgUmVmPERlZmVycmVkUHJvbWlzZT4pID0gMDsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGFhNWI4MGI1ODZi
NzllMGU1NzUwMWNkNTEwNzhkZjI1YTYyNWU1ZDkuLmMyZTViZTVlYWZmMzhiNDMwOTVlMDIwMjRk
Y2E2ZGMyMGI3OWNhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUg
IkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9t
aXNlRGVmZXJyZWQuaCIKQEAgLTQxLDYgKzQwLDcgQEAKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VD
b2RlLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VJbnRlZ3JpdHkuaCIKICNpbmNsdWRlICJXZWJD
b3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNNb2R1bGVSZWNvcmQuaD4KQEAgLTUyLDggKzUyLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1TY3JpcHRNb2R1bGVMb2FkZXI6OlNjcmlwdE1vZHVsZUxvYWRlcihEb2N1bWVudCYgZG9j
dW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorU2NyaXB0TW9kdWxlTG9hZGVyOjpT
Y3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgT3duZXJU
eXBlIG93bmVyVHlwZSkKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9vd25lclR5
cGUob3duZXJUeXBlKQogewogfQogCkBAIC02OCw3ICs2OSw3IEBAIHN0YXRpYyBib29sIGlzUm9v
dE1vZHVsZShKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpCiAgICAgcmV0dXJuIGltcG9y
dGVyTW9kdWxlS2V5LmlzU3ltYm9sKCkgfHwgaW1wb3J0ZXJNb2R1bGVLZXkuaXNVbmRlZmluZWQo
KTsKIH0KIAotc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxlU3BlY2lm
aWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBzcGVjaWZpZXIsIGNvbnN0IFVS
TCYgYmFzZVVSTCkKK3N0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gcmVzb2x2ZU1vZHVsZVNw
ZWNpZmllcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTY3JpcHRNb2R1bGVMb2Fk
ZXI6Ok93bmVyVHlwZSBvd25lclR5cGUsIGNvbnN0IFN0cmluZyYgc3BlY2lmaWVyLCBjb25zdCBV
UkwmIGJhc2VVUkwpCiB7CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0
aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3Jlc29sdmUtYS1tb2R1bGUtc3BlY2lmaWVyCiAKQEAgLTc5
LDcgKzgwLDEyIEBAIHN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gcmVzb2x2ZU1vZHVsZVNw
ZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0CiAgICAgaWYgKCFzcGVjaWZpZXIu
c3RhcnRzV2l0aCgnLycpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi8iKSAmJiAhc3BlY2lm
aWVyLnN0YXJ0c1dpdGgoIi4uLyIpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFr
ZVN0cmluZygiTW9kdWxlIHNwZWNpZmllciwgJyJfcywgc3BlY2lmaWVyLCAiJyBkb2VzIG5vdCBz
dGFydCB3aXRoIFwiL1wiLCBcIi4vXCIsIG9yIFwiLi4vXCIuIFJlZmVyZW5jZWQgZnJvbSAiX3Ms
IGJhc2VVUkwuc3RyaW5nKCkpKTsKIAotICAgIGF1dG8gcmVzdWx0ID0gZG9jdW1lbnQuY29tcGxl
dGVVUkwoc3BlY2lmaWVyLCBiYXNlVVJMKTsKKyAgICBVUkwgcmVzdWx0OworICAgIGlmIChvd25l
clR5cGUgPT0gU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGU6OkRvY3VtZW50KQorICAgICAg
ICByZXN1bHQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuY29tcGxldGVVUkwoc3BlY2lm
aWVyLCBiYXNlVVJMKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IFVSTChiYXNlVVJMLCBz
cGVjaWZpZXIpOworCiAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIG5hbWUsICciX3MsIHJlc3VsdC5zdHJp
bmcoKSwgIicgZG9lcyBub3QgcmVzb2x2ZSB0byBhIHZhbGlkIFVSTC4iX3MpKTsKICAgICByZXR1
cm4gcmVzdWx0OwpAQCAtMTA3LDcgKzExMyw3IEBAIEpTQzo6SWRlbnRpZmllciBTY3JpcHRNb2R1
bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsCiAg
ICAgVVJMIGJhc2VVUkwgPSByZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKCpqc0dsb2JhbE9iamVj
dCwgaW1wb3J0ZXJNb2R1bGVLZXkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIobV9kb2N1bWVu
dCwgc3BlY2lmaWVyLCBiYXNlVVJMKTsKKyAgICBhdXRvIHJlc3VsdCA9IHJlc29sdmVNb2R1bGVT
cGVjaWZpZXIobV9jb250ZXh0LCBtX293bmVyVHlwZSwgc3BlY2lmaWVyLCBiYXNlVVJMKTsKICAg
ICBpZiAoIXJlc3VsdCkgewogICAgICAgICBKU0M6OnRocm93VHlwZUVycm9yKGpzR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgcmVzdWx0LmVycm9yKCkpOwogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTYx
LDEzICsxNjcsMTkgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVy
OjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE8KICAgICBpZiAoYXV0byogc2Ny
aXB0RmV0Y2hQYXJhbWV0ZXJzID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNTY3JpcHRGZXRj
aFBhcmFtZXRlcnMqPih2bSwgcGFyYW1ldGVycykpCiAgICAgICAgIHRvcExldmVsRmV0Y2hQYXJh
bWV0ZXJzID0gc3RhdGljX2Nhc3Q8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzKj4oJnNjcmlwdEZldGNo
UGFyYW1ldGVycy0+cGFyYW1ldGVycygpKTsKIAotICAgIGF1dG8gbG9hZGVyID0gQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nh
c3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVy
Kj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFt
ZXRlcnMpKTsKLSAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOwotICAgIGlmICgh
bG9hZGVyLT5sb2FkKG1fZG9jdW1lbnQsIGNvbXBsZXRlZFVSTCkpIHsKLSAgICAgICAgbG9hZGVy
LT5jbGVhckNsaWVudCgpOwotICAgICAgICBtX2xvYWRlcnMucmVtb3ZlKFdURk1vdmUobG9hZGVy
KSk7Ci0gICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKGRlZmVycmVkLmdldCgp
LCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxl
IHNjcmlwdCBmYWlsZWQuIl9zKTsKLSAgICAgICAgcmV0dXJuIGpzUHJvbWlzZTsKKyAgICBpZiAo
bV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBhdXRvIGxvYWRl
ciA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJlZC5nZXQo
KSwgKnN0YXRpY19jYXN0PENhY2hlZFNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxKU0M6OkpT
U2NyaXB0RmV0Y2hlcio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3ZlKHRvcExl
dmVsRmV0Y2hQYXJhbWV0ZXJzKSk7CisgICAgICAgIG1fbG9hZGVycy5hZGQobG9hZGVyLmNvcHlS
ZWYoKSk7CisgICAgICAgIGlmICghbG9hZGVyLT5sb2FkKGRvd25jYXN0PERvY3VtZW50PihtX2Nv
bnRleHQpLCBXVEZNb3ZlKGNvbXBsZXRlZFVSTCkpKSB7CisgICAgICAgICAgICBsb2FkZXItPmNs
ZWFyQ2xpZW50KCk7CisgICAgICAgICAgICBtX2xvYWRlcnMucmVtb3ZlKFdURk1vdmUobG9hZGVy
KSk7CisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihkZWZlcnJlZC5n
ZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1v
ZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm4ganNQcm9taXNlOwor
ICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBsb2FkZXIgPSBXb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNfY2Fz
dDxDYWNoZWRTY3JpcHRGZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNoZXIq
PihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFyYW1l
dGVycykpOworICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOworICAgICAg
ICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBXVEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0K
IAogICAgIHJldHVybiBqc1Byb21pc2U7CkBAIC0xNzYsNyArMTg4LDcgQEAgSlNDOjpKU0ludGVy
bmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0
KiBqc0dsb2JhbE8KIFVSTCBTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVSTChKU0M6OkpTR2xv
YmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlKQog
ewogICAgIGlmIChtb2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgpKQotICAgICAgICByZXR1cm4gbV9k
b2N1bWVudC51cmwoKTsKKyAgICAgICAgcmV0dXJuIG1fY29udGV4dC51cmwoKTsKIAogICAgIEFT
U0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKICAgICByZXR1cm4gVVJMKFVSTCgpLCBh
c1N0cmluZyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKCZqc0dsb2JhbE9iamVjdCkpOwpAQCAtMTg3
LDggKzE5OSwxMSBAQCBVUkwgU2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNwb25zZVVSTEZyb21SZXF1
ZXN0VVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmIGpzR2xvYmFsTwogICAgIEpTQzo6Vk0mIHZtID0g
anNHbG9iYWxPYmplY3Qudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKLSAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkKLSAgICAgICAg
cmV0dXJuIG1fZG9jdW1lbnQuYmFzZVVSTCgpOworICAgIGlmIChpc1Jvb3RNb2R1bGUobW9kdWxl
S2V5VmFsdWUpKSB7CisgICAgICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3Vt
ZW50KQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmJh
c2VVUkwoKTsKKyAgICAgICAgcmV0dXJuIG1fY29udGV4dC51cmwoKTsKKyAgICB9CiAKICAgICBB
U1NFUlQoIWlzUm9vdE1vZHVsZShtb2R1bGVLZXlWYWx1ZSkpOwogICAgIEFTU0VSVChtb2R1bGVL
ZXlWYWx1ZS5pc1N0cmluZygpKTsKQEAgLTIxOSw4ICsyMzQsMTQgQEAgSlNDOjpKU1ZhbHVlIFNj
cmlwdE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxP
YmplY3QsIEoKICAgICBpZiAoIXNvdXJjZVVSTC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBK
U0M6OnRocm93VHlwZUVycm9yKGpzR2xvYmFsT2JqZWN0LCBzY29wZSwgIk1vZHVsZSBrZXkgaXMg
YW4gaW52YWxpZCBVUkwuIl9zKTsKIAotICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fZG9jdW1lbnQu
ZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShz
b3VyY2VVUkwsICptb2R1bGVSZWNvcmQpOworICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5
cGU6OkRvY3VtZW50KSB7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvd25jYXN0PERvY3Vt
ZW50PihtX2NvbnRleHQpLmZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm4gZnJhbWUtPnNjcmlw
dCgpLmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgKm1vZHVsZVJlY29yZCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgQVNTRVJUKGlzPFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPihtX2NvbnRl
eHQpKTsKKyAgICAgICAgaWYgKGF1dG8qIHNjcmlwdCA9IGRvd25jYXN0PFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlPihtX2NvbnRleHQpLnNjcmlwdCgpKQorICAgICAgICAgICAgcmV0dXJuIHNj
cmlwdC0+ZXZhbHVhdGVNb2R1bGUoKm1vZHVsZVJlY29yZCk7CisgICAgfQogICAgIHJldHVybiBK
U0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAKQEAgLTI0OCwyMyArMjY5LDM2IEBAIEpTQzo6SlNJbnRl
cm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6aW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGpzCiAgICAgVVJMIGJhc2VVUkw7CiAgICAgUmVmUHRyPEpTQzo6U2NyaXB0RmV0
Y2hlcj4gc2NyaXB0RmV0Y2hlcjsKICAgICBpZiAoc291cmNlT3JpZ2luLmlzTnVsbCgpKSB7Ci0g
ICAgICAgIGJhc2VVUkwgPSBtX2RvY3VtZW50LmJhc2VVUkwoKTsKLSAgICAgICAgc2NyaXB0RmV0
Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7
CisgICAgICAgIFN0cmluZyBjaGFyc2V0OworICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3du
ZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICAgICAgYmFzZVVSTCA9IGRvd25jYXN0PERvY3Vt
ZW50PihtX2NvbnRleHQpLmJhc2VVUkwoKTsKKyAgICAgICAgICAgIGNoYXJzZXQgPSBkb3duY2Fz
dDxEb2N1bWVudD4obV9jb250ZXh0KS5jaGFyc2V0KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBiYXNlVVJMID0gbV9jb250ZXh0LnVybCgpOworICAgICAgICAgICAgY2hhcnNldCA9
ICJ1dGYtOCJfczsKKyAgICAgICAgfQorICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2Ny
aXB0RmV0Y2hlcjo6Y3JlYXRlKFdURk1vdmUoY2hhcnNldCkpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIGJhc2VVUkwgPSBVUkwoVVJMKCksIHNvdXJjZU9yaWdpbi5zdHJpbmcoKSk7CiAgICAgICAg
IGlmICghYmFzZVVSTC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVqZWN0UHJvbWlz
ZShnbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgIkltcG9ydGVyIG1vZHVsZSBrZXkgaXMgbm90IGEg
U3ltYm9sIG9yIGEgU3RyaW5nLiJfcyk7CiAKKyAgICAgICAgU3RyaW5nIGNoYXJzZXQ7CisgICAg
ICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KQorICAgICAgICAgICAg
Y2hhcnNldCA9IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmNoYXJzZXQoKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgY2hhcnNldCA9ICJ1dGYtOCJfczsKKwogICAgICAgICBpZiAo
c291cmNlT3JpZ2luLmZldGNoZXIoKSkKICAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBzb3Vy
Y2VPcmlnaW4uZmV0Y2hlcigpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBzY3JpcHRGZXRj
aGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKG1fZG9jdW1lbnQuY2hhcnNldCgpKTsK
KyAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUo
V1RGTW92ZShjaGFyc2V0KSk7CiAgICAgfQogICAgIEFTU0VSVChiYXNlVVJMLmlzVmFsaWQoKSk7
CiAgICAgQVNTRVJUKHNjcmlwdEZldGNoZXIpOwogCiAgICAgYXV0byBzcGVjaWZpZXIgPSBtb2R1
bGVOYW1lLT52YWx1ZShqc0dsb2JhbE9iamVjdCk7Ci0gICAgYXV0byByZXN1bHQgPSByZXNvbHZl
TW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgYXV0
byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fY29udGV4dCwgbV9vd25lclR5cGUs
IHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBy
ZWplY3RQcm9taXNlKGdsb2JhbE9iamVjdCwgVHlwZUVycm9yLCByZXN1bHQuZXJyb3IoKSk7CiAK
QEAgLTI4OCw2MiArMzIyLDk4IEBAIEpTQzo6SlNPYmplY3QqIFNjcmlwdE1vZHVsZUxvYWRlcjo6
Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJu
IG1ldGFQcm9wZXJ0aWVzOwogfQogCi12b2lkIFNjcmlwdE1vZHVsZUxvYWRlcjo6bm90aWZ5Rmlu
aXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiBsb2FkZXIsIFJlZlB0cjxEZWZlcnJlZFBy
b21pc2U+IHByb21pc2UpCit2b2lkIFNjcmlwdE1vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQo
TW9kdWxlU2NyaXB0TG9hZGVyJiBtb2R1bGVTY3JpcHRMb2FkZXIsIFVSTCYmIHNvdXJjZVVSTCwg
UmVmPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZSkKIHsKICAgICAvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9k
dWxlLXNjcmlwdAogCi0gICAgVVJMIHNvdXJjZVVSTCA9IGxvYWRlci5zb3VyY2VVUkwoKTsKLSAg
ICBpZiAoIW1fbG9hZGVycy5yZW1vdmUoJmxvYWRlcikpCisgICAgaWYgKCFtX2xvYWRlcnMucmVt
b3ZlKCZtb2R1bGVTY3JpcHRMb2FkZXIpKQogICAgICAgICByZXR1cm47Ci0gICAgbG9hZGVyLmNs
ZWFyQ2xpZW50KCk7CisgICAgbW9kdWxlU2NyaXB0TG9hZGVyLmNsZWFyQ2xpZW50KCk7CiAKLSAg
ICBhdXRvJiBjYWNoZWRTY3JpcHQgPSAqbG9hZGVyLmNhY2hlZFNjcmlwdCgpOworICAgIGlmICht
X293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CisgICAgICAgIGF1dG8mIGxvYWRl
ciA9IHN0YXRpY19jYXN0PENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciY+KG1vZHVsZVNjcmlwdExv
YWRlcik7CisgICAgICAgIGF1dG8mIGNhY2hlZFNjcmlwdCA9ICpsb2FkZXIuY2FjaGVkU2NyaXB0
KCk7CiAKLSAgICBpZiAoY2FjaGVkU2NyaXB0LnJlc291cmNlRXJyb3IoKS5pc0FjY2Vzc0NvbnRy
b2woKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCAiQ3Jvc3Mtb3JpZ2lu
IHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xp
Y3kuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYgKGNhY2hlZFNjcmlw
dC5yZXNvdXJjZUVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkpIHsKKyAgICAgICAgICAgIHByb21p
c2UtPnJlamVjdChUeXBlRXJyb3IsICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5
IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iX3MpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CiAKLSAgICBpZiAoY2FjaGVkU2NyaXB0LmVycm9yT2NjdXJyZWQo
KSkgewotICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcigqcHJvbWlzZSwgTW9k
dWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3Jp
cHQgZmFpbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNo
ZWRTY3JpcHQuZXJyb3JPY2N1cnJlZCgpKSB7CisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0
ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNF
cnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC53YXNDYW5jZWxl
ZCgpKSB7Ci0gICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKCpwcm9taXNlLCBN
b2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBz
Y3JpcHQgaXMgY2FuY2VsZWQuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAg
aWYgKGNhY2hlZFNjcmlwdC53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICByZWplY3RUb1By
b3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5k
OjpXYXNDYW5jZWxlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgaXMgY2FuY2VsZWQuIl9z
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYgKCFNSU1FVHlwZVJl
Z2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjYWNoZWRTY3JpcHQucmVzcG9u
c2UoKS5taW1lVHlwZSgpKSkgewotICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlw
dAotICAgICAgICAvLyBUaGUgcmVzdWx0IG9mIGV4dHJhY3RpbmcgYSBNSU1FIHR5cGUgZnJvbSBy
ZXNwb25zZSdzIGhlYWRlciBsaXN0IChpZ25vcmluZyBwYXJhbWV0ZXJzKSBpcyBub3QgYSBKYXZh
U2NyaXB0IE1JTUUgdHlwZS4KLSAgICAgICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgZmV0
Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBkb2VzIG5vdCBpbmNsdWRlIE1JTUUgdHlwZSBjaGVja2lu
Zy4gSW4gY29udHJhc3QsIG1vZHVsZSBzY3JpcHRzIHdpbGwgZmFpbCB0byBsb2FkIGlmIHRoZXkg
YXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlNRSB0eXBlLgotICAgICAgICBwcm9taXNlLT5yZWplY3Qo
VHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5
cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9y
dGVkSmF2YVNjcmlwdE1JTUVUeXBlKGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCkp
KSB7CisgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAorICAgICAgICAg
ICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2Un
cyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuCisgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGlu
ZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJ
biBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUg
bm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCisgICAgICAgICAgICBwcm9taXNlLT5yZWplY3Qo
VHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5
cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICBpZiAoYXV0byogcGFyYW1ldGVycyA9IGxv
YWRlci5wYXJhbWV0ZXJzKCkpIHsKLSAgICAgICAgaWYgKCFtYXRjaEludGVncml0eU1ldGFkYXRh
KGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkpKSB7Ci0gICAgICAgICAgICBw
cm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCJDYW5ub3QgbG9hZCBzY3JpcHQg
IiwgaW50ZWdyaXR5TWlzbWF0Y2hEZXNjcmlwdGlvbihjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMt
PmludGVncml0eSgpKSkpOworICAgICAgICBpZiAoYXV0byogcGFyYW1ldGVycyA9IGxvYWRlci5w
YXJhbWV0ZXJzKCkpIHsKKyAgICAgICAgICAgIGlmICghbWF0Y2hJbnRlZ3JpdHlNZXRhZGF0YShj
YWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkgeworICAgICAgICAgICAgICAg
IHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIkNhbm5vdCBsb2FkIHNjcmlw
dCAiLCBpbnRlZ3JpdHlNaXNtYXRjaERlc2NyaXB0aW9uKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVy
cy0+aW50ZWdyaXR5KCkpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorICAgICAgICB9CisKKyAgICAgICAgVVJMIHJlc3BvbnNlVVJMID0gY2FjaGVkU2NyaXB0LnJl
c3BvbnNlKCkudXJsKCk7CisgICAgICAgIC8vIElmIHdlIGRvIG5vdCBoYXZlIHJlZGlyZWN0aW9u
LCB3ZSBtdXN0IHJlc2VydmUgdGhlIHNvdXJjZSBVUkwncyBmcmFnbWVudCBleHBsaWNpdGx5IGhl
cmUgc2luY2UgUmVzb3VyY2VSZXNwb25zZTo6dXJsKCkgaXMgdGhlIG9uZSB3aGVuIHdlIGZpcnN0
IGNhY2hlIGl0IHRvIE1lbW9yeUNhY2hlLgorICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRy
YWNrIGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4KKyAgICAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODQyMAorICAgICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNDkwCisgICAgICAgIGlmICghY2Fj
aGVkU2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpICYmIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnNv
dXJjZSgpICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgeworICAg
ICAgICAgICAgaWYgKHNvdXJjZVVSTC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkKKyAgICAgICAg
ICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIoc291cmNlVVJMLmZyYWdt
ZW50SWRlbnRpZmllcigpKTsKKyAgICAgICAgfQorCisgICAgICAgIG1fcmVxdWVzdFVSTFRvUmVz
cG9uc2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwgV1RGTW92ZShyZXNwb25zZVVSTCkp
OworICAgICAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxP
YmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpKU1NvdXJj
ZUNvZGU6OmNyZWF0ZShqc0dsb2JhbE9iamVjdC52bSgpLAorICAgICAgICAgICAgICAgIEpTQzo6
U291cmNlQ29kZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyAmY2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJj
ZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNT
b3VyY2VDb2RlKCkgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8m
IGxvYWRlciA9IHN0YXRpY19jYXN0PFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciY+KG1vZHVsZVNj
cmlwdExvYWRlcik7CisgICAgICAgIGF1dG8mIHdvcmtlclNjcmlwdExvYWRlciA9IGxvYWRlci5z
Y3JpcHRMb2FkZXIoKTsKKworICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmZhaWxlZCgp
KSB7CisgICAgICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmVycm9yKCkuaXNBY2Nlc3ND
b250cm9sKCkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCAi
Q3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2Ug
U2hhcmluZyBwb2xpY3kuIl9zKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZXJyb3IoKS5pc0NhbmNl
bGxhdGlvbigpKSB7CisgICAgICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJy
b3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2VsZWQsICJJ
bXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0
ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNF
cnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH0KIAotICAgIFVSTCByZXNwb25zZVVSTCA9IGNh
Y2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpOwotICAgIC8vIElmIHdlIGRvIG5vdCBoYXZlIHJl
ZGlyZWN0aW9uLCB3ZSBtdXN0IHJlc2VydmUgdGhlIHNvdXJjZSBVUkwncyBmcmFnbWVudCBleHBs
aWNpdGx5IGhlcmUgc2luY2UgUmVzb3VyY2VSZXNwb25zZTo6dXJsKCkgaXMgdGhlIG9uZSB3aGVu
IHdlIGZpcnN0IGNhY2hlIGl0IHRvIE1lbW9yeUNhY2hlLgotICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgdHJhY2sgZnJhZ21lbnRzIHRocm91Z2ggcmVkaXJlY3Rpb25zLgotICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKLSAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNDkwCi0gICAgaWYgKCFjYWNoZWRTY3Jp
cHQuaGFzUmVkaXJlY3Rpb25zKCkgJiYgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkg
IT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7Ci0gICAgICAgIGlm
IChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCi0gICAgICAgICAgICByZXNwb25z
ZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIoc291cmNlVVJMLmZyYWdtZW50SWRlbnRpZmllcigp
KTsKLSAgICB9CisgICAgICAgIGlmICghTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZh
U2NyaXB0TUlNRVR5cGUod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlNRVR5cGUoKSkpIHsK
KyAgICAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dl
YmFwcGFwaXMuaHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0CisgICAgICAgICAgICAv
LyBUaGUgcmVzdWx0IG9mIGV4dHJhY3RpbmcgYSBNSU1FIHR5cGUgZnJvbSByZXNwb25zZSdzIGhl
YWRlciBsaXN0IChpZ25vcmluZyBwYXJhbWV0ZXJzKSBpcyBub3QgYSBKYXZhU2NyaXB0IE1JTUUg
dHlwZS4KKyAgICAgICAgICAgIC8vIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGZldGNoaW5nIGEg
Y2xhc3NpYyBzY3JpcHQgZG9lcyBub3QgaW5jbHVkZSBNSU1FIHR5cGUgY2hlY2tpbmcuIEluIGNv
bnRyYXN0LCBtb2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwgdG8gbG9hZCBpZiB0aGV5IGFyZSBub3Qg
b2YgYSBjb3JyZWN0IE1JTUUgdHlwZS4KKyAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChUeXBl
RXJyb3IsIG1ha2VTdHJpbmcoIiciLCB3b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VNSU1FVHlw
ZSgpLCAiJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iKSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxN
YXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwgV1RGTW92ZShyZXNwb25zZVVSTCkpOwotICAgIHBy
b21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNHbG9i
YWxPYmplY3QpIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNH
bG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAgICAgIEpTQzo6U291cmNlQ29kZSB7IFNjcmlwdFNv
dXJjZUNvZGUgeyAmY2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6
TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkgfSk7Ci0gICAg
fSk7CisgICAgICAgIFVSTCByZXNwb25zZVVSTCA9IHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25z
ZVVSTCgpOworCisgICAgICAgIG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuYWRkKHNvdXJj
ZVVSTC5zdHJpbmcoKSwgcmVzcG9uc2VVUkwpOworICAgICAgICBwcm9taXNlLT5yZXNvbHZlV2l0
aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7CisgICAg
ICAgICAgICByZXR1cm4gSlNDOjpKU1NvdXJjZUNvZGU6OmNyZWF0ZShqc0dsb2JhbE9iamVjdC52
bSgpLAorICAgICAgICAgICAgICAgIEpTQzo6U291cmNlQ29kZSB7IFNjcmlwdFNvdXJjZUNvZGUg
eyB3b3JrZXJTY3JpcHRMb2FkZXIuc2NyaXB0KCksIFdURk1vdmUocmVzcG9uc2VVUkwpLCB7IH0s
IEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRj
aGVyKCkgfS5qc1NvdXJjZUNvZGUoKSB9KTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCmluZGV4
IGRlMjlkMmY0YmYwOTZiNjBjMzY5OTgwMzE2YzE0ODZiMjgyYWJmMDkuLmRmMzRkNTUxYTExY2Q5
OGY0ZTIzNmEyYWExZjQ4Mjc5ZDk2NGM2ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCkBAIC0yNSw4ICsyNSw4IEBACiAKICNwcmFnbWEg
b25jZQogCi0jaW5jbHVkZSAiQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmgiCi0jaW5jbHVkZSAi
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0
TG9hZGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00NSwxNiArNDUsMTcgQEAgY2xhc3Mg
U291cmNlT3JpZ2luOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50Owog
Y2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owog
Ci1jbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudCB7CitjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2
YXRlIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
U2NyaXB0TW9kdWxlTG9hZGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgU2NyaXB0TW9kdWxlTG9hZGVyKERvY3VtZW50Jik7CisgICAgZW51bSBjbGFz
cyBPd25lclR5cGUgOiB1aW50OF90IHsgRG9jdW1lbnQsIFdvcmtlck9yV29ya2xldCB9OworICAg
IGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgT3du
ZXJUeXBlKTsKICAgICB+U2NyaXB0TW9kdWxlTG9hZGVyKCk7CiAKLSAgICBEb2N1bWVudCYgZG9j
dW1lbnQoKSB7IHJldHVybiBtX2RvY3VtZW50OyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiAgICAgSlNDOjpJZGVudGlmaWVy
IHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBKU0M6
OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcik7CiAgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogZmV0
Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFs
dWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpOwpAQCAtNjMsMTMgKzY0LDE1IEBAIGNsYXNzIFNjcmlwdE1vZHVsZUxvYWRlciBm
aW5hbCA6IHByaXZhdGUgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKICAgICBKU0M6
OkpTT2JqZWN0KiBjcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29y
ZCosIEpTQzo6SlNWYWx1ZSk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBub3RpZnlGaW5pc2hlZChD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImLCBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPikgZmluYWw7
CisgICAgdm9pZCBub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImLCBVUkwmJiwgUmVm
PERlZmVycmVkUHJvbWlzZT4pIGZpbmFsOworCiAgICAgVVJMIG1vZHVsZVVSTChKU0M6OkpTR2xv
YmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsKICAgICBVUkwgcmVzcG9uc2VVUkxGcm9tUmVxdWVz
dFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsKIAotICAgIERvY3VtZW50
JiBtX2RvY3VtZW50OworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIG1fY29udGV4dDsKICAg
ICBIYXNoTWFwPFN0cmluZywgVVJMPiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOwotICAg
IEhhc2hTZXQ8UmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9hZGVyczsKKyAgICBI
YXNoU2V0PFJlZjxNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7CisgICAgT3duZXJUeXBl
IG1fb3duZXJUeXBlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTAwMTkxYzFhYWFmZmZiZjFhNTQxZDUyOTM0MjMxNWZkOGIwODdkZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNj
cmlwdExvYWRlci5jcHAKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCIKKworI2luY2x1
ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUg
IkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJz
LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVkZSAiU2NyaXB0
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUg
IlNjcmlwdFNvdXJjZUNvZGUuaCIKKyNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyPiBXb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNs
aWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3Jp
cHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVu
dCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RGTW92ZShwYXJhbWV0ZXJzKSkpOworfQorCitX
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNo
ZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzPiYmIHBhcmFtZXRlcnMpCisgICAgOiBNb2R1bGVTY3JpcHRMb2FkZXIoY2xpZW50KQorICAg
ICwgbV9wcm9taXNlKCZwcm9taXNlKQorICAgICwgbV9zY3JpcHRGZXRjaGVyKHNjcmlwdEZldGNo
ZXIpCisgICAgLCBtX3BhcmFtZXRlcnMoV1RGTW92ZShwYXJhbWV0ZXJzKSkKKyAgICAsIG1fc2Ny
aXB0TG9hZGVyKFdvcmtlclNjcmlwdExvYWRlcjo6Y3JlYXRlKCkpCit7Cit9CisKK1dvcmtlck1v
ZHVsZVNjcmlwdExvYWRlcjo6fldvcmtlck1vZHVsZVNjcmlwdExvYWRlcigpCit7CisgICAgbV9z
Y3JpcHRMb2FkZXItPmNhbmNlbCgpOworfQorCitib29sIFdvcmtlck1vZHVsZVNjcmlwdExvYWRl
cjo6bG9hZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBVUkwmJiBzb3VyY2VVUkwp
Cit7CisgICAgbV9zb3VyY2VVUkwgPSBXVEZNb3ZlKHNvdXJjZVVSTCk7CisKKyAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291cmNlVVJMIH07CisKKyAgICBGZXRjaE9wdGlvbnMgZmV0
Y2hPcHRpb25zOworICAgIGZldGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpD
b3JzOworICAgIGZldGNoT3B0aW9ucy5jYWNoZSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1
bHQ7CisgICAgZmV0Y2hPcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6
Rm9sbG93OworICAgIC8vIEZJWE1FOiBQcm9wYWdhdGUgY3JlZGVudGlhbHMuCisgICAgLy8gZmV0
Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gc2NyaXB0RmV0Y2hKb2IuY3JlZGVudGlhbHM7CisgICAg
YXV0byBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IGNvbnRleHQuc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgPyBDb250ZW50U2VjdXJpdHlQb2xp
Y3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3Jj
ZW1lbnQ6OkVuZm9yY2VDaGlsZFNyY0RpcmVjdGl2ZTsKKworICAgIFN0cmluZyB0YXNrTW9kZSA9
ICJsb2FkTW9kdWxlc0luV29ya2VyT3JXb3JrbGV0TW9kZSJfczsKKyAgICBtX3NjcmlwdExvYWRl
ci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUo
ZmV0Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VX
b3JrZXJzTW9kZTo6QWxsLCAqdGhpcywgV1RGTW92ZSh0YXNrTW9kZSkpOworICAgIHJldHVybiB0
cnVlOworfQorCit2b2lkIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQo
KQoreworICAgIEFTU0VSVChtX3Byb21pc2UpOworCisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyk7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+bm90
aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9zb3VyY2VVUkwpLCBtX3Byb21pc2UucmVsZWFz
ZU5vbk51bGwoKSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjRkOTc3YmYxYzA0MmQ3
MDU1OTcyZGViY2I0NDFmOTgxZjhiMjExZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0wLDAgKzEsNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExv
YWRlci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRGVmZXJyZWRQcm9taXNlOworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBN
b2R1bGVGZXRjaFBhcmFtZXRlcnM7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xh
c3MgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OworY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyOwor
CitjbGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxlU2Ny
aXB0TG9hZGVyLCBwcml2YXRlIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI+IGNyZWF0ZShNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwg
UmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisKKyAgICB2aXJ0dWFsIH5Xb3JrZXJN
b2R1bGVTY3JpcHRMb2FkZXIoKTsKKworICAgIGJvb2wgbG9hZChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgVVJMJiYgc291cmNlVVJMKTsKKworICAgIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlw
dEZldGNoZXIoKSB7IHJldHVybiBtX3NjcmlwdEZldGNoZXIuZ2V0KCk7IH0KKyAgICBNb2R1bGVG
ZXRjaFBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSB7IHJldHVybiBtX3BhcmFtZXRlcnMuZ2V0KCk7
IH0KKyAgICBXb3JrZXJTY3JpcHRMb2FkZXImIHNjcmlwdExvYWRlcigpIHsgcmV0dXJuIG1fc2Ny
aXB0TG9hZGVyLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNj
cmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKworICAgIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKSBmaW5hbCB7IH0KKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CisKKyAgICBS
ZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBtX3Byb21pc2U7CisgICAgUmVmPENhY2hlZFNjcmlwdEZl
dGNoZXI+IG1fc2NyaXB0RmV0Y2hlcjsKKyAgICBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJz
PiBtX3BhcmFtZXRlcnM7CisgICAgUmVmPFdvcmtlclNjcmlwdExvYWRlcj4gbV9zY3JpcHRMb2Fk
ZXI7CisgICAgVVJMIG1fc291cmNlVVJMOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOWIyMTM4Yjc3YzE4MGQ3MjA5NTE4MDBlMTRlMzQ3
YTE0M2U5NzE3MS4uNTRjZmYwNGE5NmRiYzgwOWQ2MzZhYWVjOGVjYjIwNWU0Njc3ZjA0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02MTUsNyArNjE1LDcgQEAgRG9jdW1lbnQ6OkRvY3Vt
ZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVy
bCwgRG9jdW0KICAgICAsIG1fZG9jdW1lbnRDcmVhdGlvblRpbWUoTW9ub3RvbmljVGltZTo6bm93
KCkpCiAjZW5kaWYKICAgICAsIG1fc2NyaXB0UnVubmVyKG1ha2VVbmlxdWU8U2NyaXB0UnVubmVy
PigqdGhpcykpCi0gICAgLCBtX21vZHVsZUxvYWRlcihtYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxv
YWRlcj4oKnRoaXMpKQorICAgICwgbV9tb2R1bGVMb2FkZXIobWFrZVVuaXF1ZTxTY3JpcHRNb2R1
bGVMb2FkZXI+KCp0aGlzLCBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93bmVyVHlwZTo6RG9jdW1lbnQp
KQogI2lmIEVOQUJMRShYU0xUKQogICAgICwgbV9hcHBseVBlbmRpbmdYU0xUcmFuc2Zvcm1zVGlt
ZXIoKnRoaXMsICZEb2N1bWVudDo6YXBwbHlQZW5kaW5nWFNMVHJhbnNmb3Jtc1RpbWVyRmlyZWQp
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNj
cmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCmlu
ZGV4IDlhMjVjMTY1ODhlZWNhZDY3OGZiOTExZWM4NjIyZjQyNDI1OTJiNWEuLjQ4ZWMwODUxYTQ1
N2Q5YmE0NzQ3M2ZlYzI4ZDdiNDkzMTJiNzg4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xv
YWRhYmxlTW9kdWxlU2NyaXB0LmNwcApAQCAtODgsMTYgKzg4LDQgQEAgdm9pZCBMb2FkYWJsZU1v
ZHVsZVNjcmlwdDo6ZXhlY3V0ZShTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50KQogICAgIHNj
cmlwdEVsZW1lbnQuZXhlY3V0ZU1vZHVsZVNjcmlwdCgqdGhpcyk7CiB9CiAKLXZvaWQgTG9hZGFi
bGVNb2R1bGVTY3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHJvb3RV
UkwpCi17Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAg
ZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoKnRoaXMsIHJvb3RVUkwuc3RyaW5nKCks
IG1fcGFyYW1ldGVycy5jb3B5UmVmKCkpOwotfQotCi12b2lkIExvYWRhYmxlTW9kdWxlU2NyaXB0
Ojpsb2FkKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNl
Q29kZSkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAgICAg
ICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgc291cmNlQ29kZSk7Ci19
Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlw
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgKaW5kZXggYmI3
OTk1NGQ3Yjk5YjBlZDA2YmZlNTVlZjg1NGVjY2UyMWYzNTg3Ny4uZDI1MzU5NjNmNjQ4YjAyYThh
MDFmZDYzYmIxZTM4MTM4NmNlZTQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xv
YWRhYmxlTW9kdWxlU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9k
dWxlU2NyaXB0LmgKQEAgLTUwLDE1ICs1MCwxNCBAQCBjbGFzcyBMb2FkYWJsZU1vZHVsZVNjcmlw
dCBmaW5hbCA6IHB1YmxpYyBMb2FkYWJsZVNjcmlwdCB7CiAKICAgICB2b2lkIHNldEVycm9yKEVy
cm9yJiYpOwogCi0gICAgdm9pZCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJMJiByb290VVJMKTsK
LSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7Ci0KICAg
ICB2b2lkIG5vdGlmeUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmluZ0ltcGwmKTsKICAgICB2b2lk
IG5vdGlmeUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yJiYpOwogICAgIHZvaWQgbm90
aWZ5TG9hZFdhc0NhbmNlbGVkKCk7CiAKICAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5
KCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0KIAorICAgIE1vZHVsZUZldGNo
UGFyYW1ldGVycyYgcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQor
CiBwcml2YXRlOgogICAgIExvYWRhYmxlTW9kdWxlU2NyaXB0KGNvbnN0IFN0cmluZyYgbm9uY2Us
IGNvbnN0IFN0cmluZyYgaW50ZWdyaXR5LCBSZWZlcnJlclBvbGljeSwgY29uc3QgU3RyaW5nJiBj
cm9zc09yaWdpbk1vZGUsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQXRvbVN0cmluZyYg
aW5pdGlhdG9yTmFtZSwgYm9vbCBpc0luVXNlckFnZW50U2hhZG93VHJlZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCAwNTc1OGI2MDBjNzUyMmI0N2YzNjRiYTZhMThk
MzVmMTczMTEwN2Y5Li41ZTk5ZjBmNTc3N2IzYjIxNThkZDBmYTRiYzM4Mjc3NmNkYjM0ODEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5j
bHVkZSAiTG9hZGFibGVDbGFzc2ljU2NyaXB0LmgiCiAjaW5jbHVkZSAiTG9hZGFibGVNb2R1bGVT
Y3JpcHQuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGVuZGluZ1NjcmlwdC5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1lbnQu
aCIKQEAgLTM1MSw4ICszNTIsMTEgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxl
U2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKICAgICAgICAg
ICAgIHNjcmlwdENoYXJzZXQoKSwKICAgICAgICAgICAgIG1fZWxlbWVudC5sb2NhbE5hbWUoKSwK
ICAgICAgICAgICAgIG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKTsKLSAgICAg
ICAgc2NyaXB0LT5sb2FkKG1fZWxlbWVudC5kb2N1bWVudCgpLCBtb2R1bGVTY3JpcHRSb290VVJM
KTsKICAgICAgICAgbV9sb2FkYWJsZVNjcmlwdCA9IFdURk1vdmUoc2NyaXB0KTsKKyAgICAgICAg
aWYgKGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkgeworICAgICAg
ICAgICAgYXV0byYgc2NyaXB0ID0gZG93bmNhc3Q8TG9hZGFibGVNb2R1bGVTY3JpcHQ+KCptX2xv
YWRhYmxlU2NyaXB0LmdldCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9k
dWxlU2NyaXB0KHNjcmlwdCwgbW9kdWxlU2NyaXB0Um9vdFVSTC5zdHJpbmcoKSwgbWFrZVJlZihz
Y3JpcHQucGFyYW1ldGVycygpKSk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCkBAIC0zNjcsOCArMzcxLDkgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9k
dWxlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKICAgICBp
ZiAoIWNvbnRlbnRTZWN1cml0eVBvbGljeS5hbGxvd0lubGluZVNjcmlwdChtX2VsZW1lbnQuZG9j
dW1lbnQoKS51cmwoKS5zdHJpbmcoKSwgbV9zdGFydExpbmVOdW1iZXIsIHNvdXJjZUNvZGUuc291
cmNlKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpLCBoYXNLbm93bk5vbmNlKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgc2NyaXB0LT5sb2FkKG1fZWxlbWVudC5kb2N1bWVudCgpLCBz
b3VyY2VDb2RlKTsKICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAg
IGlmIChhdXRvKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpCisgICAgICAg
IGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KGRvd25jYXN0PExvYWRhYmxlTW9kdWxl
U2NyaXB0PigqbV9sb2FkYWJsZVNjcmlwdC5nZXQoKSksIHNvdXJjZUNvZGUpOwogICAgIHJldHVy
biB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJs
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAK
aW5kZXggMjcxN2M4NjFjNzRiMGYyYWViY2RlNDA4NzAwZTJhOWEwMzczNzU5NS4uMWI2NTMyYzNi
MGVhYTgwZDliZDQ2YzZkNDMyMTM2OTYyMWMwMTliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9UaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMTAxLDEwICsxMDEsMTAgQEAgVGhyZWFkYWJsZUxv
YWRlck9wdGlvbnMgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0
CiB9CiAKIAotUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50
JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFRocmVhZGFibGVMb2Fk
ZXJPcHRpb25zJiBvcHRpb25zLCBTdHJpbmcmJiByZWZlcnJlcikKK1JlZlB0cjxUaHJlYWRhYmxl
TG9hZGVyPiBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgU3RyaW5n
JiYgcmVmZXJyZXIsIFN0cmluZyYmIHRhc2tNb2RlKQogewogICAgIGlmIChpczxXb3JrZXJHbG9i
YWxTY29wZT4oY29udGV4dCkgfHwgKGlzPFdvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkgJiYg
ZG93bmNhc3Q8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS53b3JrZXJPcldvcmtsZXRUaHJl
YWQoKSkpCi0gICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc3Rh
dGljX2Nhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmPihjb250ZXh0KSwgY2xpZW50LCBX
b3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLCBX
VEZNb3ZlKHJlZmVycmVyKSk7CisgICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlTG9hZGVy
OjpjcmVhdGUoc3RhdGljX2Nhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmPihjb250ZXh0
KSwgY2xpZW50LCBXVEZNb3ZlKHRhc2tNb2RlKSwgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucywg
V1RGTW92ZShyZWZlcnJlcikpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbnVsbHB0cjsK
ICAgICBpZiAoaXM8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCmluZGV4IGMyYjI0NWMzZWJiOGJjOTMwZWY0ZDE3MmJh
MTUwOWExNzlmMWQ3YTYuLjFhYzcwNGI0YzNiNTBiMGZmZGEwMzQyOGMzY2U3ZGExNDk4ODI2MzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaApAQCAtNzQsNyArNzQs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRo
cmVhZGFibGVMb2FkZXIpOwogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIHZvaWQgbG9hZFJl
c291cmNlU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVzb3VyY2VSZXF1
ZXN0JiYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0
aW9ucyYpOwotICAgICAgICBzdGF0aWMgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IGNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIFJlc291cmNl
UmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYsIFN0cmluZyYmIHJlZmVy
cmVyID0gU3RyaW5nKCkpOworICAgICAgICBzdGF0aWMgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYs
IFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYsIFN0cmlu
ZyYmIHJlZmVycmVyID0gU3RyaW5nKCksIFN0cmluZyYmIHRhc2tNb2RlID0geyB9KTsKIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUlzRG9uZSgpID0gMDsKICAgICAgICAgdmlydHVhbCB2
b2lkIGNhbmNlbCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCA2MmY5MTdh
MzY3ODE5ZGVjM2NkNDEwZDk3NjY5NWNlZTYyZjZkNGI5Li5kZGJkZjVlMWFhOWNlNTc5N2JiZDNh
NDQ4MWU1YjRjZTNiOTU4MWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC03MCw2
ICs3MCw4IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAgLCBtX2lkZW50aWZpZXIoIndv
cmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIo
KSkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNyZWF0ZSgq
dGhpcykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxhZ3MpCisgICAgLCBtX3R5cGUo
b3B0aW9ucy50eXBlKQorICAgICwgbV9jcmVkZW50aWFscyhvcHRpb25zLmNyZWRlbnRpYWxzKQog
ewogICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAgaWYgKCFhZGRlZExpc3RlbmVy
KSB7CkBAIC0xMTMsMTAgKzExNSwxMyBAQCBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gV29ya2Vy
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpSdQogCiAgICAg
RmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKICAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNo
T3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbjsKKyAgICBpZiAod29ya2VyLT5tX3R5cGUgPT0gV29y
a2VyVHlwZTo6TW9kdWxlKQorICAgICAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSB3b3Jr
ZXItPm1fY3JlZGVudGlhbHM7CiAgICAgZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25z
OjpDYWNoZTo6RGVmYXVsdDsKICAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlv
bnM6OlJlZGlyZWN0OjpGb2xsb3c7CiAgICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyOwotICAgIHdvcmtlci0+bV9zY3JpcHRMb2Fk
ZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNl
V29ya2Vyc01vZGU6OkFsbCwgd29ya2VyKTsKKyAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5s
b2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRj
aE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtl
cnNNb2RlOjpBbGwsIHdvcmtlci5nZXQoKSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7
CisKICAgICByZXR1cm4gd29ya2VyOwogfQogCkBAIC0yMTUsNyArMjIwLDcgQEAgdm9pZCBXb3Jr
ZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSA9
IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZzsKICAgICBpZiAoYXV0byBwb2xpY3kgPSBwYXJz
ZVJlZmVycmVyUG9saWN5KG1fc2NyaXB0TG9hZGVyLT5yZWZlcnJlclBvbGljeSgpLCBSZWZlcnJl
clBvbGljeVNvdXJjZTo6SFRUUEhlYWRlcikpCiAgICAgICAgIHJlZmVycmVyUG9saWN5ID0gKnBv
bGljeTsKLSAgICBtX2NvbnRleHRQcm94eS5zdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0
TG9hZGVyLT51cmwoKSwgbV9uYW1lLCBjb250ZXh0LT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXIt
PnVybCgpKSwgaXNPbmxpbmUsIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgY29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgbV93b3JrZXJDcmVhdGlvblRpbWUsIHJlZmVycmVyUG9saWN5LCBtX3J1
bnRpbWVGbGFncyk7CisgICAgbV9jb250ZXh0UHJveHkuc3RhcnRXb3JrZXJHbG9iYWxTY29wZSht
X3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwgY29udGV4dC0+dXNlckFnZW50KG1fc2NyaXB0
TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCksIGNvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9zaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2VyQ3JlYXRpb25UaW1lLCByZWZlcnJlclBvbGlj
eSwgbV90eXBlLCBtX2NyZWRlbnRpYWxzLCBtX3J1bnRpbWVGbGFncyk7CiAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXIt
PmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyLmgKaW5kZXggNTNmNWU2ZmZmMjdjOWZhM2U1YzBlMDFmMGY2YzQyYzZjYjZmOWQw
ZS4uMzhhNjIzYTk4ZGJhMzVmZjgwMTNjZDZmYzhjODVjODEwMjA1MDIxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlci5oCkBAIC0yOSw5ICsyOSwxMSBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVj
dC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgog
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlh
bHMuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIlBvc3RNZXNzYWdlT3B0
aW9ucy5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUg
IldvcmtlclR5cGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4K
ICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgpAQCAtNTUsNiArNTcsOCBAQCBjbGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RX
b3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV29yawogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoV29ya2VyKTsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgT3B0aW9ucyB7Cisg
ICAgICAgIFdvcmtlclR5cGUgdHlwZTsKKyAgICAgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMg
Y3JlZGVudGlhbHM7CiAgICAgICAgIFN0cmluZyBuYW1lOwogICAgIH07CiAgICAgc3RhdGljIEV4
Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpT
Qzo6UnVudGltZUZsYWdzLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgT3B0aW9ucyYpOwpAQCAt
NzksNiArODMsOCBAQCBjbGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIs
IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV29yawogICAgIHZvaWQgcG9zdFRhc2tU
b1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
PiYmKTsKICNlbmRpZgogCisgICAgV29ya2VyVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3QgT3B0aW9ucyYpOwogCkBAIC0xMTIsNiAr
MTE4LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3RyYWN0V29ya2VyLCBwdWJs
aWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAg
ICBIYXNoU2V0PFN0cmluZz4gbV90cmFuc2Zvcm1lcnM7CiAjZW5kaWYKKyAgICBXb3JrZXJUeXBl
IG1fdHlwZSB7IFdvcmtlclR5cGU6OkNsYXNzaWMgfTsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50
aWFscyBtX2NyZWRlbnRpYWxzIHsgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4g
fTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlk
bAppbmRleCA0NWQ2YTA4Njc4NTRlZTQwNGRlN2U3ZDAxMjQ4Y2ViZjQ0ZGNhN2VkLi43MDIxNzk2
ZGY1MDRhZGY4ZTZiOTU4OWFjZTlmMTQ0ODIxZjI5NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXIuaWRsCkBAIC0zOCw2ICszOCw4IEBACiB9OwogCiBkaWN0aW9uYXJ5IFdvcmtlck9wdGlvbnMg
eworICAgIFdvcmtlclR5cGUgdHlwZSA9ICJjbGFzc2ljIjsKKyAgICBGZXRjaFJlcXVlc3RDcmVk
ZW50aWFscyBjcmVkZW50aWFscyA9ICJzYW1lLW9yaWdpbiI7IC8vIGNyZWRlbnRpYWxzIGlzIG9u
bHkgdXNlZCBpZiB0eXBlIGlzICJtb2R1bGUiCiAgICAgRE9NU3RyaW5nIG5hbWUgPSAiIjsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXgg
ZGJhYjM0OGU4MGM5ZGU1MGJkMjE1Nzc3YTE0YTM5YTBmNzBlNDljNy4uMzdkMmZjZjkyZGEzZTNh
OTkzNWRjOTlhNzE1ZjUxYjY2Mjc3YjFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTc0LDYgKzc0LDcgQEAgV29ya2VyR2xvYmFsU2NvcGU6
Oldvcmtlckdsb2JhbFNjb3BlKFdvcmtlclRocmVhZFR5cGUgdHlwZSwgY29uc3QgV29ya2VyUGFy
YW1ldGUKICAgICAsIG1fcGVyZm9ybWFuY2UoUGVyZm9ybWFuY2U6OmNyZWF0ZSh0aGlzLCBwYXJh
bXMudGltZU9yaWdpbikpCiAgICAgLCBtX3JlZmVycmVyUG9saWN5KHBhcmFtcy5yZWZlcnJlclBv
bGljeSkKICAgICAsIG1fc2V0dGluZ3NWYWx1ZXMocGFyYW1zLnNldHRpbmdzVmFsdWVzKQorICAg
ICwgbV93b3JrZXJUeXBlKHBhcmFtcy53b3JrZXJUeXBlKQogewogI2lmICFFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvblByb3h5KTsKQEAgLTI3NCw2
ICsyNzUsMTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV29ya2VyR2xvYmFsU2NvcGU6OmltcG9ydFNj
cmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMpCiB7CiAgICAgQVNTRVJUKGNvbnRlbnRT
ZWN1cml0eVBvbGljeSgpKTsKIAorICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL3dvcmtlcnMuaHRtbCNpbXBvcnRpbmctc2NyaXB0cy1hbmQtbGlicmFyaWVzCisg
ICAgLy8gMS4gSWYgd29ya2VyIGdsb2JhbCBzY29wZSdzIHR5cGUgaXMgIm1vZHVsZSIsIHRocm93
IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KKyAgICBpZiAobV93b3JrZXJUeXBlID09IFdvcmtlclR5
cGU6Ok1vZHVsZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImltcG9y
dFNjcmlwdHMgY2Fubm90IGJlIHVzZWQgaWYgd29lcmtlciB0eXBlIGlzIFwibW9kdWxlXCIiX3Mg
fTsKKwogICAgIFZlY3RvcjxVUkw+IGNvbXBsZXRlZFVSTHM7CiAgICAgY29tcGxldGVkVVJMcy5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KHVybHMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGVudHJ5
IDogdXJscykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmlu
ZGV4IDQ2ZDQ5ZDk0YzUyMzhlNDY4OGQzOTVkODdjMjA2M2ViNTcyMGQxYmYuLjBmMWRhYmZmMDVi
NTg5YTM3MWZkZjQyZTNiM2FjMTI4NjU4NzgzNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTE2Myw4ICsxNjMsNiBAQCBjbGFzcyBXb3JrZXJHbG9i
YWxTY29wZSA6IHB1YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1Ymxp
YyBCYXNlNgogICAgIG11dGFibGUgUmVmUHRyPFdvcmtlckxvY2F0aW9uPiBtX2xvY2F0aW9uOwog
ICAgIG11dGFibGUgUmVmUHRyPFdvcmtlck5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4gbV9zY3JpcHQ7
Ci0KICAgICBib29sIG1faXNPbmxpbmU7CiAgICAgYm9vbCBtX3Nob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeTsKIApAQCAtMTg3LDYgKzE4NSw3IEBAIGNsYXNzIFdvcmtl
ckdsb2JhbFNjb3BlIDogcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwg
cHVibGljIEJhc2U2CiAgICAgc3RkOjp1bmlxdWVfcHRyPENTU1ZhbHVlUG9vbD4gbV9jc3NWYWx1
ZVBvb2w7CiAgICAgUmVmZXJyZXJQb2xpY3kgbV9yZWZlcnJlclBvbGljeTsKICAgICBTZXR0aW5n
czo6VmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7CisgICAgV29ya2VyVHlwZSBtX3dvcmtlclR5cGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCmluZGV4IDQwMDAzYzNlMDEwOTk5NjBmNjQ3ODYx
ZTcwMTY4N2QwZTM3MWQ3MmQuLmVkNjczYWM4ZjdjMGVlNTRjMDYwZWNiNTkyMTYzOTBlZDcwZmUy
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94
eS5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlUHJveHkgewogcHVi
bGljOgogICAgIHN0YXRpYyBXb3JrZXJHbG9iYWxTY29wZVByb3h5JiBjcmVhdGUoV29ya2VyJik7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNj
cmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9v
bCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGlj
eSwgSlNDOjpSdW50aW1lRmxhZ3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJH
bG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0
aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVu
dGlhbHMsIEpTQzo6UnVudGltZUZsYWdzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0
ZVdvcmtlckdsb2JhbFNjb3BlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRv
V29ya2VyR2xvYmFsU2NvcGUoTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBwb3N0VGFza1RvV29ya2VyR2xvYmFsU2NvcGUoRnVuY3Rpb248dm9pZChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Jik+JiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggMTlkNGJlNjQ5OTJmMzBkM2NjZTc2NTQ3
YTNkMjIxOGE5OGM4NDJjMy4uNzg4MzU4N2E3YWY2MjA5ZTNlY2M4ZTdiNDFiYWQ0N2FkZjYyMjQw
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5j
cHAKQEAgLTczLDcgKzczLDcgQEAgV29ya2VyTWVzc2FnaW5nUHJveHk6On5Xb3JrZXJNZXNzYWdp
bmdQcm94eSgpCiAgICAgICAgIHx8IChpczxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCkgJiYgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpLnRocmVhZCgpLnRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSkp
OwogfQogCi12b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3Bl
KGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSByZWZl
cnJlclBvbGljeSwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZsYWdzKQordm9pZCBXb3JrZXJN
ZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVS
TCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09u
bGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywg
Ym9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25p
Y1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5
cGUgd29ya2VyVHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIEpTQzo6
UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncykKIHsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkIHRv
IGJlIHJldmlzaXRlZCB3aGVuIHdlIHN1cHBvcnQgbmVzdGVkIHdvcmtlciBvbmUgZGF5CiAgICAg
QVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQg
V29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBz
Y3JpcHRVUkwsIGNvbnN0IFN0CiAKICAgICBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIg
PSBkb2N1bWVudC5zb2NrZXRQcm92aWRlcigpOwogCi0gICAgV29ya2VyUGFyYW1ldGVycyBwYXJh
bXMgPSB7IHNjcmlwdFVSTCwgbmFtZSwgaWRlbnRpZmllciwgdXNlckFnZW50LCBpc09ubGluZSwg
Y29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIHRpbWVPcmlnaW4sIHJlZmVycmVyUG9saWN5LCBkb2N1
bWVudC5zZXR0aW5nc1ZhbHVlcygpIH07CisgICAgV29ya2VyUGFyYW1ldGVycyBwYXJhbXMgPSB7
IHNjcmlwdFVSTCwgbmFtZSwgaWRlbnRpZmllciwgdXNlckFnZW50LCBpc09ubGluZSwgY29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIHRpbWVPcmlnaW4sIHJlZmVycmVyUG9saWN5LCB3b3JrZXJUeXBl
LCBjcmVkZW50aWFscywgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMoKSB9OwogICAgIGF1dG8gdGhy
ZWFkID0gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUocGFyYW1zLCBzb3VyY2VDb2RlLCAq
dGhpcywgKnRoaXMsICp0aGlzLCBzdGFydE1vZGUsIGRvY3VtZW50LnRvcE9yaWdpbigpLCBwcm94
eSwgc29ja2V0UHJvdmlkZXIsIHJ1bnRpbWVGbGFncyk7CiAKICAgICB3b3JrZXJUaHJlYWRDcmVh
dGVkKHRocmVhZC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmgKaW5kZXggYzViNTc1YjllNjE1YjNmM2Y1OTZiZmMzZGY2ODNjODc3Y2M2MmJh
Yi4uZDllODFlMTU3YTBmNDg1MmU0OWI1OWQyNTY2YThhODBmNWY4MThhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaApAQCAtNTAsNyArNTAsNyBA
QCBjbGFzcyBXb3JrZXJNZXNzYWdpbmdQcm94eSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxXb3JrZXJNZXNzYWdpbmdQcgogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRhdGlv
bnMgb2YgV29ya2VyR2xvYmFsU2NvcGVQcm94eS4KICAgICAvLyAoT25seSB1c2UgdGhlc2UgZnVu
Y3Rpb25zIGluIHRoZSB3b3JrZXIgb2JqZWN0IHRocmVhZC4pCi0gICAgdm9pZCBzdGFydFdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1l
IHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBKU0M6OlJ1bnRpbWVGbGFncykgZmluYWw7Cisg
ICAgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBj
b25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBl
LCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOwogICAg
IHZvaWQgdGVybWluYXRlV29ya2VyR2xvYmFsU2NvcGUoKSBmaW5hbDsKICAgICB2b2lkIHBvc3RN
ZXNzYWdlVG9Xb3JrZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSBmaW5h
bDsKICAgICB2b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDIzODRhNWE4
YzdkMmEzMDJlZWU1Y2I0MDVlMTA1ZTAyNWM5ODQzY2MuLmY0ZjRiMjc0NjZmOWEzMGIyOGI4YjIx
ZjZmMmJlZjhiZGU5Mzg1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKIAor
I2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1ZGUgIldvcmtlckV2ZW50TG9v
cC5oIgogI2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJX
b3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0zOSw2ICs0MCw3IEBAIFdURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSk7CiAKIFdv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShXb3Jr
ZXJUaHJlYWRUeXBlIHR5cGUsIFJlZjxKU0M6OlZNPiYmIHZtLCBXb3JrZXJPcldvcmtsZXRUaHJl
YWQqIHRocmVhZCkKICAgICA6IG1fc2NyaXB0KG1ha2VVbmlxdWU8V29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcj4odHlwZSwgV1RGTW92ZSh2bSksIHRoaXMpKQorICAgICwgbV9tb2R1bGVM
b2FkZXIobWFrZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KCp0aGlzLCBTY3JpcHRNb2R1bGVM
b2FkZXI6Ok93bmVyVHlwZTo6V29ya2VyT3JXb3JrbGV0KSkKICAgICAsIG1fdGhyZWFkKHRocmVh
ZCkKICAgICAsIG1faW5zcGVjdG9yQ29udHJvbGxlcihtYWtlVW5pcXVlPFdvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXI+KCp0aGlzKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCA2YzI0NGEwYzQyN2VlMWM4YzY1ZmRj
Yzc2NTk1MmY4NzdmZDliMTZiLi41NDRmMDQ3YWVjMjc4MzI3NDRkMGE4YTcwYWY3ZTkzOWMzMzA5
OTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZS5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEV2ZW50TG9vcFRhc2tHcm91cDsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNsYXNz
IFdvcmtlckV2ZW50TG9vcDsKIGNsYXNzIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFz
cyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOwpAQCAtNTQsNiArNTUsOCBAQCBjbGFz
cyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBwdWJsaWMgUmVmQ291bgogCiAgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJZGVu
dGlmaWVyKCkgeyByZXR1cm4gbV91bmlxdWVJZGVudGlmaWVyKys7IH0KIAorICAgIFNjcmlwdE1v
ZHVsZUxvYWRlciYgbW9kdWxlTG9hZGVyKCkgeyByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOyB9CisK
ICAgICAvLyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LgogICAgIEV2ZW50TG9vcFRhc2tHcm91cCYg
ZXZlbnRMb29wKCkgZmluYWw7CiAgICAgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCBmaW5h
bDsKQEAgLTg4LDYgKzkxLDcgQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBw
dWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KICAgICB2b2lkIGRl
cmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyPiBtX3NjcmlwdDsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8U2NyaXB0TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRlcjsKICAgICBXb3JrZXJP
cldvcmtsZXRUaHJlYWQqIG1fdGhyZWFkOwogICAgIFJlZlB0cjxXb3JrZXJFdmVudExvb3A+IG1f
ZXZlbnRMb29wOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrR3JvdXA+IG1fZGVm
YXVsdFRhc2tHcm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGNkNGVjMjQ2ODI1MjVhYWJj
NjQyZDg3N2EwZGEwMTFlYmRlMTE0MzEuLmY3MTUyODExYmM0MWE1MDc5MGNhNWM1MWNhZGMyOWEz
ODNmM2UwY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzUsNiArMzUsOSBAQAogI2luY2x1
ZGUgIkpTRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5o
IgogI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiTG9h
ZGFibGVNb2R1bGVTY3JpcHQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmgi
CisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291
cmNlQ29kZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlICJX
b3JrZXJDb25zb2xlQ2xpZW50LmgiCkBAIC00Myw3ICs0NiwxMiBAQAogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0V4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2VwdGlv
bkhlbHBlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9HQ0FjdGl2aXR5Q2FsbGJhY2su
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
TW9kdWxlUmVjb3JkLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNOYXRpdmVTdGRGdW5j
dGlvbi5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJz
Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRjaGVyLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0yMjgsNiArMjM2LDE0NSBAQCB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZAogICAgIH0KIH0K
IAorc3RhdGljIElkZW50aWZpZXIganNWYWx1ZVRvTW9kdWxlS2V5KEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc1N5
bWJvbCgpKQorICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVVpZChqc0Nhc3Q8U3ltYm9s
Kj4odmFsdWUpLT5wcml2YXRlTmFtZSgpKTsKKyAgICBBU1NFUlQodmFsdWUuaXNTdHJpbmcoKSk7
CisgICAgcmV0dXJuIGFzU3RyaW5nKHZhbHVlKS0+dG9JZGVudGlmaWVyKGxleGljYWxHbG9iYWxP
YmplY3QpOworfQorCitKU0M6OkpTVmFsdWUgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cjo6ZXZhbHVhdGVNb2R1bGUoSlNDOjpKU01vZHVsZVJlY29yZCYgbW9kdWxlUmVjb3JkKQorewor
ICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBlci5nZXQoKTsKKyAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZt
IH07CisgICAgcmV0dXJuIG1vZHVsZVJlY29yZC5ldmFsdWF0ZSgmZ2xvYmFsT2JqZWN0KTsKK30K
KworTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
Ojpsb2FkTW9kdWxlU3luY2hyb25vdXNseShMb2FkYWJsZU1vZHVsZVNjcmlwdCYgbW9kdWxlU2Ny
aXB0LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIGlmIChpc0V4
ZWN1dGlvbkZvcmJpZGRlbigpKQorICAgICAgICByZXR1cm4gTWVzc2FnZVF1ZXVlVGVybWluYXRl
ZDsKKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZ2xvYmFsT2JqZWN0
ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKworICAgIFJlZlB0cjxMb2Fk
YWJsZU1vZHVsZVNjcmlwdD4gbW9kdWxlU2NyaXB0UmVmOworICAgIHsKKyAgICAgICAgYXV0byYg
cHJvbWlzZSA9IEpTRXhlY1N0YXRlOjpsb2FkTW9kdWxlKGdsb2JhbE9iamVjdCwgc291cmNlQ29k
ZS5qc1NvdXJjZUNvZGUoKSwgSlNDOjpKU1NjcmlwdEZldGNoZXI6OmNyZWF0ZSh2bSwgeyAmbW9k
dWxlU2NyaXB0IH0pKTsKKworICAgICAgICBtb2R1bGVTY3JpcHRSZWYgPSAmbW9kdWxlU2NyaXB0
OworCisgICAgICAgIGF1dG8mIGZ1bGZpbGxIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246
OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFttb2R1bGVTY3JpcHRSZWZd
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSAtPiBK
U0M6OkVuY29kZWRKU1ZhbHVlIHsKKyAgICAgICAgICAgIC8vIGRhdGFMb2dMbigiRlVMRklMTEVE
Iik7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAgICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgICAgICAgICBJZGVu
dGlmaWVyIG1vZHVsZUtleSA9IGpzVmFsdWVUb01vZHVsZUtleShnbG9iYWxPYmplY3QsIGNhbGxG
cmFtZS0+YXJndW1lbnQoMCkpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKKyAgICAgICAgICAgIG1vZHVsZVNjcmlwdFJlZi0+bm90aWZ5TG9hZENvbXBsZXRl
ZCgqbW9kdWxlS2V5LmltcGwoKSk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOworICAgICAgICB9KTsKKworICAgICAgICBhdXRvJiByZWplY3RIYW5k
bGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwg
U3RyaW5nKCksIFttb2R1bGVTY3JpcHRSZWZdKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSB7CisgICAgICAgICAgICAvLyBkYXRhTG9nTG4oIlJFSkVD
VEVEIik7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAg
ICAgICBKU1ZhbHVlIGVycm9yVmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOworICAgICAg
ICAgICAgaWYgKGVycm9yVmFsdWUuaXNPYmplY3QoKSkgeworICAgICAgICAgICAgICAgIGF1dG8q
IG9iamVjdCA9IEpTQzo6YXNPYmplY3QoZXJyb3JWYWx1ZSk7CisgICAgICAgICAgICAgICAgaWYg
KEpTVmFsdWUgZmFpbHVyZUtpbmRWYWx1ZSA9IG9iamVjdC0+Z2V0RGlyZWN0KHZtLCBzdGF0aWNf
Y2FzdDxKU1ZNQ2xpZW50RGF0YSY+KCp2bS5jbGllbnREYXRhKS5idWlsdGluTmFtZXMoKS5mYWls
dXJlS2luZFByaXZhdGVOYW1lKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMg
aG9zdCBwcm9wYWdhdGVkIGVycm9yIGluIHRoZSBtb2R1bGUgbG9hZGVyIHBpcGVsaW5lLgorICAg
ICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PE1vZHVsZUZldGNoRmFpbHVyZUtp
bmQ+KGZhaWx1cmVLaW5kVmFsdWUuYXNJbnQzMigpKSkgeworICAgICAgICAgICAgICAgICAgICBj
YXNlIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQ6CisgICAgICAgICAgICAgICAg
ICAgICAgICBtb2R1bGVTY3JpcHRSZWYtPm5vdGlmeUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6
OkVycm9yIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2FkYWJsZVNjcmlwdDo6RXJy
b3JUeXBlOjpDYWNoZWRTY3JpcHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpu
dWxsb3B0CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIE1vZHVsZUZldGNoRmFpbHVyZUtp
bmQ6Oldhc0NhbmNlbGVkOgorICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVm
LT5ub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7
CisgICAgICAgICAgICBtb2R1bGVTY3JpcHRSZWYtPm5vdGlmeUxvYWRGYWlsZWQoTG9hZGFibGVT
Y3JpcHQ6OkVycm9yIHsKKyAgICAgICAgICAgICAgICBMb2FkYWJsZVNjcmlwdDo6RXJyb3JUeXBl
OjpDYWNoZWRTY3JpcHQsCisgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkNvbnNvbGVN
ZXNzYWdlIHsKKyAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVNvdXJjZTo6SlMsCisgICAgICAg
ICAgICAgICAgICAgIE1lc3NhZ2VMZXZlbDo6RXJyb3IsCisgICAgICAgICAgICAgICAgICAgIHJl
dHJpZXZlRXJyb3JNZXNzYWdlKCpnbG9iYWxPYmplY3QsIHZtLCBlcnJvclZhbHVlLCBzY29wZSks
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICB9KTsKKworICAgICAgICBw
cm9taXNlLnRoZW4oJmdsb2JhbE9iamVjdCwgJmZ1bGZpbGxIYW5kbGVyLCAmcmVqZWN0SGFuZGxl
cik7CisgICAgfQorICAgIG1fZ2xvYmFsU2NvcGUtPmV2ZW50TG9vcCgpLnBlcmZvcm1NaWNyb3Rh
c2tDaGVja3BvaW50KCk7CisKKyAgICAvLyBEcml2ZSBSdW5Mb29wIHVudGlsIHdlIGdldCBlaXRo
ZXIgb2YgIldvcmtlciBpcyB0ZXJtaW5hdGVkIiwgIkxvYWRpbmcgaXMgZG9uZSIsIG9yICJMb2Fk
aW5nIGlzIGZhaWxlZCIuCisgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IG1fZ2xvYmFsU2Nv
cGUtPndvcmtlck9yV29ya2xldFRocmVhZCgpLT5ydW5Mb29wKCk7CisKKyAgICAvLyBXZSBkbyBu
b3Qgd2FudCB0byByZWNlaXZlIG1lc3NhZ2VzIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIGFzeW5j
aHJvbm91cyByZXNvdXJjZSBsb2FkaW5nLgorICAgIC8vIE90aGVyd2lzZSwgYSB3b3JrZXIgZGlz
Y2FyZHMgc29tZSBtZXNzYWdlcyBmcm9tIHRoZSBtYWluIHRocmVhZCBoZXJlIGluIGEgcmFjeSB3
YXkuCisgICAgLy8gRm9yIGV4YW1wbGUsIHRoZSBtYWluIHRocmVhZCBjYW4gcG9zdE1lc3NhZ2Ug
anVzdCBhZnRlciBjcmVhdGluZyBhIFdvcmtlci4gSW4gdGhhdCBjYXNlLCBwb3N0TWVzc2FnZSdz
CisgICAgLy8gdGFzayBpcyBxdWV1ZWQgaW4gV29ya2VyUnVuTG9vcCBiZWZvcmUgc3RhcnQgcnVu
bmluZyBtb2R1bGUgc2NyaXB0cy4gVGhpcyB0YXNrIHNob3VsZCBub3QgYmUgZGlzY2FyZGVkCisg
ICAgLy8gaW4gdGhlIGZvbGxvd2luZyBkcml2aW5nIG9mIHRoZSBSdW5Mb29wIHdoaWNoIG1haW5s
eSBhdHRlbXB0IHRvIGNvbGxlY3QgaW5pdGlhbCBsb2FkIG9mIG1vZHVsZSBzY3JpcHRzLgorICAg
IFN0cmluZyB0YXNrTW9kZSA9ICJsb2FkTW9kdWxlc0luV29ya2VyT3JXb3JrbGV0TW9kZSJfczsK
KyAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VS
ZWNlaXZlZDsKKyAgICB3aGlsZSAoKCFtb2R1bGVTY3JpcHRSZWYtPmlzTG9hZGVkKCkgJiYgIW1v
ZHVsZVNjcmlwdFJlZi0+d2FzQ2FuY2VsZWQoKSkgJiYgcmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRl
cm1pbmF0ZWQpIHsKKyAgICAgICAgcmVzdWx0ID0gcnVuTG9vcC5ydW5Jbk1vZGUobV9nbG9iYWxT
Y29wZSwgdGFza01vZGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1p
bmF0ZWQpCisgICAgICAgICAgICBtX2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWlj
cm90YXNrQ2hlY2twb2ludCgpOworICAgIH0KKworICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgd2Ug
YXJlIG5vdCBvZmZlcmluZyBjYW5jZWxsaW5nLgorICAgIC8vIGlmICghbG9hZGVyLT5kb25lKCkg
JiYgcmVzdWx0ID09IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpCisgICAgLy8gICAgIGxvYWRlci0+
Y2FuY2VsKCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFdvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShMb2FkYWJsZU1vZHVsZVNj
cmlwdCYgbW9kdWxlU2NyaXB0LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBT
dHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25G
b3JiaWRkZW4oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7
CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7
CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sg
eyB2bSB9OworCisgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9u
OworICAgIEpTRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LCBJ
ZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBtb2R1bGVTY3JpcHQubW9kdWxlS2V5KCkpLCBqc1VuZGVm
aW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKChyZXR1cm5lZEV4Y2VwdGlvbiAm
JiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVybmVkRXhjZXB0aW9uKSkg
fHwgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAgICAgIGZvcmJpZEV4ZWN1dGlvbigp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7
CisgICAgICAgIGlmIChtX2dsb2JhbFNjb3BlLT5jYW5JbmNsdWRlRXJyb3JEZXRhaWxzKHNvdXJj
ZUNvZGUuY2FjaGVkU2NyaXB0KCksIHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCkpKSB7CisgICAg
ICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBydW4gYXJiaXRy
YXJ5IGNvZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlvbi4KKyAgICAg
ICAgICAgIC8vIERvIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgdG8gaGFuZGxlIHRoYXQgcHJvcGVy
bHksIGlmIGl0LCBzYXksIHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlvbj8KKyAgICAgICAgICAgIGlm
IChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKnJldHVybmVkRXhj
ZXB0aW9uTWVzc2FnZSA9IHJldHVybmVkRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3RyaW5nKCZn
bG9iYWxPYmplY3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gT3ZlcndyaXRl
IHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBlcnJvci4KKyAgICAgICAgICAgIFN0
cmluZyBnZW5lcmljRXJyb3JNZXNzYWdlIHsgIlNjcmlwdCBlcnJvci4iX3MgfTsKKyAgICAgICAg
ICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKnJldHVy
bmVkRXhjZXB0aW9uTWVzc2FnZSA9IGdlbmVyaWNFcnJvck1lc3NhZ2U7CisgICAgICAgICAgICBy
ZXR1cm5lZEV4Y2VwdGlvbiA9IEpTQzo6RXhjZXB0aW9uOjpjcmVhdGUodm0sIGNyZWF0ZUVycm9y
KCZnbG9iYWxPYmplY3QsIGdlbmVyaWNFcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgfQorICAgIH0K
K30KKwogdGVtcGxhdGU8dHlwZW5hbWUgSlNHbG9iYWxTY29wZVByb3RvdHlwZSwgdHlwZW5hbWUg
SlNHbG9iYWxTY29wZSwgdHlwZW5hbWUgR2xvYmFsU2NvcGU+CiB2b2lkIFdvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHRXaXRoU3ViY2xhc3MoKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuaAppbmRleCBjNDkzMDFhZWQzZGQwODlkYTc5NzMyNzYwY2FmMmY3YjY0ZGIxMWI2Li5jMzZk
MTlmMDk4ZjU5OWU1NWVhMDM4NjRiMmRlODgzZWY1NDZkYzViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVy
Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2lu
Y2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvTmFrZWRQdHIuaD4KIAog
bmFtZXNwYWNlIEpTQyB7CkBAIC00NCw2ICs0NSw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0Owog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2NsYXNzIExv
YWRhYmxlTW9kdWxlU2NyaXB0OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIGNsYXNzIFdvcmtl
ckNvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTsKQEAgLTk0
LDYgKzk2LDExIEBAIGNsYXNzIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewogICAg
IHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIFN0cmluZyogcmV0dXJuZWRF
eGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBTY3Jp
cHRTb3VyY2VDb2RlJiwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2VwdGlv
biwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKIAorICAgIEpT
Qzo6SlNWYWx1ZSBldmFsdWF0ZU1vZHVsZShKU0M6OkpTTW9kdWxlUmVjb3JkJik7CisKKyAgICB2
b2lkIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShMb2FkYWJsZU1vZHVsZVNjcmlwdCYsIGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxw
dHIpOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgbG9hZE1vZHVsZVN5bmNocm9ub3VzbHko
TG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisKIHByb3Rl
Y3RlZDoKICAgICBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSogZ2xvYmFsU2NvcGUoKSBjb25z
dCB7IHJldHVybiBtX2dsb2JhbFNjb3BlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyU2NyaXB0TG9hZGVyLmNwcAppbmRleCAzYTRkYWVmYzM5MDJiZGIyZWE4NGZjNThkN2U0
MmY4M2U1ZjA3ZTJmLi40MDJmZGYyNmQ5ZjYzMzkyZTQ0MzliYTYwMWQ2NTdmNzY3ZDcwNjI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCkBAIC0x
MDcsNyArMTA3LDcgQEAgT3B0aW9uYWw8RXhjZXB0aW9uPiBXb3JrZXJTY3JpcHRMb2FkZXI6Omxv
YWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogfQogCi12b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFJlc291cmNl
UmVxdWVzdCYmIHNjcmlwdFJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIGZldGNoT3B0aW9ucywgQ29u
dGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3Jj
ZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZSBzZXJ2aWNlV29ya2VyTW9kZSwgV29ya2VyU2NyaXB0
TG9hZGVyQ2xpZW50JiBjbGllbnQpCit2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5j
aHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IFJlc291cmNlUmVxdWVzdCYmIHNjcmlwdFJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIGZldGNoT3B0
aW9ucywgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgY29udGVudFNlY3VyaXR5UG9s
aWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZSBzZXJ2aWNlV29ya2VyTW9kZSwgV29y
a2VyU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIFN0cmluZyYmIHRhc2tNb2RlKQogewogICAg
IG1fY2xpZW50ID0gJmNsaWVudDsKICAgICBtX3VybCA9IHNjcmlwdFJlcXVlc3QudXJsKCk7CkBA
IC0xNDMsNyArMTQzLDcgQEAgdm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25v
dXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXQKIAogICAgIC8vIER1cmlu
ZyBjcmVhdGUsIGNhbGxiYWNrcyBtYXkgaGFwcGVuIHdoaWNoIHJlbW92ZSB0aGUgbGFzdCByZWZl
cmVuY2UgdG8gdGhpcyBvYmplY3QuCiAgICAgUmVmPFdvcmtlclNjcmlwdExvYWRlcj4gcHJvdGVj
dGVkVGhpcygqdGhpcyk7Ci0gICAgbV90aHJlYWRhYmxlTG9hZGVyID0gVGhyZWFkYWJsZUxvYWRl
cjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsICp0aGlzLCBXVEZNb3ZlKCpyZXF1ZXN0
KSwgb3B0aW9ucyk7CisgICAgbV90aHJlYWRhYmxlTG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsICp0aGlzLCBXVEZNb3ZlKCpyZXF1ZXN0KSwg
b3B0aW9ucywgeyB9LCBXVEZNb3ZlKHRhc2tNb2RlKSk7CiB9CiAKIGNvbnN0IFVSTCYgV29ya2Vy
U2NyaXB0TG9hZGVyOjpyZXNwb25zZVVSTCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJTY3JpcHRMb2FkZXIuaAppbmRleCA3ZmRkMGIzZjZhMDFjMmRiNTc3MjRhOTBiM2Ji
OTg0MGYxZTY4ZTVmLi4wYmFkZGJmYTA1ODU5NGM2MzFjYjBkYTEzZmE0MmZjNjE2ZmVkODQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKQEAgLTU4LDcg
KzU4LDcgQEAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V29y
a2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGEKICAgICB9CiAKICAgICBPcHRpb25hbDxF
eGNlcHRpb24+IGxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIEZldGNoT3B0aW9uczo6Q2FjaGUsIENvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcklkZW50aWZp
ZXIpOwotICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYsIENvbnRlbnRTZWN1cml0eVBvbGlj
eUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVu
dCYpOworICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYsIENvbnRlbnRTZWN1cml0eVBvbGlj
eUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVu
dCYsIFN0cmluZyYmIHRhc2tNb2RlKTsKIAogICAgIHZvaWQgbm90aWZ5RXJyb3IoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDcyNzkwYTAzMzIyNjE5ZTZl
ZTdlNjE2YThiZGUxOGJkNTUyYTU3ODMuLjNlOTY4YjU2YmE2MWM2MmM0YmNiNDExNWVkYWZiMDU0
Nzg2NGNkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTI4
LDEwICsyOCwxMiBAQAogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogCiAjaW5jbHVkZSAiSURC
Q29ubmVjdGlvblByb3h5LmgiCisjaW5jbHVkZSAiTG9hZGFibGVNb2R1bGVTY3JpcHQuaCIKICNp
bmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3Bl
LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVk
ZSA8d3RmL1RocmVhZGluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01NSw2ICs1Nyw4
IEBAIFdvcmtlclBhcmFtZXRlcnMgV29ya2VyUGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5KCkgY29u
c3QKICAgICAgICAgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LAog
ICAgICAgICB0aW1lT3JpZ2luLAogICAgICAgICByZWZlcnJlclBvbGljeSwKKyAgICAgICAgd29y
a2VyVHlwZSwKKyAgICAgICAgY3JlZGVudGlhbHMsCiAgICAgICAgIHNldHRpbmdzVmFsdWVzLmlz
b2xhdGVkQ29weSgpCiAgICAgfTsKIH0KQEAgLTEyMyw5ICsxMjcsMzMgQEAgYm9vbCBXb3JrZXJU
aHJlYWQ6OnNob3VsZFdhaXRGb3JXZWJJbnNwZWN0b3JPblN0YXJ0dXAoKSBjb25zdAogCiB2b2lk
IFdvcmtlclRocmVhZDo6ZXZhbHVhdGVTY3JpcHRJZk5lY2Vzc2FyeShTdHJpbmcmIGV4Y2VwdGlv
bk1lc3NhZ2UpCiB7Ci0gICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmV2YWx1YXRlKFNjcmlw
dFNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwgVVJMKG1fc3RhcnR1cERhdGEt
PnBhcmFtcy5zY3JpcHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOwotCi0gICAgZmluaXNoZWRF
dmFsdWF0aW5nU2NyaXB0KCk7CisgICAgLy8gV2UgYXJlIGN1cnJlbnRseSBob2xkaW5nIG9ubHkg
dGhlIGluaXRpYWwgc2NyaXB0IGNvZGUuIElmIHRoZSBXb3JrZXJUeXBlIGlzIE1vZHVsZSwgd2Ug
c2hvdWxkIGZldGNoIHRoZSBlbnRpcmUgZ3JhcGggYmVmb3JlIGV4ZWN1dGluZyB0aGUgcmVzdCBv
ZiB0aGlzLgorICAgIC8vIFdlIGludm9rZSBtb2R1bGUgbG9hZGVyIGFzIGlmIHdlIGFyZSBleGVj
dXRpbmcgaW5saW5lIG1vZHVsZSBzY3JpcHQgdGFnIGluIERvY3VtZW50LgorCisgICAgaWYgKG1f
c3RhcnR1cERhdGEtPnBhcmFtcy53b3JrZXJUeXBlID09IFdvcmtlclR5cGU6OkNsYXNzaWMpIHsK
KyAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNv
ZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5z
Y3JpcHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOworICAgICAgICBmaW5pc2hlZEV2YWx1YXRp
bmdTY3JpcHQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBGSVhNRSBjcm9zc09yaWdpbiBt
b2RlIHNob3VsZCBiZSBjb252ZXJ0ZWQuCisgICAgICAgIC8vIEZJWE1FIGZpeCBpbml0aWF0b3Ig
bmFtZS4KKyAgICAgICAgLy8gRklYTUUgcGFzcyBVUkwgdG8gbW9kdWxlIGxvYWRlci4KKyAgICAg
ICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJjZUNvZGUs
IFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSwgeyB9LCBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlKTsKKyAgICAgICAgYXV0byBtb2R1bGVTY3JpcHQgPSBM
b2FkYWJsZU1vZHVsZVNjcmlwdDo6Y3JlYXRlKGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCks
IG1fc3RhcnR1cERhdGEtPnBhcmFtcy5yZWZlcnJlclBvbGljeSwgU2NyaXB0RWxlbWVudENhY2hl
ZFNjcmlwdEZldGNoZXI6OmRlZmF1bHRDcm9zc09yaWdpbk1vZGVGb3JNb2R1bGUsIGVtcHR5U3Ry
aW5nKCksIGVtcHR5QXRvbSgpLCBmYWxzZSk7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1
bHQgcmVzdWx0ID0gZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmxvYWRNb2R1bGVTeW5jaHJvbm91
c2x5KG1vZHVsZVNjcmlwdC5nZXQoKSwgc291cmNlQ29kZSk7CisgICAgICAgIGlmIChyZXN1bHQg
IT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgeworICAgICAgICAgICAgaWYgKE9wdGlvbmFsPExv
YWRhYmxlU2NyaXB0OjpFcnJvcj4gZXJyb3IgPSBtb2R1bGVTY3JpcHQtPmVycm9yKCkpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoT3B0aW9uYWw8TG9hZGFibGVTY3JpcHQ6OkNvbnNvbGVNZXNzYWdl
PiBtZXNzYWdlID0gZXJyb3ItPmNvbnNvbGVNZXNzYWdlKQorICAgICAgICAgICAgICAgICAgICBl
eGNlcHRpb25NZXNzYWdlID0gbWVzc2FnZS0+bWVzc2FnZTsKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbk1lc3NhZ2UgPSAiSW1wb3J0aW5nIGEgbW9k
dWxlIHNjcmlwdCBmYWlsZWQuIl9zOworICAgICAgICAgICAgICAgIGdsb2JhbFNjb3BlKCktPnJl
cG9ydEV4Y2VwdGlvbihleGNlcHRpb25NZXNzYWdlLCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfSk7
CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFtb2R1bGVTY3JpcHQtPndhc0NhbmNlbGVkKCkpIHsK
KyAgICAgICAgICAgICAgICAvLyBFdmFsdWF0ZS4KKyAgICAgICAgICAgICAgICBnbG9iYWxTY29w
ZSgpLT5zY3JpcHQoKS0+bGlua0FuZEV2YWx1YXRlTW9kdWxlKG1vZHVsZVNjcmlwdC5nZXQoKSwg
c291cmNlQ29kZSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOworICAgICAgICAgICAgICAgIGZpbmlzaGVk
RXZhbHVhdGluZ1NjcmlwdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogCiAg
ICAgLy8gRnJlZSB0aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNlIGl0cyBtZW1iZXIgdmFyaWFibGUg
ZGVyZWYncyBoYXBwZW4gb24gdGhlIHdvcmtlcidzIHRocmVhZCAoc2luY2UKICAgICAvLyBhbGwg
cmVmL2RlcmVmcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBwZW5pbmcgb24gdGhlIHRocmVhZCBh
dCB0aGlzIHBvaW50KS4gTm90ZSB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQu
aAppbmRleCA4ODkwNzkwOGU3YTliODA5ZThmMmE0ZTQ3M2Q3NTJkMTFkMjkzN2MwLi45NTEyZWZk
YjE4ZjMyYTUwZWNiN2ZiNTY5NTlkNjFlODg3MmZhMWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyVGhyZWFkLmgKQEAgLTI2LDcgKzI2LDEwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgorI2luY2x1ZGUgIkZl
dGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0VGhyZWFk
LmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtNjMsNiArNjYsOCBAQCBzdHJ1Y3QgV29ya2Vy
UGFyYW1ldGVycyB7CiAgICAgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3k7CiAgICAgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luOwogICAgIFJlZmVycmVyUG9s
aWN5IHJlZmVycmVyUG9saWN5OworICAgIFdvcmtlclR5cGUgd29ya2VyVHlwZTsKKyAgICBGZXRj
aFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsKICAgICBTZXR0aW5nczo6VmFsdWVzIHNl
dHRpbmdzVmFsdWVzOwogCiAgICAgV29ya2VyUGFyYW1ldGVycyBpc29sYXRlZENvcHkoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKaW5kZXggMGIwZWQ4NjBkOWM3MTQyMzhh
MmE1YmI5ZmRmNDM4NDAyZDE2ZWJmMC4uMWMxYmI5NDQ4NjdhZGY0ZWQ1NzhhMjgxNGZhMzMyMzI2
YWVkOGE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKQEAgLTI3LDcgKzI3LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFdvcmtlclR5cGUgeworZW51
bSBjbGFzcyBXb3JrZXJUeXBlIDogdWludDhfdCB7CiAgICAgQ2xhc3NpYywKICAgICBNb2R1bGUs
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmgKaW5kZXggZWJiZTk1ZTg5MjRjOGYxZDczNzUyNWRlYTE2MzBiMWZh
ZDU2ZmIyNy4uNGM3ZGRmNGE0YzEzMWUwZGNkNmJhMDk1MDlhYjJkOTc1NzVmMzBjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIE5hdmlnYXRvckJhc2U7CiBjbGFzcyBT
ZXJ2aWNlV29ya2VyOwogCiBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSA6
IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7CitlbnVtIGNsYXNzIFdvcmtlclR5cGUg
OiB1aW50OF90OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNl
UHJveHk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VySm9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VySm9iLmNwcAppbmRleCBlYzM5YzBmODQ5YTU0ZTFiNmQwYmVlMzRhOGQ3ZDE5Y2JhNDVl
Mjg4Li5hNGExNzAwNzkxZjc4NTQzMTgzYjYzMzZmMGM1OTUyMGUxOGY3YTAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCkBA
IC0xMTAsNyArMTEwLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpmZXRjaFNjcmlwdFdpdGhD
b250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEYKICAgICBvcHRpb25zLmNh
Y2hlID0gY2FjaGVQb2xpY3k7CiAgICAgb3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6
UmVkaXJlY3Q6OkVycm9yOwogICAgIG9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uOjpTZXJ2aWNld29ya2VyOwotICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5
bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwg
Q29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSwgU2VydmljZVdv
cmtlcnNNb2RlOjpOb25lLCAqdGhpcyk7CisgICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hy
b25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpLCBDb250
ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlLCBTZXJ2aWNlV29ya2Vy
c01vZGU6Ok5vbmUsICp0aGlzLCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIAog
UmVzb3VyY2VFcnJvciBTZXJ2aWNlV29ya2VySm9iOjp2YWxpZGF0ZVNlcnZpY2VXb3JrZXJSZXNw
b25zZShjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oCmluZGV4
IDlkNTAwZjg1YWNiMTg4NDFjYzU1YmVhODIxMWRiMTRmYWRjOTc0NzUuLjJlMzU1N2ZhN2RmNjdm
MWJmOThjN2I3YTVkZTRiMGE1YTdiY2NjZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0
aW9ucy5oCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xh
c3MgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIDogdWludDhfdDsKLWVudW0gY2xhc3MgV29y
a2VyVHlwZTsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucyB7CiAgICAgU3RyaW5nIHNjb3BlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCBjOGE3YTk5NzJmOWNjOGMxNmE3OTY3NTExNTUyZjU0
OTNhNjg2Zjk4Li4zM2NhMGVjMjNiNThhNTUxMTg3Njg0NmJhMDcxODM1MzJiNWM0N2Q1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtNzMsOCArNzMsOSBAQCBjbGFzcyBEdW1teVNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eSA6IHB1YmxpYyBXb3JrZXJPYmplY3RQcm94eSB7CiAvLyBG
SVhNRTogVXNlIGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkKIC8vIEZJWE1FOiBVc2UgdmFsaWQg
cnVudGltZSBmbGFncwogCisvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyVHlwZSBhbmQgQ3Jl
ZGVudGFpbHMgZm9yIG1vZHVsZSBzZXJ2aWNlIHdvcmtlcnMuCiBTZXJ2aWNlV29ya2VyVGhyZWFk
OjpTZXJ2aWNlV29ya2VyVGhyZWFkKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0
YSwgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0aW5nc1Zh
bHVlcywgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBXb3JrZXJEZWJ1Z2dlclByb3h5
JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogaWRiQ29ubmVj
dGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIpCi0gICAgOiBXb3JrZXJU
aHJlYWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmcoKSwgInNlcnZpY2V3b3JrZXI6IiAr
IEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCksIFdURk1v
dmUodXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmlz
T25MaW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5LCBmYWxzZSwgTW9ub3RvbmljVGlt
ZTo6bm93KCksIHsgfSwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0YS5zY3JpcHQsIGxvYWRlclByb3h5
LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCks
IFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRhLnJlZ2lzdHJhdGlvbi5rZXkudG9w
T3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRiQ29ubmVjdGlvblByb3h5LCBzb2Nr
ZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQoKSkKKyAgICA6
IFdvcmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0eVN0cmluZygpLCAic2VydmljZXdv
cmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIo
KSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRl
Z3koKS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBNb25v
dG9uaWNUaW1lOjpub3coKSwgeyB9LCBXb3JrZXJUeXBlOjpDbGFzc2ljLCBGZXRjaFJlcXVlc3RD
cmVkZW50aWFsczo6U2FtZU9yaWdpbiwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0YS5zY3JpcHQsIGxv
YWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6
c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRhLnJlZ2lzdHJhdGlv
bi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRiQ29ubmVjdGlvblBy
b3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQo
KSkKICAgICAsIG1fZGF0YShkYXRhLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV93b3JrZXJPYmpl
Y3RQcm94eShEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCkpCiAgICAgLCBt
X2hlYXJ0QmVhdFRpbWVvdXQoU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlv
bigpLT5zaG91bGRVc2VTaG9ydFRpbWVvdXQoKSA/IGhlYXJ0QmVhdFRpbWVvdXRGb3JUZXN0IDog
aGVhcnRCZWF0VGltZW91dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCAyZGRkYjNiNWI0MWVkODdiZDYxNGEw
Yjk0ZDA5Yjc2MTI5M2Q3NjA3Li4zNzhmYmE2NTdlOGJiZjQ4NDFlNTZjYmY4NjU2MWY4ZWNjMzEx
MDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlcldvcmtlci5oCkBAIC01MCw3ICs1MCw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllcjsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25z
Owogc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsKIHN0cnVjdCBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YUlkZW50aWZpZXI7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7CitlbnVtIGNsYXNzIFdv
cmtlclR5cGUgOiB1aW50OF90OwogCiBjbGFzcyBTV1NlcnZlcldvcmtlciA6IHB1YmxpYyBSZWZD
b3VudGVkPFNXU2VydmVyV29ya2VyPiB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCBkNzA0ODg2NjQ4YzBlZmFhNmI3ODA4
NGM1Mzg3MjAxY2EyYjFjNTQzLi4zNmNmNjY4MDI5ZTcxMTY5ZDA3MzIyMDgzZTI1NjhlOWU3NTIx
ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5j
cHAKQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6cHJvY2Vzc05l
eHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKCkKICAgICBhdXRvIGNvbnRlbnRTZWN1cml0eVBvbGlj
eUVuZm9yY2VtZW50ID0gc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
KCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29u
dGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkVuZm9yY2VDaGlsZFNyY0RpcmVjdGl2ZTsK
IAogICAgIG1fc2NyaXB0TG9hZGVyID0gV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKTsKLSAg
ICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KCp0aGlzLCBXVEZNb3ZlKHJlcXVl
c3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2Vt
ZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgKnRoaXMpOworICAgIG1fc2NyaXB0TG9hZGVy
LT5sb2FkQXN5bmNocm9ub3VzbHkoKnRoaXMsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZmV0
Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3Jr
ZXJzTW9kZTo6QWxsLCAqdGhpcywgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAK
IHZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9u
ZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCBkMzBlNTYyOTIyZTVhNGQ2ZjMxNjI2NWUxZWEyNTY4ZTk5ZTdlODFjLi4xMDgxZjE3NmQy
OTkyOTgyNjRiYjQ2MmNkMzU1YTQ5OTdkNDhjMGRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMS0wMi0xMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9k
dWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3Bl
LW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9k
eW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFz
ZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUv
ZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtl
ci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRl
ci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1w
b3J0LWNzcC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13
b3JrZXItaW1wb3J0LW1ldGEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3It
ZmFpbHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbmFtZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDItMTAgIE1hbnVlbCBSZWdv
IENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IG1vZGlmaWVyIGtleXMgaW4gdGVzdF9kcml2ZXIuc2VuZF9rZXlzKCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVu
dGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQKaW5kZXggNDkyNjliM2I1MGI5MTc1Y2I2MmVjYTMxMmU1ODZiM2IxNjYyYTI1OS4u
MmNhZTVmN2UzNWEzMmZlY2ViMjY4ZjI5MDAwMGU0ZTU1NTZjNjg2MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50
YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKLUZBSUwgTm9uLW9iamVjdDogbnVsbCBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjog
Q291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL251bGwuanNvbicuIgotRkFJTCBOb24tb2Jq
ZWN0OiB0cnVlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vdHJ1ZS5qc29uJy4i
Ci1GQUlMIE5vbi1vYmplY3Q6IGZhbHNlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUg
Jy4vZmFsc2UuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBzdHJpbmcgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBp
bXBvcnQgdGhlIG1vZHVsZSAnLi9zdHJpbmcuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBhcnJh
eSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJF
cnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2FycmF5Lmpzb24nLiIKK0ZBSUwg
Tm9uLW9iamVjdDogbnVsbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxp
ZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IHRydWUgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAn
YXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgor
RkFJTCBOb24tb2JqZWN0OiBmYWxzZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3Qg
YSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IHN0cmluZyBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUg
dHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IGFycmF5IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9uL2pzb24n
IGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVy
LXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRlci13b3Jr
ZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVl
OGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uZTNlOTc3YjNkNGM1YTRmNDVlNmQwOGNk
MzI4NDYyM2Q1N2Y3MTY0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJy
b3ItbW9kdWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJv
ci1tb2R1bGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNiBAQAogCiBIYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKIAorRkFJTCBQcm9taXNlIHJlc29sdmVkIGR1cmluZyAj
cmVwb3J0LXRoZS1lcnJvciBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhw
ZWN0ZWQgYXJyYXkgWyJoYW5kbGVyIDEiLCAiaGFuZGxlciAyIiwgImhhbmRsZXIgMSBwcm9taXNl
IiwgImhhbmRsZXIgMiBwcm9taXNlIl0gbGVuZ3RoIDQsIGdvdCBbXSBsZW5ndGggMAorTk9UUlVO
IFByb21pc2UgcmVzb2x2ZWQgZHVyaW5nIGV2ZW50IGhhbmRsZXJzIG90aGVyIHRoYW4gZXJyb3IK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5
bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWlt
cG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQKaW5k
ZXggNTFkNjEwMGU2MTIyYTk3YzM2NGIzY2ViMWQ3ZmQwN2UwZTE1NjExNy4uYTgwNTBjMDc4Y2Y4
Yjg4ZDU2OGFmZmUwZDU1Y2MzMTkwYzM2NTQ3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdv
cmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2Vy
LWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCi1GQUlMIFJlbGF0
aXZlIFVSTC1saWtlIGZyb20gc2FtZS1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBu
b3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vaW1wb3J0LmpzP3BpcGU9aGVhZGVyKEFjY2Vzcy1Db250
cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJlbD1yZWxhdGl2ZS1jcm9zcy1vcmlnaW4gaW1wb3J0U2Ny
aXB0cygpJy4iCi1GQUlMIEFic29sdXRlIFVSTC1saWtlIGZyb20gc2FtZS1vcmlnaW4gaW1wb3J0
U2NyaXB0cygpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJ2h0dHA6Ly8xMjcuMC4w
LjE6ODgwMC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL2R5bmFtaWMtaW1wb3J0L2dhbW1hL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9YWJzb2x1dGUtY3Jvc3Mtb3JpZ2luIGltcG9ydFNj
cmlwdHMoKScuIgotUEFTUyBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIGNyb3NzLW9yaWdpbiBpbXBv
cnRTY3JpcHRzKCkKLUZBSUwgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSBjcm9zcy1vcmlnaW4gaW1w
b3J0U2NyaXB0cygpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJ2h0dHA6Ly8xMjcu
MC4wLjE6ODgwMC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2R5bmFtaWMtaW1wb3J0L2dhbW1hL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3Mt
Q29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9YWJzb2x1dGUtY3Jvc3Mtb3JpZ2luIGltcG9y
dFNjcmlwdHMoKScuIgorUEFTUyBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGlt
cG9ydFNjcmlwdHMoKQorUEFTUyBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGlt
cG9ydFNjcmlwdHMoKQorRkFJTCBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIGNyb3NzLW9yaWdpbiBp
bXBvcnRTY3JpcHRzKCkgYXNzZXJ0X2VxdWFsczogUmVsYXRpdmUgVVJMLWxpa2Ugc3BlY2lmaWVy
IHJlc29sdXRpb24gc2hvdWxkIGZhaWwgZXhwZWN0ZWQgIih1bnJlYWNoZWQpIiBidXQgZ290ICJn
YW1tYS9pbXBvcnQuanMiCitQQVNTIEFic29sdXRlIFVSTC1saWtlIGZyb20gY3Jvc3Mtb3JpZ2lu
IGltcG9ydFNjcmlwdHMoKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHlu
YW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQKaW5kZXgg
ODY2ZWJiMjI3YWQyNmFhY2UxYTU3OGJhZWE2YTgxZGMwZTZlNzdmMC4uYjk0ZGVhNmUzYTFkMGRk
NzQ3ZjY2Yjk5ZDlkYjg1NDg3ZGRiYTJhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtl
ci5zdWItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHdvcmtl
ciB0b3AtbGV2ZWwgc2NyaXB0IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vaW1w
b3J0LmpzP3BpcGU9aGVhZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJlbD1y
ZWxhdGl2ZS13b3JrZXIgdG9wLWxldmVsIHNjcmlwdCcuIgotRkFJTCBBYnNvbHV0ZSBVUkwtbGlr
ZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBt
b2R1bGUgJ2h0dHA6Ly8xMjcuMC4wLjE6ODgwMC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2dhbW1hL2ltcG9ydC5qcz9w
aXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9YWJzb2x1dGUt
d29ya2VyIHRvcC1sZXZlbCBzY3JpcHQnLiIKK0ZBSUwgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSB3
b3JrZXIgdG9wLWxldmVsIHNjcmlwdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZ2FtbWEvaW1w
b3J0LmpzIiBidXQgZ290ICJiZXRhL2ltcG9ydC5qcyIKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2Ug
ZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29y
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5
MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLjJmMTJhMjM0MmZhZDIyNGUz
YTE4YTZmYjVkODQ4MzI1ZWE2Nzc2ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9l
dmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
MyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorUEFTUyBU
ZXN0IGV2YWx1YXRpb24gb3JkZXIgb2YgbW9kdWxlcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZh
bHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThi
YmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uYjg2MWY3MDFmOTQ4ZmIxMzI3NjkzMjJjMzgzNjZm
MmQxMzhmMDRlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29y
a2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9V
VCksIG1lc3NhZ2UgPSBudWxsCi0KK0ZBSUwgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVs
ZXMgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsi
c3RlcC0xLTEiLCAic3RlcC0xLTIiLCAiZ2xvYmFsLWVycm9yIiwgImVycm9yIiwgIm1pY3JvdGFz
ayJdIGxlbmd0aCA1LCBnb3QgWyJzdGVwLTEtMSIsICJzdGVwLTEtMiIsICJtaWNyb3Rhc2siXSBs
ZW5ndGggMwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1p
bXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFk
ZGQyMmU0YzFkY2IzYTVmLi5jMWQzOGJkZTUwYzU5ZTVkNTk0MTczZDk2ZjljZDE5ZWIxMDdjOWI0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZh
bHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0
LXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJ
TUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitGQUlMIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBt
b2R1bGVzIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJh
eSBbInN0ZXAtMi4yLTEiLCAic3RlcC0yLjItMiIsICJnbG9iYWwtZXJyb3IiLCAiZXJyb3IiLCAi
bWljcm90YXNrLTIuMiJdIGxlbmd0aCA1LCBnb3QgWyJzdGVwLTIuMi0xIiwgInN0ZXAtMi4yLTIi
LCAibWljcm90YXNrLTIuMiJdIGxlbmd0aCAzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3Jr
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODky
OGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uMmYxMmEyMzQyZmFkMjI0ZTNh
MThhNmZiNWQ4NDgzMjVlYTY3NzZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2
YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwz
IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitQQVNTIFRl
c3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2lt
cG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0LWluLW1v
ZHVsZXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZGQ5YWYzOGZmMDlmYmVjMWZhYzBiOGY1ZWE5
YmFkNmUzMTYzNjQ5ZC4uMjU3YmI2MTk2MTYwMzcyZmRjNTg0MTZmOWY3Zjk5NTg1NjAyZjM3NCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0LWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L2Jhc2V1cmwvYWxwaGEvaW1wb3J0LWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGlkZW50
aWZpZXIgJ3InLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgorQ09O
U09MRSBNRVNTQUdFOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4KIAogRkFJTCBC
YXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IGltcG9ydCBhc3NlcnRfdW5yZWFj
aGVkOiBHb3QgZXJyb3IgZXZlbnQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9k
dWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0Cmlu
ZGV4IDIwYWMxN2Q1NjNjNGIzYTQ2MWYwY2FhZmJlYWVlYmQ3MTNmOTcwODEuLmRjY2VkY2NkMzY4
ZTFmZjE3YjFkZDEzNmU0NTNmZWM0ZmUxMGJjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13
b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVk
LXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxOCArMSw5IEBA
Ci1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFs
ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9zdGF0aWMt
aW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1l
bnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRl
cmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9uZXN0
ZWQtc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkg
b25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBz
dHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNv
dXJjZXMvc3RhdGljLWltcG9ydC1hbmQtdGhlbi1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBp
bXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdF
OiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9z
dDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtd29ya2VyLmpz
Ii4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVT
U0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2Nh
bGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1keW5hbWljLWltcG9y
dC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50Lgot
Q09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAi
aHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1p
bXBvcnQtYW5kLXRoZW4tc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBl
Y3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjog
VW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMv
bW9kdWxlcy9yZXNvdXJjZXMvZXZhbC1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQg
Y2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgogCi1IYXJuZXNzIEVycm9yIChGQUlM
KSwgbWVzc2FnZSA9IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRw
Oi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWltcG9y
dC1hbmQtdGhlbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMg
ZXhhY3RseSBvbmUgYXJndW1lbnQuCi0KLUZBSUwgU3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL3N0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMg
ZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBOZXN0ZWQgc3RhdGljIGltcG9ydC4gcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5l
eHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1zdGF0aWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQg
Y2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgU3RhdGljIGltcG9ydCBh
bmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0
dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1pbXBv
cnQtYW5kLXRoZW4tZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVj
dHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGltcG9ydC4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBl
Y3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LiBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtl
cnMvbW9kdWxlcy9yZXNvdXJjZXMvbmVzdGVkLWR5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBp
bXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHluYW1pYyBp
bXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJh
bCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2R5bmFt
aWMtaW1wb3J0LWFuZC10aGVuLXN0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxs
IGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBldmFsKGltcG9ydCgpKS4gcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjog
VW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJz
L21vZHVsZXMvcmVzb3VyY2VzL2V2YWwtZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9y
dCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgorUEFTUyBTdGF0aWMgaW1wb3J0
LgorUEFTUyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BBU1MgU3RhdGljIGltcG9ydCBhbmQgdGhl
biBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBkeW5h
bWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4K
K1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LWNzcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1jc3At
ZXhwZWN0ZWQudHh0CmluZGV4IDFkYTQ2YjkyNmJlMDg5NmVlOGY3NWE3OGRjYWU0ZjI2OWIwNTA5
MmIuLjIzOWNjOWNlMTUzMDFmN2VlZDgzZDVlYjIyMzBhOWRlMjk0ZWEyZWQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1
bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSwyMiBAQAog
Q09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGly
ZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9y
dC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVu
dC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJl
Y29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4K
IAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6
OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwog
Q09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGly
ZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9y
dC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1v
bi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8v
d3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1s
b2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1
cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogCiBQQVNTIHdvcmtlci1zcmMgJ3Nl
bGYnIGRpcmVjdGl2ZSBzaG91bGQgZGlzYWxsb3cgY3Jvc3Mgb3JpZ2luIHN0YXRpYyBpbXBvcnQu
CiBGQUlMIHdvcmtlci1zcmMgKiBkaXJlY3RpdmUgc2hvdWxkIGFsbG93IGNyb3NzIG9yaWdpbiBz
dGF0aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAwIHRv
IGJlICJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiIGJ1dCBnb3QgIkVSUk9SIiAoZXhwZWN0ZWQg
YXJyYXkgWyJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiXSBnb3QgWyJFUlJPUiJdKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtZmFpbHVyZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxl
cy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dAppbmRleCA5NWM2
ZDE1ZGY0NGUxOGEzNWRmZWIwZmEzOWM4ZDM4NDQyMGMyYzEzLi5lOTU1NzhlNzFiMWM1MGE0ZTA0
NzFiMDM3MTU0YjM4NmIzN2FlZDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWlt
cG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9y
dC1mYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTog
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgJy4vbm9uLWV4aXN0ZW50LXNj
cmlwdC5qcycuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCitDT05T
T0xFIE1FU1NBR0U6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLgogCi1GQUlMIGlt
cG9ydFNjcmlwdHMoKSBvbiBtb2R1bGUgd29ya2VyIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24u
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJUeXBlRXJyb3IiIGJ1dCBnb3QgIkxPQURFRCIKK1BB
U1MgaW1wb3J0U2NyaXB0cygpIG9uIG1vZHVsZSB3b3JrZXIgc2hvdWxkIHRocm93IGFuIGV4Y2Vw
dGlvbi4KIFBBU1MgV29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBz
aG91bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KIFBBU1MgU3RhdGljIGltcG9ydCBmb3Igbm9u
LWV4aXN0ZW50IHNjcmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KLUZBSUwgRHlu
YW1pYyBpbXBvcnQgZm9yIG5vbi1leGlzdGVudCBzY3JpcHQgc2hvdWxkIHRocm93IGFuIGV4Y2Vw
dGlvbi4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlR5cGVFcnJvciIgYnV0IGdvdCAiRXJyb3Ii
CitQQVNTIER5bmFtaWMgaW1wb3J0IGZvciBub24tZXhpc3RlbnQgc2NyaXB0IHNob3VsZCB0aHJv
dyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIGFuIGludmFsaWQg
VVJMIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rpb24g
Zm9yIGEgZmlsZSBVUkwgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVs
ZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAppbmRleCBkNTgwNjIwNDFjM2U2OTUx
NWI4MTVlMDJkN2MzODY4NGQ3N2M3NmI3Li5lNzgyNTdhMzIyOGQwZjMyMDMwM2ZkNjMyNmFmNmE3
NTE0NTNmYzNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVk
LnR4dApAQCAtMSw4ICsxLDUgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IGltcG9y
dC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCiAKLUhhcm5lc3MgRXJyb3IgKEZB
SUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5z
aWRlIG1vZHVsZXMuCi0KLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIHRvcC1sZXZl
bCBtb2R1bGUgc2NyaXB0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogIlN5bnRheEVycm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5IHZhbGlkIGluc2lkZSBtb2R1
bGVzLiIKLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBz
Y3JpcHQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBUZXN0IGlt
cG9ydC5tZXRhLnVybCBvbiB0aGUgdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQuCitQQVNTIFRlc3Qg
aW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2NyaXB0LgogRkFJTCBUZXN0
IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJh
Z21lbnQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9k
dWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNh
dGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dAppbmRleCBhMjNhNTU3NWRiNDI3NDI3
Zjg1YmQ2YjYzNTRkZTg4MzgzMWZlMmI0Li5kY2NlZGNjZDM2OGUxZmYxN2IxZGQxMzZlNDUzZmVj
NGZlMTBiYzgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50
eHQKQEAgLTEsMTQgKzEsOSBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
Ci1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1w
b3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTog
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4
YWN0bHkgb25lIGFyZ3VtZW50LgogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFN5
bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFj
dGx5IG9uZSBhcmd1bWVudC4KLQotRkFJTCBTdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRv
a2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlM
IE5lc3RlZCBzdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNh
bGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIFN0YXRpYyBpbXBvcnQgYW5k
IHRoZW4gZHluYW1pYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2Fs
bCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHluYW1pYyBpbXBvcnQuIGFz
c2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6
IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWxvYWQtc2Ny
aXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuIGFz
c2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6
IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWR5bmFtaWMt
aW1wb3J0LXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgRHluYW1pYyBpbXBvcnQg
YW5kIHRoZW4gc3RhdGljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZh
aWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1v
ZHVsZSAnLi9leHBvcnQtb24tc3RhdGljLWltcG9ydC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFy
cmF5Ci1GQUlMIGV2YWwoaW1wb3J0KCkpLiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAi
RmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUg
bW9kdWxlICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKK1BB
U1MgU3RhdGljIGltcG9ydC4KK1BBU1MgTmVzdGVkIHN0YXRpYyBpbXBvcnQuCitQQVNTIFN0YXRp
YyBpbXBvcnQgYW5kIHRoZW4gZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMgaW1wb3J0Lgor
UEFTUyBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVu
IHN0YXRpYyBpbXBvcnQuCitQQVNTIGV2YWwoaW1wb3J0KCkpLgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQKaW5kZXggZGEwZTRlYjY3NThkMTRhMzdh
Mzk4ZDBiNmZjNzFhZDM4NzZiZDI2Yi4uMWZjMGM2NmZkZjcyNGMyYWEzYjkxMDY5ODBiZmJlN2U5
ODhmOTc3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVk
LnR4dApAQCAtMiwxMSArMiw2IEBACiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRo
IHRoZSBkZWZhdWx0IHdvcmtlciB0eXBlLgogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24g
d2l0aCB0aGUgImNsYXNzaWMiIHdvcmtlciB0eXBlLgogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1
Y3Rpb24gd2l0aCB0aGUgIm1vZHVsZSIgd29ya2VyIHR5cGUuCi1GQUlMIFRlc3Qgd29ya2VyIGNv
bnN0cnVjdGlvbiB3aXRoIGFuIGVtcHR5IHdvcmtlciB0eXBlLiBhc3NlcnRfdGhyb3dzX2pzOiBX
b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gZW1wdHkgdHlwZSBzaG91bGQgdGhyb3cgYW4gZXhj
ZXB0aW9uIGZ1bmN0aW9uICIoKSA9PiB7Ci0gICAgICAgIG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9w
b3N0LW1lc3NhZ2Utb24tbG9hZC13b3JrZXIuanMnLCB7IHR5cGU6ICcnIH0pOwotICAgICAgfSIg
ZGlkIG5vdCB0aHJvdwotRkFJTCBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1bmtu
b3duIHdvcmtlciB0eXBlLiBhc3NlcnRfdGhyb3dzX2pzOiBXb3JrZXIgY29uc3RydWN0aW9uIHdp
dGggYW4gdW5rbm93biB0eXBlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gZnVuY3Rpb24gIigp
ID0+IHsKLSAgICAgICAgbmV3IFdvcmtlcigncmVzb3VyY2VzL3Bvc3QtbWVzc2FnZS1vbi1sb2Fk
LXdvcmtlci5qcycsCi0gICAgICAgICAgICAgICAgICAgeyB0eXBlOiAndW5rbm93bicgfSk7Ci0g
ICAgICB9IiBkaWQgbm90IHRocm93CitQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRo
IGFuIGVtcHR5IHdvcmtlciB0eXBlLgorUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0
aCBhbiB1bmtub3duIHdvcmtlciB0eXBlLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtl
ci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dAppbmRleCBlOGViNTQwYmQzMzkyNDAw
YThkYmZkOTM4NjQ4YTY0OTIzOWMwZDllLi5kMWE1MGY3ZWEzY2Q2ZGMyOThlZjc1NDE0Nzc2MmM2
OWM1N2Q3M2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLXBhcnNlLWVycm9yLWZh
aWx1cmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3It
ZmFpbHVyZS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwxNCBAQAotQ09OU09MRSBNRVNTQUdFOiBT
eW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhh
Y3RseSBvbmUgYXJndW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIHRva2VuICc7JworQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0
b2tlbiAnOycKIAotSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBFcnJvcjogYXNzZXJ0
X2ltcGxlbWVudHM6IFN0YXRpYyBpbXBvcnQgbXVzdCBiZSBzdXBwb3J0ZWQgb24gbW9kdWxlIGRl
ZGljYXRlZCB3b3JrZXIgdG8gcnVuIHRoaXMgdGVzdC4gdW5kZWZpbmVkCi0KLU5PVFJVTiBNb2R1
bGUgd29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNob3Vs
ZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4KLU5PVFJVTiBTdGF0aWMgaW1wb3J0IG9u
IG1vZHVsZSB3b3JrZXIgZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJvciBzaG91bGQgZGlzcGF0
Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuCitGQUlMIE1vZHVsZSB3b3JrZXIgY29uc3RydWN0aW9u
IGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJyb3Igc2hvdWxkIGRpc3BhdGNoIGFuIGV2ZW50IG5h
bWVkIGVycm9yLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmdW5jdGlvbiAiZnVuY3Rpb24gRXZl
bnQoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIgYnV0IGdvdCBmdW5jdGlvbiAiZnVuY3Rpb24g
RXJyb3JFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IgorRkFJTCBTdGF0aWMgaW1wb3J0
IG9uIG1vZHVsZSB3b3JrZXIgZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJvciBzaG91bGQgZGlz
cGF0Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZ1bmN0
aW9uICJmdW5jdGlvbiBFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiBidXQgZ290IGZ1
bmN0aW9uICJmdW5jdGlvbiBFcnJvckV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4
dAppbmRleCA2Mzk4NDcxMjE0NTlhN2FiMzdiOWYwOWE2OGJhNjRlYThhOWVkNTdjLi5lOTQ2OTQ3
YjE0YWVmM2U1Mjk5YTBhYmEzYWU0YjFjZjlmY2Q5NTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsOCBAQAog
Q09OU09MRSBNRVNTQUdFOiBVbmhhbmRsZWQgUHJvbWlzZSBSZWplY3Rpb246IFJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKIAotRkFJTCBUZXN0IHRoZSBu
YW1lIHByb3BlcnR5IG9mIHNoYXJlZCBhbmQgZGVkaWNhdGVkIHdvcmtlcnMgdmlhIHRoZSBuYW1l
IGNvbnN0cnVjdG9yIG9wdGlvbiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKLVBB
U1MgRGVjbGFyaW5nIG5hbWUgYXMgYW4gYWNjaWRlbnRhbCBnbG9iYWwgbXVzdCBub3QgY2F1c2Ug
YSBoYXJuZXNzIGVycm9yIGZvciBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZQorSGFybmVzcyBF
cnJvciAoRkFJTCksIG1lc3NhZ2UgPSBVbmhhbmRsZWQgcmVqZWN0aW9uOiBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTaGFyZWRXb3JrZXIKKwogUEFTUyBuYW1lIHByb3BlcnR5IHZhbHVlIGZvciBEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZQogUEFTUyBuYW1lIHByb3BlcnR5IGlzIHJlcGxhY2VhYmxl
IGZvciBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZQorUEFTUyBEZWNsYXJpbmcgbmFtZSBhcyBh
biBhY2NpZGVudGFsIGdsb2JhbCBtdXN0IG5vdCBjYXVzZSBhIGhhcm5lc3MgZXJyb3IgZm9yIERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419935</attachid>
            <date>2021-02-10 18:11:32 -0800</date>
            <delta_ts>2021-02-11 11:24:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210210181132.patch</filename>
            <type>text/plain</type>
            <size>148689</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA1MTUzZGY5Mjc2YTBl
YzEzMzI1OTg1ZDNjMGE5NGQwOTE3M2I4ZC4uMDdlYmE2MDU3ODc0MWEyODg4NmU3ZmMxOWEyNDk0
NjE0YTliOTJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNSBAQAorMjAyMS0wMi0xMCAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4g
V29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2Ny
aXB0TG9hZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0Nh
Y2hlZFNjcmlwdEZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0
Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNoZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0TW9kdWxl
TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2Fk
ZXJSZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVM
b2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1v
ZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdp
bmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJD
cmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNj
b3BlQmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlw
dExvYWRlci5oLgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpjbGVhckNs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVTY3JpcHRMb2FkZXI6OnNjcmlwdEZldGNo
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpwYXJhbWV0ZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6TW9kdWxlU2NyaXB0TG9hZGVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudC5oLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OlNjcmlwdE1vZHVsZUxv
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlTW9kdWxlU3BlY2lmaWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzb2x2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dE1vZHVsZUxvYWRlcjo6bW9kdWxlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVs
ZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1v
ZHVsZUxvYWRlcjo6aW1wb3J0TW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVs
ZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1v
ZHVsZUxvYWRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExv
YWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
OjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyOjp+V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmguCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKiBkb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQpOiBEZWxldGVkLgorICAgICAgICAqIGRv
bS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3JpcHQp
OgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFi
bGVMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
OjpXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5pZGw6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29w
ZTo6V29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2Nv
cGU6OmltcG9ydFNjcmlwdHMpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
aDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVMb2FkZXIpOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZVN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6
bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hy
b25vdXNseSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaDoKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJQ
YXJhbWV0ZXJzOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
VGhyZWFkOjpldmFsdWF0ZVNjcmlwdElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiB3b3JrZXJzL1dv
cmtlclRocmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVHlwZS5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4dCk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmg6CisgICAgICAg
ICogd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtsZXRHbG9iYWxTY29wZTo6cHJvY2Vzc05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKToKKwog
MjAyMS0wMi0xMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBEbyBub3QgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIFJlbGVhc2UgYW5kIFByb2R1Y3Rpb24gdmlh
IEVOQUJMRV9ERVZFTE9QRVJfTU9ERQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNGYzOGZiMDY4NGJj
NTllZTZmN2M5ODk4MjllYzg4MmNlODA1ODZjOC4uMGZjODNjNzkxNjMyMzI5YzM5ZjNlODkzZTgy
NTM3YzVhZGM2YTM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0zMCw2ICszMCw3IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0
Y2hCb2R5Q29uc3VtZXIuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmgKKyAg
ICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgKICAgICBNb2R1bGVzL2Zl
dGNoL0ZldGNoSGVhZGVycy5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaElkZW50aWZpZXIuaAog
ICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA4YzAzYjkz
MjY0OTg1ZjBiYjFlZTlmNmQyMDIzZTM0ODMwOTJmNDYyLi42MjNhNjc4YWE1Y2I0MzJhZTBkMzk0
NjdhNGJlZmQzNDU2ODhhMjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjM5LDYgKzYzOSw3IEBAIGJp
bmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5jcHAKIGJpbmRpbmdzL2pzL1dlYkNvcmVKSVRPcGVy
YXRpb25zLmNwcAogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKIGJpbmRpbmdz
L2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAKK2JpbmRpbmdzL2pzL1dvcmtlck1v
ZHVsZVNjcmlwdExvYWRlci5jcHAKIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmNwcAogYmluZGlu
Z3MvanMvV3JpdGFibGVTdHJlYW0uY3BwCiBicmlkZ2UvSWRlbnRpZmllclJlcC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAy
ZTNiYTJkOGJiYWExNzYyNDRkYTYyM2M2OTI5NmU1ZmViZjA3MzBiLi4wMThmZTJjZWE2OTY1MjFh
MTQ0YzNmNThmYTZmYzRlMzNiYzA5NmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDcxLDE1ICs1MDcxLDE3IEBACiAJCUUz
MDU5MjY0MUUyN0EzQUQwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2ljU2NyaXB0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA1OTI2MjFFMjdBMzhDMDBE
NTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDU5MjY4MUUyN0EzRDEwMEQ1N0M5OCAvKiBDYWNo
ZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDdE
RUQwMUQ4MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDdERUM3MUQ4MUU0NDgw
MDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlFMzA3REVEMTFEODFFNENCMDAxNDFDQUYg
LyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVDODFEODFFNDQ4MDAxNDFDQUYgLyogQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwN0RFRDUxRDgxRTRGMjAwMTQxQ0FGIC8qIExvYWRh
YmxlTW9kdWxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYgLyogTG9hZGFibGVNb2R1bGVTY3JpcHQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzE1
MEVBNzFEQTcyMTkzMDAxOTQwMTIgLyogRE9NSklUSGVscGVycy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMxNTBFQTUxREE3MjE4RDAwMTk0MDEyIC8q
IERPTUpJVEhlbHBlcnMuaCAqLzsgfTsKIAkJRTMyMDFDMUExRjhFODIxMzAwNzZBMDMyIC8qIE1v
ZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM4RDA2MDkxRjhFODExOTAwNjQ5Q0YyIC8qIE1vZHVsZUZldGNoUGFyYW1l
dGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUzMjNDRkZBMUU1QUY2QUYwMEYwQjRBMCAvKiBKU0RPTUNvbnZlcnRQcm9taXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzIzQ0ZGOTFFNUFGNkE1
MDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzNDMyREU0MjVEMzc3RTMwMDU4RTYxMiAvKiBX
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzNDMyREUwMjVEMzc3RTIwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuaCAqLzsgfTsKKwkJRTM1MTg4QjQyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM1MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRl
ckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUUzNTY1QjdCMURDMkQ2QzkwMDIxN0RCRCAvKiBKU0V2ZW50Q3VzdG9tLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRFRTQ5RjFEQzJENTc1MDBF
QUE5RDMgLyogSlNFdmVudEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUUzNTgwMkI2MURDODQzNUQwMEE5NzczQyAvKiBET01KSVRJRExU
eXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNTgyQzI4MjUy
N0Y2NjkwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODJDMjYyNTI3RjY2ODAwRDFCNzkwIC8q
IFdlYkNvcmVKSVRPcGVyYXRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTM1QjkwN0YyM0Y2MEE1MDAwMDAxMUZGIC8qIExvY2FsaXplZERl
dmljZU1vZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMzVCOTA3QzIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzY0MzIxQzI1
RDM3QTY3MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyog
TW9kdWxlU2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRTM3N0ZFNEQxREFERTE2NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFudHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0OTkz
MURBREMwNDUwMDcxOEYzQyAvKiBOb2RlQ29uc3RhbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNBIC8q
IEpTRE9NUHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzOTYyOEJGMjM5NTcy
OEYwMDY1OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhCRDIzOTU3MjhFMDA2
NThFQ0QgLyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNjIwMiw3ICsxNjIwNCw2IEBA
CiAJCUUzMDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFNjcmlwdEZldGNoZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFQzYxRDgxRTQ0ODAwMTQxQ0FGIC8qIENh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMzA3REVDODFEODFF
NDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVEMjFEODFFNEVEMDAxNDFDQUYg
LyogTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYgLyogTG9hZGFibGVNb2R1bGVTY3JpcHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9hZGFibGVNb2R1bGVTY3JpcHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMxNTBFQTUxREE3MjE4RDAwMTk0MDEy
IC8qIERPTUpJVEhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
SklUSGVscGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyMTUsMTIgKzE2
MjE2LDE2IEBACiAJCUUzMjkyNzYzMjI1NDNGNTkwMDMwOEE5QSAvKiBUeXBlZE9NQ1NTVW5pdFZh
bHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGVkT01DU1NVbml0VmFsdWUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzI5Mjc2NjIyNTQzRkRFMDAzMDhBOUEgLyogRE9N
UmVjdFJlYWRPbmx5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3RSZWFkT25seS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMzQ4MjVFMURDOTNBQTAwMDlDOTU0NCAv
KiBET01KSVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IERPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvRE9NSklUQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyog
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMzQzMkRFMzI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlck1vZHVsZVNj
cmlwdExvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNEVFNDlGMURD
MkQ1NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRXZlbnRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTM1MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODAyQjUxREM4NDM1ODAwQTk3NzND
IC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NSklUSURMVHlwZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MzU4MkMyNDI1MjdGNjY4MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUpJVE9wZXJhdGlvbnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4MkMyNjI1MjdGNjY4MDBEMUI3OTAg
LyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQ29yZUpJVE9wZXJhdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTM1QjkwN0MyM0Y2MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsaXplZERldmljZU1vZGVsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUI5MDdFMjNGNjA2NzcwMDAwMTFGRiAvKiBMb2Nh
bGl6ZWREZXZpY2VNb2RlbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IExvY2FsaXplZERldmljZU1vZGVsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVNjcmlwdExvYWRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzdDODY0RjFFQjYzRTJEMDA4N0M2Q0EgLyogSlNET01Q
cm9taXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NUHJvbWlzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMg
LyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzAyMSw3ICsyNzAyNiw2IEBACiAJCQkJMkRGQTQ4
OEUxREI1NDFDMjAwMzYyQjk5IC8qIEJ1ZmZlclNvdXJjZS5oICovLAogCQkJCUUzMDdERUM2MUQ4
MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwICovLAogCQkJCUUz
MDdERUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLywK
LQkJCQlFMzA3REVDODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50LmggKi8sCiAJCQkJRTMwNTkyNjUxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlw
dEZldGNoZXIuY3BwICovLAogCQkJCUUzMDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRT
Y3JpcHRGZXRjaGVyLmggKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hl
ZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8sCkBAIC0yNzA5NSw2ICsyNzA5OSw4IEBACiAJCQkJ
NEJERUEzMkQyMTgwMzQwNTAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAg
Ki8sCiAJCQkJNEJERUEzMkIyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5oICovLAogCQkJCTcwOUEwMUZEMUUzRDBCQ0MwMDZCMEQ0QyAvKiBNb2R1bGVGZXRjaEZh
aWx1cmVLaW5kLmggKi8sCisJCQkJRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNj
cmlwdExvYWRlci5oICovLAorCQkJCUUzNTE4OEIzMjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQuaCAqLywKIAkJCQk0MUI0NTlFRDFGNTVFQkM3MDAwMEY2RkQgLyog
UmVhZGFibGVTdHJlYW0uY3BwICovLAogCQkJCTQxQjQ1OURBMUY0Q0FEQjkwMDAwRjZGRCAvKiBS
ZWFkYWJsZVN0cmVhbS5oICovLAogCQkJCTQxOEMzOTVFMUM4RjBBQUIwMDUxQzhBMyAvKiBSZWFk
YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCAqLywKQEAgLTI3MTI2LDYgKzI3MTMyLDgg
QEAKIAkJCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250
cm9sbGVyLmggKi8sCiAJCQkJNDYzNTIxQUMyMDgxMDkwRTAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5
LmNwcCAqLywKIAkJCQk0NjM1MjFBQTIwODEwOTBCMDBDMjg5MjIgLyogV2luZG93UHJveHkuaCAq
LywKKwkJCQlFMzQzMkRFMzI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyLmNwcCAqLywKKwkJCQlFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmggKi8sCiAJCQkJNDE0MThBMDMyNTY0M0UxMjAwMzYzNDE3IC8qIFdyaXRh
YmxlU3RyZWFtLmNwcCAqLywKIAkJCQk0MTQxOEEwNDI1NjQzRTEzMDAzNjM0MTcgLyogV3JpdGFi
bGVTdHJlYW0uaCAqLywKIAkJCSk7CkBAIC0zMTM5OSw3ICszMTQwNyw2IEBACiAJCQkJQkNCMTZD
MUMwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MTlGQkQ1RjE1RDJGNDY0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUzMDdERUQwMUQ4MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUUzMDdERUQxMUQ4MUU0Q0IwMDE0MUNBRiAvKiBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMDE4
NDY5MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
MEVEQTc3NTE0M0UzMDNDMDAyOEUzODMgLyogQ2FjaGVkUmF3UmVzb3VyY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxQjUzMzQ5MTcxN0RFRTMwMEYyMDVGOSAvKiBDYWNoZWRSYXdSZXNvdXJjZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzg3NCw2ICszMzg4MSw4IEBACiAJCQkJQzZENzRB
RDUwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNzA5QTAxRkUxRTNEMEJERDAwNkIwRDRDIC8qIE1vZHVsZUZldGNoRmFpbHVy
ZUtpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAzMiAvKiBN
b2R1bGVGZXRjaFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNjQzMjFDMjVEMzdB
NjcwMEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUz
NTE4OEI0MjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY1NUIzREM2MTI1MUYxMkQwMDNFRjI2OSAvKiBNb250aElucHV0VHlw
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM5NjI4QzEyMzk1NzQzMTAwNjU4RUNEIC8qIE1vdGlv
bk1hbmFnZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjQ2MEE0NEVGQzcwMEY5
OTJFMCAvKiBNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM1NTI2LDYgKzM1NTM1LDcg
QEAKIAkJCQkxOEY4MzFCODBGRDQ4Qzc4MDBEOEM1NkIgLyogV29ya2VyTG9hZGVyUHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTJFNDM0NjREMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJMb2Nh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTAwRjU0NkE4MjAwQjBGMUJBIC8qIFdv
cmtlck1lc3NhZ2luZ1Byb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzQzMkRFNDI1RDM3N0Uz
MDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMTI3MUEwQjBFRUVDNzdBMDBGNjEyMTMgLyogV29ya2VyTmF2aWdhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNUNCMDUyNTFGQjUxRjNBMDAwODlCOTcgLyogV29ya2VyTmV0d29ya0FnZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2Vy
T2JqZWN0UHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKaW5kZXggMzUyZGNjNGFj
Zjc1MTc2ZDk4YWQzNDEwYmUxNTE2MDgwMTA4ODUyNC4uNDM3YmQzMzFiNTM1NjExMGVhYTJlZmQ0
ZmNhY2M5NTFmNjFmZDY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCkBAIC00MCwxNiArNDAsMTMgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVy
JiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRl
cnMpCitSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXI6OmNyZWF0ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9t
aXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8
TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0
RmV0Y2hlciwgV1RGTW92ZShwYXJhbWV0ZXJzKSkpOwogfQogCi1DYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXI6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRj
aGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFt
ZXRlcnMpCi0gICAgOiBtX2NsaWVudCgmY2xpZW50KQotICAgICwgbV9wcm9taXNlKCZwcm9taXNl
KQotICAgICwgbV9zY3JpcHRGZXRjaGVyKHNjcmlwdEZldGNoZXIpCi0gICAgLCBtX3BhcmFtZXRl
cnMoV1RGTW92ZShwYXJhbWV0ZXJzKSkKK0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Q2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZl
cnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIs
IFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICA6IE1vZHVs
ZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1vdmUocGFy
YW1ldGVycykpCiB7CiB9CiAKQEAgLTYxLDE0ICs1OCwxNSBAQCBDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXI6On5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoKQogICAgIH0KIH0KIAotYm9vbCBDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwm
IHNvdXJjZVVSTCkKK2Jvb2wgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKERvY3VtZW50
JiBkb2N1bWVudCwgVVJMJiYgc291cmNlVVJMKQogeworICAgIEFTU0VSVChtX3Byb21pc2UpOwog
ICAgIEFTU0VSVCghbV9jYWNoZWRTY3JpcHQpOwogICAgIFN0cmluZyBpbnRlZ3JpdHkgPSBtX3Bh
cmFtZXRlcnMgPyBtX3BhcmFtZXRlcnMtPmludGVncml0eSgpIDogU3RyaW5nIHsgfTsKICAgICBt
X2NhY2hlZFNjcmlwdCA9IG1fc2NyaXB0RmV0Y2hlci0+cmVxdWVzdE1vZHVsZVNjcmlwdChkb2N1
bWVudCwgc291cmNlVVJMLCBXVEZNb3ZlKGludGVncml0eSkpOwogICAgIGlmICghbV9jYWNoZWRT
Y3JpcHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtX3NvdXJjZVVSTCA9IHNvdXJjZVVS
TDsKKyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUoc291cmNlVVJMKTsKIAogICAgIC8vIElmIHRo
ZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkLCB0aGlzIGltbWVkaWF0ZWx5IGNhbGxzIG5vdGlm
eUZpbmlzaGVkLgogICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQoKnRoaXMpOwpAQCAtODMs
NyArODEsNyBAQCB2b2lkIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQo
Q2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBOZQogCiAgICAgUmVmPENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgaWYgKG1fY2xpZW50KQot
ICAgICAgICBtX2NsaWVudC0+bm90aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9wcm9taXNl
KSk7CisgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3Nv
dXJjZVVSTCksIG1fcHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIC8vIFJlbW92ZSB0
aGUgY2xpZW50IGFmdGVyIGNhbGxpbmcgbm90aWZ5RmluaXNoZWQgdG8ga2VlcCB0aGUgZGF0YSBi
dWZmZXIgaW4KICAgICAvLyBDYWNoZWRSZXNvdXJjZSBhbGl2ZSB3aGlsZSBub3RpZnlGaW5pc2hl
ZCBwcm9jZXNzZXMgdGhlIHJlc291cmNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaAppbmRleCA0M2FiZDg3NWIyNDNmYWY1
ZmNkNGQ5OGVjM2M1ZDI0ZTc5MGI1NzJlLi42MWViZTk2ZTRjNGZkZDcyZDIzZmU3ZTRlYWU5ZDU2
MTZjNWVlNjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgor
I2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTM0
LDcgKzM1LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQ7CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CiBjbGFz
cyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDYWNoZWRTY3JpcHRGZXRjaGVyOwogY2xhc3MgRGVmZXJy
ZWRQcm9taXNlOwpAQCAtNDIsMzQgKzQzLDIxIEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgSlNE
T01HbG9iYWxPYmplY3Q7CiBjbGFzcyBNb2R1bGVGZXRjaFBhcmFtZXRlcnM7CiAKLWNsYXNzIENh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcj4sIHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgeworY2xhc3Mg
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRl
ciwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+IGNyZWF0ZShDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRy
PE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisgICAgc3RhdGljIFJlZjxDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXI+IGNyZWF0ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFBy
b21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVy
cz4mJik7CiAKICAgICB2aXJ0dWFsIH5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoKTsKIAotICAg
IGJvb2wgbG9hZChEb2N1bWVudCYsIGNvbnN0IFVSTCYgc291cmNlVVJMKTsKKyAgICBib29sIGxv
YWQoRG9jdW1lbnQmLCBVUkwmJiBzb3VyY2VVUkwpOwogCi0gICAgQ2FjaGVkU2NyaXB0RmV0Y2hl
ciYgc2NyaXB0RmV0Y2hlcigpIHsgcmV0dXJuIG1fc2NyaXB0RmV0Y2hlci5nZXQoKTsgfQogICAg
IENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0
KCk7IH0KLSAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSB7IHJldHVybiBt
X3BhcmFtZXRlcnMuZ2V0KCk7IH0KLSAgICBjb25zdCBVUkwmIHNvdXJjZVVSTCgpIGNvbnN0IHsg
cmV0dXJuIG1fc291cmNlVVJMOyB9Ci0KLSAgICB2b2lkIGNsZWFyQ2xpZW50KCkKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX2NsaWVudCk7Ci0gICAgICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKLSAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNo
ZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKyAgICBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwg
Q2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOwog
CiAgICAgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYsIGNvbnN0IE5ldHdvcmtM
b2FkTWV0cmljcyYpIGZpbmFsOwogCi0gICAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKLSAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBtX3By
b21pc2U7Ci0gICAgUmVmPENhY2hlZFNjcmlwdEZldGNoZXI+IG1fc2NyaXB0RmV0Y2hlcjsKLSAg
ICBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiBtX3BhcmFtZXRlcnM7CiAgICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdDsKICAgICBVUkwgbV9z
b3VyY2VVUkw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODY4OGFkOTBkYWUzZWNlOTQ5ZWEwOWIxZWZlZTVkYTI2Zjk0Yzc4Ni4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaAorKysgL2Rldi9udWxs
CkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUsIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyOwotY2xhc3MgRGVmZXJyZWRQcm9taXNlOwotCi1jbGFzcyBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwgfkNh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCgpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImLCBSZWZQdHI8RGVm
ZXJyZWRQcm9taXNlPikgPSAwOwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcAppbmRleCBhNDMzNzU4NjViYmYxZWM1OTcz
YmYxNzJjOTFhMzg1MzIzNGUzNzRkLi5kZjNjNmI2ZWJiODRhZjcyZWQyOTU1Zjk5MTFkMDdhODdh
YjM1MzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3Jp
cHRGZXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3Jp
cHRGZXRjaGVyLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNj
ZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTQ3LDYgKzQ4LDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
U2NyaXB0PiBDYWNoZWRTY3JpcHRGZXRjaGVyOjpyZXF1ZXN0TW9kdWxlU2NyaXB0KERvY3UKIAog
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRTY3JpcHRGZXRjaGVyOjpy
ZXF1ZXN0U2NyaXB0V2l0aENhY2hlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiBzb3Vy
Y2VVUkwsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlLCBTdHJpbmcmJiBpbnRlZ3JpdHks
IE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiByZXNvdXJjZUxvYWRQcmlvcml0eSkgY29u
c3QKIHsKKyAgICAvLyBXaXRob3V0IHNjcmlwdGluZywgdGhlcmUgaXMgbm8gd2F5IHRvIHN0YXJ0
IFdvcmtlcnMuCiAgICAgaWYgKCFkb2N1bWVudC5zZXR0aW5ncygpLmlzU2NyaXB0RW5hYmxlZCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4IDU4YjdkZjc2MGMwMGEzMWZmMDhlZDIy
ZGVlMjJhOGM3NDQzYWU4ZGQuLjlkNjk3ZDQ1OWI1NjM0NWNjODM5NjIwMjY2NzZlMDBhOThiZjQ5
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJKU1dvcmtsZXRHbG9iYWxTY29wZS5o
IgogI2luY2x1ZGUgIlJlamVjdGVkUHJvbWlzZVRyYWNrZXIuaCIKICNpbmNsdWRlICJSdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCiAjaW5j
bHVkZSAiU3RydWN0dXJlZENsb25lLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5o
IgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC00MjIsNiArNDIzLDc5IEBAIEpT
Qzo6SlNQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVjdDo6aW5zdGFudGlhdGVTdHJlYW1pbmcoSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAjZW5kaWYKIAorc3RhdGljIFNjcmlwdE1vZHVsZUxv
YWRlciogc2NyaXB0TW9kdWxlTG9hZGVyKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
Cit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGlmIChnbG9iYWxPYmpl
Y3QtPmluaGVyaXRzPEpTRE9NV2luZG93QmFzZT4odm0pKSB7CisgICAgICAgIGlmIChhdXRvIGRv
Y3VtZW50ID0ganNDYXN0PGNvbnN0IEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCktPndy
YXBwZWQoKS5kb2N1bWVudCgpKQorICAgICAgICAgICAgcmV0dXJuICZkb2N1bWVudC0+bW9kdWxl
TG9hZGVyKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBpZiAoZ2xvYmFs
T2JqZWN0LT5pbmhlcml0czxKU1JlbW90ZURPTVdpbmRvd0Jhc2U+KHZtKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNXb3JrZXJHbG9i
YWxTY29wZUJhc2U+KHZtKSkKKyAgICAgICAgcmV0dXJuICZqc0Nhc3Q8Y29uc3QgSlNXb3JrZXJH
bG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7
CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNl
Pih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBwZWQoKS5tb2R1bGVMb2FkZXIoKTsKKyNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU0lE
QlNlcmlhbGl6YXRpb25HbG9iYWxPYmplY3Q+KHZtKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisjZW5kaWYKKyAgICBkYXRhTG9nKCJVbmV4cGVjdGVkIGdsb2JhbCBvYmplY3Q6ICIsIEpTVmFs
dWUoZ2xvYmFsT2JqZWN0KSwgIlxuIik7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNDOjpJZGVudGlmaWVyIEpTRE9NR2xvYmFs
T2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9k
dWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2Ny
aXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byog
bG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICByZXR1cm4g
bG9hZGVyLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBp
bXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0dXJuIHsgfTsKK30KKwor
SlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckZl
dGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgcGFy
YW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9N
R2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2Ny
aXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIGxvYWRlci0+ZmV0Y2goZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtl
eSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hlcikpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21p
c2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOworICAgIHNjb3BlLnJlbGVhc2UoKTsK
KyAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKKyAgICBy
ZXR1cm4gcHJvbWlzZTsKK30KKworSlNDOjpKU1ZhbHVlIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1
bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlND
OjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7Cisg
ICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlwdE1v
ZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxvYWRlci0+ZXZhbHVhdGUo
Z2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkLCBzY3Jp
cHRGZXRjaGVyKTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworfQorCitKU0M6OkpT
SW50ZXJuYWxQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVySW1wb3J0TW9k
dWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUg
cGFyYW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKK3sKKyAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlND
Ojpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRv
KiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgbG9hZGVyLT5pbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBt
b2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBhcmFtZXRlcnMsIHNvdXJjZU9yaWdpbikpOworICAg
IEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOwor
ICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBq
c1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gcHJvbWlzZTsKK30KKworSlNDOjpKU09iamVjdCog
SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVz
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciog
bW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTTW9kdWxlUmVjb3Jk
KiBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIEpTRE9N
R2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3Qq
PihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2Fk
ZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmNyZWF0ZUltcG9ydE1ldGFQ
cm9wZXJ0aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJl
Y29yZCwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGds
b2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0
dXJlKCkpOworfQorCiBKU0RPTUdsb2JhbE9iamVjdCYgY2FsbGVyR2xvYmFsT2JqZWN0KEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUmIGNhbGxGcmFtZSkKIHsK
ICAgICBjbGFzcyBHZXRDYWxsZXJHbG9iYWxPYmplY3RGdW5jdG9yIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCmluZGV4IGI4NDA3MmRkZDc0NmIz
ZDZjNTEwNjBkOTA1MDFiNWNlYTFiNDk5YjEuLmY0OWE0Y2QyNTcxOTcxMTg5MTdhN2Q3YTRiNmMw
ZTExZmM3NmJhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuaApAQCAtMTA1LDYgKzEwNSwxMiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU0RP
TUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0M6OkpTR2xvYmFsT2JqZWN0IHsKICAgICBzdGF0aWMg
SlNDOjpKU1Byb21pc2UqIGluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNPYmplY3QqKTsKICNlbmRpZgogCisgICAgc3RhdGljIEpT
Qzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNW
YWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZl
dGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1Zh
bHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNWYWx1
ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVs
ZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAg
IHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTU3RyaW5n
KiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYpOworICAgIHN0YXRpYyBK
U0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlND
OjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7CisKICAgICBKU0RPTVN0cnVjdHVyZU1h
cCBtX3N0cnVjdHVyZXM7CiAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCBtX2NvbnN0cnVjdG9yczsK
ICAgICBET01HdWFyZGVkT2JqZWN0U2V0IG1fZ3VhcmRlZE9iamVjdHM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA1NjNlZmEwNTcxYjVk
NDYyZDllNjQ1MDg5ZjBiZDhmNzdkMTlhNzY4Li4zMTJhMDExNThlOGMyODA4M2MwN2U0MmRiODcy
NDVmZTRlNWM1N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAKQEAgLTMzOSw1NCArMzM5LDQgQEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmZp
cmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhET01XaW5kb3cqIHdpbmRvdykKICAg
ICB9CiB9CiAKLUpTQzo6SWRlbnRpZmllciBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJl
c29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUg
aW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIEpT
RE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+
KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlz
T2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5t
b2R1bGVMb2FkZXIoKS5yZXNvbHZlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVO
YW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIHsgfTsK
LX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2Fk
ZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVM
b2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVl
IHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNE
T01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBk
b2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5mZXRjaChnbG9i
YWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBwYXJhbWV0ZXJzLCBzY3JpcHRGZXRj
aGVyKSk7Ci0gICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSA9IEpTQzo6SlNJbnRl
cm5hbFByb21pc2U6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5pbnRlcm5hbFByb21pc2VTdHJ1
Y3R1cmUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgpOwotICAgIHByb21pc2UtPnJlamVjdChnbG9i
YWxPYmplY3QsIGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBwcm9taXNlOwotfQotCi1KU0M6
OkpTVmFsdWUgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRl
ciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlND
OjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2Jq
ZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBp
ZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1
bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmV2YWx1YXRl
KGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2Ny
aXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKLX0KLQotSlNDOjpK
U0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJJbXBvcnRNb2R1
bGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVy
KiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNTdHJpbmcqIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBw
YXJhbWV0ZXJzLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luKQotewotICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpq
c0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERv
Y3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAg
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5p
bXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBhcmFt
ZXRlcnMsIHNvdXJjZU9yaWdpbikpOwotICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21p
c2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50
ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBwcm9t
aXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gcHJv
bWlzZTsKLX0KLQotSlNDOjpKU09iamVjdCogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJD
cmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2Ny
aXB0RmV0Y2hlcikKLXsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6Ompz
Q2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9j
dW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAg
ICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuY3JlYXRlSW1wb3J0TWV0YVByb3Bl
cnRpZXMoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3Jk
LCBzY3JpcHRGZXRjaGVyKTsKLSAgICByZXR1cm4gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFs
T2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUo
KSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggM2VmOTgwZGQyN2Y2YjIxMzk4NzAwOGJhNDc2
YzhjYTY5ZjJmMGI2NC4uNTE0MmIxYzdkYzI1YzIyZmU5Nzg5NWU3NWFlMjJlZjRkMWU1ODlkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTk5
LDEyICs5OSw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2luZG93QmFzZSA6IHB1Ymxp
YyBKU0RPTUdsb2JhbE9iamVjdCB7CiBwcml2YXRlOgogICAgIHVzaW5nIFJlc3BvbnNlQ2FsbGJh
Y2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgY2hhciosIHNpemVfdCk+OwogCi0gICAgc3Rh
dGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpT
Qzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxv
YWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlND
OjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6
SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpK
U01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUp
OwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJJbXBvcnRN
b2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpT
U3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYpOwotICAgIHN0
YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGll
cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1
ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7Ci0KICAgICBSZWZQdHI8RE9N
V2luZG93PiBtX3dyYXBwZWQ7CiAgICAgUmVmUHRyPEV2ZW50PiBtX2N1cnJlbnRFdmVudDsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNj
b3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNj
b3BlQmFzZS5jcHAKaW5kZXggNDJiMjZjOWY0ZWEyMTYyMDdkZTRjODY4MjBiOGE4MWI2MDM1Yjdl
Yi4uMmQ3OTNmZmYyMTg1M2E4YTFhNzg4MDY2NzI1MGY1N2U3NTJmZTNmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNw
cApAQCAtNTksMTEgKzU5LDExIEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29y
a2VyR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlCiAgICAgJmphdmFT
Y3JpcHRSdW50aW1lRmxhZ3MsCiAgICAgJnF1ZXVlTWljcm90YXNrVG9FdmVudExvb3AsCiAgICAg
JnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsCi0gICAgbnVsbHB0ciwgLy8gbW9k
dWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyUmVzb2x2
ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZldGNoCi0gICAgbnVsbHB0ciwgLy8gbW9k
dWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMKLSAgICBudWxscHRyLCAvLyBtb2R1
bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUsCisgICAgJm1v
ZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNoLAorICAgICZtb2R1bGVM
b2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9kdWxlTG9hZGVyRXZhbHVh
dGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAogICAgICZyZXBvcnRVbmNhdWdodEV4
Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9uT3duZXIsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2Nv
cGVCYXNlLmNwcAppbmRleCAzNWZhNmUzMjc3ZmIwZDRiZTBlMGUxZWRjNDM3MjJlZGFkZmM4YWYy
Li45ZmFlYzk1OWMzOWQxNzQ4MTgxYzk4NjUwMDNkNWE4NmYxN2Y1ZTNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5j
cHAKQEAgLTQ5LDExICs0OSwxMSBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibAogICAgICZqYXZh
U2NyaXB0UnVudGltZUZsYWdzLAogICAgIG51bGxwdHIsIC8vIHF1ZXVlTWljcm90YXNrVG9FdmVu
dExvb3AKICAgICAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwKLSAgICBudWxs
cHRyLCAvLyBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUKLSAgICBudWxscHRyLCAvLyBtb2R1bGVM
b2FkZXJSZXNvbHZlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyRmV0Y2gKLSAgICBudWxs
cHRyLCAvLyBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcwotICAgIG51bGxw
dHIsIC8vIG1vZHVsZUxvYWRlckV2YWx1YXRlCisgICAgJm1vZHVsZUxvYWRlckltcG9ydE1vZHVs
ZSwKKyAgICAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwKKyAgICAmbW9kdWxlTG9hZGVyRmV0Y2gsCisg
ICAgJm1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzLAorICAgICZtb2R1bGVM
b2FkZXJFdmFsdWF0ZSwKICAgICAmcHJvbWlzZVJlamVjdGlvblRyYWNrZXIsCiAgICAgJnJlcG9y
dFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRp
b25Pd25lciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNj
cmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9h
ZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTUyYzVjZDk2Y2MwYjI4ZTU1ZGJlMjBkZTZjZThmYWYwMDY3ZTZk
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNj
cmlwdExvYWRlci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlICJKU0RPTVByb21p
c2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50OworCitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxNb2R1bGVTY3JpcHRMb2FkZXI+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5Nb2R1bGVTY3JpcHRMb2FkZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIGNsZWFyQ2xpZW50
KCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2NsaWVudCk7CisgICAgICAgIG1fY2xpZW50ID0g
bnVsbHB0cjsKKyAgICB9CisKKyAgICBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVy
KCkgeyByZXR1cm4gbV9zY3JpcHRGZXRjaGVyLmdldCgpOyB9CisgICAgTW9kdWxlRmV0Y2hQYXJh
bWV0ZXJzKiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9CisKK3By
b3RlY3RlZDoKKyAgICBNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYg
c2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJz
KQorICAgICAgICA6IG1fY2xpZW50KCZjbGllbnQpCisgICAgICAgICwgbV9wcm9taXNlKCZwcm9t
aXNlKQorICAgICAgICAsIG1fc2NyaXB0RmV0Y2hlcihzY3JpcHRGZXRjaGVyKQorICAgICAgICAs
IG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQorICAgIHsKKyAgICB9CisKKyAgICBN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQqIG1fY2xpZW50OworICAgIFJlZlB0cjxEZWZlcnJlZFBy
b21pc2U+IG1fcHJvbWlzZTsKKyAgICBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hlcj4gbV9zY3JpcHRG
ZXRjaGVyOworICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+IG1fcGFyYW1ldGVyczsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk5NWY0
OGVlM2QxZTAyYzFkOGM5YzlkYTJiZDU4MjM2ZjNiYTA3ZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCkBAIC0w
LDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUsIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kdWxlU2Ny
aXB0TG9hZGVyOworY2xhc3MgRGVmZXJyZWRQcm9taXNlOworCitjbGFzcyBNb2R1bGVTY3JpcHRM
b2FkZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfk1vZHVsZVNjcmlwdExvYWRlckNs
aWVudCgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChNb2R1
bGVTY3JpcHRMb2FkZXImLCBVUkwmJiwgUmVmPERlZmVycmVkUHJvbWlzZT4pID0gMDsKK307CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwCmluZGV4IGFhNWI4MGI1ODZiNzllMGU1NzUwMWNkNTEwNzhkZjI1YTYyNWU1ZDkuLmMyZTVi
ZTVlYWZmMzhiNDMwOTVlMDIwMjRkY2E2ZGMyMGI3OWNhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtMjksNyArMjksNiBA
QAogI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hl
ZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKLSNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKQEAgLTQxLDYgKzQwLDcgQEAKICNp
bmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VJbnRlZ3Jp
dHkuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSAiV29ya2Vy
TW9kdWxlU2NyaXB0TG9hZGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlv
bi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4KQEAgLTUyLDggKzUyLDkgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TY3JpcHRNb2R1bGVMb2FkZXI6OlNjcmlwdE1vZHVs
ZUxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQor
U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgT3duZXJUeXBlIG93bmVyVHlwZSkKKyAgICA6IG1fY29udGV4dChjb250
ZXh0KQorICAgICwgbV9vd25lclR5cGUob3duZXJUeXBlKQogewogfQogCkBAIC02OCw3ICs2OSw3
IEBAIHN0YXRpYyBib29sIGlzUm9vdE1vZHVsZShKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVL
ZXkpCiAgICAgcmV0dXJuIGltcG9ydGVyTW9kdWxlS2V5LmlzU3ltYm9sKCkgfHwgaW1wb3J0ZXJN
b2R1bGVLZXkuaXNVbmRlZmluZWQoKTsKIH0KIAotc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5n
PiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiBzcGVjaWZpZXIsIGNvbnN0IFVSTCYgYmFzZVVSTCkKK3N0YXRpYyBFeHBlY3RlZDxVUkwsIFN0
cmluZz4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93bmVyVHlwZSBvd25lclR5cGUsIGNvbnN0IFN0cmlu
ZyYgc3BlY2lmaWVyLCBjb25zdCBVUkwmIGJhc2VVUkwpCiB7CiAgICAgLy8gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3Jlc29sdmUtYS1tb2R1
bGUtc3BlY2lmaWVyCiAKQEAgLTc5LDcgKzgwLDEyIEBAIHN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0
cmluZz4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0
CiAgICAgaWYgKCFzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpICYmICFzcGVjaWZpZXIuc3RhcnRz
V2l0aCgiLi8iKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4uLyIpKQogICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIHNwZWNpZmllciwgJyJfcywgc3Bl
Y2lmaWVyLCAiJyBkb2VzIG5vdCBzdGFydCB3aXRoIFwiL1wiLCBcIi4vXCIsIG9yIFwiLi4vXCIu
IFJlZmVyZW5jZWQgZnJvbSAiX3MsIGJhc2VVUkwuc3RyaW5nKCkpKTsKIAotICAgIGF1dG8gcmVz
dWx0ID0gZG9jdW1lbnQuY29tcGxldGVVUkwoc3BlY2lmaWVyLCBiYXNlVVJMKTsKKyAgICBVUkwg
cmVzdWx0OworICAgIGlmIChvd25lclR5cGUgPT0gU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5
cGU6OkRvY3VtZW50KQorICAgICAgICByZXN1bHQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4
dCkuY29tcGxldGVVUkwoc3BlY2lmaWVyLCBiYXNlVVJMKTsKKyAgICBlbHNlCisgICAgICAgIHJl
c3VsdCA9IFVSTChiYXNlVVJMLCBzcGVjaWZpZXIpOworCiAgICAgaWYgKCFyZXN1bHQuaXNWYWxp
ZCgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIG5h
bWUsICciX3MsIHJlc3VsdC5zdHJpbmcoKSwgIicgZG9lcyBub3QgcmVzb2x2ZSB0byBhIHZhbGlk
IFVSTC4iX3MpKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTA3LDcgKzExMyw3IEBAIEpTQzo6
SWRlbnRpZmllciBTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVj
dCoganNHbG9iYWxPYmplY3QsCiAgICAgVVJMIGJhc2VVUkwgPSByZXNwb25zZVVSTEZyb21SZXF1
ZXN0VVJMKCpqc0dsb2JhbE9iamVjdCwgaW1wb3J0ZXJNb2R1bGVLZXkpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IHJlc29sdmVNb2R1
bGVTcGVjaWZpZXIobV9kb2N1bWVudCwgc3BlY2lmaWVyLCBiYXNlVVJMKTsKKyAgICBhdXRvIHJl
c3VsdCA9IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIobV9jb250ZXh0LCBtX293bmVyVHlwZSwgc3Bl
Y2lmaWVyLCBiYXNlVVJMKTsKICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICBKU0M6OnRocm93
VHlwZUVycm9yKGpzR2xvYmFsT2JqZWN0LCBzY29wZSwgcmVzdWx0LmVycm9yKCkpOwogICAgICAg
ICByZXR1cm4geyB9OwpAQCAtMTYxLDEzICsxNjcsMTkgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlz
ZSogU2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2Jh
bE8KICAgICBpZiAoYXV0byogc2NyaXB0RmV0Y2hQYXJhbWV0ZXJzID0gSlNDOjpqc0R5bmFtaWND
YXN0PEpTQzo6SlNTY3JpcHRGZXRjaFBhcmFtZXRlcnMqPih2bSwgcGFyYW1ldGVycykpCiAgICAg
ICAgIHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzID0gc3RhdGljX2Nhc3Q8TW9kdWxlRmV0Y2hQYXJh
bWV0ZXJzKj4oJnNjcmlwdEZldGNoUGFyYW1ldGVycy0+cGFyYW1ldGVycygpKTsKIAotICAgIGF1
dG8gbG9hZGVyID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVy
cmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0
PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1v
dmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKLSAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5j
b3B5UmVmKCkpOwotICAgIGlmICghbG9hZGVyLT5sb2FkKG1fZG9jdW1lbnQsIGNvbXBsZXRlZFVS
TCkpIHsKLSAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOwotICAgICAgICBtX2xvYWRlcnMu
cmVtb3ZlKFdURk1vdmUobG9hZGVyKSk7Ci0gICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29y
a0Vycm9yKGRlZmVycmVkLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVk
LCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsKLSAgICAgICAgcmV0dXJu
IGpzUHJvbWlzZTsKKyAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkg
eworICAgICAgICBhdXRvIGxvYWRlciA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRl
KCp0aGlzLCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19jYXN0PENhY2hlZFNjcmlwdEZldGNoZXIq
PihKU0M6OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hlcio+KHNjcmlwdEZldGNoZXIpLT5mZXRj
aGVyKCkpLCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzKSk7CisgICAgICAgIG1fbG9h
ZGVycy5hZGQobG9hZGVyLmNvcHlSZWYoKSk7CisgICAgICAgIGlmICghbG9hZGVyLT5sb2FkKGRv
d25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLCBXVEZNb3ZlKGNvbXBsZXRlZFVSTCkpKSB7Cisg
ICAgICAgICAgICBsb2FkZXItPmNsZWFyQ2xpZW50KCk7CisgICAgICAgICAgICBtX2xvYWRlcnMu
cmVtb3ZlKFdURk1vdmUobG9hZGVyKSk7CisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5l
dHdvcmtFcnJvcihkZWZlcnJlZC5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJy
b3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7CisgICAgICAgICAg
ICByZXR1cm4ganNQcm9taXNlOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0
byBsb2FkZXIgPSBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJy
ZWQuZ2V0KCksICpzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8
SlNDOjpKU1NjcmlwdEZldGNoZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hlcigpKSwgV1RGTW92
ZSh0b3BMZXZlbEZldGNoUGFyYW1ldGVycykpOworICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRl
ci5jb3B5UmVmKCkpOworICAgICAgICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBXVEZNb3ZlKGNv
bXBsZXRlZFVSTCkpOwogICAgIH0KIAogICAgIHJldHVybiBqc1Byb21pc2U7CkBAIC0xNzYsNyAr
MTg4LDcgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE8KIFVSTCBTY3JpcHRNb2R1bGVMb2FkZXI6
Om1vZHVsZVVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU1Zh
bHVlIG1vZHVsZUtleVZhbHVlKQogewogICAgIGlmIChtb2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgp
KQotICAgICAgICByZXR1cm4gbV9kb2N1bWVudC51cmwoKTsKKyAgICAgICAgcmV0dXJuIG1fY29u
dGV4dC51cmwoKTsKIAogICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKICAg
ICByZXR1cm4gVVJMKFVSTCgpLCBhc1N0cmluZyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKCZqc0ds
b2JhbE9iamVjdCkpOwpAQCAtMTg3LDggKzE5OSwxMSBAQCBVUkwgU2NyaXB0TW9kdWxlTG9hZGVy
OjpyZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmIGpzR2xvYmFs
TwogICAgIEpTQzo6Vk0mIHZtID0ganNHbG9iYWxPYmplY3Qudm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVs
ZUtleVZhbHVlKSkKLSAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQuYmFzZVVSTCgpOworICAgIGlm
IChpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKSB7CisgICAgICAgIGlmIChtX293bmVyVHlw
ZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PERv
Y3VtZW50PihtX2NvbnRleHQpLmJhc2VVUkwoKTsKKyAgICAgICAgcmV0dXJuIG1fY29udGV4dC51
cmwoKTsKKyAgICB9CiAKICAgICBBU1NFUlQoIWlzUm9vdE1vZHVsZShtb2R1bGVLZXlWYWx1ZSkp
OwogICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKQEAgLTIxOSw4ICsyMzQs
MTQgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0ds
b2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsIEoKICAgICBpZiAoIXNvdXJjZVVSTC5pc1ZhbGlk
KCkpCiAgICAgICAgIHJldHVybiBKU0M6OnRocm93VHlwZUVycm9yKGpzR2xvYmFsT2JqZWN0LCBz
Y29wZSwgIk1vZHVsZSBrZXkgaXMgYW4gaW52YWxpZCBVUkwuIl9zKTsKIAotICAgIGlmIChhdXRv
KiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIGZyYW1lLT5zY3Jp
cHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsICptb2R1bGVSZWNvcmQpOworICAgIGlmICht
X293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CisgICAgICAgIGlmIChhdXRvKiBm
cmFtZSA9IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmZyYW1lKCkpCisgICAgICAgICAg
ICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgKm1vZHVs
ZVJlY29yZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKGlzPFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlPihtX2NvbnRleHQpKTsKKyAgICAgICAgaWYgKGF1dG8qIHNjcmlwdCA9IGRv
d25jYXN0PFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPihtX2NvbnRleHQpLnNjcmlwdCgpKQor
ICAgICAgICAgICAgcmV0dXJuIHNjcmlwdC0+ZXZhbHVhdGVNb2R1bGUoKm1vZHVsZVJlY29yZCk7
CisgICAgfQogICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAKQEAgLTI0OCwyMyAr
MjY5LDM2IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6aW1w
b3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzCiAgICAgVVJMIGJhc2VVUkw7CiAgICAg
UmVmUHRyPEpTQzo6U2NyaXB0RmV0Y2hlcj4gc2NyaXB0RmV0Y2hlcjsKICAgICBpZiAoc291cmNl
T3JpZ2luLmlzTnVsbCgpKSB7Ci0gICAgICAgIGJhc2VVUkwgPSBtX2RvY3VtZW50LmJhc2VVUkwo
KTsKLSAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZSht
X2RvY3VtZW50LmNoYXJzZXQoKSk7CisgICAgICAgIFN0cmluZyBjaGFyc2V0OworICAgICAgICBp
ZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICAgICAgYmFz
ZVVSTCA9IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmJhc2VVUkwoKTsKKyAgICAgICAg
ICAgIGNoYXJzZXQgPSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5jaGFyc2V0KCk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBiYXNlVVJMID0gbV9jb250ZXh0LnVybCgpOwor
ICAgICAgICAgICAgY2hhcnNldCA9ICJ1dGYtOCJfczsKKyAgICAgICAgfQorICAgICAgICBzY3Jp
cHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKFdURk1vdmUoY2hhcnNldCkp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIGJhc2VVUkwgPSBVUkwoVVJMKCksIHNvdXJjZU9yaWdp
bi5zdHJpbmcoKSk7CiAgICAgICAgIGlmICghYmFzZVVSTC5pc1ZhbGlkKCkpCiAgICAgICAgICAg
ICByZXR1cm4gcmVqZWN0UHJvbWlzZShnbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgIkltcG9ydGVy
IG1vZHVsZSBrZXkgaXMgbm90IGEgU3ltYm9sIG9yIGEgU3RyaW5nLiJfcyk7CiAKKyAgICAgICAg
U3RyaW5nIGNoYXJzZXQ7CisgICAgICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRv
Y3VtZW50KQorICAgICAgICAgICAgY2hhcnNldCA9IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRl
eHQpLmNoYXJzZXQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2hhcnNldCA9ICJ1dGYt
OCJfczsKKwogICAgICAgICBpZiAoc291cmNlT3JpZ2luLmZldGNoZXIoKSkKICAgICAgICAgICAg
IHNjcmlwdEZldGNoZXIgPSBzb3VyY2VPcmlnaW4uZmV0Y2hlcigpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKG1f
ZG9jdW1lbnQuY2hhcnNldCgpKTsKKyAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNoZWRT
Y3JpcHRGZXRjaGVyOjpjcmVhdGUoV1RGTW92ZShjaGFyc2V0KSk7CiAgICAgfQogICAgIEFTU0VS
VChiYXNlVVJMLmlzVmFsaWQoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEZldGNoZXIpOwogCiAgICAg
YXV0byBzcGVjaWZpZXIgPSBtb2R1bGVOYW1lLT52YWx1ZShqc0dsb2JhbE9iamVjdCk7Ci0gICAg
YXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmll
ciwgYmFzZVVSTCk7CisgICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1f
Y29udGV4dCwgbV9vd25lclR5cGUsIHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1
bHQpCiAgICAgICAgIHJldHVybiByZWplY3RQcm9taXNlKGdsb2JhbE9iamVjdCwgVHlwZUVycm9y
LCByZXN1bHQuZXJyb3IoKSk7CiAKQEAgLTI4OCw2MiArMzIyLDk4IEBAIEpTQzo6SlNPYmplY3Qq
IFNjcmlwdE1vZHVsZUxvYWRlcjo6Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0ds
b2JhbE9iamVjCiAgICAgcmV0dXJuIG1ldGFQcm9wZXJ0aWVzOwogfQogCi12b2lkIFNjcmlwdE1v
ZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiBsb2Fk
ZXIsIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IHByb21pc2UpCit2b2lkIFNjcmlwdE1vZHVsZUxv
YWRlcjo6bm90aWZ5RmluaXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVyJiBtb2R1bGVTY3JpcHRMb2Fk
ZXIsIFVSTCYmIHNvdXJjZVVSTCwgUmVmPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZSkKIHsKICAg
ICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0
bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAogCi0gICAgVVJMIHNvdXJjZVVSTCA9IGxv
YWRlci5zb3VyY2VVUkwoKTsKLSAgICBpZiAoIW1fbG9hZGVycy5yZW1vdmUoJmxvYWRlcikpCisg
ICAgaWYgKCFtX2xvYWRlcnMucmVtb3ZlKCZtb2R1bGVTY3JpcHRMb2FkZXIpKQogICAgICAgICBy
ZXR1cm47Ci0gICAgbG9hZGVyLmNsZWFyQ2xpZW50KCk7CisgICAgbW9kdWxlU2NyaXB0TG9hZGVy
LmNsZWFyQ2xpZW50KCk7CiAKLSAgICBhdXRvJiBjYWNoZWRTY3JpcHQgPSAqbG9hZGVyLmNhY2hl
ZFNjcmlwdCgpOworICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7
CisgICAgICAgIGF1dG8mIGxvYWRlciA9IHN0YXRpY19jYXN0PENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlciY+KG1vZHVsZVNjcmlwdExvYWRlcik7CisgICAgICAgIGF1dG8mIGNhY2hlZFNjcmlwdCA9
ICpsb2FkZXIuY2FjaGVkU2NyaXB0KCk7CiAKLSAgICBpZiAoY2FjaGVkU2NyaXB0LnJlc291cmNl
RXJyb3IoKS5pc0FjY2Vzc0NvbnRyb2woKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlw
ZUVycm9yLCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4g
UmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAg
ICAgICAgaWYgKGNhY2hlZFNjcmlwdC5yZXNvdXJjZUVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkp
IHsKKyAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsICJDcm9zcy1vcmlnaW4g
c2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGlj
eS4iX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICBpZiAoY2FjaGVk
U2NyaXB0LmVycm9yT2NjdXJyZWQoKSkgewotICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdv
cmtFcnJvcigqcHJvbWlzZSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIklt
cG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQuZXJyb3JPY2N1cnJlZCgpKSB7CisgICAgICAg
ICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVG
ZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBm
YWlsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYgKGNh
Y2hlZFNjcmlwdC53YXNDYW5jZWxlZCgpKSB7Ci0gICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0
d29ya0Vycm9yKCpwcm9taXNlLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZCwg
IkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgaXMgY2FuY2VsZWQuIl9zKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC53YXNDYW5jZWxlZCgpKSB7Cisg
ICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBN
b2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBz
Y3JpcHQgaXMgY2FuY2VsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQog
Ci0gICAgaWYgKCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlw
ZShjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpKSkgewotICAgICAgICAvLyBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gt
YS1zaW5nbGUtbW9kdWxlLXNjcmlwdAotICAgICAgICAvLyBUaGUgcmVzdWx0IG9mIGV4dHJhY3Rp
bmcgYSBNSU1FIHR5cGUgZnJvbSByZXNwb25zZSdzIGhlYWRlciBsaXN0IChpZ25vcmluZyBwYXJh
bWV0ZXJzKSBpcyBub3QgYSBKYXZhU2NyaXB0IE1JTUUgdHlwZS4KLSAgICAgICAgLy8gRm9yIGhp
c3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBkb2VzIG5vdCBpbmNs
dWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBzY3JpcHRzIHdpbGwg
ZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlNRSB0eXBlLgotICAg
ICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2Ny
aXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuIikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoIU1JTUVU
eXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGNhY2hlZFNjcmlwdC5y
ZXNwb25zZSgpLm1pbWVUeXBlKCkpKSB7CisgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9k
dWxlLXNjcmlwdAorICAgICAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlN
RSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykg
aXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCisgICAgICAgICAgICAvLyBGb3IgaGlzdG9y
aWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUg
TUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWls
IHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCisgICAgICAg
ICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2Ny
aXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuIikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICBpZiAo
YXV0byogcGFyYW1ldGVycyA9IGxvYWRlci5wYXJhbWV0ZXJzKCkpIHsKLSAgICAgICAgaWYgKCFt
YXRjaEludGVncml0eU1ldGFkYXRhKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5
KCkpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5n
KCJDYW5ub3QgbG9hZCBzY3JpcHQgIiwgaW50ZWdyaXR5TWlzbWF0Y2hEZXNjcmlwdGlvbihjYWNo
ZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkpOworICAgICAgICBpZiAoYXV0byog
cGFyYW1ldGVycyA9IGxvYWRlci5wYXJhbWV0ZXJzKCkpIHsKKyAgICAgICAgICAgIGlmICghbWF0
Y2hJbnRlZ3JpdHlNZXRhZGF0YShjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgp
KSkgeworICAgICAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1ha2VTdHJp
bmcoIkNhbm5vdCBsb2FkIHNjcmlwdCAiLCBpbnRlZ3JpdHlNaXNtYXRjaERlc2NyaXB0aW9uKGNh
Y2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkpKSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVVJMIHJlc3BvbnNl
VVJMID0gY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCk7CisgICAgICAgIC8vIElmIHdlIGRv
IG5vdCBoYXZlIHJlZGlyZWN0aW9uLCB3ZSBtdXN0IHJlc2VydmUgdGhlIHNvdXJjZSBVUkwncyBm
cmFnbWVudCBleHBsaWNpdGx5IGhlcmUgc2luY2UgUmVzb3VyY2VSZXNwb25zZTo6dXJsKCkgaXMg
dGhlIG9uZSB3aGVuIHdlIGZpcnN0IGNhY2hlIGl0IHRvIE1lbW9yeUNhY2hlLgorICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNrIGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4K
KyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODQy
MAorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEw
NDkwCisgICAgICAgIGlmICghY2FjaGVkU2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpICYmIGNhY2hl
ZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6
U2VydmljZVdvcmtlcikgeworICAgICAgICAgICAgaWYgKHNvdXJjZVVSTC5oYXNGcmFnbWVudElk
ZW50aWZpZXIoKSkKKyAgICAgICAgICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50
aWZpZXIoc291cmNlVVJMLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICAgICAgfQorCisgICAg
ICAgIG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwg
V1RGTW92ZShyZXNwb25zZVVSTCkpOworICAgICAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxi
YWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAg
ICByZXR1cm4gSlNDOjpKU1NvdXJjZUNvZGU6OmNyZWF0ZShqc0dsb2JhbE9iamVjdC52bSgpLAor
ICAgICAgICAgICAgICAgIEpTQzo6U291cmNlQ29kZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyAmY2Fj
aGVkU2NyaXB0LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIu
c2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkgfSk7CisgICAgICAgIH0pOworICAgIH0g
ZWxzZSB7CisgICAgICAgIGF1dG8mIGxvYWRlciA9IHN0YXRpY19jYXN0PFdvcmtlck1vZHVsZVNj
cmlwdExvYWRlciY+KG1vZHVsZVNjcmlwdExvYWRlcik7CisgICAgICAgIGF1dG8mIHdvcmtlclNj
cmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRMb2FkZXIoKTsKKworICAgICAgICBpZiAod29ya2Vy
U2NyaXB0TG9hZGVyLmZhaWxlZCgpKSB7CisgICAgICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9h
ZGVyLmVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNl
LT5yZWplY3QoVHlwZUVycm9yLCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBD
cm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIl9zKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3b3JrZXJTY3JpcHRM
b2FkZXIuZXJyb3IoKS5pc0NhbmNlbGxhdGlvbigpKSB7CisgICAgICAgICAgICAgICAgcmVqZWN0
VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJl
S2luZDo6V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVk
LiJfcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVG
ZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBm
YWlsZWQuIl9zKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH0KIAotICAg
IFVSTCByZXNwb25zZVVSTCA9IGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpOwotICAgIC8v
IElmIHdlIGRvIG5vdCBoYXZlIHJlZGlyZWN0aW9uLCB3ZSBtdXN0IHJlc2VydmUgdGhlIHNvdXJj
ZSBVUkwncyBmcmFnbWVudCBleHBsaWNpdGx5IGhlcmUgc2luY2UgUmVzb3VyY2VSZXNwb25zZTo6
dXJsKCkgaXMgdGhlIG9uZSB3aGVuIHdlIGZpcnN0IGNhY2hlIGl0IHRvIE1lbW9yeUNhY2hlLgot
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJhY2sgZnJhZ21lbnRzIHRocm91Z2ggcmVkaXJlY3Rp
b25zLgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0
MjAKLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNDkw
Ci0gICAgaWYgKCFjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCkgJiYgY2FjaGVkU2NyaXB0
LnJlc3BvbnNlKCkuc291cmNlKCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNl
V29ya2VyKSB7Ci0gICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkp
Ci0gICAgICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIoc291cmNlVVJM
LmZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICB9CisgICAgICAgIGlmICghTUlNRVR5cGVSZWdp
c3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUod29ya2VyU2NyaXB0TG9hZGVyLnJl
c3BvbnNlTUlNRVR5cGUoKSkpIHsKKyAgICAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUt
c2NyaXB0CisgICAgICAgICAgICAvLyBUaGUgcmVzdWx0IG9mIGV4dHJhY3RpbmcgYSBNSU1FIHR5
cGUgZnJvbSByZXNwb25zZSdzIGhlYWRlciBsaXN0IChpZ25vcmluZyBwYXJhbWV0ZXJzKSBpcyBu
b3QgYSBKYXZhU2NyaXB0IE1JTUUgdHlwZS4KKyAgICAgICAgICAgIC8vIEZvciBoaXN0b3JpY2Fs
IHJlYXNvbnMsIGZldGNoaW5nIGEgY2xhc3NpYyBzY3JpcHQgZG9lcyBub3QgaW5jbHVkZSBNSU1F
IHR5cGUgY2hlY2tpbmcuIEluIGNvbnRyYXN0LCBtb2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwgdG8g
bG9hZCBpZiB0aGV5IGFyZSBub3Qgb2YgYSBjb3JyZWN0IE1JTUUgdHlwZS4KKyAgICAgICAgICAg
IHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIiciLCB3b3JrZXJTY3JpcHRM
b2FkZXIucmVzcG9uc2VNSU1FVHlwZSgpLCAiJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1J
TUUgdHlwZS4iKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIG1fcmVx
dWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwgV1RGTW92ZShy
ZXNwb25zZVVSTCkpOwotICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RP
TUdsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QpIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6SlNT
b3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAgICAgIEpTQzo6
U291cmNlQ29kZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyAmY2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJj
ZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNT
b3VyY2VDb2RlKCkgfSk7Ci0gICAgfSk7CisgICAgICAgIFVSTCByZXNwb25zZVVSTCA9IHdvcmtl
clNjcmlwdExvYWRlci5yZXNwb25zZVVSTCgpOworCisgICAgICAgIG1fcmVxdWVzdFVSTFRvUmVz
cG9uc2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwgcmVzcG9uc2VVUkwpOworICAgICAg
ICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3QmIGpz
R2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpKU1NvdXJjZUNvZGU6OmNy
ZWF0ZShqc0dsb2JhbE9iamVjdC52bSgpLAorICAgICAgICAgICAgICAgIEpTQzo6U291cmNlQ29k
ZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyB3b3JrZXJTY3JpcHRMb2FkZXIuc2NyaXB0KCksIFdURk1v
dmUocmVzcG9uc2VVUkwpLCB7IH0sIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1
bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUoKSB9KTsKKyAgICAgICAg
fSk7CisgICAgfQogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRNb2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dE1vZHVsZUxvYWRlci5oCmluZGV4IGRlMjlkMmY0YmYwOTZiNjBjMzY5OTgwMzE2YzE0ODZiMjgy
YWJmMDkuLmRmMzRkNTUxYTExY2Q5OGY0ZTIzNmEyYWExZjQ4Mjc5ZDk2NGM2ODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCkBAIC0yNSw4
ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgiCisj
aW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00
NSwxNiArNDUsMTcgQEAgY2xhc3MgU291cmNlT3JpZ2luOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIERvY3VtZW50OwogY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OwogCi1jbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBw
cml2YXRlIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7CitjbGFzcyBTY3JpcHRNb2R1
bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoU2NyaXB0TW9kdWxlTG9hZGVyKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU2NyaXB0TW9kdWxlTG9hZGVyKERvY3Vt
ZW50Jik7CisgICAgZW51bSBjbGFzcyBPd25lclR5cGUgOiB1aW50OF90IHsgRG9jdW1lbnQsIFdv
cmtlck9yV29ya2xldCB9OworICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRlcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgT3duZXJUeXBlKTsKICAgICB+U2NyaXB0TW9kdWxlTG9hZGVyKCk7
CiAKLSAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSB7IHJldHVybiBtX2RvY3VtZW50OyB9CisgICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29udGV4dDsgfQog
CiAgICAgSlNDOjpJZGVudGlmaWVyIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcik7CiAgICAgSlNDOjpK
U0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1
bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVy
cywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwpAQCAtNjMsMTMgKzY0LDE1IEBAIGNsYXNz
IFNjcmlwdE1vZHVsZUxvYWRlciBmaW5hbCA6IHByaXZhdGUgQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50IHsKICAgICBKU0M6OkpTT2JqZWN0KiBjcmVhdGVJbXBvcnRNZXRhUHJvcGVydGll
cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1
ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7CiAKIHByaXZhdGU6Ci0gICAg
dm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImLCBSZWZQdHI8RGVm
ZXJyZWRQcm9taXNlPikgZmluYWw7CisgICAgdm9pZCBub3RpZnlGaW5pc2hlZChNb2R1bGVTY3Jp
cHRMb2FkZXImLCBVUkwmJiwgUmVmPERlZmVycmVkUHJvbWlzZT4pIGZpbmFsOworCiAgICAgVVJM
IG1vZHVsZVVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsKICAgICBVUkwg
cmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1Zh
bHVlKTsKIAotICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIG1fY29udGV4dDsKICAgICBIYXNoTWFwPFN0cmluZywgVVJMPiBtX3JlcXVlc3RVUkxU
b1Jlc3BvbnNlVVJMTWFwOwotICAgIEhhc2hTZXQ8UmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
cj4+IG1fbG9hZGVyczsKKyAgICBIYXNoU2V0PFJlZjxNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xv
YWRlcnM7CisgICAgT3duZXJUeXBlIG1fb3duZXJUeXBlOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1v
ZHVsZVNjcmlwdExvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU5NmY2NDA4NWYwMTk1NGM1NjljZTc0
NDZkNGFlMzgyZmFkNzg5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXb3JrZXJNb2R1bGVTY3Jp
cHRMb2FkZXIuaCIKKworI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRl
ICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAi
TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25z
LmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVs
ZUxvYWRlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKyNpbmNsdWRlICJXb3Jr
ZXJTY3JpcHRMb2FkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyPiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNo
ZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzPiYmIHBhcmFtZXRlcnMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RGTW92ZShw
YXJhbWV0ZXJzKSkpOworfQorCitXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Oldvcmtlck1vZHVs
ZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQ
cm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQ
dHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCisgICAgOiBNb2R1bGVTY3Jp
cHRMb2FkZXIoY2xpZW50LCBwcm9taXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRl
cnMpKQorICAgICwgbV9zY3JpcHRMb2FkZXIoV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKSkK
K3sKK30KKworV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjp+V29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyKCkKK3sKKyAgICBtX3NjcmlwdExvYWRlci0+Y2FuY2VsKCk7Cit9CisKK2Jvb2wgV29ya2Vy
TW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IFVSTCYmIHNvdXJjZVVSTCkKK3sKKyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUoc291cmNlVVJM
KTsKKworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgbV9zb3VyY2VVUkwgfTsKKworICAg
IEZldGNoT3B0aW9ucyBmZXRjaE9wdGlvbnM7CisgICAgZmV0Y2hPcHRpb25zLm1vZGUgPSBGZXRj
aE9wdGlvbnM6Ok1vZGU6OkNvcnM7CisgICAgZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRp
b25zOjpDYWNoZTo6RGVmYXVsdDsKKyAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9w
dGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CisgICAgLy8gRklYTUU6IFByb3BhZ2F0ZSBjcmVkZW50
aWFscy4KKyAgICAvLyBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSBzY3JpcHRGZXRjaEpvYi5j
cmVkZW50aWFsczsKKyAgICBhdXRvIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0g
Y29udGV4dC5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSA/IENv
bnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UgOiBDb250ZW50U2Vj
dXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RW5mb3JjZUNoaWxkU3JjRGlyZWN0aXZlOworCisgICAg
U3RyaW5nIHRhc2tNb2RlID0gImxvYWRNb2R1bGVzSW5Xb3JrZXJPcldvcmtsZXRNb2RlIl9zOwor
ICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShy
ZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZv
cmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsICp0aGlzLCBXVEZNb3ZlKHRhc2tNb2Rl
KSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
Ojpub3RpZnlGaW5pc2hlZCgpCit7CisgICAgQVNTRVJUKG1fcHJvbWlzZSk7CisKKyAgICBhdXRv
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAg
ICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJjZVVSTCks
IG1fcHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yNjFhOGQ4MjA2MzA3OTBmZjY3OGFkZWNmNjU4YmI4NDY2MmExNGMzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xp
ZW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEZWZlcnJlZFByb21pc2U7CitjbGFzcyBKU0RPTUdsb2Jh
bE9iamVjdDsKK2NsYXNzIE1vZHVsZUZldGNoUGFyYW1ldGVyczsKK2NsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFzcyBXb3Jr
ZXJTY3JpcHRMb2FkZXI7CisKK2NsYXNzIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6
IHB1YmxpYyBNb2R1bGVTY3JpcHRMb2FkZXIsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVyQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcj4g
Y3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hl
ZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKworICAg
IHZpcnR1YWwgfldvcmtlck1vZHVsZVNjcmlwdExvYWRlcigpOworCisgICAgYm9vbCBsb2FkKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBVUkwmJiBzb3VyY2VVUkwpOworCisgICAgV29ya2VyU2Ny
aXB0TG9hZGVyJiBzY3JpcHRMb2FkZXIoKSB7IHJldHVybiBtX3NjcmlwdExvYWRlci5nZXQoKTsg
fQorCitwcml2YXRlOgorICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRM
b2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVm
UHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNw
b25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyB9Cisg
ICAgdm9pZCBub3RpZnlGaW5pc2hlZCgpIGZpbmFsOworCisgICAgUmVmPFdvcmtlclNjcmlwdExv
YWRlcj4gbV9zY3JpcHRMb2FkZXI7CisgICAgVVJMIG1fc291cmNlVVJMOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOWIyMTM4Yjc3YzE4
MGQ3MjA5NTE4MDBlMTRlMzQ3YTE0M2U5NzE3MS4uNTRjZmYwNGE5NmRiYzgwOWQ2MzZhYWVjOGVj
YjIwNWU0Njc3ZjA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02MTUsNyArNjE1LDcg
QEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRp
bmdzLCBjb25zdCBVUkwmIHVybCwgRG9jdW0KICAgICAsIG1fZG9jdW1lbnRDcmVhdGlvblRpbWUo
TW9ub3RvbmljVGltZTo6bm93KCkpCiAjZW5kaWYKICAgICAsIG1fc2NyaXB0UnVubmVyKG1ha2VV
bmlxdWU8U2NyaXB0UnVubmVyPigqdGhpcykpCi0gICAgLCBtX21vZHVsZUxvYWRlcihtYWtlVW5p
cXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMpKQorICAgICwgbV9tb2R1bGVMb2FkZXIobWFr
ZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KCp0aGlzLCBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93
bmVyVHlwZTo6RG9jdW1lbnQpKQogI2lmIEVOQUJMRShYU0xUKQogICAgICwgbV9hcHBseVBlbmRp
bmdYU0xUcmFuc2Zvcm1zVGltZXIoKnRoaXMsICZEb2N1bWVudDo6YXBwbHlQZW5kaW5nWFNMVHJh
bnNmb3Jtc1RpbWVyRmlyZWQpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVN
b2R1bGVTY3JpcHQuY3BwCmluZGV4IDlhMjVjMTY1ODhlZWNhZDY3OGZiOTExZWM4NjIyZjQyNDI1
OTJiNWEuLjQ4ZWMwODUxYTQ1N2Q5YmE0NzQ3M2ZlYzI4ZDdiNDkzMTJiNzg4YjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcApAQCAtODgsMTYgKzg4LDQg
QEAgdm9pZCBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6ZXhlY3V0ZShTY3JpcHRFbGVtZW50JiBzY3Jp
cHRFbGVtZW50KQogICAgIHNjcmlwdEVsZW1lbnQuZXhlY3V0ZU1vZHVsZVNjcmlwdCgqdGhpcyk7
CiB9CiAKLXZvaWQgTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHJvb3RVUkwpCi17Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQu
ZnJhbWUoKSkKLSAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoKnRoaXMs
IHJvb3RVUkwuc3RyaW5nKCksIG1fcGFyYW1ldGVycy5jb3B5UmVmKCkpOwotfQotCi12b2lkIExv
YWRhYmxlTW9kdWxlU2NyaXB0Ojpsb2FkKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU2NyaXB0
U291cmNlQ29kZSYgc291cmNlQ29kZSkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVu
dC5mcmFtZSgpKQotICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhp
cywgc291cmNlQ29kZSk7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9M
b2FkYWJsZU1vZHVsZVNjcmlwdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmgKaW5kZXggYmI3OTk1NGQ3Yjk5YjBlZDA2YmZlNTVlZjg1NGVjY2UyMWYzNTg3Ny4u
ZDI1MzU5NjNmNjQ4YjAyYThhMDFmZDYzYmIxZTM4MTM4NmNlZTQzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgKQEAgLTUwLDE1ICs1MCwxNCBAQCBjbGFzcyBM
b2FkYWJsZU1vZHVsZVNjcmlwdCBmaW5hbCA6IHB1YmxpYyBMb2FkYWJsZVNjcmlwdCB7CiAKICAg
ICB2b2lkIHNldEVycm9yKEVycm9yJiYpOwogCi0gICAgdm9pZCBsb2FkKERvY3VtZW50JiwgY29u
c3QgVVJMJiByb290VVJMKTsKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBTY3JpcHRT
b3VyY2VDb2RlJik7Ci0KICAgICB2b2lkIG5vdGlmeUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmlu
Z0ltcGwmKTsKICAgICB2b2lkIG5vdGlmeUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9y
JiYpOwogICAgIHZvaWQgbm90aWZ5TG9hZFdhc0NhbmNlbGVkKCk7CiAKICAgICBVbmlxdWVkU3Ry
aW5nSW1wbCogbW9kdWxlS2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0K
IAorICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyYgcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFy
YW1ldGVycy5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIExvYWRhYmxlTW9kdWxlU2NyaXB0KGNv
bnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYgaW50ZWdyaXR5LCBSZWZlcnJlclBvbGlj
eSwgY29uc3QgU3RyaW5nJiBjcm9zc09yaWdpbk1vZGUsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwg
Y29uc3QgQXRvbVN0cmluZyYgaW5pdGlhdG9yTmFtZSwgYm9vbCBpc0luVXNlckFnZW50U2hhZG93
VHJlZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCAwNTc1OGI2MDBj
NzUyMmI0N2YzNjRiYTZhMThkMzVmMTczMTEwN2Y5Li41ZTk5ZjBmNTc3N2IzYjIxNThkZDBmYTRi
YzM4Mjc3NmNkYjM0ODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC00
Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTG9hZGFibGVDbGFzc2ljU2NyaXB0LmgiCiAjaW5jbHVk
ZSAiTG9hZGFibGVNb2R1bGVTY3JpcHQuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5Lmgi
CisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGVuZGluZ1Nj
cmlwdC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUg
IlNWR1NjcmlwdEVsZW1lbnQuaCIKQEAgLTM1MSw4ICszNTIsMTEgQEAgYm9vbCBTY3JpcHRFbGVt
ZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQ
b3NpdGlvbikKICAgICAgICAgICAgIHNjcmlwdENoYXJzZXQoKSwKICAgICAgICAgICAgIG1fZWxl
bWVudC5sb2NhbE5hbWUoKSwKICAgICAgICAgICAgIG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hh
ZG93VHJlZSgpKTsKLSAgICAgICAgc2NyaXB0LT5sb2FkKG1fZWxlbWVudC5kb2N1bWVudCgpLCBt
b2R1bGVTY3JpcHRSb290VVJMKTsKICAgICAgICAgbV9sb2FkYWJsZVNjcmlwdCA9IFdURk1vdmUo
c2NyaXB0KTsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCku
ZnJhbWUoKSkgeworICAgICAgICAgICAgYXV0byYgc2NyaXB0ID0gZG93bmNhc3Q8TG9hZGFibGVN
b2R1bGVTY3JpcHQ+KCptX2xvYWRhYmxlU2NyaXB0LmdldCgpKTsKKyAgICAgICAgICAgIGZyYW1l
LT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KHNjcmlwdCwgbW9kdWxlU2NyaXB0Um9vdFVSTC5z
dHJpbmcoKSwgbWFrZVJlZihzY3JpcHQucGFyYW1ldGVycygpKSk7CisgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0zNjcsOCArMzcxLDkgQEAgYm9vbCBTY3JpcHRF
bGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3Rh
cnRQb3NpdGlvbikKICAgICBpZiAoIWNvbnRlbnRTZWN1cml0eVBvbGljeS5hbGxvd0lubGluZVNj
cmlwdChtX2VsZW1lbnQuZG9jdW1lbnQoKS51cmwoKS5zdHJpbmcoKSwgbV9zdGFydExpbmVOdW1i
ZXIsIHNvdXJjZUNvZGUuc291cmNlKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpLCBoYXNLbm93
bk5vbmNlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc2NyaXB0LT5sb2FkKG1fZWxl
bWVudC5kb2N1bWVudCgpLCBzb3VyY2VDb2RlKTsKICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RG
TW92ZShzY3JpcHQpOworICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgp
LmZyYW1lKCkpCisgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KGRvd25j
YXN0PExvYWRhYmxlTW9kdWxlU2NyaXB0PigqbV9sb2FkYWJsZVNjcmlwdC5nZXQoKSksIHNvdXJj
ZUNvZGUpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhy
ZWFkYWJsZUxvYWRlci5jcHAKaW5kZXggMjcxN2M4NjFjNzRiMGYyYWViY2RlNDA4NzAwZTJhOWEw
MzczNzU5NS4uMWI2NTMyYzNiMGVhYTgwZDliZDQ2YzZkNDMyMTM2OTYyMWMwMTliYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMTAxLDEwICsxMDEs
MTAgQEAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnM6Omlz
b2xhdGVkQ29weSgpIGNvbnN0CiB9CiAKIAotUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IFRocmVh
ZGFibGVMb2FkZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUaHJl
YWRhYmxlTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNv
bnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBTdHJpbmcmJiByZWZlcnJlcikK
K1JlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYgY2xpZW50
LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9u
cyYgb3B0aW9ucywgU3RyaW5nJiYgcmVmZXJyZXIsIFN0cmluZyYmIHRhc2tNb2RlKQogewogICAg
IGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkgfHwgKGlzPFdvcmtsZXRHbG9iYWxT
Y29wZT4oY29udGV4dCkgJiYgZG93bmNhc3Q8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS53
b3JrZXJPcldvcmtsZXRUaHJlYWQoKSkpCi0gICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxl
TG9hZGVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmPihj
b250ZXh0KSwgY2xpZW50LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpLCBXVEZNb3ZlKHJl
cXVlc3QpLCBvcHRpb25zLCBXVEZNb3ZlKHJlZmVycmVyKSk7CisgICAgICAgIHJldHVybiBXb3Jr
ZXJUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8V29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUmPihjb250ZXh0KSwgY2xpZW50LCBXVEZNb3ZlKHRhc2tNb2RlKSwgV1RGTW92ZShy
ZXF1ZXN0KSwgb3B0aW9ucywgV1RGTW92ZShyZWZlcnJlcikpOwogCiAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gbnVsbHB0cjsKICAgICBpZiAoaXM8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCmluZGV4IGMyYjI0NWMz
ZWJiOGJjOTMwZWY0ZDE3MmJhMTUwOWExNzlmMWQ3YTYuLjFhYzcwNGI0YzNiNTBiMGZmZGEwMzQy
OGMzY2U3ZGExNDk4ODI2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJl
YWRhYmxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2Fk
ZXIuaApAQCAtNzQsNyArNzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFRocmVhZGFibGVMb2FkZXIpOwogICAgIHB1YmxpYzoKICAgICAgICAg
c3RhdGljIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBjb25zdCBU
aHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYpOwotICAgICAgICBzdGF0aWMgUmVmUHRyPFRocmVhZGFi
bGVMb2FkZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGhyZWFkYWJsZUxvYWRl
ckNsaWVudCYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9u
cyYsIFN0cmluZyYmIHJlZmVycmVyID0gU3RyaW5nKCkpOworICAgICAgICBzdGF0aWMgUmVmUHRy
PFRocmVhZGFibGVMb2FkZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGhyZWFk
YWJsZUxvYWRlckNsaWVudCYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9h
ZGVyT3B0aW9ucyYsIFN0cmluZyYmIHJlZmVycmVyID0gU3RyaW5nKCksIFN0cmluZyYmIHRhc2tN
b2RlID0geyB9KTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUlzRG9uZSgpID0gMDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmNwcAppbmRleCA2MmY5MTdhMzY3ODE5ZGVjM2NkNDEwZDk3NjY5NWNlZTYyZjZkNGI5Li43YjZm
ODY5ZTljNGQ2ODNmMDE3Y2Y3ZWU0M2YwZmZjOTI3Y2IwYWI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXIuY3BwCkBAIC03MCw2ICs3MCw4IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAg
LCBtX2lkZW50aWZpZXIoIndvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6
OmNyZWF0ZUlkZW50aWZpZXIoKSkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNj
b3BlUHJveHk6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxh
Z3MpCisgICAgLCBtX3R5cGUob3B0aW9ucy50eXBlKQorICAgICwgbV9jcmVkZW50aWFscyhvcHRp
b25zLmNyZWRlbnRpYWxzKQogewogICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAg
aWYgKCFhZGRlZExpc3RlbmVyKSB7CkBAIC0xMTMsMTAgKzExNSwxMyBAQCBFeGNlcHRpb25PcjxS
ZWY8V29ya2VyPj4gV29ya2VyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgSlNDOjpSdQogCiAgICAgRmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKICAgICBmZXRjaE9w
dGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbjsKKyAgICBpZiAod29y
a2VyLT5tX3R5cGUgPT0gV29ya2VyVHlwZTo6TW9kdWxlKQorICAgICAgICBmZXRjaE9wdGlvbnMu
Y3JlZGVudGlhbHMgPSB3b3JrZXItPm1fY3JlZGVudGlhbHM7CiAgICAgZmV0Y2hPcHRpb25zLmNh
Y2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKICAgICBmZXRjaE9wdGlvbnMucmVk
aXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CiAgICAgZmV0Y2hPcHRpb25z
LmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyOwotICAgIHdv
cmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3Zl
KHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVu
Zm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgd29ya2VyKTsKKyAgICB3b3JrZXIt
Pm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1
ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNl
bWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsIHdvcmtlci5nZXQoKSwgV29ya2VyUnVuTG9v
cDo6ZGVmYXVsdE1vZGUoKSk7CisKICAgICByZXR1cm4gd29ya2VyOwogfQogCkBAIC0yMTUsNyAr
MjIwLDcgQEAgdm9pZCBXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICBSZWZlcnJlclBvbGlj
eSByZWZlcnJlclBvbGljeSA9IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZzsKICAgICBpZiAo
YXV0byBwb2xpY3kgPSBwYXJzZVJlZmVycmVyUG9saWN5KG1fc2NyaXB0TG9hZGVyLT5yZWZlcnJl
clBvbGljeSgpLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6SFRUUEhlYWRlcikpCiAgICAgICAgIHJl
ZmVycmVyUG9saWN5ID0gKnBvbGljeTsKLSAgICBtX2NvbnRleHRQcm94eS5zdGFydFdvcmtlckds
b2JhbFNjb3BlKG1fc2NyaXB0TG9hZGVyLT51cmwoKSwgbV9uYW1lLCBjb250ZXh0LT51c2VyQWdl
bnQobV9zY3JpcHRMb2FkZXItPnVybCgpKSwgaXNPbmxpbmUsIG1fc2NyaXB0TG9hZGVyLT5zY3Jp
cHQoKSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3Nob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgbV93b3JrZXJDcmVhdGlvblRpbWUsIHJl
ZmVycmVyUG9saWN5LCBtX3J1bnRpbWVGbGFncyk7CisgICAgbV9jb250ZXh0UHJveHkuc3RhcnRX
b3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRlci0+cmVzcG9uc2VVUkwoKSwgbV9uYW1lLCBj
b250ZXh0LT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlVVJMKCkpLCBpc09ubGlu
ZSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMsIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBt
X3dvcmtlckNyZWF0aW9uVGltZSwgcmVmZXJyZXJQb2xpY3ksIG1fdHlwZSwgbV9jcmVkZW50aWFs
cywgbV9ydW50aW1lRmxhZ3MpOwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0
SW1wb3J0ZWQoKmNvbnRleHQsIG1fc2NyaXB0TG9hZGVyLT5pZGVudGlmaWVyKCksIG1fc2NyaXB0
TG9hZGVyLT5zY3JpcHQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCmluZGV4IDUzZjVl
NmZmZjI3YzlmYTNlNWMwZTAxZjBmNmM0MmM2Y2I2ZjlkMGUuLjM4YTYyM2E5OGRiYTM1ZmY4MDEz
Y2Q2ZmM4Yzg1YzgxMDIwNTAyMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaApAQCAtMjksOSAr
MjksMTEgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5o
IgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVBvcnQuaCIKICNpbmNsdWRlICJQb3N0TWVzc2FnZU9wdGlvbnMuaCIKICNpbmNsdWRlICJXb3Jr
ZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25p
Y1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTU1LDYgKzU3LDggQEAgY2xh
c3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0LCBwcml2YXRlIFdvcmsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtlcik7
CiBwdWJsaWM6CiAgICAgc3RydWN0IE9wdGlvbnMgeworICAgICAgICBXb3JrZXJUeXBlIHR5cGU7
CisgICAgICAgIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwogICAgICAgICBT
dHJpbmcgbmFtZTsKICAgICB9OwogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IE9wdGlvbnMmKTsKQEAgLTc5LDYgKzgzLDggQEAgY2xhc3MgV29y
a2VyIGZpbmFsIDogcHVibGljIEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
LCBwcml2YXRlIFdvcmsKICAgICB2b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5j
dGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4mJik7CiAjZW5kaWYKIAorICAgIFdv
cmtlclR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IFdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSlNDOjpSdW50aW1lRmxh
Z3MsIGNvbnN0IE9wdGlvbnMmKTsKIApAQCAtMTEyLDYgKzExOCw4IEBAIGNsYXNzIFdvcmtlciBm
aW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJp
dmF0ZSBXb3JrCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fdHJh
bnNmb3JtZXJzOwogI2VuZGlmCisgICAgV29ya2VyVHlwZSBtX3R5cGUgeyBXb3JrZXJUeXBlOjpD
bGFzc2ljIH07CisgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgbV9jcmVkZW50aWFscyB7IEZl
dGNoUmVxdWVzdENyZWRlbnRpYWxzOjpTYW1lT3JpZ2luIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKaW5kZXggNDVkNmEwODY3ODU0ZWU0
MDRkZTdlN2QwMTI0OGNlYmY0NGRjYTdlZC4uNzAyMTc5NmRmNTA0YWRmOGU2Yjk1ODlhY2U5ZjE0
NDgyMWYyOTVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbApAQCAtMzgsNiArMzgsOCBA
QAogfTsKIAogZGljdGlvbmFyeSBXb3JrZXJPcHRpb25zIHsKKyAgICBXb3JrZXJUeXBlIHR5cGUg
PSAiY2xhc3NpYyI7CisgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMgPSAi
c2FtZS1vcmlnaW4iOyAvLyBjcmVkZW50aWFscyBpcyBvbmx5IHVzZWQgaWYgdHlwZSBpcyAibW9k
dWxlIgogICAgIERPTVN0cmluZyBuYW1lID0gIiI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGRiYWIzNDhlODBjOWRlNTBiZDIxNTc3
N2ExNGEzOWEwZjcwZTQ5YzcuLjM3ZDJmY2Y5MmRhM2UzYTk5MzVkYzk5YTcxNWY1MWI2NjI3N2Ix
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBA
IC03NCw2ICs3NCw3IEBAIFdvcmtlckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZShXb3Jr
ZXJUaHJlYWRUeXBlIHR5cGUsIGNvbnN0IFdvcmtlclBhcmFtZXRlCiAgICAgLCBtX3BlcmZvcm1h
bmNlKFBlcmZvcm1hbmNlOjpjcmVhdGUodGhpcywgcGFyYW1zLnRpbWVPcmlnaW4pKQogICAgICwg
bV9yZWZlcnJlclBvbGljeShwYXJhbXMucmVmZXJyZXJQb2xpY3kpCiAgICAgLCBtX3NldHRpbmdz
VmFsdWVzKHBhcmFtcy5zZXR0aW5nc1ZhbHVlcykKKyAgICAsIG1fd29ya2VyVHlwZShwYXJhbXMu
d29ya2VyVHlwZSkKIHsKICNpZiAhRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgVU5VU0VE
X1BBUkFNKGNvbm5lY3Rpb25Qcm94eSk7CkBAIC0yNzQsNiArMjc1LDExIEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IFdvcmtlckdsb2JhbFNjb3BlOjppbXBvcnRTY3JpcHRzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiB1cmxzKQogewogICAgIEFTU0VSVChjb250ZW50U2VjdXJpdHlQb2xpY3koKSk7CiAKKyAg
ICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93b3JrZXJzLmh0bWwj
aW1wb3J0aW5nLXNjcmlwdHMtYW5kLWxpYnJhcmllcworICAgIC8vIDEuIElmIHdvcmtlciBnbG9i
YWwgc2NvcGUncyB0eXBlIGlzICJtb2R1bGUiLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24u
CisgICAgaWYgKG1fd29ya2VyVHlwZSA9PSBXb3JrZXJUeXBlOjpNb2R1bGUpCisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJpbXBvcnRTY3JpcHRzIGNhbm5vdCBiZSB1c2Vk
IGlmIHdvZXJrZXIgdHlwZSBpcyBcIm1vZHVsZVwiIl9zIH07CisKICAgICBWZWN0b3I8VVJMPiBj
b21wbGV0ZWRVUkxzOwogICAgIGNvbXBsZXRlZFVSTHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh1
cmxzLnNpemUoKSk7CiAgICAgZm9yIChhdXRvJiBlbnRyeSA6IHVybHMpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCA0NmQ0OWQ5NGM1MjM4ZTQ2ODhk
Mzk1ZDg3YzIwNjNlYjU3MjBkMWJmLi4wZjFkYWJmZjA1YjU4OWEzNzFmZGY0MmUzYjNhYzEyODY1
ODc4MzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBA
IC0xNjMsOCArMTYzLDYgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxl
bWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgQmFzZTYKICAgICBtdXRhYmxlIFJl
ZlB0cjxXb3JrZXJMb2NhdGlvbj4gbV9sb2NhdGlvbjsKICAgICBtdXRhYmxlIFJlZlB0cjxXb3Jr
ZXJOYXZpZ2F0b3I+IG1fbmF2aWdhdG9yOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck9y
V29ya2xldFNjcmlwdENvbnRyb2xsZXI+IG1fc2NyaXB0OwotCiAgICAgYm9vbCBtX2lzT25saW5l
OwogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7
CiAKQEAgLTE4Nyw2ICsxODUsNyBAQCBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBT
dXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBCYXNlNgogICAgIHN0ZDo6
dW5pcXVlX3B0cjxDU1NWYWx1ZVBvb2w+IG1fY3NzVmFsdWVQb29sOwogICAgIFJlZmVycmVyUG9s
aWN5IG1fcmVmZXJyZXJQb2xpY3k7CiAgICAgU2V0dGluZ3M6OlZhbHVlcyBtX3NldHRpbmdzVmFs
dWVzOworICAgIFdvcmtlclR5cGUgbV93b3JrZXJUeXBlOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJv
eHkuaAppbmRleCA0MDAwM2MzZTAxMDk5OTYwZjY0Nzg2MWU3MDE2ODdkMGUzNzFkNzJkLi5lZDY3
M2FjOGY3YzBlZTU0YzA2MGVjYjU5MjE2MzkwZWQ3MGZlMmNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaApAQCAtNDgsNyArNDgsNyBAQCBj
bGFzcyBXb3JrZXJHbG9iYWxTY29wZVByb3h5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV29ya2Vy
R2xvYmFsU2NvcGVQcm94eSYgY3JlYXRlKFdvcmtlciYpOwogCi0gICAgdmlydHVhbCB2b2lkIHN0
YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmlu
ZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
JiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90
b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBz
Y3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJv
b2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250
ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xp
Y3ksIFdvcmtlclR5cGUsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFn
cykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKE1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb1dv
cmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYm
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwCmluZGV4IDE5ZDRiZTY0OTkyZjMwZDNjY2U3NjU0N2EzZDIyMThhOThjODQyYzMuLjc4ODM1
ODdhN2FmNjIwOWUzZWNjOGU3YjQxYmFkNDdhZGY2MjI0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFdv
cmtlck1lc3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8fCAo
aXM8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGRvd25j
YXN0PFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJlYWQo
KS50aHJlYWQoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpKTsKIH0KIAotdm9pZCBXb3JrZXJNZXNz
YWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGlu
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9v
bCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1Rp
bWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGlt
ZUZsYWdzIHJ1bnRpbWVGbGFncykKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29y
a2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291
cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVy
cmVyUG9saWN5IHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNoUmVx
dWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxh
Z3MpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZCB0byBiZSByZXZpc2l0ZWQgd2hlbiB3ZSBz
dXBwb3J0IG5lc3RlZCB3b3JrZXIgb25lIGRheQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOwpAQCAtODksNyArODksNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpz
dGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogCiAg
ICAgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyID0gZG9jdW1lbnQuc29ja2V0UHJvdmlk
ZXIoKTsKIAotICAgIFdvcmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUs
IGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
LCB0aW1lT3JpZ2luLCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMoKSB9
OworICAgIFdvcmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50
aWZpZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1l
T3JpZ2luLCByZWZlcnJlclBvbGljeSwgd29ya2VyVHlwZSwgY3JlZGVudGlhbHMsIGRvY3VtZW50
LnNldHRpbmdzVmFsdWVzKCkgfTsKICAgICBhdXRvIHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRo
cmVhZDo6Y3JlYXRlKHBhcmFtcywgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAqdGhpcywgc3Rh
cnRNb2RlLCBkb2N1bWVudC50b3BPcmlnaW4oKSwgcHJveHksIHNvY2tldFByb3ZpZGVyLCBydW50
aW1lRmxhZ3MpOwogCiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGM1YjU3
NWI5ZTYxNWIzZjNmNTk2YmZjM2RmNjgzYzg3N2NjNjJiYWIuLmQ5ZTgxZTE1N2EwZjQ4NTJlNDli
NTlkMjU2NmE4YTgwZjVmODE4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV29ya2VyTWVzc2FnaW5n
UHJveHkgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyTWVzc2FnaW5n
UHIKIHByaXZhdGU6CiAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNjb3Bl
UHJveHkuCiAgICAgLy8gKE9ubHkgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgd29ya2VyIG9i
amVjdCB0aHJlYWQuKQotICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwm
IHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
Ym9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBv
bGljeSwgSlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9i
YWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2Rl
LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1l
T3JpZ2luLCBSZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlh
bHMsIEpTQzo6UnVudGltZUZsYWdzKSBmaW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckds
b2JhbFNjb3BlKCkgZmluYWw7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFsU2Nv
cGUoTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJikgZmluYWw7CiAgICAgdm9pZCBwb3N0VGFza1Rv
V29ya2VyR2xvYmFsU2NvcGUoRnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+
JiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCAyMzg0YTVhOGM3ZDJhMzAyZWVlNWNiNDA1ZTEwNWUw
MjVjOTg0M2NjLi5mNGY0YjI3NDY2ZjlhMzBiMjhiOGIyMWY2ZjJiZWY4YmRlOTM4NTE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNj
b3BlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
Ildvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAKKyNpbmNsdWRlICJTY3JpcHRNb2R1bGVM
b2FkZXIuaCIKICNpbmNsdWRlICJXb3JrZXJFdmVudExvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlci5oIgpAQCAtMzksNiArNDAsNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUpOwogCiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoV29ya2VyVGhyZWFkVHlwZSB0eXBlLCBSZWY8
SlNDOjpWTT4mJiB2bSwgV29ya2VyT3JXb3JrbGV0VGhyZWFkKiB0aHJlYWQpCiAgICAgOiBtX3Nj
cmlwdChtYWtlVW5pcXVlPFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+KHR5cGUsIFdU
Rk1vdmUodm0pLCB0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0
TW9kdWxlTG9hZGVyPigqdGhpcywgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGU6Oldvcmtl
ck9yV29ya2xldCkpCiAgICAgLCBtX3RocmVhZCh0aHJlYWQpCiAgICAgLCBtX2luc3BlY3RvckNv
bnRyb2xsZXIobWFrZVVuaXF1ZTxXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyPigqdGhpcykpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNj
b3BlLmgKaW5kZXggNmMyNDRhMGM0MjdlZTFjOGM2NWZkY2M3NjU5NTJmODc3ZmQ5YjE2Yi4uNTQ0
ZjA0N2FlYzI3ODMyNzQ0ZDBhOGE3MGFmN2U5MzljMzMwOTkyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMzIsNiAr
MzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFdmVudExvb3BUYXNrR3JvdXA7
CitjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXI7CiBjbGFzcyBXb3JrZXJFdmVudExvb3A7CiBjbGFz
cyBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjsKQEAgLTU0LDYgKzU1LDggQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KIAog
ICAgIHVuc2lnbmVkIGxvbmcgY3JlYXRlVW5pcXVlSWRlbnRpZmllcigpIHsgcmV0dXJuIG1fdW5p
cXVlSWRlbnRpZmllcisrOyB9CiAKKyAgICBTY3JpcHRNb2R1bGVMb2FkZXImIG1vZHVsZUxvYWRl
cigpIHsgcmV0dXJuICptX21vZHVsZUxvYWRlcjsgfQorCiAgICAgLy8gU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC4KICAgICBFdmVudExvb3BUYXNrR3JvdXAmIGV2ZW50TG9vcCgpIGZpbmFsOwogICAg
IGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3QgZmluYWw7CkBAIC04OCw2ICs5MSw3IEBAIGNs
YXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQsIHB1YmxpYyBSZWZDb3VuCiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwg
eyBkZXJlZigpOyB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcj4gbV9zY3JpcHQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdE1vZHVsZUxv
YWRlcj4gbV9tb2R1bGVMb2FkZXI7CiAgICAgV29ya2VyT3JXb3JrbGV0VGhyZWFkKiBtX3RocmVh
ZDsKICAgICBSZWZQdHI8V29ya2VyRXZlbnRMb29wPiBtX2V2ZW50TG9vcDsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8RXZlbnRMb29wVGFza0dyb3VwPiBtX2RlZmF1bHRUYXNrR3JvdXA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmNwcAppbmRleCBjZDRlYzI0NjgyNTI1YWFiYzY0MmQ4NzdhMGRhMDExZWJkZTExNDMx
Li5mNzE1MjgxMWJjNDFhNTA3OTBjYTVjNTFjYWRjMjlhMzgzZjNlMGNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5jcHAKQEAgLTM1LDYgKzM1LDkgQEAKICNpbmNsdWRlICJKU0V4ZWNTdGF0ZS5oIgogI2lu
Y2x1ZGUgIkpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0LmgiCisj
aW5jbHVkZSAiTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNo
UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJX
ZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29uc29sZUNsaWVudC5oIgpA
QCAtNDMsNyArNDYsMTIgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb24uaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb25IZWxwZXJzLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvR0NBY3Rpdml0eUNhbGxiYWNrLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xv
Y2suaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTTmF0aXZlU3RkRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU1NjcmlwdEZldGNoUGFyYW1ldGVycy5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTU2NyaXB0RmV0Y2hlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9u
Z0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjI4LDYgKzIzNiwxNDUgQEAg
dm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3Jp
cHRTb3VyY2VDb2RlJiBzb3VyY2VDb2QKICAgICB9CiB9CiAKK3N0YXRpYyBJZGVudGlmaWVyIGpz
VmFsdWVUb01vZHVsZUtleShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJu
IElkZW50aWZpZXI6OmZyb21VaWQoanNDYXN0PFN5bWJvbCo+KHZhbHVlKS0+cHJpdmF0ZU5hbWUo
KSk7CisgICAgQVNTRVJUKHZhbHVlLmlzU3RyaW5nKCkpOworICAgIHJldHVybiBhc1N0cmluZyh2
YWx1ZSktPnRvSWRlbnRpZmllcihsZXhpY2FsR2xvYmFsT2JqZWN0KTsKK30KKworSlNDOjpKU1Zh
bHVlIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKEpTQzo6
SlNNb2R1bGVSZWNvcmQmIG1vZHVsZVJlY29yZCkKK3sKKyAgICBhdXRvJiBnbG9iYWxPYmplY3Qg
PSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworICAgIHJldHVybiBtb2R1bGVS
ZWNvcmQuZXZhbHVhdGUoJmdsb2JhbE9iamVjdCk7Cit9CisKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1
bHQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZVN5bmNocm9ub3Vz
bHkoTG9hZGFibGVNb2R1bGVTY3JpcHQmIG1vZHVsZVNjcmlwdCwgY29uc3QgU2NyaXB0U291cmNl
Q29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkKKyAg
ICAgICAgcmV0dXJuIE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQ7CisKKyAgICBpbml0U2NyaXB0SWZO
ZWVkZWQoKTsKKworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBl
ci5nZXQoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xk
ZXIgbG9jayB7IHZtIH07CisKKyAgICBSZWZQdHI8TG9hZGFibGVNb2R1bGVTY3JpcHQ+IG1vZHVs
ZVNjcmlwdFJlZjsKKyAgICB7CisgICAgICAgIGF1dG8mIHByb21pc2UgPSBKU0V4ZWNTdGF0ZTo6
bG9hZE1vZHVsZShnbG9iYWxPYmplY3QsIHNvdXJjZUNvZGUuanNTb3VyY2VDb2RlKCksIEpTQzo6
SlNTY3JpcHRGZXRjaGVyOjpjcmVhdGUodm0sIHsgJm1vZHVsZVNjcmlwdCB9KSk7CisKKyAgICAg
ICAgbW9kdWxlU2NyaXB0UmVmID0gJm1vZHVsZVNjcmlwdDsKKworICAgICAgICBhdXRvJiBmdWxm
aWxsSGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmpl
Y3QsIDEsIFN0cmluZygpLCBbbW9kdWxlU2NyaXB0UmVmXShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgLT4gSlNDOjpFbmNvZGVkSlNWYWx1ZSB7Cisg
ICAgICAgICAgICAvLyBkYXRhTG9nTG4oIkZVTEZJTExFRCIpOworICAgICAgICAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOworICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1Zh
bHVlVG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKKyAg
ICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgICAgICBt
b2R1bGVTY3JpcHRSZWYtPm5vdGlmeUxvYWRDb21wbGV0ZWQoKm1vZHVsZUtleS5pbXBsKCkpOwor
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0SGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0
aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbbW9kdWxlU2NyaXB0
UmVmXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkg
eworICAgICAgICAgICAgLy8gZGF0YUxvZ0xuKCJSRUpFQ1RFRCIpOworICAgICAgICAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgSlNWYWx1ZSBlcnJvclZhbHVl
ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICAgICAgICAgIGlmIChlcnJvclZhbHVlLmlz
T2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvKiBvYmplY3QgPSBKU0M6OmFzT2JqZWN0
KGVycm9yVmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIGZhaWx1cmVLaW5kVmFs
dWUgPSBvYmplY3QtPmdldERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEmPigq
dm0uY2xpZW50RGF0YSkuYnVpbHRpbk5hbWVzKCkuZmFpbHVyZUtpbmRQcml2YXRlTmFtZSgpKSkg
eworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGhvc3QgcHJvcGFnYXRlZCBlcnJvciBp
biB0aGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZS4KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNo
IChzdGF0aWNfY2FzdDxNb2R1bGVGZXRjaEZhaWx1cmVLaW5kPihmYWlsdXJlS2luZFZhbHVlLmFz
SW50MzIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVL
aW5kOjpXYXNFcnJvcmVkOgorICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlU2NyaXB0UmVm
LT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6bnVsbG9wdAorICAgICAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZDoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1vZHVsZVNjcmlwdFJlZi0+bm90aWZ5TG9hZFdhc0NhbmNlbGVk
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgbW9kdWxlU2Ny
aXB0UmVmLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAg
ICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAg
ICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVzc2FnZSB7CisgICAgICAgICAgICAg
ICAgICAgIE1lc3NhZ2VTb3VyY2U6OkpTLAorICAgICAgICAgICAgICAgICAgICBNZXNzYWdlTGV2
ZWw6OkVycm9yLAorICAgICAgICAgICAgICAgICAgICByZXRyaWV2ZUVycm9yTWVzc2FnZSgqZ2xv
YmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1ZSwgc2NvcGUpLAorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcHJvbWlzZS50aGVuKCZnbG9iYWxPYmpl
Y3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRsZXIpOworICAgIH0KKyAgICBtX2dsb2Jh
bFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworCisgICAg
Ly8gRHJpdmUgUnVuTG9vcCB1bnRpbCB3ZSBnZXQgZWl0aGVyIG9mICJXb3JrZXIgaXMgdGVybWlu
YXRlZCIsICJMb2FkaW5nIGlzIGRvbmUiLCBvciAiTG9hZGluZyBpcyBmYWlsZWQiLgorICAgIFdv
cmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSBtX2dsb2JhbFNjb3BlLT53b3JrZXJPcldvcmtsZXRUaHJl
YWQoKS0+cnVuTG9vcCgpOworCisgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcmVjZWl2ZSBtZXNz
YWdlcyB0aGF0IGFyZSBub3QgcmVsYXRlZCB0byBhc3luY2hyb25vdXMgcmVzb3VyY2UgbG9hZGlu
Zy4KKyAgICAvLyBPdGhlcndpc2UsIGEgd29ya2VyIGRpc2NhcmRzIHNvbWUgbWVzc2FnZXMgZnJv
bSB0aGUgbWFpbiB0aHJlYWQgaGVyZSBpbiBhIHJhY3kgd2F5LgorICAgIC8vIEZvciBleGFtcGxl
LCB0aGUgbWFpbiB0aHJlYWQgY2FuIHBvc3RNZXNzYWdlIGp1c3QgYWZ0ZXIgY3JlYXRpbmcgYSBX
b3JrZXIuIEluIHRoYXQgY2FzZSwgcG9zdE1lc3NhZ2UncworICAgIC8vIHRhc2sgaXMgcXVldWVk
IGluIFdvcmtlclJ1bkxvb3AgYmVmb3JlIHN0YXJ0IHJ1bm5pbmcgbW9kdWxlIHNjcmlwdHMuIFRo
aXMgdGFzayBzaG91bGQgbm90IGJlIGRpc2NhcmRlZAorICAgIC8vIGluIHRoZSBmb2xsb3dpbmcg
ZHJpdmluZyBvZiB0aGUgUnVuTG9vcCB3aGljaCBtYWlubHkgYXR0ZW1wdCB0byBjb2xsZWN0IGlu
aXRpYWwgbG9hZCBvZiBtb2R1bGUgc2NyaXB0cy4KKyAgICBTdHJpbmcgdGFza01vZGUgPSAibG9h
ZE1vZHVsZXNJbldvcmtlck9yV29ya2xldE1vZGUiX3M7CisgICAgTWVzc2FnZVF1ZXVlV2FpdFJl
c3VsdCByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQ7CisgICAgd2hpbGUgKCgh
bW9kdWxlU2NyaXB0UmVmLT5pc0xvYWRlZCgpICYmICFtb2R1bGVTY3JpcHRSZWYtPndhc0NhbmNl
bGVkKCkpICYmIHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKSB7CisgICAgICAgIHJl
c3VsdCA9IHJ1bkxvb3AucnVuSW5Nb2RlKG1fZ2xvYmFsU2NvcGUsIHRhc2tNb2RlKTsKKyAgICAg
ICAgaWYgKHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKQorICAgICAgICAgICAgbV9n
bG9iYWxTY29wZS0+ZXZlbnRMb29wKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKKyAg
ICB9CisKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIGFyZSBub3Qgb2ZmZXJpbmcgY2FuY2Vs
bGluZy4KKyAgICAvLyBpZiAoIWxvYWRlci0+ZG9uZSgpICYmIHJlc3VsdCA9PSBNZXNzYWdlUXVl
dWVUZXJtaW5hdGVkKQorICAgIC8vICAgICBsb2FkZXItPmNhbmNlbCgpOworCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKwordm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsaW5r
QW5kRXZhbHVhdGVNb2R1bGUoTG9hZGFibGVNb2R1bGVTY3JpcHQmIG1vZHVsZVNjcmlwdCwgY29u
c3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlv
bk1lc3NhZ2UpCit7CisgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZ2xvYmFsT2Jq
ZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKworICAgIE5ha2VkUHRy
PEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICBKU0V4ZWNTdGF0ZTo6bGlu
a0FuZEV2YWx1YXRlTW9kdWxlKGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwg
bW9kdWxlU2NyaXB0Lm1vZHVsZUtleSgpKSwganNVbmRlZmluZWQoKSwgcmV0dXJuZWRFeGNlcHRp
b24pOworICAgIGlmICgocmV0dXJuZWRFeGNlcHRpb24gJiYgaXNUZXJtaW5hdGVkRXhlY3V0aW9u
RXhjZXB0aW9uKHZtLCByZXR1cm5lZEV4Y2VwdGlvbikpIHx8IGlzVGVybWluYXRpbmdFeGVjdXRp
b24oKSkgeworICAgICAgICBmb3JiaWRFeGVjdXRpb24oKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbikgeworICAgICAgICBpZiAobV9nbG9iYWxT
Y29wZS0+Y2FuSW5jbHVkZUVycm9yRGV0YWlscyhzb3VyY2VDb2RlLmNhY2hlZFNjcmlwdCgpLCBz
b3VyY2VDb2RlLnVybCgpLnN0cmluZygpKSkgeworICAgICAgICAgICAgLy8gRklYTUU6IEl0J3Mg
bm90IGdyZWF0IHRoYXQgdGhpcyBjYW4gcnVuIGFyYml0cmFyeSBjb2RlIHRvIHN0cmluZy1pZnkg
dGhlIHZhbHVlIG9mIHRoZSBleGNlcHRpb24uCisgICAgICAgICAgICAvLyBEbyB3ZSBuZWVkIHRv
IGRvIGFueXRoaW5nIHRvIGhhbmRsZSB0aGF0IHByb3Blcmx5LCBpZiBpdCwgc2F5LCByYWlzZXMg
YW5vdGhlciBleGNlcHRpb24/CisgICAgICAgICAgICBpZiAocmV0dXJuZWRFeGNlcHRpb25NZXNz
YWdlKQorICAgICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSByZXR1cm5l
ZEV4Y2VwdGlvbi0+dmFsdWUoKS50b1dURlN0cmluZygmZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgZGV0YWlsZWQgZXJyb3Igd2l0
aCBhIGdlbmVyaWMgZXJyb3IuCisgICAgICAgICAgICBTdHJpbmcgZ2VuZXJpY0Vycm9yTWVzc2Fn
ZSB7ICJTY3JpcHQgZXJyb3IuIl9zIH07CisgICAgICAgICAgICBpZiAocmV0dXJuZWRFeGNlcHRp
b25NZXNzYWdlKQorICAgICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBn
ZW5lcmljRXJyb3JNZXNzYWdlOworICAgICAgICAgICAgcmV0dXJuZWRFeGNlcHRpb24gPSBKU0M6
OkV4Y2VwdGlvbjo6Y3JlYXRlKHZtLCBjcmVhdGVFcnJvcigmZ2xvYmFsT2JqZWN0LCBnZW5lcmlj
RXJyb3JNZXNzYWdlKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1l
IEpTR2xvYmFsU2NvcGVQcm90b3R5cGUsIHR5cGVuYW1lIEpTR2xvYmFsU2NvcGUsIHR5cGVuYW1l
IEdsb2JhbFNjb3BlPgogdm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0
U2NyaXB0V2l0aFN1YmNsYXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggYzQ5MzAxYWVkM2Rk
MDg5ZGE3OTczMjc2MGNhZjJmN2I2NGRiMTFiNi4uYzM2ZDE5ZjA5OGY1OTllNTVlYTAzODY0YjJk
ZTg4M2VmNTQ2ZGM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVl
Lmg+CiAjaW5jbHVkZSA8d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDQs
NiArNDUsNyBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBMb2FkYWJsZU1vZHVsZVNjcmlwdDsKIGNs
YXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBXb3JrZXJDb25zb2xlQ2xpZW50OwogY2xhc3Mg
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU7CkBAIC05NCw2ICs5NiwxMSBAQCBjbGFzcyBXb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxw
dHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIE5ha2VkUHRy
PEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0cmluZyogcmV0dXJuZWRFeGNl
cHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVNb2R1
bGUoSlNDOjpKU01vZHVsZVJlY29yZCYpOworCisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1
bGUoTG9hZGFibGVNb2R1bGVTY3JpcHQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3RyaW5n
KiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKKyAgICBNZXNzYWdlUXVldWVX
YWl0UmVzdWx0IGxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KExvYWRhYmxlTW9kdWxlU2NyaXB0Jiwg
Y29uc3QgU2NyaXB0U291cmNlQ29kZSYpOworCiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUqIGdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxTY29w
ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAK
aW5kZXggM2E0ZGFlZmMzOTAyYmRiMmVhODRmYzU4ZDdlNDJmODNlNWYwN2UyZi4uNDAyZmRmMjZk
OWY2MzM5MmU0NDM5YmE2MDFkNjU3Zjc2N2Q3MDYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIE9wdGlvbmFs
PEV4Y2VwdGlvbj4gV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkU3luY2hyb25vdXNseShTY3JpcHRF
eGVjdXRpb25Db250ZXh0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotdm9pZCBXb3Jr
ZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3JpcHRSZXF1ZXN0
LCBGZXRjaE9wdGlvbnMmJiBmZXRjaE9wdGlvbnMsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9y
Y2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01v
ZGUgc2VydmljZVdvcmtlck1vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50KQor
dm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3Jp
cHRSZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBmZXRjaE9wdGlvbnMsIENvbnRlbnRTZWN1cml0eVBv
bGljeUVuZm9yY2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNl
V29ya2Vyc01vZGUgc2VydmljZVdvcmtlck1vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYg
Y2xpZW50LCBTdHJpbmcmJiB0YXNrTW9kZSkKIHsKICAgICBtX2NsaWVudCA9ICZjbGllbnQ7CiAg
ICAgbV91cmwgPSBzY3JpcHRSZXF1ZXN0LnVybCgpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQg
V29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgc2NyaXB0RXhlY3V0CiAKICAgICAvLyBEdXJpbmcgY3JlYXRlLCBjYWxsYmFja3MgbWF5
IGhhcHBlbiB3aGljaCByZW1vdmUgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0Lgog
ICAgIFJlZjxXb3JrZXJTY3JpcHRMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwotICAgIG1f
dGhyZWFkYWJsZUxvYWRlciA9IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzY3JpcHRFeGVjdXRp
b25Db250ZXh0LCAqdGhpcywgV1RGTW92ZSgqcmVxdWVzdCksIG9wdGlvbnMpOworICAgIG1fdGhy
ZWFkYWJsZUxvYWRlciA9IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25D
b250ZXh0LCAqdGhpcywgV1RGTW92ZSgqcmVxdWVzdCksIG9wdGlvbnMsIHsgfSwgV1RGTW92ZSh0
YXNrTW9kZSkpOwogfQogCiBjb25zdCBVUkwmIFdvcmtlclNjcmlwdExvYWRlcjo6cmVzcG9uc2VV
UkwoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3Jp
cHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgK
aW5kZXggN2ZkZDBiM2Y2YTAxYzJkYjU3NzI0YTkwYjNiYjk4NDBmMWU2OGU1Zi4uMGJhZGRiZmEw
NTg1OTRjNjMxY2IwZGExM2ZhNDJmYzYxNmZlZDg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCkBAIC01OCw3ICs1OCw3IEBAIGNsYXNzIFdvcmtlclNj
cmlwdExvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj4sIHB1Ymxp
YyBUaHJlYWRhCiAgICAgfQogCiAgICAgT3B0aW9uYWw8RXhjZXB0aW9uPiBsb2FkU3luY2hyb25v
dXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgVVJMJiwgRmV0Y2hPcHRpb25zOjpN
b2RlLCBGZXRjaE9wdGlvbnM6OkNhY2hlLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVu
dCwgY29uc3QgU3RyaW5nJiBpbml0aWF0b3JJZGVudGlmaWVyKTsKLSAgICB2b2lkIGxvYWRBc3lu
Y2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZl
dGNoT3B0aW9ucyYmLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdv
cmtlcnNNb2RlLCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmKTsKKyAgICB2b2lkIGxvYWRBc3lu
Y2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZl
dGNoT3B0aW9ucyYmLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdv
cmtlcnNNb2RlLCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmLCBTdHJpbmcmJiB0YXNrTW9kZSk7
CiAKICAgICB2b2lkIG5vdGlmeUVycm9yKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmNwcAppbmRleCA3Mjc5MGEwMzMyMjYxOWU2ZWU3ZTYxNmE4YmRlMThiZDU1MmE1Nzgz
Li4zZTk2OGI1NmJhNjFjNjJjNGJjYjQxMTVlZGFmYjA1NDc4NjRjZGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0yOCwxMCArMjgsMTIgQEAKICNpbmNsdWRl
ICJXb3JrZXJUaHJlYWQuaCIKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94eS5oIgorI2lu
Y2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29k
ZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTUsNiArNTcsOCBAQCBXb3JrZXJQYXJhbWV0ZXJzIFdv
cmtlclBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgICAgIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwKICAgICAgICAgdGltZU9yaWdpbiwKICAg
ICAgICAgcmVmZXJyZXJQb2xpY3ksCisgICAgICAgIHdvcmtlclR5cGUsCisgICAgICAgIGNyZWRl
bnRpYWxzLAogICAgICAgICBzZXR0aW5nc1ZhbHVlcy5pc29sYXRlZENvcHkoKQogICAgIH07CiB9
CkBAIC0xMjMsOSArMTI3LDMzIEBAIGJvb2wgV29ya2VyVGhyZWFkOjpzaG91bGRXYWl0Rm9yV2Vi
SW5zcGVjdG9yT25TdGFydHVwKCkgY29uc3QKIAogdm9pZCBXb3JrZXJUaHJlYWQ6OmV2YWx1YXRl
U2NyaXB0SWZOZWNlc3NhcnkoU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQogewotICAgIGdsb2Jh
bFNjb3BlKCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERh
dGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZl
eGNlcHRpb25NZXNzYWdlKTsKLQotICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAg
IC8vIFdlIGFyZSBjdXJyZW50bHkgaG9sZGluZyBvbmx5IHRoZSBpbml0aWFsIHNjcmlwdCBjb2Rl
LiBJZiB0aGUgV29ya2VyVHlwZSBpcyBNb2R1bGUsIHdlIHNob3VsZCBmZXRjaCB0aGUgZW50aXJl
IGdyYXBoIGJlZm9yZSBleGVjdXRpbmcgdGhlIHJlc3Qgb2YgdGhpcy4KKyAgICAvLyBXZSBpbnZv
a2UgbW9kdWxlIGxvYWRlciBhcyBpZiB3ZSBhcmUgZXhlY3V0aW5nIGlubGluZSBtb2R1bGUgc2Ny
aXB0IHRhZyBpbiBEb2N1bWVudC4KKworICAgIGlmIChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMud29y
a2VyVHlwZSA9PSBXb3JrZXJUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgIGdsb2JhbFNjb3BlKCkt
PnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJj
ZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25N
ZXNzYWdlKTsKKyAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgLy8gRklYTUUgY3Jvc3NPcmlnaW4gbW9kZSBzaG91bGQgYmUgY29udmVydGVk
LgorICAgICAgICAvLyBGSVhNRSBmaXggaW5pdGlhdG9yIG5hbWUuCisgICAgICAgIC8vIEZJWE1F
IHBhc3MgVVJMIHRvIG1vZHVsZSBsb2FkZXIuCisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291
cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFy
YW1zLnNjcmlwdFVSTCksIHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVs
ZSk7CisgICAgICAgIGF1dG8gbW9kdWxlU2NyaXB0ID0gTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmNy
ZWF0ZShlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpLCBtX3N0YXJ0dXBEYXRhLT5wYXJhbXMu
cmVmZXJyZXJQb2xpY3ksIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyOjpkZWZhdWx0
Q3Jvc3NPcmlnaW5Nb2RlRm9yTW9kdWxlLCBlbXB0eVN0cmluZygpLCBlbXB0eUF0b20oKSwgZmFs
c2UpOworICAgICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9IGdsb2JhbFNjb3Bl
KCktPnNjcmlwdCgpLT5sb2FkTW9kdWxlU3luY2hyb25vdXNseShtb2R1bGVTY3JpcHQuZ2V0KCks
IHNvdXJjZUNvZGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0
ZWQpIHsKKyAgICAgICAgICAgIGlmIChPcHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6RXJyb3I+IGVy
cm9yID0gbW9kdWxlU2NyaXB0LT5lcnJvcigpKSB7CisgICAgICAgICAgICAgICAgaWYgKE9wdGlv
bmFsPExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVzc2FnZT4gbWVzc2FnZSA9IGVycm9yLT5jb25z
b2xlTWVzc2FnZSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uTWVzc2FnZSA9IG1lc3Nh
Z2UtPm1lc3NhZ2U7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBl
eGNlcHRpb25NZXNzYWdlID0gIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfczsK
KyAgICAgICAgICAgICAgICBnbG9iYWxTY29wZSgpLT5yZXBvcnRFeGNlcHRpb24oZXhjZXB0aW9u
TWVzc2FnZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0pOworICAgICAgICAgICAgfSBlbHNlIGlm
ICghbW9kdWxlU2NyaXB0LT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICAgICAgLy8gRXZh
bHVhdGUuCisgICAgICAgICAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmxpbmtBbmRF
dmFsdWF0ZU1vZHVsZShtb2R1bGVTY3JpcHQuZ2V0KCksIHNvdXJjZUNvZGUsICZleGNlcHRpb25N
ZXNzYWdlKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIAogICAgIC8vIEZyZWUgdGhlIHN0YXJ0dXAg
ZGF0YSB0byBjYXVzZSBpdHMgbWVtYmVyIHZhcmlhYmxlIGRlcmVmJ3MgaGFwcGVuIG9uIHRoZSB3
b3JrZXIncyB0aHJlYWQgKHNpbmNlCiAgICAgLy8gYWxsIHJlZi9kZXJlZnMgb2YgdGhlc2Ugb2Jq
ZWN0cyBhcmUgaGFwcGVuaW5nIG9uIHRoZSB0aHJlYWQgYXQgdGhpcyBwb2ludCkuIE5vdGUgdGhh
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKaW5kZXggODg5MDc5MDhlN2E5Yjgw
OWU4ZjJhNGU0NzNkNzUyZDExZDI5MzdjMC4uOTUxMmVmZGIxOGYzMmE1MGVjYjdmYjU2OTU5ZDYx
ZTg4NzJmYTFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC0yNiw3
ICsyNiwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5o
IgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtlclJ1
bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9VUkwu
aD4KQEAgLTYzLDYgKzY2LDggQEAgc3RydWN0IFdvcmtlclBhcmFtZXRlcnMgewogICAgIGJvb2wg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OwogICAgIE1vbm90b25p
Y1RpbWUgdGltZU9yaWdpbjsKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeTsKKyAg
ICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7CisgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3Jl
ZGVudGlhbHM7CiAgICAgU2V0dGluZ3M6OlZhbHVlcyBzZXR0aW5nc1ZhbHVlczsKIAogICAgIFdv
cmtlclBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVHlwZS5oCmluZGV4IDBiMGVkODYwZDljNzE0MjM4YTJhNWJiOWZkZjQzODQwMmQxNmViZjAu
LjFjMWJiOTQ0ODY3YWRmNGVkNTc4YTI4MTRmYTMzMjMyNmFlZDhhNTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyVHlwZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotZW51bSBjbGFzcyBXb3JrZXJUeXBlIHsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6IHVp
bnQ4X3QgewogICAgIENsYXNzaWMsCiAgICAgTW9kdWxlLAogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCmluZGV4
IGViYmU5NWU4OTI0YzhmMWQ3Mzc1MjVkZWExNjMwYjFmYWQ1NmZiMjcuLjRjN2RkZjRhNGMxMzFl
MGRjZDZiYTA5NTA5YWIyZDk3NTc1ZjMwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaApAQCAtNDcsNyArNDcs
NyBAQCBjbGFzcyBOYXZpZ2F0b3JCYXNlOwogY2xhc3MgU2VydmljZVdvcmtlcjsKIAogZW51bSBj
bGFzcyBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgOiB1aW50OF90OwotZW51bSBjbGFzcyBX
b3JrZXJUeXBlOworZW51bSBjbGFzcyBXb3JrZXJUeXBlIDogdWludDhfdDsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZVByb3h5OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKaW5kZXggZWMz
OWMwZjg0OWE1NGUxYjZkMGJlZTM0YThkN2QxOWNiYTQ1ZTI4OC4uYTRhMTcwMDc5MWY3ODU0MzE4
M2I2MzM2ZjBjNTk1MjBlMThmN2EwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQg
U2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4dChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBGCiAgICAgb3B0aW9ucy5jYWNoZSA9IGNhY2hlUG9saWN5OwogICAg
IG9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpFcnJvcjsKICAgICBv
cHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2VydmljZXdv
cmtlcjsKLSAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdU
Rk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucyksIENvbnRlbnRTZWN1cml0eVBvbGljeUVu
Zm9yY2VtZW50OjpEb05vdEVuZm9yY2UsIFNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSwgKnRoaXMp
OworICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92
ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3Jj
ZW1lbnQ6OkRvTm90RW5mb3JjZSwgU2VydmljZVdvcmtlcnNNb2RlOjpOb25lLCAqdGhpcywgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgU2VydmljZVdv
cmtlckpvYjo6dmFsaWRhdGVTZXJ2aWNlV29ya2VyUmVzcG9uc2UoY29uc3QgU2VydmljZVdvcmtl
ckpvYkRhdGEmIGpvYkRhdGEsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaAppbmRleCA5ZDUwMGY4NWFjYjE4ODQxY2M1NWJl
YTgyMTFkYjE0ZmFkYzk3NDc1Li4yZTM1NTdmYTdkZjY3ZjFiZjk4YzdiN2E1ZGU0YjBhNWE3YmNj
Y2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaApAQCAtMzIsNyArMzIsNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJVcGRhdGVW
aWFDYWNoZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7CitlbnVtIGNsYXNzIFdv
cmtlclR5cGUgOiB1aW50OF90OwogCiBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9w
dGlvbnMgewogICAgIFN0cmluZyBzY29wZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5k
ZXggYzhhN2E5OTcyZjljYzhjMTZhNzk2NzUxMTU1MmY1NDkzYTY4NmY5OC4uMzNjYTBlYzIzYjU4
YTU1MTE4NzY4NDZiYTA3MTgzNTMyYjVjNDdkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHAKQEAgLTczLDggKzczLDkgQEAgY2xhc3MgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkg
OiBwdWJsaWMgV29ya2VyT2JqZWN0UHJveHkgewogLy8gRklYTUU6IFVzZSBhIHZhbGlkIFdvcmtl
ck9iamVjdFByb3h5CiAvLyBGSVhNRTogVXNlIHZhbGlkIHJ1bnRpbWUgZmxhZ3MKIAorLy8gRklY
TUU6IFVzZSBhIHZhbGlkIFdvcmtlclR5cGUgYW5kIENyZWRlbnRhaWxzIGZvciBtb2R1bGUgc2Vy
dmljZSB3b3JrZXJzLgogU2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZChj
b25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFN0cmluZyYmIHVzZXJBZ2VudCwg
Y29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMsIFdvcmtlckxvYWRlclByb3h5
JiBsb2FkZXJQcm94eSwgV29ya2VyRGVidWdnZXJQcm94eSYgZGVidWdnZXJQcm94eSwgSURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlk
ZXIqIHNvY2tldFByb3ZpZGVyKQotICAgIDogV29ya2VyVGhyZWFkKHsgZGF0YS5zY3JpcHRVUkws
IGVtcHR5U3RyaW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJz
RmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHVzZXJBZ2VudCksIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09uTGluZSgpLCBkYXRhLmNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6Om5vdygpLCB7IH0sIHNldHRpbmdz
VmFsdWVzIH0sIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6
Ok5vcm1hbCwgZGF0YS5yZWdpc3RyYXRpb24ua2V5LnRvcE9yaWdpbigpLnNlY3VyaXR5T3JpZ2lu
KCkuZ2V0KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGlt
ZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCkpCisgICAgOiBXb3JrZXJUaHJlYWQoeyBkYXRhLnNj
cmlwdFVSTCwgZW1wdHlTdHJpbmcoKSwgInNlcnZpY2V3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRl
bnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCksIFdURk1vdmUodXNlckFnZW50KSwg
cGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmlzT25MaW5lKCksIGRhdGEu
Y29udGVudFNlY3VyaXR5UG9saWN5LCBmYWxzZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHsgfSwg
V29ya2VyVHlwZTo6Q2xhc3NpYywgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4s
IHNldHRpbmdzVmFsdWVzIH0sIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94
eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRT
dGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5yZWdpc3RyYXRpb24ua2V5LnRvcE9yaWdpbigpLnNlY3Vy
aXR5T3JpZ2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpT
Qzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCkpCiAgICAgLCBtX2RhdGEoZGF0YS5p
c29sYXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0UHJveHkoRHVtbXlTZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpKQogICAgICwgbV9oZWFydEJlYXRUaW1lb3V0KFNXQ29u
dGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb24oKS0+c2hvdWxkVXNlU2hvcnRUaW1l
b3V0KCkgPyBoZWFydEJlYXRUaW1lb3V0Rm9yVGVzdCA6IGhlYXJ0QmVhdFRpbWVvdXQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29y
a2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29y
a2VyLmgKaW5kZXggMmRkZGIzYjViNDFlZDg3YmQ2MTRhMGI5NGQwOWI3NjEyOTNkNzYwNy4uMzc4
ZmJhNjU3ZThiYmY0ODQxZTU2Y2JmODY1NjFmOGVjYzMxMTAyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaApAQCAt
NTAsNyArNTAsNyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI7CiBzdHJ1
Y3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9uczsKIHN0cnVjdCBTZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyOwotZW51
bSBjbGFzcyBXb3JrZXJUeXBlOworZW51bSBjbGFzcyBXb3JrZXJUeXBlIDogdWludDhfdDsKIAog
Y2xhc3MgU1dTZXJ2ZXJXb3JrZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTV1NlcnZlcldvcmtlcj4g
ewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEds
b2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29w
ZS5jcHAKaW5kZXggZDcwNDg4NjY0OGMwZWZhYTZiNzgwODRjNTM4NzIwMWNhMmIxYzU0My4uMzZj
ZjY2ODAyOWU3MTE2OWQwNzMyMjA4M2UyNTY4ZTllNzUyMWY5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0xODgsNyArMTg4LDcgQEAg
dm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OnByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5lZWRl
ZCgpCiAgICAgYXV0byBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IHNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9s
aWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSA6IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9y
Y2VtZW50OjpFbmZvcmNlQ2hpbGRTcmNEaXJlY3RpdmU7CiAKICAgICBtX3NjcmlwdExvYWRlciA9
IFdvcmtlclNjcmlwdExvYWRlcjo6Y3JlYXRlKCk7Ci0gICAgbV9zY3JpcHRMb2FkZXItPmxvYWRB
c3luY2hyb25vdXNseSgqdGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlv
bnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2Rl
OjpBbGwsICp0aGlzKTsKKyAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KCp0
aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1
cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgKnRoaXMsIFdv
cmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogfQogCiB2b2lkIFdvcmtsZXRHbG9iYWxTY29w
ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZDMwZTU2MjkyMmU1YTRkNmYz
MTYyNjVlMWVhMjU2OGU5OWU3ZTgxYy4uNmFlY2I4ZTY1NjAzN2MxYjEyM2IyOWQ5NjhlN2E5NDJl
MzVhYmJmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMjEtMDItMTAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAg
ICBKUyBNb2R1bGVzIGluIFdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NDg2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9ub24tb2JqZWN0LnRlbnRhdGl2
ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3Mv
Y2hlY2twb2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFz
ZS11cmwtd29ya2VyLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Ro
cm93LXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVh
dGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9h
bHBoYS9pbXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29y
a2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9i
YXNldXJsL2FscGhhL3hoci1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLXdvcmtlci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJm
YWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9i
YWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBv
cnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVs
ZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9u
cy10eXBlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1l
eHBlY3RlZC50eHQ6CisKIDIwMjEtMDItMTAgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdv
QGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG1vZGlmaWVyIGtleXMgaW4g
dGVzdF9kcml2ZXIuc2VuZF9rZXlzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1
bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNDky
NjliM2I1MGI5MTc1Y2I2MmVjYTMxMmU1ODZiM2IxNjYyYTI1OS4uMmNhZTVmN2UzNWEzMmZlY2Vi
MjY4ZjI5MDAwMGU0ZTU1NTZjNjg2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1t
b2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEs
NyArMSw3IEBACiAKLUZBSUwgTm9uLW9iamVjdDogbnVsbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0
aGUgbW9kdWxlICcuL251bGwuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiB0cnVlIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3Vs
ZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vdHJ1ZS5qc29uJy4iCi1GQUlMIE5vbi1vYmplY3Q6
IGZhbHNlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZmFsc2UuanNvbicuIgot
RkFJTCBOb24tb2JqZWN0OiBzdHJpbmcgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAn
Li9zdHJpbmcuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBhcnJheSBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGlt
cG9ydCB0aGUgbW9kdWxlICcuL2FycmF5Lmpzb24nLiIKK0ZBSUwgTm9uLW9iamVjdDogbnVsbCBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUg
dHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IHRydWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicg
aXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiBm
YWxzZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0
IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IHN0cmluZyBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlv
bi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1v
YmplY3Q6IGFycmF5IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlkIEph
dmFTY3JpcHQgTUlNRSB0eXBlLiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3Bl
LW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVy
cm9yLW1vZHVsZS1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRk
MjJlNGMxZGNiM2E1Zi4uZTNlOTc3YjNkNGM1YTRmNDVlNmQwOGNkMzI4NDYyM2Q1N2Y3MTY0MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9j
aGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2No
ZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsNiBAQAogCiBIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9
IG51bGwKIAorRkFJTCBQcm9taXNlIHJlc29sdmVkIGR1cmluZyAjcmVwb3J0LXRoZS1lcnJvciBh
c3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgWyJoYW5k
bGVyIDEiLCAiaGFuZGxlciAyIiwgImhhbmRsZXIgMSBwcm9taXNlIiwgImhhbmRsZXIgMiBwcm9t
aXNlIl0gbGVuZ3RoIDQsIGdvdCBbXSBsZW5ndGggMAorTk9UUlVOIFByb21pc2UgcmVzb2x2ZWQg
ZHVyaW5nIGV2ZW50IGhhbmRsZXJzIG90aGVyIHRoYW4gZXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhh
L2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVy
bC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQKaW5kZXggNTFkNjEwMGU2MTIyYTk3
YzM2NGIzY2ViMWQ3ZmQwN2UwZTE1NjExNy4uYTgwNTBjMDc4Y2Y4Yjg4ZDU2OGFmZmUwZDU1Y2Mz
MTkwYzM2NTQ3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlwdHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogCi1GQUlMIFJlbGF0aXZlIFVSTC1saWtlIGZyb20g
c2FtZS1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1
bGUgJy4vaW1wb3J0LmpzP3BpcGU9aGVhZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwq
KSZsYWJlbD1yZWxhdGl2ZS1jcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpJy4iCi1GQUlMIEFi
c29sdXRlIFVSTC1saWtlIGZyb20gc2FtZS1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3Vs
ZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJ2h0dHA6Ly8xMjcuMC4wLjE6ODgwMC9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0
L2dhbW1hL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4s
KikmbGFiZWw9YWJzb2x1dGUtY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKScuIgotUEFTUyBS
ZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIGNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKLUZBSUwg
QWJzb2x1dGUgVVJMLWxpa2UgZnJvbSBjcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBD
b3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJ2h0dHA6Ly8xMjcuMC4wLjE6ODgwMC9odG1sL3Nl
bWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1w
b3J0L2dhbW1hL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1Pcmln
aW4sKikmbGFiZWw9YWJzb2x1dGUtY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKScuIgorUEFT
UyBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQorUEFT
UyBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQorRkFJ
TCBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIGNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkgYXNz
ZXJ0X2VxdWFsczogUmVsYXRpdmUgVVJMLWxpa2Ugc3BlY2lmaWVyIHJlc29sdXRpb24gc2hvdWxk
IGZhaWwgZXhwZWN0ZWQgIih1bnJlYWNoZWQpIiBidXQgZ290ICJnYW1tYS9pbXBvcnQuanMiCitQ
QVNTIEFic29sdXRlIFVSTC1saWtlIGZyb20gY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHlu
YW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEv
YmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQKaW5kZXggODY2ZWJiMjI3YWQyNmFhY2Ux
YTU3OGJhZWE2YTgxZGMwZTZlNzdmMC4uNWU3MDYzNDkwZTJkZmZlY2U4NWVhNzY1YWViZGRlNGIx
NmViMGZjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWlt
cG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQg
QEAKIAotRkFJTCBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVy
cm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vaW1wb3J0LmpzP3BpcGU9aGVhZGVy
KEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJlbD1yZWxhdGl2ZS13b3JrZXIgdG9w
LWxldmVsIHNjcmlwdCcuIgotRkFJTCBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHdvcmtlciB0b3At
bGV2ZWwgc2NyaXB0IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJ2h0dHA6Ly8xMjcu
MC4wLjE6ODgwMC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2R5bmFtaWMtaW1wb3J0L2dhbW1hL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3Mt
Q29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9YWJzb2x1dGUtd29ya2VyIHRvcC1sZXZlbCBz
Y3JpcHQnLiIKK1BBU1MgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNj
cmlwdAorUEFTUyBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9l
dmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93
LXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJl
NGMxZGNiM2E1Zi4uMmYxMmEyMzQyZmFkMjI0ZTNhMThhNmZiNWQ4NDgzMjVlYTY3NzZmZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRp
b24tb3JkZXItMS1ub3Rocm93LXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdv
cmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAotCitQQVNTIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1
bGVzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVj
dGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi5i
ODYxZjcwMWY5NDhmYjEzMjc2OTMyMmMzODM2NmYyZDEzOGYwNGUyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdv
cmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
MyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorRkFJTCBU
ZXN0IGV2YWx1YXRpb24gb3JkZXIgb2YgbW9kdWxlcyBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5n
dGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgWyJzdGVwLTEtMSIsICJzdGVwLTEtMiIsICJnbG9i
YWwtZXJyb3IiLCAiZXJyb3IiLCAibWljcm90YXNrIl0gbGVuZ3RoIDUsIGdvdCBbInN0ZXAtMS0x
IiwgInN0ZXAtMS0yIiwgIm1pY3JvdGFzayJdIGxlbmd0aCAzCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1w
b3J0LXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0Cmlu
ZGV4IDg5MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLmMxZDM4YmRlNTBj
NTllNWQ1OTQxNzNkOTZmOWNkMTllYjEwN2M5YjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK0ZB
SUwgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVsZXMgYXNzZXJ0X2FycmF5X2VxdWFsczog
bGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsic3RlcC0yLjItMSIsICJzdGVwLTIuMi0y
IiwgImdsb2JhbC1lcnJvciIsICJlcnJvciIsICJtaWNyb3Rhc2stMi4yIl0gbGVuZ3RoIDUsIGdv
dCBbInN0ZXAtMi4yLTEiLCAic3RlcC0yLjItMiIsICJtaWNyb3Rhc2stMi4yIl0gbGVuZ3RoIDMK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2
YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMt
d29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0
YzFkY2IzYTVmLi4yZjEyYTIzNDJmYWQyMjRlM2ExOGE2ZmI1ZDg0ODMyNWVhNjc3NmZlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlv
bi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29y
a2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9V
VCksIG1lc3NhZ2UgPSBudWxsCi0KK1BBU1MgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVs
ZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0LWluLW1vZHVsZXdvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvYmFzZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dAppbmRl
eCBkZDlhZjM4ZmYwOWZiZWMxZmFjMGI4ZjVlYTliYWQ2ZTMxNjM2NDlkLi41MWViMzY2MzhjMWNh
N2QwNjBiNzY3NTkyNmZjYzcwYzViZjA3NmU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnQt
aW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9k
dWxld29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTog
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgaWRlbnRpZmllciAncicuIGltcG9ydCBjYWxsIGV4cGVj
dHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCiAKLUZBSUwgQmFzZSBVUkwgaW4gbW9kdWxlIGRlZGlj
YXRlZCB3b3JrZXJzOiBpbXBvcnQgYXNzZXJ0X3VucmVhY2hlZDogR290IGVycm9yIGV2ZW50IFJl
YWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVk
IHdvcmtlcnM6IGltcG9ydAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnRTY3JpcHRzLWlu
LXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnRTY3JpcHRzLWluLXdvcmtlci1l
eHBlY3RlZC50eHQKaW5kZXggYWI1YTdmYjg5MDIwZjI5ZmQ4OTNhNzU2ODBmZmUxN2QzZDM1MGY3
Yy4uYWI1M2I4MDU5OWFlMDE5NTc4MDg1ZWU0NGFhZWZhNGM3OTU1MjY4NCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1
cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2Fs
cGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAK
IAotRkFJTCBpbXBvcnRTY3JpcHRzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJnYW1tYS9zY3Jp
cHQuanMiIGJ1dCBnb3QgImJldGEvc2NyaXB0LmpzIgorUEFTUyBpbXBvcnRTY3JpcHRzCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwv
YWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODNmMzY3ZjJjZjNh
NjZjNjRhNjI2NDI5NDY1NmQ1ZTg4MWQxYzExYy4uMjhiMGNiNDAwMTM5MmQwODg3YTRmZWJlNjgx
YzFlMTUxZDBkZjE4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50
eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQmFzZSBVUkwgaW4gbW9kdWxlIGRlZGljYXRlZCB3
b3JrZXJzOiBYSFIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImdhbW1hXG4iIGJ1dCBnb3QgImJl
dGFcbiIKK1BBU1MgQmFzZSBVUkwgaW4gbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzOiBYSFIKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBo
YS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBkNmIwOGVlZGFlNmY2OTZjN2E0YmZh
NjU1ZTEzYjVlZDQ2MDdlYTAxLi5lYTE0NTRkOWIzZjIwZjg1ZDkwMTZjNTA2YTE1NDZhZjYxNzg0
MmQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFz
ZXVybC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAot
RkFJTCB4aHItd29ya2VyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJnYW1tYVxuIiBidXQgZ290
ICJiZXRhXG4iCitQQVNTIHhoci13b3JrZXIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xv
YmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xv
YmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0CmluZGV4IGYxNzQxZjlkOGJm
MDcwMzI3MGQyZTM3NjJkYmNiZTI2YzBiOTAwNTkuLjNiMGRmYjM1ZTUxY2QxYTg1NDU1MzAxOWMw
ZTQwM2RiZTJmMWQzM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0
aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9s
b2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgV29y
a2VyTG9jYXRpb24gd2l0aCByZWRpcmVjdHM6IGNsYXNzaWMgZGVkaWNhdGVkIHdvcmtlcnMgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2ludGVy
ZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcG9zdC1sb2NhdGlvbi1tZW1iZXJzLmpz
P2EiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2ludGVyZmFjZXMvV29y
a2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vaGVscGVyLXJlZGlyZWN0LnB5P2ZhaWwiCitQQVNTIFdv
cmtlckxvY2F0aW9uIHdpdGggcmVkaXJlY3RzOiBjbGFzc2ljIGRlZGljYXRlZCB3b3JrZXJzCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1v
ZHVsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRp
cmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0CmluZGV4IGRjMmUyZTIwN2RiMDAxZWU3MGU3MzMwN2Qy
N2JiMzM1NzIwZmQ1NTkuLmIzYmY4MWVlODY4MWI5ZGMwODBmNTgwMjcxZThiOGYzOTA5NjU0OTUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1v
ZHVsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24v
cmVkaXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBXb3Jr
ZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZh
Y2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3Bvc3QtbG9jYXRpb24tbWVtYmVycy5qcz9h
IiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtl
ckdsb2JhbFNjb3BlL2xvY2F0aW9uL2hlbHBlci1yZWRpcmVjdC5weT9mYWlsIgorUEFTUyBXb3Jr
ZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQu
dHh0CmluZGV4IDIwYWMxN2Q1NjNjNGIzYTQ2MWYwY2FhZmJlYWVlYmQ3MTNmOTcwODEuLmRjY2Vk
Y2NkMzY4ZTFmZjE3YjFkZDEzNmU0NTNmZWM0ZmUxMGJjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxOCAr
MSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBs
aXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9z
dGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUg
YXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmlu
ZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNl
cy9uZXN0ZWQtc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4
YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxl
cy9yZXNvdXJjZXMvc3RhdGljLWltcG9ydC1hbmQtdGhlbi1keW5hbWljLWltcG9ydC13b3JrZXIu
anMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBN
RVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xv
Y2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtd29y
a2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNP
TEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6
Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1keW5hbWlj
LWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3Vt
ZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0
ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHlu
YW1pYy1pbXBvcnQtYW5kLXRoZW4tc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2Fs
bCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhF
cnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dv
cmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXZhbC1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBp
bXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgogCi1IYXJuZXNzIEVycm9y
IChGQUlMKSwgbWVzc2FnZSA9IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFs
ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWlj
LWltcG9ydC1hbmQtdGhlbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4
cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi0KLUZBSUwgU3RhdGljIGltcG9ydC4gcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5l
eHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4
cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBOZXN0ZWQgc3RhdGljIGltcG9ydC4g
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJv
cjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3Jr
ZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1zdGF0aWMtaW1wb3J0LXdvcmtlci5qc1wiLiBp
bXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgU3RhdGljIGlt
cG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJh
bCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL3N0YXRp
Yy1pbXBvcnQtYW5kLXRoZW4tZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxs
IGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGltcG9ydC4gcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjog
VW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJz
L21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2Fs
bCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1w
b3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRh
eEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAw
L3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvbmVzdGVkLWR5bmFtaWMtaW1wb3J0LXdvcmtlci5q
c1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHlu
YW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcg
bGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2Vz
L2R5bmFtaWMtaW1wb3J0LWFuZC10aGVuLXN0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9y
dCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBldmFsKGltcG9ydCgp
KS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhF
cnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93
b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V2YWwtZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIu
IGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgorUEFTUyBTdGF0aWMg
aW1wb3J0LgorUEFTUyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BBU1MgU3RhdGljIGltcG9ydCBh
bmQgdGhlbiBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQuCitQQVNTIE5lc3Rl
ZCBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGlt
cG9ydC4KK1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13
b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9y
dC1jc3AtZXhwZWN0ZWQudHh0CmluZGV4IDFkYTQ2YjkyNmJlMDg5NmVlOGY3NWE3OGRjYWU0ZjI2
OWIwNTA5MmIuLjIzOWNjOWNlMTUzMDFmN2VlZDgzZDVlYjIyMzBhOWRlMjk0ZWEyZWQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVs
ZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSwy
MiBAQAogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xp
Y3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2Vz
L2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQg
Q29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3Jr
ZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJz
L21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdF
OiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXIt
c3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2Nh
bGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlw
dC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xp
Y3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2Vz
L2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4
cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9y
dC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVu
dC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogCiBQQVNTIHdvcmtlci1z
cmMgJ3NlbGYnIGRpcmVjdGl2ZSBzaG91bGQgZGlzYWxsb3cgY3Jvc3Mgb3JpZ2luIHN0YXRpYyBp
bXBvcnQuCiBGQUlMIHdvcmtlci1zcmMgKiBkaXJlY3RpdmUgc2hvdWxkIGFsbG93IGNyb3NzIG9y
aWdpbiBzdGF0aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0
eSAwIHRvIGJlICJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiIGJ1dCBnb3QgIkVSUk9SIiAoZXhw
ZWN0ZWQgYXJyYXkgWyJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiXSBnb3QgWyJFUlJPUiJdKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtZmFpbHVyZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
bW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dAppbmRl
eCA5NWM2ZDE1ZGY0NGUxOGEzNWRmZWIwZmEzOWM4ZDM4NDQyMGMyYzEzLi5lOTU1NzhlNzFiMWM1
MGE0ZTA0NzFiMDM3MTU0YjM4NmIzN2FlZDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2Vy
LWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKLUNPTlNPTEUgTUVT
U0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgJy4vbm9uLWV4aXN0
ZW50LXNjcmlwdC5qcycuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
CitDT05TT0xFIE1FU1NBR0U6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLgogCi1G
QUlMIGltcG9ydFNjcmlwdHMoKSBvbiBtb2R1bGUgd29ya2VyIHNob3VsZCB0aHJvdyBhbiBleGNl
cHRpb24uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJUeXBlRXJyb3IiIGJ1dCBnb3QgIkxPQURF
RCIKK1BBU1MgaW1wb3J0U2NyaXB0cygpIG9uIG1vZHVsZSB3b3JrZXIgc2hvdWxkIHRocm93IGFu
IGV4Y2VwdGlvbi4KIFBBU1MgV29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igbm9uLWV4aXN0ZW50IHNj
cmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KIFBBU1MgU3RhdGljIGltcG9ydCBm
b3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KLUZB
SUwgRHluYW1pYyBpbXBvcnQgZm9yIG5vbi1leGlzdGVudCBzY3JpcHQgc2hvdWxkIHRocm93IGFu
IGV4Y2VwdGlvbi4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlR5cGVFcnJvciIgYnV0IGdvdCAi
RXJyb3IiCitQQVNTIER5bmFtaWMgaW1wb3J0IGZvciBub24tZXhpc3RlbnQgc2NyaXB0IHNob3Vs
ZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIGFuIGlu
dmFsaWQgVVJMIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1
Y3Rpb24gZm9yIGEgZmlsZSBVUkwgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAppbmRleCBkNTgwNjIwNDFj
M2U2OTUxNWI4MTVlMDJkN2MzODY4NGQ3N2M3NmI3Li5lNzgyNTdhMzIyOGQwZjMyMDMwM2ZkNjMy
NmFmNmE3NTE0NTNmYzNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1t
ZXRhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4
cGVjdGVkLnR4dApAQCAtMSw4ICsxLDUgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6
IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCiAKLUhhcm5lc3MgRXJy
b3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFs
aWQgaW5zaWRlIG1vZHVsZXMuCi0KLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIHRv
cC1sZXZlbCBtb2R1bGUgc2NyaXB0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5IHZhbGlkIGluc2lk
ZSBtb2R1bGVzLiIKLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1v
ZHVsZSBzY3JpcHQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBU
ZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQuCitQQVNT
IFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2NyaXB0LgogRkFJ
TCBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRo
IGEgZnJhZ21lbnQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMv
ZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dAppbmRleCBhMjNhNTU3NWRi
NDI3NDI3Zjg1YmQ2YjYzNTRkZTg4MzgzMWZlMmI0Li5kY2NlZGNjZDM2OGUxZmYxN2IxZGQxMzZl
NDUzZmVjNGZlMTBiYzgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5h
bnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBl
Y3RlZC50eHQKQEAgLTEsMTQgKzEsOSBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjog
VW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJn
dW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcq
Jy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVT
U0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBl
Y3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2Fn
ZSA9IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0
cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLQotRkFJTCBTdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4i
Ci1GQUlMIE5lc3RlZCBzdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1w
b3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIFN0YXRpYyBpbXBv
cnQgYW5kIHRoZW4gZHluYW1pYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBv
cnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHluYW1pYyBpbXBv
cnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBp
bXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWxv
YWQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBOZXN0ZWQgZHluYW1pYyBpbXBv
cnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBp
bXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWR5
bmFtaWMtaW1wb3J0LXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgRHluYW1pYyBp
bXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUg
aXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQg
dGhlIG1vZHVsZSAnLi9leHBvcnQtb24tc3RhdGljLWltcG9ydC1zY3JpcHQuanMnLiIsIGV4cGVj
dGVkIGFycmF5Ci1GQUlMIGV2YWwoaW1wb3J0KCkpLiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1
ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9y
dCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJy
YXkKK1BBU1MgU3RhdGljIGltcG9ydC4KK1BBU1MgTmVzdGVkIHN0YXRpYyBpbXBvcnQuCitQQVNT
IFN0YXRpYyBpbXBvcnQgYW5kIHRoZW4gZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMgaW1w
b3J0LgorUEFTUyBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMgaW1wb3J0IGFu
ZCB0aGVuIHN0YXRpYyBpbXBvcnQuCitQQVNTIGV2YWwoaW1wb3J0KCkpLgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9k
dWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQKaW5kZXggZGEwZTRlYjY3NThk
MTRhMzdhMzk4ZDBiNmZjNzFhZDM4NzZiZDI2Yi4uMWZjMGM2NmZkZjcyNGMyYWEzYjkxMDY5ODBi
ZmJlN2U5ODhmOTc3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5
cGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4
cGVjdGVkLnR4dApAQCAtMiwxMSArMiw2IEBACiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlv
biB3aXRoIHRoZSBkZWZhdWx0IHdvcmtlciB0eXBlLgogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1
Y3Rpb24gd2l0aCB0aGUgImNsYXNzaWMiIHdvcmtlciB0eXBlLgogUEFTUyBUZXN0IHdvcmtlciBj
b25zdHJ1Y3Rpb24gd2l0aCB0aGUgIm1vZHVsZSIgd29ya2VyIHR5cGUuCi1GQUlMIFRlc3Qgd29y
a2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIGVtcHR5IHdvcmtlciB0eXBlLiBhc3NlcnRfdGhyb3dz
X2pzOiBXb3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gZW1wdHkgdHlwZSBzaG91bGQgdGhyb3cg
YW4gZXhjZXB0aW9uIGZ1bmN0aW9uICIoKSA9PiB7Ci0gICAgICAgIG5ldyBXb3JrZXIoJ3Jlc291
cmNlcy9wb3N0LW1lc3NhZ2Utb24tbG9hZC13b3JrZXIuanMnLCB7IHR5cGU6ICcnIH0pOwotICAg
ICAgfSIgZGlkIG5vdCB0aHJvdwotRkFJTCBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBh
biB1bmtub3duIHdvcmtlciB0eXBlLiBhc3NlcnRfdGhyb3dzX2pzOiBXb3JrZXIgY29uc3RydWN0
aW9uIHdpdGggYW4gdW5rbm93biB0eXBlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gZnVuY3Rp
b24gIigpID0+IHsKLSAgICAgICAgbmV3IFdvcmtlcigncmVzb3VyY2VzL3Bvc3QtbWVzc2FnZS1v
bi1sb2FkLXdvcmtlci5qcycsCi0gICAgICAgICAgICAgICAgICAgeyB0eXBlOiAndW5rbm93bicg
fSk7Ci0gICAgICB9IiBkaWQgbm90IHRocm93CitQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlv
biB3aXRoIGFuIGVtcHR5IHdvcmtlciB0eXBlLgorUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rp
b24gd2l0aCBhbiB1bmtub3duIHdvcmtlciB0eXBlLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVk
LXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dAppbmRleCBlOGViNTQwYmQz
MzkyNDAwYThkYmZkOTM4NjQ4YTY0OTIzOWMwZDllLi5kMWE1MGY3ZWEzY2Q2ZGMyOThlZjc1NDE0
Nzc2MmM2OWM1N2Q3M2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLXBhcnNlLWVy
cm9yLWZhaWx1cmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2Ut
ZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwxNCBAQAotQ09OU09MRSBNRVNT
QUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVj
dHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBV
bmV4cGVjdGVkIHRva2VuICc7JworQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiAnOycKIAotSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBFcnJvcjog
YXNzZXJ0X2ltcGxlbWVudHM6IFN0YXRpYyBpbXBvcnQgbXVzdCBiZSBzdXBwb3J0ZWQgb24gbW9k
dWxlIGRlZGljYXRlZCB3b3JrZXIgdG8gcnVuIHRoaXMgdGVzdC4gdW5kZWZpbmVkCi0KLU5PVFJV
TiBNb2R1bGUgd29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9y
IHNob3VsZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4KLU5PVFJVTiBTdGF0aWMgaW1w
b3J0IG9uIG1vZHVsZSB3b3JrZXIgZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJvciBzaG91bGQg
ZGlzcGF0Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuCitGQUlMIE1vZHVsZSB3b3JrZXIgY29uc3Ry
dWN0aW9uIGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJyb3Igc2hvdWxkIGRpc3BhdGNoIGFuIGV2
ZW50IG5hbWVkIGVycm9yLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmdW5jdGlvbiAiZnVuY3Rp
b24gRXZlbnQoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIgYnV0IGdvdCBmdW5jdGlvbiAiZnVu
Y3Rpb24gRXJyb3JFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IgorRkFJTCBTdGF0aWMg
aW1wb3J0IG9uIG1vZHVsZSB3b3JrZXIgZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJvciBzaG91
bGQgZGlzcGF0Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
IGZ1bmN0aW9uICJmdW5jdGlvbiBFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiBidXQg
Z290IGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJvckV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0K
K30iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVj
dGVkLnR4dAppbmRleCA2Mzk4NDcxMjE0NTlhN2FiMzdiOWYwOWE2OGJhNjRlYThhOWVkNTdjLi5l
OTQ2OTQ3YjE0YWVmM2U1Mjk5YTBhYmEzYWU0YjFjZjlmY2Q5NTcwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9w
ZXJ0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEs
OCBAQAogQ09OU09MRSBNRVNTQUdFOiBVbmhhbmRsZWQgUHJvbWlzZSBSZWplY3Rpb246IFJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKIAotRkFJTCBUZXN0
IHRoZSBuYW1lIHByb3BlcnR5IG9mIHNoYXJlZCBhbmQgZGVkaWNhdGVkIHdvcmtlcnMgdmlhIHRo
ZSBuYW1lIGNvbnN0cnVjdG9yIG9wdGlvbiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3Jr
ZXIKLVBBU1MgRGVjbGFyaW5nIG5hbWUgYXMgYW4gYWNjaWRlbnRhbCBnbG9iYWwgbXVzdCBub3Qg
Y2F1c2UgYSBoYXJuZXNzIGVycm9yIGZvciBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZQorSGFy
bmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBVbmhhbmRsZWQgcmVqZWN0aW9uOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKKwogUEFTUyBuYW1lIHByb3BlcnR5IHZhbHVlIGZv
ciBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZQogUEFTUyBuYW1lIHByb3BlcnR5IGlzIHJlcGxh
Y2VhYmxlIGZvciBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZQorUEFTUyBEZWNsYXJpbmcgbmFt
ZSBhcyBhbiBhY2NpZGVudGFsIGdsb2JhbCBtdXN0IG5vdCBjYXVzZSBhIGhhcm5lc3MgZXJyb3Ig
Zm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420011</attachid>
            <date>2021-02-11 11:24:59 -0800</date>
            <delta_ts>2021-02-11 14:55:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210211112458.patch</filename>
            <type>text/plain</type>
            <size>175133</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA1MTUzZGY5Mjc2YTBl
YzEzMzI1OTg1ZDNjMGE5NGQwOTE3M2I4ZC4uNjk1ZDIyMGM2MzNkZDc4NDc0ZjkxZDAwZDI1NzVj
MTA4OTA4ZjYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNSBAQAorMjAyMS0wMi0xMSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4g
V29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2Ny
aXB0TG9hZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0Nh
Y2hlZFNjcmlwdEZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0
Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNoZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0TW9kdWxl
TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2Fk
ZXJSZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVM
b2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1v
ZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdp
bmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJD
cmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFeGVjU3RhdGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXhlY1N0YXRlOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclR5cGUuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNj
cmlwdExvYWRlcjo6Y2xlYXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlU2NyaXB0
TG9hZGVyOjpzY3JpcHRGZXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExv
YWRlcjo6cGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVTY3JpcHRMb2FkZXI6
Ok1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9D
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9h
ZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZU1vZHVs
ZVNwZWNpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29s
dmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVSTCk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1vZHVsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9T
Y3JpcHRTb3VyY2VDb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpT
Y3JpcHRTb3VyY2VDb2RlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3Jp
cHRMb2FkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlw
dExvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExv
YWRlcjo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1vZHVsZVNjcmlwdExvYWRlcjo6fldvcmtlck1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oLgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdEZldGNoZXIuaDogQWRkZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKiBkb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQpOiBEZWxldGVkLgorICAgICAgICAqIGRv
bS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3JpcHQp
OgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFi
bGVMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
OjpXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5pZGw6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29w
ZTo6V29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2Nv
cGU6OmltcG9ydFNjcmlwdHMpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjpjcmVkZW50aWFscyBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5Lmg6CisgICAgICAg
ICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KToK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxpbmtB
bmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRl
cjo6bG9hZEFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExv
YWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjpyZXNwb25z
ZVNvdXJjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6Omlz
UmVkaXJlY3RlZCBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyUGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6ZXZhbHVhdGVTY3JpcHRJZk5lY2Vzc2Fy
eSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJz
L1dvcmtlclR5cGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6OmZldGNoU2NyaXB0V2l0aENv
bnRleHQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uT3B0aW9ucy5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6
U2VydmljZVdvcmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlcldvcmtlci5oOgorICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmZldGNoQW5kSW52b2tl
U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6cHJvY2Vzc05l
eHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKToKKwogMjAyMS0wMi0xMCAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3QgZGlmZmVyZW50aWF0ZSBiZXR3
ZWVuIFJlbGVhc2UgYW5kIFByb2R1Y3Rpb24gdmlhIEVOQUJMRV9ERVZFTE9QRVJfTU9ERQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKaW5kZXggNGYzOGZiMDY4NGJjNTllZTZmN2M5ODk4MjllYzg4MmNlODA1ODZj
OC4uMzNhZmVlMzAyZWRjMWUxZjNlYzhkNmNkOTFkZWE1MzdkZTE5ZmJkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCkBAIC0zMCw2ICszMCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKIAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaAogICAgIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmgKKyAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVz
dENyZWRlbnRpYWxzLmgKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5oCiAgICAgTW9k
dWxlcy9mZXRjaC9GZXRjaElkZW50aWZpZXIuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2Fk
ZXIuaApAQCAtMjg3LDYgKzI4OCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hF
QURFUlMKICAgICBiaW5kaW5ncy9qcy9XZWJDb3JlSklUT3BlcmF0aW9ucy5oCiAgICAgYmluZGlu
Z3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKICAgICBiaW5kaW5ncy9qcy9XaW5k
b3dQcm94eS5oCisgICAgYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RmV0Y2hlci5oCiAKICAgICBi
cmlkZ2UvQnJpZGdlLmgKICAgICBicmlkZ2UvSWRlbnRpZmllclJlcC5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IDhjMDNiOTMyNjQ5ODVmMGJiMWVlOWY2ZDIwMjNlMzQ4MzA5MmY0NjIuLjYyM2E2NzhhYTVj
YjQzMmFlMGQzOTQ2N2E0YmVmZDM0NTY4OGEyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC02MzksNiAr
NjM5LDcgQEAgYmluZGluZ3MvanMvU3RydWN0dXJlZENsb25lLmNwcAogYmluZGluZ3MvanMvV2Vi
Q29yZUpJVE9wZXJhdGlvbnMuY3BwCiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNw
cAogYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcAorYmluZGluZ3Mv
anMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcAogYmluZGluZ3MvanMvV2luZG93UHJveHku
Y3BwCiBiaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5jcHAKIGJyaWRnZS9JZGVudGlmaWVyUmVw
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDJlM2JhMmQ4YmJhYTE3NjI0NGRhNjIzYzY5Mjk2ZTVmZWJmMDczMGIuLjM4YzZl
YTBiODc5ZGVmNzAxMTEyZTQxODlhNGU0ODBkMWZiYzk0NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwNzEsMTUgKzUwNzEs
MTggQEAKIAkJRTMwNTkyNjQxRTI3QTNBRDAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDU5MjYy
MUUyN0EzOEMwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2ljU2NyaXB0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwNTkyNjgxRTI3QTNEMTAwRDU3
Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3Jp
cHRGZXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTMwN0RFRDAxRDgxRTRDNzAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RF
QzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUUzMDdERUQxMUQ4MUU0
Q0IwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDdERUM4MUQ4MUU0NDgwMDE0
MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzA3REVENTFEODFFNEYyMDAxNDFD
QUYgLyogTG9hZGFibGVNb2R1bGVTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDdERUQzMUQ4MUU0RUQwMDE0MUNBRiAvKiBMb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUUzMTUwRUE3MURBNzIxOTMwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzE1MEVBNTFEQTcyMThE
MDAxOTQwMTIgLyogRE9NSklUSGVscGVycy5oICovOyB9OwogCQlFMzIwMUMxQTFGOEU4MjEzMDA3
NkEwMzIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzhEMDYwOTFGOEU4MTE5MDA2NDlDRjIgLyogTW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTMyM0NGRkExRTVBRjZBRjAwRjBCNEEwIC8qIEpTRE9NQ29udmVydFByb21p
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMjND
RkY5MUU1QUY2QTUwMEYwQjRBMCAvKiBKU0RPTUNvbnZlcnRQcm9taXNlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM0MzJERTQyNUQzNzdFMzAw
NThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oICovOyB9OworCQlFMzQ3RTVGQTI1RDRGMDAwMDBGMTdB
NUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM0N0U1RjgyNUQ0RjAwMDAwRjE3QTVDIC8qIFdvcmtlclNjcmlw
dEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlFMzUxODhCNDI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzUxODhC
MzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1NjVCN0IxREMyRDZD
OTAwMjE3REJEIC8qIEpTRXZlbnRDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzNEVFNDlGMURDMkQ1NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3Vz
dG9tLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTM1ODAyQjYxREM4NDM1RDAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTgwMkI1MURDODQzNTgw
MEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1ODJDMjgyNTI3RjY2OTAwRDFCNzkwIC8qIFdl
YkNvcmVKSVRPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMzU4MkMyNjI1MjdGNjY4MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlv
bnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
MzVCOTA3RjIzRjYwQTUwMDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUI5MDdDMjNGNjA2Nzcw
MDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzNjQzMjFDMjVEMzdBNjcwMEY5MEUyQSAvKiBN
b2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzNjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzc3
RkU0RDFEQURFMTY1MDBDREQwMjUgLyogTm9kZUNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNEMDQ5OTMxREFEQzA0NTAwNzE4RjNDIC8q
IE5vZGVDb25zdGFudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlFMzdDODY1MDFFQjYzRTNGMDA4N0M2Q0EgLyogSlNET01Qcm9taXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzdDODY0RjFFQjYz
RTJEMDA4N0M2Q0EgLyogSlNET01Qcm9taXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM5NjI4QkYyMzk1NzI4RjAwNjU4RUNEIC8qIERldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEJEMjM5NTcyOEUwMDY1OEVDRCAvKiBEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTE2MjAyLDcgKzE2MjA1LDYgQEAKIAkJRTMwNTkyNjYxRTI3QTND
NjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ2FjaGVkU2NyaXB0RmV0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMzA3REVDNjFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDdERUM3
MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUzMDdERUM4MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzMDdERUQyMUQ4MUU0RUQwMDE0MUNBRiAvKiBMb2FkYWJsZU1vZHVsZVNj
cmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2FkYWJsZU1v
ZHVsZVNjcmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDdERUQzMUQ4
MUU0RUQwMDE0MUNBRiAvKiBMb2FkYWJsZU1vZHVsZVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMb2FkYWJsZU1vZHVsZVNjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMzE1MEVBNTFEQTcyMThEMDAxOTQwMTIgLyogRE9NSklUSGVscGVycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRIZWxwZXJzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjIxNSwxMiArMTYyMTcsMTcgQEAKIAkJRTMyOTI3
NjMyMjU0M0Y1OTAwMzA4QTlBIC8qIFR5cGVkT01DU1NVbml0VmFsdWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVHlwZWRPTUNTU1VuaXRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzMjkyNzY2MjI1NDNGREUwMDMwOEE5QSAvKiBET01SZWN0UmVhZE9ubHkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRE9NUmVjdFJlYWRPbmx5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTMzNDgyNUUxREM5M0FBMDAwOUM5NTQ0IC8qIERPTUpJVEFic3RyYWN0SGVh
cFJlcG9zaXRvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRE9NSklUQWJz
dHJhY3RIZWFwUmVwb3NpdG9yeS5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01K
SVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CisJCUUzNDMyREUwMjVEMzc3RTIwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNDMyREUzMjVEMzc3
RTMwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM0N0U1RjgyNUQ0RjAwMDAwRjE3QTVDIC8qIFdv
cmtlclNjcmlwdEZldGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29y
a2VyU2NyaXB0RmV0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzRFRTQ5
RjFEQzJENTc1MDBFQUE5RDMgLyogSlNFdmVudEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0V2ZW50Q3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUzNTE4OEIzMjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlU2NyaXB0TG9hZGVyQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTgwMkI1MURDODQzNTgwMEE5
NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUpJVElETFR5cGVGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTM1ODJDMjQyNTI3RjY2ODAwRDFCNzkwIC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVKSVRPcGVyYXRpb25z
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODJDMjYyNTI3RjY2ODAwRDFC
NzkwIC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkNvcmVKSVRPcGVyYXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzNUI5MDdDMjNGNjA2NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVCOTA3RTIzRjYwNjc3MDAwMDExRkYgLyog
TG9jYWxpemVkRGV2aWNlTW9kZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVTY3JpcHRMb2FkZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpT
RE9NUHJvbWlzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVByb21p
c2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYy
RUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMzg4Mzg5NTFCQUQxNDVGMDBENjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjcwMjEsNyArMjcwMjgsNiBAQAogCQkJCTJE
RkE0ODhFMURCNTQxQzIwMDM2MkI5OSAvKiBCdWZmZXJTb3VyY2UuaCAqLywKIAkJCQlFMzA3REVD
NjFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAqLywKIAkJ
CQlFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmgg
Ki8sCi0JCQkJRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudC5oICovLAogCQkJCUUzMDU5MjY1MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRT
Y3JpcHRGZXRjaGVyLmNwcCAqLywKIAkJCQlFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2Fj
aGVkU2NyaXB0RmV0Y2hlci5oICovLAogCQkJCUJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2OCAvKiBD
YWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oICovLApAQCAtMjcwOTUsNiArMjcxMDEsOCBAQAog
CQkJCTRCREVBMzJEMjE4MDM0MDUwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2Uu
Y3BwICovLAogCQkJCTRCREVBMzJCMjE4MDMzRUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxT
Y29wZUJhc2UuaCAqLywKIAkJCQk3MDlBMDFGRDFFM0QwQkNDMDA2QjBENEMgLyogTW9kdWxlRmV0
Y2hGYWlsdXJlS2luZC5oICovLAorCQkJCUUzNjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1
bGVTY3JpcHRMb2FkZXIuaCAqLywKKwkJCQlFMzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJNDFCNDU5RUQxRjU1RUJDNzAwMDBGNkZE
IC8qIFJlYWRhYmxlU3RyZWFtLmNwcCAqLywKIAkJCQk0MUI0NTlEQTFGNENBREI5MDAwMEY2RkQg
LyogUmVhZGFibGVTdHJlYW0uaCAqLywKIAkJCQk0MThDMzk1RTFDOEYwQUFCMDA1MUM4QTMgLyog
UmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5jcHAgKi8sCkBAIC0yNzEyNiw2ICsyNzEz
NCw5IEBACiAJCQkJMEYwOTlEMDcxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5
Q29udHJvbGxlci5oICovLAogCQkJCTQ2MzUyMUFDMjA4MTA5MEUwMEMyODkyMiAvKiBXaW5kb3dQ
cm94eS5jcHAgKi8sCiAJCQkJNDYzNTIxQUEyMDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5
LmggKi8sCisJCQkJRTM0MzJERTMyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlw
dExvYWRlci5jcHAgKi8sCisJCQkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1v
ZHVsZVNjcmlwdExvYWRlci5oICovLAorCQkJCUUzNDdFNUY4MjVENEYwMDAwMEYxN0E1QyAvKiBX
b3JrZXJTY3JpcHRGZXRjaGVyLmggKi8sCiAJCQkJNDE0MThBMDMyNTY0M0UxMjAwMzYzNDE3IC8q
IFdyaXRhYmxlU3RyZWFtLmNwcCAqLywKIAkJCQk0MTQxOEEwNDI1NjQzRTEzMDAzNjM0MTcgLyog
V3JpdGFibGVTdHJlYW0uaCAqLywKIAkJCSk7CkBAIC0zMTM5OSw3ICszMTQxMCw2IEBACiAJCQkJ
QkNCMTZDMUMwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZEltYWdlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMTlGQkQ1RjE1RDJGNDY0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUzMDdERUQwMUQ4MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUUzMDdERUQxMUQ4MUU0Q0IwMDE0MUNB
RiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxMDE4NDY5MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlEMEVEQTc3NTE0M0UzMDNDMDAyOEUzODMgLyogQ2FjaGVkUmF3UmVzb3VyY2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxQjUzMzQ5MTcxN0RFRTMwMEYyMDVGOSAvKiBDYWNoZWRSYXdSZXNv
dXJjZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzg3NCw2ICszMzg4NCw4IEBACiAJCQkJ
QzZENzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNzA5QTAxRkUxRTNEMEJERDAwNkIwRDRDIC8qIE1vZHVsZUZldGNo
RmFpbHVyZUtpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAz
MiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNjQzMjFD
MjVEMzdBNjcwMEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUzNTE4OEI0MjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREM2MTI1MUYxMkQwMDNFRjI2OSAvKiBNb250aElu
cHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM5NjI4QzEyMzk1NzQzMTAwNjU4RUNEIC8q
IE1vdGlvbk1hbmFnZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjQ2MEE0NEVG
QzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM1NTI2LDYgKzM1
NTM4LDcgQEAKIAkJCQkxOEY4MzFCODBGRDQ4Qzc4MDBEOEM1NkIgLyogV29ya2VyTG9hZGVyUHJv
eHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjREMEY1NDZBODIwMEIwRjFCQSAvKiBXb3Jr
ZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTAwRjU0NkE4MjAwQjBGMUJB
IC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzQzMkRFNDI1
RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMTI3MUEwQjBFRUVDNzdBMDBGNjEyMTMgLyogV29ya2VyTmF2aWdhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNUNCMDUyNTFGQjUxRjNBMDAwODlCOTcgLyogV29ya2VyTmV0d29y
a0FnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MTBGNTQ2QTgyMDBCMEYxQkEgLyog
V29ya2VyT2JqZWN0UHJveHkuaCBpbiBIZWFkZXJzICovLApAQCAtMzU1MzUsNiArMzU1NDgsNyBA
QAogCQkJCTQxNkUyOUE2MTAyRkE5NjIwMDdGQzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQcm94eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1
bkxvb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0NGMUZBQTQ0REUwMDM3RDFFNiAvKiBX
b3JrZXJSdW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNDdFNUZBMjVENEYwMDAw
MEYxN0E1QyAvKiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q2
QjM0OTBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRUE3NjgwNDBGRTcxMjY0MDBBQjlDOEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29y
a2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCmluZGV4IDM1MmRjYzRhY2Y3
NTE3NmQ5OGFkMzQxMGJlMTUxNjA4MDEwODg1MjQuLjI3N2Y2MmE3YzEzM2ZlMTU2YzZjY2U5ODU1
MzU1MGVkYjEzNmQwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0Nh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcApAQCAtNDAsMTYgKzQwLDEzIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYg
c2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJz
KQorUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
OjpjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlz
ZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1v
ZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQogewogICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZl
dGNoZXIsIFdURk1vdmUocGFyYW1ldGVycykpKTsKIH0KIAotQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xp
ZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hl
ciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0
ZXJzKQotICAgIDogbV9jbGllbnQoJmNsaWVudCkKLSAgICAsIG1fcHJvbWlzZSgmcHJvbWlzZSkK
LSAgICAsIG1fc2NyaXB0RmV0Y2hlcihzY3JpcHRGZXRjaGVyKQotICAgICwgbV9wYXJhbWV0ZXJz
KFdURk1vdmUocGFyYW1ldGVycykpCitDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OkNhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJy
ZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBS
ZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCisgICAgOiBNb2R1bGVT
Y3JpcHRMb2FkZXIoY2xpZW50LCBwcm9taXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFt
ZXRlcnMpKQogewogfQogCkBAIC02MSwxNCArNTgsMTUgQEAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyOjp+Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKCkKICAgICB9CiB9CiAKLWJvb2wgQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiBz
b3VyY2VVUkwpCitib29sIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bG9hZChEb2N1bWVudCYg
ZG9jdW1lbnQsIFVSTCYmIHNvdXJjZVVSTCkKIHsKKyAgICBBU1NFUlQobV9wcm9taXNlKTsKICAg
ICBBU1NFUlQoIW1fY2FjaGVkU2NyaXB0KTsKICAgICBTdHJpbmcgaW50ZWdyaXR5ID0gbV9wYXJh
bWV0ZXJzID8gbV9wYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSA6IFN0cmluZyB7IH07Ci0gICAgbV9j
YWNoZWRTY3JpcHQgPSBtX3NjcmlwdEZldGNoZXItPnJlcXVlc3RNb2R1bGVTY3JpcHQoZG9jdW1l
bnQsIHNvdXJjZVVSTCwgV1RGTW92ZShpbnRlZ3JpdHkpKTsKKyAgICBtX2NhY2hlZFNjcmlwdCA9
IHNjcmlwdEZldGNoZXIoKS5yZXF1ZXN0TW9kdWxlU2NyaXB0KGRvY3VtZW50LCBzb3VyY2VVUkws
IFdURk1vdmUoaW50ZWdyaXR5KSk7CiAgICAgaWYgKCFtX2NhY2hlZFNjcmlwdCkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIG1fc291cmNlVVJMID0gc291cmNlVVJMOworICAgIG1fc291cmNl
VVJMID0gV1RGTW92ZShzb3VyY2VVUkwpOwogCiAgICAgLy8gSWYgdGhlIGNvbnRlbnQgaXMgYWxy
ZWFkeSBjYWNoZWQsIHRoaXMgaW1tZWRpYXRlbHkgY2FsbHMgbm90aWZ5RmluaXNoZWQuCiAgICAg
bV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCgqdGhpcyk7CkBAIC04Myw3ICs4MSw3IEBAIHZvaWQg
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYg
cmVzb3VyY2UsIGNvbnN0IE5lCiAKICAgICBSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBw
cm90ZWN0ZWRUaGlzKCp0aGlzKTsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50
LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgbV9j
bGllbnQtPm5vdGlmeUZpbmlzaGVkKCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9t
aXNlLnJlbGVhc2VOb25OdWxsKCkpOwogCiAgICAgLy8gUmVtb3ZlIHRoZSBjbGllbnQgYWZ0ZXIg
Y2FsbGluZyBub3RpZnlGaW5pc2hlZCB0byBrZWVwIHRoZSBkYXRhIGJ1ZmZlciBpbgogICAgIC8v
IENhY2hlZFJlc291cmNlIGFsaXZlIHdoaWxlIG5vdGlmeUZpbmlzaGVkIHByb2Nlc3NlcyB0aGUg
cmVzb3VyY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlci5oCmluZGV4IDQzYWJkODc1YjI0M2ZhZjVmY2Q0ZDk4ZWMzYzVkMjRl
NzkwYjU3MmUuLmE0ODc1NWY5M2QwNWVmMzUzZDJiM2UyMjhkODIxOWZlODkxZTY3NDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExv
YWRlci5oCkBAIC0yNyw2ICsyNyw4IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVu
dC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiQ2FjaGVk
U2NyaXB0RmV0Y2hlci5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlci5oIgogI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KQEAgLTM0LDQyICszNiwyOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKK2NsYXNzIE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudDsKIGNsYXNzIENhY2hlZFNjcmlwdDsKLWNsYXNzIENhY2hlZFNjcmlwdEZl
dGNoZXI7CiBjbGFzcyBEZWZlcnJlZFByb21pc2U7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEpT
RE9NR2xvYmFsT2JqZWN0OwogY2xhc3MgTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzOwogCi1jbGFzcyBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI+LCBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKK2NsYXNz
IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBNb2R1bGVTY3JpcHRMb2Fk
ZXIsIHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBjcmVhdGUoQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0
cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOworICAgIHN0YXRpYyBSZWY8Q2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyPiBjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQ
cm9taXNlJiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRl
cnM+JiYpOwogCiAgICAgdmlydHVhbCB+Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKCk7CiAKLSAg
ICBib29sIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHNvdXJjZVVSTCk7CisgICAgYm9vbCBs
b2FkKERvY3VtZW50JiwgVVJMJiYgc291cmNlVVJMKTsKIAotICAgIENhY2hlZFNjcmlwdEZldGNo
ZXImIHNjcmlwdEZldGNoZXIoKSB7IHJldHVybiBtX3NjcmlwdEZldGNoZXIuZ2V0KCk7IH0KICAg
ICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCgpIHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0Lmdl
dCgpOyB9Ci0gICAgTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4g
bV9wYXJhbWV0ZXJzLmdldCgpOyB9Ci0gICAgY29uc3QgVVJMJiBzb3VyY2VVUkwoKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZVVSTDsgfQotCi0gICAgdm9pZCBjbGVhckNsaWVudCgpCi0gICAgewot
ICAgICAgICBBU1NFUlQobV9jbGllbnQpOwotICAgICAgICBtX2NsaWVudCA9IG51bGxwdHI7Ci0g
ICAgfQorICAgIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIoKSB7IHJldHVybiBz
dGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVyJj4oTW9kdWxlU2NyaXB0TG9hZGVyOjpzY3Jp
cHRGZXRjaGVyKCkpOyB9CiAKIHByaXZhdGU6Ci0gICAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
KENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hl
ZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKyAgICBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJy
ZWRQcm9taXNlJiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFt
ZXRlcnM+JiYpOwogCiAgICAgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYsIGNv
bnN0IE5ldHdvcmtMb2FkTWV0cmljcyYpIGZpbmFsOwogCi0gICAgQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKLSAgICBSZWZQdHI8RGVmZXJyZWRQ
cm9taXNlPiBtX3Byb21pc2U7Ci0gICAgUmVmPENhY2hlZFNjcmlwdEZldGNoZXI+IG1fc2NyaXB0
RmV0Y2hlcjsKLSAgICBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiBtX3BhcmFtZXRlcnM7
CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdDsK
ICAgICBVUkwgbV9zb3VyY2VVUkw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODY4OGFkOTBkYWUzZWNlOTQ5ZWEwOWIxZWZlZTVkYTI2Zjk0
Yzc4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaAor
KysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOwotY2xhc3MgRGVmZXJyZWRQcm9taXNl
OwotCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgewotcHVibGljOgotICAg
IHZpcnR1YWwgfkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCgpID0gZGVmYXVsdDsKLQot
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIm
LCBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPikgPSAwOwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcAppbmRleCBhNDMzNzU4
NjViYmYxZWM1OTczYmYxNzJjOTFhMzg1MzIzNGUzNzRkLi5kZjNjNmI2ZWJiODRhZjcyZWQyOTU1
Zjk5MTFkMDdhODdhYjM1MzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNy
b3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ3LDYgKzQ4LDcgQEAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRTY3JpcHRGZXRjaGVyOjpyZXF1ZXN0TW9kdWxlU2Ny
aXB0KERvY3UKIAogQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRTY3Jp
cHRGZXRjaGVyOjpyZXF1ZXN0U2NyaXB0V2l0aENhY2hlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgVVJMJiBzb3VyY2VVUkwsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlLCBTdHJpbmcm
JiBpbnRlZ3JpdHksIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiByZXNvdXJjZUxvYWRQ
cmlvcml0eSkgY29uc3QKIHsKKyAgICAvLyBXaXRob3V0IHNjcmlwdGluZywgdGhlcmUgaXMgbm8g
d2F5IHRvIHN0YXJ0IFdvcmtlcnMuCiAgICAgaWYgKCFkb2N1bWVudC5zZXR0aW5ncygpLmlzU2Ny
aXB0RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4IDU4YjdkZjc2MGMw
MGEzMWZmMDhlZDIyZGVlMjJhOGM3NDQzYWU4ZGQuLjlkNjk3ZDQ1OWI1NjM0NWNjODM5NjIwMjY2
NzZlMDBhOThiZjQ5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJKU1dvcmtsZXRH
bG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlJlamVjdGVkUHJvbWlzZVRyYWNrZXIuaCIKICNpbmNs
dWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlZENsb25lLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpT
Q2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC00MjIsNiAr
NDIzLDc5IEBAIEpTQzo6SlNQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVjdDo6aW5zdGFudGlhdGVT
dHJlYW1pbmcoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAjZW5kaWYKIAorc3RhdGljIFNj
cmlwdE1vZHVsZUxvYWRlciogc2NyaXB0TW9kdWxlTG9hZGVyKEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGlm
IChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTRE9NV2luZG93QmFzZT4odm0pKSB7CisgICAgICAg
IGlmIChhdXRvIGRvY3VtZW50ID0ganNDYXN0PGNvbnN0IEpTRE9NV2luZG93QmFzZSo+KGdsb2Jh
bE9iamVjdCktPndyYXBwZWQoKS5kb2N1bWVudCgpKQorICAgICAgICAgICAgcmV0dXJuICZkb2N1
bWVudC0+bW9kdWxlTG9hZGVyKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAg
ICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1JlbW90ZURPTVdpbmRvd0Jhc2U+KHZtKSkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8
SlNXb3JrZXJHbG9iYWxTY29wZUJhc2U+KHZtKSkKKyAgICAgICAgcmV0dXJuICZqc0Nhc3Q8Y29u
c3QgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9k
dWxlTG9hZGVyKCk7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNXb3JrbGV0R2xv
YmFsU2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29ya2xl
dEdsb2JhbFNjb3BlQmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBwZWQoKS5tb2R1bGVMb2FkZXIo
KTsKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5p
bmhlcml0czxKU0lEQlNlcmlhbGl6YXRpb25HbG9iYWxPYmplY3Q+KHZtKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisjZW5kaWYKKyAgICBkYXRhTG9nKCJVbmV4cGVjdGVkIGdsb2JhbCBvYmpl
Y3Q6ICIsIEpTVmFsdWUoZ2xvYmFsT2JqZWN0KSwgIlxuIik7CisgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNDOjpJZGVudGlmaWVy
IEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6
OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBKU0M6
OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09i
amVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAg
ICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAg
ICAgICByZXR1cm4gbG9hZGVyLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBt
b2R1bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0dXJu
IHsgfTsKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Om1v
ZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpK
U01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6
OkpTVmFsdWUgcGFyYW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byog
bG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+ZmV0Y2goZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2Fk
ZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hlcikpOworICAgIEpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOworICAgIHNjb3Bl
LnJlbGVhc2UoKTsKKyAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5l
ZCgpKTsKKyAgICByZXR1cm4gcHJvbWlzZTsKK30KKworSlNDOjpKU1ZhbHVlIEpTRE9NR2xvYmFs
T2JqZWN0Ojptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1v
ZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZl
dGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRl
ciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxvYWRl
ci0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgbW9kdWxl
UmVjb3JkLCBzY3JpcHRGZXRjaGVyKTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwor
fQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9h
ZGVySW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpK
U01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBK
U0M6OkpTVmFsdWUgcGFyYW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9y
aWdpbikKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlz
T2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOwor
ICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisg
ICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbG9hZGVyLT5pbXBvcnRNb2R1bGUoZ2xv
YmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBhcmFtZXRlcnMsIHNvdXJjZU9y
aWdpbikpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3Ry
dWN0dXJlKCkpOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBwcm9taXNlLT5yZWplY3QoZ2xv
YmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gcHJvbWlzZTsKK30KKworSlND
OjpKU09iamVjdCogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1l
dGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01v
ZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpT
TW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQor
eworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3Jp
cHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmNyZWF0
ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVL
ZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0dXJuIGNvbnN0cnVjdEVt
cHR5T2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBl
T2JqZWN0U3RydWN0dXJlKCkpOworfQorCiBKU0RPTUdsb2JhbE9iamVjdCYgY2FsbGVyR2xvYmFs
T2JqZWN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUmIGNh
bGxGcmFtZSkKIHsKICAgICBjbGFzcyBHZXRDYWxsZXJHbG9iYWxPYmplY3RGdW5jdG9yIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCmluZGV4IGI4
NDA3MmRkZDc0NmIzZDZjNTEwNjBkOTA1MDFiNWNlYTFiNDk5YjEuLmY0OWE0Y2QyNTcxOTcxMTg5
MTdhN2Q3YTRiNmMwZTExZmM3NmJhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtMTA1LDYgKzEwNSwxMiBAQCBjbGFzcyBXRUJDT1JF
X0VYUE9SVCBKU0RPTUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0M6OkpTR2xvYmFsT2JqZWN0IHsK
ICAgICBzdGF0aWMgSlNDOjpKU1Byb21pc2UqIGluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNPYmplY3QqKTsKICNlbmRpZgogCisg
ICAgc3RhdGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFs
dWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1v
ZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVy
KiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpT
VmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJJ
bXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBK
U0M6OkpTU3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYpOwor
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJv
cGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7CisKICAgICBKU0RP
TVN0cnVjdHVyZU1hcCBtX3N0cnVjdHVyZXM7CiAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCBtX2Nv
bnN0cnVjdG9yczsKICAgICBET01HdWFyZGVkT2JqZWN0U2V0IG1fZ3VhcmRlZE9iamVjdHM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA1
NjNlZmEwNTcxYjVkNDYyZDllNjQ1MDg5ZjBiZDhmNzdkMTlhNzY4Li4zMTJhMDExNThlOGMyODA4
M2MwN2U0MmRiODcyNDVmZTRlNWM1N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTMzOSw1NCArMzM5LDQgQEAgdm9pZCBKU0RPTVdp
bmRvd0Jhc2U6OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhET01XaW5kb3cq
IHdpbmRvdykKICAgICB9CiB9CiAKLUpTQzo6SWRlbnRpZmllciBKU0RPTVdpbmRvd0Jhc2U6Om1v
ZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBK
U0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVy
KQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9N
V2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9j
dW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJu
IGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5yZXNvbHZlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9h
ZGVyLCBtb2R1bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hlcik7Ci0gICAg
cmV0dXJuIHsgfTsKLX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwg
SlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewot
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlND
Ojpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRy
PERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQot
ICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIo
KS5mZXRjaChnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBwYXJhbWV0ZXJz
LCBzY3JpcHRGZXRjaGVyKSk7Ci0gICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSA9
IEpTQzo6SlNJbnRlcm5hbFByb21pc2U6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5pbnRlcm5h
bFByb21pc2VTdHJ1Y3R1cmUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgpOwotICAgIHByb21pc2Ut
PnJlamVjdChnbG9iYWxPYmplY3QsIGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBwcm9taXNl
OwotfQotCi1KU0M6OkpTVmFsdWUgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dC
YXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2Jq
ZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndy
YXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRl
cigpLmV2YWx1YXRlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVs
ZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsK
LX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2Fk
ZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNTdHJpbmcqIG1vZHVsZU5hbWUsIEpT
Qzo6SlNWYWx1ZSBwYXJhbWV0ZXJzLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYgc291cmNlT3Jp
Z2luKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2Jq
ZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBp
ZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1
bWVudCgpKQotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50LT5tb2R1
bGVMb2FkZXIoKS5pbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVs
ZU5hbWUsIHBhcmFtZXRlcnMsIHNvdXJjZU9yaWdpbikpOwotICAgIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOwotICAgIHNjb3BlLnJlbGVhc2Uo
KTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKLSAg
ICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpKU09iamVjdCogSlNET01XaW5kb3dCYXNlOjpt
b2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpK
U1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkLCBKU0M6
OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmpl
Y3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwotICAgIGlm
IChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3Vt
ZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuY3JlYXRlSW1w
b3J0TWV0YVByb3BlcnRpZXMoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwg
bW9kdWxlUmVjb3JkLCBzY3JpcHRGZXRjaGVyKTsKLSAgICByZXR1cm4gY29uc3RydWN0RW1wdHlP
YmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVPYmpl
Y3RTdHJ1Y3R1cmUoKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggM2VmOTgwZGQyN2Y2YjIx
Mzk4NzAwOGJhNDc2YzhjYTY5ZjJmMGI2NC4uNTE0MmIxYzdkYzI1YzIyZmU5Nzg5NWU3NWFlMjJl
ZjRkMWU1ODlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmgKQEAgLTk5LDEyICs5OSw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2luZG93
QmFzZSA6IHB1YmxpYyBKU0RPTUdsb2JhbE9iamVjdCB7CiBwcml2YXRlOgogICAgIHVzaW5nIFJl
c3BvbnNlQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgY2hhciosIHNpemVfdCk+
OwogCi0gICAgc3RhdGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21p
c2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxl
TG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7Ci0gICAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBK
U0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVM
b2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2Fk
ZXIqLCBKU0M6OkpTU3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdp
biYpOwotICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRN
ZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlcios
IEpTQzo6SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7Ci0KICAg
ICBSZWZQdHI8RE9NV2luZG93PiBtX3dyYXBwZWQ7CiAgICAgUmVmUHRyPEV2ZW50PiBtX2N1cnJl
bnRFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4
ZWNTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGUuaAppbmRl
eCAyN2Y3NjUwZGE2YThlZTQ0ZjM1Zjk0N2Q0OThlYTM4MWM2Yzk0MzFmLi5kNjNlNWFjYzdlMTRj
ODgzMmMwNDk2ZmU1ZTNkNjRlN2NmYmViZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXhlY1N0YXRlLmgKQEAgLTEwMyw2ICsxMDMsMTIgQEAgY2xhc3MgSlNFeGVjU3RhdGUgewog
ICAgICAgICByZXR1cm4gKkpTQzo6bG9hZE1vZHVsZSgmbGV4aWNhbEdsb2JhbE9iamVjdCwgc291
cmNlQ29kZSwgc2NyaXB0RmV0Y2hlcik7CiAgICAgfQogCisgICAgc3RhdGljIEpTQzo6SlNJbnRl
cm5hbFByb21pc2UmIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1
ZSBwYXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKKyAgICB7CisgICAgICAg
IEpTRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgICAg
IHJldHVybiAqSlNDOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUoJmxleGljYWxHbG9iYWxPYmplY3Qs
IG1vZHVsZU5hbWUsIHBhcmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpOworICAgIH0KKwogICAgIHN0
YXRpYyBKU0M6OkpTVmFsdWUgbGlua0FuZEV2YWx1YXRlTW9kdWxlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbW9kdWxlS2V5
LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlciwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiBy
ZXR1cm5lZEV4Y2VwdGlvbikKICAgICB7CiAgICAgICAgIEpTQzo6Vk0mIHZtID0gSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDJiMjZjOWY0ZWEyMTYy
MDdkZTRjODY4MjBiOGE4MWI2MDM1YjdlYi4uMmQ3OTNmZmYyMTg1M2E4YTFhNzg4MDY2NzI1MGY1
N2U3NTJmZTNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNTksMTEgKzU5LDExIEBAIGNvbnN0IEdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVj
dE1ldGhvZFRhYmxlCiAgICAgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsCiAgICAgJnF1ZXVlTWlj
cm90YXNrVG9FdmVudExvb3AsCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVv
dXQsCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZl
dGNoCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRp
ZXMKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2Fk
ZXJJbXBvcnRNb2R1bGUsCisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxv
YWRlckZldGNoLAorICAgICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywK
KyAgICAmbW9kdWxlTG9hZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2Vy
LAogICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50
U2NyaXB0RXhlY3V0aW9uT3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCAzNWZhNmUzMjc3ZmIwZDRi
ZTBlMGUxZWRjNDM3MjJlZGFkZmM4YWYyLi45ZmFlYzk1OWMzOWQxNzQ4MTgxYzk4NjUwMDNkNWE4
NmYxN2Y1ZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmts
ZXRHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTQ5LDExICs0OSwxMSBAQCBjb25zdCBHbG9i
YWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibAogICAgICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLAogICAgIG51bGxwdHIs
IC8vIHF1ZXVlTWljcm90YXNrVG9FdmVudExvb3AKICAgICAmc2hvdWxkSW50ZXJydXB0U2NyaXB0
QmVmb3JlVGltZW91dCwKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUK
LSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJSZXNvbHZlCi0gICAgbnVsbHB0ciwgLy8gbW9k
dWxlTG9hZGVyRmV0Y2gKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRN
ZXRhUHJvcGVydGllcwotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckV2YWx1YXRlCisgICAg
Jm1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSwKKyAgICAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwKKyAg
ICAmbW9kdWxlTG9hZGVyRmV0Y2gsCisgICAgJm1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQ
cm9wZXJ0aWVzLAorICAgICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwKICAgICAmcHJvbWlzZVJlamVj
dGlvblRyYWNrZXIsCiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AsCiAg
ICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE3NDNkNDcwZmVlOGRl
NDA5MWM2NDQyNTA3Y2JjODRhNGRiMmFhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVk
LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRGZXRjaGVyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Owor
CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVTY3Jp
cHRMb2FkZXI+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3JpcHRMb2FkZXIoKSA9
IGRlZmF1bHQ7CisKKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkKKyAgICB7CisgICAgICAgIEFTU0VS
VChtX2NsaWVudCk7CisgICAgICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBK
U0M6OlNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIoKSB7IHJldHVybiBtX3NjcmlwdEZldGNo
ZXIuZ2V0KCk7IH0KKyAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSB7IHJl
dHVybiBtX3BhcmFtZXRlcnMuZ2V0KCk7IH0KKworcHJvdGVjdGVkOgorICAgIE1vZHVsZVNjcmlw
dExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNl
JiBwcm9taXNlLCBKU0M6OlNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1
bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICAgICAgOiBtX2NsaWVudCgmY2xp
ZW50KQorICAgICAgICAsIG1fcHJvbWlzZSgmcHJvbWlzZSkKKyAgICAgICAgLCBtX3NjcmlwdEZl
dGNoZXIoc2NyaXB0RmV0Y2hlcikKKyAgICAgICAgLCBtX3BhcmFtZXRlcnMoV1RGTW92ZShwYXJh
bWV0ZXJzKSkKKyAgICB7CisgICAgfQorCisgICAgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KiBt
X2NsaWVudDsKKyAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBtX3Byb21pc2U7CisgICAgUmVm
PEpTQzo6U2NyaXB0RmV0Y2hlcj4gbV9zY3JpcHRGZXRjaGVyOworICAgIFJlZlB0cjxNb2R1bGVG
ZXRjaFBhcmFtZXRlcnM+IG1fcGFyYW1ldGVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExv
YWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk5NWY0OGVlM2QxZTAyYzFkOGM5YzlkYTJiZDU4MjM2
ZjNiYTA3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01v
ZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyOworY2xhc3MgRGVmZXJyZWRQ
cm9taXNlOworCitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworcHVibGljOgorICAg
IHZpcnR1YWwgfk1vZHVsZVNjcmlwdExvYWRlckNsaWVudCgpID0gZGVmYXVsdDsKKworICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImLCBVUkwmJiwgUmVm
PERlZmVycmVkUHJvbWlzZT4pID0gMDsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGFhNWI4MGI1ODZiNzllMGU1
NzUwMWNkNTEwNzhkZjI1YTYyNWU1ZDkuLjgzODYwMDA1YjZlMWQ1MTMyM2Q4ODk4MmMwNTAzODUz
MmE3ZjJiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1v
ZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9k
dWxlTG9hZGVyLmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hl
ZFNjcmlwdEZldGNoZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKQEAgLTQxLDYgKzQwLDggQEAKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgi
CiAjaW5jbHVkZSAiU3VicmVzb3VyY2VJbnRlZ3JpdHkuaCIKICNpbmNsdWRlICJXZWJDb3JlSlND
bGllbnREYXRhLmgiCisjaW5jbHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5j
bHVkZSAiV29ya2VyU2NyaXB0RmV0Y2hlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Nv
bXBsZXRpb24uaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTW9kdWxlUmVjb3JkLmg+CkBAIC01Miw4ICs1
Myw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2NyaXB0TW9kdWxlTG9hZGVyOjpTY3Jp
cHRNb2R1bGVMb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChkb2N1
bWVudCkKK1NjcmlwdE1vZHVsZUxvYWRlcjo6U2NyaXB0TW9kdWxlTG9hZGVyKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIE93bmVyVHlwZSBvd25lclR5cGUpCisgICAgOiBtX2NvbnRl
eHQoY29udGV4dCkKKyAgICAsIG1fb3duZXJUeXBlKG93bmVyVHlwZSkKIHsKIH0KIApAQCAtNjgs
NyArNzAsNyBAQCBzdGF0aWMgYm9vbCBpc1Jvb3RNb2R1bGUoSlNDOjpKU1ZhbHVlIGltcG9ydGVy
TW9kdWxlS2V5KQogICAgIHJldHVybiBpbXBvcnRlck1vZHVsZUtleS5pc1N5bWJvbCgpIHx8IGlt
cG9ydGVyTW9kdWxlS2V5LmlzVW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBFeHBlY3RlZDxVUkws
IFN0cmluZz4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgc3BlY2lmaWVyLCBjb25zdCBVUkwmIGJhc2VVUkwpCitzdGF0aWMgRXhwZWN0ZWQ8
VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGUgb3duZXJUeXBlLCBjb25z
dCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3QgVVJMJiBiYXNlVVJMKQogewogICAgIC8vIGh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNyZXNvbHZl
LWEtbW9kdWxlLXNwZWNpZmllcgogCkBAIC03OSw3ICs4MSwxMiBAQCBzdGF0aWMgRXhwZWN0ZWQ8
VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBTdAogICAgIGlmICghc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy8nKSAmJiAhc3BlY2lmaWVy
LnN0YXJ0c1dpdGgoIi4vIikgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLi8iKSkKICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1vZHVsZSBzcGVjaWZpZXIsICci
X3MsIHNwZWNpZmllciwgIicgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBc
Ii4uL1wiLiBSZWZlcmVuY2VkIGZyb20gIl9zLCBiYXNlVVJMLnN0cmluZygpKSk7CiAKLSAgICBh
dXRvIHJlc3VsdCA9IGRvY3VtZW50LmNvbXBsZXRlVVJMKHNwZWNpZmllciwgYmFzZVVSTCk7Cisg
ICAgVVJMIHJlc3VsdDsKKyAgICBpZiAob3duZXJUeXBlID09IFNjcmlwdE1vZHVsZUxvYWRlcjo6
T3duZXJUeXBlOjpEb2N1bWVudCkKKyAgICAgICAgcmVzdWx0ID0gZG93bmNhc3Q8RG9jdW1lbnQ+
KGNvbnRleHQpLmNvbXBsZXRlVVJMKHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgZWxzZQorICAg
ICAgICByZXN1bHQgPSBVUkwoYmFzZVVSTCwgc3BlY2lmaWVyKTsKKwogICAgIGlmICghcmVzdWx0
LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1v
ZHVsZSBuYW1lLCAnIl9zLCByZXN1bHQuc3RyaW5nKCksICInIGRvZXMgbm90IHJlc29sdmUgdG8g
YSB2YWxpZCBVUkwuIl9zKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTEwNyw3ICsxMTQsNyBA
QCBKU0M6OklkZW50aWZpZXIgU2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LAogICAgIFVSTCBiYXNlVVJMID0gcmVzcG9uc2VVUkxG
cm9tUmVxdWVzdFVSTCgqanNHbG9iYWxPYmplY3QsIGltcG9ydGVyTW9kdWxlS2V5KTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgYXV0byByZXN1bHQgPSByZXNv
bHZlTW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAg
YXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fY29udGV4dCwgbV9vd25lclR5
cGUsIHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgSlND
Ojp0aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9iamVjdCwgc2NvcGUsIHJlc3VsdC5lcnJvcigpKTsK
ICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE2MSwxMyArMTY4LDE5IEBAIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCog
anNHbG9iYWxPCiAgICAgaWYgKGF1dG8qIHNjcmlwdEZldGNoUGFyYW1ldGVycyA9IEpTQzo6anNE
eW5hbWljQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzKj4odm0sIHBhcmFtZXRlcnMp
KQogICAgICAgICB0b3BMZXZlbEZldGNoUGFyYW1ldGVycyA9IHN0YXRpY19jYXN0PE1vZHVsZUZl
dGNoUGFyYW1ldGVycyo+KCZzY3JpcHRGZXRjaFBhcmFtZXRlcnMtPnBhcmFtZXRlcnMoKSk7CiAK
LSAgICBhdXRvIGxvYWRlciA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlz
LCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19jYXN0PENhY2hlZFNjcmlwdEZldGNoZXIqPihKU0M6
OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hlcio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkp
LCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzKSk7Ci0gICAgbV9sb2FkZXJzLmFkZChs
b2FkZXIuY29weVJlZigpKTsKLSAgICBpZiAoIWxvYWRlci0+bG9hZChtX2RvY3VtZW50LCBjb21w
bGV0ZWRVUkwpKSB7Ci0gICAgICAgIGxvYWRlci0+Y2xlYXJDbGllbnQoKTsKLSAgICAgICAgbV9s
b2FkZXJzLnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOwotICAgICAgICByZWplY3RUb1Byb3BhZ2F0
ZU5ldHdvcmtFcnJvcihkZWZlcnJlZC5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2Fz
RXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7Ci0gICAgICAg
IHJldHVybiBqc1Byb21pc2U7CisgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9j
dW1lbnQpIHsKKyAgICAgICAgYXV0byBsb2FkZXIgPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6
OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRG
ZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNoZXIqPihzY3JpcHRGZXRjaGVy
KS0+ZmV0Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFyYW1ldGVycykpOworICAgICAg
ICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOworICAgICAgICBpZiAoIWxvYWRlci0+
bG9hZChkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KSwgV1RGTW92ZShjb21wbGV0ZWRVUkwp
KSkgeworICAgICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOworICAgICAgICAgICAgbV9s
b2FkZXJzLnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOworICAgICAgICAgICAgcmVqZWN0VG9Qcm9w
YWdhdGVOZXR3b3JrRXJyb3IoZGVmZXJyZWQuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6
Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOworICAg
ICAgICAgICAgcmV0dXJuIGpzUHJvbWlzZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAg
ICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMs
IGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hlcio+KEpTQzo6
anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSks
IFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKKyAgICAgICAgbV9sb2FkZXJzLmFk
ZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgbG9hZGVyLT5sb2FkKG1fY29udGV4dCwgV1RG
TW92ZShjb21wbGV0ZWRVUkwpKTsKICAgICB9CiAKICAgICByZXR1cm4ganNQcm9taXNlOwpAQCAt
MTc2LDcgKzE4OSw3IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRl
cjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPCiBVUkwgU2NyaXB0TW9kdWxl
TG9hZGVyOjptb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QsIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSkKIHsKICAgICBpZiAobW9kdWxlS2V5VmFsdWUuaXNT
eW1ib2woKSkKLSAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQudXJsKCk7CisgICAgICAgIHJldHVy
biBtX2NvbnRleHQudXJsKCk7CiAKICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmco
KSk7CiAgICAgcmV0dXJuIFVSTChVUkwoKSwgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1
ZSgmanNHbG9iYWxPYmplY3QpKTsKQEAgLTE4Nyw4ICsyMDAsMTEgQEAgVVJMIFNjcmlwdE1vZHVs
ZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiBq
c0dsb2JhbE8KICAgICBKU0M6OlZNJiB2bSA9IGpzR2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgaWYgKGlzUm9vdE1vZHVs
ZShtb2R1bGVLZXlWYWx1ZSkpCi0gICAgICAgIHJldHVybiBtX2RvY3VtZW50LmJhc2VVUkwoKTsK
KyAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkgeworICAgICAgICBpZiAobV9v
d25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5iYXNlVVJMKCk7CisgICAgICAgIHJldHVybiBtX2Nv
bnRleHQudXJsKCk7CisgICAgfQogCiAgICAgQVNTRVJUKCFpc1Jvb3RNb2R1bGUobW9kdWxlS2V5
VmFsdWUpKTsKICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CkBAIC0yMTks
OCArMjM1LDE0IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKCiAgICAgaWYgKCFzb3VyY2VVUkwu
aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9i
amVjdCwgc2NvcGUsICJNb2R1bGUga2V5IGlzIGFuIGludmFsaWQgVVJMLiJfcyk7CiAKLSAgICBp
ZiAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFt
ZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAg
ICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBpZiAo
YXV0byogZnJhbWUgPSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5mcmFtZSgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkws
ICptb2R1bGVSZWNvcmQpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChpczxXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZT4obV9jb250ZXh0KSk7CisgICAgICAgIGlmIChhdXRvKiBzY3Jp
cHQgPSBkb3duY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZT4obV9jb250ZXh0KS5zY3Jp
cHQoKSkKKyAgICAgICAgICAgIHJldHVybiBzY3JpcHQtPmV2YWx1YXRlTW9kdWxlKCptb2R1bGVS
ZWNvcmQpOworICAgIH0KICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwogfQogCkBAIC0y
NDgsOCArMjcwLDEzIEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRl
cjo6aW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzCiAgICAgVVJMIGJhc2VVUkw7
CiAgICAgUmVmUHRyPEpTQzo6U2NyaXB0RmV0Y2hlcj4gc2NyaXB0RmV0Y2hlcjsKICAgICBpZiAo
c291cmNlT3JpZ2luLmlzTnVsbCgpKSB7Ci0gICAgICAgIGJhc2VVUkwgPSBtX2RvY3VtZW50LmJh
c2VVUkwoKTsKLSAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNy
ZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7CisgICAgICAgIGlmIChtX293bmVyVHlwZSA9PSBP
d25lclR5cGU6OkRvY3VtZW50KSB7CisgICAgICAgICAgICBiYXNlVVJMID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KG1fY29udGV4dCkuYmFzZVVSTCgpOworICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9
IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0
KS5jaGFyc2V0KCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFzZVVSTCA9IG1f
Y29udGV4dC51cmwoKTsKKyAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBXb3JrZXJTY3JpcHRG
ZXRjaGVyOjpjcmVhdGUoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbik7Cisg
ICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBiYXNlVVJMID0gVVJMKFVSTCgpLCBzb3Vy
Y2VPcmlnaW4uc3RyaW5nKCkpOwogICAgICAgICBpZiAoIWJhc2VVUkwuaXNWYWxpZCgpKQpAQCAt
MjU3LDE0ICsyODQsMTkgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9h
ZGVyOjppbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganMKIAogICAgICAgICBpZiAo
c291cmNlT3JpZ2luLmZldGNoZXIoKSkKICAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBzb3Vy
Y2VPcmlnaW4uZmV0Y2hlcigpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzY3JpcHRGZXRj
aGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKG1fZG9jdW1lbnQuY2hhcnNldCgpKTsK
KworICAgICAgICBpZiAoIXNjcmlwdEZldGNoZXIpIHsKKyAgICAgICAgICAgIGlmIChtX293bmVy
VHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KQorICAgICAgICAgICAgICAgIHNjcmlwdEZldGNo
ZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29u
dGV4dCkuY2hhcnNldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzY3Jp
cHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHM6OlNhbWVPcmlnaW4pOworICAgICAgICB9CiAgICAgfQogICAgIEFTU0VSVChiYXNl
VVJMLmlzVmFsaWQoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEZldGNoZXIpOwogCiAgICAgYXV0byBz
cGVjaWZpZXIgPSBtb2R1bGVOYW1lLT52YWx1ZShqc0dsb2JhbE9iamVjdCk7Ci0gICAgYXV0byBy
ZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmllciwgYmFz
ZVVSTCk7CisgICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fY29udGV4
dCwgbV9vd25lclR5cGUsIHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1bHQpCiAg
ICAgICAgIHJldHVybiByZWplY3RQcm9taXNlKGdsb2JhbE9iamVjdCwgVHlwZUVycm9yLCByZXN1
bHQuZXJyb3IoKSk7CiAKQEAgLTI4OCw2MiArMzIwLDEwNyBAQCBKU0M6OkpTT2JqZWN0KiBTY3Jp
cHRNb2R1bGVMb2FkZXI6OmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxP
YmplYwogICAgIHJldHVybiBtZXRhUHJvcGVydGllczsKIH0KIAotdm9pZCBTY3JpcHRNb2R1bGVM
b2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciYgbG9hZGVyLCBS
ZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBwcm9taXNlKQordm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6
Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVyLCBV
UkwmJiBzb3VyY2VVUkwsIFJlZjxEZWZlcnJlZFByb21pc2U+IHByb21pc2UpCiB7CiAgICAgLy8g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2Zl
dGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKIAotICAgIFVSTCBzb3VyY2VVUkwgPSBsb2FkZXIu
c291cmNlVVJMKCk7Ci0gICAgaWYgKCFtX2xvYWRlcnMucmVtb3ZlKCZsb2FkZXIpKQorICAgIGlm
ICghbV9sb2FkZXJzLnJlbW92ZSgmbW9kdWxlU2NyaXB0TG9hZGVyKSkKICAgICAgICAgcmV0dXJu
OwotICAgIGxvYWRlci5jbGVhckNsaWVudCgpOworICAgIG1vZHVsZVNjcmlwdExvYWRlci5jbGVh
ckNsaWVudCgpOwogCi0gICAgYXV0byYgY2FjaGVkU2NyaXB0ID0gKmxvYWRlci5jYWNoZWRTY3Jp
cHQoKTsKKyAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAg
ICAgICBhdXRvJiBsb2FkZXIgPSBzdGF0aWNfY2FzdDxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIm
Pihtb2R1bGVTY3JpcHRMb2FkZXIpOworICAgICAgICBhdXRvJiBjYWNoZWRTY3JpcHQgPSAqbG9h
ZGVyLmNhY2hlZFNjcmlwdCgpOwogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC5yZXNvdXJjZUVycm9y
KCkuaXNBY2Nlc3NDb250cm9sKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJv
ciwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291
cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAg
IGlmIChjYWNoZWRTY3JpcHQucmVzb3VyY2VFcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7Cisg
ICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCAiQ3Jvc3Mtb3JpZ2luIHNjcmlw
dCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIl9z
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYgKGNhY2hlZFNjcmlw
dC5lcnJvck9jY3VycmVkKCkpIHsKLSAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJy
b3IoKnByb21pc2UsIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRp
bmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwotICAgICAgICByZXR1cm47Ci0gICAgfQor
ICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LmVycm9yT2NjdXJyZWQoKSkgeworICAgICAgICAgICAg
cmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVk
LiJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIGlmIChjYWNoZWRT
Y3JpcHQud2FzQ2FuY2VsZWQoKSkgewotICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtF
cnJvcigqcHJvbWlzZSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2VsZWQsICJJbXBv
cnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQud2FzQ2FuY2VsZWQoKSkgeworICAgICAg
ICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxl
RmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0
IGlzIGNhbmNlbGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAg
IGlmICghTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUoY2Fj
aGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSkpIHsKLSAgICAgICAgLy8gaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2lu
Z2xlLW1vZHVsZS1zY3JpcHQKLSAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEg
TUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVy
cykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCi0gICAgICAgIC8vIEZvciBoaXN0b3Jp
Y2FsIHJlYXNvbnMsIGZldGNoaW5nIGEgY2xhc3NpYyBzY3JpcHQgZG9lcyBub3QgaW5jbHVkZSBN
SU1FIHR5cGUgY2hlY2tpbmcuIEluIGNvbnRyYXN0LCBtb2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwg
dG8gbG9hZCBpZiB0aGV5IGFyZSBub3Qgb2YgYSBjb3JyZWN0IE1JTUUgdHlwZS4KLSAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGNhY2hlZFNjcmlwdC5y
ZXNwb25zZSgpLm1pbWVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0
eXBlLiIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYgKCFNSU1FVHlwZVJl
Z2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjYWNoZWRTY3JpcHQucmVzcG9u
c2UoKS5taW1lVHlwZSgpKSkgeworICAgICAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hh
dHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1z
Y3JpcHQKKyAgICAgICAgICAgIC8vIFRoZSByZXN1bHQgb2YgZXh0cmFjdGluZyBhIE1JTUUgdHlw
ZSBmcm9tIHJlc3BvbnNlJ3MgaGVhZGVyIGxpc3QgKGlnbm9yaW5nIHBhcmFtZXRlcnMpIGlzIG5v
dCBhIEphdmFTY3JpcHQgTUlNRSB0eXBlLgorICAgICAgICAgICAgLy8gRm9yIGhpc3RvcmljYWwg
cmVhc29ucywgZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBkb2VzIG5vdCBpbmNsdWRlIE1JTUUg
dHlwZSBjaGVja2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBzY3JpcHRzIHdpbGwgZmFpbCB0byBs
b2FkIGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlNRSB0eXBlLgorICAgICAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGNhY2hlZFNjcmlwdC5y
ZXNwb25zZSgpLm1pbWVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0
eXBlLiIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChh
dXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgICAgaWYg
KCFtYXRjaEludGVncml0eU1ldGFkYXRhKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+aW50ZWdy
aXR5KCkpKSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFr
ZVN0cmluZygiQ2Fubm90IGxvYWQgc2NyaXB0ICIsIGludGVncml0eU1pc21hdGNoRGVzY3JpcHRp
b24oY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBVUkwgcmVz
cG9uc2VVUkwgPSBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKTsKKyAgICAgICAgLy8gSWYg
d2UgZG8gbm90IGhhdmUgcmVkaXJlY3Rpb24sIHdlIG11c3QgcmVzZXJ2ZSB0aGUgc291cmNlIFVS
TCdzIGZyYWdtZW50IGV4cGxpY2l0bHkgaGVyZSBzaW5jZSBSZXNvdXJjZVJlc3BvbnNlOjp1cmwo
KSBpcyB0aGUgb25lIHdoZW4gd2UgZmlyc3QgY2FjaGUgaXQgdG8gTWVtb3J5Q2FjaGUuCisgICAg
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJhY2sgZnJhZ21lbnRzIHRocm91Z2ggcmVkaXJlY3Rp
b25zLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU4NDIwCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTA0OTAKKyAgICAgICAgaWYgKCFjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCkgJiYg
Y2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291
cmNlOjpTZXJ2aWNlV29ya2VyKSB7CisgICAgICAgICAgICBpZiAoc291cmNlVVJMLmhhc0ZyYWdt
ZW50SWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIHJlc3BvbnNlVVJMLnNldEZyYWdtZW50
SWRlbnRpZmllcihzb3VyY2VVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgICAgICB9CisK
KyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmlu
ZygpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSk7CisgICAgICAgIHByb21pc2UtPnJlc29sdmVXaXRo
Q2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QpIHsKKyAgICAg
ICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZt
KCksCisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291cmNlQ29kZSB7
ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUsIGxv
YWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUoKSB9KTsKKyAgICAgICAgfSk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byYgbG9hZGVyID0gc3RhdGljX2Nhc3Q8V29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVyKTsKKyAgICAgICAgYXV0byYgd29y
a2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRlcigpOwogCi0gICAgaWYgKGF1dG8q
IHBhcmFtZXRlcnMgPSBsb2FkZXIucGFyYW1ldGVycygpKSB7Ci0gICAgICAgIGlmICghbWF0Y2hJ
bnRlZ3JpdHlNZXRhZGF0YShjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkg
ewotICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiQ2Fu
bm90IGxvYWQgc2NyaXB0ICIsIGludGVncml0eU1pc21hdGNoRGVzY3JpcHRpb24oY2FjaGVkU2Ny
aXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpKTsKKyAgICAgICAgaWYgKHdvcmtlclNjcmlw
dExvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgaWYgKHdvcmtlclNjcmlwdExvYWRlci5l
cnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KFR5cGVFcnJvciwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3Mt
T3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVy
LmVycm9yKCkuaXNDYW5jZWxsYXRpb24oKSkgeworICAgICAgICAgICAgICAgIHJlamVjdFRvUHJv
cGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6
Oldhc0NhbmNlbGVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4iX3Mp
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
cmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVk
LiJfcyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICBVUkwg
cmVzcG9uc2VVUkwgPSBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKTsKLSAgICAvLyBJZiB3
ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJM
J3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgp
IGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KLSAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNrIGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4K
LSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCi0g
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAotICAg
IGlmICghY2FjaGVkU2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpICYmIGNhY2hlZFNjcmlwdC5yZXNw
b25zZSgpLnNvdXJjZSgpICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtl
cikgewotICAgICAgICBpZiAoc291cmNlVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQotICAg
ICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFn
bWVudElkZW50aWZpZXIoKSk7Ci0gICAgfQorICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25z
ZU1JTUVUeXBlKCkpKSB7CisgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cu
b3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlw
dAorICAgICAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZy
b20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEg
SmF2YVNjcmlwdCBNSU1FIHR5cGUuCisgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFz
b25zLCBmZXRjaGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBl
IGNoZWNraW5nLiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQg
aWYgdGhleSBhcmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCisgICAgICAgICAgICBwcm9t
aXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVy
LnJlc3BvbnNlTUlNRVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5
cGUuIikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICBtX3JlcXVlc3RV
UkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9u
c2VVUkwpKTsKLSAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9i
YWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7Ci0gICAgICAgIHJldHVybiBKU0M6OkpTU291cmNl
Q29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCi0gICAgICAgICAgICBKU0M6OlNvdXJj
ZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92
aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNl
Q29kZSgpIH0pOwotICAgIH0pOworICAgICAgICBVUkwgcmVzcG9uc2VVUkwgPSB3b3JrZXJTY3Jp
cHRMb2FkZXIucmVzcG9uc2VVUkwoKTsKKworICAgICAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSBy
ZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhw
bGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hl
biB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCB0cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRpcmVjdGlvbnMuCisgICAgICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKyAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAorICAgICAg
ICBpZiAoIXdvcmtlclNjcmlwdExvYWRlci5pc1JlZGlyZWN0ZWQoKSAmJiB3b3JrZXJTY3JpcHRM
b2FkZXIucmVzcG9uc2VTb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZp
Y2VXb3JrZXIpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlm
aWVyKCkpCisgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVy
KHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgICAgIH0KKworICAgICAgICBt
X3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIHJlc3Bv
bnNlVVJMKTsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9N
R2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6
SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKKyAgICAgICAgICAgICAg
ICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0TG9hZGVy
LnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2Rl
KCkgfSk7CisgICAgICAgIH0pOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAppbmRleCBkZTI5ZDJmNGJmMDk2YjYwYzM2
OTk4MDMxNmMxNDg2YjI4MmFiZjA5Li5kZjM0ZDU1MWExMWNkOThmNGUyMzZhMmFhMWY0ODI3OWQ5
NjRjNjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuaApAQCAtMjUsOCArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudC5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUg
Ik1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
Q0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgpAQCAtNDUsMTYgKzQ1LDE3IEBAIGNsYXNzIFNvdXJjZU9yaWdpbjsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2Jq
ZWN0OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotY2xhc3MgU2NyaXB0TW9kdWxl
TG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgewor
Y2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBNb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNjcmlwdE1vZHVsZUxvYWRlcik7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFNjcmlwdE1v
ZHVsZUxvYWRlcihEb2N1bWVudCYpOworICAgIGVudW0gY2xhc3MgT3duZXJUeXBlIDogdWludDhf
dCB7IERvY3VtZW50LCBXb3JrZXJPcldvcmtsZXQgfTsKKyAgICBleHBsaWNpdCBTY3JpcHRNb2R1
bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE93bmVyVHlwZSk7CiAgICAgflNjcmlw
dE1vZHVsZUxvYWRlcigpOwogCi0gICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gbV9k
b2N1bWVudDsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQoKSB7IHJldHVy
biBtX2NvbnRleHQ7IH0KIAogICAgIEpTQzo6SWRlbnRpZmllciByZXNvbHZlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUs
IEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNo
ZXIpOwogICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpK
U1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTYzLDEz
ICs2NCwxNSBAQCBjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7CiAgICAgSlNDOjpKU09iamVjdCogY3JlYXRlSW1w
b3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2Fk
ZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwog
CiBwcml2YXRlOgotICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyJiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4pIGZpbmFsOworICAgIHZvaWQgbm90aWZ5Rmlu
aXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSBm
aW5hbDsKKwogICAgIFVSTCBtb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNW
YWx1ZSk7CiAgICAgVVJMIHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9i
amVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBtX2NvbnRleHQ7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVS
TD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKLSAgICBIYXNoU2V0PFJlZjxDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7CisgICAgSGFzaFNldDxSZWY8TW9kdWxlU2Ny
aXB0TG9hZGVyPj4gbV9sb2FkZXJzOworICAgIE93bmVyVHlwZSBtX293bmVyVHlwZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdFNvdXJjZUNvZGUuaAppbmRleCBjNzA0NjI2ZmI3MzNkYjQ3MmJkYTUwMjM2MjQxYTZlNzQw
ZTI3ODJiLi4xMGZhN2U4YjQ0OWM4Yjg0OWViMzdjYzFmMmM4NjZmYTg5M2FhZDZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCkBAIC01Nyw3ICs1
Nyw3IEBAIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGUgewogICAgIHsKICAgICB9CiAKLSAgICBTY3Jp
cHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQ
b3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291
cmNlVHlwZSwgUmVmPENhY2hlZFNjcmlwdEZldGNoZXI+JiYgc2NyaXB0RmV0Y2hlcikKKyAgICBT
Y3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRl
eHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUg
c291cmNlVHlwZSwgUmVmPEpTQzo6U2NyaXB0RmV0Y2hlcj4mJiBzY3JpcHRGZXRjaGVyKQogICAg
ICAgICA6IG1fcHJvdmlkZXIoSlNDOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJj
ZSwgSlNDOjpTb3VyY2VPcmlnaW4geyB1cmwsIFdURk1vdmUoc2NyaXB0RmV0Y2hlcikgfSwgdXJs
LnN0cmluZygpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSkKICAgICAgICAgLCBtX2NvZGUo
bV9wcm92aWRlci5jb3B5UmVmKCksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCks
IHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSkKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lNjJjZjMyYWI2YWYyODYyOTY3MTUzZGNkODUxZjgzNzgyM2UzZmFiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmNwcApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorCisjaW5j
bHVkZSAiQ2FjaGVkU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5o
IgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRl
cnMuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKKyNpbmNsdWRlICJTY3Jp
cHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCisjaW5jbHVk
ZSAiU2NyaXB0U291cmNlQ29kZS5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlci5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI+IFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYg
Y2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIFdvcmtlclNjcmlwdEZldGNoZXImIHNj
cmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykK
K3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoY2xp
ZW50LCBwcm9taXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSk7Cit9CisK
K1dvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIFdv
cmtlclNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFt
ZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICA6IE1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQsIHBy
b21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1vdmUocGFyYW1ldGVycykpCisgICAgLCBtX3Njcmlw
dExvYWRlcihXb3JrZXJTY3JpcHRMb2FkZXI6OmNyZWF0ZSgpKQoreworfQorCitXb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXI6On5Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoKQoreworICAgIG1fc2Ny
aXB0TG9hZGVyLT5jYW5jZWwoKTsKK30KKworYm9vbCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6
OmxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVVJMJiYgc291cmNlVVJMKQor
eworICAgIG1fc291cmNlVVJMID0gV1RGTW92ZShzb3VyY2VVUkwpOworCisgICAgUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QgeyBtX3NvdXJjZVVSTCB9OworCisgICAgRmV0Y2hPcHRpb25zIGZldGNo
T3B0aW9uczsKKyAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29y
czsKKyAgICBmZXRjaE9wdGlvbnMuY2FjaGUgPSBGZXRjaE9wdGlvbnM6OkNhY2hlOjpEZWZhdWx0
OworICAgIGZldGNoT3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZv
bGxvdzsKKyAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSBzdGF0aWNfY2FzdDxXb3JrZXJT
Y3JpcHRGZXRjaGVyJj4oc2NyaXB0RmV0Y2hlcigpKS5jcmVkZW50aWFscygpOworICAgIGF1dG8g
Y29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgPSBjb250ZXh0LnNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5m
b3JjZW1lbnQ6OkRvTm90RW5mb3JjZSA6IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50
OjpFbmZvcmNlQ2hpbGRTcmNEaXJlY3RpdmU7CisKKyAgICBTdHJpbmcgdGFza01vZGUgPSAibG9h
ZE1vZHVsZXNJbldvcmtlck9yV29ya2xldE1vZGUiX3M7CisgICAgbV9zY3JpcHRMb2FkZXItPmxv
YWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNo
T3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vy
c01vZGU6OkFsbCwgKnRoaXMsIFdURk1vdmUodGFza01vZGUpKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKCkKK3sK
KyAgICBBU1NFUlQobV9wcm9taXNlKTsKKworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpOworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZp
bmlzaGVkKCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25O
dWxsKCkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxMDA4MGVlOTMxYmZiMGIzM2E5
ZjU0NzNiMjk3Y2EyZGMyZTQ3NTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApAQCAtMCwwICsxLDY0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNb2R1bGVTY3JpcHRMb2FkZXIu
aCIKKyNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYv
UmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERlZmVycmVkUHJvbWlzZTsKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgTW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIE1v
ZHVsZVNjcmlwdExvYWRlckNsaWVudDsKK2NsYXNzIFdvcmtlclNjcmlwdExvYWRlcjsKKworY2xh
c3MgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExv
YWRlciwgcHJpdmF0ZSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQgeworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyPiBjcmVhdGUoTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgV29ya2VyU2NyaXB0RmV0Y2hlciYsIFJlZlB0
cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOworCisgICAgdmlydHVhbCB+V29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyKCk7CisKKyAgICBib29sIGxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IFVSTCYmIHNvdXJjZVVSTCk7CisKKyAgICBXb3JrZXJTY3JpcHRMb2FkZXImIHNjcmlwdExvYWRl
cigpIHsgcmV0dXJuIG1fc2NyaXB0TG9hZGVyLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVk
UHJvbWlzZSYsIFdvcmtlclNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzPiYmKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7IH0KKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVk
KCkgZmluYWw7CisKKyAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsK
KyAgICBVUkwgbV9zb3VyY2VVUkw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRGZXRjaGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRGZXRjaGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjZiNTRlZjg5NGI1MzNlYWZjZWJjMWExNGJmMjc2YTAzZWNiYTEwYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIu
aApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJMb2FkYWJsZVNjcmlwdC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEZldGNo
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRTY3JpcHQ7Citj
bGFzcyBEb2N1bWVudDsKKworY2xhc3MgV29ya2VyU2NyaXB0RmV0Y2hlciBmaW5hbCA6IHB1Ymxp
YyBKU0M6OlNjcmlwdEZldGNoZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V29ya2VyU2Ny
aXB0RmV0Y2hlcj4gY3JlYXRlKEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJTY3JpcHRGZXRjaGVy
KGNyZWRlbnRpYWxzKSk7CisgICAgfQorCisgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBj
cmVkZW50aWFscygpIGNvbnN0IHsgcmV0dXJuIG1fY3JlZGVudGlhbHM7IH0KKworICAgIHZvaWQg
bm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYgbW9kdWxlS2V5KQorICAgIHsK
KyAgICAgICAgbV9tb2R1bGVLZXkgPSAmbW9kdWxlS2V5OworICAgICAgICBtX2lzTG9hZGVkID0g
dHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIG5vdGlmeUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6
OkVycm9yJiYgZXJyb3IpCisgICAgeworICAgICAgICBtX2Vycm9yID0gV1RGTW92ZShlcnJvcik7
CisgICAgICAgIG1faXNMb2FkZWQgPSB0cnVlOworICAgIH0KKworICAgIHZvaWQgbm90aWZ5TG9h
ZFdhc0NhbmNlbGVkKCkKKyAgICB7CisgICAgICAgIG1fd2FzQ2FuY2VsZWQgPSB0cnVlOworICAg
ICAgICBtX2lzTG9hZGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIGlzTG9hZGVkKCkgY29u
c3QgeyByZXR1cm4gbV9pc0xvYWRlZDsgfQorICAgIE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpF
cnJvcj4gZXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yOyB9CisgICAgYm9vbCB3YXNDYW5j
ZWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzQ2FuY2VsZWQ7IH0KKyAgICBVbmlxdWVkU3RyaW5n
SW1wbCogbW9kdWxlS2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0KKwor
cHJvdGVjdGVkOgorICAgIFdvcmtlclNjcmlwdEZldGNoZXIoRmV0Y2hPcHRpb25zOjpDcmVkZW50
aWFscyBjcmVkZW50aWFscykKKyAgICAgICAgOiBtX2NyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKQor
ICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBt
X2NyZWRlbnRpYWxzOworICAgIFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gbV9tb2R1bGVLZXk7
CisgICAgT3B0aW9uYWw8TG9hZGFibGVTY3JpcHQ6OkVycm9yPiBtX2Vycm9yOworICAgIGJvb2wg
bV93YXNDYW5jZWxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzTG9hZGVkIHsgZmFsc2UgfTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IDliMjEzOGI3N2MxODBkNzIwOTUxODAwZTE0ZTM0N2ExNDNlOTcxNzEuLjU0Y2ZmMDRhOTZkYmM4
MDlkNjM2YWFlYzhlY2IyMDVlNDY3N2YwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
NjE1LDcgKzYxNSw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFNl
dHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJMJiB1cmwsIERvY3VtCiAgICAgLCBtX2RvY3VtZW50
Q3JlYXRpb25UaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogI2VuZGlmCiAgICAgLCBtX3Njcmlw
dFJ1bm5lcihtYWtlVW5pcXVlPFNjcmlwdFJ1bm5lcj4oKnRoaXMpKQotICAgICwgbV9tb2R1bGVM
b2FkZXIobWFrZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KCp0aGlzKSkKKyAgICAsIG1fbW9k
dWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9hZGVyPigqdGhpcywgU2NyaXB0TW9k
dWxlTG9hZGVyOjpPd25lclR5cGU6OkRvY3VtZW50KSkKICNpZiBFTkFCTEUoWFNMVCkKICAgICAs
IG1fYXBwbHlQZW5kaW5nWFNMVHJhbnNmb3Jtc1RpbWVyKCp0aGlzLCAmRG9jdW1lbnQ6OmFwcGx5
UGVuZGluZ1hTTFRyYW5zZm9ybXNUaW1lckZpcmVkKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcAppbmRleCA5YTI1YzE2NTg4ZWVjYWQ2NzhmYjkx
MWVjODYyMmY0MjQyNTkyYjVhLi40OGVjMDg1MWE0NTdkOWJhNDc0NzNmZWMyOGQ3YjQ5MzEyYjc4
OGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKQEAg
LTg4LDE2ICs4OCw0IEBAIHZvaWQgTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmV4ZWN1dGUoU2NyaXB0
RWxlbWVudCYgc2NyaXB0RWxlbWVudCkKICAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVNb2R1bGVT
Y3JpcHQoKnRoaXMpOwogfQogCi12b2lkIExvYWRhYmxlTW9kdWxlU2NyaXB0Ojpsb2FkKERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiByb290VVJMKQotewotICAgIGlmIChhdXRvKiBmcmFt
ZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxl
U2NyaXB0KCp0aGlzLCByb290VVJMLnN0cmluZygpLCBtX3BhcmFtZXRlcnMuY29weVJlZigpKTsK
LX0KLQotdm9pZCBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCi17Ci0gICAgaWYgKGF1dG8qIGZy
YW1lID0gZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1
bGVTY3JpcHQoKnRoaXMsIHNvdXJjZUNvZGUpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9M
b2FkYWJsZU1vZHVsZVNjcmlwdC5oCmluZGV4IGJiNzk5NTRkN2I5OWIwZWQwNmJmZTU1ZWY4NTRl
Y2NlMjFmMzU4NzcuLmQyNTM1OTYzZjY0OGIwMmE4YTAxZmQ2M2JiMWUzODEzODZjZWU0MzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oCkBAIC01MCwxNSArNTAs
MTQgQEAgY2xhc3MgTG9hZGFibGVNb2R1bGVTY3JpcHQgZmluYWwgOiBwdWJsaWMgTG9hZGFibGVT
Y3JpcHQgewogCiAgICAgdm9pZCBzZXRFcnJvcihFcnJvciYmKTsKIAotICAgIHZvaWQgbG9hZChE
b2N1bWVudCYsIGNvbnN0IFVSTCYgcm9vdFVSTCk7Ci0gICAgdm9pZCBsb2FkKERvY3VtZW50Jiwg
Y29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwotCiAgICAgdm9pZCBub3RpZnlMb2FkQ29tcGxldGVk
KFVuaXF1ZWRTdHJpbmdJbXBsJik7CiAgICAgdm9pZCBub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxl
U2NyaXB0OjpFcnJvciYmKTsKICAgICB2b2lkIG5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpOwogCiAg
ICAgVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxl
S2V5LmdldCgpOyB9CiAKKyAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMoKSB7
IHJldHVybiBtX3BhcmFtZXRlcnMuZ2V0KCk7IH0KKwogcHJpdmF0ZToKICAgICBMb2FkYWJsZU1v
ZHVsZVNjcmlwdChjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGludGVncml0eSwg
UmVmZXJyZXJQb2xpY3ksIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlLCBjb25zdCBTdHJp
bmcmIGNoYXJzZXQsIGNvbnN0IEF0b21TdHJpbmcmIGluaXRpYXRvck5hbWUsIGJvb2wgaXNJblVz
ZXJBZ2VudFNoYWRvd1RyZWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5k
ZXggMDU3NThiNjAwYzc1MjJiNDdmMzY0YmE2YTE4ZDM1ZjE3MzExMDdmOS4uNWU5OWYwZjU3Nzdi
M2IyMTU4ZGQwZmE0YmMzODI3NzZjZGIzNDgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkxvYWRhYmxlQ2xhc3NpY1Njcmlw
dC5oIgogI2luY2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0LmgiCiAjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIlBlbmRpbmdTY3JpcHQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aCIKICNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCkBAIC0zNTEsOCArMzUyLDExIEBAIGJv
b2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVsZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24m
IHNjcmlwdFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICBzY3JpcHRDaGFyc2V0KCksCiAgICAg
ICAgICAgICBtX2VsZW1lbnQubG9jYWxOYW1lKCksCiAgICAgICAgICAgICBtX2VsZW1lbnQuaXNJ
blVzZXJBZ2VudFNoYWRvd1RyZWUoKSk7Ci0gICAgICAgIHNjcmlwdC0+bG9hZChtX2VsZW1lbnQu
ZG9jdW1lbnQoKSwgbW9kdWxlU2NyaXB0Um9vdFVSTCk7CiAgICAgICAgIG1fbG9hZGFibGVTY3Jp
cHQgPSBXVEZNb3ZlKHNjcmlwdCk7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fZWxlbWVu
dC5kb2N1bWVudCgpLmZyYW1lKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHNjcmlwdCA9IGRvd25j
YXN0PExvYWRhYmxlTW9kdWxlU2NyaXB0PigqbV9sb2FkYWJsZVNjcmlwdC5nZXQoKSk7CisgICAg
ICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdChzY3JpcHQsIG1vZHVsZVNj
cmlwdFJvb3RVUkwuc3RyaW5nKCksIG1ha2VSZWYoc2NyaXB0LnBhcmFtZXRlcnMoKSkpOworICAg
ICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMzY3LDggKzM3MSw5IEBA
IGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVsZVNjcmlwdChjb25zdCBUZXh0UG9zaXRp
b24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiAgICAgaWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3ku
YWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LmRvY3VtZW50KCkudXJsKCkuc3RyaW5nKCksIG1f
c3RhcnRMaW5lTnVtYmVyLCBzb3VyY2VDb2RlLnNvdXJjZSgpLnRvU3RyaW5nV2l0aG91dENvcHlp
bmcoKSwgaGFzS25vd25Ob25jZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHNjcmlw
dC0+bG9hZChtX2VsZW1lbnQuZG9jdW1lbnQoKSwgc291cmNlQ29kZSk7CiAgICAgbV9sb2FkYWJs
ZVNjcmlwdCA9IFdURk1vdmUoc2NyaXB0KTsKKyAgICBpZiAoYXV0byogZnJhbWUgPSBtX2VsZW1l
bnQuZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVs
ZVNjcmlwdChkb3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4oKm1fbG9hZGFibGVTY3JpcHQu
Z2V0KCkpLCBzb3VyY2VDb2RlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IDI3MTdjODYxYzc0YjBmMmFlYmNk
ZTQwODcwMGUyYTlhMDM3Mzc1OTUuLjFiNjUzMmMzYjBlYWE4MGQ5YmQ0NmM2ZDQzMjEzNjk2MjFj
MDE5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKQEAg
LTEwMSwxMCArMTAxLDEwIEBAIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIFRocmVhZGFibGVMb2Fk
ZXJPcHRpb25zOjppc29sYXRlZENvcHkoKSBjb25zdAogfQogCiAKLVJlZlB0cjxUaHJlYWRhYmxl
TG9hZGVyPiBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgU3RyaW5n
JiYgcmVmZXJyZXIpCitSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gVGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRocmVhZGFibGVMb2FkZXJD
bGllbnQmIGNsaWVudCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJs
ZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMsIFN0cmluZyYmIHJlZmVycmVyLCBTdHJpbmcmJiB0YXNr
TW9kZSkKIHsKICAgICBpZiAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpIHx8IChpczxX
b3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpICYmIGRvd25jYXN0PFdvcmtsZXRHbG9iYWxTY29w
ZT4oY29udGV4dCkud29ya2VyT3JXb3JrbGV0VGhyZWFkKCkpKQotICAgICAgICByZXR1cm4gV29y
a2VyVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlJj4oY29udGV4dCksIGNsaWVudCwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUo
KSwgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucywgV1RGTW92ZShyZWZlcnJlcikpOworICAgICAg
ICByZXR1cm4gV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlJj4oY29udGV4dCksIGNsaWVudCwgV1RGTW92ZSh0YXNrTW9k
ZSksIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMsIFdURk1vdmUocmVmZXJyZXIpKTsKIAogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IG51bGxwdHI7CiAgICAgaWYgKGlzPFdvcmtsZXRHbG9iYWxT
Y29wZT4oY29udGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFk
YWJsZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaApp
bmRleCBjMmIyNDVjM2ViYjhiYzkzMGVmNGQxNzJiYTE1MDlhMTc5ZjFkN2E2Li4xYWM3MDRiNGMz
YjUwYjBmZmRhMDM0MjhjM2NlN2RhMTQ5ODgyNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
aHJlYWRhYmxlTG9hZGVyLmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRhYmxlTG9hZGVyKTsKICAgICBwdWJs
aWM6CiAgICAgICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFJlc291cmNlUmVxdWVzdCYmLCBUaHJlYWRhYmxlTG9hZGVyQ2xp
ZW50JiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmKTsKLSAgICAgICAgc3RhdGljIFJl
ZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRo
cmVhZGFibGVMb2FkZXJDbGllbnQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVGhyZWFkYWJs
ZUxvYWRlck9wdGlvbnMmLCBTdHJpbmcmJiByZWZlcnJlciA9IFN0cmluZygpKTsKKyAgICAgICAg
c3RhdGljIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3Qg
VGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmLCBTdHJpbmcmJiByZWZlcnJlciA9IFN0cmluZygpLCBT
dHJpbmcmJiB0YXNrTW9kZSA9IHsgfSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJ
c0RvbmUoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggNjJmOTE3YTM2NzgxOWRlYzNjZDQxMGQ5NzY2OTVjZWU2
MmY2ZDRiOS4uOTJlYThhNzhmYThmMjM4NWI2Y2QwY2RlYzVkNTBlZjFlYzc2MWQwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtNzAsNiArNzAsOCBAQCBpbmxpbmUgV29ya2VyOjpX
b3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpSdW50aW1lRmxhZ3Mg
cnVudGltZQogICAgICwgbV9pZGVudGlmaWVyKCJ3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRp
ZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpCiAgICAgLCBtX2NvbnRleHRQcm94eShX
b3JrZXJHbG9iYWxTY29wZVByb3h5OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9ydW50aW1lRmxh
Z3MocnVudGltZUZsYWdzKQorICAgICwgbV90eXBlKG9wdGlvbnMudHlwZSkKKyAgICAsIG1fY3Jl
ZGVudGlhbHMob3B0aW9ucy5jcmVkZW50aWFscykKIHsKICAgICBzdGF0aWMgYm9vbCBhZGRlZExp
c3RlbmVyOwogICAgIGlmICghYWRkZWRMaXN0ZW5lcikgewpAQCAtMTEzLDEwICsxMTUsMTUgQEAg
RXhjZXB0aW9uT3I8UmVmPFdvcmtlcj4+IFdvcmtlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIEpTQzo6UnUKIAogICAgIEZldGNoT3B0aW9ucyBmZXRjaE9wdGlvbnM7
CiAgICAgZmV0Y2hPcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW47
CisgICAgaWYgKHdvcmtlci0+bV90eXBlID09IFdvcmtlclR5cGU6Ok1vZHVsZSkKKyAgICAgICAg
ZmV0Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gd29ya2VyLT5tX2NyZWRlbnRpYWxzOworICAgIGVs
c2UKKyAgICAgICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVk
ZW50aWFsczo6U2FtZU9yaWdpbjsKICAgICBmZXRjaE9wdGlvbnMuY2FjaGUgPSBGZXRjaE9wdGlv
bnM6OkNhY2hlOjpEZWZhdWx0OwogICAgIGZldGNoT3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0
aW9uczo6UmVkaXJlY3Q6OkZvbGxvdzsKICAgICBmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPSBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpXb3JrZXI7Ci0gICAgd29ya2VyLT5tX3NjcmlwdExv
YWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUoZmV0Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZp
Y2VXb3JrZXJzTW9kZTo6QWxsLCB3b3JrZXIpOworICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXIt
PmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZl
dGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29y
a2Vyc01vZGU6OkFsbCwgd29ya2VyLmdldCgpLCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgp
KTsKKwogICAgIHJldHVybiB3b3JrZXI7CiB9CiAKQEAgLTIxNSw3ICsyMjIsMTMgQEAgdm9pZCBX
b3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGlj
eSA9IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZzsKICAgICBpZiAoYXV0byBwb2xpY3kgPSBw
YXJzZVJlZmVycmVyUG9saWN5KG1fc2NyaXB0TG9hZGVyLT5yZWZlcnJlclBvbGljeSgpLCBSZWZl
cnJlclBvbGljeVNvdXJjZTo6SFRUUEhlYWRlcikpCiAgICAgICAgIHJlZmVycmVyUG9saWN5ID0g
KnBvbGljeTsKLSAgICBtX2NvbnRleHRQcm94eS5zdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2Ny
aXB0TG9hZGVyLT51cmwoKSwgbV9uYW1lLCBjb250ZXh0LT51c2VyQWdlbnQobV9zY3JpcHRMb2Fk
ZXItPnVybCgpKSwgaXNPbmxpbmUsIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgY29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgbV93b3JrZXJDcmVhdGlvblRpbWUsIHJlZmVycmVyUG9saWN5LCBt
X3J1bnRpbWVGbGFncyk7CisKKyAgICBVUkwgcmVzcG9uc2VVUkwgPSBtX3NjcmlwdExvYWRlci0+
cmVzcG9uc2VVUkwoKTsKKyAgICBpZiAoIW1fc2NyaXB0TG9hZGVyLT5pc1JlZGlyZWN0ZWQoKSAm
JiBtX3NjcmlwdExvYWRlci0+cmVzcG9uc2VTb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpT
b3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKKyAgICAgICAgaWYgKG1fc2NyaXB0TG9hZGVyLT51cmwo
KS5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkKKyAgICAgICAgICAgIHJlc3BvbnNlVVJMLnNldEZy
YWdtZW50SWRlbnRpZmllcihtX3NjcmlwdExvYWRlci0+dXJsKCkuZnJhZ21lbnRJZGVudGlmaWVy
KCkpOworICAgIH0KKyAgICBtX2NvbnRleHRQcm94eS5zdGFydFdvcmtlckdsb2JhbFNjb3BlKHJl
c3BvbnNlVVJMLCBtX25hbWUsIGNvbnRleHQtPnVzZXJBZ2VudChyZXNwb25zZVVSTCksIGlzT25s
aW5lLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycywgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IG1fd29ya2VyQ3JlYXRpb25UaW1lLCByZWZlcnJlclBvbGljeSwgbV90eXBlLCBtX2NyZWRlbnRp
YWxzLCBtX3J1bnRpbWVGbGFncyk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3Jp
cHRJbXBvcnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3Jp
cHRMb2FkZXItPnNjcmlwdCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXggNTNm
NWU2ZmZmMjdjOWZhM2U1YzBlMDFmMGY2YzQyYzZjYjZmOWQwZS4uMzhhNjIzYTk4ZGJhMzVmZjgw
MTNjZDZmYzhjODVjODEwMjA1MDIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0yOSw5
ICsyOSwxMSBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0
LmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJNZXNz
YWdlUG9ydC5oIgogI2luY2x1ZGUgIlBvc3RNZXNzYWdlT3B0aW9ucy5oIgogI2luY2x1ZGUgIldv
cmtlclNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3Rv
bmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNTUsNiArNTcsOCBAQCBj
bGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVE
T01PYmplY3QsIHByaXZhdGUgV29yawogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2Vy
KTsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgIFdvcmtlclR5cGUgdHlw
ZTsKKyAgICAgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7CiAgICAgICAg
IFN0cmluZyBuYW1lOwogICAgIH07CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgT3B0aW9ucyYpOwpAQCAtNzksNiArODMsOCBAQCBjbGFzcyBX
b3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QsIHByaXZhdGUgV29yawogICAgIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1
bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKTsKICNlbmRpZgogCisgICAg
V29ya2VyVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVG
bGFncywgY29uc3QgT3B0aW9ucyYpOwogCkBAIC0xMTIsNiArMTE4LDggQEAgY2xhc3MgV29ya2Vy
IGZpbmFsIDogcHVibGljIEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBw
cml2YXRlIFdvcmsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBIYXNoU2V0PFN0cmluZz4gbV90
cmFuc2Zvcm1lcnM7CiAjZW5kaWYKKyAgICBXb3JrZXJUeXBlIG1fdHlwZSB7IFdvcmtlclR5cGU6
OkNsYXNzaWMgfTsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzIHsg
RmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4gfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAppbmRleCA0NWQ2YTA4Njc4NTRl
ZTQwNGRlN2U3ZDAxMjQ4Y2ViZjQ0ZGNhN2VkLi43MDIxNzk2ZGY1MDRhZGY4ZTZiOTU4OWFjZTlm
MTQ0ODIxZjI5NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCkBAIC0zOCw2ICszOCw4
IEBACiB9OwogCiBkaWN0aW9uYXJ5IFdvcmtlck9wdGlvbnMgeworICAgIFdvcmtlclR5cGUgdHlw
ZSA9ICJjbGFzc2ljIjsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscyA9
ICJzYW1lLW9yaWdpbiI7IC8vIGNyZWRlbnRpYWxzIGlzIG9ubHkgdXNlZCBpZiB0eXBlIGlzICJt
b2R1bGUiCiAgICAgRE9NU3RyaW5nIG5hbWUgPSAiIjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggZGJhYjM0OGU4MGM5ZGU1MGJkMjE1
Nzc3YTE0YTM5YTBmNzBlNDljNy4uY2NkZTkwOWM3Y2I1MmU5Nzc3NGM1YjgxNTgyM2ViY2JiYjA3
MGYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAK
QEAgLTc0LDYgKzc0LDggQEAgV29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckdsb2JhbFNjb3BlKFdv
cmtlclRocmVhZFR5cGUgdHlwZSwgY29uc3QgV29ya2VyUGFyYW1ldGUKICAgICAsIG1fcGVyZm9y
bWFuY2UoUGVyZm9ybWFuY2U6OmNyZWF0ZSh0aGlzLCBwYXJhbXMudGltZU9yaWdpbikpCiAgICAg
LCBtX3JlZmVycmVyUG9saWN5KHBhcmFtcy5yZWZlcnJlclBvbGljeSkKICAgICAsIG1fc2V0dGlu
Z3NWYWx1ZXMocGFyYW1zLnNldHRpbmdzVmFsdWVzKQorICAgICwgbV93b3JrZXJUeXBlKHBhcmFt
cy53b3JrZXJUeXBlKQorICAgICwgbV9jcmVkZW50aWFscyhwYXJhbXMuY3JlZGVudGlhbHMpCiB7
CiAjaWYgIUVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIFVOVVNFRF9QQVJBTShjb25uZWN0
aW9uUHJveHkpOwpAQCAtMjc0LDYgKzI3NiwxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXb3JrZXJH
bG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscykKIHsK
ICAgICBBU1NFUlQoY29udGVudFNlY3VyaXR5UG9saWN5KCkpOwogCisgICAgLy8gaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd29ya2Vycy5odG1sI2ltcG9ydGluZy1zY3Jp
cHRzLWFuZC1saWJyYXJpZXMKKyAgICAvLyAxLiBJZiB3b3JrZXIgZ2xvYmFsIHNjb3BlJ3MgdHlw
ZSBpcyAibW9kdWxlIiwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICAgIGlmIChtX3dv
cmtlclR5cGUgPT0gV29ya2VyVHlwZTo6TW9kdWxlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCAiaW1wb3J0U2NyaXB0cyBjYW5ub3QgYmUgdXNlZCBpZiB3b2Vya2VyIHR5
cGUgaXMgXCJtb2R1bGVcIiJfcyB9OworCiAgICAgVmVjdG9yPFVSTD4gY29tcGxldGVkVVJMczsK
ICAgICBjb21wbGV0ZWRVUkxzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodXJscy5zaXplKCkpOwog
ICAgIGZvciAoYXV0byYgZW50cnkgOiB1cmxzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckdsb2JhbFNjb3BlLmgKaW5kZXggNDZkNDlkOTRjNTIzOGU0Njg4ZDM5NWQ4N2MyMDYzZWI1
NzIwZDFiZi4uNzQ3OTVmNWMwZjlhMmEzNWQwMDkzMDEyYWQxOGY1N2UzMTdmODI3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMTIzLDYgKzEyMyw4
IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtl
ckdsb2JhbFNjb3BlPiwgcHVibGljIEJhc2U2CiAKICAgICBjb25zdCBTZXR0aW5nczo6VmFsdWVz
JiBzZXR0aW5nc1ZhbHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1ZXM7
IH0KIAorICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25zdCB7
IHJldHVybiBtX2NyZWRlbnRpYWxzOyB9CisKIHByb3RlY3RlZDoKICAgICBXb3JrZXJHbG9iYWxT
Y29wZShXb3JrZXJUaHJlYWRUeXBlLCBjb25zdCBXb3JrZXJQYXJhbWV0ZXJzJiwgUmVmPFNlY3Vy
aXR5T3JpZ2luPiYmLCBXb3JrZXJUaHJlYWQmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3Jp
Z2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKik7CiAK
QEAgLTE2Myw4ICsxNjUsNiBAQCBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBTdXBw
bGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBCYXNlNgogICAgIG11dGFibGUg
UmVmUHRyPFdvcmtlckxvY2F0aW9uPiBtX2xvY2F0aW9uOwogICAgIG11dGFibGUgUmVmUHRyPFdv
cmtlck5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4gbV9zY3JpcHQ7Ci0KICAgICBib29sIG1faXNPbmxp
bmU7CiAgICAgYm9vbCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eTsKIApAQCAtMTg3LDYgKzE4Nyw4IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGlj
IFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIEJhc2U2CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPENTU1ZhbHVlUG9vbD4gbV9jc3NWYWx1ZVBvb2w7CiAgICAgUmVmZXJyZXJQ
b2xpY3kgbV9yZWZlcnJlclBvbGljeTsKICAgICBTZXR0aW5nczo6VmFsdWVzIG1fc2V0dGluZ3NW
YWx1ZXM7CisgICAgV29ya2VyVHlwZSBtX3dvcmtlclR5cGU7CisgICAgRmV0Y2hPcHRpb25zOjpD
cmVkZW50aWFscyBtX2NyZWRlbnRpYWxzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaAppbmRl
eCA0MDAwM2MzZTAxMDk5OTYwZjY0Nzg2MWU3MDE2ODdkMGUzNzFkNzJkLi5lZDY3M2FjOGY3YzBl
ZTU0YzA2MGVjYjU5MjE2MzkwZWQ3MGZlMmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBXb3Jr
ZXJHbG9iYWxTY29wZVByb3h5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV29ya2VyR2xvYmFsU2Nv
cGVQcm94eSYgY3JlYXRlKFdvcmtlciYpOwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0V29ya2Vy
R2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNl
Q29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUg
dGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkws
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxp
bmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtl
clR5cGUsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2Jh
bFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4
IDE5ZDRiZTY0OTkyZjMwZDNjY2U3NjU0N2EzZDIyMThhOThjODQyYzMuLjc4ODM1ODdhN2FmNjIw
OWUzZWNjOGU3YjQxYmFkNDdhZGY2MjI0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFdvcmtlck1lc3Nh
Z2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8fCAoaXM8V29ya2Vy
R2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGRvd25jYXN0PFdvcmtl
ckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJlYWQoKS50aHJlYWQo
KSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpKTsKIH0KIAotdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94
eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9y
aWdpbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzIHJ1
bnRpbWVGbGFncykKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5
IHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNoUmVxdWVzdENyZWRl
bnRpYWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCiB7CiAg
ICAgLy8gRklYTUU6IFRoaXMgbmVlZCB0byBiZSByZXZpc2l0ZWQgd2hlbiB3ZSBzdXBwb3J0IG5l
c3RlZCB3b3JrZXIgb25lIGRheQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
OwpAQCAtODksNyArODksNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogCiAgICAgU29ja2V0
UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyID0gZG9jdW1lbnQuc29ja2V0UHJvdmlkZXIoKTsKIAot
ICAgIFdvcmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZp
ZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3Jp
Z2luLCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMoKSB9OworICAgIFdv
cmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIsIHVz
ZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3JpZ2luLCBy
ZWZlcnJlclBvbGljeSwgd29ya2VyVHlwZSwgY3JlZGVudGlhbHMsIGRvY3VtZW50LnNldHRpbmdz
VmFsdWVzKCkgfTsKICAgICBhdXRvIHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3Jl
YXRlKHBhcmFtcywgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBk
b2N1bWVudC50b3BPcmlnaW4oKSwgcHJveHksIHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxhZ3Mp
OwogCiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGM1YjU3NWI5ZTYxNWIz
ZjNmNTk2YmZjM2RmNjgzYzg3N2NjNjJiYWIuLmQ5ZTgxZTE1N2EwZjQ4NTJlNDliNTlkMjU2NmE4
YTgwZjVmODE4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV29ya2VyTWVzc2FnaW5nUHJveHkgZmlu
YWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyTWVzc2FnaW5nUHIKIHByaXZh
dGU6CiAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNjb3BlUHJveHkuCiAg
ICAgLy8gKE9ubHkgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgd29ya2VyIG9iamVjdCB0aHJl
YWQuKQotICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVS
TCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09u
bGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgSlND
OjpSdW50aW1lRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShj
b25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBS
ZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIEpTQzo6
UnVudGltZUZsYWdzKSBmaW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckdsb2JhbFNjb3Bl
KCkgZmluYWw7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFsU2NvcGUoTWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMmJikgZmluYWw7CiAgICAgdm9pZCBwb3N0VGFza1RvV29ya2VyR2xv
YmFsU2NvcGUoRnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+JiYpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlLmNwcAppbmRleCAyMzg0YTVhOGM3ZDJhMzAyZWVlNWNiNDA1ZTEwNWUwMjVjOTg0M2Nj
Li5mNGY0YjI3NDY2ZjlhMzBiMjhiOGIyMWY2ZjJiZWY4YmRlOTM4NTE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcApA
QCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlLmgiCiAKKyNpbmNsdWRlICJTY3JpcHRNb2R1bGVMb2FkZXIuaCIK
ICNpbmNsdWRlICJXb3JrZXJFdmVudExvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5o
IgpAQCAtMzksNiArNDAsNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUpOwogCiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUoV29ya2VyVGhyZWFkVHlwZSB0eXBlLCBSZWY8SlNDOjpWTT4m
JiB2bSwgV29ya2VyT3JXb3JrbGV0VGhyZWFkKiB0aHJlYWQpCiAgICAgOiBtX3NjcmlwdChtYWtl
VW5pcXVlPFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+KHR5cGUsIFdURk1vdmUodm0p
LCB0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9h
ZGVyPigqdGhpcywgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGU6Oldvcmtlck9yV29ya2xl
dCkpCiAgICAgLCBtX3RocmVhZCh0aHJlYWQpCiAgICAgLCBtX2luc3BlY3RvckNvbnRyb2xsZXIo
bWFrZVVuaXF1ZTxXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyPigqdGhpcykpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKaW5k
ZXggNmMyNDRhMGM0MjdlZTFjOGM2NWZkY2M3NjU5NTJmODc3ZmQ5YjE2Yi4uNTQ0ZjA0N2FlYzI3
ODMyNzQ0ZDBhOGE3MGFmN2U5MzljMzMwOTkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMzIsNiArMzIsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFdmVudExvb3BUYXNrR3JvdXA7CitjbGFzcyBT
Y3JpcHRNb2R1bGVMb2FkZXI7CiBjbGFzcyBXb3JrZXJFdmVudExvb3A7CiBjbGFzcyBXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cjsKQEAgLTU0LDYgKzU1LDggQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBw
dWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KIAogICAgIHVuc2ln
bmVkIGxvbmcgY3JlYXRlVW5pcXVlSWRlbnRpZmllcigpIHsgcmV0dXJuIG1fdW5pcXVlSWRlbnRp
ZmllcisrOyB9CiAKKyAgICBTY3JpcHRNb2R1bGVMb2FkZXImIG1vZHVsZUxvYWRlcigpIHsgcmV0
dXJuICptX21vZHVsZUxvYWRlcjsgfQorCiAgICAgLy8gU2NyaXB0RXhlY3V0aW9uQ29udGV4dC4K
ICAgICBFdmVudExvb3BUYXNrR3JvdXAmIGV2ZW50TG9vcCgpIGZpbmFsOwogICAgIGJvb2wgaXND
b250ZXh0VGhyZWFkKCkgY29uc3QgZmluYWw7CkBAIC04OCw2ICs5MSw3IEBAIGNsYXNzIFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1
YmxpYyBSZWZDb3VuCiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigp
OyB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cj4gbV9zY3JpcHQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gbV9t
b2R1bGVMb2FkZXI7CiAgICAgV29ya2VyT3JXb3JrbGV0VGhyZWFkKiBtX3RocmVhZDsKICAgICBS
ZWZQdHI8V29ya2VyRXZlbnRMb29wPiBtX2V2ZW50TG9vcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RXZlbnRMb29wVGFza0dyb3VwPiBtX2RlZmF1bHRUYXNrR3JvdXA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNw
cAppbmRleCBjZDRlYzI0NjgyNTI1YWFiYzY0MmQ4NzdhMGRhMDExZWJkZTExNDMxLi5mYTZkNDlh
ZWQzNTgyNDRhZjRmYjcxODY4NDBhOGQxZGJhOTI0NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAK
QEAgLTM1LDE1ICszNSwyMyBAQAogI2luY2x1ZGUgIkpTRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAi
SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oIgorI2luY2x1
ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUu
aCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29u
c29sZUNsaWVudC5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
RGVmZXJyZWRXb3JrVGltZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb24u
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb25IZWxwZXJzLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvR0NBY3Rpdml0eUNhbGxiYWNrLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0xvY2suaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU01vZHVsZVJlY29yZC5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTmF0aXZlU3RkRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU1NjcmlwdEZldGNoUGFyYW1ldGVycy5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTU2NyaXB0RmV0Y2hlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0
cm9uZ0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjI4LDYgKzIzNiwxOTkg
QEAgdm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2QKICAgICB9CiB9CiAKK3N0YXRpYyBJZGVudGlmaWVy
IGpzVmFsdWVUb01vZHVsZUtleShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0
dXJuIElkZW50aWZpZXI6OmZyb21VaWQoanNDYXN0PFN5bWJvbCo+KHZhbHVlKS0+cHJpdmF0ZU5h
bWUoKSk7CisgICAgQVNTRVJUKHZhbHVlLmlzU3RyaW5nKCkpOworICAgIHJldHVybiBhc1N0cmlu
Zyh2YWx1ZSktPnRvSWRlbnRpZmllcihsZXhpY2FsR2xvYmFsT2JqZWN0KTsKK30KKworSlNDOjpK
U1ZhbHVlIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKEpT
Qzo6SlNNb2R1bGVSZWNvcmQmIG1vZHVsZVJlY29yZCkKK3sKKyAgICBhdXRvJiBnbG9iYWxPYmpl
Y3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworICAgIHJldHVybiBtb2R1
bGVSZWNvcmQuZXZhbHVhdGUoJmdsb2JhbE9iamVjdCk7Cit9CisKK01lc3NhZ2VRdWV1ZVdhaXRS
ZXN1bHQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZVN5bmNocm9u
b3VzbHkoV29ya2VyU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgY29uc3QgU2NyaXB0U291
cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkK
KyAgICAgICAgcmV0dXJuIE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQ7CisKKyAgICBpbml0U2NyaXB0
SWZOZWVkZWQoKTsKKworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3Jh
cHBlci5nZXQoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tI
b2xkZXIgbG9jayB7IHZtIH07CisKKyAgICBSZWZQdHI8V29ya2VyU2NyaXB0RmV0Y2hlcj4gZmV0
Y2hlclJlZigmc2NyaXB0RmV0Y2hlcik7CisgICAgeworICAgICAgICBhdXRvJiBwcm9taXNlID0g
SlNFeGVjU3RhdGU6OmxvYWRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBzb3VyY2VDb2RlLmpzU291cmNl
Q29kZSgpLCBKU0M6OkpTU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKHZtLCB7ICZzY3JpcHRGZXRjaGVy
IH0pKTsKKworICAgICAgICBhdXRvJiBmdWxmaWxsSGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0
aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbZmV0Y2hlclJlZl0o
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIC0+IEpT
Qzo6RW5jb2RlZEpTVmFsdWUgeworICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwor
ICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgICAgICBmZXRjaGVyUmVmLT5ub3RpZnlM
b2FkQ29tcGxldGVkKCptb2R1bGVLZXkuaW1wbCgpKTsKKyAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGF1dG8m
IHJlamVjdEhhbmRsZXIgPSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFs
T2JqZWN0LCAxLCBTdHJpbmcoKSwgW2ZldGNoZXJSZWZdKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSB7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CisgICAgICAgICAgICBKU1ZhbHVlIGVycm9yVmFsdWUgPSBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApOworICAgICAgICAgICAgaWYgKGVycm9yVmFsdWUuaXNPYmplY3QoKSkg
eworICAgICAgICAgICAgICAgIGF1dG8qIG9iamVjdCA9IEpTQzo6YXNPYmplY3QoZXJyb3JWYWx1
ZSk7CisgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgZmFpbHVyZUtpbmRWYWx1ZSA9IG9iamVj
dC0+Z2V0RGlyZWN0KHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSY+KCp2bS5jbGllbnRE
YXRhKS5idWlsdGluTmFtZXMoKS5mYWlsdXJlS2luZFByaXZhdGVOYW1lKCkpKSB7CisgICAgICAg
ICAgICAgICAgICAgIC8vIFRoaXMgaXMgaG9zdCBwcm9wYWdhdGVkIGVycm9yIGluIHRoZSBtb2R1
bGUgbG9hZGVyIHBpcGVsaW5lLgorICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXRpY19j
YXN0PE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ+KGZhaWx1cmVLaW5kVmFsdWUuYXNJbnQzMigpKSkg
eworICAgICAgICAgICAgICAgICAgICBjYXNlIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vy
cm9yZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaGVyUmVmLT5ub3RpZnlMb2FkRmFp
bGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TG9hZGFibGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdURjo6bnVsbG9wdAorICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBN
b2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZDoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZldGNoZXJSZWYtPm5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NB
VENIX1NDT1BFKHZtKTsKKyAgICAgICAgICAgIGZldGNoZXJSZWYtPm5vdGlmeUxvYWRGYWlsZWQo
TG9hZGFibGVTY3JpcHQ6OkVycm9yIHsKKyAgICAgICAgICAgICAgICBMb2FkYWJsZVNjcmlwdDo6
RXJyb3JUeXBlOjpDYWNoZWRTY3JpcHQsCisgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6
OkNvbnNvbGVNZXNzYWdlIHsKKyAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVNvdXJjZTo6SlMs
CisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VMZXZlbDo6RXJyb3IsCisgICAgICAgICAgICAg
ICAgICAgIHJldHJpZXZlRXJyb3JNZXNzYWdlKCpnbG9iYWxPYmplY3QsIHZtLCBlcnJvclZhbHVl
LCBzY29wZSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICB9KTsKKwor
ICAgICAgICBwcm9taXNlLnRoZW4oJmdsb2JhbE9iamVjdCwgJmZ1bGZpbGxIYW5kbGVyLCAmcmVq
ZWN0SGFuZGxlcik7CisgICAgfQorICAgIG1fZ2xvYmFsU2NvcGUtPmV2ZW50TG9vcCgpLnBlcmZv
cm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7CisKKyAgICAvLyBEcml2ZSBSdW5Mb29wIHVudGlsIHdl
IGdldCBlaXRoZXIgb2YgIldvcmtlciBpcyB0ZXJtaW5hdGVkIiwgIkxvYWRpbmcgaXMgZG9uZSIs
IG9yICJMb2FkaW5nIGlzIGZhaWxlZCIuCisgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IG1f
Z2xvYmFsU2NvcGUtPndvcmtlck9yV29ya2xldFRocmVhZCgpLT5ydW5Mb29wKCk7CisKKyAgICAv
LyBXZSBkbyBub3Qgd2FudCB0byByZWNlaXZlIG1lc3NhZ2VzIHRoYXQgYXJlIG5vdCByZWxhdGVk
IHRvIGFzeW5jaHJvbm91cyByZXNvdXJjZSBsb2FkaW5nLgorICAgIC8vIE90aGVyd2lzZSwgYSB3
b3JrZXIgZGlzY2FyZHMgc29tZSBtZXNzYWdlcyBmcm9tIHRoZSBtYWluIHRocmVhZCBoZXJlIGlu
IGEgcmFjeSB3YXkuCisgICAgLy8gRm9yIGV4YW1wbGUsIHRoZSBtYWluIHRocmVhZCBjYW4gcG9z
dE1lc3NhZ2UganVzdCBhZnRlciBjcmVhdGluZyBhIFdvcmtlci4gSW4gdGhhdCBjYXNlLCBwb3N0
TWVzc2FnZSdzCisgICAgLy8gdGFzayBpcyBxdWV1ZWQgaW4gV29ya2VyUnVuTG9vcCBiZWZvcmUg
c3RhcnQgcnVubmluZyBtb2R1bGUgc2NyaXB0cy4gVGhpcyB0YXNrIHNob3VsZCBub3QgYmUgZGlz
Y2FyZGVkCisgICAgLy8gaW4gdGhlIGZvbGxvd2luZyBkcml2aW5nIG9mIHRoZSBSdW5Mb29wIHdo
aWNoIG1haW5seSBhdHRlbXB0IHRvIGNvbGxlY3QgaW5pdGlhbCBsb2FkIG9mIG1vZHVsZSBzY3Jp
cHRzLgorICAgIFN0cmluZyB0YXNrTW9kZSA9ICJsb2FkTW9kdWxlc0luV29ya2VyT3JXb3JrbGV0
TW9kZSJfczsKKyAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9IE1lc3NhZ2VRdWV1
ZU1lc3NhZ2VSZWNlaXZlZDsKKyAgICB3aGlsZSAoKCFmZXRjaGVyUmVmLT5pc0xvYWRlZCgpICYm
ICFmZXRjaGVyUmVmLT53YXNDYW5jZWxlZCgpKSAmJiByZXN1bHQgIT0gTWVzc2FnZVF1ZXVlVGVy
bWluYXRlZCkgeworICAgICAgICByZXN1bHQgPSBydW5Mb29wLnJ1bkluTW9kZShtX2dsb2JhbFNj
b3BlLCB0YXNrTW9kZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gTWVzc2FnZVF1ZXVlVGVybWlu
YXRlZCkKKyAgICAgICAgICAgIG1fZ2xvYmFsU2NvcGUtPmV2ZW50TG9vcCgpLnBlcmZvcm1NaWNy
b3Rhc2tDaGVja3BvaW50KCk7CisgICAgfQorCisgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBh
cmUgbm90IG9mZmVyaW5nIGNhbmNlbGxpbmcuCisgICAgLy8gaWYgKCFsb2FkZXItPmRvbmUoKSAm
JiByZXN1bHQgPT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkKKyAgICAvLyAgICAgbG9hZGVyLT5j
YW5jZWwoKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKFdvcmtlclNjcmlwdEZldGNo
ZXImIHNjcmlwdEZldGNoZXIsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIFN0
cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlKQoreworICAgIGlmIChpc0V4ZWN1dGlvbkZv
cmJpZGRlbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBpbml0U2NyaXB0SWZOZWVkZWQoKTsK
KworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBlci5nZXQoKTsK
KyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayB7
IHZtIH07CisKKyAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247
CisgICAgSlNFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShnbG9iYWxPYmplY3QsIElk
ZW50aWZpZXI6OmZyb21VaWQodm0sIHNjcmlwdEZldGNoZXIubW9kdWxlS2V5KCkpLCBqc1VuZGVm
aW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKChyZXR1cm5lZEV4Y2VwdGlvbiAm
JiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVybmVkRXhjZXB0aW9uKSkg
fHwgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAgICAgIGZvcmJpZEV4ZWN1dGlvbigp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7
CisgICAgICAgIGlmIChtX2dsb2JhbFNjb3BlLT5jYW5JbmNsdWRlRXJyb3JEZXRhaWxzKHNvdXJj
ZUNvZGUuY2FjaGVkU2NyaXB0KCksIHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCkpKSB7CisgICAg
ICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBydW4gYXJiaXRy
YXJ5IGNvZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlvbi4KKyAgICAg
ICAgICAgIC8vIERvIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgdG8gaGFuZGxlIHRoYXQgcHJvcGVy
bHksIGlmIGl0LCBzYXksIHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlvbj8KKyAgICAgICAgICAgIGlm
IChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKnJldHVybmVkRXhj
ZXB0aW9uTWVzc2FnZSA9IHJldHVybmVkRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3RyaW5nKCZn
bG9iYWxPYmplY3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gT3ZlcndyaXRl
IHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBlcnJvci4KKyAgICAgICAgICAgIFN0
cmluZyBnZW5lcmljRXJyb3JNZXNzYWdlIHsgIlNjcmlwdCBlcnJvci4iX3MgfTsKKyAgICAgICAg
ICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKnJldHVy
bmVkRXhjZXB0aW9uTWVzc2FnZSA9IGdlbmVyaWNFcnJvck1lc3NhZ2U7CisgICAgICAgICAgICBy
ZXR1cm5lZEV4Y2VwdGlvbiA9IEpTQzo6RXhjZXB0aW9uOjpjcmVhdGUodm0sIGNyZWF0ZUVycm9y
KCZnbG9iYWxPYmplY3QsIGdlbmVyaWNFcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgfQorICAgIH0K
K30KKwordm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsb2FkQW5kRXZhbHVh
dGVNb2R1bGUoY29uc3QgVVJMJiBtb2R1bGVVUkwsIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMg
Y3JlZGVudGlhbHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4o
KSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJy
b3IgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpbml0U2NyaXB0SWZOZWVkZWQo
KTsKKworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBlci5nZXQo
KTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9j
ayB7IHZtIH07CisKKyAgICBhdXRvIHNjcmlwdEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVy
OjpjcmVhdGUoY3JlZGVudGlhbHMpOworICAgIHsKKyAgICAgICAgYXV0byYgcHJvbWlzZSA9IEpT
RXhlY1N0YXRlOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVVUkwu
c3RyaW5nKCksIGpzVW5kZWZpbmVkKCksIEpTQzo6SlNTY3JpcHRGZXRjaGVyOjpjcmVhdGUodm0s
IHsgc2NyaXB0RmV0Y2hlci5wdHIoKSB9KSk7CisKKyAgICAgICAgYXV0byB0YXNrID0gY3JlYXRl
U2hhcmVkVGFzazx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+KFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhj
ZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUo
ZXhjZXB0aW9uKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGF1dG8mIGZ1bGZpbGxIYW5kbGVy
ID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3Ry
aW5nKCksIFt0YXNrXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkgLT4gSlNDOjpFbmNvZGVkSlNWYWx1ZSB7CisgICAgICAgICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisgICAgICAgICAgICBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGpzVmFsdWVU
b01vZHVsZUtleShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOworICAgICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgICAgIHRhc2st
PnJ1bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0SGFuZGxl
ciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0
cmluZygpLCBbdGFza10oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpIHsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAg
ICAgICAgICAgIEpTVmFsdWUgZXJyb3JWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7Cisg
ICAgICAgICAgICBpZiAoZXJyb3JWYWx1ZS5pc09iamVjdCgpKSB7CisgICAgICAgICAgICAgICAg
YXV0byogb2JqZWN0ID0gSlNDOjphc09iamVjdChlcnJvclZhbHVlKTsKKyAgICAgICAgICAgICAg
ICBpZiAoSlNWYWx1ZSBmYWlsdXJlS2luZFZhbHVlID0gb2JqZWN0LT5nZXREaXJlY3Qodm0sIHN0
YXRpY19jYXN0PEpTVk1DbGllbnREYXRhJj4oKnZtLmNsaWVudERhdGEpLmJ1aWx0aW5OYW1lcygp
LmZhaWx1cmVLaW5kUHJpdmF0ZU5hbWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhp
cyBpcyBob3N0IHByb3BhZ2F0ZWQgZXJyb3IgaW4gdGhlIG1vZHVsZSBsb2FkZXIgcGlwZWxpbmUu
CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8TW9kdWxlRmV0Y2hGYWls
dXJlS2luZD4oZmFpbHVyZUtpbmRWYWx1ZS5hc0ludDMyKCkpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZDoKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZDoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRhc2stPnJ1bihFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgU3RyaW5nIHN0cmlu
ZyA9IHJldHJpZXZlRXJyb3JNZXNzYWdlKCpnbG9iYWxPYmplY3QsIHZtLCBlcnJvclZhbHVlLCBz
Y29wZSk7CisgICAgICAgICAgICB0YXNrLT5ydW4oRXhjZXB0aW9uIHsgVHlwZUVycm9yLCBzdHJp
bmcgfSk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworICAgICAgICB9KTsKKworICAgICAgICBwcm9taXNlLnRoZW4oJmdsb2JhbE9iamVjdCwgJmZ1
bGZpbGxIYW5kbGVyLCAmcmVqZWN0SGFuZGxlcik7CisgICAgfQorICAgIG1fZ2xvYmFsU2NvcGUt
PmV2ZW50TG9vcCgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7Cit9CisKIHRlbXBsYXRl
PHR5cGVuYW1lIEpTR2xvYmFsU2NvcGVQcm90b3R5cGUsIHR5cGVuYW1lIEpTR2xvYmFsU2NvcGUs
IHR5cGVuYW1lIEdsb2JhbFNjb3BlPgogdm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjppbml0U2NyaXB0V2l0aFN1YmNsYXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggYzQ5
MzAxYWVkM2RkMDg5ZGE3OTczMjc2MGNhZjJmN2I2NGRiMTFiNi4uOWYwMjNhNjJmODE0M2U3ZDk4
MmZiZjdmNThlZWVhZGNhM2E1YjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTWVz
c2FnZVF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0Mg
ewpAQCAtNDQsOSArNDUsMTEgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3Q7CiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgTG9hZGFibGVNb2R1bGVT
Y3JpcHQ7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgV29ya2VyQ29uc29sZUNsaWVu
dDsKIGNsYXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOworY2xhc3MgV29ya2VyU2NyaXB0
RmV0Y2hlcjsKIAogY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcik7CkBA
IC05NCw2ICs5NywxMyBAQCBjbGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsK
ICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVy
bmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3Qg
U2NyaXB0U291cmNlQ29kZSYsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNl
cHRpb24sIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKKyAg
ICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVNb2R1bGUoSlNDOjpKU01vZHVsZVJlY29yZCYpOworCisg
ICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoV29ya2VyU2NyaXB0RmV0Y2hlciYsIGNvbnN0
IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51
bGxwdHIpOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgbG9hZE1vZHVsZVN5bmNocm9ub3Vz
bHkoV29ya2VyU2NyaXB0RmV0Y2hlciYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKworICAg
IHZvaWQgbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgbW9kdWxlVVJMLCBGZXRjaE9w
dGlvbnM6OkNyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2Vw
dGlvbj4mJik+JiYpOworCiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUqIGdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxTY29wZTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggM2E0ZGFl
ZmMzOTAyYmRiMmVhODRmYzU4ZDdlNDJmODNlNWYwN2UyZi4uOWYzMWQwZGZkNTlhODcwN2ZkNGVi
NTljYzNjOTJhMDY2NDgxZGUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
U2NyaXB0TG9hZGVyLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIE9wdGlvbmFsPEV4Y2VwdGlvbj4g
V29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250
ZXh0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRMb2Fk
ZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3JpcHRSZXF1ZXN0LCBGZXRjaE9wdGlv
bnMmJiBmZXRjaE9wdGlvbnMsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRl
bnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUgc2VydmljZVdv
cmtlck1vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50KQordm9pZCBXb3JrZXJT
Y3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3JpcHRSZXF1ZXN0LCBG
ZXRjaE9wdGlvbnMmJiBmZXRjaE9wdGlvbnMsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2Vt
ZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUg
c2VydmljZVdvcmtlck1vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBTdHJp
bmcmJiB0YXNrTW9kZSkKIHsKICAgICBtX2NsaWVudCA9ICZjbGllbnQ7CiAgICAgbV91cmwgPSBz
Y3JpcHRSZXF1ZXN0LnVybCgpOwpAQCAtMTIzLDggKzEyMyw2IEBAIHZvaWQgV29ya2VyU2NyaXB0
TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0
RXhlY3V0CiAgICAgQVNTRVJUKGZldGNoT3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9k
ZTo6U2FtZU9yaWdpbiB8fCAoZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uICE9IEZldGNoT3B0aW9u
czo6RGVzdGluYXRpb246OlNlcnZpY2V3b3JrZXIgJiYgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9u
ICE9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OldvcmtlcikpOwogCiAgICAgVGhyZWFkYWJs
ZUxvYWRlck9wdGlvbnMgb3B0aW9ucyB7IFdURk1vdmUoZmV0Y2hPcHRpb25zKSB9OwotICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgYWRkIGFuIG9wdGlvbiB0byBzZXQgY3JlZGVudGlhbCBtb2RlLgot
ICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1l
T3JpZ2luOwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tQb2xp
Y3k6OlNlbmRDYWxsYmFja3M7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lFbmZv
cmNlbWVudCA9IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OwogICAgIGlmIChmZXRj
aE9wdGlvbnMuZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2Vydmlj
ZXdvcmtlcikKQEAgLTE0Myw3ICsxNDEsNyBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bG9h
ZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dAogCiAg
ICAgLy8gRHVyaW5nIGNyZWF0ZSwgY2FsbGJhY2tzIG1heSBoYXBwZW4gd2hpY2ggcmVtb3ZlIHRo
ZSBsYXN0IHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdC4KICAgICBSZWY8V29ya2VyU2NyaXB0TG9h
ZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBtX3RocmVhZGFibGVMb2FkZXIgPSBUaHJl
YWRhYmxlTG9hZGVyOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgKnRoaXMsIFdURk1v
dmUoKnJlcXVlc3QpLCBvcHRpb25zKTsKKyAgICBtX3RocmVhZGFibGVMb2FkZXIgPSBUaHJlYWRh
YmxlTG9hZGVyOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgKnRoaXMsIFdURk1vdmUo
KnJlcXVlc3QpLCBvcHRpb25zLCB7IH0sIFdURk1vdmUodGFza01vZGUpKTsKIH0KIAogY29uc3Qg
VVJMJiBXb3JrZXJTY3JpcHRMb2FkZXI6OnJlc3BvbnNlVVJMKCkgY29uc3QKQEAgLTE5MCw2ICsx
ODgsOCBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzbwogICAgIG1fY2VydGlmaWNhdGVJbmZvID0g
cmVzcG9uc2UuY2VydGlmaWNhdGVJbmZvKCkgPyAqcmVzcG9uc2UuY2VydGlmaWNhdGVJbmZvKCkg
OiBDZXJ0aWZpY2F0ZUluZm8oKTsKICAgICBtX3Jlc3BvbnNlTUlNRVR5cGUgPSByZXNwb25zZS5t
aW1lVHlwZSgpOwogICAgIG1fcmVzcG9uc2VFbmNvZGluZyA9IHJlc3BvbnNlLnRleHRFbmNvZGlu
Z05hbWUoKTsKKyAgICBtX3Jlc3BvbnNlU291cmNlID0gcmVzcG9uc2Uuc291cmNlKCk7CisgICAg
bV9pc1JlZGlyZWN0ZWQgPSByZXNwb25zZS5pc1JlZGlyZWN0ZWQoKTsKICAgICBtX2NvbnRlbnRT
ZWN1cml0eVBvbGljeSA9IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyB7IHJl
c3BvbnNlIH07CiAgICAgbV9yZWZlcnJlclBvbGljeSA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVs
ZChIVFRQSGVhZGVyTmFtZTo6UmVmZXJyZXJQb2xpY3kpOwogICAgIGlmIChtX2NsaWVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCmluZGV4IDdmZGQwYjNm
NmEwMWMyZGI1NzcyNGE5MGIzYmI5ODQwZjFlNjhlNWYuLmNmYTMxYTM1MzI1OWFlZWQxOThmOTM5
MWZmYzE1MTFiNDA1MGI4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3Jp
cHRMb2FkZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZldGNoT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIK
KyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRl
ci5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlIDxtZW1v
cnk+CkBAIC00Myw3ICs0NCw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV4Y2Vw
dGlvbjsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OwogY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsKIGNsYXNzIFdvcmtlclNjcmlwdExvYWRl
ckNsaWVudDsKQEAgLTU4LDcgKzU4LDcgQEAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGEKICAgICB9
CiAKICAgICBPcHRpb25hbDxFeGNlcHRpb24+IGxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIEZldGNoT3B0aW9u
czo6Q2FjaGUsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcm
IGluaXRpYXRvcklkZW50aWZpZXIpOwotICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYsIENv
bnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUsIFdvcmtl
clNjcmlwdExvYWRlckNsaWVudCYpOworICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYsIENv
bnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUsIFdvcmtl
clNjcmlwdExvYWRlckNsaWVudCYsIFN0cmluZyYmIHRhc2tNb2RlKTsKIAogICAgIHZvaWQgbm90
aWZ5RXJyb3IoKTsKIApAQCAtNjcsNiArNjcsOCBAQCBjbGFzcyBXb3JrZXJTY3JpcHRMb2FkZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJTY3JpcHRMb2FkZXI+LCBwdWJsaWMgVGhyZWFkYQog
ICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3JlZmVy
cmVyUG9saWN5OyB9CiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsg
fQogICAgIGNvbnN0IFVSTCYgcmVzcG9uc2VVUkwoKSBjb25zdDsKKyAgICBSZXNvdXJjZVJlc3Bv
bnNlOjpTb3VyY2UgcmVzcG9uc2VTb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlU291
cmNlOyB9CisgICAgYm9vbCBpc1JlZGlyZWN0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUmVkaXJl
Y3RlZDsgfQogICAgIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKCkgY29u
c3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0ZUluZm87IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc3Bv
bnNlTUlNRVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlTUlNRVR5cGU7IH0KICAgICBi
b29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmFpbGVkOyB9CkBAIC0xMDcsNiArMTA5LDgg
QEAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyU2Ny
aXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGEKICAgICB1bnNpZ25lZCBsb25nIG1faWRlbnRpZmll
ciB7IDAgfTsKICAgICBib29sIG1fZmFpbGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZmluaXNo
aW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZWRpcmVjdGVkIHsgZmFsc2UgfTsKKyAgICBS
ZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2UgbV9yZXNwb25zZVNvdXJjZSB7IFJlc291cmNlUmVzcG9u
c2U6OlNvdXJjZTo6VW5rbm93biB9OwogICAgIFJlc291cmNlRXJyb3IgbV9lcnJvcjsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA3Mjc5MGEwMzMyMjYx
OWU2ZWU3ZTYxNmE4YmRlMThiZDU1MmE1NzgzLi5mMmE3NjU5ZmM1NjFlYWQxNmIxMmEzNDllZDFl
ZjA3ZTBkYTA3NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBA
IC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJT
b2NrZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVk
ZSAiV29ya2VyU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Njcmlw
dENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTUsNiArNTcsOCBAQCBXb3JrZXJQYXJhbWV0ZXJzIFdvcmtlclBhcmFtZXRl
cnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwKICAgICAgICAgdGltZU9yaWdpbiwKICAgICAgICAgcmVmZXJy
ZXJQb2xpY3ksCisgICAgICAgIHdvcmtlclR5cGUsCisgICAgICAgIGNyZWRlbnRpYWxzLAogICAg
ICAgICBzZXR0aW5nc1ZhbHVlcy5pc29sYXRlZENvcHkoKQogICAgIH07CiB9CkBAIC0xMjMsOSAr
MTI3LDMzIEBAIGJvb2wgV29ya2VyVGhyZWFkOjpzaG91bGRXYWl0Rm9yV2ViSW5zcGVjdG9yT25T
dGFydHVwKCkgY29uc3QKIAogdm9pZCBXb3JrZXJUaHJlYWQ6OmV2YWx1YXRlU2NyaXB0SWZOZWNl
c3NhcnkoU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQogewotICAgIGdsb2JhbFNjb3BlKCktPnNj
cmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJjZUNv
ZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25NZXNz
YWdlKTsKLQotICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAgIC8vIFdlIGFyZSBj
dXJyZW50bHkgaG9sZGluZyBvbmx5IHRoZSBpbml0aWFsIHNjcmlwdCBjb2RlLiBJZiB0aGUgV29y
a2VyVHlwZSBpcyBNb2R1bGUsIHdlIHNob3VsZCBmZXRjaCB0aGUgZW50aXJlIGdyYXBoIGJlZm9y
ZSBleGVjdXRpbmcgdGhlIHJlc3Qgb2YgdGhpcy4KKyAgICAvLyBXZSBpbnZva2UgbW9kdWxlIGxv
YWRlciBhcyBpZiB3ZSBhcmUgZXhlY3V0aW5nIGlubGluZSBtb2R1bGUgc2NyaXB0IHRhZyBpbiBE
b2N1bWVudC4KKworICAgIGlmIChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMud29ya2VyVHlwZSA9PSBX
b3JrZXJUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgIGdsb2JhbFNjb3BlKCktPnNjcmlwdCgpLT5l
dmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJjZUNvZGUsIFVSTCht
X3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25NZXNzYWdlKTsKKyAg
ICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
Ly8gRklYTUUgY3Jvc3NPcmlnaW4gbW9kZSBzaG91bGQgYmUgY29udmVydGVkLgorICAgICAgICAv
LyBGSVhNRSBmaXggaW5pdGlhdG9yIG5hbWUuCisgICAgICAgIC8vIEZJWE1FIHBhc3MgVVJMIHRv
IG1vZHVsZSBsb2FkZXIuCisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShtX3N0
YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNjcmlwdFVS
TCksIHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSk7CisgICAgICAg
IGF1dG8gc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZldGNoZXI6OmNyZWF0ZShnbG9iYWxT
Y29wZSgpLT5jcmVkZW50aWFscygpKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBy
ZXN1bHQgPSBnbG9iYWxTY29wZSgpLT5zY3JpcHQoKS0+bG9hZE1vZHVsZVN5bmNocm9ub3VzbHko
c2NyaXB0RmV0Y2hlci5nZXQoKSwgc291cmNlQ29kZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0g
TWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgeworICAgICAgICAgICAgaWYgKE9wdGlvbmFsPExvYWRh
YmxlU2NyaXB0OjpFcnJvcj4gZXJyb3IgPSBzY3JpcHRGZXRjaGVyLT5lcnJvcigpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVzc2FnZT4g
bWVzc2FnZSA9IGVycm9yLT5jb25zb2xlTWVzc2FnZSkKKyAgICAgICAgICAgICAgICAgICAgZXhj
ZXB0aW9uTWVzc2FnZSA9IG1lc3NhZ2UtPm1lc3NhZ2U7CisgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25NZXNzYWdlID0gIkltcG9ydGluZyBhIG1vZHVs
ZSBzY3JpcHQgZmFpbGVkLiJfczsKKyAgICAgICAgICAgICAgICBnbG9iYWxTY29wZSgpLT5yZXBv
cnRFeGNlcHRpb24oZXhjZXB0aW9uTWVzc2FnZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0pOwor
ICAgICAgICAgICAgfSBlbHNlIGlmICghc2NyaXB0RmV0Y2hlci0+d2FzQ2FuY2VsZWQoKSkgewor
ICAgICAgICAgICAgICAgIC8vIEV2YWx1YXRlLgorICAgICAgICAgICAgICAgIGdsb2JhbFNjb3Bl
KCktPnNjcmlwdCgpLT5saW5rQW5kRXZhbHVhdGVNb2R1bGUoc2NyaXB0RmV0Y2hlci5nZXQoKSwg
c291cmNlQ29kZSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOworICAgICAgICAgICAgICAgIGZpbmlzaGVk
RXZhbHVhdGluZ1NjcmlwdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogCiAg
ICAgLy8gRnJlZSB0aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNlIGl0cyBtZW1iZXIgdmFyaWFibGUg
ZGVyZWYncyBoYXBwZW4gb24gdGhlIHdvcmtlcidzIHRocmVhZCAoc2luY2UKICAgICAvLyBhbGwg
cmVmL2RlcmVmcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBwZW5pbmcgb24gdGhlIHRocmVhZCBh
dCB0aGlzIHBvaW50KS4gTm90ZSB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQu
aAppbmRleCA4ODkwNzkwOGU3YTliODA5ZThmMmE0ZTQ3M2Q3NTJkMTFkMjkzN2MwLi45NTEyZWZk
YjE4ZjMyYTUwZWNiN2ZiNTY5NTlkNjFlODg3MmZhMWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyVGhyZWFkLmgKQEAgLTI2LDcgKzI2LDEwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgorI2luY2x1ZGUgIkZl
dGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0VGhyZWFk
LmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDxtZW1v
cnk+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtNjMsNiArNjYsOCBAQCBzdHJ1Y3QgV29ya2Vy
UGFyYW1ldGVycyB7CiAgICAgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3k7CiAgICAgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luOwogICAgIFJlZmVycmVyUG9s
aWN5IHJlZmVycmVyUG9saWN5OworICAgIFdvcmtlclR5cGUgd29ya2VyVHlwZTsKKyAgICBGZXRj
aFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsKICAgICBTZXR0aW5nczo6VmFsdWVzIHNl
dHRpbmdzVmFsdWVzOwogCiAgICAgV29ya2VyUGFyYW1ldGVycyBpc29sYXRlZENvcHkoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKaW5kZXggMGIwZWQ4NjBkOWM3MTQyMzhh
MmE1YmI5ZmRmNDM4NDAyZDE2ZWJmMC4uMWMxYmI5NDQ4NjdhZGY0ZWQ1NzhhMjgxNGZhMzMyMzI2
YWVkOGE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKQEAgLTI3LDcgKzI3LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFdvcmtlclR5cGUgeworZW51
bSBjbGFzcyBXb3JrZXJUeXBlIDogdWludDhfdCB7CiAgICAgQ2xhc3NpYywKICAgICBNb2R1bGUs
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmgKaW5kZXggZWJiZTk1ZTg5MjRjOGYxZDczNzUyNWRlYTE2MzBiMWZh
ZDU2ZmIyNy4uNGM3ZGRmNGE0YzEzMWUwZGNkNmJhMDk1MDlhYjJkOTc1NzVmMzBjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIE5hdmlnYXRvckJhc2U7CiBjbGFzcyBT
ZXJ2aWNlV29ya2VyOwogCiBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSA6
IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7CitlbnVtIGNsYXNzIFdvcmtlclR5cGUg
OiB1aW50OF90OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNl
UHJveHk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VySm9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VySm9iLmNwcAppbmRleCBlYzM5YzBmODQ5YTU0ZTFiNmQwYmVlMzRhOGQ3ZDE5Y2JhNDVl
Mjg4Li5mOTUxMGNiZjZmZGY3MDQ2ZjdkMWI5MjIzNjkxNzRkMDFmYTBiZTA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCkBA
IC0xMTAsNyArMTEwLDggQEAgdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpmZXRjaFNjcmlwdFdpdGhD
b250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEYKICAgICBvcHRpb25zLmNh
Y2hlID0gY2FjaGVQb2xpY3k7CiAgICAgb3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6
UmVkaXJlY3Q6OkVycm9yOwogICAgIG9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uOjpTZXJ2aWNld29ya2VyOwotICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5
bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwg
Q29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSwgU2VydmljZVdv
cmtlcnNNb2RlOjpOb25lLCAqdGhpcyk7CisgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNo
T3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW47CisgICAgbV9zY3JpcHRMb2FkZXItPmxv
YWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlv
bnMpLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlLCBTZXJ2
aWNlV29ya2Vyc01vZGU6Ok5vbmUsICp0aGlzLCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgp
KTsKIH0KIAogUmVzb3VyY2VFcnJvciBTZXJ2aWNlV29ya2VySm9iOjp2YWxpZGF0ZVNlcnZpY2VX
b3JrZXJSZXNwb25zZShjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9u
cy5oCmluZGV4IDlkNTAwZjg1YWNiMTg4NDFjYzU1YmVhODIxMWRiMTRmYWRjOTc0NzUuLjJlMzU1
N2ZhN2RmNjdmMWJmOThjN2I3YTVkZTRiMGE1YTdiY2NjZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uT3B0aW9ucy5oCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGVudW0gY2xhc3MgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIDogdWludDhfdDsKLWVudW0g
Y2xhc3MgV29ya2VyVHlwZTsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6IHVpbnQ4X3Q7CiAKIHN0
cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucyB7CiAgICAgU3RyaW5nIHNjb3Bl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCBjOGE3YTk5NzJmOWNjOGMxNmE3OTY3
NTExNTUyZjU0OTNhNjg2Zjk4Li4zM2NhMGVjMjNiNThhNTUxMTg3Njg0NmJhMDcxODM1MzJiNWM0
N2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtNzMsOCArNzMsOSBAQCBjbGFz
cyBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA6IHB1YmxpYyBXb3JrZXJPYmplY3RQcm94
eSB7CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkKIC8vIEZJWE1FOiBV
c2UgdmFsaWQgcnVudGltZSBmbGFncwogCisvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyVHlw
ZSBhbmQgQ3JlZGVudGFpbHMgZm9yIG1vZHVsZSBzZXJ2aWNlIHdvcmtlcnMuCiBTZXJ2aWNlV29y
a2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSYgZGF0YSwgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBz
ZXR0aW5nc1ZhbHVlcywgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBXb3JrZXJEZWJ1
Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSog
aWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIpCi0gICAg
OiBXb3JrZXJUaHJlYWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmcoKSwgInNlcnZpY2V3
b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVy
KCksIFdURk1vdmUodXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0
ZWd5KCktPmlzT25MaW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5LCBmYWxzZSwgTW9u
b3RvbmljVGltZTo6bm93KCksIHsgfSwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0YS5zY3JpcHQsIGxv
YWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6
c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRhLnJlZ2lzdHJhdGlv
bi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRiQ29ubmVjdGlvblBy
b3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQo
KSkKKyAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0eVN0cmluZygpLCAi
c2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlk
ZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9h
ZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZh
bHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9LCBXb3JrZXJUeXBlOjpDbGFzc2ljLCBGZXRj
aFJlcXVlc3RDcmVkZW50aWFsczo6U2FtZU9yaWdpbiwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0YS5z
Y3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRhLnJl
Z2lzdHJhdGlvbi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRiQ29u
bmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFs
bEVuYWJsZWQoKSkKICAgICAsIG1fZGF0YShkYXRhLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV93
b3JrZXJPYmplY3RQcm94eShEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCkp
CiAgICAgLCBtX2hlYXJ0QmVhdFRpbWVvdXQoU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCku
Y29ubmVjdGlvbigpLT5zaG91bGRVc2VTaG9ydFRpbWVvdXQoKSA/IGhlYXJ0QmVhdFRpbWVvdXRG
b3JUZXN0IDogaGVhcnRCZWF0VGltZW91dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCAyZGRkYjNiNWI0MWVk
ODdiZDYxNGEwYjk0ZDA5Yjc2MTI5M2Q3NjA3Li4zNzhmYmE2NTdlOGJiZjQ4NDFlNTZjYmY4NjU2
MWY4ZWNjMzExMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCkBAIC01MCw3ICs1MCw3IEBAIHN0cnVjdCBTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVl
cnlPcHRpb25zOwogc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsKIHN0cnVjdCBTZXJ2
aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7CitlbnVt
IGNsYXNzIFdvcmtlclR5cGUgOiB1aW50OF90OwogCiBjbGFzcyBTV1NlcnZlcldvcmtlciA6IHB1
YmxpYyBSZWZDb3VudGVkPFNXU2VydmVyV29ya2VyPiB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCBkNzA0ODg2NjQ4YzBl
ZmFhNmI3ODA4NGM1Mzg3MjAxY2EyYjFjNTQzLi5hYTdjMDJlMDg2Y2E0YTA4MmViZTQ3NTA4ODFk
NGEyNGQ3OGM5NTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0
R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9i
YWxTY29wZS5jcHAKQEAgLTE1OCw4ICsxNTgsNyBAQCBSZWZlcnJlclBvbGljeSBXb3JrbGV0R2xv
YmFsU2NvcGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKIHZvaWQgV29ya2xldEdsb2JhbFNjb3Bl
OjpmZXRjaEFuZEludm9rZVNjcmlwdChjb25zdCBVUkwmIG1vZHVsZVVSTCwgRmV0Y2hSZXF1ZXN0
Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
RXhjZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKLSAgICBtX3NjcmlwdEZldGNoSm9icy5hcHBlbmQoeyBtb2R1bGVVUkwsIGNy
ZWRlbnRpYWxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSB9KTsKLSAgICBwcm9jZXNzTmV4
dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQoKTsKKyAgICBzY3JpcHQoKS0+bG9hZEFuZEV2YWx1YXRl
TW9kdWxlKG1vZHVsZVVSTCwgY3JlZGVudGlhbHMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIAogdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OnByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hK
b2JJZk5lZWRlZCgpCkBAIC0xODgsNyArMTg3LDcgQEAgdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6
OnByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5lZWRlZCgpCiAgICAgYXV0byBjb250ZW50U2Vj
dXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5m
b3JjZSA6IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ2hpbGRTcmNE
aXJlY3RpdmU7CiAKICAgICBtX3NjcmlwdExvYWRlciA9IFdvcmtlclNjcmlwdExvYWRlcjo6Y3Jl
YXRlKCk7Ci0gICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseSgqdGhpcywgV1RG
TW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xp
Y3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsICp0aGlzKTsKKyAgICBtX3Nj
cmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBX
VEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBT
ZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgKnRoaXMsIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2Rl
KCkpOwogfQogCiB2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVu
c2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJiOWE1MmI3ZGY3
MzFlNjY1YzRmMTAyNmQ4YWMxOTM5YTRhODgyYTMuLmI2MTg5ZjM4MzVjOTFjNjIxNjMyNzE4ZGUy
OTcxZmE1NzVmZmIzOTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wMi0xMSAgWXVzdWtl
IFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29y
a2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0
ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTAyLTEwICBBbWlyIE1hcmsgSnIgIDxhbWlyX21hcmtA
YXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNPU10gYW5pbWF0aW9ucy9rZXlmcmFtZS1wc2V1ZG8t
c2hhZG93Lmh0bWwgaXMgZmxha2V5IGZhaWxpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCBkMzBlNTYyOTIyZTVhNGQ2ZjMxNjI2NWUxZWEyNTY4ZTk5ZTdlODFjLi5kMmE1NGZm
MDliZjdiYjdlNmM0NmEwNjE1NDY4YzUwNDRkMmI0NWRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAyMS0wMi0xMSAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24t
bW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNj
b3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEv
YmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdv
cmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1v
cmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2Ny
aXB0cy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9y
dFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEv
eGhyLWluLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9i
YWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlv
bi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1
bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9y
dC1mYWlsdXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1pbXBvcnQtbWV0YS5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJyZXItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVk
LXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2Rl
ZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1yZWRpcmVjdGVkLXdv
cmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAyLTEwICBNYW51ZWwgUmVnbyBDYXNh
c25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBtb2Rp
ZmllciBrZXlzIGluIHRlc3RfZHJpdmVyLnNlbmRfa2V5cygpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBlOGQxN2IwNzc1MmQxZTdmMTI4NzQ2MzBkNzljMWUyYWVhNGVkMjM2Li5lMWFjYzI1MGI2ZDM3
ZmVlYTFkMjFhYmRjZDFmMjE3MzgyZmEzZDlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY0Miw3
ICs2NDIsNiBAQCBmYXN0L2RvbS9jb25uZWN0ZWQtc3ViZnJhbWUtY291bnRlci1vdmVyZmxvdy5o
dG1sIFsgU2xvdyBdCiBbIERlYnVnIF0gaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdl
cG9ydC0yLmh0bWwgWyBTbG93IF0KIAogIyBTa2lwIHdvcmtlcnMgdGVzdHMgdGhhdCBhcmUgdGlt
aW5nIG91dCBvciBhcmUgU2hhcmVkV29ya2VyIHJlbGF0ZWQgb25seQotaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmlnaW4u
aHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Rh
dGEtdXJsLXNoYXJlZC5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvZXhhbXBsZXMvb25jb25uZWN0LmFueS5odG1sIFsgU2tpcCBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvZXhhbXBsZXMvb25jb25uZWN0LmFueS53
b3JrZXIuaHRtbCBbIFNraXAgXQpAQCAtNjY1LDcgKzY2NCw2IEBAIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9TaGFyZWRXb3JrZXItcmVwbGFjZS1FdmVudEhhbmRsZXIu
YW55Lmh0CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29y
a2VyLXJlcGxhY2UtRXZlbnRIYW5kbGVyLmFueS53b3JrZXIuaHRtbCBbIFNraXAgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL1NoYXJlZFdvcmtlci1zY3JpcHQtZXJy
b3IuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L1NoYXJlZFdvcmtlci1zaW1wbGUuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJy
ZXIuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLWNyZWRlbnRpYWxzLmh0bWwgWyBTa2lw
IF0KIAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9y
cy9TaGFyZWRXb3JrZXIgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1
bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNDky
NjliM2I1MGI5MTc1Y2I2MmVjYTMxMmU1ODZiM2IxNjYyYTI1OS4uMmNhZTVmN2UzNWEzMmZlY2Vi
MjY4ZjI5MDAwMGU0ZTU1NTZjNjg2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1t
b2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEs
NyArMSw3IEBACiAKLUZBSUwgTm9uLW9iamVjdDogbnVsbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0
aGUgbW9kdWxlICcuL251bGwuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiB0cnVlIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3Vs
ZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vdHJ1ZS5qc29uJy4iCi1GQUlMIE5vbi1vYmplY3Q6
IGZhbHNlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZmFsc2UuanNvbicuIgot
RkFJTCBOb24tb2JqZWN0OiBzdHJpbmcgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAn
Li9zdHJpbmcuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBhcnJheSBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGlt
cG9ydCB0aGUgbW9kdWxlICcuL2FycmF5Lmpzb24nLiIKK0ZBSUwgTm9uLW9iamVjdDogbnVsbCBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUg
dHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IHRydWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicg
aXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiBm
YWxzZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0
IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IHN0cmluZyBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlv
bi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1v
YmplY3Q6IGFycmF5IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlkIEph
dmFTY3JpcHQgTUlNRSB0eXBlLiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3Bl
LW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVy
cm9yLW1vZHVsZS1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRk
MjJlNGMxZGNiM2E1Zi4uZjY4Y2M3M2I0ZDY3NGM1NGRmYWZlNTIyMTJiNjQzYzQwMzBmZDQyYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9j
aGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2No
ZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQu
dHh0CkBAIC0xLDQgKzEsNCBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9
IG51bGwKLQorRkFJTCBQcm9taXNlIHJlc29sdmVkIGR1cmluZyAjcmVwb3J0LXRoZS1lcnJvciBh
c3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgWyJoYW5k
bGVyIDEiLCAiaGFuZGxlciAyIiwgImhhbmRsZXIgMSBwcm9taXNlIiwgImhhbmRsZXIgMiBwcm9t
aXNlIl0gbGVuZ3RoIDQsIGdvdCBbXSBsZW5ndGggMAorUEFTUyBQcm9taXNlIHJlc29sdmVkIGR1
cmluZyBldmVudCBoYW5kbGVycyBvdGhlciB0aGFuIGVycm9yCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9i
YXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwt
d29ya2VyLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0CmluZGV4IDUxZDYxMDBlNjEyMmE5N2Mz
NjRiM2NlYjFkN2ZkMDdlMGUxNTYxMTcuLmE4MDUwYzA3OGNmOGI4OGQ1NjhhZmZlMGQ1NWNjMzE5
MGMzNjU0N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
ZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVj
dGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHNh
bWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxl
ICcuL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikm
bGFiZWw9cmVsYXRpdmUtY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKScuIgotRkFJTCBBYnNv
bHV0ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKSBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQg
bm90IGltcG9ydCB0aGUgbW9kdWxlICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9n
YW1tYS9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCop
JmxhYmVsPWFic29sdXRlLWNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCknLiIKLVBBU1MgUmVs
YXRpdmUgVVJMLWxpa2UgZnJvbSBjcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpCi1GQUlMIEFi
c29sdXRlIFVSTC1saWtlIGZyb20gY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKSBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291
bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9y
dC9nYW1tYS9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu
LCopJmxhYmVsPWFic29sdXRlLWNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCknLiIKK1BBU1Mg
UmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBzYW1lLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKK1BBU1Mg
QWJzb2x1dGUgVVJMLWxpa2UgZnJvbSBzYW1lLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKK0ZBSUwg
UmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBjcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIGFzc2Vy
dF9lcXVhbHM6IFJlbGF0aXZlIFVSTC1saWtlIHNwZWNpZmllciByZXNvbHV0aW9uIHNob3VsZCBm
YWlsIGV4cGVjdGVkICIodW5yZWFjaGVkKSIgYnV0IGdvdCAiZ2FtbWEvaW1wb3J0LmpzIgorUEFT
UyBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIGNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFt
aWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jh
c2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0CmluZGV4IDg2NmViYjIyN2FkMjZhYWNlMWE1
NzhiYWVhNmE4MWRjMGU2ZTc3ZjAuLjVlNzA2MzQ5MGUyZGZmZWNlODVlYTc2NWFlYmRkZTRiMTZl
YjBmYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBv
cnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBA
CiAKLUZBSUwgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdCBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJv
cjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2ltcG9ydC5qcz9waXBlPWhlYWRlcihB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9cmVsYXRpdmUtd29ya2VyIHRvcC1s
ZXZlbCBzY3JpcHQnLiIKLUZBSUwgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxl
dmVsIHNjcmlwdCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICdodHRwOi8vMTI3LjAu
MC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
ZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLXdvcmtlciB0b3AtbGV2ZWwgc2Ny
aXB0Jy4iCitQQVNTIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gd29ya2VyIHRvcC1sZXZlbCBzY3Jp
cHQKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZh
bHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13
b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRj
MWRjYjNhNWYuLjJmMTJhMjM0MmZhZDIyNGUzYTE4YTZmYjVkODQ4MzI1ZWE2Nzc2ZmUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9u
LW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VU
KSwgbWVzc2FnZSA9IG51bGwKLQorUEFTUyBUZXN0IGV2YWx1YXRpb24gb3JkZXIgb2YgbW9kdWxl
cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUv
ZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3Rl
ZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uYjg2
MWY3MDFmOTQ4ZmIxMzI3NjkzMjJjMzgzNjZmMmQxMzhmMDRlMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3Jr
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
ZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMg
QEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK0ZBSUwgVGVz
dCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVsZXMgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3Ro
cyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsic3RlcC0xLTEiLCAic3RlcC0xLTIiLCAiZ2xvYmFs
LWVycm9yIiwgImVycm9yIiwgIm1pY3JvdGFzayJdIGxlbmd0aCA1LCBnb3QgWyJzdGVwLTEtMSIs
ICJzdGVwLTEtMiIsICJtaWNyb3Rhc2siXSBsZW5ndGggMwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9y
dC13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRl
eCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi5jMWQzOGJkZTUwYzU5
ZTVkNTk0MTczZDk2ZjljZDE5ZWIxMDdjOWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitGQUlM
IFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzIGFzc2VydF9hcnJheV9lcXVhbHM6IGxl
bmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBbInN0ZXAtMi4yLTEiLCAic3RlcC0yLjItMiIs
ICJnbG9iYWwtZXJyb3IiLCAiZXJyb3IiLCAibWljcm90YXNrLTIuMiJdIGxlbmd0aCA1LCBnb3Qg
WyJzdGVwLTIuMi0xIiwgInN0ZXAtMi4yLTIiLCAibWljcm90YXNrLTIuMiJdIGxlbmd0aCAzCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFs
dWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdv
cmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMx
ZGNiM2E1Zi4uMmYxMmEyMzQyZmFkMjI0ZTNhMThhNmZiNWQ4NDgzMjVlYTY3NzZmZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24t
b3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQp
LCBtZXNzYWdlID0gbnVsbAotCitQQVNTIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVz
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlw
dHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDEyZDk0YTkxZWYxZjhhYjBhMTg3Yzc0OWIwZGRl
YzY5NmQxMTg4ZTcuLmI0ZDY4YWYwNTZlZWY2MjJhMzNkNTRmMDc2ZjM4MWQ0ZTFiYjI5YTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRz
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsyLDggQEAKIEZBSUwgU3RhdGljIGltcG9ydC4g
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4
cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgogRkFJTCBOZXN0ZWQgc3RhdGljIGltcG9ydC4g
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4
cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgogRkFJTCBTdGF0aWMgaW1wb3J0IGFuZCB0aGVu
IGR5bmFtaWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcq
Jy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIER5bmFt
aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5
bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9y
dC1vbi1sb2FkLXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgTmVzdGVkIGR5bmFt
aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5
bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9y
dC1vbi1keW5hbWljLWltcG9ydC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlMIER5
bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBpbXBvcnQuIGFzc2VydF9hcnJheV9lcXVhbHM6
IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3Qg
aW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLXN0YXRpYy1pbXBvcnQtc2NyaXB0LmpzJy4i
LCBleHBlY3RlZCBhcnJheQotRkFJTCBldmFsKGltcG9ydCgpKS4gYXNzZXJ0X2FycmF5X2VxdWFs
czogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5v
dCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMnLiIsIGV4cGVj
dGVkIGFycmF5CitQQVNTIER5bmFtaWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgZHluYW1pYyBpbXBv
cnQuCitQQVNTIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBpbXBvcnQuCitQQVNTIGV2
YWwoaW1wb3J0KCkpLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9kdWxld29y
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0
ZWQudHh0CmluZGV4IGRkOWFmMzhmZjA5ZmJlYzFmYWMwYjhmNWVhOWJhZDZlMzE2MzY0OWQuLjUx
ZWIzNjYzOGMxY2E3ZDA2MGI3Njc1OTI2ZmNjNzBjNWJmMDc2ZTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2Fs
cGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2lt
cG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09M
RSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBpZGVudGlmaWVyICdyJy4gaW1wb3J0
IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KIAotRkFJTCBCYXNlIFVSTCBpbiBt
b2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IGltcG9ydCBhc3NlcnRfdW5yZWFjaGVkOiBHb3QgZXJy
b3IgZXZlbnQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNTIEJhc2UgVVJMIGluIG1vZHVs
ZSBkZWRpY2F0ZWQgd29ya2VyczogaW1wb3J0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9y
dFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMt
aW4td29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBhYjVhN2ZiODkwMjBmMjlmZDg5M2E3NTY4MGZm
ZTE3ZDNkMzUwZjdjLi5hYjUzYjgwNTk5YWUwMTk1NzgwODVlZTQ0YWFlZmE0Yzc5NTUyNjg0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnRTY3JpcHRzLWluLXdvcmtlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0x
LDMgKzEsMyBAQAogCi1GQUlMIGltcG9ydFNjcmlwdHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
ImdhbW1hL3NjcmlwdC5qcyIgYnV0IGdvdCAiYmV0YS9zY3JpcHQuanMiCitQQVNTIGltcG9ydFNj
cmlwdHMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4
M2YzNjdmMmNmM2E2NmM2NGE2MjY0Mjk0NjU2ZDVlODgxZDFjMTFjLi4yOGIwY2I0MDAxMzkyZDA4
ODdhNGZlYmU2ODFjMWUxNTFkMGRmMThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9k
dWxld29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2Vy
LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBCYXNlIFVSTCBpbiBtb2R1bGUg
ZGVkaWNhdGVkIHdvcmtlcnM6IFhIUiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZ2FtbWFcbiIg
YnV0IGdvdCAiYmV0YVxuIgorUEFTUyBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtl
cnM6IFhIUgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9i
YXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGQ2YjA4ZWVkYWU2
ZjY5NmM3YTRiZmE2NTVlMTNiNWVkNDYwN2VhMDEuLmVhMTQ1NGQ5YjNmMjBmODVkOTAxNmM1MDZh
MTU0NmFmNjE3ODQyZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMg
KzEsMyBAQAogCi1GQUlMIHhoci13b3JrZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImdhbW1h
XG4iIGJ1dCBnb3QgImJldGFcbiIKK1BBU1MgeGhyLXdvcmtlcgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0
b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1l
LW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggODMxZjBjNThjNjk0YzJkNGZlYmQ2ZDhkMGFmMzA3
YjEwOTQ0MmE2ZS4uZDU1NWVlN2NmM2ZjNzJlZmI4MmRmOWRiN2RhZDM2N2Y5YWI3ZmZiZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1
Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSwxMSBAQAog
Ci1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyB1bnN1cHBv
cnRlZF9zY2hlbWUKIEZBSUwgZGF0YV91cmwgVGhlIG9wZXJhdGlvbiBpcyBpbnNlY3VyZS4KLVRJ
TUVPVVQgYWJvdXRfYmxhbmsgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgZXhhbXBsZV9pbnZhbGlk
IFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIHBvcnRfODEgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQg
aHR0cHNfcG9ydF84MCBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBodHRwc19wb3J0XzgwMDAgVGVz
dCB0aW1lZCBvdXQKLVRJTUVPVVQgaHR0cF9wb3N0XzgwMTIgVGVzdCB0aW1lZCBvdXQKLVRJTUVP
VVQgamF2YXNjcmlwdF91cmwgVGVzdCB0aW1lZCBvdXQKK1BBU1MgYWJvdXRfYmxhbmsKK1BBU1Mg
ZXhhbXBsZV9pbnZhbGlkCitQQVNTIHBvcnRfODEKK1BBU1MgaHR0cHNfcG9ydF84MAorUEFTUyBo
dHRwc19wb3J0XzgwMDAKK1BBU1MgaHR0cF9wb3N0XzgwMTIKK1BBU1MgamF2YXNjcmlwdF91cmwK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3Qt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3Qt
ZXhwZWN0ZWQudHh0CmluZGV4IGYxNzQxZjlkOGJmMDcwMzI3MGQyZTM3NjJkYmNiZTI2YzBiOTAw
NTkuLjNiMGRmYjM1ZTUxY2QxYTg1NDU1MzAxOWMwZTQwM2RiZTJmMWQzM2YgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRl
cmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
aW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50
eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgV29ya2VyTG9jYXRpb24gd2l0aCByZWRpcmVjdHM6
IGNsYXNzaWMgZGVkaWNhdGVkIHdvcmtlcnMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6
Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9j
YXRpb24vcG9zdC1sb2NhdGlvbi1tZW1iZXJzLmpzP2EiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhv
c3Q6ODgwMC93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vaGVs
cGVyLXJlZGlyZWN0LnB5P2ZhaWwiCitQQVNTIFdvcmtlckxvY2F0aW9uIHdpdGggcmVkaXJlY3Rz
OiBjbGFzc2ljIGRlZGljYXRlZCB3b3JrZXJzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckds
b2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9X
b3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGRjMmUyZTIwN2RiMDAxZWU3MGU3MzMwN2QyN2JiMzM1NzIwZmQ1NTkuLmIzYmY4MWVlODY4
MWI5ZGMwODBmNTgwMjcxZThiOGYzOTA5NjU0OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckds
b2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFj
ZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4
dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBXb3JrZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czog
bW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8v
bG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0
aW9uL3Bvc3QtbG9jYXRpb24tbWVtYmVycy5qcz9hIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0
Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL2hlbHBl
ci1yZWRpcmVjdC5weT9mYWlsIgorUEFTUyBXb3JrZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czog
bW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3Jr
ZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2Vy
LWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDIwYWMxN2Q1NjNjNGIzYTQ2
MWYwY2FhZmJlYWVlYmQ3MTNmOTcwODEuLmRjY2VkY2NkMzY4ZTFmZjE3YjFkZDEzNmU0NTNmZWM0
ZmUxMGJjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJs
LmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11
cmwuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxOCArMSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5
bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4
MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6
IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0
Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9uZXN0ZWQtc3RhdGljLWltcG9ydC13b3Jr
ZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09M
RSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDov
L2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvc3RhdGljLWltcG9ydC1h
bmQtdGhlbi1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4
YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxl
cy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0
cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVu
ZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQg
Y2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50
YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAw
L3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtYW5kLXRoZW4tc3RhdGlj
LWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3Vt
ZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0
ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXZh
bC1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkg
b25lIGFyZ3VtZW50LgogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29y
a2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWltcG9ydC1hbmQtdGhlbi1zdGF0aWMtaW1w
b3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
Ci0KLUZBSUwgU3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0
dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1pbXBv
cnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
IgotRkFJTCBOZXN0ZWQgc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJh
bCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3Rl
ZC1zdGF0aWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkg
b25lIGFyZ3VtZW50LiIKLUZBSUwgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9y
dC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhF
cnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93
b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1pbXBvcnQtYW5kLXRoZW4tZHluYW1pYy1p
bXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1l
bnQuIgotRkFJTCBEeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBc
Imh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMt
aW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3Vt
ZW50LiIKLUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBs
aXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMv
bmVzdGVkLWR5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4
YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGlj
IGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJT
eW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6
ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LWFuZC10aGVuLXN0
YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUg
YXJndW1lbnQuIgotRkFJTCBldmFsKGltcG9ydCgpKS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0
ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V2
YWwtZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3Rs
eSBvbmUgYXJndW1lbnQuIgorUEFTUyBTdGF0aWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgc3RhdGlj
IGltcG9ydC4KK1BBU1MgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4KK1BB
U1MgRHluYW1pYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHlu
YW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4KK1BBU1MgZXZhbChpbXBvcnQoKSku
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
bW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1jc3AtZXhwZWN0ZWQudHh0CmluZGV4IDFk
YTQ2YjkyNmJlMDg5NmVlOGY3NWE3OGRjYWU0ZjI2OWIwNTA5MmIuLjIzOWNjOWNlMTUzMDFmN2Vl
ZDgzZDVlYjIyMzBhOWRlMjk0ZWEyZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LWNzcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQt
Y3NwLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSwyMiBAQAogQ09OU09MRSBNRVNTQUdFOiBVbnJl
Y29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4K
IAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6
OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwog
Q09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGly
ZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9y
dC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1v
bi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8v
d3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1s
b2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1
cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJl
Y29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4K
IAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6
OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwor
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0
My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxv
Y2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93
b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09M
RSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZl
ICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8v
d3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1s
b2FkLXNjcmlwdC5qcwogCiBQQVNTIHdvcmtlci1zcmMgJ3NlbGYnIGRpcmVjdGl2ZSBzaG91bGQg
ZGlzYWxsb3cgY3Jvc3Mgb3JpZ2luIHN0YXRpYyBpbXBvcnQuCiBGQUlMIHdvcmtlci1zcmMgKiBk
aXJlY3RpdmUgc2hvdWxkIGFsbG93IGNyb3NzIG9yaWdpbiBzdGF0aWMgaW1wb3J0LiBhc3NlcnRf
YXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAwIHRvIGJlICJleHBvcnQtb24tbG9hZC1z
Y3JpcHQuanMiIGJ1dCBnb3QgIkVSUk9SIiAoZXhwZWN0ZWQgYXJyYXkgWyJleHBvcnQtb24tbG9h
ZC1zY3JpcHQuanMiXSBnb3QgWyJFUlJPUiJdKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1pbXBvcnQtZmFpbHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWlt
cG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dAppbmRleCA5NWM2ZDE1ZGY0NGUxOGEzNWRmZWIwZmEz
OWM4ZDM4NDQyMGMyYzEzLi5lOTU1NzhlNzFiMWM1MGE0ZTA0NzFiMDM3MTU0YjM4NmIzN2FlZDc0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4
dApAQCAtMSw5ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0
ZWQgc3RyaW5nIGxpdGVyYWwgJy4vbm9uLWV4aXN0ZW50LXNjcmlwdC5qcycuIGltcG9ydCBjYWxs
IGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IEltcG9ydGlu
ZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLgogCi1GQUlMIGltcG9ydFNjcmlwdHMoKSBvbiBtb2R1
bGUgd29ya2VyIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJUeXBlRXJyb3IiIGJ1dCBnb3QgIkxPQURFRCIKK1BBU1MgaW1wb3J0U2NyaXB0cygpIG9u
IG1vZHVsZSB3b3JrZXIgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIFBBU1MgV29ya2VyIGNv
bnN0cnVjdGlvbiBmb3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJy
b3JFdmVudC4KIFBBU1MgU3RhdGljIGltcG9ydCBmb3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91
bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KLUZBSUwgRHluYW1pYyBpbXBvcnQgZm9yIG5vbi1l
eGlzdGVudCBzY3JpcHQgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIlR5cGVFcnJvciIgYnV0IGdvdCAiRXJyb3IiCitQQVNTIER5bmFtaWMgaW1wb3J0
IGZvciBub24tZXhpc3RlbnQgc2NyaXB0IHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNT
IFdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIGFuIGludmFsaWQgVVJMIHNob3VsZCB0aHJvdyBhbiBl
eGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIGEgZmlsZSBVUkwgc2hvdWxk
IHRocm93IGFuIGV4Y2VwdGlvbi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1p
bXBvcnQtbWV0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRh
LWV4cGVjdGVkLnR4dAppbmRleCBkNTgwNjIwNDFjM2U2OTUxNWI4MTVlMDJkN2MzODY4NGQ3N2M3
NmI3Li43NzI5MWJhYTFhNDE4NGJlYmU3YWQ3YjVkOWYxMTljNzFhNzhkZTRmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9k
dWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDUgQEAK
LUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQg
aW5zaWRlIG1vZHVsZXMuCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4
RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCi0KLUZBSUwg
VGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0LiBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBp
bXBvcnQubWV0YSBpcyBvbmx5IHZhbGlkIGluc2lkZSBtb2R1bGVzLiIKLUZBSUwgVGVzdCBpbXBv
cnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQuIGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUg
aW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJhZ21lbnQuIGFzc2VydF90cnVlOiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgdG9w
LWxldmVsIG1vZHVsZSBzY3JpcHQuCitQQVNTIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBp
bXBvcnRlZCBtb2R1bGUgc2NyaXB0LgorUEFTUyBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUg
aW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJhZ21lbnQuCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LW1ldGEuaHRtbAppbmRleCBjZmY4ZTkxNDg4ZTgyMzlhYmUyMTM2MTlkMTJkNWE2MDMw
NzJmYmVhLi5lZGUyNjkyZTFjNjM0MWJlZmZjOTAxMGM0MWI4ZjRjZmU0MzgzMjliIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
bW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNh
dGVkLXdvcmtlci1pbXBvcnQtbWV0YS5odG1sCkBAIC01Myw3ICs1Myw3IEBACiAgICAgICAgIHdv
cmtlci5wb3N0TWVzc2FnZSgnLi8nICsgc2NyaXB0X3VybCArICcjMScpOwogICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB3b3JrZXIub25tZXNzYWdlID0gcmVzb2x2ZSk7CiAg
ICAgICB9KQotICAgICAgLnRoZW4obXNnX2V2ZW50ID0+IGFzc2VydF90cnVlKG1zZ19ldmVudC5k
YXRhLmVuZHNXaXRoKHNjcmlwdF91cmwpKSk7CisgICAgICAudGhlbihtc2dfZXZlbnQgPT4gYXNz
ZXJ0X3RydWUobXNnX2V2ZW50LmRhdGEuZW5kc1dpdGgoc2NyaXB0X3VybCArICcjMScpKSk7CiB9
LCAnVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQgd2l0
aCBhIGZyYWdtZW50LicpOwogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13
b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LXJlZmVycmVyLWV4cGVjdGVkLnR4dAppbmRleCA2ZGM0MmMxY2ZkMzM0OGFmZGQxZGZk
M2IxMGE1MDQ3MDU1MzAxOTZhLi5mZTFiOWQ5M2MwODAxMWI1MGU5NDFmNGUxMjM2MDY3YWJiZDNm
MjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJyZXItZXhwZWN0
ZWQudHh0CkBAIC0xLDE5ICsxLDIzIEBACi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNz
YWdlID0gbnVsbAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5s
b2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1j
aGVja2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxv
Y2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNo
ZWNrZXIucHkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9j
YWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hl
Y2tlci5weQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2Nh
bGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVj
a2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2Fs
aG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNr
ZXIucHkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxo
b3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tl
ci5weQogCiBQQVNTIFNhbWUtb3JpZ2luIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0IGxvYWRpbmcg
d2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeQogUEFTUyBTYW1lLW9yaWdpbiB0b3At
bGV2ZWwgbW9kdWxlIHNjcmlwdCBsb2FkaW5nIHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
CiBQQVNTIFNhbWUtb3JpZ2luIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0IGxvYWRpbmcgd2l0aCAi
c2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeQotRkFJTCBTYW1lLW9yaWdpbiBzdGF0aWMgaW1w
b3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJv
ciIKLUZBSUwgU2FtZS1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVy
IHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBTYW1lLW9yaWdpbiBzdGF0aWMgaW1w
b3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJv
ciIKK1BBU1MgU2FtZS1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVm
ZXJyZXIgcG9saWN5LgorUEFTUyBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm9yaWdp
biIgcmVmZXJyZXIgcG9saWN5LgorUEFTUyBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGgg
InNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCiBGQUlMIENyb3NzLW9yaWdpbiBzdGF0aWMg
aW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBl
cnJvciIKIEZBSUwgQ3Jvc3Mtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZl
cnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKIEZBSUwgQ3Jvc3Mtb3JpZ2luIHN0YXRp
YyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBl
IGVycm9yIgotVElNRU9VVCBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJuby1yZWZl
cnJlciIgcmVmZXJyZXIgcG9saWN5LiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIFNhbWUtb3JpZ2lu
IGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgotTk9UUlVOIFNh
bWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xp
Y3kuCi1OT1RSVU4gQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVy
IiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdp
dGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgotTk9UUlVOIENyb3NzLW9yaWdpbiBkeW5hbWlj
IGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgorRkFJTCBTYW1lLW9y
aWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAv
d29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWltcG9ydC1zYW1lLW9yaWdpbi1yZWZl
cnJlci1jaGVja2VyLXdvcmtlci5qcyIKK0ZBSUwgU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQg
d2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJo
dHRwOi8vbG9jYWxob3N0Ojg4MDAvIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29y
a2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWltcG9ydC1zYW1lLW9yaWdpbi1yZWZlcnJl
ci1jaGVja2VyLXdvcmtlci5qcyIKK1BBU1MgU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0
aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4KK0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFt
aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlw
ZSBlcnJvciIKK0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCitGQUlMIENyb3NzLW9yaWdpbiBk
eW5hbWljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IFR5cGUgZXJyb3IiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFu
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQu
dHh0CmluZGV4IGEyM2E1NTc1ZGI0Mjc0MjdmODViZDZiNjM1NGRlODgzODMxZmUyYjQuLmRjY2Vk
Y2NkMzY4ZTFmZjE3YjFkZDEzNmU0NTNmZWM0ZmUxMGJjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxNCArMSw5IEBACi1DT05TT0xFIE1F
U1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhw
ZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6
IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFy
Z3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAn
KicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCiAKLUhhcm5lc3Mg
RXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyon
LiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotCi1GQUlMIFN0YXRp
YyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAi
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4
YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVkIHN0YXRpYyBpbXBvcnQuIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50
LiIKLUZBSUwgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
IgotRkFJTCBEeW5hbWljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZh
aWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1v
ZHVsZSAnLi9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlM
IE5lc3RlZCBkeW5hbWljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZh
aWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1v
ZHVsZSAnLi9leHBvcnQtb24tZHluYW1pYy1pbXBvcnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBh
cnJheQotRkFJTCBEeW5hbWljIGltcG9ydCBhbmQgdGhlbiBzdGF0aWMgaW1wb3J0LiBhc3NlcnRf
YXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJv
cjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1zdGF0aWMtaW1wb3J0
LXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgZXZhbChpbXBvcnQoKSkuIGFzc2Vy
dF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVy
cm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWxvYWQtc2NyaXB0
LmpzJy4iLCBleHBlY3RlZCBhcnJheQorUEFTUyBTdGF0aWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQg
c3RhdGljIGltcG9ydC4KK1BBU1MgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9y
dC4KK1BBU1MgRHluYW1pYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBkeW5hbWljIGltcG9ydC4KK1BB
U1MgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4KK1BBU1MgZXZhbChpbXBv
cnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4
dAppbmRleCBkYTBlNGViNjc1OGQxNGEzN2EzOThkMGI2ZmM3MWFkMzg3NmJkMjZiLi4xZmMwYzY2
ZmRmNzI0YzJhYTNiOTEwNjk4MGJmYmU3ZTk4OGY5NzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0CkBAIC0yLDExICsyLDYgQEAKIFBBU1MgVGVz
dCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggdGhlIGRlZmF1bHQgd29ya2VyIHR5cGUuCiBQQVNT
IFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIHRoZSAiY2xhc3NpYyIgd29ya2VyIHR5cGUu
CiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIHRoZSAibW9kdWxlIiB3b3JrZXIg
dHlwZS4KLUZBSUwgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gZW1wdHkgd29ya2Vy
IHR5cGUuIGFzc2VydF90aHJvd3NfanM6IFdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiBlbXB0
eSB0eXBlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gZnVuY3Rpb24gIigpID0+IHsKLSAgICAg
ICAgbmV3IFdvcmtlcigncmVzb3VyY2VzL3Bvc3QtbWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcycs
IHsgdHlwZTogJycgfSk7Ci0gICAgICB9IiBkaWQgbm90IHRocm93Ci1GQUlMIFRlc3Qgd29ya2Vy
IGNvbnN0cnVjdGlvbiB3aXRoIGFuIHVua25vd24gd29ya2VyIHR5cGUuIGFzc2VydF90aHJvd3Nf
anM6IFdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1bmtub3duIHR5cGUgc2hvdWxkIHRocm93
IGFuIGV4Y2VwdGlvbiBmdW5jdGlvbiAiKCkgPT4gewotICAgICAgICBuZXcgV29ya2VyKCdyZXNv
dXJjZXMvcG9zdC1tZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzJywKLSAgICAgICAgICAgICAgICAg
ICB7IHR5cGU6ICd1bmtub3duJyB9KTsKLSAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgVGVz
dCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gZW1wdHkgd29ya2VyIHR5cGUuCitQQVNTIFRl
c3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIHVua25vd24gd29ya2VyIHR5cGUuCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQu
dHh0CmluZGV4IGU4ZWI1NDBiZDMzOTI0MDBhOGRiZmQ5Mzg2NDhhNjQ5MjM5YzBkOWUuLmQxYTUw
ZjdlYTNjZDZkYzI5OGVmNzU0MTQ3NzYyYzY5YzU3ZDczYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsx
LDE0IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcq
Jy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KK0NPTlNPTEUgTUVT
U0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJzsnCitDT05TT0xFIE1FU1NBR0U6
IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICc7JwogCi1IYXJuZXNzIEVycm9yIChGQUlM
KSwgbWVzc2FnZSA9IEVycm9yOiBhc3NlcnRfaW1wbGVtZW50czogU3RhdGljIGltcG9ydCBtdXN0
IGJlIHN1cHBvcnRlZCBvbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlciB0byBydW4gdGhpcyB0ZXN0
LiB1bmRlZmluZWQKLQotTk9UUlVOIE1vZHVsZSB3b3JrZXIgY29uc3RydWN0aW9uIGZvciBzY3Jp
cHQgd2l0aCBzeW50YXggZXJyb3Igc2hvdWxkIGRpc3BhdGNoIGFuIGV2ZW50IG5hbWVkIGVycm9y
LgotTk9UUlVOIFN0YXRpYyBpbXBvcnQgb24gbW9kdWxlIHdvcmtlciBmb3Igc2NyaXB0IHdpdGgg
c3ludGF4IGVycm9yIHNob3VsZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4KK0ZBSUwg
TW9kdWxlIHdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJvciBz
aG91bGQgZGlzcGF0Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIGZ1bmN0aW9uICJmdW5jdGlvbiBFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiBi
dXQgZ290IGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJvckV2ZW50KCkgeworICAgIFtuYXRpdmUgY29k
ZV0KK30iCitGQUlMIFN0YXRpYyBpbXBvcnQgb24gbW9kdWxlIHdvcmtlciBmb3Igc2NyaXB0IHdp
dGggc3ludGF4IGVycm9yIHNob3VsZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4gYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50KCkgeworICAgIFtu
YXRpdmUgY29kZV0KK30iIGJ1dCBnb3QgZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yRXZlbnQoKSB7
CisgICAgW25hdGl2ZSBjb2RlXQorfSIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0CmluZGV4IDYzOTg0NzEyMTQ1OWE3YWIzN2I5ZjA5
YTY4YmE2NGVhOGE5ZWQ1N2MuLmU5NDY5NDdiMTRhZWYzZTUyOTlhMGFiYTNhZTRiMWNmOWZjZDk1
NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1leHBl
Y3RlZC50eHQKQEAgLTEsNyArMSw4IEBACiBDT05TT0xFIE1FU1NBR0U6IFVuaGFuZGxlZCBQcm9t
aXNlIFJlamVjdGlvbjogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJl
ZFdvcmtlcgogCi1GQUlMIFRlc3QgdGhlIG5hbWUgcHJvcGVydHkgb2Ygc2hhcmVkIGFuZCBkZWRp
Y2F0ZWQgd29ya2VycyB2aWEgdGhlIG5hbWUgY29uc3RydWN0b3Igb3B0aW9uIENhbid0IGZpbmQg
dmFyaWFibGU6IFNoYXJlZFdvcmtlcgotUEFTUyBEZWNsYXJpbmcgbmFtZSBhcyBhbiBhY2NpZGVu
dGFsIGdsb2JhbCBtdXN0IG5vdCBjYXVzZSBhIGhhcm5lc3MgZXJyb3IgZm9yIERlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlCitIYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxl
ZCByZWplY3Rpb246IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorCiBQQVNTIG5h
bWUgcHJvcGVydHkgdmFsdWUgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCiBQQVNTIG5h
bWUgcHJvcGVydHkgaXMgcmVwbGFjZWFibGUgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
CitQQVNTIERlY2xhcmluZyBuYW1lIGFzIGFuIGFjY2lkZW50YWwgZ2xvYmFsIG11c3Qgbm90IGNh
dXNlIGEgaGFybmVzcyBlcnJvciBmb3IgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIv
b3Blbi11cmwtcmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0
ZWQtd29ya2VyLW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggMWUyZDM5OTJmNmQ1ZGYzMjIwN2E2
YjBmNjE5YTZkNzExODEyNDAwZC4uN2E3YTkxN2VhYTk4ZTkyZWUwM2VjMjhhMTFlNzgwODRkMjM0
Yjg4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy94aHIvb3Blbi11cmwtcmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVu
LXVybC1yZWRpcmVjdGVkLXdvcmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBA
QAogQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cyLmxvY2FsaG9zdDo4
ODAwL3hoci9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5P2ZpbHRlcl9uYW1lPW9yaWdpbiZj
b3JzCiAKLUZBSUwgUmVmZXJlciBoZWFkZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJlZmVy
ZXI6IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC94aHIvcmVzb3VyY2VzL3dvcmtlcnhoci1vcmlnaW4t
cmVmZXJyZXIuanNcbiIgYnV0IGdvdCAiUmVmZXJlcjogaHR0cDovL2xvY2FsaG9zdDo4ODAwL3ho
ci9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249d29ya2VyeGhyLW9yaWdpbi1yZWZlcnJl
ci5qc1xuIgorUEFTUyBSZWZlcmVyIGhlYWRlcgogRkFJTCBPcmlnaW4gaGVhZGVyIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJPcmlnaW46IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMFxuIiBidXQgZ290
ICIiCiBQQVNTIFJlcXVlc3QgVVJMIHRlc3QKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420047</attachid>
            <date>2021-02-11 14:55:57 -0800</date>
            <delta_ts>2021-02-11 15:15:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210211145556.patch</filename>
            <type>text/plain</type>
            <size>230069</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MWIwMmZhMTIzZDg5YjM2OTdlZDZhNWE1YmI0N2ExOWY2YzNkNzI1Li40OTY2YzcwZWE2NDQ5NmE5
YTZlN2MzM2NlM2NhY2FmODljN2Q5ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAyMS0wMi0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcDoK
KyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9yKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlRXJyb3IpOgorICAgICAg
ICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVSYW5nZUVycm9y
KToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVmZXJlbmNlRXJyb3IpOgorICAgICAgICAoSlNDOjpj
cmVhdGVTeW50YXhFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVR5cGVFcnJvcik6CisgICAg
ICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlR2V0dGVyVHlw
ZUVycm9yKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvRXJy
b3JJbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OkVycm9ySW5zdGFu
Y2UpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGUpOgorICAgICAgICAoSlND
OjpFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6
RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkTmFtZVN0cmluZyk6CisgICAgICAgIChKU0M6OkVycm9y
SW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5z
dGFuY2UuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRlKToKKyAgICAgICAg
KEpTQzo6RXJyb3JJbnN0YW5jZTo6ZXJyb3JUeXBlIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNv
bnN0cnVjdEltcGwpOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9y
VHlwZT46OmNhbGxJbXBsKToKKyAgICAgICAgKiBydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbkludGVybmFsOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVF
cnJvci5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OkpTV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3IpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUxp
bmtFcnJvci5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OkpTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRp
bWVFcnJvci5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OkpT
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3IpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlD
b21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorCiAyMDIxLTAyLTEwICBT
YWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGNyYXNoIHdo
ZW4gcmVwYXJzaW5nIGFuIGFycm93IGZ1bmN0aW9uIGFuZCB0aGUgcGFyc2luZyBpbnZhcmlhbnQg
aXMgYnJva2VuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA1MTUzZGY5Mjc2YTBlYzEzMzI1OTg1ZDNjMGE5NGQw
OTE3M2I4ZC4uZjNlOGYyM2QyNTBmZGY5YzU5ZTIwMjNmZTg4ODc0YTBiZmYxZWJjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAyMS0wMi0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRl
cjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdFNjcmlw
dFdpdGhDYWNoZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25I
YW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhv
dXROYW1lKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2NyaXB0TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xv
YmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RP
TUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVBy
b3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVh
dGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVM
b2FkZXJJbXBvcnRNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5k
b3dCYXNlOjptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyk6IERlbGV0ZWQu
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNFeGVjU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXhlY1N0YXRlOjps
b2FkQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxT
Y29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5cGUuaC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6Y2xlYXJDbGllbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpzY3JpcHRGZXRjaGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6cGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgICogYmlu
ZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIpOgorICAgICAgICAo
V2ViQ29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxl
TG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om1v
ZHVsZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNl
VVJMRnJvbVJlcXVlc3RVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVy
OjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9y
dE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRTb3VyY2VDb2RlOjpTY3JpcHRTb3VyY2VDb2RlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6fldvcmtlck1vZHVsZVNj
cmlwdExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6
OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3Rp
ZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oLgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIuaDogQWRkZWQuCisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBkb20vTG9hZGFibGVNb2R1bGVTY3Jp
cHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQpOiBE
ZWxldGVkLgorICAgICAgICAqIGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oOgorICAgICAgICAq
IGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6
OnJlcXVlc3RNb2R1bGVTY3JpcHQpOgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSk6CisgICAg
ICAgICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVh
ZGFibGVMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyOjpXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5pZGw6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwdHMpOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNj
b3BlOjpjcmVkZW50aWFscyBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZVByb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9i
YWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU6Oldvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmg6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6bW9kdWxlTG9h
ZGVyKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKToK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRN
b2R1bGVTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldFNj
cmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUp
OgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
U2NyaXB0TG9hZGVyOjpyZXNwb25zZVNvdXJjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJTY3JpcHRMb2FkZXI6OmlzUmVkaXJlY3RlZCBjb25zdCk6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUGFyYW1ldGVyczo6
aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6ZXZh
bHVhdGVTY3JpcHRJZk5lY2Vzc2FyeSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQu
aDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclR5cGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VySm9iLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJK
b2I6OmZldGNoU2NyaXB0V2l0aENvbnRleHQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oOgorICAgICAgICAqIHdvcmtsZXRz
L1dvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFs
U2NvcGU6OmZldGNoQW5kSW52b2tlU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRH
bG9iYWxTY29wZTo6cHJvY2Vzc05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6bm90aWZ5
RmluaXNoZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3Bl
OjpkaWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3JrbGV0
cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaDoKKwogMjAyMS0wMi0xMCAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3QgZGlmZmVyZW50aWF0ZSBiZXR3ZWVu
IFJlbGVhc2UgYW5kIFByb2R1Y3Rpb24gdmlhIEVOQUJMRV9ERVZFTE9QRVJfTU9ERQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwCmluZGV4IDc1
OWE1YjI0YTBlZDA4NjgwY2NhYTYzNDBkMmU5NWQ0NTBiODBmZDYuLjI5NmM4NWNjOTBlMDViNTQ1
NDdmNjYyYTdlMmY4YTFlMTMwYTQ2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiBjb25zdCBDbGFzc0luZm8gQWdncmVnYXRlRXJyb3I6OnNfaW5mbyA9IHsgIkFnZ3JlZ2F0
ZUVycm9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShBZ2dyZWdhdGVFcnJvcikgfTsKIAogQWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9y
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUp
CisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6QWdncmVnYXRlRXJyb3IpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAppbmRleCBmNDczYjgx
ODFlYzJmMDJhMGNjNzhhMjZjMGMyMGRjOTYzMWZkYzc0Li4wOGE0MGRlMTZjZTVhNzdmZWYzNDY2
YTM0MTVlN2Y1NDRmZjkwMDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3Iu
Y3BwCkBAIC0zNSwzNyArMzUsMzcgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09iamVjdCogY3JlYXRl
RXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQo
IW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0
dXJlKCksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0dXJu
IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwg
Z2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5v
dGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlRXZh
bEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJU
KCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShn
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVj
dHVyZShFcnJvclR5cGU6OkV2YWxFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGlu
ZywgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3Qs
IGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5
cGU6OkV2YWxFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBl
OjpFdmFsRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlUmFuZ2VFcnJvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5z
dGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5p
c0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0
LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JU
eXBlOjpSYW5nZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsK
KyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmFuZ2VF
cnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpSYW5nZUVy
cm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVJlZmVyZW5jZUVycm9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5j
ZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1w
dHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6
OlJlZmVyZW5jZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsK
KyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmVmZXJl
bmNlRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6UmVm
ZXJlbmNlRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlU3ludGF4RXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvcklu
c3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2Uu
aXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9y
VHlwZTo6U3ludGF4RXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUp
OworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpTeW50
YXhFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpTeW50
YXhFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVUeXBlRXJyb3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNl
OjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlciwgUnVudGltZVR5cGUgdHlwZSkKIHsKICAgICBBU1NF
UlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRl
KGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3Ry
dWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHRy
dWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpU
eXBlRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwgRXJyb3JUeXBlOjpUeXBlRXJyb3Is
IHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIg
YXBwZW5kZXIpCkBAIC03Niw3ICs3Niw3IEBAIEpTT2JqZWN0KiBjcmVhdGVOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvckluc3RhCiBKU09i
amVjdCogY3JlYXRlVVJJRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikK
IHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmpl
Y3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VVJJRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRl
ciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUo
Z2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1
Y3R1cmUoRXJyb3JUeXBlOjpVUklFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGlu
ZywgRXJyb3JUeXBlOjpVUklFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFcnJv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5cGUgZXJyb3JUeXBlLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0xMTMsNyArMTEzLDcgQEAgSlNPYmplY3QqIGNyZWF0ZUVy
cm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9yVHlwZVdpdGhFeHRlbnNpb24g
ZXJyb3IKIEpTT2JqZWN0KiBjcmVhdGVHZXR0ZXJUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIEFTU0VSVCghbWVzc2Fn
ZS5pc0VtcHR5KCkpOwotICAgIGF1dG8qIGVycm9yID0gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0
dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSk7CisgICAgYXV0byogZXJyb3IgPSBF
cnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGds
b2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdl
LCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IpOwogICAgIGVycm9y
LT5zZXROYXRpdmVHZXR0ZXJUeXBlRXJyb3IoKTsKICAgICByZXR1cm4gZXJyb3I7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IDBmMmY1YTMxODQwMmZiYjdjN2Q4ODAyYjZkNzg0MmVmZTQwNmM4NDYuLjliZTkzMGNmMWMz
YzlhNDBlNjA4NTk4MzU1OGExYTU5YmM3OGI2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCkBAIC02MCwxNCArNjAsMTQgQEAg
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVh
dGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25S
ZWFsbSh2bSwgbmV3VGFyZ2V0KS0+ZXJyb3JTdHJ1Y3R1cmUoKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKIAotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3Ry
dWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKSk7CisgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVO
b3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpKTsKIH0KIAogSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxFcnJvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNh
bGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGds
b2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNz
YWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJl
LCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2Up
KTsKIH0KIAogYm9vbCBFcnJvckNvbnN0cnVjdG9yOjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4IDJlNGVjMzlmMTIwNThiMjUwODcyMmUw
YjgyNTIyNDdiZWIwMzE5ZTYuLjBmODZlMjJiOTJkZGQ2ZDEzOTg1OGI4NmU1NmNlYWRjYWVjZTBk
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFu
Y2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2Uu
Y3BwCkBAIC0zNCwxOCArMzQsMjMgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5m
byBFcnJvckluc3RhbmNlOjpzX2luZm8gPSB7ICJFcnJvciIsICZKU05vbkZpbmFsT2JqZWN0Ojpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRXJyb3JJbnN0YW5j
ZSkgfTsKIAotRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQorRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBFcnJvclR5cGUgZXJyb3JUeXBlKQogICAgIDogQmFzZSh2bSwgc3RydWN0
dXJlKQorICAgICwgbV9lcnJvclR5cGUoZXJyb3JUeXBlKQorICAgICwgbV9zdGFja092ZXJmbG93
RXJyb3IoZmFsc2UpCisgICAgLCBtX291dE9mTWVtb3J5RXJyb3IoZmFsc2UpCisgICAgLCBtX2Vy
cm9ySW5mb01hdGVyaWFsaXplZChmYWxzZSkKKyAgICAsIG1fbmF0aXZlR2V0dGVyVHlwZUVycm9y
KGZhbHNlKQogewogfQogCi1FcnJvckluc3RhbmNlKiBFcnJvckluc3RhbmNlOjpjcmVhdGUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUg
bWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUsIGJvb2wg
dXNlQ3VycmVudEZyYW1lKQorRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVl
IG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlLCBFcnJv
clR5cGUgZXJyb3JUeXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogICAgIFN0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS5pc1VuZGVmaW5lZCgpID8g
U3RyaW5nKCkgOiBtZXNzYWdlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgcmV0dXJuIGNyZWF0ZShnbG9iYWxP
YmplY3QsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2VTdHJpbmcsIGFwcGVuZGVyLCB0eXBlLCB1c2VD
dXJyZW50RnJhbWUpOworICAgIHJldHVybiBjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0
dXJlLCBtZXNzYWdlU3RyaW5nLCBhcHBlbmRlciwgdHlwZSwgZXJyb3JUeXBlLCB1c2VDdXJyZW50
RnJhbWUpOwogfQogCiBzdGF0aWMgU3RyaW5nIGFwcGVuZFNvdXJjZVRvRXJyb3JNZXNzYWdlKENh
bGxGcmFtZSogY2FsbEZyYW1lLCBFcnJvckluc3RhbmNlKiBleGNlcHRpb24sIEJ5dGVjb2RlSW5k
ZXggYnl0ZWNvZGVJbmRleCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTMxLDcgKzEzNiwy
NSBAQCB2b2lkIEVycm9ySW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgUwogLy8gQmFzZWQgb24gRXJyb3JQcm90b3R5cGUn
cyBlcnJvclByb3RvRnVuY1RvU3RyaW5nKCksIGJ1dCBpcyBtb2RpZmllZCB0bwogLy8gaGF2ZSBu
byBvYnNlcnZhYmxlIHNpZGUgZWZmZWN0cyB0byB0aGUgdXNlciAoaS5lLiBkb2VzIG5vdCBjYWxs
IHByb3hpZXMsCiAvLyBhbmQgZ2V0dGVycykuCi1TdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRp
emVkVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK1N0cmluZyBFcnJvcklu
c3RhbmNlOjpzYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBJbnRlZ3JpdHk6OmF1ZGl0U3RydWN0dXJl
SUQodm0sIHN0cnVjdHVyZUlEKCkpOworCisgICAgSlNWYWx1ZSBtZXNzYWdlVmFsdWU7CisgICAg
YXV0byBtZXNzYWdlUHJvcGVydE5hbWUgPSB2bS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlOworICAg
IFByb3BlcnR5U2xvdCBtZXNzYWdlU2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0
aG9kVHlwZTo6Vk1JbnF1aXJ5LCAmdm0pOworICAgIGlmIChKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVByb3BlcnROYW1lLCBtZXNzYWdlU2xv
dCkgJiYgbWVzc2FnZVNsb3QuaXNWYWx1ZSgpKQorICAgICAgICBtZXNzYWdlVmFsdWUgPSBtZXNz
YWdlU2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSk7CisgICAg
c2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKKworICAgIGlmICghbWVzc2FnZVZhbHVlKQorICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBtZXNz
YWdlVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KSk7Cit9CisKK1N0cmluZyBFcnJvcklu
c3RhbmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1NywyOCArMTgwLDIyIEBAIFN0cmluZyBFcnJv
ckluc3RhbmNlOjpzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogICAgIH0KICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogCi0gICAgU3RyaW5nIG5h
bWVTdHJpbmc7CiAgICAgaWYgKCFuYW1lVmFsdWUpCi0gICAgICAgIG5hbWVTdHJpbmcgPSAiRXJy
b3IiX3M7Ci0gICAgZWxzZSB7Ci0gICAgICAgIG5hbWVTdHJpbmcgPSBuYW1lVmFsdWUudG9XVEZT
dHJpbmcoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
U3RyaW5nKCkpOwotICAgIH0KKyAgICAgICAgcmV0dXJuICJFcnJvciJfczsKKyAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIG5hbWVWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpKTsK
K30KIAotICAgIEpTVmFsdWUgbWVzc2FnZVZhbHVlOwotICAgIGF1dG8gbWVzc2FnZVByb3BlcnRO
YW1lID0gdm0ucHJvcGVydHlOYW1lcy0+bWVzc2FnZTsKLSAgICBQcm9wZXJ0eVNsb3QgbWVzc2Fn
ZVNsb3QodGhpcywgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSwg
JnZtKTsKLSAgICBpZiAoSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzLCBnbG9iYWxP
YmplY3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSwgbWVzc2FnZVNsb3QpICYmIG1lc3NhZ2VTbG90Lmlz
VmFsdWUoKSkKLSAgICAgICAgbWVzc2FnZVZhbHVlID0gbWVzc2FnZVNsb3QuZ2V0VmFsdWUoZ2xv
YmFsT2JqZWN0LCBtZXNzYWdlUHJvcGVydE5hbWUpOwotICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0
aW9uKCk7CitTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEludGVncml0
eTo6YXVkaXRTdHJ1Y3R1cmVJRCh2bSwgc3RydWN0dXJlSUQoKSk7CiAKLSAgICBTdHJpbmcgbWVz
c2FnZVN0cmluZzsKLSAgICBpZiAoIW1lc3NhZ2VWYWx1ZSkKLSAgICAgICAgbWVzc2FnZVN0cmlu
ZyA9IFN0cmluZygpOwotICAgIGVsc2UgewotICAgICAgICBtZXNzYWdlU3RyaW5nID0gbWVzc2Fn
ZVZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIFN0cmluZygpKTsKLSAgICB9CisgICAgU3RyaW5nIG5hbWVTdHJpbmcgPSBz
YW5pdGl6ZWROYW1lU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgU3RyaW5nKCkpOworCisgICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBzYW5pdGl6
ZWRNZXNzYWdlU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgU3RyaW5nKCkpOwogCiAgICAgaWYgKCFuYW1lU3RyaW5nLmxlbmd0aCgpKQogICAgICAg
ICByZXR1cm4gbWVzc2FnZVN0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9ySW5zdGFuY2UuaAppbmRleCBkYTY2ZWI3NmU3YWRlOTBmZDQxYmIxNjI3MDcyNWE3ZDE0
NzBhZDM4Li45ODcxMzU3MjFiMzA1NjYyMzBkMjYxYzgzM2FkOGRlY2E1NDYxNDU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC0yMCw2ICsy
MCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRXJyb3JUeXBlLmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJSdW50aW1lVHlwZS5oIgogI2luY2x1ZGUgIlN0YWNr
RnJhbWUuaCIKQEAgLTUzLDE0ICs1NCwxNCBAQCBjbGFzcyBFcnJvckluc3RhbmNlIDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhFcnJvckluc3RhbmNlVHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBFcnJvckluc3RhbmNl
KiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRl
ciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlIHR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJy
ZW50RnJhbWUgPSB0cnVlKQorICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciA9IG51bGxwdHIsIFJ1
bnRpbWVUeXBlIHR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JUeXBlIGVycm9yVHlwZSA9IEVycm9y
VHlwZTo6RXJyb3IsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKICAgICB7Ci0gICAgICAg
IEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8RXJy
b3JJbnN0YW5jZT4odm0uaGVhcCkpIEVycm9ySW5zdGFuY2Uodm0sIHN0cnVjdHVyZSk7CisgICAg
ICAgIEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8
RXJyb3JJbnN0YW5jZT4odm0uaGVhcCkpIEVycm9ySW5zdGFuY2Uodm0sIHN0cnVjdHVyZSwgZXJy
b3JUeXBlKTsKICAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmpl
Y3QsIG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJyZW50RnJhbWUpOwogICAgICAgICBy
ZXR1cm4gaW5zdGFuY2U7CiAgICAgfQogCi0gICAgc3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0
ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBw
ZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJl
bnRGcmFtZSA9IHRydWUpOworICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyID0g
bnVsbHB0ciwgUnVudGltZVR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JUeXBlID0gRXJyb3JUeXBl
OjpFcnJvciwgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKIAogICAgIGJvb2wgaGFzU291
cmNlQXBwZW5kZXIoKSBjb25zdCB7IHJldHVybiAhIW1fc291cmNlQXBwZW5kZXI7IH0KICAgICBT
b3VyY2VBcHBlbmRlciBzb3VyY2VBcHBlbmRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlQXBw
ZW5kZXI7IH0KQEAgLTcwLDYgKzcxLDcgQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKICAgICBSdW50aW1lVHlwZSBydW50aW1lVHlwZUZvckNhdXNlKCkg
Y29uc3QgeyByZXR1cm4gbV9ydW50aW1lVHlwZUZvckNhdXNlOyB9CiAgICAgdm9pZCBjbGVhclJ1
bnRpbWVUeXBlRm9yQ2F1c2UoKSB7IG1fcnVudGltZVR5cGVGb3JDYXVzZSA9IFR5cGVOb3RoaW5n
OyB9CiAKKyAgICBFcnJvclR5cGUgZXJyb3JUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvclR5
cGU7IH0KICAgICB2b2lkIHNldFN0YWNrT3ZlcmZsb3dFcnJvcigpIHsgbV9zdGFja092ZXJmbG93
RXJyb3IgPSB0cnVlOyB9CiAgICAgYm9vbCBpc1N0YWNrT3ZlcmZsb3dFcnJvcigpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhY2tPdmVyZmxvd0Vycm9yOyB9CiAgICAgdm9pZCBzZXRPdXRPZk1lbW9yeUVy
cm9yKCkgeyBtX291dE9mTWVtb3J5RXJyb3IgPSB0cnVlOyB9CkBAIC03OSw2ICs4MSw4IEBAIGNs
YXNzIEVycm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgYm9vbCBp
c05hdGl2ZUdldHRlclR5cGVFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlR2V0dGVyVHlw
ZUVycm9yOyB9CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgc2FuaXRpemVkVG9TdHJp
bmcoSlNHbG9iYWxPYmplY3QqKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgc2FuaXRp
emVkTWVzc2FnZVN0cmluZyhKU0dsb2JhbE9iamVjdCopOworICAgIEpTX0VYUE9SVF9QUklWQVRF
IFN0cmluZyBzYW5pdGl6ZWROYW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgCiAgICAg
VmVjdG9yPFN0YWNrRnJhbWU+KiBzdGFja1RyYWNlKCkgeyByZXR1cm4gbV9zdGFja1RyYWNlLmdl
dCgpOyB9CiAKQEAgLTg4LDcgKzkyLDcgQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKICAgICB2b2lkIGZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZNJik7
CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKFZNJiwgU3RydWN0dXJl
Kik7CisgICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShWTSYsIFN0cnVjdHVyZSosIEVycm9yVHlw
ZSk7CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBjb25z
dCBTdHJpbmcmLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5v
dGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7CiAKQEAgLTEwOCwxMCArMTEyLDEx
IEBAIGNsYXNzIEVycm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAg
U3RyaW5nIG1fc291cmNlVVJMOwogICAgIFN0cmluZyBtX3N0YWNrU3RyaW5nOwogICAgIFJ1bnRp
bWVUeXBlIG1fcnVudGltZVR5cGVGb3JDYXVzZSB7IFR5cGVOb3RoaW5nIH07Ci0gICAgYm9vbCBt
X3N0YWNrT3ZlcmZsb3dFcnJvciB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX291dE9mTWVtb3J5RXJy
b3IgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9lcnJvckluZm9NYXRlcmlhbGl6ZWQgeyBmYWxzZSB9
OwotICAgIGJvb2wgbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3IgeyBmYWxzZSB9OworICAgIEVycm9y
VHlwZSBtX2Vycm9yVHlwZSB7IEVycm9yVHlwZTo6RXJyb3IgfTsKKyAgICBib29sIG1fc3RhY2tP
dmVyZmxvd0Vycm9yIDogMTsKKyAgICBib29sIG1fb3V0T2ZNZW1vcnlFcnJvciA6IDE7CisgICAg
Ym9vbCBtX2Vycm9ySW5mb01hdGVyaWFsaXplZCA6IDE7CisgICAgYm9vbCBtX25hdGl2ZUdldHRl
clR5cGVFcnJvciA6IDE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cAppbmRleCA0MDIxZmM3ZTBhZGFmN2EwYTllMGVmNmNmZDIyNTgzOGI1YmY4NzgzLi5hZjcyNjI4
MzFjYTFiYjc1YzZhZTU1NDExZGU0Y2Q4NWE4MTM3ZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBA
IC02OTQsNyArNjk0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNUaHJv
d1R5cGVFcnJvckFyZ3VtZW50c0NhbGxlZUFuZENhbGxlciwgKEpTR2wKIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihnbG9iYWxGdW5jTWFrZVR5cGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBTdHJ1Y3R1cmUqIGVycm9y
U3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVF
cnJvcik7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUo
Z2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgbnVs
bHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShF
cnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgY2FsbEZy
YW1lLT5hcmd1bWVudCgwKSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVy
cm9yLCBmYWxzZSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1By
b3RvR2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZl
RXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCA3Y2MxMWI1ZjVlMTI5NzIyMDE2Yjg2NzFmMTM3
YzZiYjE3MjEzODQwLi5iNmU3ZWRlZmQ0MmVkYzYzNWQ5MGI3ZTBlOGM3YjRmYzBjMjQzZDFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJv
ckNvbnN0cnVjdG9yLmNwcApAQCAtNTgsNyArNTgsNyBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUg
TmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxlcnJvclR5cGU+Ojpjb25zdHJ1Y3RJbXBsKEpTR2xvYmFs
TwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgQVNTRVJUKGVycm9y
U3RydWN0dXJlKTsKIAotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBt
ZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKSk7CisgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBl
cnJvclR5cGUsIGZhbHNlKSkpOwogfQogCiB0ZW1wbGF0ZTxFcnJvclR5cGUgZXJyb3JUeXBlPgpA
QCAtNjYsNyArNjYsNyBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgTmF0aXZlRXJyb3JDb25zdHJ1
Y3RvcjxlcnJvclR5cGU+OjpjYWxsSW1wbChKU0dsb2JhbE9iamVjdAogewogICAgIEpTVmFsdWUg
bWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0
cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoZXJyb3JUeXBlKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3Qs
IGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZXJy
b3JUeXBlLCBmYWxzZSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEV2YWxF
cnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJG
dW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVu
Y3Rpb24uY3BwCmluZGV4IDI2ZjNiNmE4ZjlkYjY3OGNkOTRkMDVhZTg4YjExYjg5ZTYxYzBlYmMu
LjBkZGIyYzZhNTBmNDZiYzYzNjk5NWNhNDZkN2YxOGU1YjI2ODYzZWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcApAQCAt
OTQsNyArOTQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFRocm93RXJyb3IsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2Fs
bGVkIGZyb20gSUMuIEFuZCB3ZSBkbyBub3Qgd2FudCB0byBpbmNsdWRlIHRoaXMgZnJhbWUgaW4g
RXJyb3IncyBzdGFjay4KICAgICBjb25zdGV4cHIgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSBmYWxz
ZTsKLSAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBFcnJvckluc3RhbmNl
OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yLCBudWxscHRy
LCBUeXBlTm90aGluZywgdXNlQ3VycmVudEZyYW1lKSk7CisgICAgdGhyb3dFeGNlcHRpb24oZ2xv
YmFsT2JqZWN0LCBzY29wZSwgRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0s
IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBSZWFk
b25seVByb3BlcnR5V3JpdGVFcnJvciwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6
VHlwZUVycm9yLCB1c2VDdXJyZW50RnJhbWUpKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGls
ZUVycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlD
b21waWxlRXJyb3IuY3BwCmluZGV4IDM4MzczYTc2MGQ1OWQwZWVkYjQ5NGRiODhkODUyNGZhYjlh
NTE1NGUuLjllYmQzZDQ0NmE5ZGE5YWQxOWQ3YmE0MTk5MDA2M2ZjNWE2MzI4ZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJy
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlD
b21waWxlRXJyb3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEpTV2ViQXNzZW1ibHlDb21waWxlRXJy
b3IqIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xv
CiB9CiAKIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OkpTV2ViQXNzZW1ibHlDb21waWxlRXJy
b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgRXJyb3JUeXBlOjpFcnJvcikKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxp
bmtFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5
TGlua0Vycm9yLmNwcAppbmRleCBlYWRlMDM0MTNlNGNlMzYwYmEwODlmOGM1M2QxOGNmOGQ2ZDcw
MjM1Li45YjIwMDU4ZWNmMzRhZjkxYjZiMThkMTVmNjUxNTc4NWMyMTcyZTJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vy
cm9yLmNwcApAQCAtNDEsNyArNDEsNyBAQCBKU1dlYkFzc2VtYmx5TGlua0Vycm9yKiBKU1dlYkFz
c2VtYmx5TGlua0Vycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogfQogCiBK
U1dlYkFzc2VtYmx5TGlua0Vycm9yOjpKU1dlYkFzc2VtYmx5TGlua0Vycm9yKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6RXJyb3IpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ci5jcHAKaW5kZXggYmUxZjkyODYwMzA0NWQ3Y2Y3MjkzMjRlZTRhNzdhZTgzZmNlOWNiZS4uMTkz
M2E2ZTM4ODhmYmVhY2NmMDdhYzJiMzdjNzQ1MDQ4NGZhNTFmMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciogSlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvcjo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogSlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDog
QmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5cGU6OkVycm9yKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDVjZDAwMzVhMDFmZGI3OGRkYzM1ZmM0
N2I2Yjg1ODBiZTQ1ZDM1OTcuLmMzYTBkMzk3ZjUwNGUyNThmMWQ3MGY4YjQ4MmI3OWExZDllNzI2
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC02NSw3ICs2
NSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseUNvbXBpbGVF
cnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0g
Z2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVjdHVyZSgpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
ZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJv
clR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0
cnVjdG9yKiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUq
IHRoaXNQcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDk0
NmRlZjRmMTE1MjI5YTIyNWJlOTMyYWM5ZTY0MzViNmM4YWIyYTkuLjJjNWY2YTI5MzFmMTUyMTU4
NWFhYTkzNWU1NmI0YmQyZjE5YzE2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3Iu
Y3BwCkBAIC02NSw3ICs2NSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJB
c3NlbWJseUxpbmtFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiB7CiAgICAgSlNW
YWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUqIGVy
cm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUxpbmtFcnJvclN0cnVjdHVy
ZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5n
LCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVO
b3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBXZWJBc3NlbWJseUxpbmtF
cnJvckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUo
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90b3R5
cGUqIHRoaXNQcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3Bw
CmluZGV4IDNkZmQ5MTU2N2I2MGE1OGRkOWFhNjg0MmZmNjc5MDIxZjVjYjkyNTIuLmE4NTY2OWM1
MThiMWU5YWE2OGM5NWFkMDU2NmViZmQ2ZmMzZGZhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVy
cm9yQ29uc3RydWN0b3IuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjYWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAg
ICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseVJ1
bnRpbWVFcnJvclN0cnVjdHVyZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJ
bnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51
bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
RXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3Nh
Z2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQog
CiBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUqIHRoaXNQcm90b3R5cGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQppbmRleCA0ZjM4ZmIwNjg0YmM1OWVlNmY3Yzk4OTgyOWVjODgyY2U4MDU4NmM4Li4zM2Fm
ZWUzMDJlZGMxZTFmM2VjOGQ2Y2Q5MWRlYTUzN2RlMTlmYmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
QEAgLTMwLDYgKzMwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
CiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oCiAgICAgTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHlTb3VyY2UuaAorICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0Q3JlZGVu
dGlhbHMuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmgKICAgICBNb2R1bGVzL2Zl
dGNoL0ZldGNoSWRlbnRpZmllci5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5oCkBA
IC0yODcsNiArMjg4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
ICAgIGJpbmRpbmdzL2pzL1dlYkNvcmVKSVRPcGVyYXRpb25zLmgKICAgICBiaW5kaW5ncy9qcy9X
ZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaAogICAgIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
LmgKKyAgICBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRGZXRjaGVyLmgKIAogICAgIGJyaWRnZS9C
cmlkZ2UuaAogICAgIGJyaWRnZS9JZGVudGlmaWVyUmVwLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOGMw
M2I5MzI2NDk4NWYwYmIxZWU5ZjZkMjAyM2UzNDgzMDkyZjQ2Mi4uNjIzYTY3OGFhNWNiNDMyYWUw
ZDM5NDY3YTRiZWZkMzQ1Njg4YTIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYzOSw2ICs2MzksNyBA
QCBiaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwCiBiaW5kaW5ncy9qcy9XZWJDb3JlSklU
T3BlcmF0aW9ucy5jcHAKIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCiBiaW5k
aW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCitiaW5kaW5ncy9qcy9Xb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKIGJp
bmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmNwcAogYnJpZGdlL0lkZW50aWZpZXJSZXAuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMmUzYmEyZDhiYmFhMTc2MjQ0ZGE2MjNjNjkyOTZlNWZlYmYwNzMwYi4uMzhjNmVhMGI4Nzlk
ZWY3MDExMTJlNDE4OWE0ZTQ4MGQxZmJjOTQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA3MSwxNSArNTA3MSwxOCBAQAog
CQlFMzA1OTI2NDFFMjdBM0FEMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTkyNjIxRTI3QTM4
QzAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzA1OTI2ODFFMjdBM0QxMDBENTdDOTggLyog
Q2FjaGVkU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTMwNTkyNjYxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNo
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
MzA3REVEMDFEODFFNEM3MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVDNzFEODFF
NDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTMwN0RFRDExRDgxRTRDQjAwMTQx
Q0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8q
IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDdERUQ1MUQ4MUU0RjIwMDE0MUNBRiAvKiBM
b2FkYWJsZU1vZHVsZVNjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTMwN0RFRDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2Ny
aXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTMxNTBFQTcxREE3MjE5MzAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMTUwRUE1MURBNzIxOEQwMDE5NDAx
MiAvKiBET01KSVRIZWxwZXJzLmggKi87IH07CiAJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAzMiAv
KiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzOEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1bGVGZXRjaFBh
cmFtZXRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFMzIzQ0ZGQTFFNUFGNkFGMDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMyM0NGRjkxRTVB
RjZBNTAwRjBCNEEwIC8qIEpTRE9NQ29udmVydFByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzQzMkRFNDI1RDM3N0UzMDA1OEU2MTIg
LyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyLmggKi87IH07CisJCUUzNDdFNUZBMjVENEYwMDAwMEYxN0E1QyAvKiBX
b3JrZXJTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMzQ3RTVGODI1RDRGMDAwMDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUz
NTE4OEI0MjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTE4OEIzMjVEMzg3
Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU2NUI3QjFEQzJENkM5MDAyMTdE
QkQgLyogSlNFdmVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZlbnRDdXN0b20uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU4MDJC
NjFEQzg0MzVEMDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODAyQjUxREM4NDM1ODAwQTk3NzND
IC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFMzU4MkMyODI1MjdGNjY5MDBEMUI3OTAgLyogV2ViQ29yZUpJ
VE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzNTgyQzI2MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNUI5MDdG
MjNGNjBBNTAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1QjkwN0MyM0Y2MDY3NzAwMDAxMUZG
IC8qIExvY2FsaXplZERldmljZU1vZGVsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM2NDMyMUMyNUQzN0E2NzAwRjkwRTJBIC8qIE1vZHVsZVNj
cmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNzdGRTREMURB
REUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURDMDQ1MDA3MThGM0MgLyogTm9kZUNv
bnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzN0M4NjRGMUVCNjNFMkQwMDg3
QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIERldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMTYyMDIsNyArMTYyMDUsNiBAQAogCQlFMzA1OTI2NjFFMjdBM0M2MDBENTdD
OTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDYWNoZWRTY3JpcHRGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzMDdERUM2MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFQzcxRDgxRTQ0
ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTMwN0RFRDIxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRhYmxlTW9kdWxlU2Ny
aXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFRDMxRDgxRTRFRDAw
MTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IExvYWRhYmxlTW9kdWxlU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzMTUwRUE1MURBNzIxOEQwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVEhlbHBlcnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjE1LDEyICsxNjIxNywxNyBAQAogCQlFMzI5Mjc2MzIyNTQz
RjU5MDAzMDhBOUEgLyogVHlwZWRPTUNTU1VuaXRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTMyOTI3NjYyMjU0M0ZERTAwMzA4QTlBIC8qIERPTVJlY3RSZWFkT25seS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBET01SZWN0UmVhZE9ubHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzM0ODI1RTFEQzkzQUEwMDA5Qzk1NDQgLyogRE9NSklUQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBET01KSVRBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTUpJVEFic3Ry
YWN0SGVhcFJlcG9zaXRvcnkuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
KwkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJNb2R1bGVTY3JpcHRMb2Fk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM0MzJERTMyNUQzNzdFMzAwNThF
NjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzQ3RTVGODI1RDRGMDAwMDBGMTdBNUMgLyogV29ya2VyU2Ny
aXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJTY3Jp
cHRGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNEVFNDlGMURDMkQ1
NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTRXZlbnRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM1
MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODAyQjUxREM4NDM1ODAwQTk3NzNDIC8q
IERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NSklUSURMVHlwZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4
MkMyNDI1MjdGNjY4MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUpJVE9wZXJhdGlvbnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4MkMyNjI1MjdGNjY4MDBEMUI3OTAgLyog
V2ViQ29yZUpJVE9wZXJhdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29yZUpJVE9wZXJhdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1
QjkwN0MyM0Y2MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsaXplZERldmljZU1vZGVsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUI5MDdFMjNGNjA2NzcwMDAwMTFGRiAvKiBMb2NhbGl6
ZWREZXZpY2VNb2RlbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IExvY2FsaXplZERldmljZU1vZGVsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVNjcmlwdExvYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzdDODY0RjFFQjYzRTJEMDA4N0M2Q0EgLyogSlNET01Qcm9t
aXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NUHJvbWlzZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyog
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzAyMSw3ICsyNzAyOCw2IEBACiAJCQkJMkRGQTQ4OEUx
REI1NDFDMjAwMzYyQjk5IC8qIEJ1ZmZlclNvdXJjZS5oICovLAogCQkJCUUzMDdERUM2MUQ4MUU0
NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwICovLAogCQkJCUUzMDdE
RUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLywKLQkJ
CQlFMzA3REVDODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xp
ZW50LmggKi8sCiAJCQkJRTMwNTkyNjUxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZl
dGNoZXIuY3BwICovLAogCQkJCUUzMDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3Jp
cHRGZXRjaGVyLmggKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hlZFNj
cmlwdFNvdXJjZVByb3ZpZGVyLmggKi8sCkBAIC0yNzA5NSw2ICsyNzEwMSw4IEBACiAJCQkJNEJE
RUEzMkQyMTgwMzQwNTAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAgKi8s
CiAJCQkJNEJERUEzMkIyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFz
ZS5oICovLAogCQkJCTcwOUEwMUZEMUUzRDBCQ0MwMDZCMEQ0QyAvKiBNb2R1bGVGZXRjaEZhaWx1
cmVLaW5kLmggKi8sCisJCQkJRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlw
dExvYWRlci5oICovLAorCQkJCUUzNTE4OEIzMjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQuaCAqLywKIAkJCQk0MUI0NTlFRDFGNTVFQkM3MDAwMEY2RkQgLyogUmVh
ZGFibGVTdHJlYW0uY3BwICovLAogCQkJCTQxQjQ1OURBMUY0Q0FEQjkwMDAwRjZGRCAvKiBSZWFk
YWJsZVN0cmVhbS5oICovLAogCQkJCTQxOEMzOTVFMUM4RjBBQUIwMDUxQzhBMyAvKiBSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCAqLywKQEAgLTI3MTI2LDYgKzI3MTM0LDkgQEAK
IAkJCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyLmggKi8sCiAJCQkJNDYzNTIxQUMyMDgxMDkwRTAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmNw
cCAqLywKIAkJCQk0NjM1MjFBQTIwODEwOTBCMDBDMjg5MjIgLyogV2luZG93UHJveHkuaCAqLywK
KwkJCQlFMzQzMkRFMzI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
LmNwcCAqLywKKwkJCQlFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyLmggKi8sCisJCQkJRTM0N0U1RjgyNUQ0RjAwMDAwRjE3QTVDIC8qIFdvcmtlclNj
cmlwdEZldGNoZXIuaCAqLywKIAkJCQk0MTQxOEEwMzI1NjQzRTEyMDAzNjM0MTcgLyogV3JpdGFi
bGVTdHJlYW0uY3BwICovLAogCQkJCTQxNDE4QTA0MjU2NDNFMTMwMDM2MzQxNyAvKiBXcml0YWJs
ZVN0cmVhbS5oICovLAogCQkJKTsKQEAgLTMxMzk5LDcgKzMxNDEwLDYgQEAKIAkJCQlCQ0IxNkMx
QzA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
OUZCRDVGMTVEMkY0NjQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTMwN0RFRDAxRDgxRTRDNzAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTMwN0RFRDExRDgxRTRDQjAwMTQxQ0FGIC8qIENh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwMTg0
NjkwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUQw
RURBNzc1MTQzRTMwM0MwMDI4RTM4MyAvKiBDYWNoZWRSYXdSZXNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTFCNTMzNDkxNzE3REVFMzAwRjIwNUY5IC8qIENhY2hlZFJhd1Jlc291cmNlQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMzODc0LDYgKzMzODg0LDggQEAKIAkJCQlDNkQ3NEFE
NTA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3MDlBMDFGRTFFM0QwQkREMDA2QjBENEMgLyogTW9kdWxlRmV0Y2hGYWlsdXJl
S2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMyMDFDMUExRjhFODIxMzAwNzZBMDMyIC8qIE1v
ZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM2NDMyMUMyNUQzN0E2
NzAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM1
MTg4QjQyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjU1QjNEQzYxMjUxRjEyRDAwM0VGMjY5IC8qIE1vbnRoSW5wdXRUeXBl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzk2MjhDMTIzOTU3NDMxMDA2NThFQ0QgLyogTW90aW9u
TWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNDYwQTQ0RUZDNzAwRjk5
MkUwIC8qIE1vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzU1MjYsNiArMzU1MzgsNyBA
QAogCQkJCTE4RjgzMUI4MEZENDhDNzgwMEQ4QzU2QiAvKiBXb3JrZXJMb2FkZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NEQwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlckxvY2F0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MDBGNTQ2QTgyMDBCMEYxQkEgLyogV29y
a2VyTWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNDMyREU0MjVEMzc3RTMw
MDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxMjcxQTBCMEVFRUM3N0EwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1Q0IwNTI1MUZCNTFGM0EwMDA4OUI5NyAvKiBXb3JrZXJOZXR3b3JrQWdlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUxMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJP
YmplY3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTUzNSw2ICszNTU0OCw3IEBACiAJCQkJ
NDE2RTI5QTYxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9vcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQ0YxRkFBNDRERTAwMzdEMUU2IC8qIFdvcmtlclJ1
bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM0N0U1RkEyNUQ0RjAwMDAwRjE3QTVD
IC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDZCMzQ5MEY2
MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJFQTc2ODA0MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTJFNDM0NjU1MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJUaHJl
YWQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKaW5kZXggMzUyZGNjNGFjZjc1MTc2ZDk4
YWQzNDEwYmUxNTE2MDgwMTA4ODUyNC4uMjc3ZjYyYTdjMTMzZmUxNTZjNmNjZTk4NTUzNTUwZWRi
MTM2ZDAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCkBAIC00MCwxNiArNDAsMTMgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1SZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXI6OmNyZWF0ZShDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVu
dCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRG
ZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCitSZWY8
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0
ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9t
aXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0
Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwg
V1RGTW92ZShwYXJhbWV0ZXJzKSkpOwogfQogCi1DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OkNh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlcihDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNs
aWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3Jp
cHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCi0g
ICAgOiBtX2NsaWVudCgmY2xpZW50KQotICAgICwgbV9wcm9taXNlKCZwcm9taXNlKQotICAgICwg
bV9zY3JpcHRGZXRjaGVyKHNjcmlwdEZldGNoZXIpCi0gICAgLCBtX3BhcmFtZXRlcnMoV1RGTW92
ZShwYXJhbWV0ZXJzKSkKK0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Q2FjaGVkTW9kdWxlU2Ny
aXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21p
c2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxN
b2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICA6IE1vZHVsZVNjcmlwdExv
YWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1vdmUocGFyYW1ldGVycykp
CiB7CiB9CiAKQEAgLTYxLDE0ICs1OCwxNSBAQCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6On5D
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoKQogICAgIH0KIH0KIAotYm9vbCBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXI6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNvdXJjZVVS
TCkKK2Jvb2wgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKERvY3VtZW50JiBkb2N1bWVu
dCwgVVJMJiYgc291cmNlVVJMKQogeworICAgIEFTU0VSVChtX3Byb21pc2UpOwogICAgIEFTU0VS
VCghbV9jYWNoZWRTY3JpcHQpOwogICAgIFN0cmluZyBpbnRlZ3JpdHkgPSBtX3BhcmFtZXRlcnMg
PyBtX3BhcmFtZXRlcnMtPmludGVncml0eSgpIDogU3RyaW5nIHsgfTsKLSAgICBtX2NhY2hlZFNj
cmlwdCA9IG1fc2NyaXB0RmV0Y2hlci0+cmVxdWVzdE1vZHVsZVNjcmlwdChkb2N1bWVudCwgc291
cmNlVVJMLCBXVEZNb3ZlKGludGVncml0eSkpOworICAgIG1fY2FjaGVkU2NyaXB0ID0gc2NyaXB0
RmV0Y2hlcigpLnJlcXVlc3RNb2R1bGVTY3JpcHQoZG9jdW1lbnQsIHNvdXJjZVVSTCwgV1RGTW92
ZShpbnRlZ3JpdHkpKTsKICAgICBpZiAoIW1fY2FjaGVkU2NyaXB0KQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgbV9zb3VyY2VVUkwgPSBzb3VyY2VVUkw7CisgICAgbV9zb3VyY2VVUkwgPSBX
VEZNb3ZlKHNvdXJjZVVSTCk7CiAKICAgICAvLyBJZiB0aGUgY29udGVudCBpcyBhbHJlYWR5IGNh
Y2hlZCwgdGhpcyBpbW1lZGlhdGVseSBjYWxscyBub3RpZnlGaW5pc2hlZC4KICAgICBtX2NhY2hl
ZFNjcmlwdC0+YWRkQ2xpZW50KCp0aGlzKTsKQEAgLTgzLDcgKzgxLDcgQEAgdm9pZCBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJiByZXNvdXJj
ZSwgY29uc3QgTmUKIAogICAgIFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOwogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPm5vdGlm
eUZpbmlzaGVkKCp0aGlzLCBXVEZNb3ZlKG1fcHJvbWlzZSkpOworICAgICAgICBtX2NsaWVudC0+
bm90aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9zb3VyY2VVUkwpLCBtX3Byb21pc2UucmVs
ZWFzZU5vbk51bGwoKSk7CiAKICAgICAvLyBSZW1vdmUgdGhlIGNsaWVudCBhZnRlciBjYWxsaW5n
IG5vdGlmeUZpbmlzaGVkIHRvIGtlZXAgdGhlIGRhdGEgYnVmZmVyIGluCiAgICAgLy8gQ2FjaGVk
UmVzb3VyY2UgYWxpdmUgd2hpbGUgbm90aWZ5RmluaXNoZWQgcHJvY2Vzc2VzIHRoZSByZXNvdXJj
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2Ny
aXB0TG9hZGVyLmgKaW5kZXggNDNhYmQ4NzViMjQzZmFmNWZjZDRkOThlYzNjNWQyNGU3OTBiNTcy
ZS4uYTQ4NzU1ZjkzZDA1ZWYzNTNkMmIzZTIyOGQ4MjE5ZmU4OTFlNjc0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmgK
QEAgLTI3LDYgKzI3LDggQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHRG
ZXRjaGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCiAjaW5jbHVkZSA8d3Rm
L1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgpAQCAtMzQsNDIgKzM2LDI5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50OwogY2xhc3MgQ2FjaGVkU2NyaXB0OwotY2xhc3MgQ2FjaGVkU2NyaXB0RmV0Y2hlcjsK
IGNsYXNzIERlZmVycmVkUHJvbWlzZTsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgSlNET01HbG9i
YWxPYmplY3Q7CiBjbGFzcyBNb2R1bGVGZXRjaFBhcmFtZXRlcnM7CiAKLWNsYXNzIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcj4sIHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgeworY2xhc3MgQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJp
dmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXI+IGNyZWF0ZShDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVs
ZUZldGNoUGFyYW1ldGVycz4mJik7CisgICAgc3RhdGljIFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXI+IGNyZWF0ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2Um
LCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7
CiAKICAgICB2aXJ0dWFsIH5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoKTsKIAotICAgIGJvb2wg
bG9hZChEb2N1bWVudCYsIGNvbnN0IFVSTCYgc291cmNlVVJMKTsKKyAgICBib29sIGxvYWQoRG9j
dW1lbnQmLCBVUkwmJiBzb3VyY2VVUkwpOwogCi0gICAgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2Ny
aXB0RmV0Y2hlcigpIHsgcmV0dXJuIG1fc2NyaXB0RmV0Y2hlci5nZXQoKTsgfQogICAgIENhY2hl
ZFNjcmlwdCogY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0KCk7IH0K
LSAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSB7IHJldHVybiBtX3BhcmFt
ZXRlcnMuZ2V0KCk7IH0KLSAgICBjb25zdCBVUkwmIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJu
IG1fc291cmNlVVJMOyB9Ci0KLSAgICB2b2lkIGNsZWFyQ2xpZW50KCkKLSAgICB7Ci0gICAgICAg
IEFTU0VSVChtX2NsaWVudCk7Ci0gICAgICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKLSAgICB9Cisg
ICAgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlcigpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PENhY2hlZFNjcmlwdEZldGNoZXImPihNb2R1bGVTY3JpcHRMb2FkZXI6OnNjcmlwdEZldGNo
ZXIoKSk7IH0KIAogcHJpdmF0ZToKLSAgICBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2FjaGVkU2NyaXB0
RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOworICAgIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21p
c2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4m
Jik7CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJiwgY29uc3QgTmV0
d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CiAKLSAgICBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwotICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+
IG1fcHJvbWlzZTsKLSAgICBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hlcj4gbV9zY3JpcHRGZXRjaGVy
OwotICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+IG1fcGFyYW1ldGVyczsKICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0OwogICAgIFVS
TCBtX3NvdXJjZVVSTDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4Njg4YWQ5MGRhZTNlY2U5NDllYTA5YjFlZmVlNWRhMjZmOTRjNzg2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCisrKyAvZGV2
L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSwg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI7Ci1jbGFzcyBEZWZlcnJlZFByb21pc2U7Ci0KLWNs
YXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KCkgPSBkZWZhdWx0OwotCi0gICAgdmly
dHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciYsIFJlZlB0
cjxEZWZlcnJlZFByb21pc2U+KSA9IDA7Ci19OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwCmluZGV4IGE0MzM3NTg2NWJiZjFl
YzU5NzNiZjE3MmM5MWEzODUzMjM0ZTM3NGQuLmRmM2M2YjZlYmI4NGFmNzJlZDI5NTVmOTkxMWQw
N2E4N2FiMzUzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hl
ZFNjcmlwdEZldGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hl
ZFNjcmlwdEZldGNoZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmln
aW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsNiArNDgsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+IENhY2hlZFNjcmlwdEZldGNoZXI6OnJlcXVlc3RNb2R1bGVTY3JpcHQoRG9j
dQogCiBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFNjcmlwdEZldGNo
ZXI6OnJlcXVlc3RTY3JpcHRXaXRoQ2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwm
IHNvdXJjZVVSTCwgY29uc3QgU3RyaW5nJiBjcm9zc09yaWdpbk1vZGUsIFN0cmluZyYmIGludGVn
cml0eSwgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+IHJlc291cmNlTG9hZFByaW9yaXR5
KSBjb25zdAogeworICAgIC8vIFdpdGhvdXQgc2NyaXB0aW5nLCB0aGVyZSBpcyBubyB3YXkgdG8g
c3RhcnQgV29ya2Vycy4KICAgICBpZiAoIWRvY3VtZW50LnNldHRpbmdzKCkuaXNTY3JpcHRFbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCmluZGV4IGRmN2YzZDc0
NmQ1ZTMyYWJhYjUxNDc2YzlkZGFjYTYzYTQzNTEzNmMuLjdjZTU0NjliOWMwY2FmMTcxNWM1M2Y4
YzA4ZGY1ZjAzODNlYTA3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCkBAIC01Miw2ICs1MiwyMyBAQCB2b2lkIHJl
cG9ydEV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBleGNlcHRpb25WYWx1ZQogICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0
LCBleGNlcHRpb24sIGNhY2hlZFNjcmlwdCk7CiB9CiAKK1N0cmluZyByZXRyaWV2ZUVycm9yTWVz
c2FnZVdpdGhvdXROYW1lKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBWTSYg
dm0sIEpTVmFsdWUgZXhjZXB0aW9uLCBDYXRjaFNjb3BlJiBjYXRjaFNjb3BlKQoreworICAgIC8v
IEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTUwODc+IFdlYiBJbnNwZWN0b3I6IFdlYkNv
cmU6OnJlcG9ydEV4Y2VwdGlvbiBzaG91bGQgbm90IGV2YWx1YXRlIEphdmFTY3JpcHQgaGFuZGxp
bmcgZXhjZXB0aW9ucworICAgIC8vIElmIHRoaXMgaXMgYSBjdXN0b20gZXhjZXB0aW9uIG9iamVj
dCwgY2FsbCB0b1N0cmluZyBvbiBpdCB0byB0cnkgYW5kIGdldCBhIG5pY2Ugc3RyaW5nIHJlcHJl
c2VudGF0aW9uIGZvciB0aGUgZXhjZXB0aW9uLgorICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Cisg
ICAgaWYgKGF1dG8qIGVycm9yID0ganNEeW5hbWljQ2FzdDxFcnJvckluc3RhbmNlKj4odm0sIGV4
Y2VwdGlvbikpCisgICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yLT5zYW5pdGl6ZWRNZXNzYWdl
U3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBlbHNlCisgICAgICAgIGVycm9yTWVz
c2FnZSA9IGV4Y2VwdGlvbi50b1dURlN0cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisKKyAg
ICAvLyBXZSBuZWVkIHRvIGNsZWFyIGFueSBuZXcgZXhjZXB0aW9uIHRoYXQgbWF5IGJlIHRocm93
biBpbiB0aGUgdG9TdHJpbmcoKSBjYWxsIGFib3ZlLgorICAgIC8vIHJlcG9ydEV4Y2VwdGlvbigp
IGlzIG5vdCBzdXBwb3NlZCB0byBiZSBtYWtpbmcgbmV3IGV4Y2VwdGlvbnMuCisgICAgY2F0Y2hT
Y29wZS5jbGVhckV4Y2VwdGlvbigpOworICAgIHZtLmNsZWFyTGFzdEV4Y2VwdGlvbigpOworICAg
IHJldHVybiBlcnJvck1lc3NhZ2U7Cit9CisKIFN0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZShK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgVk0mIHZtLCBKU1ZhbHVlIGV4Y2Vw
dGlvbiwgQ2F0Y2hTY29wZSYgY2F0Y2hTY29wZSkKIHsKICAgICAvLyBGSVhNRTogPGh0dHA6Ly93
ZWJraXQub3JnL2IvMTE1MDg3PiBXZWIgSW5zcGVjdG9yOiBXZWJDb3JlOjpyZXBvcnRFeGNlcHRp
b24gc2hvdWxkIG5vdCBldmFsdWF0ZSBKYXZhU2NyaXB0IGhhbmRsaW5nIGV4Y2VwdGlvbnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcu
aAppbmRleCAyZDNlMzExZjYxZWViNjg1YWFjMzU1NDZhYWUxNjBkYTk3OTBlZjVmLi5kMWY2ZGU5
Mzc0NzBjZTZkZjJjY2I2NDcyMjg0NzY2ZmQwMTk1ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCkBAIC02NSw2ICs2NSw3
IEBAIFdFQkNPUkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUgcmVqZWN0UHJvbWlzZVdpdGhH
ZXR0ZXJUeXBlRXJyb3IoSlNDOjpKU0dsb2JhCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRK
U1ZhbHVlIHJlamVjdFByb21pc2VXaXRoVGhpc1R5cGVFcnJvcihEZWZlcnJlZFByb21pc2UmLCBj
b25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBvcGVyYXRpb25OYW1lKTsKIFdF
QkNPUkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUgcmVqZWN0UHJvbWlzZVdpdGhUaGlzVHlw
ZUVycm9yKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBj
b25zdCBjaGFyKiBvcGVyYXRpb25OYW1lKTsKIAorU3RyaW5nIHJldHJpZXZlRXJyb3JNZXNzYWdl
V2l0aG91dE5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUg
ZXhjZXB0aW9uLCBKU0M6OkNhdGNoU2NvcGUmKTsKIFN0cmluZyByZXRyaWV2ZUVycm9yTWVzc2Fn
ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSBleGNlcHRpb24s
IEpTQzo6Q2F0Y2hTY29wZSYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBvcnRFeGNlcHRpb24o
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNWYWx1ZSBleGNlcHRpb24sIENhY2hlZFNjcmlw
dCogPSBudWxscHRyKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4Y2VwdGlvbiosIENhY2hlZFNjcmlwdCogPSBudWxscHRy
LCBFeGNlcHRpb25EZXRhaWxzKiA9IG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4IDU4YjdkZjc2MGMwMGEzMWZmMDhl
ZDIyZGVlMjJhOGM3NDQzYWU4ZGQuLjlkNjk3ZDQ1OWI1NjM0NWNjODM5NjIwMjY2NzZlMDBhOThi
ZjQ5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJKU1dvcmtsZXRHbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgIlJlamVjdGVkUHJvbWlzZVRyYWNrZXIuaCIKICNpbmNsdWRlICJSdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCiAj
aW5jbHVkZSAiU3RydWN0dXJlZENsb25lLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0
YS5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC00MjIsNiArNDIzLDc5IEBA
IEpTQzo6SlNQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVjdDo6aW5zdGFudGlhdGVTdHJlYW1pbmco
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAjZW5kaWYKIAorc3RhdGljIFNjcmlwdE1vZHVs
ZUxvYWRlciogc2NyaXB0TW9kdWxlTG9hZGVyKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGlmIChnbG9iYWxP
YmplY3QtPmluaGVyaXRzPEpTRE9NV2luZG93QmFzZT4odm0pKSB7CisgICAgICAgIGlmIChhdXRv
IGRvY3VtZW50ID0ganNDYXN0PGNvbnN0IEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCkt
PndyYXBwZWQoKS5kb2N1bWVudCgpKQorICAgICAgICAgICAgcmV0dXJuICZkb2N1bWVudC0+bW9k
dWxlTG9hZGVyKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBpZiAoZ2xv
YmFsT2JqZWN0LT5pbmhlcml0czxKU1JlbW90ZURPTVdpbmRvd0Jhc2U+KHZtKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNXb3JrZXJH
bG9iYWxTY29wZUJhc2U+KHZtKSkKKyAgICAgICAgcmV0dXJuICZqc0Nhc3Q8Y29uc3QgSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVy
KCk7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29ya2xldEdsb2JhbFNj
b3BlQmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBwZWQoKS5tb2R1bGVMb2FkZXIoKTsKKyNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxK
U0lEQlNlcmlhbGl6YXRpb25HbG9iYWxPYmplY3Q+KHZtKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisjZW5kaWYKKyAgICBkYXRhTG9nKCJVbmV4cGVjdGVkIGdsb2JhbCBvYmplY3Q6ICIsIEpT
VmFsdWUoZ2xvYmFsT2JqZWN0KSwgIlxuIik7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNDOjpJZGVudGlmaWVyIEpTRE9NR2xv
YmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUg
bW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUg
c2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpT
Qzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0
byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICByZXR1
cm4gbG9hZGVyLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1l
LCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0dXJuIHsgfTsKK30K
KworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRl
ckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxv
YWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUg
cGFyYW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7CisgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0g
c2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIGxvYWRlci0+ZmV0Y2goZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVs
ZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hlcikpOworICAgIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOworICAgIHNjb3BlLnJlbGVhc2Uo
KTsKKyAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKKyAg
ICByZXR1cm4gcHJvbWlzZTsKK30KKworSlNDOjpKU1ZhbHVlIEpTRE9NR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwg
SlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7
CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlw
dE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxvYWRlci0+ZXZhbHVh
dGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkLCBz
Y3JpcHRGZXRjaGVyKTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworfQorCitKU0M6
OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVySW1wb3J0
TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxv
YWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFs
dWUgcGFyYW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKK3sK
KyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0g
SlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChh
dXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbG9hZGVyLT5pbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0
LCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBhcmFtZXRlcnMsIHNvdXJjZU9yaWdpbikpOwor
ICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkp
OworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0
LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gcHJvbWlzZTsKK30KKworSlNDOjpKU09iamVj
dCogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0
aWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTTW9kdWxlUmVj
b3JkKiBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIEpT
RE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVM
b2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmNyZWF0ZUltcG9ydE1l
dGFQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVs
ZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0
KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3Ry
dWN0dXJlKCkpOworfQorCiBKU0RPTUdsb2JhbE9iamVjdCYgY2FsbGVyR2xvYmFsT2JqZWN0KEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUmIGNhbGxGcmFtZSkK
IHsKICAgICBjbGFzcyBHZXRDYWxsZXJHbG9iYWxPYmplY3RGdW5jdG9yIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCmluZGV4IGI4NDA3MmRkZDc0
NmIzZDZjNTEwNjBkOTA1MDFiNWNlYTFiNDk5YjEuLmY0OWE0Y2QyNTcxOTcxMTg5MTdhN2Q3YTRi
NmMwZTExZmM3NmJhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaApAQCAtMTA1LDYgKzEwNSwxMiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBK
U0RPTUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0M6OkpTR2xvYmFsT2JqZWN0IHsKICAgICBzdGF0
aWMgSlNDOjpKU1Byb21pc2UqIGluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNPYmplY3QqKTsKICNlbmRpZgogCisgICAgc3RhdGlj
IEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRl
ckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpK
U1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01v
ZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwor
ICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1
bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTU3Ry
aW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYpOworICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwg
SlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7CisKICAgICBKU0RPTVN0cnVjdHVy
ZU1hcCBtX3N0cnVjdHVyZXM7CiAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCBtX2NvbnN0cnVjdG9y
czsKICAgICBET01HdWFyZGVkT2JqZWN0U2V0IG1fZ3VhcmRlZE9iamVjdHM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA1NjNlZmEwNTcx
YjVkNDYyZDllNjQ1MDg5ZjBiZDhmNzdkMTlhNzY4Li4zMTJhMDExNThlOGMyODA4M2MwN2U0MmRi
ODcyNDVmZTRlNWM1N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5jcHAKQEAgLTMzOSw1NCArMzM5LDQgQEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6
OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhET01XaW5kb3cqIHdpbmRvdykK
ICAgICB9CiB9CiAKLUpTQzo6SWRlbnRpZmllciBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRl
clJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxl
TG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFs
dWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAg
IEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFz
ZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50
LT5tb2R1bGVMb2FkZXIoKS5yZXNvbHZlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1
bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIHsg
fTsKLX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVM
b2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1
bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1Zh
bHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8
SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50
PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5mZXRjaChn
bG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBwYXJhbWV0ZXJzLCBzY3JpcHRG
ZXRjaGVyKSk7Ci0gICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSA9IEpTQzo6SlNJ
bnRlcm5hbFByb21pc2U6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5pbnRlcm5hbFByb21pc2VT
dHJ1Y3R1cmUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgpOwotICAgIHByb21pc2UtPnJlamVjdChn
bG9iYWxPYmplY3QsIGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBwcm9taXNlOwotfQotCi1K
U0M6OkpTVmFsdWUgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxv
YWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwg
SlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlz
T2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAg
ICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5k
b2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmV2YWx1
YXRlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwg
c2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKLX0KLQotSlND
OjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJJbXBvcnRN
b2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNTdHJpbmcqIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1
ZSBwYXJhbWV0ZXJzLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luKQotewot
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlND
Ojpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRy
PERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQot
ICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIo
KS5pbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBh
cmFtZXRlcnMsIHNvdXJjZU9yaWdpbikpOwotICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHBy
b21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+
aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBw
cm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4g
cHJvbWlzZTsKLX0KLQotSlNDOjpKU09iamVjdCogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2Fk
ZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1v
ZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUg
c2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6
OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8
RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0g
ICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuY3JlYXRlSW1wb3J0TWV0YVBy
b3BlcnRpZXMoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgbW9kdWxlUmVj
b3JkLCBzY3JpcHRGZXRjaGVyKTsKLSAgICByZXR1cm4gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xv
YmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1
cmUoKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggM2VmOTgwZGQyN2Y2YjIxMzk4NzAwOGJh
NDc2YzhjYTY5ZjJmMGI2NC4uNTE0MmIxYzdkYzI1YzIyZmU5Nzg5NWU3NWFlMjJlZjRkMWU1ODlk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAg
LTk5LDEyICs5OSw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2luZG93QmFzZSA6IHB1
YmxpYyBKU0RPTUdsb2JhbE9iamVjdCB7CiBwcml2YXRlOgogICAgIHVzaW5nIFJlc3BvbnNlQ2Fs
bGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgY2hhciosIHNpemVfdCk+OwogCi0gICAg
c3RhdGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVs
ZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFs
dWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJJbXBv
cnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTU3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYpOwotICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVy
dGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNW
YWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7Ci0KICAgICBSZWZQdHI8
RE9NV2luZG93PiBtX3dyYXBwZWQ7CiAgICAgUmVmUHRyPEV2ZW50PiBtX2N1cnJlbnRFdmVudDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGUuaAppbmRleCAyN2Y3NjUw
ZGE2YThlZTQ0ZjM1Zjk0N2Q0OThlYTM4MWM2Yzk0MzFmLi5kNjNlNWFjYzdlMTRjODgzMmMwNDk2
ZmU1ZTNkNjRlN2NmYmViZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0V4ZWNTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0
YXRlLmgKQEAgLTEwMyw2ICsxMDMsMTIgQEAgY2xhc3MgSlNFeGVjU3RhdGUgewogICAgICAgICBy
ZXR1cm4gKkpTQzo6bG9hZE1vZHVsZSgmbGV4aWNhbEdsb2JhbE9iamVjdCwgc291cmNlQ29kZSwg
c2NyaXB0RmV0Y2hlcik7CiAgICAgfQogCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21p
c2UmIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBwYXJhbWV0
ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKKyAgICB7CisgICAgICAgIEpTRXhlY1N0
YXRlIGN1cnJlbnRTdGF0ZSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiAq
SlNDOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUoJmxleGljYWxHbG9iYWxPYmplY3QsIG1vZHVsZU5h
bWUsIHBhcmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpOworICAgIH0KKwogICAgIHN0YXRpYyBKU0M6
OkpTVmFsdWUgbGlua0FuZEV2YWx1YXRlTW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbW9kdWxlS2V5LCBKU0M6OkpT
VmFsdWUgc2NyaXB0RmV0Y2hlciwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4
Y2VwdGlvbikKICAgICB7CiAgICAgICAgIEpTQzo6Vk0mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDJiMjZjOWY0ZWEyMTYyMDdkZTRjODY4
MjBiOGE4MWI2MDM1YjdlYi4uMmQ3OTNmZmYyMTg1M2E4YTFhNzg4MDY2NzI1MGY1N2U3NTJmZTNm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmNwcApAQCAtNTksMTEgKzU5LDExIEBAIGNvbnN0IEdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRh
YmxlCiAgICAgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsCiAgICAgJnF1ZXVlTWljcm90YXNrVG9F
dmVudExvb3AsCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsCi0gICAg
bnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0ciwgLy8gbW9k
dWxlTG9hZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZldGNoCi0gICAg
bnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMKLSAgICBu
dWxscHRyLCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRN
b2R1bGUsCisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNo
LAorICAgICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9k
dWxlTG9hZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAogICAgICZy
ZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhl
Y3V0aW9uT3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCAzNWZhNmUzMjc3ZmIwZDRiZTBlMGUxZWRj
NDM3MjJlZGFkZmM4YWYyLi45ZmFlYzk1OWMzOWQxNzQ4MTgxYzk4NjUwMDNkNWE4NmYxN2Y1ZTNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxT
Y29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEds
b2JhbFNjb3BlQmFzZS5jcHAKQEAgLTQ5LDExICs0OSwxMSBAQCBjb25zdCBHbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9k
VGFibAogICAgICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLAogICAgIG51bGxwdHIsIC8vIHF1ZXVl
TWljcm90YXNrVG9FdmVudExvb3AKICAgICAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGlt
ZW91dCwKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUKLSAgICBudWxs
cHRyLCAvLyBtb2R1bGVMb2FkZXJSZXNvbHZlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVy
RmV0Y2gKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVy
dGllcwotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckV2YWx1YXRlCisgICAgJm1vZHVsZUxv
YWRlckltcG9ydE1vZHVsZSwKKyAgICAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwKKyAgICAmbW9kdWxl
TG9hZGVyRmV0Y2gsCisgICAgJm1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVz
LAorICAgICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwKICAgICAmcHJvbWlzZVJlamVjdGlvblRyYWNr
ZXIsCiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJl
bnRTY3JpcHRFeGVjdXRpb25Pd25lciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
TW9kdWxlU2NyaXB0TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE5MTBlOTQ5YjdhYzFhMzhlZGVlY2Iw
M2RlYjZlZTg5NGNjZWIwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5j
bHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
U2NyaXB0RmV0Y2hlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OworCitjbGFzcyBN
b2R1bGVTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVTY3JpcHRMb2FkZXI+
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3JpcHRMb2FkZXIoKSA9IGRlZmF1bHQ7
CisKKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2NsaWVu
dCk7CisgICAgICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBKU0M6OlNjcmlw
dEZldGNoZXImIHNjcmlwdEZldGNoZXIoKSB7IHJldHVybiBtX3NjcmlwdEZldGNoZXIuZ2V0KCk7
IH0KKyAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSB7IHJldHVybiBtX3Bh
cmFtZXRlcnMuZ2V0KCk7IH0KKworcHJvdGVjdGVkOgorICAgIE1vZHVsZVNjcmlwdExvYWRlcihN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNl
LCBKU0M6OlNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBh
cmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICAgICAgOiBtX2NsaWVudCgmY2xpZW50KQorICAg
ICAgICAsIG1fcHJvbWlzZSgmcHJvbWlzZSkKKyAgICAgICAgLCBtX3NjcmlwdEZldGNoZXIoc2Ny
aXB0RmV0Y2hlcikKKyAgICAgICAgLCBtX3BhcmFtZXRlcnMoV1RGTW92ZShwYXJhbWV0ZXJzKSkK
KyAgICB7CisgICAgfQorCisgICAgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KiBtX2NsaWVudDsK
KyAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBtX3Byb21pc2U7CisgICAgUmVmPEpTQzo6U2Ny
aXB0RmV0Y2hlcj4gbV9zY3JpcHRGZXRjaGVyOworICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFt
ZXRlcnM+IG1fcGFyYW1ldGVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjk5NWY0OGVlM2QxZTAyYzFkOGM5YzlkYTJiZDU4MjM2ZjNiYTA3ZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyOworY2xhc3MgRGVmZXJyZWRQcm9taXNlOwor
CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwg
fk1vZHVsZVNjcmlwdExvYWRlckNsaWVudCgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImLCBVUkwmJiwgUmVmPERlZmVycmVk
UHJvbWlzZT4pID0gMDsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGFhNWI4MGI1ODZiNzllMGU1NzUwMWNkNTEw
NzhkZjI1YTYyNWU1ZDkuLjgzODYwMDA1YjZlMWQ1MTMyM2Q4ODk4MmMwNTAzODUzMmE3ZjJiZjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVy
LmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZl
dGNoZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
QEAgLTQxLDYgKzQwLDggQEAKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVk
ZSAiU3VicmVzb3VyY2VJbnRlZ3JpdHkuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRh
LmgiCisjaW5jbHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiV29y
a2VyU2NyaXB0RmV0Y2hlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbXBsZXRpb24u
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTTW9kdWxlUmVjb3JkLmg+CkBAIC01Miw4ICs1Myw5IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVM
b2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK1Nj
cmlwdE1vZHVsZUxvYWRlcjo6U2NyaXB0TW9kdWxlTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIE93bmVyVHlwZSBvd25lclR5cGUpCisgICAgOiBtX2NvbnRleHQoY29udGV4
dCkKKyAgICAsIG1fb3duZXJUeXBlKG93bmVyVHlwZSkKIHsKIH0KIApAQCAtNjgsNyArNzAsNyBA
QCBzdGF0aWMgYm9vbCBpc1Jvb3RNb2R1bGUoSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5
KQogICAgIHJldHVybiBpbXBvcnRlck1vZHVsZUtleS5pc1N5bWJvbCgpIHx8IGltcG9ydGVyTW9k
dWxlS2V5LmlzVW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4g
cmVzb2x2ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
c3BlY2lmaWVyLCBjb25zdCBVUkwmIGJhc2VVUkwpCitzdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJp
bmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGUgb3duZXJUeXBlLCBjb25zdCBTdHJpbmcm
IHNwZWNpZmllciwgY29uc3QgVVJMJiBiYXNlVVJMKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNyZXNvbHZlLWEtbW9kdWxl
LXNwZWNpZmllcgogCkBAIC03OSw3ICs4MSwxMiBAQCBzdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJp
bmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdAog
ICAgIGlmICghc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy8nKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dp
dGgoIi4vIikgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLi8iKSkKICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1vZHVsZSBzcGVjaWZpZXIsICciX3MsIHNwZWNp
ZmllciwgIicgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiBS
ZWZlcmVuY2VkIGZyb20gIl9zLCBiYXNlVVJMLnN0cmluZygpKSk7CiAKLSAgICBhdXRvIHJlc3Vs
dCA9IGRvY3VtZW50LmNvbXBsZXRlVVJMKHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgVVJMIHJl
c3VsdDsKKyAgICBpZiAob3duZXJUeXBlID09IFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBl
OjpEb2N1bWVudCkKKyAgICAgICAgcmVzdWx0ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQp
LmNvbXBsZXRlVVJMKHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgZWxzZQorICAgICAgICByZXN1
bHQgPSBVUkwoYmFzZVVSTCwgc3BlY2lmaWVyKTsKKwogICAgIGlmICghcmVzdWx0LmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1vZHVsZSBuYW1l
LCAnIl9zLCByZXN1bHQuc3RyaW5nKCksICInIGRvZXMgbm90IHJlc29sdmUgdG8gYSB2YWxpZCBV
UkwuIl9zKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTEwNyw3ICsxMTQsNyBAQCBKU0M6Oklk
ZW50aWZpZXIgU2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGpzR2xvYmFsT2JqZWN0LAogICAgIFVSTCBiYXNlVVJMID0gcmVzcG9uc2VVUkxGcm9tUmVxdWVz
dFVSTCgqanNHbG9iYWxPYmplY3QsIGltcG9ydGVyTW9kdWxlS2V5KTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxl
U3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgYXV0byByZXN1
bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fY29udGV4dCwgbV9vd25lclR5cGUsIHNwZWNp
ZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgSlNDOjp0aHJvd1R5
cGVFcnJvcihqc0dsb2JhbE9iamVjdCwgc2NvcGUsIHJlc3VsdC5lcnJvcigpKTsKICAgICAgICAg
cmV0dXJuIHsgfTsKQEAgLTE2MSwxMyArMTY4LDE5IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2Uq
IFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxP
CiAgICAgaWYgKGF1dG8qIHNjcmlwdEZldGNoUGFyYW1ldGVycyA9IEpTQzo6anNEeW5hbWljQ2Fz
dDxKU0M6OkpTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzKj4odm0sIHBhcmFtZXRlcnMpKQogICAgICAg
ICB0b3BMZXZlbEZldGNoUGFyYW1ldGVycyA9IHN0YXRpY19jYXN0PE1vZHVsZUZldGNoUGFyYW1l
dGVycyo+KCZzY3JpcHRGZXRjaFBhcmFtZXRlcnMtPnBhcmFtZXRlcnMoKSk7CiAKLSAgICBhdXRv
IGxvYWRlciA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJl
ZC5nZXQoKSwgKnN0YXRpY19jYXN0PENhY2hlZFNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxK
U0M6OkpTU2NyaXB0RmV0Y2hlcio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3Zl
KHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzKSk7Ci0gICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29w
eVJlZigpKTsKLSAgICBpZiAoIWxvYWRlci0+bG9hZChtX2RvY3VtZW50LCBjb21wbGV0ZWRVUkwp
KSB7Ci0gICAgICAgIGxvYWRlci0+Y2xlYXJDbGllbnQoKTsKLSAgICAgICAgbV9sb2FkZXJzLnJl
bW92ZShXVEZNb3ZlKGxvYWRlcikpOwotICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtF
cnJvcihkZWZlcnJlZC5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwg
IkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybiBq
c1Byb21pc2U7CisgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsK
KyAgICAgICAgYXV0byBsb2FkZXIgPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgq
dGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVyKj4o
SlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNoZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hl
cigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFyYW1ldGVycykpOworICAgICAgICBtX2xvYWRl
cnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOworICAgICAgICBpZiAoIWxvYWRlci0+bG9hZChkb3du
Y2FzdDxEb2N1bWVudD4obV9jb250ZXh0KSwgV1RGTW92ZShjb21wbGV0ZWRVUkwpKSkgeworICAg
ICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOworICAgICAgICAgICAgbV9sb2FkZXJzLnJl
bW92ZShXVEZNb3ZlKGxvYWRlcikpOworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3
b3JrRXJyb3IoZGVmZXJyZWQuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9y
ZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOworICAgICAgICAgICAg
cmV0dXJuIGpzUHJvbWlzZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8g
bG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVk
LmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpT
Qzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUo
dG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKKyAgICAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIu
Y29weVJlZigpKTsKKyAgICAgICAgbG9hZGVyLT5sb2FkKG1fY29udGV4dCwgV1RGTW92ZShjb21w
bGV0ZWRVUkwpKTsKICAgICB9CiAKICAgICByZXR1cm4ganNQcm9taXNlOwpAQCAtMTc2LDcgKzE4
OSw3IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2go
SlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPCiBVUkwgU2NyaXB0TW9kdWxlTG9hZGVyOjpt
b2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1
ZSBtb2R1bGVLZXlWYWx1ZSkKIHsKICAgICBpZiAobW9kdWxlS2V5VmFsdWUuaXNTeW1ib2woKSkK
LSAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQudXJsKCk7CisgICAgICAgIHJldHVybiBtX2NvbnRl
eHQudXJsKCk7CiAKICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CiAgICAg
cmV0dXJuIFVSTChVUkwoKSwgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZSgmanNHbG9i
YWxPYmplY3QpKTsKQEAgLTE4Nyw4ICsyMDAsMTEgQEAgVVJMIFNjcmlwdE1vZHVsZUxvYWRlcjo6
cmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE8K
ICAgICBKU0M6OlZNJiB2bSA9IGpzR2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgaWYgKGlzUm9vdE1vZHVsZShtb2R1bGVL
ZXlWYWx1ZSkpCi0gICAgICAgIHJldHVybiBtX2RvY3VtZW50LmJhc2VVUkwoKTsKKyAgICBpZiAo
aXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkgeworICAgICAgICBpZiAobV9vd25lclR5cGUg
PT0gT3duZXJUeXBlOjpEb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxEb2N1
bWVudD4obV9jb250ZXh0KS5iYXNlVVJMKCk7CisgICAgICAgIHJldHVybiBtX2NvbnRleHQudXJs
KCk7CisgICAgfQogCiAgICAgQVNTRVJUKCFpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKTsK
ICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CkBAIC0yMTksOCArMjM1LDE0
IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKCiAgICAgaWYgKCFzb3VyY2VVUkwuaXNWYWxpZCgp
KQogICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9iamVjdCwgc2Nv
cGUsICJNb2R1bGUga2V5IGlzIGFuIGludmFsaWQgVVJMLiJfcyk7CiAKLSAgICBpZiAoYXV0byog
ZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFtZS0+c2NyaXB0
KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAgICBpZiAobV9v
d25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBpZiAoYXV0byogZnJh
bWUgPSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5mcmFtZSgpKQorICAgICAgICAgICAg
cmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsICptb2R1bGVS
ZWNvcmQpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChpczxXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZT4obV9jb250ZXh0KSk7CisgICAgICAgIGlmIChhdXRvKiBzY3JpcHQgPSBkb3du
Y2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZT4obV9jb250ZXh0KS5zY3JpcHQoKSkKKyAg
ICAgICAgICAgIHJldHVybiBzY3JpcHQtPmV2YWx1YXRlTW9kdWxlKCptb2R1bGVSZWNvcmQpOwor
ICAgIH0KICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwogfQogCkBAIC0yNDgsOCArMjcw
LDEzIEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6aW1wb3J0
TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzCiAgICAgVVJMIGJhc2VVUkw7CiAgICAgUmVm
UHRyPEpTQzo6U2NyaXB0RmV0Y2hlcj4gc2NyaXB0RmV0Y2hlcjsKICAgICBpZiAoc291cmNlT3Jp
Z2luLmlzTnVsbCgpKSB7Ci0gICAgICAgIGJhc2VVUkwgPSBtX2RvY3VtZW50LmJhc2VVUkwoKTsK
LSAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShtX2Rv
Y3VtZW50LmNoYXJzZXQoKSk7CisgICAgICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6
OkRvY3VtZW50KSB7CisgICAgICAgICAgICBiYXNlVVJMID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1f
Y29udGV4dCkuYmFzZVVSTCgpOworICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNj
cmlwdEZldGNoZXI6OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5jaGFyc2V0
KCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFzZVVSTCA9IG1fY29udGV4dC51
cmwoKTsKKyAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpj
cmVhdGUoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbik7CisgICAgICAgIH0K
ICAgICB9IGVsc2UgewogICAgICAgICBiYXNlVVJMID0gVVJMKFVSTCgpLCBzb3VyY2VPcmlnaW4u
c3RyaW5nKCkpOwogICAgICAgICBpZiAoIWJhc2VVUkwuaXNWYWxpZCgpKQpAQCAtMjU3LDE0ICsy
ODQsMTkgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVyOjppbXBv
cnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganMKIAogICAgICAgICBpZiAoc291cmNlT3Jp
Z2luLmZldGNoZXIoKSkKICAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBzb3VyY2VPcmlnaW4u
ZmV0Y2hlcigpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2Fj
aGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKG1fZG9jdW1lbnQuY2hhcnNldCgpKTsKKworICAgICAg
ICBpZiAoIXNjcmlwdEZldGNoZXIpIHsKKyAgICAgICAgICAgIGlmIChtX293bmVyVHlwZSA9PSBP
d25lclR5cGU6OkRvY3VtZW50KQorICAgICAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNo
ZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuY2hh
cnNldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzY3JpcHRGZXRjaGVy
ID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6
OlNhbWVPcmlnaW4pOworICAgICAgICB9CiAgICAgfQogICAgIEFTU0VSVChiYXNlVVJMLmlzVmFs
aWQoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEZldGNoZXIpOwogCiAgICAgYXV0byBzcGVjaWZpZXIg
PSBtb2R1bGVOYW1lLT52YWx1ZShqc0dsb2JhbE9iamVjdCk7Ci0gICAgYXV0byByZXN1bHQgPSBy
ZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmllciwgYmFzZVVSTCk7Cisg
ICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fY29udGV4dCwgbV9vd25l
clR5cGUsIHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJl
dHVybiByZWplY3RQcm9taXNlKGdsb2JhbE9iamVjdCwgVHlwZUVycm9yLCByZXN1bHQuZXJyb3Io
KSk7CiAKQEAgLTI4OCw2MiArMzIwLDEwNyBAQCBKU0M6OkpTT2JqZWN0KiBTY3JpcHRNb2R1bGVM
b2FkZXI6OmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplYwogICAg
IHJldHVybiBtZXRhUHJvcGVydGllczsKIH0KIAotdm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciYgbG9hZGVyLCBSZWZQdHI8RGVm
ZXJyZWRQcm9taXNlPiBwcm9taXNlKQordm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVyLCBVUkwmJiBzb3Vy
Y2VVUkwsIFJlZjxEZWZlcnJlZFByb21pc2U+IHByb21pc2UpCiB7CiAgICAgLy8gaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2lu
Z2xlLW1vZHVsZS1zY3JpcHQKIAotICAgIFVSTCBzb3VyY2VVUkwgPSBsb2FkZXIuc291cmNlVVJM
KCk7Ci0gICAgaWYgKCFtX2xvYWRlcnMucmVtb3ZlKCZsb2FkZXIpKQorICAgIGlmICghbV9sb2Fk
ZXJzLnJlbW92ZSgmbW9kdWxlU2NyaXB0TG9hZGVyKSkKICAgICAgICAgcmV0dXJuOwotICAgIGxv
YWRlci5jbGVhckNsaWVudCgpOworICAgIG1vZHVsZVNjcmlwdExvYWRlci5jbGVhckNsaWVudCgp
OwogCi0gICAgYXV0byYgY2FjaGVkU2NyaXB0ID0gKmxvYWRlci5jYWNoZWRTY3JpcHQoKTsKKyAg
ICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBhdXRv
JiBsb2FkZXIgPSBzdGF0aWNfY2FzdDxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImPihtb2R1bGVT
Y3JpcHRMb2FkZXIpOworICAgICAgICBhdXRvJiBjYWNoZWRTY3JpcHQgPSAqbG9hZGVyLmNhY2hl
ZFNjcmlwdCgpOwogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC5yZXNvdXJjZUVycm9yKCkuaXNBY2Nl
c3NDb250cm9sKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgIkNyb3Nz
LW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJp
bmcgcG9saWN5LiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNo
ZWRTY3JpcHQucmVzb3VyY2VFcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CisgICAgICAgICAg
ICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRl
bmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIl9zKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC5lcnJvck9j
Y3VycmVkKCkpIHsKLSAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoKnByb21p
c2UsIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1
bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBp
ZiAoY2FjaGVkU2NyaXB0LmVycm9yT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgcmVqZWN0VG9Q
cm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2lu
ZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIGlmIChjYWNoZWRTY3JpcHQud2Fz
Q2FuY2VsZWQoKSkgewotICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcigqcHJv
bWlzZSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcgYSBt
b2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Cisg
ICAgICAgIGlmIChjYWNoZWRTY3JpcHQud2FzQ2FuY2VsZWQoKSkgeworICAgICAgICAgICAgcmVq
ZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWls
dXJlS2luZDo6V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNl
bGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIGlmICghTUlN
RVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUoY2FjaGVkU2NyaXB0
LnJlc3BvbnNlKCkubWltZVR5cGUoKSkpIHsKLSAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVs
ZS1zY3JpcHQKLSAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBl
IGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90
IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCi0gICAgICAgIC8vIEZvciBoaXN0b3JpY2FsIHJlYXNv
bnMsIGZldGNoaW5nIGEgY2xhc3NpYyBzY3JpcHQgZG9lcyBub3QgaW5jbHVkZSBNSU1FIHR5cGUg
Y2hlY2tpbmcuIEluIGNvbnRyYXN0LCBtb2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwgdG8gbG9hZCBp
ZiB0aGV5IGFyZSBub3Qgb2YgYSBjb3JyZWN0IE1JTUUgdHlwZS4KLSAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgp
Lm1pbWVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYgKCFNSU1FVHlwZVJlZ2lzdHJ5Ojpp
c1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1l
VHlwZSgpKSkgeworICAgICAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9t
dWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKKyAg
ICAgICAgICAgIC8vIFRoZSByZXN1bHQgb2YgZXh0cmFjdGluZyBhIE1JTUUgdHlwZSBmcm9tIHJl
c3BvbnNlJ3MgaGVhZGVyIGxpc3QgKGlnbm9yaW5nIHBhcmFtZXRlcnMpIGlzIG5vdCBhIEphdmFT
Y3JpcHQgTUlNRSB0eXBlLgorICAgICAgICAgICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywg
ZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBkb2VzIG5vdCBpbmNsdWRlIE1JTUUgdHlwZSBjaGVj
a2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBzY3JpcHRzIHdpbGwgZmFpbCB0byBsb2FkIGlmIHRo
ZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlNRSB0eXBlLgorICAgICAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgp
Lm1pbWVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRvKiBwYXJh
bWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgICAgaWYgKCFtYXRjaElu
dGVncml0eU1ldGFkYXRhKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkpKSB7
CisgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygi
Q2Fubm90IGxvYWQgc2NyaXB0ICIsIGludGVncml0eU1pc21hdGNoRGVzY3JpcHRpb24oY2FjaGVk
U2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBVUkwgcmVzcG9uc2VVUkwg
PSBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKTsKKyAgICAgICAgLy8gSWYgd2UgZG8gbm90
IGhhdmUgcmVkaXJlY3Rpb24sIHdlIG11c3QgcmVzZXJ2ZSB0aGUgc291cmNlIFVSTCdzIGZyYWdt
ZW50IGV4cGxpY2l0bHkgaGVyZSBzaW5jZSBSZXNvdXJjZVJlc3BvbnNlOjp1cmwoKSBpcyB0aGUg
b25lIHdoZW4gd2UgZmlyc3QgY2FjaGUgaXQgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgdHJhY2sgZnJhZ21lbnRzIHRocm91Z2ggcmVkaXJlY3Rpb25zLgorICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCisg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0OTAK
KyAgICAgICAgaWYgKCFjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCkgJiYgY2FjaGVkU2Ny
aXB0LnJlc3BvbnNlKCkuc291cmNlKCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2
aWNlV29ya2VyKSB7CisgICAgICAgICAgICBpZiAoc291cmNlVVJMLmhhc0ZyYWdtZW50SWRlbnRp
ZmllcigpKQorICAgICAgICAgICAgICAgIHJlc3BvbnNlVVJMLnNldEZyYWdtZW50SWRlbnRpZmll
cihzb3VyY2VVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgICAgICB9CisKKyAgICAgICAg
bV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCBXVEZN
b3ZlKHJlc3BvbnNlVVJMKSk7CisgICAgICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2so
WyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QpIHsKKyAgICAgICAgICAgIHJl
dHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCisgICAg
ICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRT
Y3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3Jp
cHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUoKSB9KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgYXV0byYgbG9hZGVyID0gc3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVyKTsKKyAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0
TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRlcigpOwogCi0gICAgaWYgKGF1dG8qIHBhcmFtZXRl
cnMgPSBsb2FkZXIucGFyYW1ldGVycygpKSB7Ci0gICAgICAgIGlmICghbWF0Y2hJbnRlZ3JpdHlN
ZXRhZGF0YShjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkgewotICAgICAg
ICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiQ2Fubm90IGxvYWQg
c2NyaXB0ICIsIGludGVncml0eU1pc21hdGNoRGVzY3JpcHRpb24oY2FjaGVkU2NyaXB0LCBwYXJh
bWV0ZXJzLT5pbnRlZ3JpdHkoKSkpKTsKKyAgICAgICAgaWYgKHdvcmtlclNjcmlwdExvYWRlci5m
YWlsZWQoKSkgeworICAgICAgICAgICAgaWYgKHdvcmtlclNjcmlwdExvYWRlci5lcnJvcigpLmlz
QWNjZXNzQ29udHJvbCgpKSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVF
cnJvciwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJl
c291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmVycm9yKCku
aXNDYW5jZWxsYXRpb24oKSkgeworICAgICAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0
d29ya0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNl
bGVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4iX3MpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVqZWN0VG9Q
cm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2lu
ZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICBVUkwgcmVzcG9uc2VV
UkwgPSBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKTsKLSAgICAvLyBJZiB3ZSBkbyBub3Qg
aGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21l
bnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBv
bmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KLSAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIHRyYWNrIGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4KLSAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCi0gICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAotICAgIGlmICghY2Fj
aGVkU2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpICYmIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnNv
dXJjZSgpICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgewotICAg
ICAgICBpZiAoc291cmNlVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQotICAgICAgICAgICAg
cmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50
aWZpZXIoKSk7Ci0gICAgfQorICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9y
dGVkSmF2YVNjcmlwdE1JTUVUeXBlKHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25zZU1JTUVUeXBl
KCkpKSB7CisgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAorICAgICAg
ICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9u
c2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlw
dCBNSU1FIHR5cGUuCisgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRj
aGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5n
LiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBh
cmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCisgICAgICAgICAgICBwcm9taXNlLT5yZWpl
Y3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNl
TUlNRVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICBtX3JlcXVlc3RVUkxUb1Jlc3Bv
bnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsK
LSAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3Qm
IGpzR2xvYmFsT2JqZWN0KSB7Ci0gICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3Jl
YXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCi0gICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBT
Y3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0p
OwotICAgIH0pOworICAgICAgICBVUkwgcmVzcG9uc2VVUkwgPSB3b3JrZXJTY3JpcHRMb2FkZXIu
cmVzcG9uc2VVUkwoKTsKKworICAgICAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlv
biwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBo
ZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJz
dCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0
cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRpcmVjdGlvbnMuCisgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKyAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAorICAgICAgICBpZiAoIXdv
cmtlclNjcmlwdExvYWRlci5pc1JlZGlyZWN0ZWQoKSAmJiB3b3JrZXJTY3JpcHRMb2FkZXIucmVz
cG9uc2VTb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIp
IHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisg
ICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVS
TC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgICAgIH0KKworICAgICAgICBtX3JlcXVlc3RV
UkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIHJlc3BvbnNlVVJMKTsK
KyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2Jq
ZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VD
b2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6OlNv
dXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0TG9hZGVyLnNjcmlwdCgp
LCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkgfSk7Cisg
ICAgICAgIH0pOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRNb2R1bGVMb2FkZXIuaAppbmRleCBkZTI5ZDJmNGJmMDk2YjYwYzM2OTk4MDMxNmMx
NDg2YjI4MmFiZjA5Li5kZjM0ZDU1MWExMWNkOThmNGUyMzZhMmFhMWY0ODI3OWQ5NjRjNjg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaApA
QCAtMjUsOCArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIk1vZHVsZVNj
cmlwdExvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgpAQCAtNDUsMTYgKzQ1LDE3IEBAIGNsYXNzIFNvdXJjZU9yaWdpbjsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZp
bmFsIDogcHJpdmF0ZSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworY2xhc3MgU2Ny
aXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNjcmlwdE1vZHVsZUxvYWRlcik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRl
cihEb2N1bWVudCYpOworICAgIGVudW0gY2xhc3MgT3duZXJUeXBlIDogdWludDhfdCB7IERvY3Vt
ZW50LCBXb3JrZXJPcldvcmtsZXQgfTsKKyAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE93bmVyVHlwZSk7CiAgICAgflNjcmlwdE1vZHVsZUxv
YWRlcigpOwogCi0gICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsg
fQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRl
eHQ7IH0KIAogICAgIEpTQzo6SWRlbnRpZmllciByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNW
YWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwogICAg
IEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTYzLDEzICs2NCwxNSBA
QCBjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudCB7CiAgICAgSlNDOjpKU09iamVjdCogY3JlYXRlSW1wb3J0TWV0YVBy
b3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTVmFsdWUsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwogCiBwcml2YXRl
OgotICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVm
UHRyPERlZmVycmVkUHJvbWlzZT4pIGZpbmFsOworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoTW9k
dWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSBmaW5hbDsKKwog
ICAgIFVSTCBtb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAg
ICAgVVJMIHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpT
Qzo6SlNWYWx1ZSk7CiAKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBtX2NvbnRleHQ7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1
ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKLSAgICBIYXNoU2V0PFJlZjxDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXI+PiBtX2xvYWRlcnM7CisgICAgSGFzaFNldDxSZWY8TW9kdWxlU2NyaXB0TG9hZGVy
Pj4gbV9sb2FkZXJzOworICAgIE93bmVyVHlwZSBtX293bmVyVHlwZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdFNvdXJjZUNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJj
ZUNvZGUuaAppbmRleCBjNzA0NjI2ZmI3MzNkYjQ3MmJkYTUwMjM2MjQxYTZlNzQwZTI3ODJiLi4x
MGZhN2U4YjQ0OWM4Yjg0OWViMzdjYzFmMmM4NjZmYTg5M2FhZDZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIGNs
YXNzIFNjcmlwdFNvdXJjZUNvZGUgewogICAgIHsKICAgICB9CiAKLSAgICBTY3JpcHRTb3VyY2VD
b2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYg
c3RhcnRQb3NpdGlvbiwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwg
UmVmPENhY2hlZFNjcmlwdEZldGNoZXI+JiYgc2NyaXB0RmV0Y2hlcikKKyAgICBTY3JpcHRTb3Vy
Y2VDb2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlv
biYgc3RhcnRQb3NpdGlvbiwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlw
ZSwgUmVmPEpTQzo6U2NyaXB0RmV0Y2hlcj4mJiBzY3JpcHRGZXRjaGVyKQogICAgICAgICA6IG1f
cHJvdmlkZXIoSlNDOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgSlNDOjpT
b3VyY2VPcmlnaW4geyB1cmwsIFdURk1vdmUoc2NyaXB0RmV0Y2hlcikgfSwgdXJsLnN0cmluZygp
LCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSkKICAgICAgICAgLCBtX2NvZGUobV9wcm92aWRl
ci5jb3B5UmVmKCksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9z
aXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42ZDI3NDkzYTYwMTdmODA3ZDAwMWRmZjgzNmY0ZjI1MTc4YTE2ZTI2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorCisjaW5jbHVkZSAiQ2Fj
aGVkU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNET01Q
cm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0
U291cmNlQ29kZS5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRl
ICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyPiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNl
LCBXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQ
YXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RG
TW92ZShwYXJhbWV0ZXJzKSkpOworfQorCitXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Oldvcmtl
ck1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVm
ZXJyZWRQcm9taXNlJiBwcm9taXNlLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVy
LCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCisgICAgOiBNb2R1
bGVTY3JpcHRMb2FkZXIoY2xpZW50LCBwcm9taXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBh
cmFtZXRlcnMpKQorICAgICwgbV9zY3JpcHRMb2FkZXIoV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVh
dGUoKSkKK3sKK30KKworV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjp+V29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyKCkKK3sKKyAgICBtX3NjcmlwdExvYWRlci0+Y2FuY2VsKCk7Cit9CisKK2Jvb2wg
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFVSTCYmIHNvdXJjZVVSTCkKK3sKKyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUoc291
cmNlVVJMKTsKKworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgbV9zb3VyY2VVUkwgfTsK
KworICAgIEZldGNoT3B0aW9ucyBmZXRjaE9wdGlvbnM7CisgICAgZmV0Y2hPcHRpb25zLm1vZGUg
PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM7CisgICAgZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0
Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKKyAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBG
ZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CisgICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRp
YWxzID0gc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hlciY+KHNjcmlwdEZldGNoZXIoKSku
Y3JlZGVudGlhbHMoKTsKKyAgICBhdXRvIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50
ID0gY29udGV4dC5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSA/
IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UgOiBDb250ZW50
U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RW5mb3JjZUNoaWxkU3JjRGlyZWN0aXZlOworCisg
ICAgU3RyaW5nIHRhc2tNb2RlID0gImxvYWRNb2R1bGVzSW5Xb3JrZXJPcldvcmtsZXRNb2RlIl9z
OworICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92
ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsICp0aGlzLCBXVEZNb3ZlKHRhc2tN
b2RlKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyOjpub3RpZnlGaW5pc2hlZCgpCit7CisgICAgQVNTRVJUKG1fcHJvbWlzZSk7CisKKyAgICBh
dXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKyAgICBpZiAobV9jbGllbnQpCisg
ICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJjZVVS
TCksIG1fcHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mMTAwODBlZTkzMWJmYjBiMzNhOWY1NDczYjI5N2NhMmRjMmU0NzU4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZWZlcnJlZFByb21pc2U7CitjbGFzcyBKU0RPTUds
b2JhbE9iamVjdDsKK2NsYXNzIE1vZHVsZUZldGNoUGFyYW1ldGVyczsKK2NsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFzcyBX
b3JrZXJTY3JpcHRMb2FkZXI7CisKK2NsYXNzIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciBmaW5h
bCA6IHB1YmxpYyBNb2R1bGVTY3JpcHRMb2FkZXIsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRl
cj4gY3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIFdv
cmtlclNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKwor
ICAgIHZpcnR1YWwgfldvcmtlck1vZHVsZVNjcmlwdExvYWRlcigpOworCisgICAgYm9vbCBsb2Fk
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBVUkwmJiBzb3VyY2VVUkwpOworCisgICAgV29ya2Vy
U2NyaXB0TG9hZGVyJiBzY3JpcHRMb2FkZXIoKSB7IHJldHVybiBtX3NjcmlwdExvYWRlci5nZXQo
KTsgfQorCitwcml2YXRlOgorICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiwg
UmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyB9
CisgICAgdm9pZCBub3RpZnlGaW5pc2hlZCgpIGZpbmFsOworCisgICAgUmVmPFdvcmtlclNjcmlw
dExvYWRlcj4gbV9zY3JpcHRMb2FkZXI7CisgICAgVVJMIG1fc291cmNlVVJMOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0RmV0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0RmV0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2YjU0ZWY4OTRiNTMzZWFmY2ViYzFhMTRi
ZjI3NmEwM2VjYmExMGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRGZXRjaGVyLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTG9hZGFibGVTY3JpcHQuaCIKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9TY3JpcHRGZXRjaGVyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQ2FjaGVkU2NyaXB0OworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIFdvcmtlclNj
cmlwdEZldGNoZXIgZmluYWwgOiBwdWJsaWMgSlNDOjpTY3JpcHRGZXRjaGVyIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFdvcmtlclNjcmlwdEZldGNoZXI+IGNyZWF0ZShGZXRjaE9wdGlvbnM6
OkNyZWRlbnRpYWxzIGNyZWRlbnRpYWxzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV29ya2VyU2NyaXB0RmV0Y2hlcihjcmVkZW50aWFscykpOworICAgIH0KKworICAgIEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBtX2Ny
ZWRlbnRpYWxzOyB9CisKKyAgICB2b2lkIG5vdGlmeUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmlu
Z0ltcGwmIG1vZHVsZUtleSkKKyAgICB7CisgICAgICAgIG1fbW9kdWxlS2V5ID0gJm1vZHVsZUtl
eTsKKyAgICAgICAgbV9pc0xvYWRlZCA9IHRydWU7CisgICAgfQorCisgICAgdm9pZCBub3RpZnlM
b2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciYmIGVycm9yKQorICAgIHsKKyAgICAgICAg
bV9lcnJvciA9IFdURk1vdmUoZXJyb3IpOworICAgICAgICBtX2lzTG9hZGVkID0gdHJ1ZTsKKyAg
ICB9CisKKyAgICB2b2lkIG5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpCisgICAgeworICAgICAgICBt
X3dhc0NhbmNlbGVkID0gdHJ1ZTsKKyAgICAgICAgbV9pc0xvYWRlZCA9IHRydWU7CisgICAgfQor
CisgICAgYm9vbCBpc0xvYWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2FkZWQ7IH0KKyAgICBP
cHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6RXJyb3I+IGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9l
cnJvcjsgfQorICAgIGJvb2wgd2FzQ2FuY2VsZWQoKSBjb25zdCB7IHJldHVybiBtX3dhc0NhbmNl
bGVkOyB9CisgICAgVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSgpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kdWxlS2V5LmdldCgpOyB9CisKK3Byb3RlY3RlZDoKKyAgICBXb3JrZXJTY3JpcHRGZXRj
aGVyKEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMpCisgICAgICAgIDogbV9j
cmVkZW50aWFscyhjcmVkZW50aWFscykKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgbV9jcmVkZW50aWFsczsKKyAgICBSZWZQdHI8VW5pcXVl
ZFN0cmluZ0ltcGw+IG1fbW9kdWxlS2V5OworICAgIE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpF
cnJvcj4gbV9lcnJvcjsKKyAgICBib29sIG1fd2FzQ2FuY2VsZWQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc0xvYWRlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA5YjIxMzhiNzdjMTgwZDcyMDk1MTgwMGUxNGUzNDdh
MTQzZTk3MTcxLi41NGNmZjA0YTk2ZGJjODA5ZDYzNmFhZWM4ZWNiMjA1ZTQ2NzdmMDQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYxNSw3ICs2MTUsNyBAQCBEb2N1bWVudDo6RG9jdW1l
bnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJs
LCBEb2N1bQogICAgICwgbV9kb2N1bWVudENyZWF0aW9uVGltZShNb25vdG9uaWNUaW1lOjpub3co
KSkKICNlbmRpZgogICAgICwgbV9zY3JpcHRSdW5uZXIobWFrZVVuaXF1ZTxTY3JpcHRSdW5uZXI+
KCp0aGlzKSkKLSAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9h
ZGVyPigqdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlcihtYWtlVW5pcXVlPFNjcmlwdE1vZHVs
ZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlOjpEb2N1bWVudCkp
CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgLCBtX2FwcGx5UGVuZGluZ1hTTFRyYW5zZm9ybXNUaW1l
cigqdGhpcywgJkRvY3VtZW50OjphcHBseVBlbmRpbmdYU0xUcmFuc2Zvcm1zVGltZXJGaXJlZCkK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2Ny
aXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKaW5k
ZXggOWEyNWMxNjU4OGVlY2FkNjc4ZmI5MTFlYzg2MjJmNDI0MjU5MmI1YS4uNDhlYzA4NTFhNDU3
ZDliYTQ3NDczZmVjMjhkN2I0OTMxMmI3ODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9h
ZGFibGVNb2R1bGVTY3JpcHQuY3BwCkBAIC04OCwxNiArODgsNCBAQCB2b2lkIExvYWRhYmxlTW9k
dWxlU2NyaXB0OjpleGVjdXRlKFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiAgICAgc2Ny
aXB0RWxlbWVudC5leGVjdXRlTW9kdWxlU2NyaXB0KCp0aGlzKTsKIH0KIAotdm9pZCBMb2FkYWJs
ZU1vZHVsZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgcm9vdFVS
TCkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAgICAgICBm
cmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgcm9vdFVSTC5zdHJpbmcoKSwg
bV9wYXJhbWV0ZXJzLmNvcHlSZWYoKSk7Ci19Ci0KLXZvaWQgTG9hZGFibGVNb2R1bGVTY3JpcHQ6
OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VD
b2RlKQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0gICAgICAg
IGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KCp0aGlzLCBzb3VyY2VDb2RlKTsKLX0K
LQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAppbmRleCBiYjc5
OTU0ZDdiOTliMGVkMDZiZmU1NWVmODU0ZWNjZTIxZjM1ODc3Li5kMjUzNTk2M2Y2NDhiMDJhOGEw
MWZkNjNiYjFlMzgxMzg2Y2VlNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9h
ZGFibGVNb2R1bGVTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1
bGVTY3JpcHQuaApAQCAtNTAsMTUgKzUwLDE0IEBAIGNsYXNzIExvYWRhYmxlTW9kdWxlU2NyaXB0
IGZpbmFsIDogcHVibGljIExvYWRhYmxlU2NyaXB0IHsKIAogICAgIHZvaWQgc2V0RXJyb3IoRXJy
b3ImJik7CiAKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHJvb3RVUkwpOwot
ICAgIHZvaWQgbG9hZChEb2N1bWVudCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKLQogICAg
IHZvaWQgbm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYpOwogICAgIHZvaWQg
bm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3ImJik7CiAgICAgdm9pZCBub3Rp
ZnlMb2FkV2FzQ2FuY2VsZWQoKTsKIAogICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXko
KSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQogCisgICAgTW9kdWxlRmV0Y2hQ
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9CisK
IHByaXZhdGU6CiAgICAgTG9hZGFibGVNb2R1bGVTY3JpcHQoY29uc3QgU3RyaW5nJiBub25jZSwg
Y29uc3QgU3RyaW5nJiBpbnRlZ3JpdHksIFJlZmVycmVyUG9saWN5LCBjb25zdCBTdHJpbmcmIGNy
b3NzT3JpZ2luTW9kZSwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBBdG9tU3RyaW5nJiBp
bml0aWF0b3JOYW1lLCBib29sIGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDA1NzU4YjYwMGM3NTIyYjQ3ZjM2NGJhNmExOGQz
NWYxNzMxMTA3ZjkuLjVlOTlmMGY1Nzc3YjNiMjE1OGRkMGZhNGJjMzgyNzc2Y2RiMzQ4MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNs
dWRlICJMb2FkYWJsZUNsYXNzaWNTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZU1vZHVsZVNj
cmlwdC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNb2R1bGVG
ZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5jbHVkZSAi
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxlbWVudC5o
IgpAQCAtMzUxLDggKzM1MiwxMSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVT
Y3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAgICAgICAg
ICAgc2NyaXB0Q2hhcnNldCgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmxvY2FsTmFtZSgpLAog
ICAgICAgICAgICAgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOwotICAgICAg
ICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIG1vZHVsZVNjcmlwdFJvb3RVUkwp
OwogICAgICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAgICAgICBp
ZiAoYXV0byogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKSB7CisgICAgICAg
ICAgICBhdXRvJiBzY3JpcHQgPSBkb3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4oKm1fbG9h
ZGFibGVTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1
bGVTY3JpcHQoc2NyaXB0LCBtb2R1bGVTY3JpcHRSb290VVJMLnN0cmluZygpLCBtYWtlUmVmKHNj
cmlwdC5wYXJhbWV0ZXJzKCkpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKQEAgLTM2Nyw4ICszNzEsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1
bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAgIGlm
ICghY29udGVudFNlY3VyaXR5UG9saWN5LmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1
bWVudCgpLnVybCgpLnN0cmluZygpLCBtX3N0YXJ0TGluZU51bWJlciwgc291cmNlQ29kZS5zb3Vy
Y2UoKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCksIGhhc0tub3duTm9uY2UpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIHNv
dXJjZUNvZGUpOwogICAgIG1fbG9hZGFibGVTY3JpcHQgPSBXVEZNb3ZlKHNjcmlwdCk7CisgICAg
aWYgKGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAgICAg
ZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoZG93bmNhc3Q8TG9hZGFibGVNb2R1bGVT
Y3JpcHQ+KCptX2xvYWRhYmxlU2NyaXB0LmdldCgpKSwgc291cmNlQ29kZSk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxl
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcApp
bmRleCAyNzE3Yzg2MWM3NGIwZjJhZWJjZGU0MDg3MDBlMmE5YTAzNzM3NTk1Li4xYjY1MzJjM2Iw
ZWFhODBkOWJkNDZjNmQ0MzIxMzY5NjIxYzAxOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1RocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0xMDEsMTAgKzEwMSwxMCBAQCBUaHJlYWRhYmxlTG9h
ZGVyT3B0aW9ucyBUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QK
IH0KIAogCi1SZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRocmVhZGFibGVMb2FkZXJDbGllbnQm
IGNsaWVudCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJsZUxvYWRl
ck9wdGlvbnMmIG9wdGlvbnMsIFN0cmluZyYmIHJlZmVycmVyKQorUmVmUHRyPFRocmVhZGFibGVM
b2FkZXI+IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBTdHJpbmcm
JiByZWZlcnJlciwgU3RyaW5nJiYgdGFza01vZGUpCiB7CiAgICAgaWYgKGlzPFdvcmtlckdsb2Jh
bFNjb3BlPihjb250ZXh0KSB8fCAoaXM8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBk
b3duY2FzdDxXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLndvcmtlck9yV29ya2xldFRocmVh
ZCgpKSkKLSAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzdGF0
aWNfY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSY+KGNvbnRleHQpLCBjbGllbnQsIFdv
cmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCksIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMsIFdU
Rk1vdmUocmVmZXJyZXIpKTsKKyAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVMb2FkZXI6
OmNyZWF0ZShzdGF0aWNfY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSY+KGNvbnRleHQp
LCBjbGllbnQsIFdURk1vdmUodGFza01vZGUpLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLCBX
VEZNb3ZlKHJlZmVycmVyKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBudWxscHRyOwog
ICAgIGlmIChpczxXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9UaHJlYWRhYmxlTG9hZGVyLmgKaW5kZXggYzJiMjQ1YzNlYmI4YmM5MzBlZjRkMTcyYmEx
NTA5YTE3OWYxZDdhNi4uMWFjNzA0YjRjM2I1MGIwZmZkYTAzNDI4YzNjZTdkYTE0OTg4MjYzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCkBAIC03NCw3ICs3NCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhy
ZWFkYWJsZUxvYWRlcik7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgdm9pZCBsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJjZVJlcXVl
c3QmJiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRp
b25zJik7Ci0gICAgICAgIHN0YXRpYyBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgUmVzb3VyY2VS
ZXF1ZXN0JiYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwgU3RyaW5nJiYgcmVmZXJy
ZXIgPSBTdHJpbmcoKSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50Jiwg
UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwgU3RyaW5n
JiYgcmVmZXJyZXIgPSBTdHJpbmcoKSwgU3RyaW5nJiYgdGFza01vZGUgPSB7IH0pOwogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSXNEb25lKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgY2FuY2VsKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IDYyZjkxN2Ez
Njc4MTlkZWMzY2Q0MTBkOTc2Njk1Y2VlNjJmNmQ0YjkuLjkyZWE4YTc4ZmE4ZjIzODViNmNkMGNk
ZWM1ZDUwZWYxZWM3NjFkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAgLTcwLDYg
KzcwLDggQEAgaW5saW5lIFdvcmtlcjo6V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWUKICAgICAsIG1faWRlbnRpZmllcigid29y
a2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigp
KQogICAgICwgbV9jb250ZXh0UHJveHkoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6Y3JlYXRlKCp0
aGlzKSkKICAgICAsIG1fcnVudGltZUZsYWdzKHJ1bnRpbWVGbGFncykKKyAgICAsIG1fdHlwZShv
cHRpb25zLnR5cGUpCisgICAgLCBtX2NyZWRlbnRpYWxzKG9wdGlvbnMuY3JlZGVudGlhbHMpCiB7
CiAgICAgc3RhdGljIGJvb2wgYWRkZWRMaXN0ZW5lcjsKICAgICBpZiAoIWFkZGVkTGlzdGVuZXIp
IHsKQEAgLTExMywxMCArMTE1LDE1IEBAIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBXb3JrZXI6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OlJ1CiAKICAgICBG
ZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwogICAgIGZldGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hP
cHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luOworICAgIGlmICh3b3JrZXItPm1fdHlwZSA9PSBXb3Jr
ZXJUeXBlOjpNb2R1bGUpCisgICAgICAgIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9IHdvcmtl
ci0+bV9jcmVkZW50aWFsczsKKyAgICBlbHNlCisgICAgICAgIGZldGNoT3B0aW9ucy5jcmVkZW50
aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW47CiAgICAgZmV0Y2hP
cHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKICAgICBmZXRjaE9w
dGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CiAgICAgZmV0
Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2Vy
OwotICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0
LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgd29ya2VyKTsKKyAg
ICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RG
TW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xp
Y3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsIHdvcmtlci5nZXQoKSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisKICAgICByZXR1cm4gd29ya2VyOwogfQogCkBA
IC0yMTUsNyArMjIyLDEzIEBAIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgUmVm
ZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kgPSBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmc7
CiAgICAgaWYgKGF1dG8gcG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShtX3NjcmlwdExvYWRl
ci0+cmVmZXJyZXJQb2xpY3koKSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OkhUVFBIZWFkZXIpKQog
ICAgICAgICByZWZlcnJlclBvbGljeSA9ICpwb2xpY3k7Ci0gICAgbV9jb250ZXh0UHJveHkuc3Rh
cnRXb3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwgY29udGV4
dC0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3NjcmlwdExv
YWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9z
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2VyQ3JlYXRp
b25UaW1lLCByZWZlcnJlclBvbGljeSwgbV9ydW50aW1lRmxhZ3MpOworCisgICAgVVJMIHJlc3Bv
bnNlVVJMID0gbV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgaWYgKCFtX3Njcmlw
dExvYWRlci0+aXNSZWRpcmVjdGVkKCkgJiYgbV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlU291cmNl
KCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7CisgICAgICAg
IGlmIChtX3NjcmlwdExvYWRlci0+dXJsKCkuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAg
ICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIobV9zY3JpcHRMb2FkZXIt
PnVybCgpLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICB9CisgICAgbV9jb250ZXh0UHJveHku
c3RhcnRXb3JrZXJHbG9iYWxTY29wZShyZXNwb25zZVVSTCwgbV9uYW1lLCBjb250ZXh0LT51c2Vy
QWdlbnQocmVzcG9uc2VVUkwpLCBpc09ubGluZSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIG1fc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBtX3dvcmtlckNyZWF0aW9uVGltZSwgcmVmZXJyZXJQ
b2xpY3ksIG1fdHlwZSwgbV9jcmVkZW50aWFscywgbV9ydW50aW1lRmxhZ3MpOwogICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWQoKmNvbnRleHQsIG1fc2NyaXB0TG9h
ZGVyLT5pZGVudGlmaWVyKCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlci5oCmluZGV4IDUzZjVlNmZmZjI3YzlmYTNlNWMwZTAxZjBmNmM0MmM2Y2I2
ZjlkMGUuLjM4YTYyM2E5OGRiYTM1ZmY4MDEzY2Q2ZmM4Yzg1YzgxMDIwNTAyMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuaApAQCAtMjksOSArMjksMTEgQEAKICNpbmNsdWRlICJBY3RpdmVET01P
YmplY3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRl
bnRpYWxzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJQb3N0TWVzc2Fn
ZU9wdGlvbnMuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIKKyNpbmNs
dWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdz
Lmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KQEAgLTU1LDYgKzU3LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3Ry
YWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFdvcmtlcik7CiBwdWJsaWM6CiAgICAgc3RydWN0IE9wdGlvbnMg
eworICAgICAgICBXb3JrZXJUeXBlIHR5cGU7CisgICAgICAgIEZldGNoUmVxdWVzdENyZWRlbnRp
YWxzIGNyZWRlbnRpYWxzOwogICAgICAgICBTdHJpbmcgbmFtZTsKICAgICB9OwogICAgIHN0YXRp
YyBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IE9wdGlvbnMmKTsK
QEAgLTc5LDYgKzgzLDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3RyYWN0V29y
a2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICAgICB2b2lkIHBvc3RU
YXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKT4mJik7CiAjZW5kaWYKIAorICAgIFdvcmtlclR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdvcmtlcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgSlNDOjpSdW50aW1lRmxhZ3MsIGNvbnN0IE9wdGlvbnMmKTsKIApAQCAtMTEy
LDYgKzExOCw4IEBAIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBXb3JrCiAjaWYgRU5BQkxFKFdFQl9SVEMp
CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fdHJhbnNmb3JtZXJzOwogI2VuZGlmCisgICAgV29ya2Vy
VHlwZSBtX3R5cGUgeyBXb3JrZXJUeXBlOjpDbGFzc2ljIH07CisgICAgRmV0Y2hSZXF1ZXN0Q3Jl
ZGVudGlhbHMgbV9jcmVkZW50aWFscyB7IEZldGNoUmVxdWVzdENyZWRlbnRpYWxzOjpTYW1lT3Jp
Z2luIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5pZGwKaW5kZXggNDVkNmEwODY3ODU0ZWU0MDRkZTdlN2QwMTI0OGNlYmY0NGRjYTdlZC4uNzAy
MTc5NmRmNTA0YWRmOGU2Yjk1ODlhY2U5ZjE0NDgyMWYyOTVmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyLmlkbApAQCAtMzgsNiArMzgsOCBAQAogfTsKIAogZGljdGlvbmFyeSBXb3JrZXJPcHRp
b25zIHsKKyAgICBXb3JrZXJUeXBlIHR5cGUgPSAiY2xhc3NpYyI7CisgICAgRmV0Y2hSZXF1ZXN0
Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMgPSAic2FtZS1vcmlnaW4iOyAvLyBjcmVkZW50aWFscyBp
cyBvbmx5IHVzZWQgaWYgdHlwZSBpcyAibW9kdWxlIgogICAgIERPTVN0cmluZyBuYW1lID0gIiI7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmlu
ZGV4IGRiYWIzNDhlODBjOWRlNTBiZDIxNTc3N2ExNGEzOWEwZjcwZTQ5YzcuLmNjZGU5MDljN2Ni
NTJlOTc3NzRjNWI4MTU4MjNlYmNiYmIwNzBmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC03NCw2ICs3NCw4IEBAIFdvcmtlckdsb2JhbFNj
b3BlOjpXb3JrZXJHbG9iYWxTY29wZShXb3JrZXJUaHJlYWRUeXBlIHR5cGUsIGNvbnN0IFdvcmtl
clBhcmFtZXRlCiAgICAgLCBtX3BlcmZvcm1hbmNlKFBlcmZvcm1hbmNlOjpjcmVhdGUodGhpcywg
cGFyYW1zLnRpbWVPcmlnaW4pKQogICAgICwgbV9yZWZlcnJlclBvbGljeShwYXJhbXMucmVmZXJy
ZXJQb2xpY3kpCiAgICAgLCBtX3NldHRpbmdzVmFsdWVzKHBhcmFtcy5zZXR0aW5nc1ZhbHVlcykK
KyAgICAsIG1fd29ya2VyVHlwZShwYXJhbXMud29ya2VyVHlwZSkKKyAgICAsIG1fY3JlZGVudGlh
bHMocGFyYW1zLmNyZWRlbnRpYWxzKQogewogI2lmICFFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
ICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvblByb3h5KTsKQEAgLTI3NCw2ICsyNzYsMTEgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gV29ya2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwdHMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHVybHMpCiB7CiAgICAgQVNTRVJUKGNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpKTsKIAorICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dv
cmtlcnMuaHRtbCNpbXBvcnRpbmctc2NyaXB0cy1hbmQtbGlicmFyaWVzCisgICAgLy8gMS4gSWYg
d29ya2VyIGdsb2JhbCBzY29wZSdzIHR5cGUgaXMgIm1vZHVsZSIsIHRocm93IGEgVHlwZUVycm9y
IGV4Y2VwdGlvbi4KKyAgICBpZiAobV93b3JrZXJUeXBlID09IFdvcmtlclR5cGU6Ok1vZHVsZSkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImltcG9ydFNjcmlwdHMgY2Fu
bm90IGJlIHVzZWQgaWYgd29lcmtlciB0eXBlIGlzIFwibW9kdWxlXCIiX3MgfTsKKwogICAgIFZl
Y3RvcjxVUkw+IGNvbXBsZXRlZFVSTHM7CiAgICAgY29tcGxldGVkVVJMcy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KHVybHMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGVudHJ5IDogdXJscykgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDQ2ZDQ5ZDk0
YzUyMzhlNDY4OGQzOTVkODdjMjA2M2ViNTcyMGQxYmYuLjc0Nzk1ZjVjMGY5YTJhMzVkMDA5MzAx
MmFkMThmNTdlMzE3ZjgyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmgKQEAgLTEyMyw2ICsxMjMsOCBAQCBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1
YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBCYXNlNgogCiAg
ICAgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3NldHRpbmdzVmFsdWVzOyB9CiAKKyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRp
YWxzIGNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gbV9jcmVkZW50aWFsczsgfQorCiBwcm90
ZWN0ZWQ6CiAgICAgV29ya2VyR2xvYmFsU2NvcGUoV29ya2VyVGhyZWFkVHlwZSwgY29uc3QgV29y
a2VyUGFyYW1ldGVycyYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiwgV29ya2VyVGhyZWFkJiwgUmVm
PFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJv
eHkqLCBTb2NrZXRQcm92aWRlciopOwogCkBAIC0xNjMsOCArMTY1LDYgQEAgY2xhc3MgV29ya2Vy
R2xvYmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBw
dWJsaWMgQmFzZTYKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJMb2NhdGlvbj4gbV9sb2NhdGlv
bjsKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJOYXZpZ2F0b3I+IG1fbmF2aWdhdG9yOwogCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+IG1fc2Ny
aXB0OwotCiAgICAgYm9vbCBtX2lzT25saW5lOwogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKQEAgLTE4Nyw2ICsxODcsOCBAQCBjbGFzcyBX
b3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29w
ZT4sIHB1YmxpYyBCYXNlNgogICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NWYWx1ZVBvb2w+IG1fY3Nz
VmFsdWVQb29sOwogICAgIFJlZmVycmVyUG9saWN5IG1fcmVmZXJyZXJQb2xpY3k7CiAgICAgU2V0
dGluZ3M6OlZhbHVlcyBtX3NldHRpbmdzVmFsdWVzOworICAgIFdvcmtlclR5cGUgbV93b3JrZXJU
eXBlOworICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgbV9jcmVkZW50aWFsczsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNDAwMDNjM2UwMTA5OTk2MGY2NDc4NjFlNzAxNjg3
ZDBlMzcxZDcyZC4uZWQ2NzNhYzhmN2MwZWU1NGMwNjBlY2I1OTIxNjM5MGVkNzBmZTJjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKQEAg
LTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGVQcm94eSB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFdvcmtlckdsb2JhbFNjb3BlUHJveHkmIGNyZWF0ZShXb3JrZXImKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJM
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25s
aW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBKU0M6
OlJ1bnRpbWVGbGFncykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNj
b3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmln
aW4sIFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywg
SlNDOjpSdW50aW1lRmxhZ3MpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRlV29ya2Vy
R2xvYmFsU2NvcGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJH
bG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmKT4mJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCAxOWQ0YmU2NDk5MmYzMGQzY2NlNzY1NDdhM2QyMjE4
YTk4Yzg0MmMzLi43ODgzNTg3YTdhZjYyMDllM2VjYzhlN2I0MWJhZDQ3YWRmNjIyNDBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAt
NzMsNyArNzMsNyBAQCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6fldvcmtlck1lc3NhZ2luZ1Byb3h5
KCkKICAgICAgICAgfHwgKGlzPFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KSAmJiBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkudGhyZWFkKCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKSk7CiB9CiAK
LXZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3Qg
VVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9s
aWN5LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCit2b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBj
b25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0
aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB3b3Jr
ZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpSdW50aW1l
RmxhZ3MgcnVudGltZUZsYWdzKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8gYmUgcmV2
aXNpdGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBBU1NFUlQo
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXb3JrZXJN
ZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVS
TCwgY29uc3QgU3QKIAogICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciA9IGRvY3Vt
ZW50LnNvY2tldFByb3ZpZGVyKCk7CiAKLSAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsg
c2NyaXB0VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIGRvY3VtZW50LnNl
dHRpbmdzVmFsdWVzKCkgfTsKKyAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsgc2NyaXB0
VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIHdvcmtlclR5cGUsIGNyZWRl
bnRpYWxzLCBkb2N1bWVudC5zZXR0aW5nc1ZhbHVlcygpIH07CiAgICAgYXV0byB0aHJlYWQgPSBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShwYXJhbXMsIHNvdXJjZUNvZGUsICp0aGlzLCAq
dGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwgZG9jdW1lbnQudG9wT3JpZ2luKCksIHByb3h5LCBzb2Nr
ZXRQcm92aWRlciwgcnVudGltZUZsYWdzKTsKIAogICAgIHdvcmtlclRocmVhZENyZWF0ZWQodGhy
ZWFkLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuaAppbmRleCBjNWI1NzViOWU2MTViM2YzZjU5NmJmYzNkZjY4M2M4NzdjYzYyYmFiLi5kOWU4
MWUxNTdhMGY0ODUyZTQ5YjU5ZDI1NjZhOGE4MGY1ZjgxOGFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNz
IFdvcmtlck1lc3NhZ2luZ1Byb3h5IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFdvcmtlck1lc3NhZ2luZ1ByCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBX
b3JrZXJHbG9iYWxTY29wZVByb3h5LgogICAgIC8vIChPbmx5IHVzZSB0aGVzZSBmdW5jdGlvbnMg
aW4gdGhlIHdvcmtlciBvYmplY3QgdGhyZWFkLikKLSAgICB2b2lkIHN0YXJ0V29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9y
aWdpbiwgUmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzKSBmaW5hbDsKKyAgICB2b2lk
IHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0
cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1v
bm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIEZldGNo
UmVxdWVzdENyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgZmluYWw7CiAgICAgdm9pZCB0
ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VU
b1dvcmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYpIGZpbmFsOwogICAg
IHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggMjM4NGE1YThjN2QyYTMw
MmVlZTVjYjQwNWUxMDVlMDI1Yzk4NDNjYy4uZjRmNGIyNzQ2NmY5YTMwYjI4YjhiMjFmNmYyYmVm
OGJkZTkzODUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogCisjaW5jbHVk
ZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgiCiAj
aW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIldvcmtlck9y
V29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKQEAgLTM5LDYgKzQwLDcgQEAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKTsKIAogV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFdvcmtlclRocmVh
ZFR5cGUgdHlwZSwgUmVmPEpTQzo6Vk0+JiYgdm0sIFdvcmtlck9yV29ya2xldFRocmVhZCogdGhy
ZWFkKQogICAgIDogbV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyPih0eXBlLCBXVEZNb3ZlKHZtKSwgdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlciht
YWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxvYWRlcjo6
T3duZXJUeXBlOjpXb3JrZXJPcldvcmtsZXQpKQogICAgICwgbV90aHJlYWQodGhyZWFkKQogICAg
ICwgbV9pbnNwZWN0b3JDb250cm9sbGVyKG1ha2VVbmlxdWU8V29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcj4oKnRoaXMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IDZjMjQ0YTBjNDI3ZWUxYzhjNjVmZGNjNzY1OTUy
Zjg3N2ZkOWIxNmIuLjU0NGYwNDdhZWMyNzgzMjc0NGQwYThhNzBhZjdlOTM5YzMzMDk5MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNj
b3BlLmgKQEAgLTMyLDYgKzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZl
bnRMb29wVGFza0dyb3VwOworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogY2xhc3MgV29ya2Vy
RXZlbnRMb29wOwogY2xhc3MgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNzIFdvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI7CkBAIC01NCw2ICs1NSw4IEBAIGNsYXNzIFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1
YmxpYyBSZWZDb3VuCiAKICAgICB1bnNpZ25lZCBsb25nIGNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIo
KSB7IHJldHVybiBtX3VuaXF1ZUlkZW50aWZpZXIrKzsgfQogCisgICAgU2NyaXB0TW9kdWxlTG9h
ZGVyJiBtb2R1bGVMb2FkZXIoKSB7IHJldHVybiAqbV9tb2R1bGVMb2FkZXI7IH0KKwogICAgIC8v
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCiAgICAgRXZlbnRMb29wVGFza0dyb3VwJiBldmVudExv
b3AoKSBmaW5hbDsKICAgICBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IGZpbmFsOwpAQCAt
ODgsNiArOTEsNyBAQCBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMgUmVmQ291bgogICAgIHZvaWQgZGVyZWZFdmVu
dFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+IG1fc2NyaXB0OworICAgIHN0ZDo6dW5pcXVlX3B0
cjxTY3JpcHRNb2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9hZGVyOwogICAgIFdvcmtlck9yV29ya2xl
dFRocmVhZCogbV90aHJlYWQ7CiAgICAgUmVmUHRyPFdvcmtlckV2ZW50TG9vcD4gbV9ldmVudExv
b3A7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2tHcm91cD4gbV9kZWZhdWx0VGFz
a0dyb3VwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggY2Q0ZWMyNDY4MjUyNWFhYmM2NDJkODc3
YTBkYTAxMWViZGUxMTQzMS4uODdlNDA0ZTE0OWI3ZTE4NjAyNTMxYWUyOGRiZWRhNGY2ZWM4YzA2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zNSwxNSArMzUsMjMgQEAKICNpbmNsdWRlICJK
U0V4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIkpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNp
bmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIk1vZHVsZUZl
dGNoRmFpbHVyZUtpbmQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0
YS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVDbGllbnQuaCIKKyNpbmNsdWRlICJXb3JrZXJT
Y3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlZmVycmVkV29ya1RpbWVyLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXhj
ZXB0aW9uSGVscGVycy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dDQWN0aXZpdHlDYWxs
YmFjay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNNb2R1bGVSZWNvcmQuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU05hdGl2ZVN0
ZEZ1bmN0aW9uLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRjaFBhcmFt
ZXRlcnMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1NjcmlwdEZldGNoZXIuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmdJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTIyOCw2ICsyMzYsMjQxIEBAIHZvaWQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kCiAgICAg
fQogfQogCitzdGF0aWMgSWRlbnRpZmllciBqc1ZhbHVlVG9Nb2R1bGVLZXkoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVl
LmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tVWlkKGpzQ2FzdDxT
eW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAgIEFTU0VSVCh2YWx1ZS5pc1N0cmlu
ZygpKTsKKyAgICByZXR1cm4gYXNTdHJpbmcodmFsdWUpLT50b0lkZW50aWZpZXIobGV4aWNhbEds
b2JhbE9iamVjdCk7Cit9CisKK0pTQzo6SlNWYWx1ZSBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShKU0M6OkpTTW9kdWxlUmVjb3JkJiBtb2R1bGVSZWNvcmQp
Cit7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgp
OworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2Nr
IHsgdm0gfTsKKyAgICByZXR1cm4gbW9kdWxlUmVjb3JkLmV2YWx1YXRlKCZnbG9iYWxPYmplY3Qp
OworfQorCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KFdvcmtlclNjcmlwdEZldGNoZXImIHNjcmlw
dEZldGNoZXIsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgaWYg
KGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAgIHJldHVybiBNZXNzYWdlUXVldWVUZXJt
aW5hdGVkOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxP
YmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworCisgICAgYXV0byBw
cm90ZWN0b3IgPSBtYWtlUmVmKHNjcmlwdEZldGNoZXIpOworICAgIHsKKyAgICAgICAgYXV0byYg
cHJvbWlzZSA9IEpTRXhlY1N0YXRlOjpsb2FkTW9kdWxlKGdsb2JhbE9iamVjdCwgc291cmNlQ29k
ZS5qc1NvdXJjZUNvZGUoKSwgSlNDOjpKU1NjcmlwdEZldGNoZXI6OmNyZWF0ZSh2bSwgeyAmc2Ny
aXB0RmV0Y2hlciB9KSk7CisKKyAgICAgICAgYXV0byYgZnVsZmlsbEhhbmRsZXIgPSAqSlNOYXRp
dmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCAxLCBTdHJpbmcoKSwgW3By
b3RlY3Rvcl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpIC0+IEpTQzo6RW5jb2RlZEpTVmFsdWUgeworICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworICAg
ICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgICAgICAg
ICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CisgICAgICAgICAgICBwcm90ZWN0b3ItPm5vdGlmeUxvYWRDb21wbGV0
ZWQoKm1vZHVsZUtleS5pbXBsKCkpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0SGFu
ZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEs
IFN0cmluZygpLCBbcHJvdGVjdG9yXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkgeworICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworICAgICAgICAgICAg
SlNWYWx1ZSBlcnJvclZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICAgICAgICAg
IGlmIChlcnJvclZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvKiBvYmpl
Y3QgPSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChKU1Zh
bHVlIGZhaWx1cmVLaW5kVmFsdWUgPSBvYmplY3QtPmdldERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEmPigqdm0uY2xpZW50RGF0YSkuYnVpbHRpbk5hbWVzKCkuZmFpbHVyZUtp
bmRQcml2YXRlTmFtZSgpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGhvc3Qg
cHJvcGFnYXRlZCBlcnJvciBpbiB0aGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZS4KKyAgICAgICAg
ICAgICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxNb2R1bGVGZXRjaEZhaWx1cmVLaW5kPihm
YWlsdXJlS2luZFZhbHVlLmFzSW50MzIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBN
b2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkOgorICAgICAgICAgICAgICAgICAgICAg
ICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2Fj
aGVkU2NyaXB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6bnVsbG9wdAorICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5j
ZWxlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3Rvci0+bm90aWZ5TG9hZFdhc0Nh
bmNlbGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgcHJv
dGVjdG9yLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAg
ICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAg
ICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVzc2FnZSB7CisgICAgICAgICAgICAg
ICAgICAgIE1lc3NhZ2VTb3VyY2U6OkpTLAorICAgICAgICAgICAgICAgICAgICBNZXNzYWdlTGV2
ZWw6OkVycm9yLAorICAgICAgICAgICAgICAgICAgICByZXRyaWV2ZUVycm9yTWVzc2FnZSgqZ2xv
YmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1ZSwgc2NvcGUpLAorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcHJvbWlzZS50aGVuKCZnbG9iYWxPYmpl
Y3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRsZXIpOworICAgIH0KKyAgICBtX2dsb2Jh
bFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworCisgICAg
Ly8gRHJpdmUgUnVuTG9vcCB1bnRpbCB3ZSBnZXQgZWl0aGVyIG9mICJXb3JrZXIgaXMgdGVybWlu
YXRlZCIsICJMb2FkaW5nIGlzIGRvbmUiLCBvciAiTG9hZGluZyBpcyBmYWlsZWQiLgorICAgIFdv
cmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSBtX2dsb2JhbFNjb3BlLT53b3JrZXJPcldvcmtsZXRUaHJl
YWQoKS0+cnVuTG9vcCgpOworCisgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcmVjZWl2ZSBtZXNz
YWdlcyB0aGF0IGFyZSBub3QgcmVsYXRlZCB0byBhc3luY2hyb25vdXMgcmVzb3VyY2UgbG9hZGlu
Zy4KKyAgICAvLyBPdGhlcndpc2UsIGEgd29ya2VyIGRpc2NhcmRzIHNvbWUgbWVzc2FnZXMgZnJv
bSB0aGUgbWFpbiB0aHJlYWQgaGVyZSBpbiBhIHJhY3kgd2F5LgorICAgIC8vIEZvciBleGFtcGxl
LCB0aGUgbWFpbiB0aHJlYWQgY2FuIHBvc3RNZXNzYWdlIGp1c3QgYWZ0ZXIgY3JlYXRpbmcgYSBX
b3JrZXIuIEluIHRoYXQgY2FzZSwgcG9zdE1lc3NhZ2UncworICAgIC8vIHRhc2sgaXMgcXVldWVk
IGluIFdvcmtlclJ1bkxvb3AgYmVmb3JlIHN0YXJ0IHJ1bm5pbmcgbW9kdWxlIHNjcmlwdHMuIFRo
aXMgdGFzayBzaG91bGQgbm90IGJlIGRpc2NhcmRlZAorICAgIC8vIGluIHRoZSBmb2xsb3dpbmcg
ZHJpdmluZyBvZiB0aGUgUnVuTG9vcCB3aGljaCBtYWlubHkgYXR0ZW1wdCB0byBjb2xsZWN0IGlu
aXRpYWwgbG9hZCBvZiBtb2R1bGUgc2NyaXB0cy4KKyAgICBTdHJpbmcgdGFza01vZGUgPSAibG9h
ZE1vZHVsZXNJbldvcmtlck9yV29ya2xldE1vZGUiX3M7CisgICAgTWVzc2FnZVF1ZXVlV2FpdFJl
c3VsdCByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQ7CisgICAgd2hpbGUgKCgh
ZmV0Y2hlclJlZi0+aXNMb2FkZWQoKSAmJiAhZmV0Y2hlclJlZi0+d2FzQ2FuY2VsZWQoKSkgJiYg
cmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpIHsKKyAgICAgICAgcmVzdWx0ID0gcnVu
TG9vcC5ydW5Jbk1vZGUobV9nbG9iYWxTY29wZSwgdGFza01vZGUpOworICAgICAgICBpZiAocmVz
dWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpCisgICAgICAgICAgICBtX2dsb2JhbFNjb3Bl
LT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworICAgIH0KKworICAg
IC8vIEZJWE1FOiBDdXJyZW50bHkgd2UgYXJlIG5vdCBvZmZlcmluZyBjYW5jZWxsaW5nLgorICAg
IC8vIGlmICghbG9hZGVyLT5kb25lKCkgJiYgcmVzdWx0ID09IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0
ZWQpCisgICAgLy8gICAgIGxvYWRlci0+Y2FuY2VsKCk7CisKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCit2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0
ZU1vZHVsZShXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBjb25zdCBTY3JpcHRT
b3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSkK
K3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9n
bG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7
CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworCisgICAgTmFrZWRQdHI8SlNDOjpFeGNl
cHRpb24+IHJldHVybmVkRXhjZXB0aW9uOworICAgIEpTRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVh
dGVNb2R1bGUoZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBzY3JpcHRGZXRj
aGVyLm1vZHVsZUtleSgpKSwganNVbmRlZmluZWQoKSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAg
IGlmICgocmV0dXJuZWRFeGNlcHRpb24gJiYgaXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9u
KHZtLCByZXR1cm5lZEV4Y2VwdGlvbikpIHx8IGlzVGVybWluYXRpbmdFeGVjdXRpb24oKSkgewor
ICAgICAgICBmb3JiaWRFeGVjdXRpb24oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGlmIChyZXR1cm5lZEV4Y2VwdGlvbikgeworICAgICAgICBpZiAobV9nbG9iYWxTY29wZS0+Y2Fu
SW5jbHVkZUVycm9yRGV0YWlscyhzb3VyY2VDb2RlLmNhY2hlZFNjcmlwdCgpLCBzb3VyY2VDb2Rl
LnVybCgpLnN0cmluZygpKSkgeworICAgICAgICAgICAgLy8gRklYTUU6IEl0J3Mgbm90IGdyZWF0
IHRoYXQgdGhpcyBjYW4gcnVuIGFyYml0cmFyeSBjb2RlIHRvIHN0cmluZy1pZnkgdGhlIHZhbHVl
IG9mIHRoZSBleGNlcHRpb24uCisgICAgICAgICAgICAvLyBEbyB3ZSBuZWVkIHRvIGRvIGFueXRo
aW5nIHRvIGhhbmRsZSB0aGF0IHByb3Blcmx5LCBpZiBpdCwgc2F5LCByYWlzZXMgYW5vdGhlciBl
eGNlcHRpb24/CisgICAgICAgICAgICBpZiAocmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlKQorICAg
ICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSByZXR1cm5lZEV4Y2VwdGlv
bi0+dmFsdWUoKS50b1dURlN0cmluZygmZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgZGV0YWlsZWQgZXJyb3Igd2l0aCBhIGdlbmVy
aWMgZXJyb3IuCisgICAgICAgICAgICBTdHJpbmcgZ2VuZXJpY0Vycm9yTWVzc2FnZSB7ICJTY3Jp
cHQgZXJyb3IuIl9zIH07CisgICAgICAgICAgICBpZiAocmV0dXJuZWRFeGNlcHRpb25NZXNzYWdl
KQorICAgICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBnZW5lcmljRXJy
b3JNZXNzYWdlOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIFdvcmtlck9yV29ya2xldFNj
cmlwdENvbnRyb2xsZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIG1vZHVsZVVS
TCwgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFscywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGlmIChpc0V4ZWN1dGlvbkZvcmJpZGRlbigpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZ2xvYmFsT2JqZWN0
ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKworICAgIGF1dG8gc2NyaXB0
RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZldGNoZXI6OmNyZWF0ZShjcmVkZW50aWFscyk7CisgICAg
eworICAgICAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVjU3RhdGU6OmxvYWRNb2R1bGUoZ2xvYmFs
T2JqZWN0LCBtb2R1bGVVUkwuc3RyaW5nKCksIGpzVW5kZWZpbmVkKCksIEpTQzo6SlNTY3JpcHRG
ZXRjaGVyOjpjcmVhdGUodm0sIHsgc2NyaXB0RmV0Y2hlci5wdHIoKSB9KSk7CisKKyAgICAgICAg
YXV0byB0YXNrID0gY3JlYXRlU2hhcmVkVGFzazx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+
KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShPcHRpb25h
bDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGF1
dG8mIGZ1bGZpbGxIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZSh2bSwgJmds
b2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFt0YXNrLCBzY3JpcHRGZXRjaGVyXShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgLT4gSlNDOjpFbmNvZGVk
SlNWYWx1ZSB7CisgICAgICAgICAgICAvLyB0YXNrLT5ydW4oV1RGOjpudWxsb3B0KTsKKyAgICAg
ICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICAgICAgICAgIEpTTG9ja0hv
bGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKworICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVl
VG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKKyAgICAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgICAgICBzY3Jp
cHRGZXRjaGVyLT5ub3RpZnlMb2FkQ29tcGxldGVkKCptb2R1bGVLZXkuaW1wbCgpKTsKKworICAg
ICAgICAgICAgYXV0byogY29udGV4dCA9IGRvd25jYXN0PFdvcmtlck9yV29ya2xldEdsb2JhbFNj
b3BlPihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOworICAgICAgICAgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LT5z
Y3JpcHQoKSkgeworICAgICAgICAgICAgICAgIHRhc2stPnJ1bihXVEY6Om51bGxvcHQpOworICAg
ICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiByZXR1cm5l
ZEV4Y2VwdGlvbjsKKyAgICAgICAgICAgIEpTRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1
bGUoKmdsb2JhbE9iamVjdCwgbW9kdWxlS2V5LCBqc1VuZGVmaW5lZCgpLCByZXR1cm5lZEV4Y2Vw
dGlvbik7CisgICAgICAgICAgICBpZiAoKHJldHVybmVkRXhjZXB0aW9uICYmIGlzVGVybWluYXRl
ZEV4ZWN1dGlvbkV4Y2VwdGlvbih2bSwgcmV0dXJuZWRFeGNlcHRpb24pKSB8fCBjb250ZXh0LT5z
Y3JpcHQoKS0+aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAgICAgICAgICAgICAgaWYg
KGNvbnRleHQtPnNjcmlwdCgpKQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5zY3JpcHQo
KS0+Zm9yYmlkRXhlY3V0aW9uKCk7CisgICAgICAgICAgICAgICAgdGFzay0+cnVuKFdURjo6bnVs
bG9wdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJldHVybmVkRXhjZXB0aW9u
KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgICAgICAgICAgICAgaWYg
KGNvbnRleHQtPmNhbkluY2x1ZGVFcnJvckRldGFpbHMobnVsbHB0ciwgbW9kdWxlS2V5LnN0cmlu
ZygpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhh
dCB0aGlzIGNhbiBydW4gYXJiaXRyYXJ5IGNvZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2Yg
dGhlIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgLy8gRG8gd2UgbmVlZCB0byBkbyBh
bnl0aGluZyB0byBoYW5kbGUgdGhhdCBwcm9wZXJseSwgaWYgaXQsIHNheSwgcmFpc2VzIGFub3Ro
ZXIgZXhjZXB0aW9uPworICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gcmV0dXJuZWRFeGNl
cHRpb24tPnZhbHVlKCkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBPdmVyd3JpdGUgdGhlIGRldGFpbGVk
IGVycm9yIHdpdGggYSBnZW5lcmljIGVycm9yLgorICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
ID0gIlNjcmlwdCBlcnJvci4iX3M7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihtZXNzYWdlLCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsg
fSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRhc2stPnJ1bihXVEY6Om51bGxvcHQp
OworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0SGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1
bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbdGFza10oSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIHsKKyAgICAg
ICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICAgICAgICAgIEpTTG9ja0hv
bGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIEpTVmFsdWUgZXJyb3JWYWx1ZSA9IGNhbGxG
cmFtZS0+YXJndW1lbnQoMCk7CisgICAgICAgICAgICBpZiAoZXJyb3JWYWx1ZS5pc09iamVjdCgp
KSB7CisgICAgICAgICAgICAgICAgYXV0byogb2JqZWN0ID0gSlNDOjphc09iamVjdChlcnJvclZh
bHVlKTsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT5nZXREaXJlY3Qodm0sIHN0YXRpY19j
YXN0PEpTVk1DbGllbnREYXRhJj4oKnZtLmNsaWVudERhdGEpLmJ1aWx0aW5OYW1lcygpLmZhaWx1
cmVLaW5kUHJpdmF0ZU5hbWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGFzay0+cnVuKEV4
Y2VwdGlvbiB7IEFib3J0RXJyb3IgfSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEVycm9ySW5zdGFuY2U+KHZtKSkgeworICAgICAg
ICAgICAgICAgICAgICBhdXRvKiBlcnJvciA9IGpzQ2FzdDxFcnJvckluc3RhbmNlKj4ob2JqZWN0
KTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChlcnJvci0+ZXJyb3JUeXBlKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBFcnJvclR5cGU6OlN5bnRheEVycm9yOiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZt
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gcmV0cmlldmVFcnJv
ck1lc3NhZ2VXaXRob3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1ZSwgY2F0Y2hT
Y29wZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXNrLT5ydW4oRXhjZXB0aW9uIHsgU3lu
dGF4RXJyb3IsIG1lc3NhZ2UgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7
CisgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91
dE5hbWUoKmdsb2JhbE9iamVjdCwgdm0sIGVycm9yVmFsdWUsIGNhdGNoU2NvcGUpOworICAgICAg
ICAgICAgdGFzay0+cnVuKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsIG1lc3NhZ2UgfSk7CisgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICB9
KTsKKworICAgICAgICBwcm9taXNlLnRoZW4oJmdsb2JhbE9iamVjdCwgJmZ1bGZpbGxIYW5kbGVy
LCAmcmVqZWN0SGFuZGxlcik7CisgICAgfQorICAgIG1fZ2xvYmFsU2NvcGUtPmV2ZW50TG9vcCgp
LnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIEpT
R2xvYmFsU2NvcGVQcm90b3R5cGUsIHR5cGVuYW1lIEpTR2xvYmFsU2NvcGUsIHR5cGVuYW1lIEds
b2JhbFNjb3BlPgogdm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2Ny
aXB0V2l0aFN1YmNsYXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggYzQ5MzAxYWVkM2RkMDg5
ZGE3OTczMjc2MGNhZjJmN2I2NGRiMTFiNi4uOWYwMjNhNjJmODE0M2U3ZDk4MmZiZjdmNThlZWVh
ZGNhM2E1YjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+
CiAjaW5jbHVkZSA8d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDQsOSAr
NDUsMTEgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3Q7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgTG9hZGFibGVNb2R1bGVTY3JpcHQ7CiBjbGFz
cyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgV29ya2VyQ29uc29sZUNsaWVudDsKIGNsYXNzIFdv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlOworY2xhc3MgV29ya2VyU2NyaXB0RmV0Y2hlcjsKIAog
Y2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcik7CkBAIC05NCw2ICs5Nywx
MyBAQCBjbGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICB2b2lkIGV2
YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9u
TWVzc2FnZSA9IG51bGxwdHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNl
Q29kZSYsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0cmlu
ZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKKyAgICBKU0M6OkpTVmFs
dWUgZXZhbHVhdGVNb2R1bGUoSlNDOjpKU01vZHVsZVJlY29yZCYpOworCisgICAgdm9pZCBsaW5r
QW5kRXZhbHVhdGVNb2R1bGUoV29ya2VyU2NyaXB0RmV0Y2hlciYsIGNvbnN0IFNjcmlwdFNvdXJj
ZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOworICAg
IE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgbG9hZE1vZHVsZVN5bmNocm9ub3VzbHkoV29ya2VyU2Ny
aXB0RmV0Y2hlciYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKworICAgIHZvaWQgbG9hZEFu
ZEV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgbW9kdWxlVVJMLCBGZXRjaE9wdGlvbnM6OkNyZWRl
bnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYp
OworCiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGdsb2JhbFNj
b3BlKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxTY29wZTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggM2E0ZGFlZmMzOTAyYmRiMmVh
ODRmYzU4ZDdlNDJmODNlNWYwN2UyZi4uOWYzMWQwZGZkNTlhODcwN2ZkNGViNTljYzNjOTJhMDY2
NDgxZGUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVy
LmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIE9wdGlvbmFsPEV4Y2VwdGlvbj4gV29ya2VyU2NyaXB0
TG9hZGVyOjpsb2FkU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0CiAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3lu
Y2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3JpcHRSZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBmZXRjaE9w
dGlvbnMsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRlbnRTZWN1cml0eVBv
bGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUgc2VydmljZVdvcmtlck1vZGUsIFdv
cmtlclNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50KQordm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6
OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3JpcHRSZXF1ZXN0LCBGZXRjaE9wdGlvbnMm
JiBmZXRjaE9wdGlvbnMsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUgc2VydmljZVdvcmtl
ck1vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBTdHJpbmcmJiB0YXNrTW9k
ZSkKIHsKICAgICBtX2NsaWVudCA9ICZjbGllbnQ7CiAgICAgbV91cmwgPSBzY3JpcHRSZXF1ZXN0
LnVybCgpOwpAQCAtMTIzLDggKzEyMyw2IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpsb2Fk
QXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0CiAgICAg
QVNTRVJUKGZldGNoT3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdp
biB8fCAoZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uICE9IEZldGNoT3B0aW9uczo6RGVzdGluYXRp
b246OlNlcnZpY2V3b3JrZXIgJiYgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uICE9IEZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246OldvcmtlcikpOwogCiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlv
bnMgb3B0aW9ucyB7IFdURk1vdmUoZmV0Y2hPcHRpb25zKSB9OwotICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgYWRkIGFuIG9wdGlvbiB0byBzZXQgY3JlZGVudGlhbCBtb2RlLgotICAgIG9wdGlvbnMu
Y3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luOwogICAg
IG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tQb2xpY3k6OlNlbmRDYWxs
YmFja3M7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IGNv
bnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OwogICAgIGlmIChmZXRjaE9wdGlvbnMuZGVz
dGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2VydmljZXdvcmtlcikKQEAg
LTE0Myw3ICsxNDEsNyBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91
c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dAogCiAgICAgLy8gRHVyaW5n
IGNyZWF0ZSwgY2FsbGJhY2tzIG1heSBoYXBwZW4gd2hpY2ggcmVtb3ZlIHRoZSBsYXN0IHJlZmVy
ZW5jZSB0byB0aGlzIG9iamVjdC4KICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBwcm90ZWN0
ZWRUaGlzKCp0aGlzKTsKLSAgICBtX3RocmVhZGFibGVMb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVy
OjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgKnRoaXMsIFdURk1vdmUoKnJlcXVlc3Qp
LCBvcHRpb25zKTsKKyAgICBtX3RocmVhZGFibGVMb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpj
cmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgKnRoaXMsIFdURk1vdmUoKnJlcXVlc3QpLCBv
cHRpb25zLCB7IH0sIFdURk1vdmUodGFza01vZGUpKTsKIH0KIAogY29uc3QgVVJMJiBXb3JrZXJT
Y3JpcHRMb2FkZXI6OnJlc3BvbnNlVVJMKCkgY29uc3QKQEAgLTE5MCw2ICsxODgsOCBAQCB2b2lk
IFdvcmtlclNjcmlwdExvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgUmVzbwogICAgIG1fY2VydGlmaWNhdGVJbmZvID0gcmVzcG9uc2UuY2Vy
dGlmaWNhdGVJbmZvKCkgPyAqcmVzcG9uc2UuY2VydGlmaWNhdGVJbmZvKCkgOiBDZXJ0aWZpY2F0
ZUluZm8oKTsKICAgICBtX3Jlc3BvbnNlTUlNRVR5cGUgPSByZXNwb25zZS5taW1lVHlwZSgpOwog
ICAgIG1fcmVzcG9uc2VFbmNvZGluZyA9IHJlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKTsKKyAg
ICBtX3Jlc3BvbnNlU291cmNlID0gcmVzcG9uc2Uuc291cmNlKCk7CisgICAgbV9pc1JlZGlyZWN0
ZWQgPSByZXNwb25zZS5pc1JlZGlyZWN0ZWQoKTsKICAgICBtX2NvbnRlbnRTZWN1cml0eVBvbGlj
eSA9IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyB7IHJlc3BvbnNlIH07CiAg
ICAgbV9yZWZlcnJlclBvbGljeSA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVy
TmFtZTo6UmVmZXJyZXJQb2xpY3kpOwogICAgIGlmIChtX2NsaWVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCmluZGV4IDdmZGQwYjNmNmEwMWMyZGI1Nzcy
NGE5MGIzYmI5ODQwZjFlNjhlNWYuLmNmYTMxYTM1MzI1OWFlZWQxOThmOTM5MWZmYzE1MTFiNDA1
MGI4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9h
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZldGNoT3B0aW9ucy5oIgogI2luY2x1ZGUgIlJl
c291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJS
ZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1
ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlIDxtZW1vcnk+CkBAIC00Myw3
ICs0NCw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV4Y2VwdGlvbjsKLWNsYXNz
IFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3Mg
VGV4dFJlc291cmNlRGVjb2RlcjsKIGNsYXNzIFdvcmtlclNjcmlwdExvYWRlckNsaWVudDsKQEAg
LTU4LDcgKzU4LDcgQEAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVibGljIFJlZkNvdW50
ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGEKICAgICB9CiAKICAgICBPcHRp
b25hbDxFeGNlcHRpb24+IGxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIEZldGNoT3B0aW9uczo6Q2FjaGUsIENv
bnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcklk
ZW50aWZpZXIpOwotICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYsIENvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUsIFdvcmtlclNjcmlwdExvYWRl
ckNsaWVudCYpOworICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYsIENvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUsIFdvcmtlclNjcmlwdExvYWRl
ckNsaWVudCYsIFN0cmluZyYmIHRhc2tNb2RlKTsKIAogICAgIHZvaWQgbm90aWZ5RXJyb3IoKTsK
IApAQCAtNjcsNiArNjcsOCBAQCBjbGFzcyBXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxXb3JrZXJTY3JpcHRMb2FkZXI+LCBwdWJsaWMgVGhyZWFkYQogICAgIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXJQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3JlZmVycmVyUG9saWN5OyB9
CiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAgIGNvbnN0
IFVSTCYgcmVzcG9uc2VVUkwoKSBjb25zdDsKKyAgICBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2Ug
cmVzcG9uc2VTb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlU291cmNlOyB9CisgICAg
Ym9vbCBpc1JlZGlyZWN0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUmVkaXJlY3RlZDsgfQogICAg
IGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKCkgY29uc3QgeyByZXR1cm4g
bV9jZXJ0aWZpY2F0ZUluZm87IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc3BvbnNlTUlNRVR5cGUo
KSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlTUlNRVR5cGU7IH0KICAgICBib29sIGZhaWxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fZmFpbGVkOyB9CkBAIC0xMDcsNiArMTA5LDggQEAgY2xhc3MgV29y
a2VyU2NyaXB0TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwg
cHVibGljIFRocmVhZGEKICAgICB1bnNpZ25lZCBsb25nIG1faWRlbnRpZmllciB7IDAgfTsKICAg
ICBib29sIG1fZmFpbGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZmluaXNoaW5nIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faXNSZWRpcmVjdGVkIHsgZmFsc2UgfTsKKyAgICBSZXNvdXJjZVJlc3Bv
bnNlOjpTb3VyY2UgbV9yZXNwb25zZVNvdXJjZSB7IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6
VW5rbm93biB9OwogICAgIFJlc291cmNlRXJyb3IgbV9lcnJvcjsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA3Mjc5MGEwMzMyMjYxOWU2ZWU3ZTYxNmE4
YmRlMThiZDU1MmE1NzgzLi5mMmE3NjU5ZmM1NjFlYWQxNmIxMmEzNDllZDFlZjA3ZTBkYTA3NjJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0zMiw2ICszMiw4
IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRl
ci5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyU2Ny
aXB0RmV0Y2hlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NTUsNiArNTcsOCBAQCBXb3JrZXJQYXJhbWV0ZXJzIFdvcmtlclBhcmFtZXRlcnM6Omlzb2xhdGVk
Q29weSgpIGNvbnN0CiAgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwKICAgICAgICAgdGltZU9yaWdpbiwKICAgICAgICAgcmVmZXJyZXJQb2xpY3ksCisg
ICAgICAgIHdvcmtlclR5cGUsCisgICAgICAgIGNyZWRlbnRpYWxzLAogICAgICAgICBzZXR0aW5n
c1ZhbHVlcy5pc29sYXRlZENvcHkoKQogICAgIH07CiB9CkBAIC0xMjMsOSArMTI3LDMzIEBAIGJv
b2wgV29ya2VyVGhyZWFkOjpzaG91bGRXYWl0Rm9yV2ViSW5zcGVjdG9yT25TdGFydHVwKCkgY29u
c3QKIAogdm9pZCBXb3JrZXJUaHJlYWQ6OmV2YWx1YXRlU2NyaXB0SWZOZWNlc3NhcnkoU3RyaW5n
JiBleGNlcHRpb25NZXNzYWdlKQogewotICAgIGdsb2JhbFNjb3BlKCktPnNjcmlwdCgpLT5ldmFs
dWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0
YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25NZXNzYWdlKTsKLQotICAg
IGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAgIC8vIFdlIGFyZSBjdXJyZW50bHkgaG9s
ZGluZyBvbmx5IHRoZSBpbml0aWFsIHNjcmlwdCBjb2RlLiBJZiB0aGUgV29ya2VyVHlwZSBpcyBN
b2R1bGUsIHdlIHNob3VsZCBmZXRjaCB0aGUgZW50aXJlIGdyYXBoIGJlZm9yZSBleGVjdXRpbmcg
dGhlIHJlc3Qgb2YgdGhpcy4KKyAgICAvLyBXZSBpbnZva2UgbW9kdWxlIGxvYWRlciBhcyBpZiB3
ZSBhcmUgZXhlY3V0aW5nIGlubGluZSBtb2R1bGUgc2NyaXB0IHRhZyBpbiBEb2N1bWVudC4KKwor
ICAgIGlmIChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMud29ya2VyVHlwZSA9PSBXb3JrZXJUeXBlOjpD
bGFzc2ljKSB7CisgICAgICAgIGdsb2JhbFNjb3BlKCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3Jp
cHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRh
LT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25NZXNzYWdlKTsKKyAgICAgICAgZmluaXNo
ZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRklYTUUgY3Jv
c3NPcmlnaW4gbW9kZSBzaG91bGQgYmUgY29udmVydGVkLgorICAgICAgICAvLyBGSVhNRSBmaXgg
aW5pdGlhdG9yIG5hbWUuCisgICAgICAgIC8vIEZJWE1FIHBhc3MgVVJMIHRvIG1vZHVsZSBsb2Fk
ZXIuCisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5z
b3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNjcmlwdFVSTCksIHsgfSwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSk7CisgICAgICAgIGF1dG8gc2NyaXB0
RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZldGNoZXI6OmNyZWF0ZShnbG9iYWxTY29wZSgpLT5jcmVk
ZW50aWFscygpKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQgPSBnbG9i
YWxTY29wZSgpLT5zY3JpcHQoKS0+bG9hZE1vZHVsZVN5bmNocm9ub3VzbHkoc2NyaXB0RmV0Y2hl
ci5nZXQoKSwgc291cmNlQ29kZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gTWVzc2FnZVF1ZXVl
VGVybWluYXRlZCkgeworICAgICAgICAgICAgaWYgKE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpF
cnJvcj4gZXJyb3IgPSBzY3JpcHRGZXRjaGVyLT5lcnJvcigpKSB7CisgICAgICAgICAgICAgICAg
aWYgKE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVzc2FnZT4gbWVzc2FnZSA9IGVy
cm9yLT5jb25zb2xlTWVzc2FnZSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uTWVzc2Fn
ZSA9IG1lc3NhZ2UtPm1lc3NhZ2U7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICBleGNlcHRpb25NZXNzYWdlID0gIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFp
bGVkLiJfczsKKyAgICAgICAgICAgICAgICBnbG9iYWxTY29wZSgpLT5yZXBvcnRFeGNlcHRpb24o
ZXhjZXB0aW9uTWVzc2FnZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0pOworICAgICAgICAgICAg
fSBlbHNlIGlmICghc2NyaXB0RmV0Y2hlci0+d2FzQ2FuY2VsZWQoKSkgeworICAgICAgICAgICAg
ICAgIC8vIEV2YWx1YXRlLgorICAgICAgICAgICAgICAgIGdsb2JhbFNjb3BlKCktPnNjcmlwdCgp
LT5saW5rQW5kRXZhbHVhdGVNb2R1bGUoc2NyaXB0RmV0Y2hlci5nZXQoKSwgc291cmNlQ29kZSwg
JmV4Y2VwdGlvbk1lc3NhZ2UpOworICAgICAgICAgICAgICAgIGZpbmlzaGVkRXZhbHVhdGluZ1Nj
cmlwdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogCiAgICAgLy8gRnJlZSB0
aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNlIGl0cyBtZW1iZXIgdmFyaWFibGUgZGVyZWYncyBoYXBw
ZW4gb24gdGhlIHdvcmtlcidzIHRocmVhZCAoc2luY2UKICAgICAvLyBhbGwgcmVmL2RlcmVmcyBv
ZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBwZW5pbmcgb24gdGhlIHRocmVhZCBhdCB0aGlzIHBvaW50
KS4gTm90ZSB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAppbmRleCA4ODkw
NzkwOGU3YTliODA5ZThmMmE0ZTQ3M2Q3NTJkMTFkMjkzN2MwLi45NTEyZWZkYjE4ZjMyYTUwZWNi
N2ZiNTY5NTlkNjFlODg3MmZhMWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmgKQEAgLTI2LDcgKzI2LDEwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENy
ZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0VGhyZWFkLmgiCisjaW5jbHVk
ZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL1VSTC5oPgpAQCAtNjMsNiArNjYsOCBAQCBzdHJ1Y3QgV29ya2VyUGFyYW1ldGVycyB7
CiAgICAgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAg
ICAgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luOwogICAgIFJlZmVycmVyUG9saWN5IHJlZmVycmVy
UG9saWN5OworICAgIFdvcmtlclR5cGUgd29ya2VyVHlwZTsKKyAgICBGZXRjaFJlcXVlc3RDcmVk
ZW50aWFscyBjcmVkZW50aWFsczsKICAgICBTZXR0aW5nczo6VmFsdWVzIHNldHRpbmdzVmFsdWVz
OwogCiAgICAgV29ya2VyUGFyYW1ldGVycyBpc29sYXRlZENvcHkoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUeXBlLmgKaW5kZXggMGIwZWQ4NjBkOWM3MTQyMzhhMmE1YmI5ZmRmNDM4
NDAyZDE2ZWJmMC4uMWMxYmI5NDQ4NjdhZGY0ZWQ1NzhhMjgxNGZhMzMyMzI2YWVkOGE1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFdvcmtlclR5cGUgeworZW51bSBjbGFzcyBXb3Jr
ZXJUeXBlIDogdWludDhfdCB7CiAgICAgQ2xhc3NpYywKICAgICBNb2R1bGUsCiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmgKaW5kZXggZWJiZTk1ZTg5MjRjOGYxZDczNzUyNWRlYTE2MzBiMWZhZDU2ZmIyNy4uNGM3
ZGRmNGE0YzEzMWUwZGNkNmJhMDk1MDlhYjJkOTc1NzVmMzBjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCkBA
IC00Nyw3ICs0Nyw3IEBAIGNsYXNzIE5hdmlnYXRvckJhc2U7CiBjbGFzcyBTZXJ2aWNlV29ya2Vy
OwogCiBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSA6IHVpbnQ4X3Q7Ci1l
bnVtIGNsYXNzIFdvcmtlclR5cGU7CitlbnVtIGNsYXNzIFdvcmtlclR5cGUgOiB1aW50OF90Owog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlUHJveHk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9i
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNw
cAppbmRleCBlYzM5YzBmODQ5YTU0ZTFiNmQwYmVlMzRhOGQ3ZDE5Y2JhNDVlMjg4Li5mOTUxMGNi
ZjZmZGY3MDQ2ZjdkMWI5MjIzNjkxNzRkMDFmYTBiZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCkBAIC0xMTAsNyArMTEw
LDggQEAgdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpmZXRjaFNjcmlwdFdpdGhDb250ZXh0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEYKICAgICBvcHRpb25zLmNhY2hlID0gY2FjaGVQ
b2xpY3k7CiAgICAgb3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkVy
cm9yOwogICAgIG9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9u
OjpTZXJ2aWNld29ya2VyOwotICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHko
Y29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgQ29udGVudFNlY3Vy
aXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSwgU2VydmljZVdvcmtlcnNNb2RlOjpO
b25lLCAqdGhpcyk7CisgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHM6OlNhbWVPcmlnaW47CisgICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25v
dXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpLCBDb250ZW50
U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlLCBTZXJ2aWNlV29ya2Vyc01v
ZGU6Ok5vbmUsICp0aGlzLCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIAogUmVz
b3VyY2VFcnJvciBTZXJ2aWNlV29ya2VySm9iOjp2YWxpZGF0ZVNlcnZpY2VXb3JrZXJSZXNwb25z
ZShjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oCmluZGV4IDlk
NTAwZjg1YWNiMTg4NDFjYzU1YmVhODIxMWRiMTRmYWRjOTc0NzUuLjJlMzU1N2ZhN2RmNjdmMWJm
OThjN2I3YTVkZTRiMGE1YTdiY2NjZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9u
cy5oCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3Mg
U2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIDogdWludDhfdDsKLWVudW0gY2xhc3MgV29ya2Vy
VHlwZTsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucyB7CiAgICAgU3RyaW5nIHNjb3BlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmNwcAppbmRleCBjOGE3YTk5NzJmOWNjOGMxNmE3OTY3NTExNTUyZjU0OTNh
Njg2Zjk4Li4zM2NhMGVjMjNiNThhNTUxMTg3Njg0NmJhMDcxODM1MzJiNWM0N2Q1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtNzMsOCArNzMsOSBAQCBjbGFzcyBEdW1teVNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eSA6IHB1YmxpYyBXb3JrZXJPYmplY3RQcm94eSB7CiAvLyBGSVhN
RTogVXNlIGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkKIC8vIEZJWE1FOiBVc2UgdmFsaWQgcnVu
dGltZSBmbGFncwogCisvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyVHlwZSBhbmQgQ3JlZGVu
dGFpbHMgZm9yIG1vZHVsZSBzZXJ2aWNlIHdvcmtlcnMuCiBTZXJ2aWNlV29ya2VyVGhyZWFkOjpT
ZXJ2aWNlV29ya2VyVGhyZWFkKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwg
U3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0aW5nc1ZhbHVl
cywgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBXb3JrZXJEZWJ1Z2dlclByb3h5JiBk
ZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogaWRiQ29ubmVjdGlv
blByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIpCi0gICAgOiBXb3JrZXJUaHJl
YWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmcoKSwgInNlcnZpY2V3b3JrZXI6IiArIElu
c3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCksIFdURk1vdmUo
dXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmlzT25M
aW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5LCBmYWxzZSwgTW9ub3RvbmljVGltZTo6
bm93KCksIHsgfSwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0YS5zY3JpcHQsIGxvYWRlclByb3h5LCBk
ZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCksIFdv
cmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRhLnJlZ2lzdHJhdGlvbi5rZXkudG9wT3Jp
Z2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRiQ29ubmVjdGlvblByb3h5LCBzb2NrZXRQ
cm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQoKSkKKyAgICA6IFdv
cmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0eVN0cmluZygpLCAic2VydmljZXdvcmtl
cjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwg
V1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3ko
KS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBNb25vdG9u
aWNUaW1lOjpub3coKSwgeyB9LCBXb3JrZXJUeXBlOjpDbGFzc2ljLCBGZXRjaFJlcXVlc3RDcmVk
ZW50aWFsczo6U2FtZU9yaWdpbiwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0YS5zY3JpcHQsIGxvYWRl
clByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hh
cmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRhLnJlZ2lzdHJhdGlvbi5r
ZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRiQ29ubmVjdGlvblByb3h5
LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQoKSkK
ICAgICAsIG1fZGF0YShkYXRhLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV93b3JrZXJPYmplY3RQ
cm94eShEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCkpCiAgICAgLCBtX2hl
YXJ0QmVhdFRpbWVvdXQoU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlvbigp
LT5zaG91bGRVc2VTaG9ydFRpbWVvdXQoKSA/IGhlYXJ0QmVhdFRpbWVvdXRGb3JUZXN0IDogaGVh
cnRCZWF0VGltZW91dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCAyZGRkYjNiNWI0MWVkODdiZDYxNGEwYjk0
ZDA5Yjc2MTI5M2Q3NjA3Li4zNzhmYmE2NTdlOGJiZjQ4NDFlNTZjYmY4NjU2MWY4ZWNjMzExMDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlcldvcmtlci5oCkBAIC01MCw3ICs1MCw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllcjsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zOwog
c3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VySm9i
RGF0YUlkZW50aWZpZXI7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7CitlbnVtIGNsYXNzIFdvcmtl
clR5cGUgOiB1aW50OF90OwogCiBjbGFzcyBTV1NlcnZlcldvcmtlciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFNXU2VydmVyV29ya2VyPiB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCBkNzA0ODg2NjQ4YzBlZmFhNmI3ODA4NGM1
Mzg3MjAxY2EyYjFjNTQzLi4yYWUwZTMzODkxZGJjODlmMTQ2ODdkNDE0ODAyYWFhMTJkMGQ4NGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAK
QEAgLTE1OCw3MiArMTU4LDcgQEAgUmVmZXJyZXJQb2xpY3kgV29ya2xldEdsb2JhbFNjb3BlOjpy
ZWZlcnJlclBvbGljeSgpIGNvbnN0CiB2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJ
bnZva2VTY3JpcHQoY29uc3QgVVJMJiBtb2R1bGVVUkwsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxz
IGNyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
Ci0gICAgbV9zY3JpcHRGZXRjaEpvYnMuYXBwZW5kKHsgbW9kdWxlVVJMLCBjcmVkZW50aWFscywg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikgfSk7Ci0gICAgcHJvY2Vzc05leHRTY3JpcHRGZXRj
aEpvYklmTmVlZGVkKCk7Ci19Ci0KLXZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpwcm9jZXNzTmV4
dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQoKQotewotICAgIGlmIChtX3NjcmlwdEZldGNoSm9icy5p
c0VtcHR5KCkgfHwgbV9zY3JpcHRMb2FkZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8m
IHNjcmlwdEZldGNoSm9iID0gbV9zY3JpcHRGZXRjaEpvYnMuZmlyc3QoKTsKLQotICAgIFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0IHsgc2NyaXB0RmV0Y2hKb2IubW9kdWxlVVJMIH07Ci0KLSAgICBG
ZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwotICAgIGZldGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hP
cHRpb25zOjpNb2RlOjpDb3JzOwotICAgIGZldGNoT3B0aW9ucy5jYWNoZSA9IEZldGNoT3B0aW9u
czo6Q2FjaGU6OkRlZmF1bHQ7Ci0gICAgZmV0Y2hPcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRp
b25zOjpSZWRpcmVjdDo6Rm9sbG93OwotICAgIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9IHNj
cmlwdEZldGNoSm9iLmNyZWRlbnRpYWxzOwotI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgaWYg
KGlzQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoKSkKLSAgICAgICAgZmV0Y2hPcHRpb25zLmRlc3Rp
bmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6QXVkaW93b3JrbGV0OwotI2VuZGlm
Ci0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0gICAgaWYgKGlzUGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGUoKSkKLSAgICAgICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbjo6UGFpbnR3b3JrbGV0OwotI2VuZGlmCi0KLSAgICBhdXRvIGNvbnRl
bnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0gc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5KCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9O
b3RFbmZvcmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkVuZm9yY2VDaGls
ZFNyY0RpcmVjdGl2ZTsKLQotICAgIG1fc2NyaXB0TG9hZGVyID0gV29ya2VyU2NyaXB0TG9hZGVy
OjpjcmVhdGUoKTsKLSAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KCp0aGlz
LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgKnRoaXMpOwotfQot
Ci12b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxv
bmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQotewotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxT
Y29wZTo6bm90aWZ5RmluaXNoZWQoKQotewotICAgIGF1dG8gY29tcGxldGVkSm9iID0gbV9zY3Jp
cHRGZXRjaEpvYnMudGFrZUZpcnN0KCk7Ci0KLSAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxl
ZCgpKSB7Ci0gICAgICAgIGRpZENvbXBsZXRlU2NyaXB0RmV0Y2hKb2IoV1RGTW92ZShjb21wbGV0
ZWRKb2IpLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCBtYWtlU3RyaW5nKCJGYWlsZWQgdG8gZmV0
Y2ggbW9kdWxlLCBlcnJvcjogIiwgbV9zY3JpcHRMb2FkZXItPmVycm9yKCkubG9jYWxpemVkRGVz
Y3JpcHRpb24oKSkgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgcmVhbGx5IGJlIHJ1biBhcyBhIG1vZHVsZSBzY3JpcHQgYnV0IHdlIGRvbid0
IHN1cHBvcnQgdGhpcyBpbiB3b3JrZXJzIHlldC4KLSAgICBVUkwgbW9kdWxlVVJMKG1fc2NyaXB0
TG9hZGVyLT5yZXNwb25zZVVSTCgpKTsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fZXZhbHVhdGVk
TW9kdWxlcy5hZGQobW9kdWxlVVJMKTsKLSAgICBpZiAoYWRkUmVzdWx0LmlzTmV3RW50cnkpIHsK
LSAgICAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IGV4Y2VwdGlvbjsKLSAgICAgICAgc2Ny
aXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zY3JpcHRMb2FkZXItPnNjcmlwdCgp
LCBXVEZNb3ZlKG1vZHVsZVVSTCkpLCBleGNlcHRpb24pOwotICAgICAgICBpZiAoZXhjZXB0aW9u
KQotICAgICAgICAgICAgc2NyaXB0KCktPnNldEV4Y2VwdGlvbihleGNlcHRpb24pOwotICAgIH0K
LQotICAgIGRpZENvbXBsZXRlU2NyaXB0RmV0Y2hKb2IoV1RGTW92ZShjb21wbGV0ZWRKb2IpLCB7
IH0pOwotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZGlkQ29tcGxldGVTY3JpcHRGZXRj
aEpvYihTY3JpcHRGZXRjaEpvYiYmIGpvYiwgT3B0aW9uYWw8RXhjZXB0aW9uPiByZXN1bHQpCi17
Ci0gICAgbV9zY3JpcHRMb2FkZXIgPSBudWxscHRyOwotCi0gICAgam9iLmNvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUocmVzdWx0KSk7Ci0KLSAgICBwcm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZO
ZWVkZWQoKTsKKyAgICBzY3JpcHQoKS0+bG9hZEFuZEV2YWx1YXRlTW9kdWxlKG1vZHVsZVVSTCwg
Y3JlZGVudGlhbHMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogTWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXImIFdvcmtsZXRHbG9iYWxTY29wZTo6bWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEds
b2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUu
aAppbmRleCBmMjMyMGYwZDEzMDI1Y2VhYjNiYWM1NmE0NWVjMmQxZGQzZmI2Y2MwLi5mZTU0Yjg1
MzI1Njc5MjU4M2RlZGEwNTVhNDMzYTI1NjU0ZTg2NzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUg
IlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKLSNpbmNs
dWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9Db25zb2xlTWVzc2FnZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFn
cy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpAQCAtNTQsNyArNTMsNyBA
QCBzdHJ1Y3QgV29ya2xldFBhcmFtZXRlcnM7CiBlbnVtIFdvcmtsZXRHbG9iYWxTY29wZUlkZW50
aWZpZXJUeXBlIHsgfTsKIHVzaW5nIFdvcmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXIgPSBPYmpl
Y3RJZGVudGlmaWVyPFdvcmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXJUeXBlPjsKIAotY2xhc3Mg
V29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLCBw
dWJsaWMgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKK2NsYXNzIFdvcmtsZXRHbG9iYWxTY29w
ZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChXb3JrbGV0R2xvYmFsU2NvcGUpOwogcHVibGljOgogICAgIHZpcnR1YWwgfldv
cmtsZXRHbG9iYWxTY29wZSgpOwpAQCAtMTExLDEwICsxMTAsNiBAQCBjbGFzcyBXb3JrbGV0R2xv
YmFsU2NvcGUgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUsIHB1YmxpYyBXb3Jr
ZXJTY3JpcAogICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgUmVmUHRy
PEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgdW5z
aWduZWQgbG9uZykgZmluYWw7CiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGxvbmcpIGZpbmFsOwog
Ci0gICAgLy8gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LgotICAgIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
IGZpbmFsOwotICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoKSBmaW5hbDsKLQogICAgIEV2ZW50VGFy
Z2V0KiBlcnJvckV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZXR1cm4gdGhpczsgfQogCiAjaWYgRU5B
QkxFKFdFQl9DUllQVE8pCkBAIC0xMjUsMTUgKzEyMCw2IEBAIGNsYXNzIFdvcmtsZXRHbG9iYWxT
Y29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSwgcHVibGljIFdvcmtlclNj
cmlwCiAgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBmaW5hbDsKICAgICBj
b25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0aW5nc1ZhbHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fc2V0dGluZ3NWYWx1ZXM7IH0KIAotICAgIHN0cnVjdCBTY3JpcHRGZXRjaEpvYiB7Ci0g
ICAgICAgIFVSTCBtb2R1bGVVUkw7Ci0gICAgICAgIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNy
ZWRlbnRpYWxzOwotICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2Vw
dGlvbj4mJik+IGNvbXBsZXRpb25IYW5kbGVyOwotICAgIH07Ci0KLSAgICB2b2lkIHByb2Nlc3NO
ZXh0U2NyaXB0RmV0Y2hKb2JJZk5lZWRlZCgpOwotICAgIHZvaWQgZGlkQ29tcGxldGVTY3JpcHRG
ZXRjaEpvYihTY3JpcHRGZXRjaEpvYiYmLCBPcHRpb25hbDxFeGNlcHRpb24+KTsKLQogICAgIFdl
YWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAKICAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IG1f
dG9wT3JpZ2luOwpAQCAtMTQ0LDkgKzEzMCw2IEBAIGNsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6
IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSwgcHVibGljIFdvcmtlclNjcmlwCiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI+IG1f
bWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI7CiAKLSAgICBSZWZQdHI8V29ya2VyU2NyaXB0TG9h
ZGVyPiBtX3NjcmlwdExvYWRlcjsKLSAgICBEZXF1ZTxTY3JpcHRGZXRjaEpvYj4gbV9zY3JpcHRG
ZXRjaEpvYnM7Ci0gICAgSGFzaFNldDxVUkw+IG1fZXZhbHVhdGVkTW9kdWxlczsKICAgICBTZXR0
aW5nczo6VmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmI5YTUyYjdkZjcz
MWU2NjVjNGYxMDI2ZDhhYzE5MzlhNGE4ODJhMy4uYjYxODlmMzgzNWM5MWM2MjE2MzI3MThkZTI5
NzFmYTU3NWZmYjM5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTAyLTExICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBXb3Jr
ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ4
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDItMTAgIEFtaXIgTWFyayBKciAgPGFtaXJfbWFya0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW01hY09TXSBhbmltYXRpb25zL2tleWZyYW1lLXBzZXVkby1z
aGFkb3cuaHRtbCBpcyBmbGFrZXkgZmFpbGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IGQzMGU1NjI5MjJlNWE0ZDZmMzE2MjY1ZTFlYTI1NjhlOTllN2U4MWMuLmE1MjQ2NDU2
ZTYxYmM1YTcwODBkZDUzNGQyZGJlNTMzYjY1ZGZmNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTAyLTExICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBXb3JrZXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ4NjAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1t
b2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2Nv
cGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9i
YXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29y
a2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9y
ZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3Jp
cHRzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0
U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94
aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2Jh
bFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9u
L3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnkt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVs
ZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0
LWZhaWx1cmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLWltcG9ydC1tZXRhLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jcmVk
ZW50aWFscy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRp
by13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0ZWQtd29ya2VyLW9yaWdpbi1leHBlY3Rl
ZC50eHQ6CisKIDIwMjEtMDItMTAgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxp
YS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG1vZGlmaWVyIGtleXMgaW4gdGVzdF9k
cml2ZXIuc2VuZF9rZXlzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGU4ZDE3YjA3NzUyZDFlN2Yx
Mjg3NDYzMGQ3OWMxZTJhZWE0ZWQyMzYuLmUxYWNjMjUwYjZkMzdmZWVhMWQyMWFiZGNkMWYyMTcz
ODJmYTNkOWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjQyLDcgKzY0Miw2IEBAIGZhc3QvZG9t
L2Nvbm5lY3RlZC1zdWJmcmFtZS1jb3VudGVyLW92ZXJmbG93Lmh0bWwgWyBTbG93IF0KIFsgRGVi
dWcgXSBodHRwL3Rlc3RzL3dvcmtlcnMvd29ya2VyLW1lc3NhZ2Vwb3J0LTIuaHRtbCBbIFNsb3cg
XQogCiAjIFNraXAgd29ya2VycyB0ZXN0cyB0aGF0IGFyZSB0aW1pbmcgb3V0IG9yIGFyZSBTaGFy
ZWRXb3JrZXIgcmVsYXRlZCBvbmx5Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi5odG1sIFsgU2tpcCBdCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvZGF0YS11cmwtc2hhcmVkLmh0bWwg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9leGFtcGxl
cy9vbmNvbm5lY3QuYW55Lmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9leGFtcGxlcy9vbmNvbm5lY3QuYW55Lndvcmtlci5odG1sIFsgU2tpcCBd
CkBAIC02NjUsNyArNjY0LDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL1NoYXJlZFdvcmtlci1yZXBsYWNlLUV2ZW50SGFuZGxlci5hbnkuaHQKIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9TaGFyZWRXb3JrZXItcmVwbGFjZS1FdmVudEhh
bmRsZXIuYW55Lndvcmtlci5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyLXNjcmlwdC1lcnJvci5odG1sIFsgU2tpcCBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyLXNpbXBs
ZS5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
bW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci5odG1sIFsgU2tpcCBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLW9wdGlvbnMtY3JlZGVudGlhbHMuaHRtbCBbIFNraXAgXQogCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1NoYXJlZFdvcmtlciBbIFNr
aXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1t
b2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9ub24tb2JqZWN0LnRlbnRh
dGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA0OTI2OWIzYjUwYjkxNzVjYjYyZWNh
MzEyZTU4NmIzYjE2NjJhMjU5Li4yY2FlNWY3ZTM1YTMyZmVjZWIyNjhmMjkwMDAwZTRlNTU1NmM2
ODYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1v
ZHVsZS9ub24tb2JqZWN0LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9ub24tb2JqZWN0LnRl
bnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAotRkFJTCBO
b24tb2JqZWN0OiBudWxsIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vbnVsbC5q
c29uJy4iCi1GQUlMIE5vbi1vYmplY3Q6IHRydWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1v
ZHVsZSAnLi90cnVlLmpzb24nLiIKLUZBSUwgTm9uLW9iamVjdDogZmFsc2UgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5v
dCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9mYWxzZS5qc29uJy4iCi1GQUlMIE5vbi1vYmplY3Q6IHN0
cmluZyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL3N0cmluZy5qc29uJy4iCi1G
QUlMIE5vbi1vYmplY3Q6IGFycmF5IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4v
YXJyYXkuanNvbicuIgorRkFJTCBOb24tb2JqZWN0OiBudWxsIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9u
L2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKK0ZBSUwgTm9uLW9i
amVjdDogdHJ1ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZh
U2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IGZhbHNlIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxp
Y2F0aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKK0ZBSUwg
Tm9uLW9iamVjdDogc3RyaW5nIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9uL2pzb24nIGlzIG5vdCBhIHZh
bGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKK0ZBSUwgTm9uLW9iamVjdDogYXJyYXkgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUu
IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rh
c2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9j
aGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVk
LnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi5mNjhj
YzczYjRkNjc0YzU0ZGZhZmU1MjIxMmI2NDNjNDAzMGZkNDJjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29y
a2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRlci13b3Jr
ZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBA
CiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitGQUlMIFByb21p
c2UgcmVzb2x2ZWQgZHVyaW5nICNyZXBvcnQtdGhlLWVycm9yIGFzc2VydF9hcnJheV9lcXVhbHM6
IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBbImhhbmRsZXIgMSIsICJoYW5kbGVyIDIi
LCAiaGFuZGxlciAxIHByb21pc2UiLCAiaGFuZGxlciAyIHByb21pc2UiXSBsZW5ndGggNCwgZ290
IFtdIGxlbmd0aCAwCitQQVNTIFByb21pc2UgcmVzb2x2ZWQgZHVyaW5nIGV2ZW50IGhhbmRsZXJz
IG90aGVyIHRoYW4gZXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBv
cnRTY3JpcHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0
cy1leHBlY3RlZC50eHQKaW5kZXggNTFkNjEwMGU2MTIyYTk3YzM2NGIzY2ViMWQ3ZmQwN2UwZTE1
NjExNy4uYTgwNTBjMDc4Y2Y4Yjg4ZDU2OGFmZmUwZDU1Y2MzMTkwYzM2NTQ3YSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0
L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxw
aGEvYmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
NiBAQAogCi1GQUlMIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gc2FtZS1vcmlnaW4gaW1wb3J0U2Ny
aXB0cygpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vaW1wb3J0LmpzP3BpcGU9
aGVhZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJlbD1yZWxhdGl2ZS1jcm9z
cy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpJy4iCi1GQUlMIEFic29sdXRlIFVSTC1saWtlIGZyb20g
c2FtZS1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1
bGUgJ2h0dHA6Ly8xMjcuMC4wLjE6ODgwMC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2dhbW1hL2ltcG9ydC5qcz9waXBl
PWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9YWJzb2x1dGUtY3Jv
c3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKScuIgotUEFTUyBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9t
IGNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKLUZBSUwgQWJzb2x1dGUgVVJMLWxpa2UgZnJv
bSBjcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBt
b2R1bGUgJ2h0dHA6Ly8xMjcuMC4wLjE6ODgwMC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2dhbW1hL2ltcG9ydC5qcz9w
aXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9YWJzb2x1dGUt
Y3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKScuIgorUEFTUyBSZWxhdGl2ZSBVUkwtbGlrZSBm
cm9tIHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQorUEFTUyBBYnNvbHV0ZSBVUkwtbGlrZSBm
cm9tIHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQorRkFJTCBSZWxhdGl2ZSBVUkwtbGlrZSBm
cm9tIGNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkgYXNzZXJ0X2VxdWFsczogUmVsYXRpdmUg
VVJMLWxpa2Ugc3BlY2lmaWVyIHJlc29sdXRpb24gc2hvdWxkIGZhaWwgZXhwZWN0ZWQgIih1bnJl
YWNoZWQpIiBidXQgZ290ICJnYW1tYS9pbXBvcnQuanMiCitQQVNTIEFic29sdXRlIFVSTC1saWtl
IGZyb20gY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFz
ZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1l
eHBlY3RlZC50eHQKaW5kZXggODY2ZWJiMjI3YWQyNmFhY2UxYTU3OGJhZWE2YTgxZGMwZTZlNzdm
MC4uNWU3MDYzNDkwZTJkZmZlY2U4NWVhNzY1YWViZGRlNGIxNmViMGZjMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2Fs
cGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13
b3JrZXIuc3ViLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBSZWxhdGl2ZSBV
UkwtbGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0IHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0
IHRoZSBtb2R1bGUgJy4vaW1wb3J0LmpzP3BpcGU9aGVhZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbiwqKSZsYWJlbD1yZWxhdGl2ZS13b3JrZXIgdG9wLWxldmVsIHNjcmlwdCcuIgotRkFJ
TCBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0IHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3Vs
ZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJ2h0dHA6Ly8xMjcuMC4wLjE6ODgwMC9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0
L2dhbW1hL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4s
KikmbGFiZWw9YWJzb2x1dGUtd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQnLiIKK1BBU1MgUmVsYXRp
dmUgVVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdAorUEFTUyBBYnNvbHV0ZSBV
UkwtbGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90
aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtlci1leHBlY3RlZC50eHQK
aW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uMmYxMmEyMzQy
ZmFkMjI0ZTNhMThhNmZiNWQ4NDgzMjVlYTY3NzZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdv
cmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtlci1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAot
CitQQVNTIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEt
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
ZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3
NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi5iODYxZjcwMWY5NDhmYjEzMjc2OTMy
MmMzODM2NmYyZDEzOGYwNGUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3Jk
ZXItMS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCi1IYXJuZXNzIEVycm9y
IChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorRkFJTCBUZXN0IGV2YWx1YXRpb24gb3JkZXIg
b2YgbW9kdWxlcyBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQg
YXJyYXkgWyJzdGVwLTEtMSIsICJzdGVwLTEtMiIsICJnbG9iYWwtZXJyb3IiLCAiZXJyb3IiLCAi
bWljcm90YXNrIl0gbGVuZ3RoIDUsIGdvdCBbInN0ZXAtMS0xIiwgInN0ZXAtMS0yIiwgIm1pY3Jv
dGFzayJdIGxlbmd0aCAzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1v
cmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThmYmE4YmJm
OTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLmMxZDM4YmRlNTBjNTllNWQ1OTQxNzNkOTZmOWNkMTll
YjEwN2M5YjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
ZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXIt
Mi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBF
cnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK0ZBSUwgVGVzdCBldmFsdWF0aW9uIG9y
ZGVyIG9mIG1vZHVsZXMgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVj
dGVkIGFycmF5IFsic3RlcC0yLjItMSIsICJzdGVwLTIuMi0yIiwgImdsb2JhbC1lcnJvciIsICJl
cnJvciIsICJtaWNyb3Rhc2stMi4yIl0gbGVuZ3RoIDUsIGdvdCBbInN0ZXAtMi4yLTEiLCAic3Rl
cC0yLjItMiIsICJtaWNyb3Rhc2stMi4yIl0gbGVuZ3RoIDMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5h
bWljLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dApp
bmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi4yZjEyYTIzNDJm
YWQyMjRlM2ExOGE2ZmI1ZDg0ODMyNWVhNjc3NmZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29y
a2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
MSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0K
K1BBU1MgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVsZXMKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggMTJkOTRhOTFlZjFmOGFiMGExODdjNzQ5YjBkZGVjNjk2ZDExODhlNy4uYjRkNjhh
ZjA1NmVlZjYyMmEzM2Q1NGYwNzZmMzgxZDRlMWJiMjlhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0yLDggKzIsOCBAQAogRkFJTCBTdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBh
cmd1bWVudC4iCiBGQUlMIE5lc3RlZCBzdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBh
cmd1bWVudC4iCiBGQUlMIFN0YXRpYyBpbXBvcnQgYW5kIHRoZW4gZHluYW1pYyBpbXBvcnQuIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBl
Y3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHluYW1pYyBpbXBvcnQuIGFzc2VydF9h
cnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9y
OiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWxvYWQtc2NyaXB0Lmpz
Jy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuIGFzc2VydF9h
cnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9y
OiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWR5bmFtaWMtaW1wb3J0
LXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgRHluYW1pYyBpbXBvcnQgYW5kIHRo
ZW4gc3RhdGljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0
byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAn
Li9leHBvcnQtb24tc3RhdGljLWltcG9ydC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1G
QUlMIGV2YWwoaW1wb3J0KCkpLiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVk
IHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxl
ICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKK1BBU1MgRHlu
YW1pYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBp
bXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4KK1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1
cmwvYWxwaGEvaW1wb3J0LWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZGQ5YWYz
OGZmMDlmYmVjMWZhYzBiOGY1ZWE5YmFkNmUzMTYzNjQ5ZC4uNTFlYjM2NjM4YzFjYTdkMDYwYjc2
NzU5MjZmY2M3MGM1YmYwNzZlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0LWluLW1vZHVs
ZXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0LWluLW1vZHVsZXdvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIGlkZW50aWZpZXIgJ3InLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0
bHkgb25lIGFyZ3VtZW50LgogCi1GQUlMIEJhc2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29y
a2VyczogaW1wb3J0IGFzc2VydF91bnJlYWNoZWQ6IEdvdCBlcnJvciBldmVudCBSZWFjaGVkIHVu
cmVhY2hhYmxlIGNvZGUKK1BBU1MgQmFzZSBVUkwgaW4gbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJz
OiBpbXBvcnQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0ZWQu
dHh0CmluZGV4IGFiNWE3ZmI4OTAyMGYyOWZkODkzYTc1NjgwZmZlMTdkM2QzNTBmN2MuLmFiNTNi
ODA1OTlhZTAxOTU3ODA4NWVlNDRhYWVmYTRjNzk1NTI2ODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhh
L2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBv
cnRTY3JpcHRzLWluLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
aW1wb3J0U2NyaXB0cyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZ2FtbWEvc2NyaXB0LmpzIiBi
dXQgZ290ICJiZXRhL3NjcmlwdC5qcyIKK1BBU1MgaW1wb3J0U2NyaXB0cwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFz
ZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3ho
ci1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDgzZjM2N2YyY2YzYTY2YzY0YTYy
NjQyOTQ2NTZkNWU4ODFkMWMxMWMuLjI4YjBjYjQwMDEzOTJkMDg4N2E0ZmViZTY4MWMxZTE1MWQw
ZGYxOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0x
LDMgKzEsMyBAQAogCi1GQUlMIEJhc2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2Vyczog
WEhSIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJnYW1tYVxuIiBidXQgZ290ICJiZXRhXG4iCitQ
QVNTIEJhc2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2VyczogWEhSCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9i
YXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWlu
LXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZDZiMDhlZWRhZTZmNjk2YzdhNGJmYTY1NWUxM2I1
ZWQ0NjA3ZWEwMS4uZWExNDU0ZDliM2YyMGY4NWQ5MDE2YzUwNmExNTQ2YWY2MTc4NDJkMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxw
aGEveGhyLWluLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgeGhy
LXdvcmtlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZ2FtbWFcbiIgYnV0IGdvdCAiYmV0YVxu
IgorUEFTUyB4aHItd29ya2VyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3Jp
Z2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVkLnR4
dAppbmRleCA4MzFmMGM1OGM2OTRjMmQ0ZmViZDZkOGQwYWYzMDdiMTA5NDQyYTZlLi5kNTU1ZWU3
Y2YzZmM3MmVmYjgyZGY5ZGI3ZGFkMzY3ZjlhYjdmZmJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dv
cmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1v
cmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0xLDEzICsxLDExIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJ
TUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTIHVuc3VwcG9ydGVkX3NjaGVtZQogRkFJTCBk
YXRhX3VybCBUaGUgb3BlcmF0aW9uIGlzIGluc2VjdXJlLgotVElNRU9VVCBhYm91dF9ibGFuayBU
ZXN0IHRpbWVkIG91dAotVElNRU9VVCBleGFtcGxlX2ludmFsaWQgVGVzdCB0aW1lZCBvdXQKLVRJ
TUVPVVQgcG9ydF84MSBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBodHRwc19wb3J0XzgwIFRlc3Qg
dGltZWQgb3V0Ci1USU1FT1VUIGh0dHBzX3BvcnRfODAwMCBUZXN0IHRpbWVkIG91dAotVElNRU9V
VCBodHRwX3Bvc3RfODAxMiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBqYXZhc2NyaXB0X3VybCBU
ZXN0IHRpbWVkIG91dAorUEFTUyBhYm91dF9ibGFuaworUEFTUyBleGFtcGxlX2ludmFsaWQKK1BB
U1MgcG9ydF84MQorUEFTUyBodHRwc19wb3J0XzgwCitQQVNTIGh0dHBzX3BvcnRfODAwMAorUEFT
UyBodHRwX3Bvc3RfODAxMgorUEFTUyBqYXZhc2NyaXB0X3VybAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNl
cy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNl
cy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50eHQKaW5kZXgg
ZjE3NDFmOWQ4YmYwNzAzMjcwZDJlMzc2MmRiY2JlMjZjMGI5MDA1OS4uM2IwZGZiMzVlNTFjZDFh
ODU0NTUzMDE5YzBlNDAzZGJlMmYxZDMzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFs
U2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckds
b2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAK
IAotRkFJTCBXb3JrZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czogY2xhc3NpYyBkZWRpY2F0ZWQg
d29ya2VycyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dv
cmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9wb3N0LWxvY2F0aW9u
LW1lbWJlcnMuanM/YSIgYnV0IGdvdCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvaW50
ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9oZWxwZXItcmVkaXJlY3QucHk/ZmFp
bCIKK1BBU1MgV29ya2VyTG9jYXRpb24gd2l0aCByZWRpcmVjdHM6IGNsYXNzaWMgZGVkaWNhdGVk
IHdvcmtlcnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24v
cmVkaXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xv
Y2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQKaW5kZXggZGMyZTJlMjA3ZGIwMDFl
ZTcwZTczMzA3ZDI3YmIzMzU3MjBmZDU1OS4uYjNiZjgxZWU4NjgxYjlkYzA4MGY1ODAyNzFlOGI4
ZjM5MDk2NTQ5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24v
cmVkaXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29w
ZS9sb2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAog
Ci1GQUlMIFdvcmtlckxvY2F0aW9uIHdpdGggcmVkaXJlY3RzOiBtb2R1bGUgZGVkaWNhdGVkIHdv
cmtlcnMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3Jr
ZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcG9zdC1sb2NhdGlvbi1t
ZW1iZXJzLmpzP2EiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2ludGVy
ZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vaGVscGVyLXJlZGlyZWN0LnB5P2ZhaWwi
CitQQVNTIFdvcmtlckxvY2F0aW9uIHdpdGggcmVkaXJlY3RzOiBtb2R1bGUgZGVkaWNhdGVkIHdv
cmtlcnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwu
YW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFu
eS1leHBlY3RlZC50eHQKaW5kZXggMjBhYzE3ZDU2M2M0YjNhNDYxZjBjYWFmYmVhZWViZDcxM2Y5
NzA4MS4uZGNjZWRjY2QzNjhlMWZmMTdiMWRkMTM2ZTQ1M2ZlYzRmZTEwYmM4MyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21v
ZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
bW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0
CkBAIC0xLDE4ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0
ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL3N0YXRpYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBl
eGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL25lc3RlZC1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxs
IGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29y
a2Vycy9tb2R1bGVzL3Jlc291cmNlcy9zdGF0aWMtaW1wb3J0LWFuZC10aGVuLWR5bmFtaWMtaW1w
b3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
Ci1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFs
ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWlj
LWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3Vt
ZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0
ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvbmVz
dGVkLWR5bmFtaWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3Rs
eSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVk
IHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jl
c291cmNlcy9keW5hbWljLWltcG9ydC1hbmQtdGhlbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIu
IGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NB
R0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxo
b3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9ldmFsLWR5bmFtaWMtaW1wb3J0LXdv
cmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCiAKLUhh
cm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3Ry
aW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3Vy
Y2VzL2R5bmFtaWMtaW1wb3J0LWFuZC10aGVuLXN0YXRpYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1w
b3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLQotRkFJTCBTdGF0aWMgaW1w
b3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRh
eEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAw
L3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvc3RhdGljLWltcG9ydC13b3JrZXIuanNcIi4gaW1w
b3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIE5lc3RlZCBzdGF0
aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
IlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9z
dDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvbmVzdGVkLXN0YXRpYy1pbXBvcnQtd29y
a2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJ
TCBTdGF0aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0
cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNv
dXJjZXMvc3RhdGljLWltcG9ydC1hbmQtdGhlbi1keW5hbWljLWltcG9ydC13b3JrZXIuanNcIi4g
aW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIER5bmFtaWMg
aW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5
bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4
ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIu
IGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBOZXN0ZWQg
ZHluYW1pYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgXCJodHRwOi8vbG9j
YWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9uZXN0ZWQtZHluYW1pYy1pbXBv
cnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
IgotRkFJTCBEeW5hbWljIGltcG9ydCBhbmQgdGhlbiBzdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxl
cy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtYW5kLXRoZW4tc3RhdGljLWltcG9ydC13b3JrZXIu
anNcIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIGV2
YWwoaW1wb3J0KCkpLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2Fs
aG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXZhbC1keW5hbWljLWltcG9ydC13
b3JrZXIuanNcIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCitQ
QVNTIFN0YXRpYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBzdGF0aWMgaW1wb3J0LgorUEFTUyBTdGF0
aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LgorUEFTUyBEeW5hbWljIGltcG9ydC4K
K1BBU1MgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LgorUEFTUyBEeW5hbWljIGltcG9ydCBhbmQgdGhl
biBzdGF0aWMgaW1wb3J0LgorUEFTUyBldmFsKGltcG9ydCgpKS4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMv
ZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13
b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQKaW5kZXggMWRhNDZiOTI2YmUwODk2ZWU4Zjc1
YTc4ZGNhZTRmMjY5YjA1MDkyYi4uMjM5Y2M5Y2UxNTMwMWY3ZWVkODNkNWViMjIzMGE5ZGUyOTRl
YTJlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1jc3AtZXhwZWN0ZWQudHh0CkBA
IC0xLDEzICsxLDIyIEBACiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNl
Y3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxl
cy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCiBDT05TT0xFIE1FU1NBR0U6IFVu
cmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMn
LgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9z
dDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0Lmpz
CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5
NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCitC
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQz
L3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCiBDT05T
T0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3Rp
dmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6
Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9u
LWxvYWQtc2NyaXB0LmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNl
Y3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxl
cy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCitCbG9ja2VkIGFjY2VzcyB0byBl
eHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9y
ZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNv
dXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2du
aXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitC
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQz
L3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCiAKIFBB
U1Mgd29ya2VyLXNyYyAnc2VsZicgZGlyZWN0aXZlIHNob3VsZCBkaXNhbGxvdyBjcm9zcyBvcmln
aW4gc3RhdGljIGltcG9ydC4KIEZBSUwgd29ya2VyLXNyYyAqIGRpcmVjdGl2ZSBzaG91bGQgYWxs
b3cgY3Jvc3Mgb3JpZ2luIHN0YXRpYyBpbXBvcnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVj
dGVkIHByb3BlcnR5IDAgdG8gYmUgImV4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcyIgYnV0IGdvdCAi
RVJST1IiIChleHBlY3RlZCBhcnJheSBbImV4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcyJdIGdvdCBb
IkVSUk9SIl0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0
ZWQudHh0CmluZGV4IDk1YzZkMTVkZjQ0ZTE4YTM1ZGZlYjBmYTM5YzhkMzg0NDIwYzJjMTMuLmU5
NTU3OGU3MWIxYzUwYTRlMDQ3MWIwMzcxNTRiMzg2YjM3YWVkNzQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2Rl
ZGljYXRlZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAot
Q09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAn
Li9ub24tZXhpc3RlbnQtc2NyaXB0LmpzJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9u
ZSBhcmd1bWVudC4KK0NPTlNPTEUgTUVTU0FHRTogSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBm
YWlsZWQuCiAKLUZBSUwgaW1wb3J0U2NyaXB0cygpIG9uIG1vZHVsZSB3b3JrZXIgc2hvdWxkIHRo
cm93IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlR5cGVFcnJvciIgYnV0
IGdvdCAiTE9BREVEIgorUEFTUyBpbXBvcnRTY3JpcHRzKCkgb24gbW9kdWxlIHdvcmtlciBzaG91
bGQgdGhyb3cgYW4gZXhjZXB0aW9uLgogUEFTUyBXb3JrZXIgY29uc3RydWN0aW9uIGZvciBub24t
ZXhpc3RlbnQgc2NyaXB0IHNob3VsZCBkaXNwYXRjaCBhbiBFcnJvckV2ZW50LgogUEFTUyBTdGF0
aWMgaW1wb3J0IGZvciBub24tZXhpc3RlbnQgc2NyaXB0IHNob3VsZCBkaXNwYXRjaCBhbiBFcnJv
ckV2ZW50LgotRkFJTCBEeW5hbWljIGltcG9ydCBmb3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91
bGQgdGhyb3cgYW4gZXhjZXB0aW9uLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiVHlwZUVycm9y
IiBidXQgZ290ICJFcnJvciIKK1BBU1MgRHluYW1pYyBpbXBvcnQgZm9yIG5vbi1leGlzdGVudCBz
Y3JpcHQgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIFBBU1MgV29ya2VyIGNvbnN0cnVjdGlv
biBmb3IgYW4gaW52YWxpZCBVUkwgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIFBBU1MgV29y
a2VyIGNvbnN0cnVjdGlvbiBmb3IgYSBmaWxlIFVSTCBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9u
LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEtZXhwZWN0ZWQudHh0CmluZGV4
IGQ1ODA2MjA0MWMzZTY5NTE1YjgxNWUwMmQ3YzM4Njg0ZDc3Yzc2YjcuLjc3MjkxYmFhMWE0MTg0
YmViZTdhZDdiNWQ5ZjExOWM3MWE3OGRlNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3Jr
ZXItaW1wb3J0LW1ldGEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1w
b3J0LW1ldGEtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsNSBAQAotQ09OU09MRSBNRVNTQUdFOiBT
eW50YXhFcnJvcjogaW1wb3J0Lm1ldGEgaXMgb25seSB2YWxpZCBpbnNpZGUgbW9kdWxlcy4KIAot
SGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBTeW50YXhFcnJvcjogaW1wb3J0Lm1ldGEg
aXMgb25seSB2YWxpZCBpbnNpZGUgbW9kdWxlcy4KLQotRkFJTCBUZXN0IGltcG9ydC5tZXRhLnVy
bCBvbiB0aGUgdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkg
dmFsaWQgaW5zaWRlIG1vZHVsZXMuIgotRkFJTCBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUg
aW1wb3J0ZWQgbW9kdWxlIHNjcmlwdC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2Ny
aXB0IHdpdGggYSBmcmFnbWVudC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitQQVNTIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSB0b3AtbGV2ZWwgbW9kdWxlIHNjcmlw
dC4KK1BBU1MgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3Jp
cHQuCitQQVNTIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2Ny
aXB0IHdpdGggYSBmcmFnbWVudC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1p
bXBvcnQtbWV0YS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS5odG1sCmlu
ZGV4IGNmZjhlOTE0ODhlODIzOWFiZTIxMzYxOWQxMmQ1YTYwMzA3MmZiZWEuLmVkZTI2OTJlMWM2
MzQxYmVmZmM5MDEwYzQxYjhmNGNmZTQzODMyOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13
b3JrZXItaW1wb3J0LW1ldGEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1t
ZXRhLmh0bWwKQEAgLTUzLDcgKzUzLDcgQEAKICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCcu
LycgKyBzY3JpcHRfdXJsICsgJyMxJyk7CiAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHdvcmtlci5vbm1lc3NhZ2UgPSByZXNvbHZlKTsKICAgICAgIH0pCi0gICAgICAudGhl
bihtc2dfZXZlbnQgPT4gYXNzZXJ0X3RydWUobXNnX2V2ZW50LmRhdGEuZW5kc1dpdGgoc2NyaXB0
X3VybCkpKTsKKyAgICAgIC50aGVuKG1zZ19ldmVudCA9PiBhc3NlcnRfdHJ1ZShtc2dfZXZlbnQu
ZGF0YS5lbmRzV2l0aChzY3JpcHRfdXJsICsgJyMxJykpKTsKIH0sICdUZXN0IGltcG9ydC5tZXRh
LnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJhZ21lbnQuJyk7CiAK
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJy
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJyZXItZXhw
ZWN0ZWQudHh0CmluZGV4IDZkYzQyYzFjZmQzMzQ4YWZkZDFkZmQzYjEwYTUwNDcwNTUzMDE5NmEu
LmZlMWI5ZDkzYzA4MDExYjUwZTk0MWY0ZTEyMzYwNjdhYmJkM2YyM2UgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQKQEAgLTEsMTkgKzEs
MjMgQEAKLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCitCbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtl
cnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vy
cy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJz
L21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFj
Y2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMv
bW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNj
ZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9t
b2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CiAKIFBBU1MgU2FtZS1v
cmlnaW4gdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQgbG9hZGluZyB3aXRoICJuby1yZWZlcnJlciIg
cmVmZXJyZXIgcG9saWN5CiBQQVNTIFNhbWUtb3JpZ2luIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0
IGxvYWRpbmcgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kKIFBBU1MgU2FtZS1vcmlnaW4g
dG9wLWxldmVsIG1vZHVsZSBzY3JpcHQgbG9hZGluZyB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJy
ZXIgcG9saWN5Ci1GQUlMIFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAibm8tcmVmZXJy
ZXIiIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBTYW1lLW9yaWdp
biBzdGF0aWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5
cGUgZXJyb3IiCi1GQUlMIFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAic2FtZS1vcmln
aW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgorUEFTUyBTYW1lLW9yaWdp
biBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuCitQQVNT
IFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3ku
CitQQVNTIFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVy
cmVyIHBvbGljeS4KIEZBSUwgQ3Jvc3Mtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAibm8tcmVm
ZXJyZXIiIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgogRkFJTCBDcm9zcy1v
cmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiBUeXBlIGVycm9yIgogRkFJTCBDcm9zcy1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJzYW1l
LW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCi1USU1FT1VUIFNh
bWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xp
Y3kuIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0
aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gU2FtZS1vcmlnaW4gZHluYW1pYyBp
bXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4KLU5PVFJVTiBDcm9zcy1v
cmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeS4K
LU5PVFJVTiBDcm9zcy1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJl
ciBwb2xpY3kuCi1OT1RSVU4gQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggInNhbWUt
b3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCitGQUlMIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0
IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICIiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL2R5bmFtaWMtaW1wb3J0LXNhbWUtb3JpZ2luLXJlZmVycmVyLWNoZWNrZXItd29ya2Vy
LmpzIgorRkFJTCBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVy
cmVyIHBvbGljeS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgw
MC8iIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3Vy
Y2VzL2R5bmFtaWMtaW1wb3J0LXNhbWUtb3JpZ2luLXJlZmVycmVyLWNoZWNrZXItd29ya2VyLmpz
IgorUEFTUyBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVm
ZXJyZXIgcG9saWN5LgorRkFJTCBDcm9zcy1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAibm8t
cmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgorRkFJTCBDcm9z
cy1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGgg
InNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50eHQKaW5kZXggYTIzYTU1NzVk
YjQyNzQyN2Y4NWJkNmI2MzU0ZGU4ODM4MzFmZTJiNC4uZGNjZWRjY2QzNjhlMWZmMTdiMWRkMTM2
ZTQ1M2ZlYzRmZTEwYmM4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQu
YW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhw
ZWN0ZWQudHh0CkBAIC0xLDE0ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6
IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFy
Z3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAn
KicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1F
U1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhw
ZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KIAotSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3Nh
Z2UgPSBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVj
dHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi0KLUZBSUwgU3RhdGljIGltcG9ydC4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
IgotRkFJTCBOZXN0ZWQgc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBTdGF0aWMgaW1w
b3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1w
b3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIER5bmFtaWMgaW1w
b3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMg
aW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1s
b2FkLXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1w
b3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMg
aW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1k
eW5hbWljLWltcG9ydC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlMIER5bmFtaWMg
aW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBpbXBvcnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVl
IGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0
IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLXN0YXRpYy1pbXBvcnQtc2NyaXB0LmpzJy4iLCBleHBl
Y3RlZCBhcnJheQotRkFJTCBldmFsKGltcG9ydCgpKS4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFs
dWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBv
cnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFy
cmF5CitQQVNTIFN0YXRpYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBzdGF0aWMgaW1wb3J0LgorUEFT
UyBTdGF0aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LgorUEFTUyBEeW5hbWljIGlt
cG9ydC4KK1BBU1MgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LgorUEFTUyBEeW5hbWljIGltcG9ydCBh
bmQgdGhlbiBzdGF0aWMgaW1wb3J0LgorUEFTUyBldmFsKGltcG9ydCgpKS4KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21v
ZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0CmluZGV4IGRhMGU0ZWI2NzU4
ZDE0YTM3YTM5OGQwYjZmYzcxYWQzODc2YmQyNmIuLjFmYzBjNjZmZGY3MjRjMmFhM2I5MTA2OTgw
YmZiZTdlOTg4Zjk3NzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10
eXBlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1l
eHBlY3RlZC50eHQKQEAgLTIsMTEgKzIsNiBAQAogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rp
b24gd2l0aCB0aGUgZGVmYXVsdCB3b3JrZXIgdHlwZS4KIFBBU1MgVGVzdCB3b3JrZXIgY29uc3Ry
dWN0aW9uIHdpdGggdGhlICJjbGFzc2ljIiB3b3JrZXIgdHlwZS4KIFBBU1MgVGVzdCB3b3JrZXIg
Y29uc3RydWN0aW9uIHdpdGggdGhlICJtb2R1bGUiIHdvcmtlciB0eXBlLgotRkFJTCBUZXN0IHdv
cmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiBlbXB0eSB3b3JrZXIgdHlwZS4gYXNzZXJ0X3Rocm93
c19qczogV29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIGVtcHR5IHR5cGUgc2hvdWxkIHRocm93
IGFuIGV4Y2VwdGlvbiBmdW5jdGlvbiAiKCkgPT4gewotICAgICAgICBuZXcgV29ya2VyKCdyZXNv
dXJjZXMvcG9zdC1tZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzJywgeyB0eXBlOiAnJyB9KTsKLSAg
ICAgIH0iIGRpZCBub3QgdGhyb3cKLUZBSUwgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGgg
YW4gdW5rbm93biB3b3JrZXIgdHlwZS4gYXNzZXJ0X3Rocm93c19qczogV29ya2VyIGNvbnN0cnVj
dGlvbiB3aXRoIGFuIHVua25vd24gdHlwZSBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIGZ1bmN0
aW9uICIoKSA9PiB7Ci0gICAgICAgIG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9wb3N0LW1lc3NhZ2Ut
b24tbG9hZC13b3JrZXIuanMnLAotICAgICAgICAgICAgICAgICAgIHsgdHlwZTogJ3Vua25vd24n
IH0pOwotICAgICAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rp
b24gd2l0aCBhbiBlbXB0eSB3b3JrZXIgdHlwZS4KK1BBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0
aW9uIHdpdGggYW4gdW5rbm93biB3b3JrZXIgdHlwZS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNh
dGVkLXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRl
ZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQKaW5kZXggZThlYjU0MGJk
MzM5MjQwMGE4ZGJmZDkzODY0OGE2NDkyMzljMGQ5ZS4uZDFhNTBmN2VhM2NkNmRjMjk4ZWY3NTQx
NDc3NjJjNjljNTdkNzNiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1l
cnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLXBhcnNl
LWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsMTQgQEAKLUNPTlNPTEUgTUVT
U0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBl
Y3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgorQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjog
VW5leHBlY3RlZCB0b2tlbiAnOycKK0NPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gJzsnCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gRXJyb3I6
IGFzc2VydF9pbXBsZW1lbnRzOiBTdGF0aWMgaW1wb3J0IG11c3QgYmUgc3VwcG9ydGVkIG9uIG1v
ZHVsZSBkZWRpY2F0ZWQgd29ya2VyIHRvIHJ1biB0aGlzIHRlc3QuIHVuZGVmaW5lZAotCi1OT1RS
VU4gTW9kdWxlIHdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJv
ciBzaG91bGQgZGlzcGF0Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuCi1OT1RSVU4gU3RhdGljIGlt
cG9ydCBvbiBtb2R1bGUgd29ya2VyIGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJyb3Igc2hvdWxk
IGRpc3BhdGNoIGFuIGV2ZW50IG5hbWVkIGVycm9yLgorRkFJTCBNb2R1bGUgd29ya2VyIGNvbnN0
cnVjdGlvbiBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNob3VsZCBkaXNwYXRjaCBhbiBl
dmVudCBuYW1lZCBlcnJvci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZnVuY3Rpb24gImZ1bmN0
aW9uIEV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iIGJ1dCBnb3QgZnVuY3Rpb24gImZ1
bmN0aW9uIEVycm9yRXZlbnQoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIKK0ZBSUwgU3RhdGlj
IGltcG9ydCBvbiBtb2R1bGUgd29ya2VyIGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJyb3Igc2hv
dWxkIGRpc3BhdGNoIGFuIGV2ZW50IG5hbWVkIGVycm9yLiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCBmdW5jdGlvbiAiZnVuY3Rpb24gRXZlbnQoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIgYnV0
IGdvdCBmdW5jdGlvbiAiZnVuY3Rpb24gRXJyb3JFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVd
Cit9IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1leHBl
Y3RlZC50eHQKaW5kZXggNjM5ODQ3MTIxNDU5YTdhYjM3YjlmMDlhNjhiYTY0ZWE4YTllZDU3Yy4u
ZTk0Njk0N2IxNGFlZjNlNTI5OWEwYWJhM2FlNGIxY2Y5ZmNkOTU3MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJv
cGVydHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsx
LDggQEAKIENPTlNPTEUgTUVTU0FHRTogVW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uOiBSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCiAKLUZBSUwgVGVz
dCB0aGUgbmFtZSBwcm9wZXJ0eSBvZiBzaGFyZWQgYW5kIGRlZGljYXRlZCB3b3JrZXJzIHZpYSB0
aGUgbmFtZSBjb25zdHJ1Y3RvciBvcHRpb24gQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29y
a2VyCi1QQVNTIERlY2xhcmluZyBuYW1lIGFzIGFuIGFjY2lkZW50YWwgZ2xvYmFsIG11c3Qgbm90
IGNhdXNlIGEgaGFybmVzcyBlcnJvciBmb3IgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUKK0hh
cm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gVW5oYW5kbGVkIHJlamVjdGlvbjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCisKIFBBU1MgbmFtZSBwcm9wZXJ0eSB2YWx1ZSBm
b3IgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUKIFBBU1MgbmFtZSBwcm9wZXJ0eSBpcyByZXBs
YWNlYWJsZSBmb3IgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUKK1BBU1MgRGVjbGFyaW5nIG5h
bWUgYXMgYW4gYWNjaWRlbnRhbCBnbG9iYWwgbXVzdCBub3QgY2F1c2UgYSBoYXJuZXNzIGVycm9y
IGZvciBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQt
Y3JlZGVudGlhbHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNyZWRlbnRpYWxzLmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmMDY5MWFhMDljYzQ5Y2RmN2YyYTk0Mzc0YzZlNjIyMjBm
OTNiOGUyLi4wZGYyMzM0NmM3Y2Q5Zjg0Yzg0ZjRkZDM5MzQyZjUxYmY2YmM2ZDk4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRz
L2F1ZGlvLXdvcmtsZXQtY3JlZGVudGlhbHMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29y
a2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTEgQEAKIENP
TlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93
ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgogCi1GQUlMIEltcG9ydGluZyBhIHNh
bWUtb3JpZ2luIHNjcmlwdCB3aXRoIHRoZSBkZWZhdWx0IFdvcmtsZXRPcHRpb25zIHNob3VsZCBz
ZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJv
cjogUmVzcG9uc2UgaXMgbm90IDJ4eCIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2Ny
aXB0IHdpdGggdGhlIGRlZmF1bHQgV29ya2xldE9wdGlvbnMgc2hvdWxkIHNlbmQgdGhlIGNyZWRl
bnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIkFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuIgogUEFTUyBJbXBvcnRp
bmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIHRoZSBkZWZhdWx0IFdvcmtsZXRPcHRpb25z
IHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVudGlhbHMKLUZBSUwgSW1wb3J0aW5nIGEgc2FtZS1v
cmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9b21pdCBzaG91bGQgbm90IHNlbmQgdGhlIGNy
ZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiBSZXNwb25z
ZSBpcyBub3QgMnh4IgorRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0aCBj
cmVkZW50aWFscz1vbWl0IHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjog
VGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4iCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmln
aW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9b21pdCBzaG91bGQgbm90IHNlbmQgdGhlIGNyZWRl
bnRpYWxzCi1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRp
YWxzPXNhbWUtb3JpZ2luIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBGYWls
ZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogUmVzcG9uc2UgaXMgbm90IDJ4eCIKK0ZBSUwgSW1w
b3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9c2FtZS1vcmlnaW4g
c2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24gd2FzIGFi
b3J0ZWQuIgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRl
bnRpYWxzPXNhbWUtb3JpZ2luIHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVudGlhbHMKLUZBSUwg
SW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9aW5jbHVkZSBz
aG91bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVs
ZSwgZXJyb3I6IFJlc3BvbnNlIGlzIG5vdCAyeHgiCi1GQUlMIEltcG9ydGluZyBhIHJlbW90ZS1v
cmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9aW5jbHVkZSBzaG91bGQgc2VuZCB0aGUgY3Jl
ZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IE9yaWdpbiBo
dHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFs
bG93LU9yaWdpbi4iCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIGNy
ZWRlbnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IFRo
ZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuIgorRkFJTCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2lu
IHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRp
YWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IkFib3J0RXJyb3I6IENyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3Jp
Z2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNz
cC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dApp
bmRleCBiZjMzNWNmMzA1NWUwNjViMzg5ODliNDFhYTFlMjM2ZmViNGFjMjlkLi4yNzViMzQzN2Zh
ZDk3NTNhNmVjZTI0MjAwZWFiZjI1N2ZmZDYyNzJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3Nw
Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMSw0MCArMSw1MiBAQAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1z
Y3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29y
a2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1w
dHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcworQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJj
ZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcworQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9y
ZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcworQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3Jr
bGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcwog
Q09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGly
ZWN0aXZlICd3b3JrZXItc3JjJy4KIAogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29u
dGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0
cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcwogQ09O
U09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0
aXZlICd3b3JrZXItc3JjJy4KIAogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVu
dC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAogQ09OU09MRSBNRVNT
QUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3Jr
ZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5s
b2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0
aC1jb3JzLWhlYWRlci5qcwogQ09OU09MRSBNRVNTQUdFOiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQg
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvYWRkbW9kdWxlLXdpbmRv
dy5odG1sIHdhcyBub3QgYWxsb3dlZCB0byBkaXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBo
dHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2xldHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2Ny
aXB0LXdpdGgtY29ycy1oZWFkZXIuanMuCiAKIENPTlNPTEUgTUVTU0FHRTogW2Jsb2NrZWRdIFRo
ZSBwYWdlIGF0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2FkZG1v
ZHVsZS13aW5kb3cuaHRtbCB3YXMgbm90IGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250
ZW50IGZyb20gaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13
b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzLgogCitDT05TT0xFIE1FU1NBR0U6IFti
bG9ja2VkXSBUaGUgcGFnZSBhdCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291
cmNlcy9hZGRtb2R1bGUtd2luZG93Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5z
ZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJj
ZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcy4KKworQ09OU09MRSBN
RVNTQUdFOiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My93b3Jr
bGV0cy9yZXNvdXJjZXMvYWRkbW9kdWxlLXdpbmRvdy5odG1sIHdhcyBub3QgYWxsb3dlZCB0byBk
aXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vbG9jYWxob3N0Ojk0NDMvd29ya2xl
dHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMuCisK
IAogRkFJTCBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzaG91bGQgYmUgYmxvY2tlZCBieSB0aGUg
c2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVK
RUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgotRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1w
b3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNj
cmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVD
VEVEIiBidXQgZ290ICJSRVNPTFZFRCIKK1BBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9y
dGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJ5IHRoZSBzY3Jp
cHQtc3JjICdzZWxmJyBkaXJlY3RpdmUuCiBGQUlMIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IGlt
cG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJ5IHRoZSBz
Y3JpcHQtc3JjICdzZWxmJyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpF
Q1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCiBGQUlMIEEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVk
IHdvcmtsZXQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVj
dGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNPTFZF
RCIKLUZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4t
cmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3Nl
bGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVDVEVEIiBidXQgZ290
ICJSRVNPTFZFRCIKK1BBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90
ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlw
dC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4KIFBBU1MgQSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2hv
dWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNp
ZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuCi1QQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBp
bXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVj
YXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93
cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmln
aW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRp
cmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBIHJlbW90ZS1vcmln
aW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJl
IGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUg
b3JpZ2luIGFsbG93cyBpdC4KIFBBU1MgQSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgd29ya2xl
dCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUg
c3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3Jr
bGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5v
dCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlpbmcg
dGhlIG9yaWdpbiBhbGxvd3MgaXQuCitGQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRp
bmcgYSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tl
ZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4g
YWxsb3dzIGl0LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIlJF
SkVDVEVEIgogUEFTUyBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2Nr
ZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuCi1QQVNTIEEg
c2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91
bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxv
d3MgaXQuCitGQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3Jp
Z2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAq
IGRpcmVjdGl2ZSBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIg
YnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IGltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRo
ZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4KIFBBU1MgQSByZW1vdGUtb3JpZ2lu
LXJlZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2Ny
aXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuCi1QQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xl
dCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBub3Qg
YmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4K
K0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVk
aXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1z
cmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xW
RUQiIGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzaG91
bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29y
a2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuCi1QQVNTIEEgc2FtZS1vcmlnaW4g
d29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJs
b2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0
aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuCitGQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBv
cnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhl
IHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNy
YyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAi
UkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90
ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBk
aXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4K
IFBBU1MgQSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgbm90IGJlIGJs
b2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0
aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuCi1QQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBv
cnRpbmcgYSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBub3QgYmUgYmxv
Y2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRo
ZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9y
dGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9j
a2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdvcmtsZXRzIG9iZXkgdGhl
IHNjcmlwdC1zcmMgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQi
IGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBbiBpbnNlY3VyZS1vcmlnaW4gd29ya2xldCBzaG91
bGQgYmUgYmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLgogUEFTUyBBbiBpbnNlY3Vy
ZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2Yg
bWl4ZWQgY29udGVudHMuCi1GQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYW4g
aW5zZWN1cmUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBiZWNhdXNlIG9mIG1peGVk
IGNvbnRlbnRzLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJF
U09MVkVEIgotRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGFuIGluc2VjdXJl
LW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBiZWNhdXNlIG9mIG1p
eGVkIGNvbnRlbnRzLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3Qg
IlJFU09MVkVEIgorUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGFuIGluc2Vj
dXJlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYmVjYXVzZSBvZiBtaXhlZCBjb250
ZW50cy4KK1BBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhbiBpbnNlY3VyZS1v
cmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYmVjYXVzZSBvZiBtaXhl
ZCBjb250ZW50cy4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWltcG9ydC5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmts
ZXRzL2F1ZGlvLXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmZTg5NjVh
ZWY2Y2FkYTIyMTllZjhlMzA4ODhiYTkxZTI0MDE3YWMwLi40YmEwMThmMmQ4MGY5NGNjOGNhNTQz
NTAyN2JiNWI5NjRjMzZkMjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MTYsNyArMTYsMTMgQEAgUEFTUyBJbXBvcnRpbmcgYSBjcm9zcyBvcmlnaW4gcmVzb3VyY2Ugd2l0
aCB0aGUgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhlYWQKIFBBU1MgSW1wb3J0aW5nIGEg
Y3Jvc3Mgb3JpZ2luIHJlc291cmNlIHdpdGhvdXQgdGhlIEFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbiBoZWFkZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZQogUEFTUyBJbXBvcnRp
bmcgYSBjcm9zcy1vcmlnaW4tcmVkaXJlY3RlZCByZXNvdXJjZSB3aXRoIHRoZSBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4gaGVhZGVyIHNob3VsZCByZXNvbHZlIHRoZSBnaXZlbiBwcm9taXNl
CiBQQVNTIEltcG9ydGluZyBhIGNyb3NzLW9yaWdpbi1yZWRpcmVjdGVkIHJlc291cmNlIHdpdGhv
dXQgdGhlIEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiBoZWFkZXIgc2hvdWxkIHJlamVjdCB0
aGUgZ2l2ZW4gcHJvbWlzZQotRkFJTCBJbXBvcnRpbmcgYSBzY3JpcHQgdGhhdCBoYXMgYSBzeW50
YXggZXJyb3Igc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4gYXNzZXJ0X3VucmVhY2hl
ZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNv
ZGUKLUZBSUwgSW1wb3J0aW5nIGEgbmVzdGVkIHNjcmlwdCB0aGF0IGhhcyBhIHN5bnRheCBlcnJv
ciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9taXNlLiBhc3NlcnRfdW5yZWFjaGVkOiBTaG91
bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJ
TCBJbXBvcnRpbmcgYSBzY3JpcHQgdGhhdCBpbXBvcnRzIGFuIGludmFsaWQgaWRlbnRpZmllciBz
aG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9taXNlLiBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQg
aGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorRkFJTCBJ
bXBvcnRpbmcgYSBzY3JpcHQgdGhhdCBoYXMgYSBzeW50YXggZXJyb3Igc2hvdWxkIHJlamVjdCB0
aGUgZ2l2ZW4gcHJvbWlzZS4gcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9r
ZW4gJyknIiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ugb2YgZnVuY3Rpb24gImZ1
bmN0aW9uIFN5bnRheEVycm9yKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iICgiU3ludGF4RXJy
b3IiKQorRkFJTCBJbXBvcnRpbmcgYSBuZXN0ZWQgc2NyaXB0IHRoYXQgaGFzIGEgc3ludGF4IGVy
cm9yIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuIHByb21pc2VfcmVqZWN0c19qczog
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIlN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIHRva2VuICcpJyIgKCJTeW50YXhFcnJvciIpIGV4cGVjdGVkIGluc3Rh
bmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBTeW50YXhFcnJvcigpIHsKKyAgICBbbmF0aXZlIGNv
ZGVdCit9IiAoIlN5bnRheEVycm9yIikKK0ZBSUwgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaW1w
b3J0cyBhbiBpbnZhbGlkIGlkZW50aWZpZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlz
ZS4gcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0i
IHRocmV3IG9iamVjdCAiQWJvcnRFcnJvcjogTW9kdWxlIHNwZWNpZmllciwgJ2ludmFsaWQtc3Bl
Y2lmaWVyLmpzJyBkb2VzIG5vdCBzdGFydCB3aXRoICIvIiwgIi4vIiwgb3IgIi4uLyIuIFJlZmVy
ZW5jZWQgZnJvbSBibG9iOmh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvZDE2YzRlNWYtYWRkYi00YmRh
LTlmZmEtZjdmYmZkZjA4OTI0IiAoIkFib3J0RXJyb3IiKSBleHBlY3RlZCBpbnN0YW5jZSBvZiBm
dW5jdGlvbiAiZnVuY3Rpb24gVHlwZUVycm9yKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iICgi
VHlwZUVycm9yIikKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2xldHMvYXVkaW8td29ya2xldC1yZWZlcnJlci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMjRk
NDk5YzE0MWNlZTZkYzliMmViZTI0YmZiNGZmNGMwM2EwYTk3My4uNjRiOWM2NTI4MGNiNWViNGI3
MDE1NmM4N2ExZjcyMDU0ZjJhYjQ2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtcmVmZXJyZXIuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0xLDMgKzEsOCBAQAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvcmVmZXJyZXItY2hlY2tl
ci5weT9yZWZlcnJlcl9wb2xpY3k9bm8tcmVmZXJyZXImZXhwZWN0ZWRfcmVmZXJyZXI9CitCbG9j
a2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dv
cmtsZXRzL3Jlc291cmNlcy9yZWZlcnJlci1jaGVja2VyLnB5P3JlZmVycmVyX3BvbGljeT1vcmln
aW4mZXhwZWN0ZWRfcmVmZXJyZXI9aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My8KK0NPTlNPTEUgTUVT
U0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvcmVmZXJyZXIt
Y2hlY2tlci5weT9yZWZlcnJlcl9wb2xpY3k9c2FtZS1vcmlnaW4mZXhwZWN0ZWRfcmVmZXJyZXI9
CitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBh
bGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIAogUEFTUyBJbXBvcnRpbmcg
YSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiBy
ZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgogUEFTUyBJbXBvcnRpbmcg
YSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAibm8tcmVmZXJyZXIi
IHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCkBAIC02LDE1ICsxMSwx
NSBAQCBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdlIHRo
YXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbAogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdp
biBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xp
Y3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4g
c2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4KIFBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4g
c2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVm
ZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIElt
cG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0
IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90
IHNlbmQgcmVmZXJyZXIuCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZy
b20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJl
ZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmll
ZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgogUEFTUyBJbXBvcnRp
bmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3Jp
cHQgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5k
IHJlZmVycmVyLgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEg
cmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVy
cmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCiBQQVNTIEltcG9ydGluZyBhIHNh
bWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBo
YXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJ
bXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xl
dCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJl
ZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90
ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNj
cmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAib3JpZ2lu
IiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBh
IHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhh
dCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIu
Ci1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdp
biB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBz
aG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNj
cmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1v
cmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIElt
cG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmts
ZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBz
ZW5kIHJlZmVycmVyLgorRkFJTCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9t
IGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIg
cG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVT
T0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3Mt
T3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1v
cmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFz
ICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJUaGUgb3BlcmF0aW9uIHdhcyBhYm9y
dGVkLiIKK0ZBSUwgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90
ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQi
IGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2lu
IFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4g
c2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1v
cmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVk
LiIKK0ZBSUwgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHNhbWUtb3Jp
Z2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09M
VkVEIiBidXQgZ290ICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9y
aWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3Jp
Z2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAi
c2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiVGhlIG9wZXJhdGlvbiB3
YXMgYWJvcnRlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20g
YSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVm
ZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkg
Q3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtcmVk
aXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0ZWQtd29ya2VyLW9y
aWdpbi1leHBlY3RlZC50eHQKaW5kZXggMWUyZDM5OTJmNmQ1ZGYzMjIwN2E2YjBmNjE5YTZkNzEx
ODEyNDAwZC4uN2E3YTkxN2VhYTk4ZTkyZWUwM2VjMjhhMTFlNzgwODRkMjM0Yjg4NiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Bl
bi11cmwtcmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1yZWRpcmVj
dGVkLXdvcmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cyLmxvY2FsaG9zdDo4ODAwL3hoci9yZXNv
dXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5P2ZpbHRlcl9uYW1lPW9yaWdpbiZjb3JzCiAKLUZBSUwg
UmVmZXJlciBoZWFkZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJlZmVyZXI6IGh0dHA6Ly9s
b2NhbGhvc3Q6ODgwMC94aHIvcmVzb3VyY2VzL3dvcmtlcnhoci1vcmlnaW4tcmVmZXJyZXIuanNc
biIgYnV0IGdvdCAiUmVmZXJlcjogaHR0cDovL2xvY2FsaG9zdDo4ODAwL3hoci9yZXNvdXJjZXMv
cmVkaXJlY3QucHk/bG9jYXRpb249d29ya2VyeGhyLW9yaWdpbi1yZWZlcnJlci5qc1xuIgorUEFT
UyBSZWZlcmVyIGhlYWRlcgogRkFJTCBPcmlnaW4gaGVhZGVyIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJPcmlnaW46IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMFxuIiBidXQgZ290ICIiCiBQQVNTIFJl
cXVlc3QgVVJMIHRlc3QKIAo=
</data>
<flag name="commit-queue"
          id="438451"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420050</attachid>
            <date>2021-02-11 15:13:12 -0800</date>
            <delta_ts>2021-02-11 20:18:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210211151311.patch</filename>
            <type>text/plain</type>
            <size>229913</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MWIwMmZhMTIzZDg5YjM2OTdlZDZhNWE1YmI0N2ExOWY2YzNkNzI1Li40OTY2YzcwZWE2NDQ5NmE5
YTZlN2MzM2NlM2NhY2FmODljN2Q5ZjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAyMS0wMi0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcDoK
KyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9yKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlRXJyb3IpOgorICAgICAg
ICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVSYW5nZUVycm9y
KToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVmZXJlbmNlRXJyb3IpOgorICAgICAgICAoSlNDOjpj
cmVhdGVTeW50YXhFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVR5cGVFcnJvcik6CisgICAg
ICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlR2V0dGVyVHlw
ZUVycm9yKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvRXJy
b3JJbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OkVycm9ySW5zdGFu
Y2UpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGUpOgorICAgICAgICAoSlND
OjpFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6
RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkTmFtZVN0cmluZyk6CisgICAgICAgIChKU0M6OkVycm9y
SW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5z
dGFuY2UuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRlKToKKyAgICAgICAg
KEpTQzo6RXJyb3JJbnN0YW5jZTo6ZXJyb3JUeXBlIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNv
bnN0cnVjdEltcGwpOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9y
VHlwZT46OmNhbGxJbXBsKToKKyAgICAgICAgKiBydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6Ok51bGxTZXR0ZXJGdW5jdGlvbkludGVybmFsOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVF
cnJvci5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OkpTV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3IpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUxp
bmtFcnJvci5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OkpTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IpOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRp
bWVFcnJvci5jcHA6CisgICAgICAgIChKU0M6OkpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OkpT
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3IpOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlD
b21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0
cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorCiAyMDIxLTAyLTEwICBT
YWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGNyYXNoIHdo
ZW4gcmVwYXJzaW5nIGFuIGFycm93IGZ1bmN0aW9uIGFuZCB0aGUgcGFyc2luZyBpbnZhcmlhbnQg
aXMgYnJva2VuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA1MTUzZGY5Mjc2YTBlYzEzMzI1OTg1ZDNjMGE5NGQw
OTE3M2I4ZC4uZjNlOGYyM2QyNTBmZGY5YzU5ZTIwMjNmZTg4ODc0YTBiZmYxZWJjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAyMS0wMi0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRl
cjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdFNjcmlw
dFdpdGhDYWNoZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25I
YW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhv
dXROYW1lKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2NyaXB0TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xv
YmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RP
TUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVBy
b3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVh
dGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVM
b2FkZXJJbXBvcnRNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5k
b3dCYXNlOjptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyk6IERlbGV0ZWQu
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNFeGVjU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXhlY1N0YXRlOjps
b2FkQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxT
Y29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5cGUuaC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6Y2xlYXJDbGllbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpzY3JpcHRGZXRjaGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6cGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgICogYmlu
ZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIpOgorICAgICAgICAo
V2ViQ29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxl
TG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om1v
ZHVsZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNl
VVJMRnJvbVJlcXVlc3RVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVy
OjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9y
dE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRTb3VyY2VDb2RlOjpTY3JpcHRTb3VyY2VDb2RlKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6fldvcmtlck1vZHVsZVNj
cmlwdExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6
OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3Rp
ZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oLgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIuaDogQWRkZWQuCisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBkb20vTG9hZGFibGVNb2R1bGVTY3Jp
cHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQpOiBE
ZWxldGVkLgorICAgICAgICAqIGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oOgorICAgICAgICAq
IGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6
OnJlcXVlc3RNb2R1bGVTY3JpcHQpOgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSk6CisgICAg
ICAgICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVh
ZGFibGVMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyOjpXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpub3RpZnlGaW5pc2hlZCk6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5pZGw6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwdHMpOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNj
b3BlOjpjcmVkZW50aWFscyBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZVByb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9i
YWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU6Oldvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmg6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6bW9kdWxlTG9h
ZGVyKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9kdWxlS2V5KToKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKToK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRN
b2R1bGVTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldFNj
cmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUp
OgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
U2NyaXB0TG9hZGVyOjpyZXNwb25zZVNvdXJjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJTY3JpcHRMb2FkZXI6OmlzUmVkaXJlY3RlZCBjb25zdCk6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyUGFyYW1ldGVyczo6
aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6ZXZh
bHVhdGVTY3JpcHRJZk5lY2Vzc2FyeSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQu
aDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclR5cGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VySm9iLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJK
b2I6OmZldGNoU2NyaXB0V2l0aENvbnRleHQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oOgorICAgICAgICAqIHdvcmtsZXRz
L1dvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFs
U2NvcGU6OmZldGNoQW5kSW52b2tlU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRH
bG9iYWxTY29wZTo6cHJvY2Vzc05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6bm90aWZ5
RmluaXNoZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3Bl
OjpkaWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3JrbGV0
cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaDoKKwogMjAyMS0wMi0xMCAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3QgZGlmZmVyZW50aWF0ZSBiZXR3ZWVu
IFJlbGVhc2UgYW5kIFByb2R1Y3Rpb24gdmlhIEVOQUJMRV9ERVZFTE9QRVJfTU9ERQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwCmluZGV4IDc1
OWE1YjI0YTBlZDA4NjgwY2NhYTYzNDBkMmU5NWQ0NTBiODBmZDYuLjI5NmM4NWNjOTBlMDViNTQ1
NDdmNjYyYTdlMmY4YTFlMTMwYTQ2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiBjb25zdCBDbGFzc0luZm8gQWdncmVnYXRlRXJyb3I6OnNfaW5mbyA9IHsgIkFnZ3JlZ2F0
ZUVycm9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShBZ2dyZWdhdGVFcnJvcikgfTsKIAogQWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9y
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUp
CisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6QWdncmVnYXRlRXJyb3IpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAppbmRleCBmNDczYjgx
ODFlYzJmMDJhMGNjNzhhMjZjMGMyMGRjOTYzMWZkYzc0Li4wOGE0MGRlMTZjZTVhNzdmZWYzNDY2
YTM0MTVlN2Y1NDRmZjkwMDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3Iu
Y3BwCkBAIC0zNSwzNyArMzUsMzcgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09iamVjdCogY3JlYXRl
RXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQo
IW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0
dXJlKCksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0dXJu
IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwg
Z2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5v
dGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlRXZh
bEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJU
KCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShn
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVj
dHVyZShFcnJvclR5cGU6OkV2YWxFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGlu
ZywgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3Qs
IGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5
cGU6OkV2YWxFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBl
OjpFdmFsRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlUmFuZ2VFcnJvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5z
dGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5p
c0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0
LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JU
eXBlOjpSYW5nZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsK
KyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmFuZ2VF
cnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpSYW5nZUVy
cm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVJlZmVyZW5jZUVycm9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5j
ZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1w
dHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6
OlJlZmVyZW5jZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsK
KyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmVmZXJl
bmNlRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6UmVm
ZXJlbmNlRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlU3ludGF4RXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvcklu
c3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2Uu
aXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9y
VHlwZTo6U3ludGF4RXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUp
OworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpTeW50
YXhFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpTeW50
YXhFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVUeXBlRXJyb3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNl
OjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlciwgUnVudGltZVR5cGUgdHlwZSkKIHsKICAgICBBU1NF
UlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRl
KGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3Ry
dWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHRy
dWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpU
eXBlRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwgRXJyb3JUeXBlOjpUeXBlRXJyb3Is
IHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIg
YXBwZW5kZXIpCkBAIC03Niw3ICs3Niw3IEBAIEpTT2JqZWN0KiBjcmVhdGVOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvckluc3RhCiBKU09i
amVjdCogY3JlYXRlVVJJRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikK
IHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmpl
Y3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VVJJRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRl
ciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUo
Z2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1
Y3R1cmUoRXJyb3JUeXBlOjpVUklFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGlu
ZywgRXJyb3JUeXBlOjpVUklFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFcnJv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5cGUgZXJyb3JUeXBlLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0xMTMsNyArMTEzLDcgQEAgSlNPYmplY3QqIGNyZWF0ZUVy
cm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9yVHlwZVdpdGhFeHRlbnNpb24g
ZXJyb3IKIEpTT2JqZWN0KiBjcmVhdGVHZXR0ZXJUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIEFTU0VSVCghbWVzc2Fn
ZS5pc0VtcHR5KCkpOwotICAgIGF1dG8qIGVycm9yID0gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0
dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSk7CisgICAgYXV0byogZXJyb3IgPSBF
cnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGds
b2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdl
LCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IpOwogICAgIGVycm9y
LT5zZXROYXRpdmVHZXR0ZXJUeXBlRXJyb3IoKTsKICAgICByZXR1cm4gZXJyb3I7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IDBmMmY1YTMxODQwMmZiYjdjN2Q4ODAyYjZkNzg0MmVmZTQwNmM4NDYuLjliZTkzMGNmMWMz
YzlhNDBlNjA4NTk4MzU1OGExYTU5YmM3OGI2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCkBAIC02MCwxNCArNjAsMTQgQEAg
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVh
dGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25S
ZWFsbSh2bSwgbmV3VGFyZ2V0KS0+ZXJyb3JTdHJ1Y3R1cmUoKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKIAotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3Ry
dWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKSk7CisgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVO
b3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpKTsKIH0KIAogSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxFcnJvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNh
bGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGds
b2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNz
YWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJl
LCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2Up
KTsKIH0KIAogYm9vbCBFcnJvckNvbnN0cnVjdG9yOjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4IDJlNGVjMzlmMTIwNThiMjUwODcyMmUw
YjgyNTIyNDdiZWIwMzE5ZTYuLjBmODZlMjJiOTJkZGQ2ZDEzOTg1OGI4NmU1NmNlYWRjYWVjZTBk
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFu
Y2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2Uu
Y3BwCkBAIC0zNCwxOCArMzQsMjMgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5m
byBFcnJvckluc3RhbmNlOjpzX2luZm8gPSB7ICJFcnJvciIsICZKU05vbkZpbmFsT2JqZWN0Ojpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRXJyb3JJbnN0YW5j
ZSkgfTsKIAotRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQorRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBFcnJvclR5cGUgZXJyb3JUeXBlKQogICAgIDogQmFzZSh2bSwgc3RydWN0
dXJlKQorICAgICwgbV9lcnJvclR5cGUoZXJyb3JUeXBlKQorICAgICwgbV9zdGFja092ZXJmbG93
RXJyb3IoZmFsc2UpCisgICAgLCBtX291dE9mTWVtb3J5RXJyb3IoZmFsc2UpCisgICAgLCBtX2Vy
cm9ySW5mb01hdGVyaWFsaXplZChmYWxzZSkKKyAgICAsIG1fbmF0aXZlR2V0dGVyVHlwZUVycm9y
KGZhbHNlKQogewogfQogCi1FcnJvckluc3RhbmNlKiBFcnJvckluc3RhbmNlOjpjcmVhdGUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUg
bWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUsIGJvb2wg
dXNlQ3VycmVudEZyYW1lKQorRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVl
IG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlLCBFcnJv
clR5cGUgZXJyb3JUeXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogICAgIFN0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS5pc1VuZGVmaW5lZCgpID8g
U3RyaW5nKCkgOiBtZXNzYWdlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgcmV0dXJuIGNyZWF0ZShnbG9iYWxP
YmplY3QsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2VTdHJpbmcsIGFwcGVuZGVyLCB0eXBlLCB1c2VD
dXJyZW50RnJhbWUpOworICAgIHJldHVybiBjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0
dXJlLCBtZXNzYWdlU3RyaW5nLCBhcHBlbmRlciwgdHlwZSwgZXJyb3JUeXBlLCB1c2VDdXJyZW50
RnJhbWUpOwogfQogCiBzdGF0aWMgU3RyaW5nIGFwcGVuZFNvdXJjZVRvRXJyb3JNZXNzYWdlKENh
bGxGcmFtZSogY2FsbEZyYW1lLCBFcnJvckluc3RhbmNlKiBleGNlcHRpb24sIEJ5dGVjb2RlSW5k
ZXggYnl0ZWNvZGVJbmRleCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTMxLDcgKzEzNiwy
NSBAQCB2b2lkIEVycm9ySW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgUwogLy8gQmFzZWQgb24gRXJyb3JQcm90b3R5cGUn
cyBlcnJvclByb3RvRnVuY1RvU3RyaW5nKCksIGJ1dCBpcyBtb2RpZmllZCB0bwogLy8gaGF2ZSBu
byBvYnNlcnZhYmxlIHNpZGUgZWZmZWN0cyB0byB0aGUgdXNlciAoaS5lLiBkb2VzIG5vdCBjYWxs
IHByb3hpZXMsCiAvLyBhbmQgZ2V0dGVycykuCi1TdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRp
emVkVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK1N0cmluZyBFcnJvcklu
c3RhbmNlOjpzYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBJbnRlZ3JpdHk6OmF1ZGl0U3RydWN0dXJl
SUQodm0sIHN0cnVjdHVyZUlEKCkpOworCisgICAgSlNWYWx1ZSBtZXNzYWdlVmFsdWU7CisgICAg
YXV0byBtZXNzYWdlUHJvcGVydE5hbWUgPSB2bS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlOworICAg
IFByb3BlcnR5U2xvdCBtZXNzYWdlU2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0
aG9kVHlwZTo6Vk1JbnF1aXJ5LCAmdm0pOworICAgIGlmIChKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVByb3BlcnROYW1lLCBtZXNzYWdlU2xv
dCkgJiYgbWVzc2FnZVNsb3QuaXNWYWx1ZSgpKQorICAgICAgICBtZXNzYWdlVmFsdWUgPSBtZXNz
YWdlU2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSk7CisgICAg
c2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKKworICAgIGlmICghbWVzc2FnZVZhbHVlKQorICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBtZXNz
YWdlVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KSk7Cit9CisKK1N0cmluZyBFcnJvcklu
c3RhbmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1NywyOCArMTgwLDIyIEBAIFN0cmluZyBFcnJv
ckluc3RhbmNlOjpzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogICAgIH0KICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogCi0gICAgU3RyaW5nIG5h
bWVTdHJpbmc7CiAgICAgaWYgKCFuYW1lVmFsdWUpCi0gICAgICAgIG5hbWVTdHJpbmcgPSAiRXJy
b3IiX3M7Ci0gICAgZWxzZSB7Ci0gICAgICAgIG5hbWVTdHJpbmcgPSBuYW1lVmFsdWUudG9XVEZT
dHJpbmcoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
U3RyaW5nKCkpOwotICAgIH0KKyAgICAgICAgcmV0dXJuICJFcnJvciJfczsKKyAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIG5hbWVWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpKTsK
K30KIAotICAgIEpTVmFsdWUgbWVzc2FnZVZhbHVlOwotICAgIGF1dG8gbWVzc2FnZVByb3BlcnRO
YW1lID0gdm0ucHJvcGVydHlOYW1lcy0+bWVzc2FnZTsKLSAgICBQcm9wZXJ0eVNsb3QgbWVzc2Fn
ZVNsb3QodGhpcywgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSwg
JnZtKTsKLSAgICBpZiAoSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzLCBnbG9iYWxP
YmplY3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSwgbWVzc2FnZVNsb3QpICYmIG1lc3NhZ2VTbG90Lmlz
VmFsdWUoKSkKLSAgICAgICAgbWVzc2FnZVZhbHVlID0gbWVzc2FnZVNsb3QuZ2V0VmFsdWUoZ2xv
YmFsT2JqZWN0LCBtZXNzYWdlUHJvcGVydE5hbWUpOwotICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0
aW9uKCk7CitTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEludGVncml0
eTo6YXVkaXRTdHJ1Y3R1cmVJRCh2bSwgc3RydWN0dXJlSUQoKSk7CiAKLSAgICBTdHJpbmcgbWVz
c2FnZVN0cmluZzsKLSAgICBpZiAoIW1lc3NhZ2VWYWx1ZSkKLSAgICAgICAgbWVzc2FnZVN0cmlu
ZyA9IFN0cmluZygpOwotICAgIGVsc2UgewotICAgICAgICBtZXNzYWdlU3RyaW5nID0gbWVzc2Fn
ZVZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIFN0cmluZygpKTsKLSAgICB9CisgICAgU3RyaW5nIG5hbWVTdHJpbmcgPSBz
YW5pdGl6ZWROYW1lU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgU3RyaW5nKCkpOworCisgICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBzYW5pdGl6
ZWRNZXNzYWdlU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgU3RyaW5nKCkpOwogCiAgICAgaWYgKCFuYW1lU3RyaW5nLmxlbmd0aCgpKQogICAgICAg
ICByZXR1cm4gbWVzc2FnZVN0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9ySW5zdGFuY2UuaAppbmRleCBkYTY2ZWI3NmU3YWRlOTBmZDQxYmIxNjI3MDcyNWE3ZDE0
NzBhZDM4Li45ODcxMzU3MjFiMzA1NjYyMzBkMjYxYzgzM2FkOGRlY2E1NDYxNDU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC0yMCw2ICsy
MCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRXJyb3JUeXBlLmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJSdW50aW1lVHlwZS5oIgogI2luY2x1ZGUgIlN0YWNr
RnJhbWUuaCIKQEAgLTUzLDE0ICs1NCwxNCBAQCBjbGFzcyBFcnJvckluc3RhbmNlIDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhFcnJvckluc3RhbmNlVHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBFcnJvckluc3RhbmNl
KiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRl
ciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlIHR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJy
ZW50RnJhbWUgPSB0cnVlKQorICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciA9IG51bGxwdHIsIFJ1
bnRpbWVUeXBlIHR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JUeXBlIGVycm9yVHlwZSA9IEVycm9y
VHlwZTo6RXJyb3IsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKICAgICB7Ci0gICAgICAg
IEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8RXJy
b3JJbnN0YW5jZT4odm0uaGVhcCkpIEVycm9ySW5zdGFuY2Uodm0sIHN0cnVjdHVyZSk7CisgICAg
ICAgIEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8
RXJyb3JJbnN0YW5jZT4odm0uaGVhcCkpIEVycm9ySW5zdGFuY2Uodm0sIHN0cnVjdHVyZSwgZXJy
b3JUeXBlKTsKICAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmpl
Y3QsIG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJyZW50RnJhbWUpOwogICAgICAgICBy
ZXR1cm4gaW5zdGFuY2U7CiAgICAgfQogCi0gICAgc3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0
ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBw
ZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJl
bnRGcmFtZSA9IHRydWUpOworICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyID0g
bnVsbHB0ciwgUnVudGltZVR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JUeXBlID0gRXJyb3JUeXBl
OjpFcnJvciwgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKIAogICAgIGJvb2wgaGFzU291
cmNlQXBwZW5kZXIoKSBjb25zdCB7IHJldHVybiAhIW1fc291cmNlQXBwZW5kZXI7IH0KICAgICBT
b3VyY2VBcHBlbmRlciBzb3VyY2VBcHBlbmRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlQXBw
ZW5kZXI7IH0KQEAgLTcwLDYgKzcxLDcgQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKICAgICBSdW50aW1lVHlwZSBydW50aW1lVHlwZUZvckNhdXNlKCkg
Y29uc3QgeyByZXR1cm4gbV9ydW50aW1lVHlwZUZvckNhdXNlOyB9CiAgICAgdm9pZCBjbGVhclJ1
bnRpbWVUeXBlRm9yQ2F1c2UoKSB7IG1fcnVudGltZVR5cGVGb3JDYXVzZSA9IFR5cGVOb3RoaW5n
OyB9CiAKKyAgICBFcnJvclR5cGUgZXJyb3JUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvclR5
cGU7IH0KICAgICB2b2lkIHNldFN0YWNrT3ZlcmZsb3dFcnJvcigpIHsgbV9zdGFja092ZXJmbG93
RXJyb3IgPSB0cnVlOyB9CiAgICAgYm9vbCBpc1N0YWNrT3ZlcmZsb3dFcnJvcigpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhY2tPdmVyZmxvd0Vycm9yOyB9CiAgICAgdm9pZCBzZXRPdXRPZk1lbW9yeUVy
cm9yKCkgeyBtX291dE9mTWVtb3J5RXJyb3IgPSB0cnVlOyB9CkBAIC03OSw2ICs4MSw4IEBAIGNs
YXNzIEVycm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgYm9vbCBp
c05hdGl2ZUdldHRlclR5cGVFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlR2V0dGVyVHlw
ZUVycm9yOyB9CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgc2FuaXRpemVkVG9TdHJp
bmcoSlNHbG9iYWxPYmplY3QqKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgc2FuaXRp
emVkTWVzc2FnZVN0cmluZyhKU0dsb2JhbE9iamVjdCopOworICAgIEpTX0VYUE9SVF9QUklWQVRF
IFN0cmluZyBzYW5pdGl6ZWROYW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgCiAgICAg
VmVjdG9yPFN0YWNrRnJhbWU+KiBzdGFja1RyYWNlKCkgeyByZXR1cm4gbV9zdGFja1RyYWNlLmdl
dCgpOyB9CiAKQEAgLTg4LDcgKzkyLDcgQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKICAgICB2b2lkIGZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZNJik7
CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKFZNJiwgU3RydWN0dXJl
Kik7CisgICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShWTSYsIFN0cnVjdHVyZSosIEVycm9yVHlw
ZSk7CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBjb25z
dCBTdHJpbmcmLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5v
dGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7CiAKQEAgLTEwOCwxMCArMTEyLDEx
IEBAIGNsYXNzIEVycm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAg
U3RyaW5nIG1fc291cmNlVVJMOwogICAgIFN0cmluZyBtX3N0YWNrU3RyaW5nOwogICAgIFJ1bnRp
bWVUeXBlIG1fcnVudGltZVR5cGVGb3JDYXVzZSB7IFR5cGVOb3RoaW5nIH07Ci0gICAgYm9vbCBt
X3N0YWNrT3ZlcmZsb3dFcnJvciB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX291dE9mTWVtb3J5RXJy
b3IgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9lcnJvckluZm9NYXRlcmlhbGl6ZWQgeyBmYWxzZSB9
OwotICAgIGJvb2wgbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3IgeyBmYWxzZSB9OworICAgIEVycm9y
VHlwZSBtX2Vycm9yVHlwZSB7IEVycm9yVHlwZTo6RXJyb3IgfTsKKyAgICBib29sIG1fc3RhY2tP
dmVyZmxvd0Vycm9yIDogMTsKKyAgICBib29sIG1fb3V0T2ZNZW1vcnlFcnJvciA6IDE7CisgICAg
Ym9vbCBtX2Vycm9ySW5mb01hdGVyaWFsaXplZCA6IDE7CisgICAgYm9vbCBtX25hdGl2ZUdldHRl
clR5cGVFcnJvciA6IDE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNw
cAppbmRleCA0MDIxZmM3ZTBhZGFmN2EwYTllMGVmNmNmZDIyNTgzOGI1YmY4NzgzLi5hZjcyNjI4
MzFjYTFiYjc1YzZhZTU1NDExZGU0Y2Q4NWE4MTM3ZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBA
IC02OTQsNyArNjk0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNUaHJv
d1R5cGVFcnJvckFyZ3VtZW50c0NhbGxlZUFuZENhbGxlciwgKEpTR2wKIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihnbG9iYWxGdW5jTWFrZVR5cGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBTdHJ1Y3R1cmUqIGVycm9y
U3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVF
cnJvcik7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUo
Z2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgbnVs
bHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShF
cnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgY2FsbEZy
YW1lLT5hcmd1bWVudCgwKSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVy
cm9yLCBmYWxzZSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1By
b3RvR2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZl
RXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCA3Y2MxMWI1ZjVlMTI5NzIyMDE2Yjg2NzFmMTM3
YzZiYjE3MjEzODQwLi5iNmU3ZWRlZmQ0MmVkYzYzNWQ5MGI3ZTBlOGM3YjRmYzBjMjQzZDFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJv
ckNvbnN0cnVjdG9yLmNwcApAQCAtNTgsNyArNTgsNyBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUg
TmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxlcnJvclR5cGU+Ojpjb25zdHJ1Y3RJbXBsKEpTR2xvYmFs
TwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgQVNTRVJUKGVycm9y
U3RydWN0dXJlKTsKIAotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBt
ZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKSk7CisgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBl
cnJvclR5cGUsIGZhbHNlKSkpOwogfQogCiB0ZW1wbGF0ZTxFcnJvclR5cGUgZXJyb3JUeXBlPgpA
QCAtNjYsNyArNjYsNyBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgTmF0aXZlRXJyb3JDb25zdHJ1
Y3RvcjxlcnJvclR5cGU+OjpjYWxsSW1wbChKU0dsb2JhbE9iamVjdAogewogICAgIEpTVmFsdWUg
bWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0
cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoZXJyb3JUeXBlKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3Qs
IGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZXJy
b3JUeXBlLCBmYWxzZSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEV2YWxF
cnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJG
dW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVu
Y3Rpb24uY3BwCmluZGV4IDI2ZjNiNmE4ZjlkYjY3OGNkOTRkMDVhZTg4YjExYjg5ZTYxYzBlYmMu
LjBkZGIyYzZhNTBmNDZiYzYzNjk5NWNhNDZkN2YxOGU1YjI2ODYzZWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcApAQCAt
OTQsNyArOTQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFRocm93RXJyb3IsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2Fs
bGVkIGZyb20gSUMuIEFuZCB3ZSBkbyBub3Qgd2FudCB0byBpbmNsdWRlIHRoaXMgZnJhbWUgaW4g
RXJyb3IncyBzdGFjay4KICAgICBjb25zdGV4cHIgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSBmYWxz
ZTsKLSAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBFcnJvckluc3RhbmNl
OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yLCBudWxscHRy
LCBUeXBlTm90aGluZywgdXNlQ3VycmVudEZyYW1lKSk7CisgICAgdGhyb3dFeGNlcHRpb24oZ2xv
YmFsT2JqZWN0LCBzY29wZSwgRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0s
IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBSZWFk
b25seVByb3BlcnR5V3JpdGVFcnJvciwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6
VHlwZUVycm9yLCB1c2VDdXJyZW50RnJhbWUpKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGls
ZUVycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlD
b21waWxlRXJyb3IuY3BwCmluZGV4IDM4MzczYTc2MGQ1OWQwZWVkYjQ5NGRiODhkODUyNGZhYjlh
NTE1NGUuLjllYmQzZDQ0NmE5ZGE5YWQxOWQ3YmE0MTk5MDA2M2ZjNWE2MzI4ZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJy
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlD
b21waWxlRXJyb3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEpTV2ViQXNzZW1ibHlDb21waWxlRXJy
b3IqIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xv
CiB9CiAKIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OkpTV2ViQXNzZW1ibHlDb21waWxlRXJy
b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgRXJyb3JUeXBlOjpFcnJvcikKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxp
bmtFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5
TGlua0Vycm9yLmNwcAppbmRleCBlYWRlMDM0MTNlNGNlMzYwYmEwODlmOGM1M2QxOGNmOGQ2ZDcw
MjM1Li45YjIwMDU4ZWNmMzRhZjkxYjZiMThkMTVmNjUxNTc4NWMyMTcyZTJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vy
cm9yLmNwcApAQCAtNDEsNyArNDEsNyBAQCBKU1dlYkFzc2VtYmx5TGlua0Vycm9yKiBKU1dlYkFz
c2VtYmx5TGlua0Vycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogfQogCiBK
U1dlYkFzc2VtYmx5TGlua0Vycm9yOjpKU1dlYkFzc2VtYmx5TGlua0Vycm9yKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6RXJyb3IpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ci5jcHAKaW5kZXggYmUxZjkyODYwMzA0NWQ3Y2Y3MjkzMjRlZTRhNzdhZTgzZmNlOWNiZS4uMTkz
M2E2ZTM4ODhmYmVhY2NmMDdhYzJiMzdjNzQ1MDQ4NGZhNTFmMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciogSlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvcjo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogSlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDog
QmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5cGU6OkVycm9yKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDVjZDAwMzVhMDFmZGI3OGRkYzM1ZmM0
N2I2Yjg1ODBiZTQ1ZDM1OTcuLmMzYTBkMzk3ZjUwNGUyNThmMWQ3MGY4YjQ4MmI3OWExZDllNzI2
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC02NSw3ICs2
NSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseUNvbXBpbGVF
cnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0g
Z2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVjdHVyZSgpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
ZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJv
clR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0
cnVjdG9yKiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUq
IHRoaXNQcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDk0
NmRlZjRmMTE1MjI5YTIyNWJlOTMyYWM5ZTY0MzViNmM4YWIyYTkuLjJjNWY2YTI5MzFmMTUyMTU4
NWFhYTkzNWU1NmI0YmQyZjE5YzE2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3Iu
Y3BwCkBAIC02NSw3ICs2NSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJB
c3NlbWJseUxpbmtFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiB7CiAgICAgSlNW
YWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUqIGVy
cm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUxpbmtFcnJvclN0cnVjdHVy
ZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5n
LCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVO
b3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBXZWJBc3NlbWJseUxpbmtF
cnJvckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUo
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90b3R5
cGUqIHRoaXNQcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3Bw
CmluZGV4IDNkZmQ5MTU2N2I2MGE1OGRkOWFhNjg0MmZmNjc5MDIxZjVjYjkyNTIuLmE4NTY2OWM1
MThiMWU5YWE2OGM5NWFkMDU2NmViZmQ2ZmMzZGZhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVy
cm9yQ29uc3RydWN0b3IuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjYWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAg
ICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseVJ1
bnRpbWVFcnJvclN0cnVjdHVyZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJ
bnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51
bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
RXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3Nh
Z2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQog
CiBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUqIHRoaXNQcm90b3R5cGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQppbmRleCA0ZjM4ZmIwNjg0YmM1OWVlNmY3Yzk4OTgyOWVjODgyY2U4MDU4NmM4Li4zM2Fm
ZWUzMDJlZGMxZTFmM2VjOGQ2Y2Q5MWRlYTUzN2RlMTlmYmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
QEAgLTMwLDYgKzMwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
CiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oCiAgICAgTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHlTb3VyY2UuaAorICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0Q3JlZGVu
dGlhbHMuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmgKICAgICBNb2R1bGVzL2Zl
dGNoL0ZldGNoSWRlbnRpZmllci5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5oCkBA
IC0yODcsNiArMjg4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
ICAgIGJpbmRpbmdzL2pzL1dlYkNvcmVKSVRPcGVyYXRpb25zLmgKICAgICBiaW5kaW5ncy9qcy9X
ZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaAogICAgIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
LmgKKyAgICBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRGZXRjaGVyLmgKIAogICAgIGJyaWRnZS9C
cmlkZ2UuaAogICAgIGJyaWRnZS9JZGVudGlmaWVyUmVwLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOGMw
M2I5MzI2NDk4NWYwYmIxZWU5ZjZkMjAyM2UzNDgzMDkyZjQ2Mi4uNjIzYTY3OGFhNWNiNDMyYWUw
ZDM5NDY3YTRiZWZkMzQ1Njg4YTIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYzOSw2ICs2MzksNyBA
QCBiaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwCiBiaW5kaW5ncy9qcy9XZWJDb3JlSklU
T3BlcmF0aW9ucy5jcHAKIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuY3BwCiBiaW5k
aW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCitiaW5kaW5ncy9qcy9Xb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKIGJp
bmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmNwcAogYnJpZGdlL0lkZW50aWZpZXJSZXAuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMmUzYmEyZDhiYmFhMTc2MjQ0ZGE2MjNjNjkyOTZlNWZlYmYwNzMwYi4uMzhjNmVhMGI4Nzlk
ZWY3MDExMTJlNDE4OWE0ZTQ4MGQxZmJjOTQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA3MSwxNSArNTA3MSwxOCBAQAog
CQlFMzA1OTI2NDFFMjdBM0FEMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTkyNjIxRTI3QTM4
QzAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzA1OTI2ODFFMjdBM0QxMDBENTdDOTggLyog
Q2FjaGVkU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTMwNTkyNjYxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNo
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
MzA3REVEMDFEODFFNEM3MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVDNzFEODFF
NDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTMwN0RFRDExRDgxRTRDQjAwMTQx
Q0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8q
IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDdERUQ1MUQ4MUU0RjIwMDE0MUNBRiAvKiBM
b2FkYWJsZU1vZHVsZVNjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTMwN0RFRDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2Ny
aXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTMxNTBFQTcxREE3MjE5MzAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMTUwRUE1MURBNzIxOEQwMDE5NDAx
MiAvKiBET01KSVRIZWxwZXJzLmggKi87IH07CiAJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAzMiAv
KiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzOEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1bGVGZXRjaFBh
cmFtZXRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFMzIzQ0ZGQTFFNUFGNkFGMDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMyM0NGRjkxRTVB
RjZBNTAwRjBCNEEwIC8qIEpTRE9NQ29udmVydFByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzQzMkRFNDI1RDM3N0UzMDA1OEU2MTIg
LyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyLmggKi87IH07CisJCUUzNDdFNUZBMjVENEYwMDAwMEYxN0E1QyAvKiBX
b3JrZXJTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMzQ3RTVGODI1RDRGMDAwMDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUz
NTE4OEI0MjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTE4OEIzMjVEMzg3
Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU2NUI3QjFEQzJENkM5MDAyMTdE
QkQgLyogSlNFdmVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZlbnRDdXN0b20uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU4MDJC
NjFEQzg0MzVEMDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODAyQjUxREM4NDM1ODAwQTk3NzND
IC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFMzU4MkMyODI1MjdGNjY5MDBEMUI3OTAgLyogV2ViQ29yZUpJ
VE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzNTgyQzI2MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNUI5MDdG
MjNGNjBBNTAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1QjkwN0MyM0Y2MDY3NzAwMDAxMUZG
IC8qIExvY2FsaXplZERldmljZU1vZGVsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM2NDMyMUMyNUQzN0E2NzAwRjkwRTJBIC8qIE1vZHVsZVNj
cmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNzdGRTREMURB
REUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURDMDQ1MDA3MThGM0MgLyogTm9kZUNv
bnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzN0M4NjRGMUVCNjNFMkQwMDg3
QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIERldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMTYyMDIsNyArMTYyMDUsNiBAQAogCQlFMzA1OTI2NjFFMjdBM0M2MDBENTdD
OTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDYWNoZWRTY3JpcHRGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzMDdERUM2MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFQzcxRDgxRTQ0
ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTMwN0RFRDIxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRhYmxlTW9kdWxlU2Ny
aXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFRDMxRDgxRTRFRDAw
MTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IExvYWRhYmxlTW9kdWxlU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzMTUwRUE1MURBNzIxOEQwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVEhlbHBlcnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjE1LDEyICsxNjIxNywxNyBAQAogCQlFMzI5Mjc2MzIyNTQz
RjU5MDAzMDhBOUEgLyogVHlwZWRPTUNTU1VuaXRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTMyOTI3NjYyMjU0M0ZERTAwMzA4QTlBIC8qIERPTVJlY3RSZWFkT25seS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBET01SZWN0UmVhZE9ubHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzM0ODI1RTFEQzkzQUEwMDA5Qzk1NDQgLyogRE9NSklUQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBET01KSVRBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTUpJVEFic3Ry
YWN0SGVhcFJlcG9zaXRvcnkuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
KwkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJNb2R1bGVTY3JpcHRMb2Fk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM0MzJERTMyNUQzNzdFMzAwNThF
NjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzQ3RTVGODI1RDRGMDAwMDBGMTdBNUMgLyogV29ya2VyU2Ny
aXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJTY3Jp
cHRGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNEVFNDlGMURDMkQ1
NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTRXZlbnRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM1
MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODAyQjUxREM4NDM1ODAwQTk3NzNDIC8q
IERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NSklUSURMVHlwZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4
MkMyNDI1MjdGNjY4MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUpJVE9wZXJhdGlvbnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4MkMyNjI1MjdGNjY4MDBEMUI3OTAgLyog
V2ViQ29yZUpJVE9wZXJhdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29yZUpJVE9wZXJhdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1
QjkwN0MyM0Y2MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsaXplZERldmljZU1vZGVsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUI5MDdFMjNGNjA2NzcwMDAwMTFGRiAvKiBMb2NhbGl6
ZWREZXZpY2VNb2RlbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IExvY2FsaXplZERldmljZU1vZGVsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVNjcmlwdExvYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzdDODY0RjFFQjYzRTJEMDA4N0M2Q0EgLyogSlNET01Qcm9t
aXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NUHJvbWlzZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyog
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzAyMSw3ICsyNzAyOCw2IEBACiAJCQkJMkRGQTQ4OEUx
REI1NDFDMjAwMzYyQjk5IC8qIEJ1ZmZlclNvdXJjZS5oICovLAogCQkJCUUzMDdERUM2MUQ4MUU0
NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwICovLAogCQkJCUUzMDdE
RUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLywKLQkJ
CQlFMzA3REVDODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xp
ZW50LmggKi8sCiAJCQkJRTMwNTkyNjUxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZl
dGNoZXIuY3BwICovLAogCQkJCUUzMDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3Jp
cHRGZXRjaGVyLmggKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hlZFNj
cmlwdFNvdXJjZVByb3ZpZGVyLmggKi8sCkBAIC0yNzA5NSw2ICsyNzEwMSw4IEBACiAJCQkJNEJE
RUEzMkQyMTgwMzQwNTAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAgKi8s
CiAJCQkJNEJERUEzMkIyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFz
ZS5oICovLAogCQkJCTcwOUEwMUZEMUUzRDBCQ0MwMDZCMEQ0QyAvKiBNb2R1bGVGZXRjaEZhaWx1
cmVLaW5kLmggKi8sCisJCQkJRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlw
dExvYWRlci5oICovLAorCQkJCUUzNTE4OEIzMjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQuaCAqLywKIAkJCQk0MUI0NTlFRDFGNTVFQkM3MDAwMEY2RkQgLyogUmVh
ZGFibGVTdHJlYW0uY3BwICovLAogCQkJCTQxQjQ1OURBMUY0Q0FEQjkwMDAwRjZGRCAvKiBSZWFk
YWJsZVN0cmVhbS5oICovLAogCQkJCTQxOEMzOTVFMUM4RjBBQUIwMDUxQzhBMyAvKiBSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCAqLywKQEAgLTI3MTI2LDYgKzI3MTM0LDkgQEAK
IAkJCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyLmggKi8sCiAJCQkJNDYzNTIxQUMyMDgxMDkwRTAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmNw
cCAqLywKIAkJCQk0NjM1MjFBQTIwODEwOTBCMDBDMjg5MjIgLyogV2luZG93UHJveHkuaCAqLywK
KwkJCQlFMzQzMkRFMzI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
LmNwcCAqLywKKwkJCQlFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyLmggKi8sCisJCQkJRTM0N0U1RjgyNUQ0RjAwMDAwRjE3QTVDIC8qIFdvcmtlclNj
cmlwdEZldGNoZXIuaCAqLywKIAkJCQk0MTQxOEEwMzI1NjQzRTEyMDAzNjM0MTcgLyogV3JpdGFi
bGVTdHJlYW0uY3BwICovLAogCQkJCTQxNDE4QTA0MjU2NDNFMTMwMDM2MzQxNyAvKiBXcml0YWJs
ZVN0cmVhbS5oICovLAogCQkJKTsKQEAgLTMxMzk5LDcgKzMxNDEwLDYgQEAKIAkJCQlCQ0IxNkMx
QzA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
OUZCRDVGMTVEMkY0NjQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTMwN0RFRDAxRDgxRTRDNzAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTMwN0RFRDExRDgxRTRDQjAwMTQxQ0FGIC8qIENh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwMTg0
NjkwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUQw
RURBNzc1MTQzRTMwM0MwMDI4RTM4MyAvKiBDYWNoZWRSYXdSZXNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTFCNTMzNDkxNzE3REVFMzAwRjIwNUY5IC8qIENhY2hlZFJhd1Jlc291cmNlQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMzODc0LDYgKzMzODg0LDggQEAKIAkJCQlDNkQ3NEFE
NTA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3MDlBMDFGRTFFM0QwQkREMDA2QjBENEMgLyogTW9kdWxlRmV0Y2hGYWlsdXJl
S2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMyMDFDMUExRjhFODIxMzAwNzZBMDMyIC8qIE1v
ZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM2NDMyMUMyNUQzN0E2
NzAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM1
MTg4QjQyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjU1QjNEQzYxMjUxRjEyRDAwM0VGMjY5IC8qIE1vbnRoSW5wdXRUeXBl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzk2MjhDMTIzOTU3NDMxMDA2NThFQ0QgLyogTW90aW9u
TWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNDYwQTQ0RUZDNzAwRjk5
MkUwIC8qIE1vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzU1MjYsNiArMzU1MzgsNyBA
QAogCQkJCTE4RjgzMUI4MEZENDhDNzgwMEQ4QzU2QiAvKiBXb3JrZXJMb2FkZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NEQwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlckxvY2F0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MDBGNTQ2QTgyMDBCMEYxQkEgLyogV29y
a2VyTWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNDMyREU0MjVEMzc3RTMw
MDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxMjcxQTBCMEVFRUM3N0EwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1Q0IwNTI1MUZCNTFGM0EwMDA4OUI5NyAvKiBXb3JrZXJOZXR3b3JrQWdlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUxMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJP
YmplY3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTUzNSw2ICszNTU0OCw3IEBACiAJCQkJ
NDE2RTI5QTYxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyUnVuTG9vcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQ0YxRkFBNDRERTAwMzdEMUU2IC8qIFdvcmtlclJ1
bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM0N0U1RkEyNUQ0RjAwMDAwRjE3QTVD
IC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDZCMzQ5MEY2
MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJFQTc2ODA0MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTJFNDM0NjU1MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJUaHJl
YWQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKaW5kZXggMzUyZGNjNGFjZjc1MTc2ZDk4
YWQzNDEwYmUxNTE2MDgwMTA4ODUyNC4uMjc3ZjYyYTdjMTMzZmUxNTZjNmNjZTk4NTUzNTUwZWRi
MTM2ZDAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCkBAIC00MCwxNiArNDAsMTMgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1SZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXI6OmNyZWF0ZShDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVu
dCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRG
ZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCitSZWY8
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0
ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9t
aXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0
Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwg
V1RGTW92ZShwYXJhbWV0ZXJzKSkpOwogfQogCi1DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OkNh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlcihDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNs
aWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3Jp
cHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCi0g
ICAgOiBtX2NsaWVudCgmY2xpZW50KQotICAgICwgbV9wcm9taXNlKCZwcm9taXNlKQotICAgICwg
bV9zY3JpcHRGZXRjaGVyKHNjcmlwdEZldGNoZXIpCi0gICAgLCBtX3BhcmFtZXRlcnMoV1RGTW92
ZShwYXJhbWV0ZXJzKSkKK0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Q2FjaGVkTW9kdWxlU2Ny
aXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21p
c2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxN
b2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICA6IE1vZHVsZVNjcmlwdExv
YWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1vdmUocGFyYW1ldGVycykp
CiB7CiB9CiAKQEAgLTYxLDE0ICs1OCwxNSBAQCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6On5D
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoKQogICAgIH0KIH0KIAotYm9vbCBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXI6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHNvdXJjZVVS
TCkKK2Jvb2wgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKERvY3VtZW50JiBkb2N1bWVu
dCwgVVJMJiYgc291cmNlVVJMKQogeworICAgIEFTU0VSVChtX3Byb21pc2UpOwogICAgIEFTU0VS
VCghbV9jYWNoZWRTY3JpcHQpOwogICAgIFN0cmluZyBpbnRlZ3JpdHkgPSBtX3BhcmFtZXRlcnMg
PyBtX3BhcmFtZXRlcnMtPmludGVncml0eSgpIDogU3RyaW5nIHsgfTsKLSAgICBtX2NhY2hlZFNj
cmlwdCA9IG1fc2NyaXB0RmV0Y2hlci0+cmVxdWVzdE1vZHVsZVNjcmlwdChkb2N1bWVudCwgc291
cmNlVVJMLCBXVEZNb3ZlKGludGVncml0eSkpOworICAgIG1fY2FjaGVkU2NyaXB0ID0gc2NyaXB0
RmV0Y2hlcigpLnJlcXVlc3RNb2R1bGVTY3JpcHQoZG9jdW1lbnQsIHNvdXJjZVVSTCwgV1RGTW92
ZShpbnRlZ3JpdHkpKTsKICAgICBpZiAoIW1fY2FjaGVkU2NyaXB0KQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgbV9zb3VyY2VVUkwgPSBzb3VyY2VVUkw7CisgICAgbV9zb3VyY2VVUkwgPSBX
VEZNb3ZlKHNvdXJjZVVSTCk7CiAKICAgICAvLyBJZiB0aGUgY29udGVudCBpcyBhbHJlYWR5IGNh
Y2hlZCwgdGhpcyBpbW1lZGlhdGVseSBjYWxscyBub3RpZnlGaW5pc2hlZC4KICAgICBtX2NhY2hl
ZFNjcmlwdC0+YWRkQ2xpZW50KCp0aGlzKTsKQEAgLTgzLDcgKzgxLDcgQEAgdm9pZCBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJiByZXNvdXJj
ZSwgY29uc3QgTmUKIAogICAgIFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+IHByb3RlY3Rl
ZFRoaXMoKnRoaXMpOwogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPm5vdGlm
eUZpbmlzaGVkKCp0aGlzLCBXVEZNb3ZlKG1fcHJvbWlzZSkpOworICAgICAgICBtX2NsaWVudC0+
bm90aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9zb3VyY2VVUkwpLCBtX3Byb21pc2UucmVs
ZWFzZU5vbk51bGwoKSk7CiAKICAgICAvLyBSZW1vdmUgdGhlIGNsaWVudCBhZnRlciBjYWxsaW5n
IG5vdGlmeUZpbmlzaGVkIHRvIGtlZXAgdGhlIGRhdGEgYnVmZmVyIGluCiAgICAgLy8gQ2FjaGVk
UmVzb3VyY2UgYWxpdmUgd2hpbGUgbm90aWZ5RmluaXNoZWQgcHJvY2Vzc2VzIHRoZSByZXNvdXJj
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2Ny
aXB0TG9hZGVyLmgKaW5kZXggNDNhYmQ4NzViMjQzZmFmNWZjZDRkOThlYzNjNWQyNGU3OTBiNTcy
ZS4uYTQ4NzU1ZjkzZDA1ZWYzNTNkMmIzZTIyOGQ4MjE5ZmU4OTFlNjc0NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmgK
QEAgLTI3LDYgKzI3LDggQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJDYWNoZWRTY3JpcHRG
ZXRjaGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCiAjaW5jbHVkZSA8d3Rm
L1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgpAQCAtMzQsNDIgKzM2LDI5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50OwogY2xhc3MgQ2FjaGVkU2NyaXB0OwotY2xhc3MgQ2FjaGVkU2NyaXB0RmV0Y2hlcjsK
IGNsYXNzIERlZmVycmVkUHJvbWlzZTsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgSlNET01HbG9i
YWxPYmplY3Q7CiBjbGFzcyBNb2R1bGVGZXRjaFBhcmFtZXRlcnM7CiAKLWNsYXNzIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcj4sIHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgeworY2xhc3MgQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJp
dmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXI+IGNyZWF0ZShDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVs
ZUZldGNoUGFyYW1ldGVycz4mJik7CisgICAgc3RhdGljIFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXI+IGNyZWF0ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2Um
LCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7
CiAKICAgICB2aXJ0dWFsIH5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoKTsKIAotICAgIGJvb2wg
bG9hZChEb2N1bWVudCYsIGNvbnN0IFVSTCYgc291cmNlVVJMKTsKKyAgICBib29sIGxvYWQoRG9j
dW1lbnQmLCBVUkwmJiBzb3VyY2VVUkwpOwogCi0gICAgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2Ny
aXB0RmV0Y2hlcigpIHsgcmV0dXJuIG1fc2NyaXB0RmV0Y2hlci5nZXQoKTsgfQogICAgIENhY2hl
ZFNjcmlwdCogY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0KCk7IH0K
LSAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSB7IHJldHVybiBtX3BhcmFt
ZXRlcnMuZ2V0KCk7IH0KLSAgICBjb25zdCBVUkwmIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJu
IG1fc291cmNlVVJMOyB9Ci0KLSAgICB2b2lkIGNsZWFyQ2xpZW50KCkKLSAgICB7Ci0gICAgICAg
IEFTU0VSVChtX2NsaWVudCk7Ci0gICAgICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKLSAgICB9Cisg
ICAgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlcigpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PENhY2hlZFNjcmlwdEZldGNoZXImPihNb2R1bGVTY3JpcHRMb2FkZXI6OnNjcmlwdEZldGNo
ZXIoKSk7IH0KIAogcHJpdmF0ZToKLSAgICBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2FjaGVkU2NyaXB0
RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOworICAgIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21p
c2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4m
Jik7CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJiwgY29uc3QgTmV0
d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CiAKLSAgICBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwotICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+
IG1fcHJvbWlzZTsKLSAgICBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hlcj4gbV9zY3JpcHRGZXRjaGVy
OwotICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+IG1fcGFyYW1ldGVyczsKICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0OwogICAgIFVS
TCBtX3NvdXJjZVVSTDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4Njg4YWQ5MGRhZTNlY2U5NDllYTA5YjFlZmVlNWRhMjZmOTRjNzg2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCisrKyAvZGV2
L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSwg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI7Ci1jbGFzcyBEZWZlcnJlZFByb21pc2U7Ci0KLWNs
YXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KCkgPSBkZWZhdWx0OwotCi0gICAgdmly
dHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciYsIFJlZlB0
cjxEZWZlcnJlZFByb21pc2U+KSA9IDA7Ci19OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwCmluZGV4IGE0MzM3NTg2NWJiZjFl
YzU5NzNiZjE3MmM5MWEzODUzMjM0ZTM3NGQuLmRmM2M2YjZlYmI4NGFmNzJlZDI5NTVmOTkxMWQw
N2E4N2FiMzUzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hl
ZFNjcmlwdEZldGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hl
ZFNjcmlwdEZldGNoZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmln
aW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsNiArNDgsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+IENhY2hlZFNjcmlwdEZldGNoZXI6OnJlcXVlc3RNb2R1bGVTY3JpcHQoRG9j
dQogCiBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFNjcmlwdEZldGNo
ZXI6OnJlcXVlc3RTY3JpcHRXaXRoQ2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwm
IHNvdXJjZVVSTCwgY29uc3QgU3RyaW5nJiBjcm9zc09yaWdpbk1vZGUsIFN0cmluZyYmIGludGVn
cml0eSwgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+IHJlc291cmNlTG9hZFByaW9yaXR5
KSBjb25zdAogeworICAgIC8vIFdpdGhvdXQgc2NyaXB0aW5nLCB0aGVyZSBpcyBubyB3YXkgdG8g
c3RhcnQgV29ya2Vycy4KICAgICBpZiAoIWRvY3VtZW50LnNldHRpbmdzKCkuaXNTY3JpcHRFbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCmluZGV4IGRmN2YzZDc0
NmQ1ZTMyYWJhYjUxNDc2YzlkZGFjYTYzYTQzNTEzNmMuLjdjZTU0NjliOWMwY2FmMTcxNWM1M2Y4
YzA4ZGY1ZjAzODNlYTA3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCkBAIC01Miw2ICs1MiwyMyBAQCB2b2lkIHJl
cG9ydEV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBleGNlcHRpb25WYWx1ZQogICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0
LCBleGNlcHRpb24sIGNhY2hlZFNjcmlwdCk7CiB9CiAKK1N0cmluZyByZXRyaWV2ZUVycm9yTWVz
c2FnZVdpdGhvdXROYW1lKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBWTSYg
dm0sIEpTVmFsdWUgZXhjZXB0aW9uLCBDYXRjaFNjb3BlJiBjYXRjaFNjb3BlKQoreworICAgIC8v
IEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTUwODc+IFdlYiBJbnNwZWN0b3I6IFdlYkNv
cmU6OnJlcG9ydEV4Y2VwdGlvbiBzaG91bGQgbm90IGV2YWx1YXRlIEphdmFTY3JpcHQgaGFuZGxp
bmcgZXhjZXB0aW9ucworICAgIC8vIElmIHRoaXMgaXMgYSBjdXN0b20gZXhjZXB0aW9uIG9iamVj
dCwgY2FsbCB0b1N0cmluZyBvbiBpdCB0byB0cnkgYW5kIGdldCBhIG5pY2Ugc3RyaW5nIHJlcHJl
c2VudGF0aW9uIGZvciB0aGUgZXhjZXB0aW9uLgorICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Cisg
ICAgaWYgKGF1dG8qIGVycm9yID0ganNEeW5hbWljQ2FzdDxFcnJvckluc3RhbmNlKj4odm0sIGV4
Y2VwdGlvbikpCisgICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yLT5zYW5pdGl6ZWRNZXNzYWdl
U3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBlbHNlCisgICAgICAgIGVycm9yTWVz
c2FnZSA9IGV4Y2VwdGlvbi50b1dURlN0cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisKKyAg
ICAvLyBXZSBuZWVkIHRvIGNsZWFyIGFueSBuZXcgZXhjZXB0aW9uIHRoYXQgbWF5IGJlIHRocm93
biBpbiB0aGUgdG9TdHJpbmcoKSBjYWxsIGFib3ZlLgorICAgIC8vIHJlcG9ydEV4Y2VwdGlvbigp
IGlzIG5vdCBzdXBwb3NlZCB0byBiZSBtYWtpbmcgbmV3IGV4Y2VwdGlvbnMuCisgICAgY2F0Y2hT
Y29wZS5jbGVhckV4Y2VwdGlvbigpOworICAgIHZtLmNsZWFyTGFzdEV4Y2VwdGlvbigpOworICAg
IHJldHVybiBlcnJvck1lc3NhZ2U7Cit9CisKIFN0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZShK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgVk0mIHZtLCBKU1ZhbHVlIGV4Y2Vw
dGlvbiwgQ2F0Y2hTY29wZSYgY2F0Y2hTY29wZSkKIHsKICAgICAvLyBGSVhNRTogPGh0dHA6Ly93
ZWJraXQub3JnL2IvMTE1MDg3PiBXZWIgSW5zcGVjdG9yOiBXZWJDb3JlOjpyZXBvcnRFeGNlcHRp
b24gc2hvdWxkIG5vdCBldmFsdWF0ZSBKYXZhU2NyaXB0IGhhbmRsaW5nIGV4Y2VwdGlvbnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcu
aAppbmRleCAyZDNlMzExZjYxZWViNjg1YWFjMzU1NDZhYWUxNjBkYTk3OTBlZjVmLi5kMWY2ZGU5
Mzc0NzBjZTZkZjJjY2I2NDcyMjg0NzY2ZmQwMTk1ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCkBAIC02NSw2ICs2NSw3
IEBAIFdFQkNPUkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUgcmVqZWN0UHJvbWlzZVdpdGhH
ZXR0ZXJUeXBlRXJyb3IoSlNDOjpKU0dsb2JhCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRK
U1ZhbHVlIHJlamVjdFByb21pc2VXaXRoVGhpc1R5cGVFcnJvcihEZWZlcnJlZFByb21pc2UmLCBj
b25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBvcGVyYXRpb25OYW1lKTsKIFdF
QkNPUkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUgcmVqZWN0UHJvbWlzZVdpdGhUaGlzVHlw
ZUVycm9yKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBj
b25zdCBjaGFyKiBvcGVyYXRpb25OYW1lKTsKIAorU3RyaW5nIHJldHJpZXZlRXJyb3JNZXNzYWdl
V2l0aG91dE5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUg
ZXhjZXB0aW9uLCBKU0M6OkNhdGNoU2NvcGUmKTsKIFN0cmluZyByZXRyaWV2ZUVycm9yTWVzc2Fn
ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSBleGNlcHRpb24s
IEpTQzo6Q2F0Y2hTY29wZSYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBvcnRFeGNlcHRpb24o
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNWYWx1ZSBleGNlcHRpb24sIENhY2hlZFNjcmlw
dCogPSBudWxscHRyKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4Y2VwdGlvbiosIENhY2hlZFNjcmlwdCogPSBudWxscHRy
LCBFeGNlcHRpb25EZXRhaWxzKiA9IG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4IDU4YjdkZjc2MGMwMGEzMWZmMDhl
ZDIyZGVlMjJhOGM3NDQzYWU4ZGQuLjlkNjk3ZDQ1OWI1NjM0NWNjODM5NjIwMjY2NzZlMDBhOThi
ZjQ5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJKU1dvcmtsZXRHbG9iYWxTY29w
ZS5oIgogI2luY2x1ZGUgIlJlamVjdGVkUHJvbWlzZVRyYWNrZXIuaCIKICNpbmNsdWRlICJSdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCiAj
aW5jbHVkZSAiU3RydWN0dXJlZENsb25lLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0
YS5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC00MjIsNiArNDIzLDc5IEBA
IEpTQzo6SlNQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVjdDo6aW5zdGFudGlhdGVTdHJlYW1pbmco
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAjZW5kaWYKIAorc3RhdGljIFNjcmlwdE1vZHVs
ZUxvYWRlciogc2NyaXB0TW9kdWxlTG9hZGVyKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGlmIChnbG9iYWxP
YmplY3QtPmluaGVyaXRzPEpTRE9NV2luZG93QmFzZT4odm0pKSB7CisgICAgICAgIGlmIChhdXRv
IGRvY3VtZW50ID0ganNDYXN0PGNvbnN0IEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCkt
PndyYXBwZWQoKS5kb2N1bWVudCgpKQorICAgICAgICAgICAgcmV0dXJuICZkb2N1bWVudC0+bW9k
dWxlTG9hZGVyKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBpZiAoZ2xv
YmFsT2JqZWN0LT5pbmhlcml0czxKU1JlbW90ZURPTVdpbmRvd0Jhc2U+KHZtKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNXb3JrZXJH
bG9iYWxTY29wZUJhc2U+KHZtKSkKKyAgICAgICAgcmV0dXJuICZqc0Nhc3Q8Y29uc3QgSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVy
KCk7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29ya2xldEdsb2JhbFNj
b3BlQmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBwZWQoKS5tb2R1bGVMb2FkZXIoKTsKKyNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxK
U0lEQlNlcmlhbGl6YXRpb25HbG9iYWxPYmplY3Q+KHZtKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisjZW5kaWYKKyAgICBkYXRhTG9nKCJVbmV4cGVjdGVkIGdsb2JhbCBvYmplY3Q6ICIsIEpT
VmFsdWUoZ2xvYmFsT2JqZWN0KSwgIlxuIik7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNDOjpJZGVudGlmaWVyIEpTRE9NR2xv
YmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUg
bW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUg
c2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpT
Qzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0
byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICByZXR1
cm4gbG9hZGVyLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1l
LCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0dXJuIHsgfTsKK30K
KworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRl
ckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxv
YWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUg
cGFyYW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7CisgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0g
c2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIGxvYWRlci0+ZmV0Y2goZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVs
ZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hlcikpOworICAgIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOworICAgIHNjb3BlLnJlbGVhc2Uo
KTsKKyAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKKyAg
ICByZXR1cm4gcHJvbWlzZTsKK30KKworSlNDOjpKU1ZhbHVlIEpTRE9NR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwg
SlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7
CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlw
dE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxvYWRlci0+ZXZhbHVh
dGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkLCBz
Y3JpcHRGZXRjaGVyKTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOworfQorCitKU0M6
OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVySW1wb3J0
TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxv
YWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFs
dWUgcGFyYW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKK3sK
KyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0g
SlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChh
dXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbG9hZGVyLT5pbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0
LCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBhcmFtZXRlcnMsIHNvdXJjZU9yaWdpbikpOwor
ICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkp
OworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0
LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gcHJvbWlzZTsKK30KKworSlNDOjpKU09iamVj
dCogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0
aWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTTW9kdWxlUmVj
b3JkKiBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIEpT
RE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVM
b2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmNyZWF0ZUltcG9ydE1l
dGFQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVs
ZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0
KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3Ry
dWN0dXJlKCkpOworfQorCiBKU0RPTUdsb2JhbE9iamVjdCYgY2FsbGVyR2xvYmFsT2JqZWN0KEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUmIGNhbGxGcmFtZSkK
IHsKICAgICBjbGFzcyBHZXRDYWxsZXJHbG9iYWxPYmplY3RGdW5jdG9yIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCmluZGV4IGI4NDA3MmRkZDc0
NmIzZDZjNTEwNjBkOTA1MDFiNWNlYTFiNDk5YjEuLmY0OWE0Y2QyNTcxOTcxMTg5MTdhN2Q3YTRi
NmMwZTExZmM3NmJhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaApAQCAtMTA1LDYgKzEwNSwxMiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBK
U0RPTUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0M6OkpTR2xvYmFsT2JqZWN0IHsKICAgICBzdGF0
aWMgSlNDOjpKU1Byb21pc2UqIGluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNPYmplY3QqKTsKICNlbmRpZgogCisgICAgc3RhdGlj
IEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRl
ckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpK
U1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01v
ZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwor
ICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1
bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTU3Ry
aW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYpOworICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwg
SlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7CisKICAgICBKU0RPTVN0cnVjdHVy
ZU1hcCBtX3N0cnVjdHVyZXM7CiAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCBtX2NvbnN0cnVjdG9y
czsKICAgICBET01HdWFyZGVkT2JqZWN0U2V0IG1fZ3VhcmRlZE9iamVjdHM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA1NjNlZmEwNTcx
YjVkNDYyZDllNjQ1MDg5ZjBiZDhmNzdkMTlhNzY4Li4zMTJhMDExNThlOGMyODA4M2MwN2U0MmRi
ODcyNDVmZTRlNWM1N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5jcHAKQEAgLTMzOSw1NCArMzM5LDQgQEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6
OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhET01XaW5kb3cqIHdpbmRvdykK
ICAgICB9CiB9CiAKLUpTQzo6SWRlbnRpZmllciBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRl
clJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxl
TG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFs
dWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAg
IEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFz
ZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50
LT5tb2R1bGVMb2FkZXIoKS5yZXNvbHZlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1
bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIHsg
fTsKLX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVM
b2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1
bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1Zh
bHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8
SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50
PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5mZXRjaChn
bG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBwYXJhbWV0ZXJzLCBzY3JpcHRG
ZXRjaGVyKSk7Ci0gICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSA9IEpTQzo6SlNJ
bnRlcm5hbFByb21pc2U6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5pbnRlcm5hbFByb21pc2VT
dHJ1Y3R1cmUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgpOwotICAgIHByb21pc2UtPnJlamVjdChn
bG9iYWxPYmplY3QsIGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBwcm9taXNlOwotfQotCi1K
U0M6OkpTVmFsdWUgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxv
YWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwg
SlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlz
T2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAg
ICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5k
b2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmV2YWx1
YXRlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwg
c2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKLX0KLQotSlND
OjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJJbXBvcnRN
b2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNTdHJpbmcqIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1
ZSBwYXJhbWV0ZXJzLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luKQotewot
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlND
Ojpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRy
PERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQot
ICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIo
KS5pbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBh
cmFtZXRlcnMsIHNvdXJjZU9yaWdpbikpOwotICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHBy
b21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+
aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBw
cm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4g
cHJvbWlzZTsKLX0KLQotSlNDOjpKU09iamVjdCogSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2Fk
ZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1v
ZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUg
c2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6
OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8
RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0g
ICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuY3JlYXRlSW1wb3J0TWV0YVBy
b3BlcnRpZXMoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgbW9kdWxlUmVj
b3JkLCBzY3JpcHRGZXRjaGVyKTsKLSAgICByZXR1cm4gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xv
YmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1
cmUoKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggM2VmOTgwZGQyN2Y2YjIxMzk4NzAwOGJh
NDc2YzhjYTY5ZjJmMGI2NC4uNTE0MmIxYzdkYzI1YzIyZmU5Nzg5NWU3NWFlMjJlZjRkMWU1ODlk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAg
LTk5LDEyICs5OSw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2luZG93QmFzZSA6IHB1
YmxpYyBKU0RPTUdsb2JhbE9iamVjdCB7CiBwcml2YXRlOgogICAgIHVzaW5nIFJlc3BvbnNlQ2Fs
bGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgY2hhciosIHNpemVfdCk+OwogCi0gICAg
c3RhdGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVs
ZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpT
Qzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFs
dWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJJbXBv
cnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTU3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYpOwotICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVy
dGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNW
YWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7Ci0KICAgICBSZWZQdHI8
RE9NV2luZG93PiBtX3dyYXBwZWQ7CiAgICAgUmVmUHRyPEV2ZW50PiBtX2N1cnJlbnRFdmVudDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGUuaAppbmRleCAyN2Y3NjUw
ZGE2YThlZTQ0ZjM1Zjk0N2Q0OThlYTM4MWM2Yzk0MzFmLi5kNjNlNWFjYzdlMTRjODgzMmMwNDk2
ZmU1ZTNkNjRlN2NmYmViZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0V4ZWNTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0
YXRlLmgKQEAgLTEwMyw2ICsxMDMsMTIgQEAgY2xhc3MgSlNFeGVjU3RhdGUgewogICAgICAgICBy
ZXR1cm4gKkpTQzo6bG9hZE1vZHVsZSgmbGV4aWNhbEdsb2JhbE9iamVjdCwgc291cmNlQ29kZSwg
c2NyaXB0RmV0Y2hlcik7CiAgICAgfQogCisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21p
c2UmIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBwYXJhbWV0
ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKKyAgICB7CisgICAgICAgIEpTRXhlY1N0
YXRlIGN1cnJlbnRTdGF0ZSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiAq
SlNDOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUoJmxleGljYWxHbG9iYWxPYmplY3QsIG1vZHVsZU5h
bWUsIHBhcmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpOworICAgIH0KKwogICAgIHN0YXRpYyBKU0M6
OkpTVmFsdWUgbGlua0FuZEV2YWx1YXRlTW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbW9kdWxlS2V5LCBKU0M6OkpT
VmFsdWUgc2NyaXB0RmV0Y2hlciwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4
Y2VwdGlvbikKICAgICB7CiAgICAgICAgIEpTQzo6Vk0mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDJiMjZjOWY0ZWEyMTYyMDdkZTRjODY4
MjBiOGE4MWI2MDM1YjdlYi4uMmQ3OTNmZmYyMTg1M2E4YTFhNzg4MDY2NzI1MGY1N2U3NTJmZTNm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmNwcApAQCAtNTksMTEgKzU5LDExIEBAIGNvbnN0IEdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRh
YmxlCiAgICAgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsCiAgICAgJnF1ZXVlTWljcm90YXNrVG9F
dmVudExvb3AsCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsCi0gICAg
bnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0ciwgLy8gbW9k
dWxlTG9hZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZldGNoCi0gICAg
bnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMKLSAgICBu
dWxscHRyLCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRN
b2R1bGUsCisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNo
LAorICAgICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9k
dWxlTG9hZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAogICAgICZy
ZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhl
Y3V0aW9uT3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCAzNWZhNmUzMjc3ZmIwZDRiZTBlMGUxZWRj
NDM3MjJlZGFkZmM4YWYyLi45ZmFlYzk1OWMzOWQxNzQ4MTgxYzk4NjUwMDNkNWE4NmYxN2Y1ZTNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxT
Y29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEds
b2JhbFNjb3BlQmFzZS5jcHAKQEAgLTQ5LDExICs0OSwxMSBAQCBjb25zdCBHbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9k
VGFibAogICAgICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLAogICAgIG51bGxwdHIsIC8vIHF1ZXVl
TWljcm90YXNrVG9FdmVudExvb3AKICAgICAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGlt
ZW91dCwKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUKLSAgICBudWxs
cHRyLCAvLyBtb2R1bGVMb2FkZXJSZXNvbHZlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVy
RmV0Y2gKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVy
dGllcwotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckV2YWx1YXRlCisgICAgJm1vZHVsZUxv
YWRlckltcG9ydE1vZHVsZSwKKyAgICAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwKKyAgICAmbW9kdWxl
TG9hZGVyRmV0Y2gsCisgICAgJm1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVz
LAorICAgICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwKICAgICAmcHJvbWlzZVJlamVjdGlvblRyYWNr
ZXIsCiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJl
bnRTY3JpcHRFeGVjdXRpb25Pd25lciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
TW9kdWxlU2NyaXB0TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE5MTBlOTQ5YjdhYzFhMzhlZGVlY2Iw
M2RlYjZlZTg5NGNjZWIwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5j
bHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
U2NyaXB0RmV0Y2hlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OworCitjbGFzcyBN
b2R1bGVTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVTY3JpcHRMb2FkZXI+
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3JpcHRMb2FkZXIoKSA9IGRlZmF1bHQ7
CisKKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2NsaWVu
dCk7CisgICAgICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBKU0M6OlNjcmlw
dEZldGNoZXImIHNjcmlwdEZldGNoZXIoKSB7IHJldHVybiBtX3NjcmlwdEZldGNoZXIuZ2V0KCk7
IH0KKyAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSB7IHJldHVybiBtX3Bh
cmFtZXRlcnMuZ2V0KCk7IH0KKworcHJvdGVjdGVkOgorICAgIE1vZHVsZVNjcmlwdExvYWRlcihN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNl
LCBKU0M6OlNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBh
cmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICAgICAgOiBtX2NsaWVudCgmY2xpZW50KQorICAg
ICAgICAsIG1fcHJvbWlzZSgmcHJvbWlzZSkKKyAgICAgICAgLCBtX3NjcmlwdEZldGNoZXIoc2Ny
aXB0RmV0Y2hlcikKKyAgICAgICAgLCBtX3BhcmFtZXRlcnMoV1RGTW92ZShwYXJhbWV0ZXJzKSkK
KyAgICB7CisgICAgfQorCisgICAgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KiBtX2NsaWVudDsK
KyAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBtX3Byb21pc2U7CisgICAgUmVmPEpTQzo6U2Ny
aXB0RmV0Y2hlcj4gbV9zY3JpcHRGZXRjaGVyOworICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFt
ZXRlcnM+IG1fcGFyYW1ldGVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjk5NWY0OGVlM2QxZTAyYzFkOGM5YzlkYTJiZDU4MjM2ZjNiYTA3ZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyOworY2xhc3MgRGVmZXJyZWRQcm9taXNlOwor
CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwg
fk1vZHVsZVNjcmlwdExvYWRlckNsaWVudCgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImLCBVUkwmJiwgUmVmPERlZmVycmVk
UHJvbWlzZT4pID0gMDsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGFhNWI4MGI1ODZiNzllMGU1NzUwMWNkNTEw
NzhkZjI1YTYyNWU1ZDkuLjgzODYwMDA1YjZlMWQ1MTMyM2Q4ODk4MmMwNTAzODUzMmE3ZjJiZjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVy
LmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZl
dGNoZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
QEAgLTQxLDYgKzQwLDggQEAKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVk
ZSAiU3VicmVzb3VyY2VJbnRlZ3JpdHkuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRh
LmgiCisjaW5jbHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiV29y
a2VyU2NyaXB0RmV0Y2hlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbXBsZXRpb24u
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTTW9kdWxlUmVjb3JkLmg+CkBAIC01Miw4ICs1Myw5IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVM
b2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK1Nj
cmlwdE1vZHVsZUxvYWRlcjo6U2NyaXB0TW9kdWxlTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIE93bmVyVHlwZSBvd25lclR5cGUpCisgICAgOiBtX2NvbnRleHQoY29udGV4
dCkKKyAgICAsIG1fb3duZXJUeXBlKG93bmVyVHlwZSkKIHsKIH0KIApAQCAtNjgsNyArNzAsNyBA
QCBzdGF0aWMgYm9vbCBpc1Jvb3RNb2R1bGUoSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5
KQogICAgIHJldHVybiBpbXBvcnRlck1vZHVsZUtleS5pc1N5bWJvbCgpIHx8IGltcG9ydGVyTW9k
dWxlS2V5LmlzVW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4g
cmVzb2x2ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
c3BlY2lmaWVyLCBjb25zdCBVUkwmIGJhc2VVUkwpCitzdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJp
bmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGUgb3duZXJUeXBlLCBjb25zdCBTdHJpbmcm
IHNwZWNpZmllciwgY29uc3QgVVJMJiBiYXNlVVJMKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNyZXNvbHZlLWEtbW9kdWxl
LXNwZWNpZmllcgogCkBAIC03OSw3ICs4MSwxMiBAQCBzdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJp
bmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdAog
ICAgIGlmICghc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy8nKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dp
dGgoIi4vIikgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLi8iKSkKICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1vZHVsZSBzcGVjaWZpZXIsICciX3MsIHNwZWNp
ZmllciwgIicgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiBS
ZWZlcmVuY2VkIGZyb20gIl9zLCBiYXNlVVJMLnN0cmluZygpKSk7CiAKLSAgICBhdXRvIHJlc3Vs
dCA9IGRvY3VtZW50LmNvbXBsZXRlVVJMKHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgVVJMIHJl
c3VsdDsKKyAgICBpZiAob3duZXJUeXBlID09IFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBl
OjpEb2N1bWVudCkKKyAgICAgICAgcmVzdWx0ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQp
LmNvbXBsZXRlVVJMKHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgZWxzZQorICAgICAgICByZXN1
bHQgPSBVUkwoYmFzZVVSTCwgc3BlY2lmaWVyKTsKKwogICAgIGlmICghcmVzdWx0LmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1vZHVsZSBuYW1l
LCAnIl9zLCByZXN1bHQuc3RyaW5nKCksICInIGRvZXMgbm90IHJlc29sdmUgdG8gYSB2YWxpZCBV
UkwuIl9zKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTEwNyw3ICsxMTQsNyBAQCBKU0M6Oklk
ZW50aWZpZXIgU2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGpzR2xvYmFsT2JqZWN0LAogICAgIFVSTCBiYXNlVVJMID0gcmVzcG9uc2VVUkxGcm9tUmVxdWVz
dFVSTCgqanNHbG9iYWxPYmplY3QsIGltcG9ydGVyTW9kdWxlS2V5KTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxl
U3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgYXV0byByZXN1
bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fY29udGV4dCwgbV9vd25lclR5cGUsIHNwZWNp
ZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgSlNDOjp0aHJvd1R5
cGVFcnJvcihqc0dsb2JhbE9iamVjdCwgc2NvcGUsIHJlc3VsdC5lcnJvcigpKTsKICAgICAgICAg
cmV0dXJuIHsgfTsKQEAgLTE2MSwxMyArMTY4LDE5IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2Uq
IFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxP
CiAgICAgaWYgKGF1dG8qIHNjcmlwdEZldGNoUGFyYW1ldGVycyA9IEpTQzo6anNEeW5hbWljQ2Fz
dDxKU0M6OkpTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJzKj4odm0sIHBhcmFtZXRlcnMpKQogICAgICAg
ICB0b3BMZXZlbEZldGNoUGFyYW1ldGVycyA9IHN0YXRpY19jYXN0PE1vZHVsZUZldGNoUGFyYW1l
dGVycyo+KCZzY3JpcHRGZXRjaFBhcmFtZXRlcnMtPnBhcmFtZXRlcnMoKSk7CiAKLSAgICBhdXRv
IGxvYWRlciA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJl
ZC5nZXQoKSwgKnN0YXRpY19jYXN0PENhY2hlZFNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxK
U0M6OkpTU2NyaXB0RmV0Y2hlcio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3Zl
KHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzKSk7Ci0gICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29w
eVJlZigpKTsKLSAgICBpZiAoIWxvYWRlci0+bG9hZChtX2RvY3VtZW50LCBjb21wbGV0ZWRVUkwp
KSB7Ci0gICAgICAgIGxvYWRlci0+Y2xlYXJDbGllbnQoKTsKLSAgICAgICAgbV9sb2FkZXJzLnJl
bW92ZShXVEZNb3ZlKGxvYWRlcikpOwotICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtF
cnJvcihkZWZlcnJlZC5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwg
IkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybiBq
c1Byb21pc2U7CisgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsK
KyAgICAgICAgYXV0byBsb2FkZXIgPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgq
dGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVyKj4o
SlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNoZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hl
cigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFyYW1ldGVycykpOworICAgICAgICBtX2xvYWRl
cnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOworICAgICAgICBpZiAoIWxvYWRlci0+bG9hZChkb3du
Y2FzdDxEb2N1bWVudD4obV9jb250ZXh0KSwgV1RGTW92ZShjb21wbGV0ZWRVUkwpKSkgeworICAg
ICAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOworICAgICAgICAgICAgbV9sb2FkZXJzLnJl
bW92ZShXVEZNb3ZlKGxvYWRlcikpOworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3
b3JrRXJyb3IoZGVmZXJyZWQuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9y
ZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOworICAgICAgICAgICAg
cmV0dXJuIGpzUHJvbWlzZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8g
bG9hZGVyID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVk
LmdldCgpLCAqc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpT
Qzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUo
dG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKKyAgICAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIu
Y29weVJlZigpKTsKKyAgICAgICAgbG9hZGVyLT5sb2FkKG1fY29udGV4dCwgV1RGTW92ZShjb21w
bGV0ZWRVUkwpKTsKICAgICB9CiAKICAgICByZXR1cm4ganNQcm9taXNlOwpAQCAtMTc2LDcgKzE4
OSw3IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2go
SlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPCiBVUkwgU2NyaXB0TW9kdWxlTG9hZGVyOjpt
b2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1
ZSBtb2R1bGVLZXlWYWx1ZSkKIHsKICAgICBpZiAobW9kdWxlS2V5VmFsdWUuaXNTeW1ib2woKSkK
LSAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQudXJsKCk7CisgICAgICAgIHJldHVybiBtX2NvbnRl
eHQudXJsKCk7CiAKICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CiAgICAg
cmV0dXJuIFVSTChVUkwoKSwgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZSgmanNHbG9i
YWxPYmplY3QpKTsKQEAgLTE4Nyw4ICsyMDAsMTEgQEAgVVJMIFNjcmlwdE1vZHVsZUxvYWRlcjo6
cmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE8K
ICAgICBKU0M6OlZNJiB2bSA9IGpzR2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgaWYgKGlzUm9vdE1vZHVsZShtb2R1bGVL
ZXlWYWx1ZSkpCi0gICAgICAgIHJldHVybiBtX2RvY3VtZW50LmJhc2VVUkwoKTsKKyAgICBpZiAo
aXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkgeworICAgICAgICBpZiAobV9vd25lclR5cGUg
PT0gT3duZXJUeXBlOjpEb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxEb2N1
bWVudD4obV9jb250ZXh0KS5iYXNlVVJMKCk7CisgICAgICAgIHJldHVybiBtX2NvbnRleHQudXJs
KCk7CisgICAgfQogCiAgICAgQVNTRVJUKCFpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKTsK
ICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CkBAIC0yMTksOCArMjM1LDE0
IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKCiAgICAgaWYgKCFzb3VyY2VVUkwuaXNWYWxpZCgp
KQogICAgICAgICByZXR1cm4gSlNDOjp0aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9iamVjdCwgc2Nv
cGUsICJNb2R1bGUga2V5IGlzIGFuIGludmFsaWQgVVJMLiJfcyk7CiAKLSAgICBpZiAoYXV0byog
ZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFtZS0+c2NyaXB0
KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAgICBpZiAobV9v
d25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBpZiAoYXV0byogZnJh
bWUgPSBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5mcmFtZSgpKQorICAgICAgICAgICAg
cmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsICptb2R1bGVS
ZWNvcmQpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChpczxXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZT4obV9jb250ZXh0KSk7CisgICAgICAgIGlmIChhdXRvKiBzY3JpcHQgPSBkb3du
Y2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZT4obV9jb250ZXh0KS5zY3JpcHQoKSkKKyAg
ICAgICAgICAgIHJldHVybiBzY3JpcHQtPmV2YWx1YXRlTW9kdWxlKCptb2R1bGVSZWNvcmQpOwor
ICAgIH0KICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwogfQogCkBAIC0yNDgsOCArMjcw
LDEzIEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6aW1wb3J0
TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzCiAgICAgVVJMIGJhc2VVUkw7CiAgICAgUmVm
UHRyPEpTQzo6U2NyaXB0RmV0Y2hlcj4gc2NyaXB0RmV0Y2hlcjsKICAgICBpZiAoc291cmNlT3Jp
Z2luLmlzTnVsbCgpKSB7Ci0gICAgICAgIGJhc2VVUkwgPSBtX2RvY3VtZW50LmJhc2VVUkwoKTsK
LSAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShtX2Rv
Y3VtZW50LmNoYXJzZXQoKSk7CisgICAgICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6
OkRvY3VtZW50KSB7CisgICAgICAgICAgICBiYXNlVVJMID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1f
Y29udGV4dCkuYmFzZVVSTCgpOworICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNj
cmlwdEZldGNoZXI6OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5jaGFyc2V0
KCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFzZVVSTCA9IG1fY29udGV4dC51
cmwoKTsKKyAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpj
cmVhdGUoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbik7CisgICAgICAgIH0K
ICAgICB9IGVsc2UgewogICAgICAgICBiYXNlVVJMID0gVVJMKFVSTCgpLCBzb3VyY2VPcmlnaW4u
c3RyaW5nKCkpOwogICAgICAgICBpZiAoIWJhc2VVUkwuaXNWYWxpZCgpKQpAQCAtMjU3LDE0ICsy
ODQsMTkgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVyOjppbXBv
cnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganMKIAogICAgICAgICBpZiAoc291cmNlT3Jp
Z2luLmZldGNoZXIoKSkKICAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBzb3VyY2VPcmlnaW4u
ZmV0Y2hlcigpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2Fj
aGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKG1fZG9jdW1lbnQuY2hhcnNldCgpKTsKKworICAgICAg
ICBpZiAoIXNjcmlwdEZldGNoZXIpIHsKKyAgICAgICAgICAgIGlmIChtX293bmVyVHlwZSA9PSBP
d25lclR5cGU6OkRvY3VtZW50KQorICAgICAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNo
ZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuY2hh
cnNldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzY3JpcHRGZXRjaGVy
ID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6
OlNhbWVPcmlnaW4pOworICAgICAgICB9CiAgICAgfQogICAgIEFTU0VSVChiYXNlVVJMLmlzVmFs
aWQoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEZldGNoZXIpOwogCiAgICAgYXV0byBzcGVjaWZpZXIg
PSBtb2R1bGVOYW1lLT52YWx1ZShqc0dsb2JhbE9iamVjdCk7Ci0gICAgYXV0byByZXN1bHQgPSBy
ZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmllciwgYmFzZVVSTCk7Cisg
ICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fY29udGV4dCwgbV9vd25l
clR5cGUsIHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJl
dHVybiByZWplY3RQcm9taXNlKGdsb2JhbE9iamVjdCwgVHlwZUVycm9yLCByZXN1bHQuZXJyb3Io
KSk7CiAKQEAgLTI4OCw2MiArMzIwLDEwNyBAQCBKU0M6OkpTT2JqZWN0KiBTY3JpcHRNb2R1bGVM
b2FkZXI6OmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplYwogICAg
IHJldHVybiBtZXRhUHJvcGVydGllczsKIH0KIAotdm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciYgbG9hZGVyLCBSZWZQdHI8RGVm
ZXJyZWRQcm9taXNlPiBwcm9taXNlKQordm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVyLCBVUkwmJiBzb3Vy
Y2VVUkwsIFJlZjxEZWZlcnJlZFByb21pc2U+IHByb21pc2UpCiB7CiAgICAgLy8gaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2lu
Z2xlLW1vZHVsZS1zY3JpcHQKIAotICAgIFVSTCBzb3VyY2VVUkwgPSBsb2FkZXIuc291cmNlVVJM
KCk7Ci0gICAgaWYgKCFtX2xvYWRlcnMucmVtb3ZlKCZsb2FkZXIpKQorICAgIGlmICghbV9sb2Fk
ZXJzLnJlbW92ZSgmbW9kdWxlU2NyaXB0TG9hZGVyKSkKICAgICAgICAgcmV0dXJuOwotICAgIGxv
YWRlci5jbGVhckNsaWVudCgpOworICAgIG1vZHVsZVNjcmlwdExvYWRlci5jbGVhckNsaWVudCgp
OwogCi0gICAgYXV0byYgY2FjaGVkU2NyaXB0ID0gKmxvYWRlci5jYWNoZWRTY3JpcHQoKTsKKyAg
ICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBhdXRv
JiBsb2FkZXIgPSBzdGF0aWNfY2FzdDxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImPihtb2R1bGVT
Y3JpcHRMb2FkZXIpOworICAgICAgICBhdXRvJiBjYWNoZWRTY3JpcHQgPSAqbG9hZGVyLmNhY2hl
ZFNjcmlwdCgpOwogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC5yZXNvdXJjZUVycm9yKCkuaXNBY2Nl
c3NDb250cm9sKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgIkNyb3Nz
LW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJp
bmcgcG9saWN5LiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNo
ZWRTY3JpcHQucmVzb3VyY2VFcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CisgICAgICAgICAg
ICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRl
bmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIl9zKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC5lcnJvck9j
Y3VycmVkKCkpIHsKLSAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoKnByb21p
c2UsIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1
bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBp
ZiAoY2FjaGVkU2NyaXB0LmVycm9yT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgcmVqZWN0VG9Q
cm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2lu
ZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIGlmIChjYWNoZWRTY3JpcHQud2Fz
Q2FuY2VsZWQoKSkgewotICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcigqcHJv
bWlzZSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcgYSBt
b2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Cisg
ICAgICAgIGlmIChjYWNoZWRTY3JpcHQud2FzQ2FuY2VsZWQoKSkgeworICAgICAgICAgICAgcmVq
ZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWls
dXJlS2luZDo6V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNl
bGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIGlmICghTUlN
RVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUoY2FjaGVkU2NyaXB0
LnJlc3BvbnNlKCkubWltZVR5cGUoKSkpIHsKLSAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVs
ZS1zY3JpcHQKLSAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBl
IGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90
IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCi0gICAgICAgIC8vIEZvciBoaXN0b3JpY2FsIHJlYXNv
bnMsIGZldGNoaW5nIGEgY2xhc3NpYyBzY3JpcHQgZG9lcyBub3QgaW5jbHVkZSBNSU1FIHR5cGUg
Y2hlY2tpbmcuIEluIGNvbnRyYXN0LCBtb2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwgdG8gbG9hZCBp
ZiB0aGV5IGFyZSBub3Qgb2YgYSBjb3JyZWN0IE1JTUUgdHlwZS4KLSAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgp
Lm1pbWVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYgKCFNSU1FVHlwZVJlZ2lzdHJ5Ojpp
c1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1l
VHlwZSgpKSkgeworICAgICAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9t
dWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKKyAg
ICAgICAgICAgIC8vIFRoZSByZXN1bHQgb2YgZXh0cmFjdGluZyBhIE1JTUUgdHlwZSBmcm9tIHJl
c3BvbnNlJ3MgaGVhZGVyIGxpc3QgKGlnbm9yaW5nIHBhcmFtZXRlcnMpIGlzIG5vdCBhIEphdmFT
Y3JpcHQgTUlNRSB0eXBlLgorICAgICAgICAgICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywg
ZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBkb2VzIG5vdCBpbmNsdWRlIE1JTUUgdHlwZSBjaGVj
a2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBzY3JpcHRzIHdpbGwgZmFpbCB0byBsb2FkIGlmIHRo
ZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlNRSB0eXBlLgorICAgICAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgp
Lm1pbWVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRvKiBwYXJh
bWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAgICAgaWYgKCFtYXRjaElu
dGVncml0eU1ldGFkYXRhKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkpKSB7
CisgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygi
Q2Fubm90IGxvYWQgc2NyaXB0ICIsIGludGVncml0eU1pc21hdGNoRGVzY3JpcHRpb24oY2FjaGVk
U2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBVUkwgcmVzcG9uc2VVUkwg
PSBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKTsKKyAgICAgICAgLy8gSWYgd2UgZG8gbm90
IGhhdmUgcmVkaXJlY3Rpb24sIHdlIG11c3QgcmVzZXJ2ZSB0aGUgc291cmNlIFVSTCdzIGZyYWdt
ZW50IGV4cGxpY2l0bHkgaGVyZSBzaW5jZSBSZXNvdXJjZVJlc3BvbnNlOjp1cmwoKSBpcyB0aGUg
b25lIHdoZW4gd2UgZmlyc3QgY2FjaGUgaXQgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgdHJhY2sgZnJhZ21lbnRzIHRocm91Z2ggcmVkaXJlY3Rpb25zLgorICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCisg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0OTAK
KyAgICAgICAgaWYgKCFjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCkgJiYgY2FjaGVkU2Ny
aXB0LnJlc3BvbnNlKCkuc291cmNlKCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2
aWNlV29ya2VyKSB7CisgICAgICAgICAgICBpZiAoc291cmNlVVJMLmhhc0ZyYWdtZW50SWRlbnRp
ZmllcigpKQorICAgICAgICAgICAgICAgIHJlc3BvbnNlVVJMLnNldEZyYWdtZW50SWRlbnRpZmll
cihzb3VyY2VVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgICAgICB9CisKKyAgICAgICAg
bV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCBXVEZN
b3ZlKHJlc3BvbnNlVVJMKSk7CisgICAgICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2so
WyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QpIHsKKyAgICAgICAgICAgIHJl
dHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCisgICAg
ICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRT
Y3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3Jp
cHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUoKSB9KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgYXV0byYgbG9hZGVyID0gc3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVyKTsKKyAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0
TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRlcigpOwogCi0gICAgaWYgKGF1dG8qIHBhcmFtZXRl
cnMgPSBsb2FkZXIucGFyYW1ldGVycygpKSB7Ci0gICAgICAgIGlmICghbWF0Y2hJbnRlZ3JpdHlN
ZXRhZGF0YShjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkgewotICAgICAg
ICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiQ2Fubm90IGxvYWQg
c2NyaXB0ICIsIGludGVncml0eU1pc21hdGNoRGVzY3JpcHRpb24oY2FjaGVkU2NyaXB0LCBwYXJh
bWV0ZXJzLT5pbnRlZ3JpdHkoKSkpKTsKKyAgICAgICAgaWYgKHdvcmtlclNjcmlwdExvYWRlci5m
YWlsZWQoKSkgeworICAgICAgICAgICAgaWYgKHdvcmtlclNjcmlwdExvYWRlci5lcnJvcigpLmlz
QWNjZXNzQ29udHJvbCgpKSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVF
cnJvciwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJl
c291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmVycm9yKCku
aXNDYW5jZWxsYXRpb24oKSkgeworICAgICAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0
d29ya0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNl
bGVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4iX3MpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVqZWN0VG9Q
cm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2lu
ZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICBVUkwgcmVzcG9uc2VV
UkwgPSBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKTsKLSAgICAvLyBJZiB3ZSBkbyBub3Qg
aGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21l
bnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBv
bmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KLSAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIHRyYWNrIGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4KLSAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCi0gICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAotICAgIGlmICghY2Fj
aGVkU2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpICYmIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnNv
dXJjZSgpICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgewotICAg
ICAgICBpZiAoc291cmNlVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQotICAgICAgICAgICAg
cmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50
aWZpZXIoKSk7Ci0gICAgfQorICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9y
dGVkSmF2YVNjcmlwdE1JTUVUeXBlKHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25zZU1JTUVUeXBl
KCkpKSB7CisgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAorICAgICAg
ICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9u
c2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlw
dCBNSU1FIHR5cGUuCisgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRj
aGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5n
LiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBh
cmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCisgICAgICAgICAgICBwcm9taXNlLT5yZWpl
Y3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNl
TUlNRVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICBtX3JlcXVlc3RVUkxUb1Jlc3Bv
bnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsK
LSAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3Qm
IGpzR2xvYmFsT2JqZWN0KSB7Ci0gICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3Jl
YXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCi0gICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBT
Y3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0p
OwotICAgIH0pOworICAgICAgICBVUkwgcmVzcG9uc2VVUkwgPSB3b3JrZXJTY3JpcHRMb2FkZXIu
cmVzcG9uc2VVUkwoKTsKKworICAgICAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlv
biwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBo
ZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJz
dCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0
cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRpcmVjdGlvbnMuCisgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKyAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAorICAgICAgICBpZiAoIXdv
cmtlclNjcmlwdExvYWRlci5pc1JlZGlyZWN0ZWQoKSAmJiB3b3JrZXJTY3JpcHRMb2FkZXIucmVz
cG9uc2VTb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIp
IHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisg
ICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVS
TC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgICAgIH0KKworICAgICAgICBtX3JlcXVlc3RV
UkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIHJlc3BvbnNlVVJMKTsK
KyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2Jq
ZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VD
b2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6OlNv
dXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0TG9hZGVyLnNjcmlwdCgp
LCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkgfSk7Cisg
ICAgICAgIH0pOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRNb2R1bGVMb2FkZXIuaAppbmRleCBkZTI5ZDJmNGJmMDk2YjYwYzM2OTk4MDMxNmMx
NDg2YjI4MmFiZjA5Li5kZjM0ZDU1MWExMWNkOThmNGUyMzZhMmFhMWY0ODI3OWQ5NjRjNjg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaApA
QCAtMjUsOCArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIk1vZHVsZVNj
cmlwdExvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgpAQCAtNDUsMTYgKzQ1LDE3IEBAIGNsYXNzIFNvdXJjZU9yaWdpbjsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZp
bmFsIDogcHJpdmF0ZSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworY2xhc3MgU2Ny
aXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNjcmlwdE1vZHVsZUxvYWRlcik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRl
cihEb2N1bWVudCYpOworICAgIGVudW0gY2xhc3MgT3duZXJUeXBlIDogdWludDhfdCB7IERvY3Vt
ZW50LCBXb3JrZXJPcldvcmtsZXQgfTsKKyAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE93bmVyVHlwZSk7CiAgICAgflNjcmlwdE1vZHVsZUxv
YWRlcigpOwogCi0gICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsg
fQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRl
eHQ7IH0KIAogICAgIEpTQzo6SWRlbnRpZmllciByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNW
YWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwogICAg
IEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTYzLDEzICs2NCwxNSBA
QCBjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudCB7CiAgICAgSlNDOjpKU09iamVjdCogY3JlYXRlSW1wb3J0TWV0YVBy
b3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTVmFsdWUsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwogCiBwcml2YXRl
OgotICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVm
UHRyPERlZmVycmVkUHJvbWlzZT4pIGZpbmFsOworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoTW9k
dWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSBmaW5hbDsKKwog
ICAgIFVSTCBtb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAg
ICAgVVJMIHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpT
Qzo6SlNWYWx1ZSk7CiAKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBtX2NvbnRleHQ7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1
ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKLSAgICBIYXNoU2V0PFJlZjxDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXI+PiBtX2xvYWRlcnM7CisgICAgSGFzaFNldDxSZWY8TW9kdWxlU2NyaXB0TG9hZGVy
Pj4gbV9sb2FkZXJzOworICAgIE93bmVyVHlwZSBtX293bmVyVHlwZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdFNvdXJjZUNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJj
ZUNvZGUuaAppbmRleCBjNzA0NjI2ZmI3MzNkYjQ3MmJkYTUwMjM2MjQxYTZlNzQwZTI3ODJiLi4x
MGZhN2U4YjQ0OWM4Yjg0OWViMzdjYzFmMmM4NjZmYTg5M2FhZDZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIGNs
YXNzIFNjcmlwdFNvdXJjZUNvZGUgewogICAgIHsKICAgICB9CiAKLSAgICBTY3JpcHRTb3VyY2VD
b2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYg
c3RhcnRQb3NpdGlvbiwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwg
UmVmPENhY2hlZFNjcmlwdEZldGNoZXI+JiYgc2NyaXB0RmV0Y2hlcikKKyAgICBTY3JpcHRTb3Vy
Y2VDb2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlv
biYgc3RhcnRQb3NpdGlvbiwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlw
ZSwgUmVmPEpTQzo6U2NyaXB0RmV0Y2hlcj4mJiBzY3JpcHRGZXRjaGVyKQogICAgICAgICA6IG1f
cHJvdmlkZXIoSlNDOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgSlNDOjpT
b3VyY2VPcmlnaW4geyB1cmwsIFdURk1vdmUoc2NyaXB0RmV0Y2hlcikgfSwgdXJsLnN0cmluZygp
LCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSkKICAgICAgICAgLCBtX2NvZGUobV9wcm92aWRl
ci5jb3B5UmVmKCksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9z
aXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42ZDI3NDkzYTYwMTdmODA3ZDAwMWRmZjgzNmY0ZjI1MTc4YTE2ZTI2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorCisjaW5jbHVkZSAiQ2Fj
aGVkU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNET01Q
cm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0
U291cmNlQ29kZS5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRl
ICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyPiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNl
LCBXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQ
YXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RG
TW92ZShwYXJhbWV0ZXJzKSkpOworfQorCitXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Oldvcmtl
ck1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVm
ZXJyZWRQcm9taXNlJiBwcm9taXNlLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVy
LCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCisgICAgOiBNb2R1
bGVTY3JpcHRMb2FkZXIoY2xpZW50LCBwcm9taXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBh
cmFtZXRlcnMpKQorICAgICwgbV9zY3JpcHRMb2FkZXIoV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVh
dGUoKSkKK3sKK30KKworV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjp+V29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyKCkKK3sKKyAgICBtX3NjcmlwdExvYWRlci0+Y2FuY2VsKCk7Cit9CisKK2Jvb2wg
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFVSTCYmIHNvdXJjZVVSTCkKK3sKKyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUoc291
cmNlVVJMKTsKKworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgbV9zb3VyY2VVUkwgfTsK
KworICAgIEZldGNoT3B0aW9ucyBmZXRjaE9wdGlvbnM7CisgICAgZmV0Y2hPcHRpb25zLm1vZGUg
PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM7CisgICAgZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0
Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKKyAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBG
ZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CisgICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRp
YWxzID0gc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hlciY+KHNjcmlwdEZldGNoZXIoKSku
Y3JlZGVudGlhbHMoKTsKKyAgICBhdXRvIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50
ID0gY29udGV4dC5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSA/
IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UgOiBDb250ZW50
U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RW5mb3JjZUNoaWxkU3JjRGlyZWN0aXZlOworCisg
ICAgU3RyaW5nIHRhc2tNb2RlID0gImxvYWRNb2R1bGVzSW5Xb3JrZXJPcldvcmtsZXRNb2RlIl9z
OworICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92
ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsICp0aGlzLCBXVEZNb3ZlKHRhc2tN
b2RlKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyOjpub3RpZnlGaW5pc2hlZCgpCit7CisgICAgQVNTRVJUKG1fcHJvbWlzZSk7CisKKyAgICBh
dXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKyAgICBpZiAobV9jbGllbnQpCisg
ICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJjZVVS
TCksIG1fcHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mMTAwODBlZTkzMWJmYjBiMzNhOWY1NDczYjI5N2NhMmRjMmU0NzU4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZWZlcnJlZFByb21pc2U7CitjbGFzcyBKU0RPTUds
b2JhbE9iamVjdDsKK2NsYXNzIE1vZHVsZUZldGNoUGFyYW1ldGVyczsKK2NsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFzcyBX
b3JrZXJTY3JpcHRMb2FkZXI7CisKK2NsYXNzIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciBmaW5h
bCA6IHB1YmxpYyBNb2R1bGVTY3JpcHRMb2FkZXIsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRl
cj4gY3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIFdv
cmtlclNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKwor
ICAgIHZpcnR1YWwgfldvcmtlck1vZHVsZVNjcmlwdExvYWRlcigpOworCisgICAgYm9vbCBsb2Fk
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBVUkwmJiBzb3VyY2VVUkwpOworCisgICAgV29ya2Vy
U2NyaXB0TG9hZGVyJiBzY3JpcHRMb2FkZXIoKSB7IHJldHVybiBtX3NjcmlwdExvYWRlci5nZXQo
KTsgfQorCitwcml2YXRlOgorICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiwg
UmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyB9
CisgICAgdm9pZCBub3RpZnlGaW5pc2hlZCgpIGZpbmFsOworCisgICAgUmVmPFdvcmtlclNjcmlw
dExvYWRlcj4gbV9zY3JpcHRMb2FkZXI7CisgICAgVVJMIG1fc291cmNlVVJMOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0RmV0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0RmV0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2YjU0ZWY4OTRiNTMzZWFmY2ViYzFhMTRi
ZjI3NmEwM2VjYmExMGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRGZXRjaGVyLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTG9hZGFibGVTY3JpcHQuaCIKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9TY3JpcHRGZXRjaGVyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQ2FjaGVkU2NyaXB0OworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIFdvcmtlclNj
cmlwdEZldGNoZXIgZmluYWwgOiBwdWJsaWMgSlNDOjpTY3JpcHRGZXRjaGVyIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFdvcmtlclNjcmlwdEZldGNoZXI+IGNyZWF0ZShGZXRjaE9wdGlvbnM6
OkNyZWRlbnRpYWxzIGNyZWRlbnRpYWxzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV29ya2VyU2NyaXB0RmV0Y2hlcihjcmVkZW50aWFscykpOworICAgIH0KKworICAgIEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBtX2Ny
ZWRlbnRpYWxzOyB9CisKKyAgICB2b2lkIG5vdGlmeUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmlu
Z0ltcGwmIG1vZHVsZUtleSkKKyAgICB7CisgICAgICAgIG1fbW9kdWxlS2V5ID0gJm1vZHVsZUtl
eTsKKyAgICAgICAgbV9pc0xvYWRlZCA9IHRydWU7CisgICAgfQorCisgICAgdm9pZCBub3RpZnlM
b2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciYmIGVycm9yKQorICAgIHsKKyAgICAgICAg
bV9lcnJvciA9IFdURk1vdmUoZXJyb3IpOworICAgICAgICBtX2lzTG9hZGVkID0gdHJ1ZTsKKyAg
ICB9CisKKyAgICB2b2lkIG5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpCisgICAgeworICAgICAgICBt
X3dhc0NhbmNlbGVkID0gdHJ1ZTsKKyAgICAgICAgbV9pc0xvYWRlZCA9IHRydWU7CisgICAgfQor
CisgICAgYm9vbCBpc0xvYWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2FkZWQ7IH0KKyAgICBP
cHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6RXJyb3I+IGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9l
cnJvcjsgfQorICAgIGJvb2wgd2FzQ2FuY2VsZWQoKSBjb25zdCB7IHJldHVybiBtX3dhc0NhbmNl
bGVkOyB9CisgICAgVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSgpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kdWxlS2V5LmdldCgpOyB9CisKK3Byb3RlY3RlZDoKKyAgICBXb3JrZXJTY3JpcHRGZXRj
aGVyKEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMpCisgICAgICAgIDogbV9j
cmVkZW50aWFscyhjcmVkZW50aWFscykKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgbV9jcmVkZW50aWFsczsKKyAgICBSZWZQdHI8VW5pcXVl
ZFN0cmluZ0ltcGw+IG1fbW9kdWxlS2V5OworICAgIE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpF
cnJvcj4gbV9lcnJvcjsKKyAgICBib29sIG1fd2FzQ2FuY2VsZWQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc0xvYWRlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA5YjIxMzhiNzdjMTgwZDcyMDk1MTgwMGUxNGUzNDdh
MTQzZTk3MTcxLi41NGNmZjA0YTk2ZGJjODA5ZDYzNmFhZWM4ZWNiMjA1ZTQ2NzdmMDQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYxNSw3ICs2MTUsNyBAQCBEb2N1bWVudDo6RG9jdW1l
bnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJs
LCBEb2N1bQogICAgICwgbV9kb2N1bWVudENyZWF0aW9uVGltZShNb25vdG9uaWNUaW1lOjpub3co
KSkKICNlbmRpZgogICAgICwgbV9zY3JpcHRSdW5uZXIobWFrZVVuaXF1ZTxTY3JpcHRSdW5uZXI+
KCp0aGlzKSkKLSAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9h
ZGVyPigqdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlcihtYWtlVW5pcXVlPFNjcmlwdE1vZHVs
ZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlOjpEb2N1bWVudCkp
CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgLCBtX2FwcGx5UGVuZGluZ1hTTFRyYW5zZm9ybXNUaW1l
cigqdGhpcywgJkRvY3VtZW50OjphcHBseVBlbmRpbmdYU0xUcmFuc2Zvcm1zVGltZXJGaXJlZCkK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2Ny
aXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKaW5k
ZXggOWEyNWMxNjU4OGVlY2FkNjc4ZmI5MTFlYzg2MjJmNDI0MjU5MmI1YS4uNDhlYzA4NTFhNDU3
ZDliYTQ3NDczZmVjMjhkN2I0OTMxMmI3ODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9h
ZGFibGVNb2R1bGVTY3JpcHQuY3BwCkBAIC04OCwxNiArODgsNCBAQCB2b2lkIExvYWRhYmxlTW9k
dWxlU2NyaXB0OjpleGVjdXRlKFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiAgICAgc2Ny
aXB0RWxlbWVudC5leGVjdXRlTW9kdWxlU2NyaXB0KCp0aGlzKTsKIH0KIAotdm9pZCBMb2FkYWJs
ZU1vZHVsZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgcm9vdFVS
TCkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAgICAgICBm
cmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgcm9vdFVSTC5zdHJpbmcoKSwg
bV9wYXJhbWV0ZXJzLmNvcHlSZWYoKSk7Ci19Ci0KLXZvaWQgTG9hZGFibGVNb2R1bGVTY3JpcHQ6
OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VD
b2RlKQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0gICAgICAg
IGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KCp0aGlzLCBzb3VyY2VDb2RlKTsKLX0K
LQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAppbmRleCBiYjc5
OTU0ZDdiOTliMGVkMDZiZmU1NWVmODU0ZWNjZTIxZjM1ODc3Li5kMjUzNTk2M2Y2NDhiMDJhOGEw
MWZkNjNiYjFlMzgxMzg2Y2VlNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9h
ZGFibGVNb2R1bGVTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1
bGVTY3JpcHQuaApAQCAtNTAsMTUgKzUwLDE0IEBAIGNsYXNzIExvYWRhYmxlTW9kdWxlU2NyaXB0
IGZpbmFsIDogcHVibGljIExvYWRhYmxlU2NyaXB0IHsKIAogICAgIHZvaWQgc2V0RXJyb3IoRXJy
b3ImJik7CiAKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHJvb3RVUkwpOwot
ICAgIHZvaWQgbG9hZChEb2N1bWVudCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKLQogICAg
IHZvaWQgbm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYpOwogICAgIHZvaWQg
bm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3ImJik7CiAgICAgdm9pZCBub3Rp
ZnlMb2FkV2FzQ2FuY2VsZWQoKTsKIAogICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXko
KSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQogCisgICAgTW9kdWxlRmV0Y2hQ
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9CisK
IHByaXZhdGU6CiAgICAgTG9hZGFibGVNb2R1bGVTY3JpcHQoY29uc3QgU3RyaW5nJiBub25jZSwg
Y29uc3QgU3RyaW5nJiBpbnRlZ3JpdHksIFJlZmVycmVyUG9saWN5LCBjb25zdCBTdHJpbmcmIGNy
b3NzT3JpZ2luTW9kZSwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBBdG9tU3RyaW5nJiBp
bml0aWF0b3JOYW1lLCBib29sIGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDA1NzU4YjYwMGM3NTIyYjQ3ZjM2NGJhNmExOGQz
NWYxNzMxMTA3ZjkuLjVlOTlmMGY1Nzc3YjNiMjE1OGRkMGZhNGJjMzgyNzc2Y2RiMzQ4MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNs
dWRlICJMb2FkYWJsZUNsYXNzaWNTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZU1vZHVsZVNj
cmlwdC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNb2R1bGVG
ZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5jbHVkZSAi
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxlbWVudC5o
IgpAQCAtMzUxLDggKzM1MiwxMSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVT
Y3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAgICAgICAg
ICAgc2NyaXB0Q2hhcnNldCgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmxvY2FsTmFtZSgpLAog
ICAgICAgICAgICAgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOwotICAgICAg
ICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIG1vZHVsZVNjcmlwdFJvb3RVUkwp
OwogICAgICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAgICAgICBp
ZiAoYXV0byogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKSB7CisgICAgICAg
ICAgICBhdXRvJiBzY3JpcHQgPSBkb3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4oKm1fbG9h
ZGFibGVTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1
bGVTY3JpcHQoc2NyaXB0LCBtb2R1bGVTY3JpcHRSb290VVJMLnN0cmluZygpLCBtYWtlUmVmKHNj
cmlwdC5wYXJhbWV0ZXJzKCkpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKQEAgLTM2Nyw4ICszNzEsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1
bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAgIGlm
ICghY29udGVudFNlY3VyaXR5UG9saWN5LmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1
bWVudCgpLnVybCgpLnN0cmluZygpLCBtX3N0YXJ0TGluZU51bWJlciwgc291cmNlQ29kZS5zb3Vy
Y2UoKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCksIGhhc0tub3duTm9uY2UpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIHNv
dXJjZUNvZGUpOwogICAgIG1fbG9hZGFibGVTY3JpcHQgPSBXVEZNb3ZlKHNjcmlwdCk7CisgICAg
aWYgKGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAgICAg
ZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoZG93bmNhc3Q8TG9hZGFibGVNb2R1bGVT
Y3JpcHQ+KCptX2xvYWRhYmxlU2NyaXB0LmdldCgpKSwgc291cmNlQ29kZSk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxl
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcApp
bmRleCAyNzE3Yzg2MWM3NGIwZjJhZWJjZGU0MDg3MDBlMmE5YTAzNzM3NTk1Li4xYjY1MzJjM2Iw
ZWFhODBkOWJkNDZjNmQ0MzIxMzY5NjIxYzAxOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1RocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0xMDEsMTAgKzEwMSwxMCBAQCBUaHJlYWRhYmxlTG9h
ZGVyT3B0aW9ucyBUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QK
IH0KIAogCi1SZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRocmVhZGFibGVMb2FkZXJDbGllbnQm
IGNsaWVudCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJsZUxvYWRl
ck9wdGlvbnMmIG9wdGlvbnMsIFN0cmluZyYmIHJlZmVycmVyKQorUmVmUHRyPFRocmVhZGFibGVM
b2FkZXI+IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBTdHJpbmcm
JiByZWZlcnJlciwgU3RyaW5nJiYgdGFza01vZGUpCiB7CiAgICAgaWYgKGlzPFdvcmtlckdsb2Jh
bFNjb3BlPihjb250ZXh0KSB8fCAoaXM8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBk
b3duY2FzdDxXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLndvcmtlck9yV29ya2xldFRocmVh
ZCgpKSkKLSAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzdGF0
aWNfY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSY+KGNvbnRleHQpLCBjbGllbnQsIFdv
cmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCksIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMsIFdU
Rk1vdmUocmVmZXJyZXIpKTsKKyAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVMb2FkZXI6
OmNyZWF0ZShzdGF0aWNfY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSY+KGNvbnRleHQp
LCBjbGllbnQsIFdURk1vdmUodGFza01vZGUpLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLCBX
VEZNb3ZlKHJlZmVycmVyKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBudWxscHRyOwog
ICAgIGlmIChpczxXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9UaHJlYWRhYmxlTG9hZGVyLmgKaW5kZXggYzJiMjQ1YzNlYmI4YmM5MzBlZjRkMTcyYmEx
NTA5YTE3OWYxZDdhNi4uMWFjNzA0YjRjM2I1MGIwZmZkYTAzNDI4YzNjZTdkYTE0OTg4MjYzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCkBAIC03NCw3ICs3NCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhy
ZWFkYWJsZUxvYWRlcik7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgdm9pZCBsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJjZVJlcXVl
c3QmJiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRp
b25zJik7Ci0gICAgICAgIHN0YXRpYyBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgUmVzb3VyY2VS
ZXF1ZXN0JiYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwgU3RyaW5nJiYgcmVmZXJy
ZXIgPSBTdHJpbmcoKSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50Jiwg
UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwgU3RyaW5n
JiYgcmVmZXJyZXIgPSBTdHJpbmcoKSwgU3RyaW5nJiYgdGFza01vZGUgPSB7IH0pOwogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSXNEb25lKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgY2FuY2VsKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IDYyZjkxN2Ez
Njc4MTlkZWMzY2Q0MTBkOTc2Njk1Y2VlNjJmNmQ0YjkuLjkyZWE4YTc4ZmE4ZjIzODViNmNkMGNk
ZWM1ZDUwZWYxZWM3NjFkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAgLTcwLDYg
KzcwLDggQEAgaW5saW5lIFdvcmtlcjo6V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWUKICAgICAsIG1faWRlbnRpZmllcigid29y
a2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigp
KQogICAgICwgbV9jb250ZXh0UHJveHkoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6Y3JlYXRlKCp0
aGlzKSkKICAgICAsIG1fcnVudGltZUZsYWdzKHJ1bnRpbWVGbGFncykKKyAgICAsIG1fdHlwZShv
cHRpb25zLnR5cGUpCisgICAgLCBtX2NyZWRlbnRpYWxzKG9wdGlvbnMuY3JlZGVudGlhbHMpCiB7
CiAgICAgc3RhdGljIGJvb2wgYWRkZWRMaXN0ZW5lcjsKICAgICBpZiAoIWFkZGVkTGlzdGVuZXIp
IHsKQEAgLTExMywxMCArMTE1LDE1IEBAIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBXb3JrZXI6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OlJ1CiAKICAgICBG
ZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwogICAgIGZldGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hP
cHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luOworICAgIGlmICh3b3JrZXItPm1fdHlwZSA9PSBXb3Jr
ZXJUeXBlOjpNb2R1bGUpCisgICAgICAgIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9IHdvcmtl
ci0+bV9jcmVkZW50aWFsczsKKyAgICBlbHNlCisgICAgICAgIGZldGNoT3B0aW9ucy5jcmVkZW50
aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW47CiAgICAgZmV0Y2hP
cHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKICAgICBmZXRjaE9w
dGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CiAgICAgZmV0
Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2Vy
OwotICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0
LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgd29ya2VyKTsKKyAg
ICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RG
TW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xp
Y3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsIHdvcmtlci5nZXQoKSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisKICAgICByZXR1cm4gd29ya2VyOwogfQogCkBA
IC0yMTUsNyArMjIyLDEzIEBAIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgUmVm
ZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kgPSBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmc7
CiAgICAgaWYgKGF1dG8gcG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShtX3NjcmlwdExvYWRl
ci0+cmVmZXJyZXJQb2xpY3koKSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OkhUVFBIZWFkZXIpKQog
ICAgICAgICByZWZlcnJlclBvbGljeSA9ICpwb2xpY3k7Ci0gICAgbV9jb250ZXh0UHJveHkuc3Rh
cnRXb3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwgY29udGV4
dC0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3NjcmlwdExv
YWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9z
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2VyQ3JlYXRp
b25UaW1lLCByZWZlcnJlclBvbGljeSwgbV9ydW50aW1lRmxhZ3MpOworCisgICAgVVJMIHJlc3Bv
bnNlVVJMID0gbV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgaWYgKCFtX3Njcmlw
dExvYWRlci0+aXNSZWRpcmVjdGVkKCkgJiYgbV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlU291cmNl
KCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7CisgICAgICAg
IGlmIChtX3NjcmlwdExvYWRlci0+dXJsKCkuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAg
ICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIobV9zY3JpcHRMb2FkZXIt
PnVybCgpLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICB9CisgICAgbV9jb250ZXh0UHJveHku
c3RhcnRXb3JrZXJHbG9iYWxTY29wZShyZXNwb25zZVVSTCwgbV9uYW1lLCBjb250ZXh0LT51c2Vy
QWdlbnQocmVzcG9uc2VVUkwpLCBpc09ubGluZSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIG1fc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBtX3dvcmtlckNyZWF0aW9uVGltZSwgcmVmZXJyZXJQ
b2xpY3ksIG1fdHlwZSwgbV9jcmVkZW50aWFscywgbV9ydW50aW1lRmxhZ3MpOwogICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWQoKmNvbnRleHQsIG1fc2NyaXB0TG9h
ZGVyLT5pZGVudGlmaWVyKCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlci5oCmluZGV4IDUzZjVlNmZmZjI3YzlmYTNlNWMwZTAxZjBmNmM0MmM2Y2I2
ZjlkMGUuLjM4YTYyM2E5OGRiYTM1ZmY4MDEzY2Q2ZmM4Yzg1YzgxMDIwNTAyMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXIuaApAQCAtMjksOSArMjksMTEgQEAKICNpbmNsdWRlICJBY3RpdmVET01P
YmplY3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRl
bnRpYWxzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJQb3N0TWVzc2Fn
ZU9wdGlvbnMuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIKKyNpbmNs
dWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdz
Lmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KQEAgLTU1LDYgKzU3LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3Ry
YWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFdvcmtlcik7CiBwdWJsaWM6CiAgICAgc3RydWN0IE9wdGlvbnMg
eworICAgICAgICBXb3JrZXJUeXBlIHR5cGU7CisgICAgICAgIEZldGNoUmVxdWVzdENyZWRlbnRp
YWxzIGNyZWRlbnRpYWxzOwogICAgICAgICBTdHJpbmcgbmFtZTsKICAgICB9OwogICAgIHN0YXRp
YyBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IE9wdGlvbnMmKTsK
QEAgLTc5LDYgKzgzLDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3RyYWN0V29y
a2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICAgICB2b2lkIHBvc3RU
YXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKT4mJik7CiAjZW5kaWYKIAorICAgIFdvcmtlclR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdvcmtlcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgSlNDOjpSdW50aW1lRmxhZ3MsIGNvbnN0IE9wdGlvbnMmKTsKIApAQCAtMTEy
LDYgKzExOCw4IEBAIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBXb3JrCiAjaWYgRU5BQkxFKFdFQl9SVEMp
CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fdHJhbnNmb3JtZXJzOwogI2VuZGlmCisgICAgV29ya2Vy
VHlwZSBtX3R5cGUgeyBXb3JrZXJUeXBlOjpDbGFzc2ljIH07CisgICAgRmV0Y2hSZXF1ZXN0Q3Jl
ZGVudGlhbHMgbV9jcmVkZW50aWFscyB7IEZldGNoUmVxdWVzdENyZWRlbnRpYWxzOjpTYW1lT3Jp
Z2luIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5pZGwKaW5kZXggNDVkNmEwODY3ODU0ZWU0MDRkZTdlN2QwMTI0OGNlYmY0NGRjYTdlZC4uNzAy
MTc5NmRmNTA0YWRmOGU2Yjk1ODlhY2U5ZjE0NDgyMWYyOTVmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyLmlkbApAQCAtMzgsNiArMzgsOCBAQAogfTsKIAogZGljdGlvbmFyeSBXb3JrZXJPcHRp
b25zIHsKKyAgICBXb3JrZXJUeXBlIHR5cGUgPSAiY2xhc3NpYyI7CisgICAgRmV0Y2hSZXF1ZXN0
Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMgPSAic2FtZS1vcmlnaW4iOyAvLyBjcmVkZW50aWFscyBp
cyBvbmx5IHVzZWQgaWYgdHlwZSBpcyAibW9kdWxlIgogICAgIERPTVN0cmluZyBuYW1lID0gIiI7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmlu
ZGV4IGRiYWIzNDhlODBjOWRlNTBiZDIxNTc3N2ExNGEzOWEwZjcwZTQ5YzcuLmNjZGU5MDljN2Ni
NTJlOTc3NzRjNWI4MTU4MjNlYmNiYmIwNzBmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC03NCw2ICs3NCw4IEBAIFdvcmtlckdsb2JhbFNj
b3BlOjpXb3JrZXJHbG9iYWxTY29wZShXb3JrZXJUaHJlYWRUeXBlIHR5cGUsIGNvbnN0IFdvcmtl
clBhcmFtZXRlCiAgICAgLCBtX3BlcmZvcm1hbmNlKFBlcmZvcm1hbmNlOjpjcmVhdGUodGhpcywg
cGFyYW1zLnRpbWVPcmlnaW4pKQogICAgICwgbV9yZWZlcnJlclBvbGljeShwYXJhbXMucmVmZXJy
ZXJQb2xpY3kpCiAgICAgLCBtX3NldHRpbmdzVmFsdWVzKHBhcmFtcy5zZXR0aW5nc1ZhbHVlcykK
KyAgICAsIG1fd29ya2VyVHlwZShwYXJhbXMud29ya2VyVHlwZSkKKyAgICAsIG1fY3JlZGVudGlh
bHMocGFyYW1zLmNyZWRlbnRpYWxzKQogewogI2lmICFFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
ICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvblByb3h5KTsKQEAgLTI3NCw2ICsyNzYsMTEgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gV29ya2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwdHMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHVybHMpCiB7CiAgICAgQVNTRVJUKGNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpKTsKIAorICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dv
cmtlcnMuaHRtbCNpbXBvcnRpbmctc2NyaXB0cy1hbmQtbGlicmFyaWVzCisgICAgLy8gMS4gSWYg
d29ya2VyIGdsb2JhbCBzY29wZSdzIHR5cGUgaXMgIm1vZHVsZSIsIHRocm93IGEgVHlwZUVycm9y
IGV4Y2VwdGlvbi4KKyAgICBpZiAobV93b3JrZXJUeXBlID09IFdvcmtlclR5cGU6Ok1vZHVsZSkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImltcG9ydFNjcmlwdHMgY2Fu
bm90IGJlIHVzZWQgaWYgd29lcmtlciB0eXBlIGlzIFwibW9kdWxlXCIiX3MgfTsKKwogICAgIFZl
Y3RvcjxVUkw+IGNvbXBsZXRlZFVSTHM7CiAgICAgY29tcGxldGVkVVJMcy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KHVybHMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGVudHJ5IDogdXJscykgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDQ2ZDQ5ZDk0
YzUyMzhlNDY4OGQzOTVkODdjMjA2M2ViNTcyMGQxYmYuLjc0Nzk1ZjVjMGY5YTJhMzVkMDA5MzAx
MmFkMThmNTdlMzE3ZjgyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmgKQEAgLTEyMyw2ICsxMjMsOCBAQCBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1
YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBCYXNlNgogCiAg
ICAgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3NldHRpbmdzVmFsdWVzOyB9CiAKKyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRp
YWxzIGNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gbV9jcmVkZW50aWFsczsgfQorCiBwcm90
ZWN0ZWQ6CiAgICAgV29ya2VyR2xvYmFsU2NvcGUoV29ya2VyVGhyZWFkVHlwZSwgY29uc3QgV29y
a2VyUGFyYW1ldGVycyYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiwgV29ya2VyVGhyZWFkJiwgUmVm
PFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJv
eHkqLCBTb2NrZXRQcm92aWRlciopOwogCkBAIC0xNjMsOCArMTY1LDYgQEAgY2xhc3MgV29ya2Vy
R2xvYmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBw
dWJsaWMgQmFzZTYKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJMb2NhdGlvbj4gbV9sb2NhdGlv
bjsKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJOYXZpZ2F0b3I+IG1fbmF2aWdhdG9yOwogCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+IG1fc2Ny
aXB0OwotCiAgICAgYm9vbCBtX2lzT25saW5lOwogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKQEAgLTE4Nyw2ICsxODcsOCBAQCBjbGFzcyBX
b3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29w
ZT4sIHB1YmxpYyBCYXNlNgogICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NWYWx1ZVBvb2w+IG1fY3Nz
VmFsdWVQb29sOwogICAgIFJlZmVycmVyUG9saWN5IG1fcmVmZXJyZXJQb2xpY3k7CiAgICAgU2V0
dGluZ3M6OlZhbHVlcyBtX3NldHRpbmdzVmFsdWVzOworICAgIFdvcmtlclR5cGUgbV93b3JrZXJU
eXBlOworICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgbV9jcmVkZW50aWFsczsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNDAwMDNjM2UwMTA5OTk2MGY2NDc4NjFlNzAxNjg3
ZDBlMzcxZDcyZC4uZWQ2NzNhYzhmN2MwZWU1NGMwNjBlY2I1OTIxNjM5MGVkNzBmZTJjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKQEAg
LTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGVQcm94eSB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFdvcmtlckdsb2JhbFNjb3BlUHJveHkmIGNyZWF0ZShXb3JrZXImKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJM
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25s
aW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBKU0M6
OlJ1bnRpbWVGbGFncykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNj
b3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmln
aW4sIFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywg
SlNDOjpSdW50aW1lRmxhZ3MpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRlV29ya2Vy
R2xvYmFsU2NvcGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJH
bG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmKT4mJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCAxOWQ0YmU2NDk5MmYzMGQzY2NlNzY1NDdhM2QyMjE4
YTk4Yzg0MmMzLi43ODgzNTg3YTdhZjYyMDllM2VjYzhlN2I0MWJhZDQ3YWRmNjIyNDBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAt
NzMsNyArNzMsNyBAQCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6fldvcmtlck1lc3NhZ2luZ1Byb3h5
KCkKICAgICAgICAgfHwgKGlzPFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KSAmJiBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkudGhyZWFkKCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKSk7CiB9CiAK
LXZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3Qg
VVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9s
aWN5LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCit2b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBj
b25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNo
b3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0
aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB3b3Jr
ZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpSdW50aW1l
RmxhZ3MgcnVudGltZUZsYWdzKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8gYmUgcmV2
aXNpdGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBBU1NFUlQo
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXb3JrZXJN
ZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVS
TCwgY29uc3QgU3QKIAogICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciA9IGRvY3Vt
ZW50LnNvY2tldFByb3ZpZGVyKCk7CiAKLSAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsg
c2NyaXB0VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIGRvY3VtZW50LnNl
dHRpbmdzVmFsdWVzKCkgfTsKKyAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsgc2NyaXB0
VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIHdvcmtlclR5cGUsIGNyZWRl
bnRpYWxzLCBkb2N1bWVudC5zZXR0aW5nc1ZhbHVlcygpIH07CiAgICAgYXV0byB0aHJlYWQgPSBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShwYXJhbXMsIHNvdXJjZUNvZGUsICp0aGlzLCAq
dGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwgZG9jdW1lbnQudG9wT3JpZ2luKCksIHByb3h5LCBzb2Nr
ZXRQcm92aWRlciwgcnVudGltZUZsYWdzKTsKIAogICAgIHdvcmtlclRocmVhZENyZWF0ZWQodGhy
ZWFkLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuaAppbmRleCBjNWI1NzViOWU2MTViM2YzZjU5NmJmYzNkZjY4M2M4NzdjYzYyYmFiLi5kOWU4
MWUxNTdhMGY0ODUyZTQ5YjU5ZDI1NjZhOGE4MGY1ZjgxOGFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNz
IFdvcmtlck1lc3NhZ2luZ1Byb3h5IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFdvcmtlck1lc3NhZ2luZ1ByCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBX
b3JrZXJHbG9iYWxTY29wZVByb3h5LgogICAgIC8vIChPbmx5IHVzZSB0aGVzZSBmdW5jdGlvbnMg
aW4gdGhlIHdvcmtlciBvYmplY3QgdGhyZWFkLikKLSAgICB2b2lkIHN0YXJ0V29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9y
aWdpbiwgUmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzKSBmaW5hbDsKKyAgICB2b2lk
IHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0
cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1v
bm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIEZldGNo
UmVxdWVzdENyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgZmluYWw7CiAgICAgdm9pZCB0
ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VU
b1dvcmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYpIGZpbmFsOwogICAg
IHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggMjM4NGE1YThjN2QyYTMw
MmVlZTVjYjQwNWUxMDVlMDI1Yzk4NDNjYy4uZjRmNGIyNzQ2NmY5YTMwYjI4YjhiMjFmNmYyYmVm
OGJkZTkzODUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogCisjaW5jbHVk
ZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29wLmgiCiAj
aW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIldvcmtlck9y
V29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKQEAgLTM5LDYgKzQwLDcgQEAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKTsKIAogV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFdvcmtlclRocmVh
ZFR5cGUgdHlwZSwgUmVmPEpTQzo6Vk0+JiYgdm0sIFdvcmtlck9yV29ya2xldFRocmVhZCogdGhy
ZWFkKQogICAgIDogbV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyPih0eXBlLCBXVEZNb3ZlKHZtKSwgdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlciht
YWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxvYWRlcjo6
T3duZXJUeXBlOjpXb3JrZXJPcldvcmtsZXQpKQogICAgICwgbV90aHJlYWQodGhyZWFkKQogICAg
ICwgbV9pbnNwZWN0b3JDb250cm9sbGVyKG1ha2VVbmlxdWU8V29ya2VySW5zcGVjdG9yQ29udHJv
bGxlcj4oKnRoaXMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IDZjMjQ0YTBjNDI3ZWUxYzhjNjVmZGNjNzY1OTUy
Zjg3N2ZkOWIxNmIuLjU0NGYwNDdhZWMyNzgzMjc0NGQwYThhNzBhZjdlOTM5YzMzMDk5MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNj
b3BlLmgKQEAgLTMyLDYgKzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXZl
bnRMb29wVGFza0dyb3VwOworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogY2xhc3MgV29ya2Vy
RXZlbnRMb29wOwogY2xhc3MgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNzIFdvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI7CkBAIC01NCw2ICs1NSw4IEBAIGNsYXNzIFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1
YmxpYyBSZWZDb3VuCiAKICAgICB1bnNpZ25lZCBsb25nIGNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIo
KSB7IHJldHVybiBtX3VuaXF1ZUlkZW50aWZpZXIrKzsgfQogCisgICAgU2NyaXB0TW9kdWxlTG9h
ZGVyJiBtb2R1bGVMb2FkZXIoKSB7IHJldHVybiAqbV9tb2R1bGVMb2FkZXI7IH0KKwogICAgIC8v
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCiAgICAgRXZlbnRMb29wVGFza0dyb3VwJiBldmVudExv
b3AoKSBmaW5hbDsKICAgICBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IGZpbmFsOwpAQCAt
ODgsNiArOTEsNyBAQCBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMgUmVmQ291bgogICAgIHZvaWQgZGVyZWZFdmVu
dFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+IG1fc2NyaXB0OworICAgIHN0ZDo6dW5pcXVlX3B0
cjxTY3JpcHRNb2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9hZGVyOwogICAgIFdvcmtlck9yV29ya2xl
dFRocmVhZCogbV90aHJlYWQ7CiAgICAgUmVmUHRyPFdvcmtlckV2ZW50TG9vcD4gbV9ldmVudExv
b3A7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2tHcm91cD4gbV9kZWZhdWx0VGFz
a0dyb3VwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggY2Q0ZWMyNDY4MjUyNWFhYmM2NDJkODc3
YTBkYTAxMWViZGUxMTQzMS4uMmZmZjc5YjBmMmIzNTFiMzA4ZWUyYjEwNDFiZTZjMmMyN2Q5MjYz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zNSwxNSArMzUsMjMgQEAKICNpbmNsdWRlICJK
U0V4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIkpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNp
bmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIk1vZHVsZUZl
dGNoRmFpbHVyZUtpbmQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0
YS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVDbGllbnQuaCIKKyNpbmNsdWRlICJXb3JrZXJT
Y3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlZmVycmVkV29ya1RpbWVyLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXhj
ZXB0aW9uSGVscGVycy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dDQWN0aXZpdHlDYWxs
YmFjay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNNb2R1bGVSZWNvcmQuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU05hdGl2ZVN0
ZEZ1bmN0aW9uLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRjaFBhcmFt
ZXRlcnMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1NjcmlwdEZldGNoZXIuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmdJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTIyOCw2ICsyMzYsMjM3IEBAIHZvaWQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kCiAgICAg
fQogfQogCitzdGF0aWMgSWRlbnRpZmllciBqc1ZhbHVlVG9Nb2R1bGVLZXkoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYgKHZhbHVl
LmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tVWlkKGpzQ2FzdDxT
eW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAgIEFTU0VSVCh2YWx1ZS5pc1N0cmlu
ZygpKTsKKyAgICByZXR1cm4gYXNTdHJpbmcodmFsdWUpLT50b0lkZW50aWZpZXIobGV4aWNhbEds
b2JhbE9iamVjdCk7Cit9CisKK0pTQzo6SlNWYWx1ZSBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShKU0M6OkpTTW9kdWxlUmVjb3JkJiBtb2R1bGVSZWNvcmQp
Cit7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgp
OworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2Nr
IHsgdm0gfTsKKyAgICByZXR1cm4gbW9kdWxlUmVjb3JkLmV2YWx1YXRlKCZnbG9iYWxPYmplY3Qp
OworfQorCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KFdvcmtlclNjcmlwdEZldGNoZXImIHNjcmlw
dEZldGNoZXIsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7CisgICAgaWYg
KGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAgIHJldHVybiBNZXNzYWdlUXVldWVUZXJt
aW5hdGVkOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxP
YmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworCisgICAgYXV0byBw
cm90ZWN0b3IgPSBtYWtlUmVmKHNjcmlwdEZldGNoZXIpOworICAgIHsKKyAgICAgICAgYXV0byYg
cHJvbWlzZSA9IEpTRXhlY1N0YXRlOjpsb2FkTW9kdWxlKGdsb2JhbE9iamVjdCwgc291cmNlQ29k
ZS5qc1NvdXJjZUNvZGUoKSwgSlNDOjpKU1NjcmlwdEZldGNoZXI6OmNyZWF0ZSh2bSwgeyAmc2Ny
aXB0RmV0Y2hlciB9KSk7CisKKyAgICAgICAgYXV0byYgZnVsZmlsbEhhbmRsZXIgPSAqSlNOYXRp
dmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCAxLCBTdHJpbmcoKSwgW3By
b3RlY3Rvcl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpIC0+IEpTQzo6RW5jb2RlZEpTVmFsdWUgeworICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworICAg
ICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgICAgICAg
ICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CisgICAgICAgICAgICBwcm90ZWN0b3ItPm5vdGlmeUxvYWRDb21wbGV0
ZWQoKm1vZHVsZUtleS5pbXBsKCkpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0SGFu
ZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEs
IFN0cmluZygpLCBbcHJvdGVjdG9yXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkgeworICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworICAgICAgICAgICAg
SlNWYWx1ZSBlcnJvclZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICAgICAgICAg
IGlmIChlcnJvclZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvKiBvYmpl
Y3QgPSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChKU1Zh
bHVlIGZhaWx1cmVLaW5kVmFsdWUgPSBvYmplY3QtPmdldERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEmPigqdm0uY2xpZW50RGF0YSkuYnVpbHRpbk5hbWVzKCkuZmFpbHVyZUtp
bmRQcml2YXRlTmFtZSgpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGhvc3Qg
cHJvcGFnYXRlZCBlcnJvciBpbiB0aGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZS4KKyAgICAgICAg
ICAgICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxNb2R1bGVGZXRjaEZhaWx1cmVLaW5kPihm
YWlsdXJlS2luZFZhbHVlLmFzSW50MzIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBN
b2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkOgorICAgICAgICAgICAgICAgICAgICAg
ICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2Fj
aGVkU2NyaXB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6bnVsbG9wdAorICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5j
ZWxlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3Rvci0+bm90aWZ5TG9hZFdhc0Nh
bmNlbGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgcHJv
dGVjdG9yLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAg
ICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAg
ICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVzc2FnZSB7CisgICAgICAgICAgICAg
ICAgICAgIE1lc3NhZ2VTb3VyY2U6OkpTLAorICAgICAgICAgICAgICAgICAgICBNZXNzYWdlTGV2
ZWw6OkVycm9yLAorICAgICAgICAgICAgICAgICAgICByZXRyaWV2ZUVycm9yTWVzc2FnZSgqZ2xv
YmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1ZSwgc2NvcGUpLAorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcHJvbWlzZS50aGVuKCZnbG9iYWxPYmpl
Y3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRsZXIpOworICAgIH0KKyAgICBtX2dsb2Jh
bFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworCisgICAg
Ly8gRHJpdmUgUnVuTG9vcCB1bnRpbCB3ZSBnZXQgZWl0aGVyIG9mICJXb3JrZXIgaXMgdGVybWlu
YXRlZCIsICJMb2FkaW5nIGlzIGRvbmUiLCBvciAiTG9hZGluZyBpcyBmYWlsZWQiLgorICAgIFdv
cmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSBtX2dsb2JhbFNjb3BlLT53b3JrZXJPcldvcmtsZXRUaHJl
YWQoKS0+cnVuTG9vcCgpOworCisgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcmVjZWl2ZSBtZXNz
YWdlcyB0aGF0IGFyZSBub3QgcmVsYXRlZCB0byBhc3luY2hyb25vdXMgcmVzb3VyY2UgbG9hZGlu
Zy4KKyAgICAvLyBPdGhlcndpc2UsIGEgd29ya2VyIGRpc2NhcmRzIHNvbWUgbWVzc2FnZXMgZnJv
bSB0aGUgbWFpbiB0aHJlYWQgaGVyZSBpbiBhIHJhY3kgd2F5LgorICAgIC8vIEZvciBleGFtcGxl
LCB0aGUgbWFpbiB0aHJlYWQgY2FuIHBvc3RNZXNzYWdlIGp1c3QgYWZ0ZXIgY3JlYXRpbmcgYSBX
b3JrZXIuIEluIHRoYXQgY2FzZSwgcG9zdE1lc3NhZ2UncworICAgIC8vIHRhc2sgaXMgcXVldWVk
IGluIFdvcmtlclJ1bkxvb3AgYmVmb3JlIHN0YXJ0IHJ1bm5pbmcgbW9kdWxlIHNjcmlwdHMuIFRo
aXMgdGFzayBzaG91bGQgbm90IGJlIGRpc2NhcmRlZAorICAgIC8vIGluIHRoZSBmb2xsb3dpbmcg
ZHJpdmluZyBvZiB0aGUgUnVuTG9vcCB3aGljaCBtYWlubHkgYXR0ZW1wdCB0byBjb2xsZWN0IGlu
aXRpYWwgbG9hZCBvZiBtb2R1bGUgc2NyaXB0cy4KKyAgICBTdHJpbmcgdGFza01vZGUgPSAibG9h
ZE1vZHVsZXNJbldvcmtlck9yV29ya2xldE1vZGUiX3M7CisgICAgTWVzc2FnZVF1ZXVlV2FpdFJl
c3VsdCByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQ7CisgICAgd2hpbGUgKCgh
cHJvdGVjdG9yLT5pc0xvYWRlZCgpICYmICFwcm90ZWN0b3ItPndhc0NhbmNlbGVkKCkpICYmIHJl
c3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKSB7CisgICAgICAgIHJlc3VsdCA9IHJ1bkxv
b3AucnVuSW5Nb2RlKG1fZ2xvYmFsU2NvcGUsIHRhc2tNb2RlKTsKKyAgICAgICAgaWYgKHJlc3Vs
dCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKQorICAgICAgICAgICAgbV9nbG9iYWxTY29wZS0+
ZXZlbnRMb29wKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6
OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVy
LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBTdHJpbmcqIHJldHVybmVkRXhj
ZXB0aW9uTWVzc2FnZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBnbG9i
YWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworCisgICAgTmFr
ZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9uOworICAgIEpTRXhlY1N0YXRl
OjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tVWlk
KHZtLCBzY3JpcHRGZXRjaGVyLm1vZHVsZUtleSgpKSwganNVbmRlZmluZWQoKSwgcmV0dXJuZWRF
eGNlcHRpb24pOworICAgIGlmICgocmV0dXJuZWRFeGNlcHRpb24gJiYgaXNUZXJtaW5hdGVkRXhl
Y3V0aW9uRXhjZXB0aW9uKHZtLCByZXR1cm5lZEV4Y2VwdGlvbikpIHx8IGlzVGVybWluYXRpbmdF
eGVjdXRpb24oKSkgeworICAgICAgICBmb3JiaWRFeGVjdXRpb24oKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbikgeworICAgICAgICBpZiAobV9n
bG9iYWxTY29wZS0+Y2FuSW5jbHVkZUVycm9yRGV0YWlscyhzb3VyY2VDb2RlLmNhY2hlZFNjcmlw
dCgpLCBzb3VyY2VDb2RlLnVybCgpLnN0cmluZygpKSkgeworICAgICAgICAgICAgLy8gRklYTUU6
IEl0J3Mgbm90IGdyZWF0IHRoYXQgdGhpcyBjYW4gcnVuIGFyYml0cmFyeSBjb2RlIHRvIHN0cmlu
Zy1pZnkgdGhlIHZhbHVlIG9mIHRoZSBleGNlcHRpb24uCisgICAgICAgICAgICAvLyBEbyB3ZSBu
ZWVkIHRvIGRvIGFueXRoaW5nIHRvIGhhbmRsZSB0aGF0IHByb3Blcmx5LCBpZiBpdCwgc2F5LCBy
YWlzZXMgYW5vdGhlciBleGNlcHRpb24/CisgICAgICAgICAgICBpZiAocmV0dXJuZWRFeGNlcHRp
b25NZXNzYWdlKQorICAgICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBy
ZXR1cm5lZEV4Y2VwdGlvbi0+dmFsdWUoKS50b1dURlN0cmluZygmZ2xvYmFsT2JqZWN0KTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgZGV0YWlsZWQgZXJy
b3Igd2l0aCBhIGdlbmVyaWMgZXJyb3IuCisgICAgICAgICAgICBTdHJpbmcgZ2VuZXJpY0Vycm9y
TWVzc2FnZSB7ICJTY3JpcHQgZXJyb3IuIl9zIH07CisgICAgICAgICAgICBpZiAocmV0dXJuZWRF
eGNlcHRpb25NZXNzYWdlKQorICAgICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlvbk1lc3Nh
Z2UgPSBnZW5lcmljRXJyb3JNZXNzYWdlOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIFdv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShjb25z
dCBVUkwmIG1vZHVsZVVSTCwgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFscywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGlmIChpc0V4ZWN1dGlvbkZvcmJpZGRlbigpKSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciB9KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisgICAgYXV0
byYgZ2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKwor
ICAgIGF1dG8gc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZldGNoZXI6OmNyZWF0ZShjcmVk
ZW50aWFscyk7CisgICAgeworICAgICAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVjU3RhdGU6Omxv
YWRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVVUkwuc3RyaW5nKCksIGpzVW5kZWZpbmVkKCks
IEpTQzo6SlNTY3JpcHRGZXRjaGVyOjpjcmVhdGUodm0sIHsgc2NyaXB0RmV0Y2hlci5wdHIoKSB9
KSk7CisKKyAgICAgICAgYXV0byB0YXNrID0gY3JlYXRlU2hhcmVkVGFzazx2b2lkKE9wdGlvbmFs
PEV4Y2VwdGlvbj4mJik+KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgICAgIH0p
OworCisgICAgICAgIGF1dG8mIGZ1bGZpbGxIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246
OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFt0YXNrLCBzY3JpcHRGZXRj
aGVyXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkg
LT4gSlNDOjpFbmNvZGVkSlNWYWx1ZSB7CisgICAgICAgICAgICAvLyB0YXNrLT5ydW4oV1RGOjpu
dWxsb3B0KTsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICAg
ICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1
bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Cisg
ICAgICAgICAgICBzY3JpcHRGZXRjaGVyLT5ub3RpZnlMb2FkQ29tcGxldGVkKCptb2R1bGVLZXku
aW1wbCgpKTsKKworICAgICAgICAgICAgYXV0byogY29udGV4dCA9IGRvd25jYXN0PFdvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlPihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmpl
Y3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICAgICAgaWYgKCFjb250ZXh0
IHx8ICFjb250ZXh0LT5zY3JpcHQoKSkgeworICAgICAgICAgICAgICAgIHRhc2stPnJ1bihXVEY6
Om51bGxvcHQpOworICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIE5ha2VkUHRyPEpTQzo6RXhj
ZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICAgICAgICAgIEpTRXhlY1N0YXRlOjpsaW5r
QW5kRXZhbHVhdGVNb2R1bGUoKmdsb2JhbE9iamVjdCwgbW9kdWxlS2V5LCBqc1VuZGVmaW5lZCgp
LCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgICAgICAgICBpZiAoKHJldHVybmVkRXhjZXB0aW9u
ICYmIGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbih2bSwgcmV0dXJuZWRFeGNlcHRpb24p
KSB8fCBjb250ZXh0LT5zY3JpcHQoKS0+aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGNvbnRleHQtPnNjcmlwdCgpKQorICAgICAgICAgICAgICAgICAgICBj
b250ZXh0LT5zY3JpcHQoKS0+Zm9yYmlkRXhlY3V0aW9uKCk7CisgICAgICAgICAgICAgICAgdGFz
ay0+cnVuKFdURjo6bnVsbG9wdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJl
dHVybmVkRXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAg
ICAgICAgICAgICAgaWYgKGNvbnRleHQtPmNhbkluY2x1ZGVFcnJvckRldGFpbHMobnVsbHB0ciwg
bW9kdWxlS2V5LnN0cmluZygpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSXQn
cyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBydW4gYXJiaXRyYXJ5IGNvZGUgdG8gc3RyaW5nLWlm
eSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgLy8gRG8g
d2UgbmVlZCB0byBkbyBhbnl0aGluZyB0byBoYW5kbGUgdGhhdCBwcm9wZXJseSwgaWYgaXQsIHNh
eSwgcmFpc2VzIGFub3RoZXIgZXhjZXB0aW9uPworICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
ID0gcmV0dXJuZWRFeGNlcHRpb24tPnZhbHVlKCkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsK
KyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBPdmVyd3Jp
dGUgdGhlIGRldGFpbGVkIGVycm9yIHdpdGggYSBnZW5lcmljIGVycm9yLgorICAgICAgICAgICAg
ICAgICAgICBtZXNzYWdlID0gIlNjcmlwdCBlcnJvci4iX3M7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihtZXNzYWdlLCB7IH0sIHsg
fSwgeyB9LCB7IH0sIHsgfSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRhc2stPnJ1
bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0SGFuZGxlciA9
ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmlu
ZygpLCBbdGFza10oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpIHsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICAg
ICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIEpTVmFsdWUgZXJy
b3JWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAgICAgICAgICBpZiAoZXJyb3JW
YWx1ZS5pc09iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byogb2JqZWN0ID0gSlNDOjph
c09iamVjdChlcnJvclZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT5nZXREaXJl
Y3Qodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhJj4oKnZtLmNsaWVudERhdGEpLmJ1aWx0
aW5OYW1lcygpLmZhaWx1cmVLaW5kUHJpdmF0ZU5hbWUoKSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdGFzay0+cnVuKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IgfSk7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEVycm9ySW5zdGFuY2U+
KHZtKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvKiBlcnJvciA9IGpzQ2FzdDxFcnJvcklu
c3RhbmNlKj4ob2JqZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChlcnJvci0+ZXJy
b3JUeXBlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBFcnJvclR5cGU6OlN5bnRheEVy
cm9yOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJF
X0NBVENIX1NDT1BFKHZtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdl
ID0gcmV0cmlldmVFcnJvck1lc3NhZ2VXaXRob3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJy
b3JWYWx1ZSwgY2F0Y2hTY29wZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXNrLT5ydW4o
RXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsIG1lc3NhZ2UgfSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9D
QVRDSF9TQ09QRSh2bSk7CisgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IHJldHJpZXZlRXJy
b3JNZXNzYWdlV2l0aG91dE5hbWUoKmdsb2JhbE9iamVjdCwgdm0sIGVycm9yVmFsdWUsIGNhdGNo
U2NvcGUpOworICAgICAgICAgICAgdGFzay0+cnVuKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsIG1l
c3NhZ2UgfSk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOworICAgICAgICB9KTsKKworICAgICAgICBwcm9taXNlLnRoZW4oJmdsb2JhbE9iamVjdCwg
JmZ1bGZpbGxIYW5kbGVyLCAmcmVqZWN0SGFuZGxlcik7CisgICAgfQorICAgIG1fZ2xvYmFsU2Nv
cGUtPmV2ZW50TG9vcCgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7Cit9CisKIHRlbXBs
YXRlPHR5cGVuYW1lIEpTR2xvYmFsU2NvcGVQcm90b3R5cGUsIHR5cGVuYW1lIEpTR2xvYmFsU2Nv
cGUsIHR5cGVuYW1lIEdsb2JhbFNjb3BlPgogdm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyOjppbml0U2NyaXB0V2l0aFN1YmNsYXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKaW5kZXgg
YzQ5MzAxYWVkM2RkMDg5ZGE3OTczMjc2MGNhZjJmN2I2NGRiMTFiNi4uOWYwMjNhNjJmODE0M2U3
ZDk4MmZiZjdmNThlZWVhZGNhM2E1YjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYv
TWVzc2FnZVF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBK
U0MgewpAQCAtNDQsOSArNDUsMTEgQEAgY2xhc3MgSlNHbG9iYWxPYmplY3Q7CiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgTG9hZGFibGVNb2R1
bGVTY3JpcHQ7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgV29ya2VyQ29uc29sZUNs
aWVudDsKIGNsYXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOworY2xhc3MgV29ya2VyU2Ny
aXB0RmV0Y2hlcjsKIAogY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcik7
CkBAIC05NCw2ICs5NywxMyBAQCBjbGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
IHsKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJl
dHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29u
c3QgU2NyaXB0U291cmNlQ29kZSYsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRF
eGNlcHRpb24sIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAK
KyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVNb2R1bGUoSlNDOjpKU01vZHVsZVJlY29yZCYpOwor
CisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoV29ya2VyU2NyaXB0RmV0Y2hlciYsIGNv
bnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9
IG51bGxwdHIpOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgbG9hZE1vZHVsZVN5bmNocm9u
b3VzbHkoV29ya2VyU2NyaXB0RmV0Y2hlciYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKwor
ICAgIHZvaWQgbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgbW9kdWxlVVJMLCBGZXRj
aE9wdGlvbnM6OkNyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4
Y2VwdGlvbj4mJik+JiYpOworCiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUqIGdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxTY29wZTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggM2E0
ZGFlZmMzOTAyYmRiMmVhODRmYzU4ZDdlNDJmODNlNWYwN2UyZi4uOWYzMWQwZGZkNTlhODcwN2Zk
NGViNTljYzNjOTJhMDY2NDgxZGUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIE9wdGlvbmFsPEV4Y2VwdGlv
bj4gV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25D
b250ZXh0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRM
b2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3JpcHRSZXF1ZXN0LCBGZXRjaE9w
dGlvbnMmJiBmZXRjaE9wdGlvbnMsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNv
bnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUgc2Vydmlj
ZVdvcmtlck1vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50KQordm9pZCBXb3Jr
ZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3JpcHRSZXF1ZXN0
LCBGZXRjaE9wdGlvbnMmJiBmZXRjaE9wdGlvbnMsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9y
Y2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01v
ZGUgc2VydmljZVdvcmtlck1vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBT
dHJpbmcmJiB0YXNrTW9kZSkKIHsKICAgICBtX2NsaWVudCA9ICZjbGllbnQ7CiAgICAgbV91cmwg
PSBzY3JpcHRSZXF1ZXN0LnVybCgpOwpAQCAtMTIzLDggKzEyMyw2IEBAIHZvaWQgV29ya2VyU2Ny
aXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2Ny
aXB0RXhlY3V0CiAgICAgQVNTRVJUKGZldGNoT3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6
TW9kZTo6U2FtZU9yaWdpbiB8fCAoZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uICE9IEZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246OlNlcnZpY2V3b3JrZXIgJiYgZmV0Y2hPcHRpb25zLmRlc3RpbmF0
aW9uICE9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OldvcmtlcikpOwogCiAgICAgVGhyZWFk
YWJsZUxvYWRlck9wdGlvbnMgb3B0aW9ucyB7IFdURk1vdmUoZmV0Y2hPcHRpb25zKSB9OwotICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIGFuIG9wdGlvbiB0byBzZXQgY3JlZGVudGlhbCBtb2Rl
LgotICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpT
YW1lT3JpZ2luOwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tQ
b2xpY3k6OlNlbmRDYWxsYmFja3M7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudCA9IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OwogICAgIGlmIChm
ZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2Vy
dmljZXdvcmtlcikKQEAgLTE0Myw3ICsxNDEsNyBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6
bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dAog
CiAgICAgLy8gRHVyaW5nIGNyZWF0ZSwgY2FsbGJhY2tzIG1heSBoYXBwZW4gd2hpY2ggcmVtb3Zl
IHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdC4KICAgICBSZWY8V29ya2VyU2NyaXB0
TG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBtX3RocmVhZGFibGVMb2FkZXIgPSBU
aHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgKnRoaXMsIFdU
Rk1vdmUoKnJlcXVlc3QpLCBvcHRpb25zKTsKKyAgICBtX3RocmVhZGFibGVMb2FkZXIgPSBUaHJl
YWRhYmxlTG9hZGVyOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgKnRoaXMsIFdURk1v
dmUoKnJlcXVlc3QpLCBvcHRpb25zLCB7IH0sIFdURk1vdmUodGFza01vZGUpKTsKIH0KIAogY29u
c3QgVVJMJiBXb3JrZXJTY3JpcHRMb2FkZXI6OnJlc3BvbnNlVVJMKCkgY29uc3QKQEAgLTE5MCw2
ICsxODgsOCBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzbwogICAgIG1fY2VydGlmaWNhdGVJbmZv
ID0gcmVzcG9uc2UuY2VydGlmaWNhdGVJbmZvKCkgPyAqcmVzcG9uc2UuY2VydGlmaWNhdGVJbmZv
KCkgOiBDZXJ0aWZpY2F0ZUluZm8oKTsKICAgICBtX3Jlc3BvbnNlTUlNRVR5cGUgPSByZXNwb25z
ZS5taW1lVHlwZSgpOwogICAgIG1fcmVzcG9uc2VFbmNvZGluZyA9IHJlc3BvbnNlLnRleHRFbmNv
ZGluZ05hbWUoKTsKKyAgICBtX3Jlc3BvbnNlU291cmNlID0gcmVzcG9uc2Uuc291cmNlKCk7Cisg
ICAgbV9pc1JlZGlyZWN0ZWQgPSByZXNwb25zZS5pc1JlZGlyZWN0ZWQoKTsKICAgICBtX2NvbnRl
bnRTZWN1cml0eVBvbGljeSA9IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyB7
IHJlc3BvbnNlIH07CiAgICAgbV9yZWZlcnJlclBvbGljeSA9IHJlc3BvbnNlLmh0dHBIZWFkZXJG
aWVsZChIVFRQSGVhZGVyTmFtZTo6UmVmZXJyZXJQb2xpY3kpOwogICAgIGlmIChtX2NsaWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCmluZGV4IDdmZGQw
YjNmNmEwMWMyZGI1NzcyNGE5MGIzYmI5ODQwZjFlNjhlNWYuLmNmYTMxYTM1MzI1OWFlZWQxOThm
OTM5MWZmYzE1MTFiNDA1MGI4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyU2NyaXB0TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJT
Y3JpcHRMb2FkZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZldGNoT3B0aW9ucy5o
IgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3Qu
aCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxv
YWRlci5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlIDxt
ZW1vcnk+CkBAIC00Myw3ICs0NCw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV4
Y2VwdGlvbjsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsKIGNsYXNzIFdvcmtlclNjcmlwdExv
YWRlckNsaWVudDsKQEAgLTU4LDcgKzU4LDcgQEAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDog
cHVibGljIFJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGEKICAg
ICB9CiAKICAgICBPcHRpb25hbDxFeGNlcHRpb24+IGxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIEZldGNoT3B0
aW9uczo6Q2FjaGUsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJp
bmcmIGluaXRpYXRvcklkZW50aWZpZXIpOwotICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYs
IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUsIFdv
cmtlclNjcmlwdExvYWRlckNsaWVudCYpOworICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYs
IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUsIFdv
cmtlclNjcmlwdExvYWRlckNsaWVudCYsIFN0cmluZyYmIHRhc2tNb2RlKTsKIAogICAgIHZvaWQg
bm90aWZ5RXJyb3IoKTsKIApAQCAtNjcsNiArNjcsOCBAQCBjbGFzcyBXb3JrZXJTY3JpcHRMb2Fk
ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJTY3JpcHRMb2FkZXI+LCBwdWJsaWMgVGhyZWFk
YQogICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3Jl
ZmVycmVyUG9saWN5OyB9CiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3Vy
bDsgfQogICAgIGNvbnN0IFVSTCYgcmVzcG9uc2VVUkwoKSBjb25zdDsKKyAgICBSZXNvdXJjZVJl
c3BvbnNlOjpTb3VyY2UgcmVzcG9uc2VTb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNl
U291cmNlOyB9CisgICAgYm9vbCBpc1JlZGlyZWN0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUmVk
aXJlY3RlZDsgfQogICAgIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKCkg
Y29uc3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0ZUluZm87IH0KICAgICBjb25zdCBTdHJpbmcmIHJl
c3BvbnNlTUlNRVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlTUlNRVR5cGU7IH0KICAg
ICBib29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmFpbGVkOyB9CkBAIC0xMDcsNiArMTA5
LDggQEAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2Vy
U2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGEKICAgICB1bnNpZ25lZCBsb25nIG1faWRlbnRp
ZmllciB7IDAgfTsKICAgICBib29sIG1fZmFpbGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZmlu
aXNoaW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZWRpcmVjdGVkIHsgZmFsc2UgfTsKKyAg
ICBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2UgbV9yZXNwb25zZVNvdXJjZSB7IFJlc291cmNlUmVz
cG9uc2U6OlNvdXJjZTo6VW5rbm93biB9OwogICAgIFJlc291cmNlRXJyb3IgbV9lcnJvcjsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA3Mjc5MGEwMzMy
MjYxOWU2ZWU3ZTYxNmE4YmRlMThiZDU1MmE1NzgzLi5mMmE3NjU5ZmM1NjFlYWQxNmIxMmEzNDll
ZDFlZjA3ZTBkYTA3NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3Bw
CkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
ICJTb2NrZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5j
bHVkZSAiV29ya2VyU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nj
cmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNTUsNiArNTcsOCBAQCBXb3JrZXJQYXJhbWV0ZXJzIFdvcmtlclBhcmFt
ZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwKICAgICAgICAgdGltZU9yaWdpbiwKICAgICAgICAgcmVm
ZXJyZXJQb2xpY3ksCisgICAgICAgIHdvcmtlclR5cGUsCisgICAgICAgIGNyZWRlbnRpYWxzLAog
ICAgICAgICBzZXR0aW5nc1ZhbHVlcy5pc29sYXRlZENvcHkoKQogICAgIH07CiB9CkBAIC0xMjMs
OSArMTI3LDMzIEBAIGJvb2wgV29ya2VyVGhyZWFkOjpzaG91bGRXYWl0Rm9yV2ViSW5zcGVjdG9y
T25TdGFydHVwKCkgY29uc3QKIAogdm9pZCBXb3JrZXJUaHJlYWQ6OmV2YWx1YXRlU2NyaXB0SWZO
ZWNlc3NhcnkoU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQogewotICAgIGdsb2JhbFNjb3BlKCkt
PnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJj
ZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25N
ZXNzYWdlKTsKLQotICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAgIC8vIFdlIGFy
ZSBjdXJyZW50bHkgaG9sZGluZyBvbmx5IHRoZSBpbml0aWFsIHNjcmlwdCBjb2RlLiBJZiB0aGUg
V29ya2VyVHlwZSBpcyBNb2R1bGUsIHdlIHNob3VsZCBmZXRjaCB0aGUgZW50aXJlIGdyYXBoIGJl
Zm9yZSBleGVjdXRpbmcgdGhlIHJlc3Qgb2YgdGhpcy4KKyAgICAvLyBXZSBpbnZva2UgbW9kdWxl
IGxvYWRlciBhcyBpZiB3ZSBhcmUgZXhlY3V0aW5nIGlubGluZSBtb2R1bGUgc2NyaXB0IHRhZyBp
biBEb2N1bWVudC4KKworICAgIGlmIChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMud29ya2VyVHlwZSA9
PSBXb3JrZXJUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgIGdsb2JhbFNjb3BlKCktPnNjcmlwdCgp
LT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJjZUNvZGUsIFVS
TChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25NZXNzYWdlKTsK
KyAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgLy8gRklYTUUgY3Jvc3NPcmlnaW4gbW9kZSBzaG91bGQgYmUgY29udmVydGVkLgorICAgICAg
ICAvLyBGSVhNRSBmaXggaW5pdGlhdG9yIG5hbWUuCisgICAgICAgIC8vIEZJWE1FIHBhc3MgVVJM
IHRvIG1vZHVsZSBsb2FkZXIuCisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZSht
X3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNjcmlw
dFVSTCksIHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSk7CisgICAg
ICAgIGF1dG8gc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZldGNoZXI6OmNyZWF0ZShnbG9i
YWxTY29wZSgpLT5jcmVkZW50aWFscygpKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3Vs
dCByZXN1bHQgPSBnbG9iYWxTY29wZSgpLT5zY3JpcHQoKS0+bG9hZE1vZHVsZVN5bmNocm9ub3Vz
bHkoc2NyaXB0RmV0Y2hlci5nZXQoKSwgc291cmNlQ29kZSk7CisgICAgICAgIGlmIChyZXN1bHQg
IT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgeworICAgICAgICAgICAgaWYgKE9wdGlvbmFsPExv
YWRhYmxlU2NyaXB0OjpFcnJvcj4gZXJyb3IgPSBzY3JpcHRGZXRjaGVyLT5lcnJvcigpKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVzc2Fn
ZT4gbWVzc2FnZSA9IGVycm9yLT5jb25zb2xlTWVzc2FnZSkKKyAgICAgICAgICAgICAgICAgICAg
ZXhjZXB0aW9uTWVzc2FnZSA9IG1lc3NhZ2UtPm1lc3NhZ2U7CisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25NZXNzYWdlID0gIkltcG9ydGluZyBhIG1v
ZHVsZSBzY3JpcHQgZmFpbGVkLiJfczsKKyAgICAgICAgICAgICAgICBnbG9iYWxTY29wZSgpLT5y
ZXBvcnRFeGNlcHRpb24oZXhjZXB0aW9uTWVzc2FnZSwgeyB9LCB7IH0sIHsgfSwgeyB9LCB7IH0p
OworICAgICAgICAgICAgfSBlbHNlIGlmICghc2NyaXB0RmV0Y2hlci0+d2FzQ2FuY2VsZWQoKSkg
eworICAgICAgICAgICAgICAgIC8vIEV2YWx1YXRlLgorICAgICAgICAgICAgICAgIGdsb2JhbFNj
b3BlKCktPnNjcmlwdCgpLT5saW5rQW5kRXZhbHVhdGVNb2R1bGUoc2NyaXB0RmV0Y2hlci5nZXQo
KSwgc291cmNlQ29kZSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOworICAgICAgICAgICAgICAgIGZpbmlz
aGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQog
CiAgICAgLy8gRnJlZSB0aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNlIGl0cyBtZW1iZXIgdmFyaWFi
bGUgZGVyZWYncyBoYXBwZW4gb24gdGhlIHdvcmtlcidzIHRocmVhZCAoc2luY2UKICAgICAvLyBh
bGwgcmVmL2RlcmVmcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBwZW5pbmcgb24gdGhlIHRocmVh
ZCBhdCB0aGlzIHBvaW50KS4gTm90ZSB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuaAppbmRleCA4ODkwNzkwOGU3YTliODA5ZThmMmE0ZTQ3M2Q3NTJkMTFkMjkzN2MwLi45NTEy
ZWZkYjE4ZjMyYTUwZWNiN2ZiNTY5NTlkNjFlODg3MmZhMWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmgKQEAgLTI2LDcgKzI2LDEwIEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgorI2luY2x1ZGUg
IkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0VGhy
ZWFkLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDxt
ZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtNjMsNiArNjYsOCBAQCBzdHJ1Y3QgV29y
a2VyUGFyYW1ldGVycyB7CiAgICAgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3k7CiAgICAgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luOwogICAgIFJlZmVycmVy
UG9saWN5IHJlZmVycmVyUG9saWN5OworICAgIFdvcmtlclR5cGUgd29ya2VyVHlwZTsKKyAgICBG
ZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsKICAgICBTZXR0aW5nczo6VmFsdWVz
IHNldHRpbmdzVmFsdWVzOwogCiAgICAgV29ya2VyUGFyYW1ldGVycyBpc29sYXRlZENvcHkoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKaW5kZXggMGIwZWQ4NjBkOWM3MTQy
MzhhMmE1YmI5ZmRmNDM4NDAyZDE2ZWJmMC4uMWMxYmI5NDQ4NjdhZGY0ZWQ1NzhhMjgxNGZhMzMy
MzI2YWVkOGE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKQEAgLTI3LDcgKzI3
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFdvcmtlclR5cGUgewor
ZW51bSBjbGFzcyBXb3JrZXJUeXBlIDogdWludDhfdCB7CiAgICAgQ2xhc3NpYywKICAgICBNb2R1
bGUsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggZWJiZTk1ZTg5MjRjOGYxZDczNzUyNWRlYTE2MzBi
MWZhZDU2ZmIyNy4uNGM3ZGRmNGE0YzEzMWUwZGNkNmJhMDk1MDlhYjJkOTc1NzVmMzBjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIE5hdmlnYXRvckJhc2U7CiBjbGFz
cyBTZXJ2aWNlV29ya2VyOwogCiBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNo
ZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7CitlbnVtIGNsYXNzIFdvcmtlclR5
cGUgOiB1aW50OF90OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9t
aXNlUHJveHk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VySm9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VySm9iLmNwcAppbmRleCBlYzM5YzBmODQ5YTU0ZTFiNmQwYmVlMzRhOGQ3ZDE5Y2Jh
NDVlMjg4Li5mOTUxMGNiZjZmZGY3MDQ2ZjdkMWI5MjIzNjkxNzRkMDFmYTBiZTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3Bw
CkBAIC0xMTAsNyArMTEwLDggQEAgdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpmZXRjaFNjcmlwdFdp
dGhDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEYKICAgICBvcHRpb25z
LmNhY2hlID0gY2FjaGVQb2xpY3k7CiAgICAgb3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9u
czo6UmVkaXJlY3Q6OkVycm9yOwogICAgIG9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlv
bnM6OkRlc3RpbmF0aW9uOjpTZXJ2aWNld29ya2VyOwotICAgIG1fc2NyaXB0TG9hZGVyLT5sb2Fk
QXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25z
KSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSwgU2Vydmlj
ZVdvcmtlcnNNb2RlOjpOb25lLCAqdGhpcyk7CisgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW47CisgICAgbV9zY3JpcHRMb2FkZXIt
PmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9w
dGlvbnMpLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlLCBT
ZXJ2aWNlV29ya2Vyc01vZGU6Ok5vbmUsICp0aGlzLCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9k
ZSgpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBTZXJ2aWNlV29ya2VySm9iOjp2YWxpZGF0ZVNlcnZp
Y2VXb3JrZXJSZXNwb25zZShjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0
aW9ucy5oCmluZGV4IDlkNTAwZjg1YWNiMTg4NDFjYzU1YmVhODIxMWRiMTRmYWRjOTc0NzUuLjJl
MzU1N2ZhN2RmNjdmMWJmOThjN2I3YTVkZTRiMGE1YTdiY2NjZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9u
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uT3B0aW9ucy5oCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGVudW0gY2xhc3MgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIDogdWludDhfdDsKLWVu
dW0gY2xhc3MgV29ya2VyVHlwZTsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6IHVpbnQ4X3Q7CiAK
IHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucyB7CiAgICAgU3RyaW5nIHNj
b3BlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCBjOGE3YTk5NzJmOWNjOGMxNmE3
OTY3NTExNTUyZjU0OTNhNjg2Zjk4Li4zM2NhMGVjMjNiNThhNTUxMTg3Njg0NmJhMDcxODM1MzJi
NWM0N2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtNzMsOCArNzMsOSBAQCBj
bGFzcyBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA6IHB1YmxpYyBXb3JrZXJPYmplY3RQ
cm94eSB7CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkKIC8vIEZJWE1F
OiBVc2UgdmFsaWQgcnVudGltZSBmbGFncwogCisvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2Vy
VHlwZSBhbmQgQ3JlZGVudGFpbHMgZm9yIG1vZHVsZSBzZXJ2aWNlIHdvcmtlcnMuCiBTZXJ2aWNl
V29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YSYgZGF0YSwgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBTZXR0aW5nczo6VmFsdWVz
JiBzZXR0aW5nc1ZhbHVlcywgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBXb3JrZXJE
ZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94
eSogaWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIpCi0g
ICAgOiBXb3JrZXJUaHJlYWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmcoKSwgInNlcnZp
Y2V3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlm
aWVyKCksIFdURk1vdmUodXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0
cmF0ZWd5KCktPmlzT25MaW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5LCBmYWxzZSwg
TW9ub3RvbmljVGltZTo6bm93KCksIHsgfSwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0YS5zY3JpcHQs
IGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRhLnJlZ2lzdHJh
dGlvbi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRiQ29ubmVjdGlv
blByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFsbEVuYWJs
ZWQoKSkKKyAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0eVN0cmluZygp
LCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0
ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
bG9hZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ks
IGZhbHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9LCBXb3JrZXJUeXBlOjpDbGFzc2ljLCBG
ZXRjaFJlcXVlc3RDcmVkZW50aWFsczo6U2FtZU9yaWdpbiwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0
YS5zY3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRh
LnJlZ2lzdHJhdGlvbi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRi
Q29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0
ZUFsbEVuYWJsZWQoKSkKICAgICAsIG1fZGF0YShkYXRhLmlzb2xhdGVkQ29weSgpKQogICAgICwg
bV93b3JrZXJPYmplY3RQcm94eShEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVk
KCkpCiAgICAgLCBtX2hlYXJ0QmVhdFRpbWVvdXQoU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9u
KCkuY29ubmVjdGlvbigpLT5zaG91bGRVc2VTaG9ydFRpbWVvdXQoKSA/IGhlYXJ0QmVhdFRpbWVv
dXRGb3JUZXN0IDogaGVhcnRCZWF0VGltZW91dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCAyZGRkYjNiNWI0
MWVkODdiZDYxNGEwYjk0ZDA5Yjc2MTI5M2Q3NjA3Li4zNzhmYmE2NTdlOGJiZjQ4NDFlNTZjYmY4
NjU2MWY4ZWNjMzExMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCkBAIC01MCw3ICs1MCw3IEBAIHN0cnVjdCBT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50
UXVlcnlPcHRpb25zOwogc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsKIHN0cnVjdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7Citl
bnVtIGNsYXNzIFdvcmtlclR5cGUgOiB1aW50OF90OwogCiBjbGFzcyBTV1NlcnZlcldvcmtlciA6
IHB1YmxpYyBSZWZDb3VudGVkPFNXU2VydmVyV29ya2VyPiB7CiBwdWJsaWM6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCBkNzA0ODg2NjQ4
YzBlZmFhNmI3ODA4NGM1Mzg3MjAxY2EyYjFjNTQzLi4yYWUwZTMzODkxZGJjODlmMTQ2ODdkNDE0
ODAyYWFhMTJkMGQ4NGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRH
bG9iYWxTY29wZS5jcHAKQEAgLTE1OCw3MiArMTU4LDcgQEAgUmVmZXJyZXJQb2xpY3kgV29ya2xl
dEdsb2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiB2b2lkIFdvcmtsZXRHbG9iYWxT
Y29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQoY29uc3QgVVJMJiBtb2R1bGVVUkwsIEZldGNoUmVx
dWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPEV4Y2VwdGlvbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7Ci0gICAgbV9zY3JpcHRGZXRjaEpvYnMuYXBwZW5kKHsgbW9kdWxlVVJM
LCBjcmVkZW50aWFscywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikgfSk7Ci0gICAgcHJvY2Vz
c05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKCk7Ci19Ci0KLXZvaWQgV29ya2xldEdsb2JhbFNj
b3BlOjpwcm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQoKQotewotICAgIGlmIChtX3Nj
cmlwdEZldGNoSm9icy5pc0VtcHR5KCkgfHwgbV9zY3JpcHRMb2FkZXIpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGF1dG8mIHNjcmlwdEZldGNoSm9iID0gbV9zY3JpcHRGZXRjaEpvYnMuZmlyc3Qo
KTsKLQotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgc2NyaXB0RmV0Y2hKb2IubW9kdWxl
VVJMIH07Ci0KLSAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwotICAgIGZldGNoT3B0aW9u
cy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzOwotICAgIGZldGNoT3B0aW9ucy5jYWNo
ZSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQ7Ci0gICAgZmV0Y2hPcHRpb25zLnJlZGly
ZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93OwotICAgIGZldGNoT3B0aW9ucy5j
cmVkZW50aWFscyA9IHNjcmlwdEZldGNoSm9iLmNyZWRlbnRpYWxzOwotI2lmIEVOQUJMRShXRUJf
QVVESU8pCi0gICAgaWYgKGlzQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoKSkKLSAgICAgICAgZmV0
Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6QXVkaW93
b3JrbGV0OwotI2VuZGlmCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0gICAgaWYgKGlz
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUoKSkKLSAgICAgICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0
aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6UGFpbnR3b3JrbGV0OwotI2VuZGlmCi0K
LSAgICBhdXRvIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0gc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1l
bnQ6OkVuZm9yY2VDaGlsZFNyY0RpcmVjdGl2ZTsKLQotICAgIG1fc2NyaXB0TG9hZGVyID0gV29y
a2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKTsKLSAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5j
aHJvbm91c2x5KCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyks
IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFs
bCwgKnRoaXMpOwotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQotewotfQotCi12b2lk
IFdvcmtsZXRHbG9iYWxTY29wZTo6bm90aWZ5RmluaXNoZWQoKQotewotICAgIGF1dG8gY29tcGxl
dGVkSm9iID0gbV9zY3JpcHRGZXRjaEpvYnMudGFrZUZpcnN0KCk7Ci0KLSAgICBpZiAobV9zY3Jp
cHRMb2FkZXItPmZhaWxlZCgpKSB7Ci0gICAgICAgIGRpZENvbXBsZXRlU2NyaXB0RmV0Y2hKb2Io
V1RGTW92ZShjb21wbGV0ZWRKb2IpLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCBtYWtlU3RyaW5n
KCJGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogIiwgbV9zY3JpcHRMb2FkZXItPmVycm9y
KCkubG9jYWxpemVkRGVzY3JpcHRpb24oKSkgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJlIHJ1biBhcyBhIG1vZHVsZSBzY3Jp
cHQgYnV0IHdlIGRvbid0IHN1cHBvcnQgdGhpcyBpbiB3b3JrZXJzIHlldC4KLSAgICBVUkwgbW9k
dWxlVVJMKG1fc2NyaXB0TG9hZGVyLT5yZXNwb25zZVVSTCgpKTsKLSAgICBhdXRvIGFkZFJlc3Vs
dCA9IG1fZXZhbHVhdGVkTW9kdWxlcy5hZGQobW9kdWxlVVJMKTsKLSAgICBpZiAoYWRkUmVzdWx0
LmlzTmV3RW50cnkpIHsKLSAgICAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IGV4Y2VwdGlv
bjsKLSAgICAgICAgc2NyaXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zY3JpcHRM
b2FkZXItPnNjcmlwdCgpLCBXVEZNb3ZlKG1vZHVsZVVSTCkpLCBleGNlcHRpb24pOwotICAgICAg
ICBpZiAoZXhjZXB0aW9uKQotICAgICAgICAgICAgc2NyaXB0KCktPnNldEV4Y2VwdGlvbihleGNl
cHRpb24pOwotICAgIH0KLQotICAgIGRpZENvbXBsZXRlU2NyaXB0RmV0Y2hKb2IoV1RGTW92ZShj
b21wbGV0ZWRKb2IpLCB7IH0pOwotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZGlkQ29t
cGxldGVTY3JpcHRGZXRjaEpvYihTY3JpcHRGZXRjaEpvYiYmIGpvYiwgT3B0aW9uYWw8RXhjZXB0
aW9uPiByZXN1bHQpCi17Ci0gICAgbV9zY3JpcHRMb2FkZXIgPSBudWxscHRyOwotCi0gICAgam9i
LmNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSk7Ci0KLSAgICBwcm9jZXNzTmV4dFNj
cmlwdEZldGNoSm9iSWZOZWVkZWQoKTsKKyAgICBzY3JpcHQoKS0+bG9hZEFuZEV2YWx1YXRlTW9k
dWxlKG1vZHVsZVVSTCwgY3JlZGVudGlhbHMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
IH0KIAogTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXImIFdvcmtsZXRHbG9iYWxTY29wZTo6bWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3Jr
bGV0R2xvYmFsU2NvcGUuaAppbmRleCBmMjMyMGYwZDEzMDI1Y2VhYjNiYWM1NmE0NWVjMmQxZGQz
ZmI2Y2MwLi5mZTU0Yjg1MzI1Njc5MjU4M2RlZGEwNTVhNDMzYTI1NjU0ZTg2NzUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMzMsNyArMzMs
NiBAQAogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuaCIKLSNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1J1bnRpbWVGbGFncy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpA
QCAtNTQsNyArNTMsNyBAQCBzdHJ1Y3QgV29ya2xldFBhcmFtZXRlcnM7CiBlbnVtIFdvcmtsZXRH
bG9iYWxTY29wZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIFdvcmtsZXRHbG9iYWxTY29wZUlk
ZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFdvcmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXJU
eXBlPjsKIAotY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlLCBwdWJsaWMgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKK2NsYXNzIFdv
cmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSB7CiAg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0R2xvYmFsU2NvcGUpOwogcHVibGljOgog
ICAgIHZpcnR1YWwgfldvcmtsZXRHbG9iYWxTY29wZSgpOwpAQCAtMTExLDEwICsxMTAsNiBAQCBj
bGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUsIHB1YmxpYyBXb3JrZXJTY3JpcAogICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1
bnNpZ25lZCwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmLCBKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgdW5zaWduZWQgbG9uZykgZmluYWw7CiAgICAgdm9pZCBhZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVk
IGxvbmcpIGZpbmFsOwogCi0gICAgLy8gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LgotICAgIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpIGZpbmFsOwotICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoKSBmaW5hbDsK
LQogICAgIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZXR1cm4gdGhp
czsgfQogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCkBAIC0xMjUsMTUgKzEyMCw2IEBAIGNsYXNz
IFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSwg
cHVibGljIFdvcmtlclNjcmlwCiAgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25z
dCBmaW5hbDsKICAgICBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0aW5nc1ZhbHVlcygpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1ZXM7IH0KIAotICAgIHN0cnVjdCBTY3Jp
cHRGZXRjaEpvYiB7Ci0gICAgICAgIFVSTCBtb2R1bGVVUkw7Ci0gICAgICAgIEZldGNoUmVxdWVz
dENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwotICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+IGNvbXBsZXRpb25IYW5kbGVyOwotICAgIH07Ci0KLSAg
ICB2b2lkIHByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5lZWRlZCgpOwotICAgIHZvaWQgZGlk
Q29tcGxldGVTY3JpcHRGZXRjaEpvYihTY3JpcHRGZXRjaEpvYiYmLCBPcHRpb25hbDxFeGNlcHRp
b24+KTsKLQogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAKICAgICBSZWY8U2Vj
dXJpdHlPcmlnaW4+IG1fdG9wT3JpZ2luOwpAQCAtMTQ0LDkgKzEzMCw2IEBAIGNsYXNzIFdvcmts
ZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSwgcHVibGlj
IFdvcmtlclNjcmlwCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyTWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXI+IG1fbWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI7CiAKLSAgICBSZWZQdHI8
V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKLSAgICBEZXF1ZTxTY3JpcHRGZXRj
aEpvYj4gbV9zY3JpcHRGZXRjaEpvYnM7Ci0gICAgSGFzaFNldDxVUkw+IG1fZXZhbHVhdGVkTW9k
dWxlczsKICAgICBTZXR0aW5nczo6VmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7CiB9OwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMmI5YTUyYjdkZjczMWU2NjVjNGYxMDI2ZDhhYzE5MzlhNGE4ODJhMy4uYjYxODlmMzgzNWM5
MWM2MjE2MzI3MThkZTI5NzFmYTU3NWZmYjM5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIx
LTAyLTExICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMg
TW9kdWxlcyBpbiBXb3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDItMTAgIEFtaXIgTWFyayBK
ciAgPGFtaXJfbWFya0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY09TXSBhbmltYXRpb25zL2tl
eWZyYW1lLXBzZXVkby1zaGFkb3cuaHRtbCBpcyBmbGFrZXkgZmFpbGluZy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCmluZGV4IGQzMGU1NjI5MjJlNWE0ZDZmMzE2MjY1ZTFlYTI1NjhlOTll
N2U4MWMuLmE1MjQ2NDU2ZTYxYmM1YTcwODBkZDUzNGQyZGJlNTMzYjY1ZGZmNzUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTAyLTExICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBX
b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXIt
d29ya2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBv
cnRTY3JpcHRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWlj
LWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3Jr
ZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3Jk
ZXItMi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1w
b3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1
cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1vZHVsZXdv
cmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
YmFzZXVybC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZh
Y2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2Jh
bFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9y
dC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRl
ZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxl
cy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJl
ci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9k
dWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRp
b25zLXR5cGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVk
aW8td29ya2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xl
dC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0ZWQtd29ya2Vy
LW9yaWdpbi1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDItMTAgIE1hbnVlbCBSZWdvIENhc2Fzbm92
YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG1vZGlmaWVy
IGtleXMgaW4gdGVzdF9kcml2ZXIuc2VuZF9rZXlzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGU4
ZDE3YjA3NzUyZDFlN2YxMjg3NDYzMGQ3OWMxZTJhZWE0ZWQyMzYuLmUxYWNjMjUwYjZkMzdmZWVh
MWQyMWFiZGNkMWYyMTczODJmYTNkOWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjQyLDcgKzY0
Miw2IEBAIGZhc3QvZG9tL2Nvbm5lY3RlZC1zdWJmcmFtZS1jb3VudGVyLW92ZXJmbG93Lmh0bWwg
WyBTbG93IF0KIFsgRGVidWcgXSBodHRwL3Rlc3RzL3dvcmtlcnMvd29ya2VyLW1lc3NhZ2Vwb3J0
LTIuaHRtbCBbIFNsb3cgXQogCiAjIFNraXAgd29ya2VycyB0ZXN0cyB0aGF0IGFyZSB0aW1pbmcg
b3V0IG9yIGFyZSBTaGFyZWRXb3JrZXIgcmVsYXRlZCBvbmx5Ci1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi5odG1s
IFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvZGF0YS11
cmwtc2hhcmVkLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9leGFtcGxlcy9vbmNvbm5lY3QuYW55Lmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9leGFtcGxlcy9vbmNvbm5lY3QuYW55Lndvcmtl
ci5odG1sIFsgU2tpcCBdCkBAIC02NjUsNyArNjY0LDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL1NoYXJlZFdvcmtlci1yZXBsYWNlLUV2ZW50SGFuZGxlci5hbnku
aHQKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9TaGFyZWRXb3JrZXIt
cmVwbGFjZS1FdmVudEhhbmRsZXIuYW55Lndvcmtlci5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyLXNjcmlwdC1lcnJvci5o
dG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hh
cmVkV29ya2VyLXNpbXBsZS5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci5o
dG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9k
dWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtY3JlZGVudGlhbHMuaHRtbCBbIFNraXAgXQog
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1No
YXJlZFdvcmtlciBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9u
b24tb2JqZWN0LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA0OTI2OWIz
YjUwYjkxNzVjYjYyZWNhMzEyZTU4NmIzYjE2NjJhMjU5Li4yY2FlNWY3ZTM1YTMyZmVjZWIyNjhm
MjkwMDAwZTRlNTU1NmM2ODYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9qc29uLW1vZHVsZS9ub24tb2JqZWN0LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVs
ZS9ub24tb2JqZWN0LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsx
LDcgQEAKIAotRkFJTCBOb24tb2JqZWN0OiBudWxsIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBt
b2R1bGUgJy4vbnVsbC5qc29uJy4iCi1GQUlMIE5vbi1vYmplY3Q6IHRydWUgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5v
dCBpbXBvcnQgdGhlIG1vZHVsZSAnLi90cnVlLmpzb24nLiIKLUZBSUwgTm9uLW9iamVjdDogZmFs
c2UgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
RXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9mYWxzZS5qc29uJy4iCi1GQUlM
IE5vbi1vYmplY3Q6IHN0cmluZyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL3N0
cmluZy5qc29uJy4iCi1GQUlMIE5vbi1vYmplY3Q6IGFycmF5IHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0
IHRoZSBtb2R1bGUgJy4vYXJyYXkuanNvbicuIgorRkFJTCBOb24tb2JqZWN0OiBudWxsIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogJ2FwcGxpY2F0aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBl
LiIKK0ZBSUwgTm9uLW9iamVjdDogdHJ1ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBu
b3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IGZhbHNl
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogJ2FwcGxpY2F0aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlN
RSB0eXBlLiIKK0ZBSUwgTm9uLW9iamVjdDogc3RyaW5nIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9uL2pz
b24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKK0ZBSUwgTm9uLW9iamVj
dDogYXJyYXkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNj
cmlwdCBNSU1FIHR5cGUuIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25l
cnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3It
bW9kdWxlLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0
YzFkY2IzYTVmLi5mNjhjYzczYjRkNjc0YzU0ZGZhZmU1MjIxMmI2NDNjNDAzMGZkNDJjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNr
cG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2tw
b2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSw0IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVs
bAotCitGQUlMIFByb21pc2UgcmVzb2x2ZWQgZHVyaW5nICNyZXBvcnQtdGhlLWVycm9yIGFzc2Vy
dF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBbImhhbmRsZXIg
MSIsICJoYW5kbGVyIDIiLCAiaGFuZGxlciAxIHByb21pc2UiLCAiaGFuZGxlciAyIHByb21pc2Ui
XSBsZW5ndGggNCwgZ290IFtdIGxlbmd0aCAwCitQQVNTIFByb21pc2UgcmVzb2x2ZWQgZHVyaW5n
IGV2ZW50IGhhbmRsZXJzIG90aGVyIHRoYW4gZXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2Ut
dXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3Jr
ZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQKaW5kZXggNTFkNjEwMGU2MTIyYTk3YzM2NGIz
Y2ViMWQ3ZmQwN2UwZTE1NjExNy4uYTgwNTBjMDc4Y2Y4Yjg4ZDU2OGFmZmUwZDU1Y2MzMTkwYzM2
NTQ3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHlu
YW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQu
dHh0CkBAIC0xLDYgKzEsNiBAQAogCi1GQUlMIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gc2FtZS1v
cmlnaW4gaW1wb3J0U2NyaXB0cygpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4v
aW1wb3J0LmpzP3BpcGU9aGVhZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJl
bD1yZWxhdGl2ZS1jcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpJy4iCi1GQUlMIEFic29sdXRl
IFVSTC1saWtlIGZyb20gc2FtZS1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3Qg
aW1wb3J0IHRoZSBtb2R1bGUgJ2h0dHA6Ly8xMjcuMC4wLjE6ODgwMC9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2dhbW1h
L2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFi
ZWw9YWJzb2x1dGUtY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKScuIgotUEFTUyBSZWxhdGl2
ZSBVUkwtbGlrZSBmcm9tIGNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKLUZBSUwgQWJzb2x1
dGUgVVJMLWxpa2UgZnJvbSBjcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBu
b3QgaW1wb3J0IHRoZSBtb2R1bGUgJ2h0dHA6Ly8xMjcuMC4wLjE6ODgwMC9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2dh
bW1hL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikm
bGFiZWw9YWJzb2x1dGUtY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKScuIgorUEFTUyBSZWxh
dGl2ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQorUEFTUyBBYnNv
bHV0ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQorRkFJTCBSZWxh
dGl2ZSBVUkwtbGlrZSBmcm9tIGNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkgYXNzZXJ0X2Vx
dWFsczogUmVsYXRpdmUgVVJMLWxpa2Ugc3BlY2lmaWVyIHJlc29sdXRpb24gc2hvdWxkIGZhaWwg
ZXhwZWN0ZWQgIih1bnJlYWNoZWQpIiBidXQgZ290ICJnYW1tYS9pbXBvcnQuanMiCitQQVNTIEFi
c29sdXRlIFVSTC1saWtlIGZyb20gY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1p
bXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11
cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQKaW5kZXggODY2ZWJiMjI3YWQyNmFhY2UxYTU3OGJh
ZWE2YTgxZGMwZTZlNzdmMC4uNWU3MDYzNDkwZTJkZmZlY2U4NWVhNzY1YWViZGRlNGIxNmViMGZj
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5
bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9h
bHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAot
RkFJTCBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0IHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBD
b3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vaW1wb3J0LmpzP3BpcGU9aGVhZGVyKEFjY2Vz
cy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJlbD1yZWxhdGl2ZS13b3JrZXIgdG9wLWxldmVs
IHNjcmlwdCcuIgotRkFJTCBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwg
c2NyaXB0IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJ2h0dHA6Ly8xMjcuMC4wLjE6
ODgwMC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2R5bmFtaWMtaW1wb3J0L2dhbW1hL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJv
bC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9YWJzb2x1dGUtd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQn
LiIKK1BBU1MgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdAor
UEFTUyBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0
aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtl
ci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNi
M2E1Zi4uMmYxMmEyMzQyZmFkMjI0ZTNhMThhNmZiNWQ4NDgzMjVlYTY3NzZmZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3Jk
ZXItMS1ub3Rocm93LXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtlci1l
eHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBt
ZXNzYWdlID0gbnVsbAotCitQQVNTIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFs
dWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4
dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi5iODYxZjcw
MWY5NDhmYjEzMjc2OTMyMmMzODM2NmYyZDEzOGYwNGUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAog
Ci1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorRkFJTCBUZXN0IGV2
YWx1YXRpb24gb3JkZXIgb2YgbW9kdWxlcyBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRp
ZmZlciwgZXhwZWN0ZWQgYXJyYXkgWyJzdGVwLTEtMSIsICJzdGVwLTEtMiIsICJnbG9iYWwtZXJy
b3IiLCAiZXJyb3IiLCAibWljcm90YXNrIl0gbGVuZ3RoIDUsIGdvdCBbInN0ZXAtMS0xIiwgInN0
ZXAtMS0yIiwgIm1pY3JvdGFzayJdIGxlbmd0aCAzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdv
cmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5
MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLmMxZDM4YmRlNTBjNTllNWQ1
OTQxNzNkOTZmOWNkMTllYjEwN2M5YjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2
YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMg
QEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK0ZBSUwgVGVz
dCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVsZXMgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3Ro
cyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsic3RlcC0yLjItMSIsICJzdGVwLTIuMi0yIiwgImds
b2JhbC1lcnJvciIsICJlcnJvciIsICJtaWNyb3Rhc2stMi4yIl0gbGVuZ3RoIDUsIGdvdCBbInN0
ZXAtMi4yLTEiLCAic3RlcC0yLjItMiIsICJtaWNyb3Rhc2stMi4yIl0gbGVuZ3RoIDMKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRp
b24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2Vy
LWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2Iz
YTVmLi4yZjEyYTIzNDJmYWQyMjRlM2ExOGE2ZmI1ZDg0ODMyNWVhNjc3NmZlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRl
ci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1l
c3NhZ2UgPSBudWxsCi0KK1BBU1MgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVsZXMKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggMTJkOTRhOTFlZjFmOGFiMGExODdjNzQ5YjBkZGVjNjk2
ZDExODhlNy4uYjRkNjhhZjA1NmVlZjYyMmEzM2Q1NGYwNzZmMzgxZDRlMWJiMjlhMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0yLDggKzIsOCBAQAogRkFJTCBTdGF0aWMgaW1wb3J0LiBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0
cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCiBGQUlMIE5lc3RlZCBzdGF0aWMgaW1wb3J0LiBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0
cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCiBGQUlMIFN0YXRpYyBpbXBvcnQgYW5kIHRoZW4gZHlu
YW1pYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBp
bXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHluYW1pYyBp
bXBvcnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1p
YyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9u
LWxvYWQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBOZXN0ZWQgZHluYW1pYyBp
bXBvcnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1p
YyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9u
LWR5bmFtaWMtaW1wb3J0LXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgRHluYW1p
YyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFs
dWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBv
cnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tc3RhdGljLWltcG9ydC1zY3JpcHQuanMnLiIsIGV4
cGVjdGVkIGFycmF5Ci1GQUlMIGV2YWwoaW1wb3J0KCkpLiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2
YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGlt
cG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQg
YXJyYXkKK1BBU1MgRHluYW1pYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBkeW5hbWljIGltcG9ydC4K
K1BBU1MgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4KK1BBU1MgZXZhbChp
bXBvcnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0LWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50
eHQKaW5kZXggZGQ5YWYzOGZmMDlmYmVjMWZhYzBiOGY1ZWE5YmFkNmUzMTYzNjQ5ZC4uNTFlYjM2
NjM4YzFjYTdkMDYwYjc2NzU5MjZmY2M3MGM1YmYwNzZlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEv
aW1wb3J0LWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0
LWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1F
U1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGlkZW50aWZpZXIgJ3InLiBpbXBvcnQgY2Fs
bCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgogCi1GQUlMIEJhc2UgVVJMIGluIG1vZHVs
ZSBkZWRpY2F0ZWQgd29ya2VyczogaW1wb3J0IGFzc2VydF91bnJlYWNoZWQ6IEdvdCBlcnJvciBl
dmVudCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgQmFzZSBVUkwgaW4gbW9kdWxlIGRl
ZGljYXRlZCB3b3JrZXJzOiBpbXBvcnQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2Ny
aXB0cy1pbi13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13
b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGFiNWE3ZmI4OTAyMGYyOWZkODkzYTc1NjgwZmZlMTdk
M2QzNTBmN2MuLmFiNTNiODA1OTlhZTAxOTU3ODA4NWVlNDRhYWVmYTRjNzk1NTI2ODQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFz
ZXVybC9hbHBoYS9pbXBvcnRTY3JpcHRzLWluLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyAr
MSwzIEBACiAKLUZBSUwgaW1wb3J0U2NyaXB0cyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZ2Ft
bWEvc2NyaXB0LmpzIiBidXQgZ290ICJiZXRhL3NjcmlwdC5qcyIKK1BBU1MgaW1wb3J0U2NyaXB0
cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9i
YXNldXJsL2FscGhhL3hoci1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDgzZjM2
N2YyY2YzYTY2YzY0YTYyNjQyOTQ2NTZkNWU4ODFkMWMxMWMuLjI4YjBjYjQwMDEzOTJkMDg4N2E0
ZmViZTY4MWMxZTE1MWQwZGYxOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi1tb2R1bGV3
b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi1tb2R1bGV3b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIEJhc2UgVVJMIGluIG1vZHVsZSBkZWRp
Y2F0ZWQgd29ya2VyczogWEhSIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJnYW1tYVxuIiBidXQg
Z290ICJiZXRhXG4iCitQQVNTIEJhc2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2Vyczog
WEhSCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1
cmwvYWxwaGEveGhyLWluLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZDZiMDhlZWRhZTZmNjk2
YzdhNGJmYTY1NWUxM2I1ZWQ0NjA3ZWEwMS4uZWExNDU0ZDliM2YyMGY4NWQ5MDE2YzUwNmExNTQ2
YWY2MTc4NDJkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLXdvcmtlci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwz
IEBACiAKLUZBSUwgeGhyLXdvcmtlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZ2FtbWFcbiIg
YnV0IGdvdCAiYmV0YVxuIgorUEFTUyB4aHItd29ya2VyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMv
V29ya2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3Jp
Z2luLWV4cGVjdGVkLnR4dAppbmRleCA4MzFmMGM1OGM2OTRjMmQ0ZmViZDZkOGQwYWYzMDdiMTA5
NDQyYTZlLi5kNTU1ZWU3Y2YzZmM3MmVmYjgyZGY5ZGI3ZGFkMzY3ZjlhYjdmZmJmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
Y29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9y
cy9Xb3JrZXIvc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0xLDEzICsxLDExIEBACiAKLUhh
cm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTIHVuc3VwcG9ydGVk
X3NjaGVtZQogRkFJTCBkYXRhX3VybCBUaGUgb3BlcmF0aW9uIGlzIGluc2VjdXJlLgotVElNRU9V
VCBhYm91dF9ibGFuayBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBleGFtcGxlX2ludmFsaWQgVGVz
dCB0aW1lZCBvdXQKLVRJTUVPVVQgcG9ydF84MSBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBodHRw
c19wb3J0XzgwIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIGh0dHBzX3BvcnRfODAwMCBUZXN0IHRp
bWVkIG91dAotVElNRU9VVCBodHRwX3Bvc3RfODAxMiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBq
YXZhc2NyaXB0X3VybCBUZXN0IHRpbWVkIG91dAorUEFTUyBhYm91dF9ibGFuaworUEFTUyBleGFt
cGxlX2ludmFsaWQKK1BBU1MgcG9ydF84MQorUEFTUyBodHRwc19wb3J0XzgwCitQQVNTIGh0dHBz
X3BvcnRfODAwMAorUEFTUyBodHRwX3Bvc3RfODAxMgorUEFTUyBqYXZhc2NyaXB0X3VybAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBl
Y3RlZC50eHQKaW5kZXggZjE3NDFmOWQ4YmYwNzAzMjcwZDJlMzc2MmRiY2JlMjZjMGI5MDA1OS4u
M2IwZGZiMzVlNTFjZDFhODU0NTUzMDE5YzBlNDAzZGJlMmYxZDMzZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFj
ZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRl
cmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dApA
QCAtMSwzICsxLDMgQEAKIAotRkFJTCBXb3JrZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czogY2xh
c3NpYyBkZWRpY2F0ZWQgd29ya2VycyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaHR0cDovL2xv
Y2FsaG9zdDo4ODAwL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlv
bi9wb3N0LWxvY2F0aW9uLW1lbWJlcnMuanM/YSIgYnV0IGdvdCAiaHR0cDovL2xvY2FsaG9zdDo4
ODAwL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9oZWxwZXIt
cmVkaXJlY3QucHk/ZmFpbCIKK1BBU1MgV29ya2VyTG9jYXRpb24gd2l0aCByZWRpcmVjdHM6IGNs
YXNzaWMgZGVkaWNhdGVkIHdvcmtlcnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFs
U2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtl
ckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQKaW5kZXgg
ZGMyZTJlMjA3ZGIwMDFlZTcwZTczMzA3ZDI3YmIzMzU3MjBmZDU1OS4uYjNiZjgxZWU4NjgxYjlk
YzA4MGY1ODAyNzFlOGI4ZjM5MDk2NTQ5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFs
U2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9X
b3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0CkBA
IC0xLDMgKzEsMyBAQAogCi1GQUlMIFdvcmtlckxvY2F0aW9uIHdpdGggcmVkaXJlY3RzOiBtb2R1
bGUgZGVkaWNhdGVkIHdvcmtlcnMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9sb2Nh
bGhvc3Q6ODgwMC93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24v
cG9zdC1sb2NhdGlvbi1tZW1iZXJzLmpzP2EiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgw
MC93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vaGVscGVyLXJl
ZGlyZWN0LnB5P2ZhaWwiCitQQVNTIFdvcmtlckxvY2F0aW9uIHdpdGggcmVkaXJlY3RzOiBtb2R1
bGUgZGVkaWNhdGVkIHdvcmtlcnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1p
bXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1w
b3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQKaW5kZXggMjBhYzE3ZDU2M2M0YjNhNDYxZjBj
YWFmYmVhZWViZDcxM2Y5NzA4MS4uZGNjZWRjY2QzNjhlMWZmMTdiMWRkMTM2ZTQ1M2ZlYzRmZTEw
YmM4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5h
bnktZXhwZWN0ZWQudHh0CkBAIC0xLDE4ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4
RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93
b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0
IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3lu
dGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgw
MC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1zdGF0aWMtaW1wb3J0LXdvcmtlci5q
cyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1F
U1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9j
YWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9zdGF0aWMtaW1wb3J0LWFuZC10
aGVuLWR5bmFtaWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3Rs
eSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVk
IHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jl
c291cmNlcy9keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4
YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxl
cy9yZXNvdXJjZXMvbmVzdGVkLWR5bmFtaWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxs
IGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29y
a2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWltcG9ydC1hbmQtdGhlbi1zdGF0aWMtaW1w
b3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
Ci1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFs
ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9ldmFsLWR5
bmFtaWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUg
YXJndW1lbnQuCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6
IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJz
L21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LWFuZC10aGVuLXN0YXRpYy1pbXBvcnQt
d29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLQot
RkFJTCBTdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDov
L2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvc3RhdGljLWltcG9ydC13
b3JrZXIuanNcIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1G
QUlMIE5lc3RlZCBzdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwi
aHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvbmVzdGVkLXN0
YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUg
YXJndW1lbnQuIgotRkFJTCBTdGF0aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LiBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtl
cnMvbW9kdWxlcy9yZXNvdXJjZXMvc3RhdGljLWltcG9ydC1hbmQtdGhlbi1keW5hbWljLWltcG9y
dC13b3JrZXIuanNcIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4i
Ci1GQUlMIER5bmFtaWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0
cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBv
cnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
IgotRkFJTCBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVy
YWwgXCJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9uZXN0
ZWQtZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3Rs
eSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGltcG9ydCBhbmQgdGhlbiBzdGF0aWMgaW1w
b3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRh
eEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAw
L3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtYW5kLXRoZW4tc3RhdGlj
LWltcG9ydC13b3JrZXIuanNcIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1
bWVudC4iCi1GQUlMIGV2YWwoaW1wb3J0KCkpLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFs
IFwiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXZhbC1k
eW5hbWljLWltcG9ydC13b3JrZXIuanNcIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9u
ZSBhcmd1bWVudC4iCitQQVNTIFN0YXRpYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBzdGF0aWMgaW1w
b3J0LgorUEFTUyBTdGF0aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LgorUEFTUyBE
eW5hbWljIGltcG9ydC4KK1BBU1MgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LgorUEFTUyBEeW5hbWlj
IGltcG9ydCBhbmQgdGhlbiBzdGF0aWMgaW1wb3J0LgorUEFTUyBldmFsKGltcG9ydCgpKS4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1
bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQKaW5kZXggMWRhNDZi
OTI2YmUwODk2ZWU4Zjc1YTc4ZGNhZTRmMjY5YjA1MDkyYi4uMjM5Y2M5Y2UxNTMwMWY3ZWVkODNk
NWViMjIzMGE5ZGUyOTRlYTJlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBv
cnQtY3NwLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1jc3At
ZXhwZWN0ZWQudHh0CkBAIC0xLDEzICsxLDIyIEBACiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2du
aXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitC
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQz
L3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCiBDT05T
T0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3Rp
dmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6
Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9u
LWxvYWQtc2NyaXB0LmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93
d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxv
YWQtc2NyaXB0LmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cx
LmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQt
c2NyaXB0LmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5
LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNv
dXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2du
aXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitC
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQz
L3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCitCbG9j
a2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dv
cmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCitCbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtl
cnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCiBDT05TT0xFIE1F
U1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dv
cmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cx
LmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQt
c2NyaXB0LmpzCiAKIFBBU1Mgd29ya2VyLXNyYyAnc2VsZicgZGlyZWN0aXZlIHNob3VsZCBkaXNh
bGxvdyBjcm9zcyBvcmlnaW4gc3RhdGljIGltcG9ydC4KIEZBSUwgd29ya2VyLXNyYyAqIGRpcmVj
dGl2ZSBzaG91bGQgYWxsb3cgY3Jvc3Mgb3JpZ2luIHN0YXRpYyBpbXBvcnQuIGFzc2VydF9hcnJh
eV9lcXVhbHM6IGV4cGVjdGVkIHByb3BlcnR5IDAgdG8gYmUgImV4cG9ydC1vbi1sb2FkLXNjcmlw
dC5qcyIgYnV0IGdvdCAiRVJST1IiIChleHBlY3RlZCBhcnJheSBbImV4cG9ydC1vbi1sb2FkLXNj
cmlwdC5qcyJdIGdvdCBbIkVSUk9SIl0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2Vy
LWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0
LWZhaWx1cmUtZXhwZWN0ZWQudHh0CmluZGV4IDk1YzZkMTVkZjQ0ZTE4YTM1ZGZlYjBmYTM5Yzhk
Mzg0NDIwYzJjMTMuLmU5NTU3OGU3MWIxYzUwYTRlMDQ3MWIwMzcxNTRiMzg2YjM3YWVkNzQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQudHh0CkBA
IC0xLDkgKzEsOSBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBz
dHJpbmcgbGl0ZXJhbCAnLi9ub24tZXhpc3RlbnQtc2NyaXB0LmpzJy4gaW1wb3J0IGNhbGwgZXhw
ZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KK0NPTlNPTEUgTUVTU0FHRTogSW1wb3J0aW5nIGEg
bW9kdWxlIHNjcmlwdCBmYWlsZWQuCiAKLUZBSUwgaW1wb3J0U2NyaXB0cygpIG9uIG1vZHVsZSB3
b3JrZXIgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
IlR5cGVFcnJvciIgYnV0IGdvdCAiTE9BREVEIgorUEFTUyBpbXBvcnRTY3JpcHRzKCkgb24gbW9k
dWxlIHdvcmtlciBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLgogUEFTUyBXb3JrZXIgY29uc3Ry
dWN0aW9uIGZvciBub24tZXhpc3RlbnQgc2NyaXB0IHNob3VsZCBkaXNwYXRjaCBhbiBFcnJvckV2
ZW50LgogUEFTUyBTdGF0aWMgaW1wb3J0IGZvciBub24tZXhpc3RlbnQgc2NyaXB0IHNob3VsZCBk
aXNwYXRjaCBhbiBFcnJvckV2ZW50LgotRkFJTCBEeW5hbWljIGltcG9ydCBmb3Igbm9uLWV4aXN0
ZW50IHNjcmlwdCBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiVHlwZUVycm9yIiBidXQgZ290ICJFcnJvciIKK1BBU1MgRHluYW1pYyBpbXBvcnQgZm9y
IG5vbi1leGlzdGVudCBzY3JpcHQgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIFBBU1MgV29y
a2VyIGNvbnN0cnVjdGlvbiBmb3IgYW4gaW52YWxpZCBVUkwgc2hvdWxkIHRocm93IGFuIGV4Y2Vw
dGlvbi4KIFBBU1MgV29ya2VyIGNvbnN0cnVjdGlvbiBmb3IgYSBmaWxlIFVSTCBzaG91bGQgdGhy
b3cgYW4gZXhjZXB0aW9uLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9y
dC1tZXRhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEtZXhw
ZWN0ZWQudHh0CmluZGV4IGQ1ODA2MjA0MWMzZTY5NTE1YjgxNWUwMmQ3YzM4Njg0ZDc3Yzc2Yjcu
Ljc3MjkxYmFhMWE0MTg0YmViZTdhZDdiNWQ5ZjExOWM3MWE3OGRlNGYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItaW1wb3J0LW1ldGEtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsNSBAQAotQ09O
U09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogaW1wb3J0Lm1ldGEgaXMgb25seSB2YWxpZCBpbnNp
ZGUgbW9kdWxlcy4KIAotSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBTeW50YXhFcnJv
cjogaW1wb3J0Lm1ldGEgaXMgb25seSB2YWxpZCBpbnNpZGUgbW9kdWxlcy4KLQotRkFJTCBUZXN0
IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQuIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IGltcG9y
dC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuIgotRkFJTCBUZXN0IGltcG9ydC5t
ZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdC4gYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBv
cnRlZCBtb2R1bGUgc2NyaXB0IHdpdGggYSBmcmFnbWVudC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitQQVNTIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSB0b3AtbGV2
ZWwgbW9kdWxlIHNjcmlwdC4KK1BBU1MgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9y
dGVkIG1vZHVsZSBzY3JpcHQuCitQQVNTIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBv
cnRlZCBtb2R1bGUgc2NyaXB0IHdpdGggYSBmcmFnbWVudC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBv
cnQtbWV0YS5odG1sCmluZGV4IGNmZjhlOTE0ODhlODIzOWFiZTIxMzYxOWQxMmQ1YTYwMzA3MmZi
ZWEuLmVkZTI2OTJlMWM2MzQxYmVmZmM5MDEwYzQxYjhmNGNmZTQzODMyOWIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1
bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC1tZXRhLmh0bWwKQEAgLTUzLDcgKzUzLDcgQEAKICAgICAgICAgd29ya2Vy
LnBvc3RNZXNzYWdlKCcuLycgKyBzY3JpcHRfdXJsICsgJyMxJyk7CiAgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZShyZXNvbHZlID0+IHdvcmtlci5vbm1lc3NhZ2UgPSByZXNvbHZlKTsKICAgICAg
IH0pCi0gICAgICAudGhlbihtc2dfZXZlbnQgPT4gYXNzZXJ0X3RydWUobXNnX2V2ZW50LmRhdGEu
ZW5kc1dpdGgoc2NyaXB0X3VybCkpKTsKKyAgICAgIC50aGVuKG1zZ19ldmVudCA9PiBhc3NlcnRf
dHJ1ZShtc2dfZXZlbnQuZGF0YS5lbmRzV2l0aChzY3JpcHRfdXJsICsgJyMxJykpKTsKIH0sICdU
ZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEg
ZnJhZ21lbnQuJyk7CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtl
ci1pbXBvcnQtcmVmZXJyZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBv
cnQtcmVmZXJyZXItZXhwZWN0ZWQudHh0CmluZGV4IDZkYzQyYzFjZmQzMzQ4YWZkZDFkZmQzYjEw
YTUwNDcwNTUzMDE5NmEuLmZlMWI5ZDkzYzA4MDExYjUwZTk0MWY0ZTEyMzYwNjdhYmJkM2YyM2Ug
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50
eHQKQEAgLTEsMTkgKzEsMjMgQEAKLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2Ug
PSBudWxsCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2Fs
aG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNr
ZXIucHkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxo
b3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tl
ci5weQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhv
c3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2Vy
LnB5CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9z
dDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIu
cHkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0
Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5w
eQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6
OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5
CiAKIFBBU1MgU2FtZS1vcmlnaW4gdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQgbG9hZGluZyB3aXRo
ICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5CiBQQVNTIFNhbWUtb3JpZ2luIHRvcC1sZXZl
bCBtb2R1bGUgc2NyaXB0IGxvYWRpbmcgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kKIFBB
U1MgU2FtZS1vcmlnaW4gdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQgbG9hZGluZyB3aXRoICJzYW1l
LW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5Ci1GQUlMIFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQg
d2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgot
RkFJTCBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9s
aWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCi1GQUlMIFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQg
d2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgor
UEFTUyBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJl
ciBwb2xpY3kuCitQQVNTIFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAib3JpZ2luIiBy
ZWZlcnJlciBwb2xpY3kuCitQQVNTIFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAic2Ft
ZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4KIEZBSUwgQ3Jvc3Mtb3JpZ2luIHN0YXRpYyBpbXBv
cnQgd2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9y
IgogRkFJTCBDcm9zcy1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVy
IHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgogRkFJTCBDcm9zcy1vcmlnaW4gc3RhdGljIGlt
cG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJy
b3IiCi1USU1FT1VUIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVy
IiByZWZlcnJlciBwb2xpY3kuIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gU2FtZS1vcmlnaW4gZHlu
YW1pYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gU2FtZS1v
cmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4K
LU5PVFJVTiBDcm9zcy1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAibm8tcmVmZXJyZXIiIHJl
ZmVycmVyIHBvbGljeS4KLU5PVFJVTiBDcm9zcy1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAi
b3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1w
b3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCitGQUlMIFNhbWUtb3JpZ2lu
IGR5bmFtaWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICIiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3Jr
ZXJzL21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LXNhbWUtb3JpZ2luLXJlZmVycmVy
LWNoZWNrZXItd29ya2VyLmpzIgorRkFJTCBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRo
ICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6
Ly9sb2NhbGhvc3Q6ODgwMC8iIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJz
L21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LXNhbWUtb3JpZ2luLXJlZmVycmVyLWNo
ZWNrZXItd29ya2VyLmpzIgorUEFTUyBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJz
YW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgorRkFJTCBDcm9zcy1vcmlnaW4gZHluYW1pYyBp
bXBvcnQgd2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVy
cm9yIgorRkFJTCBDcm9zcy1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZl
cnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFt
aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlw
ZSBlcnJvciIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50eHQK
aW5kZXggYTIzYTU1NzVkYjQyNzQyN2Y4NWJkNmI2MzU0ZGU4ODM4MzFmZTJiNC4uZGNjZWRjY2Qz
NjhlMWZmMTdiMWRkMTM2ZTQ1M2ZlYzRmZTEwYmM4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVk
LXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2Vy
LWltcG9ydC5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDE0ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FH
RTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3Rz
IGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5l
eHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1l
bnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4g
aW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KIAotSGFybmVzcyBFcnJv
ciAoRkFJTCksIG1lc3NhZ2UgPSBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi0KLUZBSUwgU3RhdGljIGlt
cG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50
YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3Rs
eSBvbmUgYXJndW1lbnQuIgotRkFJTCBOZXN0ZWQgc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgot
RkFJTCBTdGF0aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVk
IHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1G
QUlMIER5bmFtaWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVk
IHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxl
ICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgTmVz
dGVkIGR5bmFtaWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVk
IHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxl
ICcuL2V4cG9ydC1vbi1keW5hbWljLWltcG9ydC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5
Ci1GQUlMIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBpbXBvcnQuIGFzc2VydF9hcnJh
eV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBD
b3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLXN0YXRpYy1pbXBvcnQtc2Ny
aXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBldmFsKGltcG9ydCgpKS4gYXNzZXJ0X2Fy
cmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6
IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMn
LiIsIGV4cGVjdGVkIGFycmF5CitQQVNTIFN0YXRpYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBzdGF0
aWMgaW1wb3J0LgorUEFTUyBTdGF0aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0Lgor
UEFTUyBEeW5hbWljIGltcG9ydC4KK1BBU1MgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LgorUEFTUyBE
eW5hbWljIGltcG9ydCBhbmQgdGhlbiBzdGF0aWMgaW1wb3J0LgorUEFTUyBldmFsKGltcG9ydCgp
KS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGRhMGU0ZWI2NzU4ZDE0YTM3YTM5OGQwYjZmYzcxYWQzODc2YmQyNmIuLjFmYzBjNjZmZGY3
MjRjMmFhM2I5MTA2OTgwYmZiZTdlOTg4Zjk3NzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13
b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2Vy
LW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQKQEAgLTIsMTEgKzIsNiBAQAogUEFTUyBUZXN0IHdv
cmtlciBjb25zdHJ1Y3Rpb24gd2l0aCB0aGUgZGVmYXVsdCB3b3JrZXIgdHlwZS4KIFBBU1MgVGVz
dCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggdGhlICJjbGFzc2ljIiB3b3JrZXIgdHlwZS4KIFBB
U1MgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggdGhlICJtb2R1bGUiIHdvcmtlciB0eXBl
LgotRkFJTCBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiBlbXB0eSB3b3JrZXIgdHlw
ZS4gYXNzZXJ0X3Rocm93c19qczogV29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIGVtcHR5IHR5
cGUgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiBmdW5jdGlvbiAiKCkgPT4gewotICAgICAgICBu
ZXcgV29ya2VyKCdyZXNvdXJjZXMvcG9zdC1tZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzJywgeyB0
eXBlOiAnJyB9KTsKLSAgICAgIH0iIGRpZCBub3QgdGhyb3cKLUZBSUwgVGVzdCB3b3JrZXIgY29u
c3RydWN0aW9uIHdpdGggYW4gdW5rbm93biB3b3JrZXIgdHlwZS4gYXNzZXJ0X3Rocm93c19qczog
V29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIHVua25vd24gdHlwZSBzaG91bGQgdGhyb3cgYW4g
ZXhjZXB0aW9uIGZ1bmN0aW9uICIoKSA9PiB7Ci0gICAgICAgIG5ldyBXb3JrZXIoJ3Jlc291cmNl
cy9wb3N0LW1lc3NhZ2Utb24tbG9hZC13b3JrZXIuanMnLAotICAgICAgICAgICAgICAgICAgIHsg
dHlwZTogJ3Vua25vd24nIH0pOwotICAgICAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBUZXN0IHdv
cmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiBlbXB0eSB3b3JrZXIgdHlwZS4KK1BBU1MgVGVzdCB3
b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gdW5rbm93biB3b3JrZXIgdHlwZS4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQK
aW5kZXggZThlYjU0MGJkMzM5MjQwMGE4ZGJmZDkzODY0OGE2NDkyMzljMGQ5ZS4uZDFhNTBmN2Vh
M2NkNmRjMjk4ZWY3NTQxNDc3NjJjNjljNTdkNzNiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVk
LXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsMTQg
QEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBp
bXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgorQ09OU09MRSBNRVNTQUdF
OiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnOycKK0NPTlNPTEUgTUVTU0FHRTogU3lu
dGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJzsnCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBt
ZXNzYWdlID0gRXJyb3I6IGFzc2VydF9pbXBsZW1lbnRzOiBTdGF0aWMgaW1wb3J0IG11c3QgYmUg
c3VwcG9ydGVkIG9uIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2VyIHRvIHJ1biB0aGlzIHRlc3QuIHVu
ZGVmaW5lZAotCi1OT1RSVU4gTW9kdWxlIHdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIHNjcmlwdCB3
aXRoIHN5bnRheCBlcnJvciBzaG91bGQgZGlzcGF0Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuCi1O
T1RSVU4gU3RhdGljIGltcG9ydCBvbiBtb2R1bGUgd29ya2VyIGZvciBzY3JpcHQgd2l0aCBzeW50
YXggZXJyb3Igc2hvdWxkIGRpc3BhdGNoIGFuIGV2ZW50IG5hbWVkIGVycm9yLgorRkFJTCBNb2R1
bGUgd29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNob3Vs
ZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
ZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iIGJ1dCBn
b3QgZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yRXZlbnQoKSB7CisgICAgW25hdGl2ZSBjb2RlXQor
fSIKK0ZBSUwgU3RhdGljIGltcG9ydCBvbiBtb2R1bGUgd29ya2VyIGZvciBzY3JpcHQgd2l0aCBz
eW50YXggZXJyb3Igc2hvdWxkIGRpc3BhdGNoIGFuIGV2ZW50IG5hbWVkIGVycm9yLiBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCBmdW5jdGlvbiAiZnVuY3Rpb24gRXZlbnQoKSB7CisgICAgW25hdGl2
ZSBjb2RlXQorfSIgYnV0IGdvdCBmdW5jdGlvbiAiZnVuY3Rpb24gRXJyb3JFdmVudCgpIHsKKyAg
ICBbbmF0aXZlIGNvZGVdCit9IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFt
ZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQKaW5kZXggNjM5ODQ3MTIxNDU5YTdhYjM3YjlmMDlhNjhi
YTY0ZWE4YTllZDU3Yy4uZTk0Njk0N2IxNGFlZjNlNTI5OWEwYWJhM2FlNGIxY2Y5ZmNkOTU3MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVk
LnR4dApAQCAtMSw3ICsxLDggQEAKIENPTlNPTEUgTUVTU0FHRTogVW5oYW5kbGVkIFByb21pc2Ug
UmVqZWN0aW9uOiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29y
a2VyCiAKLUZBSUwgVGVzdCB0aGUgbmFtZSBwcm9wZXJ0eSBvZiBzaGFyZWQgYW5kIGRlZGljYXRl
ZCB3b3JrZXJzIHZpYSB0aGUgbmFtZSBjb25zdHJ1Y3RvciBvcHRpb24gQ2FuJ3QgZmluZCB2YXJp
YWJsZTogU2hhcmVkV29ya2VyCi1QQVNTIERlY2xhcmluZyBuYW1lIGFzIGFuIGFjY2lkZW50YWwg
Z2xvYmFsIG11c3Qgbm90IGNhdXNlIGEgaGFybmVzcyBlcnJvciBmb3IgRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUKK0hhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gVW5oYW5kbGVkIHJl
amVjdGlvbjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCisKIFBBU1MgbmFtZSBw
cm9wZXJ0eSB2YWx1ZSBmb3IgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUKIFBBU1MgbmFtZSBw
cm9wZXJ0eSBpcyByZXBsYWNlYWJsZSBmb3IgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUKK1BB
U1MgRGVjbGFyaW5nIG5hbWUgYXMgYW4gYWNjaWRlbnRhbCBnbG9iYWwgbXVzdCBub3QgY2F1c2Ug
YSBoYXJuZXNzIGVycm9yIGZvciBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRz
L2F1ZGlvLXdvcmtsZXQtY3JlZGVudGlhbHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0
LWNyZWRlbnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmMDY5MWFhMDljYzQ5Y2RmN2Yy
YTk0Mzc0YzZlNjIyMjBmOTNiOGUyLi4wZGYyMzM0NmM3Y2Q5Zjg0Yzg0ZjRkZDM5MzQyZjUxYmY2
YmM2ZDk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3JlZGVudGlhbHMuaHR0cHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2xldHMvYXVkaW8td29ya2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEs
MTEgKzEsMTEgQEAKIENPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0
NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgogCi1GQUlM
IEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIHRoZSBkZWZhdWx0IFdvcmtsZXRP
cHRpb25zIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBGYWlsZWQgdG8gZmV0
Y2ggbW9kdWxlLCBlcnJvcjogUmVzcG9uc2UgaXMgbm90IDJ4eCIKK0ZBSUwgSW1wb3J0aW5nIGEg
c2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggdGhlIGRlZmF1bHQgV29ya2xldE9wdGlvbnMgc2hvdWxk
IHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQu
IgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIHRoZSBkZWZhdWx0
IFdvcmtsZXRPcHRpb25zIHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVudGlhbHMKLUZBSUwgSW1w
b3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9b21pdCBzaG91bGQg
bm90IHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBtb2R1bGUs
IGVycm9yOiBSZXNwb25zZSBpcyBub3QgMnh4IgorRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdp
biBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1vbWl0IHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVu
dGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiQWJvcnRFcnJvcjogVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4iCiBQQVNTIEltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9b21pdCBzaG91bGQgbm90
IHNlbmQgdGhlIGNyZWRlbnRpYWxzCi1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlw
dCB3aXRoIGNyZWRlbnRpYWxzPXNhbWUtb3JpZ2luIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFs
cyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJB
Ym9ydEVycm9yOiBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogUmVzcG9uc2UgaXMgbm90
IDJ4eCIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlh
bHM9c2FtZS1vcmlnaW4gc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IFRoZSBv
cGVyYXRpb24gd2FzIGFib3J0ZWQuIgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNj
cmlwdCB3aXRoIGNyZWRlbnRpYWxzPXNhbWUtb3JpZ2luIHNob3VsZCBub3Qgc2VuZCB0aGUgY3Jl
ZGVudGlhbHMKLUZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVu
dGlhbHM9aW5jbHVkZSBzaG91bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVk
IHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFJlc3BvbnNlIGlzIG5vdCAyeHgiCi1GQUlMIEltcG9y
dGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9aW5jbHVkZSBzaG91
bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwg
ZXJyb3I6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFj
Y2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4iCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2lu
IHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRp
YWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IkFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuIgorRkFJTCBJbXBvcnRpbmcg
YSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNl
bmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IENyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5p
ZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9h
dWRpby13b3JrbGV0LWNzcC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBz
LWV4cGVjdGVkLnR4dAppbmRleCBiZjMzNWNmMzA1NWUwNjViMzg5ODliNDFhYTFlMjM2ZmViNGFj
MjlkLi4yNzViMzQzN2ZhZDk3NTNhNmVjZTI0MjAwZWFiZjI1N2ZmZDYyNzJhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1
ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0MCArMSw1MiBAQAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMv
ZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcworQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNv
dXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcworQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0
cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcworQmxv
Y2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93
b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5q
cworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6
OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhl
YWRlci5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2Nh
bGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1j
b3JzLWhlYWRlci5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1
cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAogQ09OU09MRSBNRVNTQUdFOiBV
bnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3Jj
Jy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhv
c3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3Jz
LWhlYWRlci5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0
eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAogQ09OU09MRSBNRVNTQUdFOiBVbnJl
Y29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4K
IAogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kg
ZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29y
a2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcwogQ09OU09MRSBNRVNTQUdFOiBbYmxvY2tl
ZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMv
YWRkbW9kdWxlLXdpbmRvdy5odG1sIHdhcyBub3QgYWxsb3dlZCB0byBkaXNwbGF5IGluc2VjdXJl
IGNvbnRlbnQgZnJvbSBodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2xldHMvcmVzb3VyY2VzL2Vt
cHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMuCiAKIENPTlNPTEUgTUVTU0FH
RTogW2Jsb2NrZWRdIFRoZSBwYWdlIGF0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvd29ya2xldHMv
cmVzb3VyY2VzL2FkZG1vZHVsZS13aW5kb3cuaHRtbCB3YXMgbm90IGFsbG93ZWQgdG8gZGlzcGxh
eSBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtsZXRzL3Jl
c291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzLgogCitDT05T
T0xFIE1FU1NBR0U6IFtibG9ja2VkXSBUaGUgcGFnZSBhdCBodHRwczovL2xvY2FsaG9zdDo5NDQz
L3dvcmtsZXRzL3Jlc291cmNlcy9hZGRtb2R1bGUtd2luZG93Lmh0bWwgd2FzIG5vdCBhbGxvd2Vk
IHRvIGRpc3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly9sb2NhbGhvc3Q6OTQ0My93
b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5q
cy4KKworQ09OU09MRSBNRVNTQUdFOiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2Nh
bGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvYWRkbW9kdWxlLXdpbmRvdy5odG1sIHdhcyBu
b3QgYWxsb3dlZCB0byBkaXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vbG9jYWxo
b3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29y
cy1oZWFkZXIuanMuCisKIAogRkFJTCBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzaG91bGQgYmUg
YmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgotRkFJTCBBIHNhbWUtb3Jp
Z2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJs
b2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNPTFZFRCIKK1BBU1MgQSBzYW1lLW9yaWdp
biB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBiZSBibG9j
a2VkIGJ5IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBkaXJlY3RpdmUuCiBGQUlMIEEgcmVtb3RlLW9y
aWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBiZSBi
bG9ja2VkIGJ5IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCiBGQUlMIEEgcmVtb3RlLW9y
aWdpbi1yZWRpcmVjdGVkIHdvcmtsZXQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1z
cmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVDVEVEIiBi
dXQgZ290ICJSRVNPTFZFRCIKLUZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBh
IHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhl
IHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJF
SkVDVEVEIiBidXQgZ290ICJSRVNPTFZFRCIKK1BBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGlt
cG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIGJlIGJsb2Nr
ZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4KIFBBU1MgQSByZW1vdGUtb3Jp
Z2luIHdvcmtsZXQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMg
ZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuCi1QQVNTIEEgc2FtZS1v
cmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90
IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0
aGUgb3JpZ2luIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRo
ZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFT
UyBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlw
dCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUg
c3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KIFBBU1MgQSByZW1vdGUtb3JpZ2luLXJl
ZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0
LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KLVBBU1MgQSBz
YW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBz
Y3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0
aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuCitGQUlMIEEgc2FtZS1vcmlnaW4g
d29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3Vs
ZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5
aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xW
RUQiIGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzaG91
bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxv
d3MgaXQuCi1QQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3Jp
Z2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAq
IGRpcmVjdGl2ZSBhbGxvd3MgaXQuCitGQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRp
bmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0
aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3
b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxv
Y2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4KIFBBU1Mg
QSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQg
YmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuCi1QQVNTIEEgc2Ft
ZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2Ny
aXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0
aXZlIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1
c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0LiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBIHJlbW90ZS1vcmln
aW4gd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0
aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuCi1QQVNT
IEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBz
aG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ug
d29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuCitGQUlMIEEgc2FtZS1vcmln
aW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJl
IGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xldHMgb2Jl
eSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNP
TFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IGlt
cG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0
aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQt
c3JjIGRpcmVjdGl2ZS4KIFBBU1MgQSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgd29ya2xldCBz
aG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ug
d29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuCi1QQVNTIEEgc2FtZS1vcmln
aW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNo
b3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3
b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KK0ZBSUwgQSBzYW1lLW9yaWdp
biB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hv
dWxkIG5vdCBiZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdv
cmtsZXRzIG9iZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBbiBpbnNlY3VyZS1vcmln
aW4gd29ya2xldCBzaG91bGQgYmUgYmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLgog
UEFTUyBBbiBpbnNlY3VyZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBiZSBibG9j
a2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuCi1GQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xl
dCBpbXBvcnRpbmcgYW4gaW5zZWN1cmUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBi
ZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNU
RUQiIGJ1dCBnb3QgIlJFU09MVkVEIgotRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0
aW5nIGFuIGluc2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tl
ZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVK
RUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgorUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1w
b3J0aW5nIGFuIGluc2VjdXJlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYmVjYXVz
ZSBvZiBtaXhlZCBjb250ZW50cy4KK1BBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGlu
ZyBhbiBpbnNlY3VyZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQg
YmVjYXVzZSBvZiBtaXhlZCBjb250ZW50cy4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWltcG9y
dC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4
dAppbmRleCBmZTg5NjVhZWY2Y2FkYTIyMTllZjhlMzA4ODhiYTkxZTI0MDE3YWMwLi40YmEwMThm
MmQ4MGY5NGNjOGNhNTQzNTAyN2JiNWI5NjRjMzZkMjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQt
aW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMTYsNyArMTYsMTMgQEAgUEFTUyBJbXBvcnRpbmcgYSBjcm9zcyBvcmln
aW4gcmVzb3VyY2Ugd2l0aCB0aGUgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhlYWQKIFBB
U1MgSW1wb3J0aW5nIGEgY3Jvc3Mgb3JpZ2luIHJlc291cmNlIHdpdGhvdXQgdGhlIEFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbiBoZWFkZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlz
ZQogUEFTUyBJbXBvcnRpbmcgYSBjcm9zcy1vcmlnaW4tcmVkaXJlY3RlZCByZXNvdXJjZSB3aXRo
IHRoZSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4gaGVhZGVyIHNob3VsZCByZXNvbHZlIHRo
ZSBnaXZlbiBwcm9taXNlCiBQQVNTIEltcG9ydGluZyBhIGNyb3NzLW9yaWdpbi1yZWRpcmVjdGVk
IHJlc291cmNlIHdpdGhvdXQgdGhlIEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiBoZWFkZXIg
c2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZQotRkFJTCBJbXBvcnRpbmcgYSBzY3JpcHQg
dGhhdCBoYXMgYSBzeW50YXggZXJyb3Igc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4g
YXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVk
IHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgSW1wb3J0aW5nIGEgbmVzdGVkIHNjcmlwdCB0aGF0IGhh
cyBhIHN5bnRheCBlcnJvciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9taXNlLiBhc3NlcnRf
dW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFj
aGFibGUgY29kZQotRkFJTCBJbXBvcnRpbmcgYSBzY3JpcHQgdGhhdCBpbXBvcnRzIGFuIGludmFs
aWQgaWRlbnRpZmllciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9taXNlLiBhc3NlcnRfdW5y
ZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQorRkFJTCBJbXBvcnRpbmcgYSBzY3JpcHQgdGhhdCBoYXMgYSBzeW50YXggZXJyb3Ig
c2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4gcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiU3ludGF4RXJyb3I6
IFVuZXhwZWN0ZWQgdG9rZW4gJyknIiAoIlN5bnRheEVycm9yIikgZXhwZWN0ZWQgaW5zdGFuY2Ug
b2YgZnVuY3Rpb24gImZ1bmN0aW9uIFN5bnRheEVycm9yKCkgeworICAgIFtuYXRpdmUgY29kZV0K
K30iICgiU3ludGF4RXJyb3IiKQorRkFJTCBJbXBvcnRpbmcgYSBuZXN0ZWQgc2NyaXB0IHRoYXQg
aGFzIGEgc3ludGF4IGVycm9yIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuIHByb21p
c2VfcmVqZWN0c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBv
YmplY3QgIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcpJyIgKCJTeW50YXhFcnJvciIp
IGV4cGVjdGVkIGluc3RhbmNlIG9mIGZ1bmN0aW9uICJmdW5jdGlvbiBTeW50YXhFcnJvcigpIHsK
KyAgICBbbmF0aXZlIGNvZGVdCit9IiAoIlN5bnRheEVycm9yIikKK0ZBSUwgSW1wb3J0aW5nIGEg
c2NyaXB0IHRoYXQgaW1wb3J0cyBhbiBpbnZhbGlkIGlkZW50aWZpZXIgc2hvdWxkIHJlamVjdCB0
aGUgZ2l2ZW4gcHJvbWlzZS4gcHJvbWlzZV9yZWplY3RzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiQWJvcnRFcnJvcjogTW9kdWxlIHNwZWNpZmll
ciwgJ2ludmFsaWQtc3BlY2lmaWVyLmpzJyBkb2VzIG5vdCBzdGFydCB3aXRoICIvIiwgIi4vIiwg
b3IgIi4uLyIuIFJlZmVyZW5jZWQgZnJvbSBibG9iOmh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvZDE2
YzRlNWYtYWRkYi00YmRhLTlmZmEtZjdmYmZkZjA4OTI0IiAoIkFib3J0RXJyb3IiKSBleHBlY3Rl
ZCBpbnN0YW5jZSBvZiBmdW5jdGlvbiAiZnVuY3Rpb24gVHlwZUVycm9yKCkgeworICAgIFtuYXRp
dmUgY29kZV0KK30iICgiVHlwZUVycm9yIikKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVy
cmVyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1yZWZlcnJlci5odHRwcy1leHBlY3Rl
ZC50eHQKaW5kZXggMjRkNDk5YzE0MWNlZTZkYzliMmViZTI0YmZiNGZmNGMwM2EwYTk3My4uNjRi
OWM2NTI4MGNiNWViNGI3MDE1NmM4N2ExZjcyMDU0ZjJhYjQ2MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3Jr
bGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtcmVmZXJyZXIu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsOCBAQAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMv
cmVmZXJyZXItY2hlY2tlci5weT9yZWZlcnJlcl9wb2xpY3k9bm8tcmVmZXJyZXImZXhwZWN0ZWRf
cmVmZXJyZXI9CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxv
Y2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9yZWZlcnJlci1jaGVja2VyLnB5P3JlZmVy
cmVyX3BvbGljeT1vcmlnaW4mZXhwZWN0ZWRfcmVmZXJyZXI9aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0
My8KK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90
IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNv
dXJjZXMvcmVmZXJyZXItY2hlY2tlci5weT9yZWZlcnJlcl9wb2xpY3k9c2FtZS1vcmlnaW4mZXhw
ZWN0ZWRfcmVmZXJyZXI9CitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9z
dDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIAog
UEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMg
Im5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgog
UEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhh
cyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIu
CkBAIC02LDE1ICsxMSwxNSBAQCBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0
IGZyb20gYSBwYWdlIHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbAogUEFTUyBJbXBvcnRp
bmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgInNhbWUtb3JpZ2lu
IiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCiBQQVNTIEltcG9ydGluZyBh
IHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJzYW1lLW9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4KIFBBU1MgSW1wb3J0aW5n
IGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0
aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVm
ZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1l
LW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBv
bGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1v
cmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAi
bm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiQ3Jvc3Mtb3JpZ2luIHNj
cmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3ku
IgogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmln
aW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kg
c2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2lu
IHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8t
cmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCiBQQVNT
IEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xl
dCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJl
ZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2Ft
ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3Jp
cHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSBy
ZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0
aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCi1Q
QVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29y
a2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxk
IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZy
b20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJl
ZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBh
IHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0
aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVm
ZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1v
dGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIg
cG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgorRkFJTCBJbXBvcnRpbmcgYSByZW1vdGUtb3Jp
Z2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9y
aWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBk
ZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1w
b3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQg
c2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZl
cnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJUaGUgb3Bl
cmF0aW9uIHdhcyBhYm9ydGVkLiIKK0ZBSUwgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3Jp
cHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5n
IGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0
aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJl
ci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJUaGUgb3BlcmF0
aW9uIHdhcyBhYm9ydGVkLiIKK0ZBSUwgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQg
ZnJvbSBhIHNhbWUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVu
aWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iCitGQUlMIEltcG9y
dGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNj
cmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNl
bmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAi
VGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmln
aW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJz
YW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQg
bG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94
aHIvb3Blbi11cmwtcmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGly
ZWN0ZWQtd29ya2VyLW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggMWUyZDM5OTJmNmQ1ZGYzMjIw
N2E2YjBmNjE5YTZkNzExODEyNDAwZC4uN2E3YTkxN2VhYTk4ZTkyZWUwM2VjMjhhMTFlNzgwODRk
MjM0Yjg4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy94aHIvb3Blbi11cmwtcmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9v
cGVuLXVybC1yZWRpcmVjdGVkLXdvcmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEs
NiBAQAogQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cyLmxvY2FsaG9z
dDo4ODAwL3hoci9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5P2ZpbHRlcl9uYW1lPW9yaWdp
biZjb3JzCiAKLUZBSUwgUmVmZXJlciBoZWFkZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJl
ZmVyZXI6IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC94aHIvcmVzb3VyY2VzL3dvcmtlcnhoci1vcmln
aW4tcmVmZXJyZXIuanNcbiIgYnV0IGdvdCAiUmVmZXJlcjogaHR0cDovL2xvY2FsaG9zdDo4ODAw
L3hoci9yZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249d29ya2VyeGhyLW9yaWdpbi1yZWZl
cnJlci5qc1xuIgorUEFTUyBSZWZlcmVyIGhlYWRlcgogRkFJTCBPcmlnaW4gaGVhZGVyIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJPcmlnaW46IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMFxuIiBidXQg
Z290ICIiCiBQQVNTIFJlcXVlc3QgVVJMIHRlc3QKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420084</attachid>
            <date>2021-02-11 20:18:34 -0800</date>
            <delta_ts>2021-02-11 20:26:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210211201834.patch</filename>
            <type>text/plain</type>
            <size>235622</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MDMzNjA1Y2FjMDYxMTJjMzYzYWMwMjlmMjYxZDc2OGRjNDEzZmRjLi42ZWUzOWExOTY5ZTA0YjY4
NDIxM2NkY2Q0MGE2NDVmYjBkNzNlZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAyMS0wMi0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcDoK
KyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9yKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlRXJyb3IpOgorICAgICAg
ICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVSYW5nZUVycm9y
KToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVmZXJlbmNlRXJyb3IpOgorICAgICAgICAoSlNDOjpj
cmVhdGVTeW50YXhFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVR5cGVFcnJvcik6CisgICAg
ICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlR2V0dGVyVHlw
ZUVycm9yKToKKyAgICAgICAgKEpTQzo6dGhyb3dTeW50YXhFcnJvcik6CisgICAgICAgICogcnVu
dGltZS9FcnJvci5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6RXJyb3JJ
bnN0YW5jZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VTdHJpbmcpOgorICAgICAgICAo
SlNDOjpFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5nKToKKyAgICAgICAgKEpTQzo6
RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGUpOgorICAg
ICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjplcnJvclR5cGUgY29uc3QpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBl
Pjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8
ZXJyb3JUeXBlPjo6Y2FsbEltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6
SlNXZWJBc3NlbWJseUxpbmtFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
cjo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9y
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04p
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisKIDIwMjEtMDIt
MTEgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogIlNob3cgRXh0ZW5kZWQgR3JpZGxpbmVzIiBvcHRpb24gZm9yIGdyaWQgb3Zl
cmxheSBkb2VzIG5vdCB3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjExZTgzZTAzMDYxMjc3ODNkZjI4NzM0
MDc5MGZlYjJhOTliMjg2ZS4uYTY1Y2RkMzMyYjMyMWI1Y2NmNDZkZWFiYTU3MTkzMmQ4YjJlMTcx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAyMS0wMi0xMSAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2Vycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
OjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlw
dEZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVx
dWVzdFNjcmlwdFdpdGhDYWNoZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01F
eGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXRyaWV2ZUVycm9yTWVz
c2FnZVdpdGhvdXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURPTUV4Y2VwdGlvbik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVj
dDo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyRmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxP
YmplY3Q6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xv
YmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVz
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RP
TVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVySW1w
b3J0TW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZVNj
cmlwdExvYWRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5
cGUuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6Y2xlYXJDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpzY3JpcHRGZXRjaGVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6cGFyYW1ldGVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpNb2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNjcmlwdExvYWRlcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQuaC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmllcik6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1
bGVMb2FkZXI6Om1vZHVsZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2Fk
ZXI6OnJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVM
b2FkZXI6OmltcG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpTY3JpcHRTb3VyY2VDb2RlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6V29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6fldv
cmtlck1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVHlwZS5oLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIuaDog
QWRkZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBkb20vRXhjZXB0
aW9uQ29kZS5oOgorICAgICAgICAqIGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZCk6IERlbGV0ZWQuCisgICAg
ICAgICogZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVs
ZVNjcmlwdCk6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIv
VGhyZWFkYWJsZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXI6Oldvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmlkbDoKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckds
b2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJH
bG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmNyZWRlbnRp
YWxzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVMb2FkZXIpOgorICAgICAg
ICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZVN5bmNocm9u
b3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
U2NyaXB0TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6
OnJlc3BvbnNlU291cmNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExv
YWRlcjo6aXNSZWRpcmVjdGVkIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJQYXJhbWV0ZXJzOjppc29sYXRlZENvcHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpldmFsdWF0ZVNjcmlwdElm
TmVjZXNzYXJ5KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgorICAgICAgICAq
IHdvcmtlcnMvV29ya2VyVHlwZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3Jp
cHRXaXRoQ29udGV4dCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25PcHRpb25zLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
VGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmg6CisgICAgICAgICogd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hB
bmRJbnZva2VTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpw
cm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpub3RpZnlGaW5pc2hlZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmRpZENvbXBsZXRl
U2NyaXB0RmV0Y2hKb2IpOiBEZWxldGVkLgorICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9i
YWxTY29wZS5oOgorCiAyMDIxLTAyLTExICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyNzI3NTg7IGluY2x1ZGUg
bWlzc2luZyBjaGFuZ2UgdG8gUnVudGltZUVuYWJsZWRGZWF0dXJlcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcAppbmRleCA3NTlhNWIyNGEw
ZWQwODY4MGNjYWE2MzQwZDJlOTVkNDUwYjgwZmQ2Li4yOTZjODVjYzkwZTA1YjU0NTQ3ZjY2MmE3
ZTJmOGExZTEzMGE0NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BZ2dyZWdhdGVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QWdncmVnYXRlRXJyb3IuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogY29u
c3QgQ2xhc3NJbmZvIEFnZ3JlZ2F0ZUVycm9yOjpzX2luZm8gPSB7ICJBZ2dyZWdhdGVFcnJvciIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQWdn
cmVnYXRlRXJyb3IpIH07CiAKIEFnZ3JlZ2F0ZUVycm9yOjpBZ2dyZWdhdGVFcnJvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDog
QmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5cGU6OkFnZ3JlZ2F0ZUVycm9yKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKaW5kZXggZjQ3M2I4MTgxZWMyZjAy
YTBjYzc4YTI2YzBjMjBkYzk2MzFmZGM3NC4uZmNhY2YxZTMyMmViMjcyNzg3NGZmMjUyNjI0MWVk
N2JlOThjZTUzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcApAQCAt
MzUsMzcgKzM1LDM3IEBAIG5hbWVzcGFjZSBKU0MgewogSlNPYmplY3QqIGNyZWF0ZUVycm9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJ
bnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdl
LmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpLCBt
ZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJldHVybiBFcnJvcklu
c3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9i
amVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBF
cnJvclR5cGU6OkVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZUV2YWxFcnJvcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9y
SW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2Fn
ZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJy
b3JUeXBlOjpFdmFsRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUp
OworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpFdmFs
RXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXZhbEVy
cm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVJhbmdlRXJyb3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpT
b3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgp
KTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmFu
Z2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJhbmdlRXJyb3IpLCBt
ZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6UmFuZ2VFcnJvciwgdHJ1
ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVSZWZlcmVuY2VFcnJvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJj
ZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwot
ICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpSZWZlcmVu
Y2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9y
KSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlJlZmVyZW5jZUVy
cm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6
U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHko
KSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2Jh
bE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlN5
bnRheEVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsKKyAgICBy
ZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52
bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6U3ludGF4RXJyb3Ip
LCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6U3ludGF4RXJyb3Is
IHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNl
QXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUpCiB7CiAgICAgQVNTRVJUKCFtZXNz
YWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBlLCB0cnVlKTsKKyAg
ICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9y
KSwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIEVycm9yVHlwZTo6VHlwZUVycm9yLCB0cnVlKTsK
IH0KIAogSlNPYmplY3QqIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVy
KQpAQCAtNzYsNyArNzYsNyBAQCBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JJbnN0YQogSlNPYmplY3QqIGNy
ZWF0ZVVSSUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAg
QVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNy
ZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJv
clN0cnVjdHVyZShFcnJvclR5cGU6OlVSSUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVO
b3RoaW5nLCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVy
cm9yVHlwZTo6VVJJRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9y
VHlwZTo6VVJJRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlRXJyb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JUeXBlIGVycm9yVHlwZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQpAQCAtMTEzLDcgKzExMyw3IEBAIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5cGVXaXRoRXh0ZW5zaW9uIGVycm9yCiBK
U09iamVjdCogY3JlYXRlR2V0dGVyVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0
eSgpKTsKLSAgICBhdXRvKiBlcnJvciA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJv
clR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UpOworICAgIGF1dG8qIGVycm9yID0gRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmpl
Y3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yKTsKICAgICBlcnJvci0+c2V0TmF0
aXZlR2V0dGVyVHlwZUVycm9yKCk7CiAgICAgcmV0dXJuIGVycm9yOwogfQpAQCAtMjc0LDcgKzI3
NCw3IEBAIEV4Y2VwdGlvbiogdGhyb3dUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0CiAKIEV4Y2VwdGlvbiogdGhyb3dTeW50YXhF
cnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSkKIHsK
LSAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlU3lu
dGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCAiU3ludGF4IGVycm9yIl9zKSk7CisgICAgcmV0dXJuIHRo
cm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVN5bnRheEVycm9yKGdsb2Jh
bE9iamVjdCkpOwogfQogCiBFeGNlcHRpb24qIHRocm93U3ludGF4RXJyb3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKQEAgLTMxNyw2ICszMTcsMTEgQEAgSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICByZXR1
cm4gY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBudWxscHRyKTsKIH0K
IAorSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgcmV0dXJuIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgIlN5bnRh
eCBlcnJvciJfcywgbnVsbHB0cik7Cit9CisKIEpTT2JqZWN0KiBjcmVhdGVUeXBlRXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gY3JlYXRlVHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgIlR5cGUgZXJyb3IiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yLmgKaW5kZXggNmRhYTE1NDIxNTY2NjEwZTRhY2U2ZGUzMzVmMzRkM2JmN2M3NDQ0ZC4u
ZGM4MjUyODJjMzU2NDg3MTMyNTQ1NDRiYzhkODE4ODg0MDBlNDM4YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvci5oCkBAIC01NSw2ICs1NSw3IEBAIEpTX0VYUE9SVF9QUklWQVRF
IEpTT2JqZWN0KiBjcmVhdGVFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcm
KTsKIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVSYW5nZUVycm9yKEpTR2xvYmFs
T2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3Jl
YXRlUmVmZXJlbmNlRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmKTsKIEpTX0VY
UE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVTeW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCos
IGNvbnN0IFN0cmluZyYpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZVN5bnRh
eEVycm9yKEpTR2xvYmFsT2JqZWN0Kik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3Jl
YXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0Kik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVj
dCogY3JlYXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CiBKU19F
WFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoSlNH
bG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMGYyZjVhMzE4NDAyZmJiN2M3ZDg4MDJiNmQ3ODQyZWZl
NDA2Yzg0Ni4uOWJlOTMwY2YxYzNjOWE0MGU2MDg1OTgzNTU4YTFhNTliYzc4YjYyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
QEAgLTYwLDE0ICs2MCwxNCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXJy
b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAgICA6IElu
dGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3
VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5lcnJvclN0cnVjdHVyZSgp
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5n
LCBmYWxzZSkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSkpOwog
fQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEVycm9yQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
SlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUq
IGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
ZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJv
clR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBib29sIEVycm9yQ29uc3RydWN0b3I6OnB1dChK
U0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKaW5kZXggMmU0
ZWMzOWYxMjA1OGIyNTA4NzIyZTBiODI1MjI0N2JlYjAzMTllNi4uMGY4NmUyMmI5MmRkZDZkMTM5
ODU4Yjg2ZTU2Y2VhZGNhZWNlMGQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTM0LDE4ICszNCwyMyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogY29uc3QgQ2xhc3NJbmZvIEVycm9ySW5zdGFuY2U6OnNfaW5mbyA9IHsgIkVycm9yIiwg
JkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShFcnJvckluc3RhbmNlKSB9OwogCi1FcnJvckluc3RhbmNlOjpFcnJvckluc3RhbmNl
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitFcnJvckluc3RhbmNlOjpFcnJvckluc3Rh
bmNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVycm9yVHlwZSBlcnJvclR5cGUpCiAg
ICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgLCBtX2Vycm9yVHlwZShlcnJvclR5cGUpCisg
ICAgLCBtX3N0YWNrT3ZlcmZsb3dFcnJvcihmYWxzZSkKKyAgICAsIG1fb3V0T2ZNZW1vcnlFcnJv
cihmYWxzZSkKKyAgICAsIG1fZXJyb3JJbmZvTWF0ZXJpYWxpemVkKGZhbHNlKQorICAgICwgbV9u
YXRpdmVHZXR0ZXJUeXBlRXJyb3IoZmFsc2UpCiB7CiB9CiAKLUVycm9ySW5zdGFuY2UqIEVycm9y
SW5zdGFuY2U6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNWYWx1ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciwgUnVu
dGltZVR5cGUgdHlwZSwgYm9vbCB1c2VDdXJyZW50RnJhbWUpCitFcnJvckluc3RhbmNlKiBFcnJv
ckluc3RhbmNlOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1
bnRpbWVUeXBlIHR5cGUsIEVycm9yVHlwZSBlcnJvclR5cGUsIGJvb2wgdXNlQ3VycmVudEZyYW1l
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNz
YWdlLmlzVW5kZWZpbmVkKCkgPyBTdHJpbmcoKSA6IG1lc3NhZ2UudG9XVEZTdHJpbmcoZ2xvYmFs
T2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBy
ZXR1cm4gY3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZVN0cmluZywg
YXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CisgICAgcmV0dXJuIGNyZWF0ZShnbG9i
YWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2VTdHJpbmcsIGFwcGVuZGVyLCB0eXBlLCBl
cnJvclR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgYXBwZW5kU291
cmNlVG9FcnJvck1lc3NhZ2UoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVycm9ySW5zdGFuY2UqIGV4
Y2VwdGlvbiwgQnl0ZWNvZGVJbmRleCBieXRlY29kZUluZGV4LCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCkBAIC0xMzEsNyArMTM2LDI1IEBAIHZvaWQgRXJyb3JJbnN0YW5jZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTCiAvLyBCYXNl
ZCBvbiBFcnJvclByb3RvdHlwZSdzIGVycm9yUHJvdG9GdW5jVG9TdHJpbmcoKSwgYnV0IGlzIG1v
ZGlmaWVkIHRvCiAvLyBoYXZlIG5vIG9ic2VydmFibGUgc2lkZSBlZmZlY3RzIHRvIHRoZSB1c2Vy
IChpLmUuIGRvZXMgbm90IGNhbGwgcHJveGllcywKIC8vIGFuZCBnZXR0ZXJzKS4KLVN0cmluZyBF
cnJvckluc3RhbmNlOjpzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQorU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VTdHJpbmcoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEludGVn
cml0eTo6YXVkaXRTdHJ1Y3R1cmVJRCh2bSwgc3RydWN0dXJlSUQoKSk7CisKKyAgICBKU1ZhbHVl
IG1lc3NhZ2VWYWx1ZTsKKyAgICBhdXRvIG1lc3NhZ2VQcm9wZXJ0TmFtZSA9IHZtLnByb3BlcnR5
TmFtZXMtPm1lc3NhZ2U7CisgICAgUHJvcGVydHlTbG90IG1lc3NhZ2VTbG90KHRoaXMsIFByb3Bl
cnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnksICZ2bSk7CisgICAgaWYgKEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUHJv
cGVydE5hbWUsIG1lc3NhZ2VTbG90KSAmJiBtZXNzYWdlU2xvdC5pc1ZhbHVlKCkpCisgICAgICAg
IG1lc3NhZ2VWYWx1ZSA9IG1lc3NhZ2VTbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgbWVzc2Fn
ZVByb3BlcnROYW1lKTsKKyAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOworCisgICAgaWYg
KCFtZXNzYWdlVmFsdWUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIG1lc3NhZ2VWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpKTsK
K30KKworU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZE5hbWVTdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU3LDI4ICsx
ODAsMjIgQEAgU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgfQogICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9u
KCk7CiAKLSAgICBTdHJpbmcgbmFtZVN0cmluZzsKICAgICBpZiAoIW5hbWVWYWx1ZSkKLSAgICAg
ICAgbmFtZVN0cmluZyA9ICJFcnJvciJfczsKLSAgICBlbHNlIHsKLSAgICAgICAgbmFtZVN0cmlu
ZyA9IG5hbWVWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7Ci0gICAgfQorICAgICAgICByZXR1cm4gIkVy
cm9yIl9zOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbmFtZVZhbHVlLnRvV1RGU3Ry
aW5nKGdsb2JhbE9iamVjdCkpOworfQogCi0gICAgSlNWYWx1ZSBtZXNzYWdlVmFsdWU7Ci0gICAg
YXV0byBtZXNzYWdlUHJvcGVydE5hbWUgPSB2bS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlOwotICAg
IFByb3BlcnR5U2xvdCBtZXNzYWdlU2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0
aG9kVHlwZTo6Vk1JbnF1aXJ5LCAmdm0pOwotICAgIGlmIChKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVByb3BlcnROYW1lLCBtZXNzYWdlU2xv
dCkgJiYgbWVzc2FnZVNsb3QuaXNWYWx1ZSgpKQotICAgICAgICBtZXNzYWdlVmFsdWUgPSBtZXNz
YWdlU2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSk7Ci0gICAg
c2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKK1N0cmluZyBFcnJvckluc3RhbmNlOjpzYW5pdGl6
ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisgICAgSW50ZWdyaXR5OjphdWRpdFN0cnVjdHVyZUlEKHZtLCBzdHJ1Y3R1cmVJRCgp
KTsKIAotICAgIFN0cmluZyBtZXNzYWdlU3RyaW5nOwotICAgIGlmICghbWVzc2FnZVZhbHVlKQot
ICAgICAgICBtZXNzYWdlU3RyaW5nID0gU3RyaW5nKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIG1l
c3NhZ2VTdHJpbmcgPSBtZXNzYWdlVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKLSAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgU3RyaW5nKCkpOwotICAgIH0KKyAgICBT
dHJpbmcgbmFtZVN0cmluZyA9IHNhbml0aXplZE5hbWVTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7CisKKyAgICBTdHJpbmcgbWVz
c2FnZVN0cmluZyA9IHNhbml0aXplZE1lc3NhZ2VTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7CiAKICAgICBpZiAoIW5hbWVTdHJp
bmcubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBtZXNzYWdlU3RyaW5nOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCmluZGV4IGRhNjZlYjc2ZTdhZGU5
MGZkNDFiYjE2MjcwNzI1YTdkMTQ3MGFkMzguLjk4NzEzNTcyMWIzMDU2NjIzMGQyNjFjODMzYWQ4
ZGVjYTU0NjE0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvcklu
c3RhbmNlLmgKQEAgLTIwLDYgKzIwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJF
cnJvclR5cGUuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVUeXBl
LmgiCiAjaW5jbHVkZSAiU3RhY2tGcmFtZS5oIgpAQCAtNTMsMTQgKzU0LDE0IEBAIGNsYXNzIEVy
cm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEVy
cm9ySW5zdGFuY2VUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCi0gICAg
c3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNv
dXJjZUFwcGVuZGVyIGFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVO
b3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpCisgICAgc3RhdGljIEVycm9ySW5z
dGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFw
cGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVOb3RoaW5nLCBFcnJvclR5
cGUgZXJyb3JUeXBlID0gRXJyb3JUeXBlOjpFcnJvciwgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0
cnVlKQogICAgIHsKLSAgICAgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcgKE5vdE51
bGwsIGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPih2bS5oZWFwKSkgRXJyb3JJbnN0YW5jZSh2
bSwgc3RydWN0dXJlKTsKKyAgICAgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPih2bS5oZWFwKSkgRXJyb3JJbnN0YW5j
ZSh2bSwgc3RydWN0dXJlLCBlcnJvclR5cGUpOwogICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3Jl
YXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJl
bnRGcmFtZSk7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICB9CiAKLSAgICBzdGF0aWMg
RXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNWYWx1
ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5v
dGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7CisgICAgc3RhdGljIEVycm9ySW5z
dGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpTVmFsdWUgbWVzc2Fn
ZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBF
cnJvclR5cGUgPSBFcnJvclR5cGU6OkVycm9yLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUp
OwogCiAgICAgYm9vbCBoYXNTb3VyY2VBcHBlbmRlcigpIGNvbnN0IHsgcmV0dXJuICEhbV9zb3Vy
Y2VBcHBlbmRlcjsgfQogICAgIFNvdXJjZUFwcGVuZGVyIHNvdXJjZUFwcGVuZGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2VBcHBlbmRlcjsgfQpAQCAtNzAsNiArNzEsNyBAQCBjbGFzcyBFcnJv
ckluc3RhbmNlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIFJ1bnRpbWVUeXBlIHJ1
bnRpbWVUeXBlRm9yQ2F1c2UoKSBjb25zdCB7IHJldHVybiBtX3J1bnRpbWVUeXBlRm9yQ2F1c2U7
IH0KICAgICB2b2lkIGNsZWFyUnVudGltZVR5cGVGb3JDYXVzZSgpIHsgbV9ydW50aW1lVHlwZUZv
ckNhdXNlID0gVHlwZU5vdGhpbmc7IH0KIAorICAgIEVycm9yVHlwZSBlcnJvclR5cGUoKSBjb25z
dCB7IHJldHVybiBtX2Vycm9yVHlwZTsgfQogICAgIHZvaWQgc2V0U3RhY2tPdmVyZmxvd0Vycm9y
KCkgeyBtX3N0YWNrT3ZlcmZsb3dFcnJvciA9IHRydWU7IH0KICAgICBib29sIGlzU3RhY2tPdmVy
Zmxvd0Vycm9yKCkgY29uc3QgeyByZXR1cm4gbV9zdGFja092ZXJmbG93RXJyb3I7IH0KICAgICB2
b2lkIHNldE91dE9mTWVtb3J5RXJyb3IoKSB7IG1fb3V0T2ZNZW1vcnlFcnJvciA9IHRydWU7IH0K
QEAgLTc5LDYgKzgxLDggQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKICAgICBib29sIGlzTmF0aXZlR2V0dGVyVHlwZUVycm9yKCkgY29uc3QgeyByZXR1
cm4gbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3I7IH0KIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0
cmluZyBzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCopOworICAgIEpTX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyBzYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKEpTR2xvYmFsT2JqZWN0Kik7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHNhbml0aXplZE5hbWVTdHJpbmcoSlNHbG9iYWxP
YmplY3QqKTsKICAgICAKICAgICBWZWN0b3I8U3RhY2tGcmFtZT4qIHN0YWNrVHJhY2UoKSB7IHJl
dHVybiBtX3N0YWNrVHJhY2UuZ2V0KCk7IH0KIApAQCAtODgsNyArOTIsNyBAQCBjbGFzcyBFcnJv
ckluc3RhbmNlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgZmluYWxpemVV
bmNvbmRpdGlvbmFsbHkoVk0mKTsKIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEVycm9ySW5z
dGFuY2UoVk0mLCBTdHJ1Y3R1cmUqKTsKKyAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKFZNJiwg
U3RydWN0dXJlKiwgRXJyb3JUeXBlKTsKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBK
U0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwg
UnVudGltZVR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsK
IApAQCAtMTA4LDEwICsxMTIsMTEgQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKICAgICBTdHJpbmcgbV9zb3VyY2VVUkw7CiAgICAgU3RyaW5nIG1fc3Rh
Y2tTdHJpbmc7CiAgICAgUnVudGltZVR5cGUgbV9ydW50aW1lVHlwZUZvckNhdXNlIHsgVHlwZU5v
dGhpbmcgfTsKLSAgICBib29sIG1fc3RhY2tPdmVyZmxvd0Vycm9yIHsgZmFsc2UgfTsKLSAgICBi
b29sIG1fb3V0T2ZNZW1vcnlFcnJvciB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2Vycm9ySW5mb01h
dGVyaWFsaXplZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX25hdGl2ZUdldHRlclR5cGVFcnJvciB7
IGZhbHNlIH07CisgICAgRXJyb3JUeXBlIG1fZXJyb3JUeXBlIHsgRXJyb3JUeXBlOjpFcnJvciB9
OworICAgIGJvb2wgbV9zdGFja092ZXJmbG93RXJyb3IgOiAxOworICAgIGJvb2wgbV9vdXRPZk1l
bW9yeUVycm9yIDogMTsKKyAgICBib29sIG1fZXJyb3JJbmZvTWF0ZXJpYWxpemVkIDogMTsKKyAg
ICBib29sIG1fbmF0aXZlR2V0dGVyVHlwZUVycm9yIDogMTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDQwMjFmYzdlMGFkYWY3YTBhOWUwZWY2Y2ZkMjI1
ODM4YjViZjg3ODMuLmFmNzI2MjgzMWNhMWJiNzVjNmFlNTU0MTFkZTRjZDg1YTgxMzdkYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5jcHAKQEAgLTY5NCw3ICs2OTQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yQXJndW1lbnRzQ2FsbGVlQW5kQ2FsbGVyLCAo
SlNHbAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNNYWtlVHlwZUVycm9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0
dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVy
cm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVy
cm9yU3RydWN0dXJlLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBudWxscHRyLCBUeXBlTm90aGlu
ZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIGZhbHNlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihnbG9iYWxGdW5jUHJvdG9HZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDdjYzExYjVm
NWUxMjk3MjIwMTZiODY3MWYxMzdjNmJiMTcyMTM4NDAuLmI2ZTdlZGVmZDQyZWRjNjM1ZDkwYjdl
MGU4YzdiNGZjMGMyNDNkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC01OCw3ICs1OCw3IEBAIGlu
bGluZSBFbmNvZGVkSlNWYWx1ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNv
bnN0cnVjdEltcGwoSlNHbG9iYWxPCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKICAgICBBU1NFUlQoZXJyb3JTdHJ1Y3R1cmUpOwogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkp
KTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvcklu
c3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVs
bHB0ciwgVHlwZU5vdGhpbmcsIGVycm9yVHlwZSwgZmFsc2UpKSk7CiB9CiAKIHRlbXBsYXRlPEVy
cm9yVHlwZSBlcnJvclR5cGU+CkBAIC02Niw3ICs2Niw3IEBAIGlubGluZSBFbmNvZGVkSlNWYWx1
ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNhbGxJbXBsKEpTR2xvYmFsT2Jq
ZWN0CiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAg
ICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVy
ZShlcnJvclR5cGUpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6
Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5
cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxw
dHIsIFR5cGVOb3RoaW5nLCBlcnJvclR5cGUsIGZhbHNlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjYWxsRXZhbEVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKaW5kZXggMjZmM2I2YThmOWRiNjc4Y2Q5NGQw
NWFlODhiMTFiODllNjFjMGViYy4uMGRkYjJjNmE1MGY0NmJjNjM2OTk1Y2E0NmQ3ZjE4ZTViMjY4
NjNlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRl
ckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0
dGVyRnVuY3Rpb24uY3BwCkBAIC05NCw3ICs5NCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihjYWxsVGhyb3dFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIC8vIFRoaXMg
ZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgZnJvbSBJQy4gQW5kIHdlIGRvIG5vdCB3YW50IHRvIGlu
Y2x1ZGUgdGhpcyBmcmFtZSBpbiBFcnJvcidzIHN0YWNrLgogICAgIGNvbnN0ZXhwciBib29sIHVz
ZUN1cnJlbnRGcmFtZSA9IGZhbHNlOwotICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwg
c2NvcGUsIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmpl
Y3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgUmVhZG9ubHlQcm9wZXJ0
eVdyaXRlRXJyb3IsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUpKTsKKyAg
ICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5
cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yLCBudWxscHRyLCBUeXBl
Tm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIHVzZUN1cnJlbnRGcmFtZSkpOwogICAgIHJl
dHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKaW5kZXggMzgzNzNhNzYwZDU5ZDBl
ZWRiNDk0ZGI4OGQ4NTI0ZmFiOWE1MTU0ZS4uOWViZDNkNDQ2YTlkYTlhZDE5ZDdiYTQxOTkwMDYz
ZmM1YTYzMjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgSlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvciogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6Y3JlYXRl
KEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6SlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5
cGU6OkVycm9yKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwCmluZGV4IGVhZGUwMzQxM2U0Y2UzNjBi
YTA4OWY4YzUzZDE4Y2Y4ZDZkNzAyMzUuLjliMjAwNThlY2YzNGFmOTFiNmIxOGQxNWY2NTE1Nzg1
YzIxNzJlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEpTV2ViQXNzZW1i
bHlMaW5rRXJyb3IqIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OmNyZWF0ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqCiB9CiAKIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OkpTV2ViQXNzZW1ibHlM
aW5rRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgRXJyb3JUeXBlOjpFcnJvcikKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5UnVudGltZUVycm9yLmNwcAppbmRleCBiZTFmOTI4NjAzMDQ1ZDdjZjcyOTMyNGVl
NGE3N2FlODNmY2U5Y2JlLi4xOTMzYTZlMzg4OGZiZWFjY2YwN2FjMmIzN2M3NDUwNDg0ZmE1MWYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5UnVudGltZUVycm9yLmNwcApAQCAtNDEsNyArNDEsNyBAQCBKU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yKiBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxP
YmplY3QqIGdsbwogfQogCiBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpKU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6RXJyb3Ip
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNWNk
MDAzNWEwMWZkYjc4ZGRjMzVmYzQ3YjZiODU4MGJlNDVkMzU5Ny4uYzNhMGQzOTdmNTA0ZTI1OGYx
ZDcwZjhiNDgyYjc5YTFkOWU3MjY2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxK
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIHsKICAg
ICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVy
ZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5Q29tcGlsZUVycm9y
U3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlw
ZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3Rh
bmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3Ry
dWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3NlbWJseUNv
bXBpbGVFcnJvclByb3RvdHlwZSogdGhpc1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggOTQ2ZGVmNGYxMTUyMjlhMjI1YmU5MzJhYzllNjQzNWI2YzhhYjJh
OS4uMmM1ZjZhMjkzMWYxNTIxNTg1YWFhOTM1ZTU2YjRiZDJmMTljMTZiMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlM
aW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamUKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
OwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2Vt
Ymx5TGlua0Vycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJv
ckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwg
bnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9
CiAKIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5TGlua0Vycm9y
Q29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3Nl
bWJseUxpbmtFcnJvclByb3RvdHlwZSogdGhpc1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggM2RmZDkxNTY3YjYwYTU4ZGQ5YWE2ODQyZmY2Nzkw
MjFmNWNiOTI1Mi4uYTg1NjY5YzUxOGIxZTlhYTY4Yzk1YWQwNTY2ZWJmZDZmYzNkZmE4YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTY3LDcgKzY3LDcgQEAg
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxP
YmplY3QtPndlYkFzc2VtYmx5UnVudGltZUVycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0
cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBl
cnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6
RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3Iq
IFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSogdGhpc1By
b3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGY4ODU5MTVmZThiZTc5ZTUxMjU4ZmZmOGQ4
MzE4MmM5NWQ3ZDMyY2IuLjlkYjk3ZWQ3MTIwZjM3YjJmYmJmNWZiN2MyZGVjNDQ3ZDg4ZmY2YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMzAsNiArMzAsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVy
LmgKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5oCisgICAgTW9kdWxlcy9mZXRj
aC9GZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRl
cnMuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hJZGVudGlmaWVyLmgKICAgICBNb2R1bGVzL2Zl
dGNoL0ZldGNoTG9hZGVyLmgKQEAgLTI4Nyw2ICsyODgsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgYmluZGluZ3MvanMvV2ViQ29yZUpJVE9wZXJhdGlvbnMu
aAogICAgIGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oCiAgICAgYmlu
ZGluZ3MvanMvV2luZG93UHJveHkuaAorICAgIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNo
ZXIuaAogCiAgICAgYnJpZGdlL0JyaWRnZS5oCiAgICAgYnJpZGdlL0lkZW50aWZpZXJSZXAuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCAwNDVjZjI3MDZjMDM2N2U0Y2Y5MGIzMmRkZDc5MTQ2ZDVmYTExZGZm
Li43ODBmNzMxNzdkNTQ2Y2Y4YmE0ZjM0NWEzOTBkNzcxZmQ0ZjY1MzY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtNjM5LDYgKzYzOSw3IEBAIGJpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5jcHAKIGJp
bmRpbmdzL2pzL1dlYkNvcmVKSVRPcGVyYXRpb25zLmNwcAogYmluZGluZ3MvanMvV2ViQ29yZUpT
Q2xpZW50RGF0YS5jcHAKIGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5j
cHAKK2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKIGJpbmRpbmdzL2pz
L1dpbmRvd1Byb3h5LmNwcAogYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uY3BwCiBicmlkZ2Uv
SWRlbnRpZmllclJlcC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA4YzE1ZWI2NDgwMzczMDU4MDdiNzAzZDBiZGJhYjNmM2Jm
YTU3MTViLi4yM2U5MGI1ZWVlNzY4MTJiOTNkMWNjNTdkNmE3NzhkMTY1MjcwYzVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
MDY5LDE1ICs1MDY5LDE4IEBACiAJCUUzMDU5MjY0MUUyN0EzQUQwMEQ1N0M5OCAvKiBJbmxpbmVD
bGFzc2ljU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzA1OTI2MjFFMjdBMzhDMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDU5MjY4
MUUyN0EzRDEwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTgg
LyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUUzMDdERUQwMUQ4MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzMDdERUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlF
MzA3REVEMTFEODFFNENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVD
ODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwN0RFRDUx
RDgxRTRGMjAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYg
LyogTG9hZGFibGVNb2R1bGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFMzE1MEVBNzFEQTcyMTkzMDAxOTQwMTIgLyogRE9NSklUSGVs
cGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMx
NTBFQTUxREE3MjE4RDAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCAqLzsgfTsKIAkJRTMyMDFD
MUExRjhFODIxMzAwNzZBMDMyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4RDA2MDkxRjhFODExOTAwNjQ5
Q0YyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMjNDRkZBMUU1QUY2QUYwMEYwQjRBMCAvKiBKU0RP
TUNvbnZlcnRQcm9taXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzIzQ0ZGOTFFNUFGNkE1MDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzNDMy
REU0MjVEMzc3RTMwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDMyREUwMjVEMzc3RTIw
MDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLzsgfTsKKwkJRTM0N0U1RkEy
NUQ0RjAwMDAwRjE3QTVDIC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDdFNUY4MjVENEYwMDAwMEYxN0E1QyAv
KiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJRTM1MTg4QjQyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTM1MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUz
NTY1QjdCMURDMkQ2QzkwMDIxN0RCRCAvKiBKU0V2ZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRFRTQ5RjFEQzJENTc1MDBFQUE5RDMg
LyogSlNFdmVudEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzNTgwMkI2MURDODQzNUQwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmls
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4
MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNTgyQzI4MjUyN0Y2Njkw
MEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODJDMjYyNTI3RjY2ODAwRDFCNzkwIC8qIFdlYkNv
cmVKSVRPcGVyYXRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTM1QjkwN0YyM0Y2MEE1MDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1v
ZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVC
OTA3QzIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzY0MzIxQzI1RDM3QTY3
MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyogTW9kdWxl
U2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTM3N0ZFNEQxREFERTE2NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFudHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0OTkzMURBREMw
NDUwMDcxOEYzQyAvKiBOb2RlQ29uc3RhbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNBIC8qIEpTRE9N
UHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzOTYyOEJGMjM5NTcyOEYwMDY1
OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhCRDIzOTU3MjhFMDA2NThFQ0Qg
LyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNjE5NSw3ICsxNjE5OCw2IEBACiAJCUUz
MDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFQzYxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMzA3REVDODFEODFFNDQ4MDAx
NDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVEMjFEODFFNEVEMDAxNDFDQUYgLyogTG9h
ZGFibGVNb2R1bGVTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYgLyogTG9hZGFibGVNb2R1bGVTY3JpcHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9hZGFibGVNb2R1bGVTY3JpcHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMxNTBFQTUxREE3MjE4RDAwMTk0MDEyIC8qIERP
TUpJVEhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSGVs
cGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyMDgsMTIgKzE2MjEwLDE3
IEBACiAJCUUzMjkyNzYzMjI1NDNGNTkwMDMwOEE5QSAvKiBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGVkT01DU1NVbml0VmFsdWUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzI5Mjc2NjIyNTQzRkRFMDAzMDhBOUEgLyogRE9NUmVjdFJl
YWRPbmx5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3RSZWFkT25seS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMzQ4MjVFMURDOTNBQTAwMDlDOTU0NCAvKiBET01K
SVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvRE9NSklUQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OworCQlFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2Vy
TW9kdWxlU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MzQzMkRFMzI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlck1vZHVsZVNjcmlwdExv
YWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNDdFNUY4MjVENEYwMDAw
MEYxN0E1QyAvKiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdvcmtlclNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZlbnRDdXN0b20uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFdmVudEN1c3RvbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4MDJC
NTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRJRExUeXBlRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzNTgyQzI0MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3Bl
cmF0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3Jl
SklUT3BlcmF0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTgyQzI2
MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlSklUT3BlcmF0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMzVCOTA3QzIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2
aWNlTW9kZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemVkRGV2
aWNlTW9kZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1QjkwN0UyM0Y2MDY3
NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxpemVkRGV2aWNlTW9kZWwubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzNjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1bGVTY3Jp
cHRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlU2NyaXB0
TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzN0M4NjRGMUVCNjNFMkQw
MDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNET01Qcm9taXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzODgzODk0
MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1v
ZHVsZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRNb2R1
bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3MDA5LDcgKzI3MDE2
LDYgQEAKIAkJCQkyREZBNDg4RTFEQjU0MUMyMDAzNjJCOTkgLyogQnVmZmVyU291cmNlLmggKi8s
CiAJCQkJRTMwN0RFQzYxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5jcHAgKi8sCiAJCQkJRTMwN0RFQzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5oICovLAotCQkJCUUzMDdERUM4MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLywKIAkJCQlFMzA1OTI2NTFFMjdBM0M2MDBENTdD
OTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAgKi8sCiAJCQkJRTMwNTkyNjYxRTI3QTNDNjAw
RDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLywKIAkJCQlCQ0Q1MzM2MzBFRDY4NDg5
MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLywKQEAgLTI3MDgzLDYg
KzI3MDg5LDggQEAKIAkJCQk0QkRFQTMyRDIxODAzNDA1MDA1MkRGQ0QgLyogSlNXb3JrbGV0R2xv
YmFsU2NvcGVCYXNlLmNwcCAqLywKIAkJCQk0QkRFQTMyQjIxODAzM0VCMDA1MkRGQ0QgLyogSlNX
b3JrbGV0R2xvYmFsU2NvcGVCYXNlLmggKi8sCiAJCQkJNzA5QTAxRkQxRTNEMEJDQzAwNkIwRDRD
IC8qIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQuaCAqLywKKwkJCQlFMzY0MzIxQTI1RDM3QTY2MDBG
OTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8sCisJCQkJRTM1MTg4QjMyNUQzODdDRjAw
QTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovLAogCQkJCTQxQjQ1OUVEMUY1
NUVCQzcwMDAwRjZGRCAvKiBSZWFkYWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDFCNDU5REExRjRD
QURCOTAwMDBGNkZEIC8qIFJlYWRhYmxlU3RyZWFtLmggKi8sCiAJCQkJNDE4QzM5NUUxQzhGMEFB
QjAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwICovLApAQCAt
MjcxMTQsNiArMjcxMjIsOSBAQAogCQkJCTBGMDk5RDA3MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJD
b3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAqLywKIAkJCQk0NjM1MjFBQzIwODEwOTBFMDBDMjg5
MjIgLyogV2luZG93UHJveHkuY3BwICovLAogCQkJCTQ2MzUyMUFBMjA4MTA5MEIwMEMyODkyMiAv
KiBXaW5kb3dQcm94eS5oICovLAorCQkJCUUzNDMyREUzMjVEMzc3RTMwMDU4RTYxMiAvKiBXb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwICovLAorCQkJCUUzNDMyREUwMjVEMzc3RTIwMDU4RTYx
MiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLywKKwkJCQlFMzQ3RTVGODI1RDRGMDAw
MDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5oICovLAogCQkJCTQxNDE4QTAzMjU2NDNF
MTIwMDM2MzQxNyAvKiBXcml0YWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDE0MThBMDQyNTY0M0Ux
MzAwMzYzNDE3IC8qIFdyaXRhYmxlU3RyZWFtLmggKi8sCiAJCQkpOwpAQCAtMzEzODcsNyArMzEz
OTgsNiBAQAogCQkJCUJDQjE2QzFDMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRJbWFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzE5RkJENUYxNUQyRjQ2NDAwOTY0MEE2IC8qIENhY2hlZEltYWdl
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA3REVEMDFEODFFNEM3MDAxNDFDQUYgLyog
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMzA3REVEMTFE
ODFFNENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTAxODQ2OTBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRDBFREE3NzUxNDNFMzAzQzAwMjhFMzgzIC8qIENhY2hlZFJhd1Jl
c291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUI1MzM0OTE3MTdERUUzMDBGMjA1RjkgLyog
Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzM4NjIsNiArMzM4
NzIsOCBAQAogCQkJCUM2RDc0QUQ1MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25M
aXN0TGV2ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwOUEwMUZFMUUzRDBCREQwMDZCMEQ0QyAv
KiBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzIwMUMxQTFG
OEU4MjEzMDA3NkEwMzIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMzY0MzIxQzI1RDM3QTY3MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMzUxODhCNDI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RDNjEyNTFGMTJEMDAzRUYy
NjkgLyogTW9udGhJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOTYyOEMxMjM5NTc0
MzEwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NTAzMUI0NjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zNTUxMiw2ICszNTUyNCw3IEBACiAJCQkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdv
cmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBC
MEYxQkEgLyogV29ya2VyTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUwMEY1
NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTM0MzJERTQyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNzFBMEIwRUVFQzc3QTAwRjYxMjEzIC8qIFdvcmtlck5h
dmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8q
IFdvcmtlck5ldHdvcmtBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4
MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTM1NTIx
LDYgKzM1NTM0LDcgQEAKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVw
b3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUzMEY1NDZBODIwMEIwRjFC
QSAvKiBXb3JrZXJSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDRjFGQUE0NERF
MDAzN0QxRTYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzQ3
RTVGQTI1RDRGMDAwMDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdENkIzNDkwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkVBNzY4MDQwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNj
cmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTUwRjU0NkE4MjAw
QjBGMUJBIC8qIFdvcmtlclRocmVhZC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcAppbmRl
eCAzNTJkY2M0YWNmNzUxNzZkOThhZDM0MTBiZTE1MTYwODAxMDg4NTI0Li4yNzdmNjJhN2MxMzNm
ZTE1NmM2Y2NlOTg1NTM1NTBlZGIxMzZkMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTQwLDE2ICs0
MCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXI+IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNj
cmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+
JiYgcGFyYW1ldGVycykKK1JlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+IENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcjo6Y3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBE
ZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNo
ZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoY2xpZW50LCBwcm9t
aXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSk7CiB9CiAKLUNhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcjo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hl
ZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRl
cnM+JiYgcGFyYW1ldGVycykKLSAgICA6IG1fY2xpZW50KCZjbGllbnQpCi0gICAgLCBtX3Byb21p
c2UoJnByb21pc2UpCi0gICAgLCBtX3NjcmlwdEZldGNoZXIoc2NyaXB0RmV0Y2hlcikKLSAgICAs
IG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQorQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBj
bGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2Ny
aXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQor
ICAgIDogTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwg
V1RGTW92ZShwYXJhbWV0ZXJzKSkKIHsKIH0KIApAQCAtNjEsMTQgKzU4LDE1IEBAIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcjo6fkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcigpCiAgICAgfQogfQog
Ci1ib29sIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFVSTCYgc291cmNlVVJMKQorYm9vbCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6Omxv
YWQoRG9jdW1lbnQmIGRvY3VtZW50LCBVUkwmJiBzb3VyY2VVUkwpCiB7CisgICAgQVNTRVJUKG1f
cHJvbWlzZSk7CiAgICAgQVNTRVJUKCFtX2NhY2hlZFNjcmlwdCk7CiAgICAgU3RyaW5nIGludGVn
cml0eSA9IG1fcGFyYW1ldGVycyA/IG1fcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkgOiBTdHJpbmcg
eyB9OwotICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9zY3JpcHRGZXRjaGVyLT5yZXF1ZXN0TW9kdWxl
U2NyaXB0KGRvY3VtZW50LCBzb3VyY2VVUkwsIFdURk1vdmUoaW50ZWdyaXR5KSk7CisgICAgbV9j
YWNoZWRTY3JpcHQgPSBzY3JpcHRGZXRjaGVyKCkucmVxdWVzdE1vZHVsZVNjcmlwdChkb2N1bWVu
dCwgc291cmNlVVJMLCBXVEZNb3ZlKGludGVncml0eSkpOwogICAgIGlmICghbV9jYWNoZWRTY3Jp
cHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtX3NvdXJjZVVSTCA9IHNvdXJjZVVSTDsK
KyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUoc291cmNlVVJMKTsKIAogICAgIC8vIElmIHRoZSBj
b250ZW50IGlzIGFscmVhZHkgY2FjaGVkLCB0aGlzIGltbWVkaWF0ZWx5IGNhbGxzIG5vdGlmeUZp
bmlzaGVkLgogICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQoKnRoaXMpOwpAQCAtODMsNyAr
ODEsNyBAQCB2b2lkIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2Fj
aGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBOZQogCiAgICAgUmVmPENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgaWYgKG1fY2xpZW50KQotICAg
ICAgICBtX2NsaWVudC0+bm90aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9wcm9taXNlKSk7
CisgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJj
ZVVSTCksIG1fcHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIC8vIFJlbW92ZSB0aGUg
Y2xpZW50IGFmdGVyIGNhbGxpbmcgbm90aWZ5RmluaXNoZWQgdG8ga2VlcCB0aGUgZGF0YSBidWZm
ZXIgaW4KICAgICAvLyBDYWNoZWRSZXNvdXJjZSBhbGl2ZSB3aGlsZSBub3RpZnlGaW5pc2hlZCBw
cm9jZXNzZXMgdGhlIHJlc291cmNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaAppbmRleCA0M2FiZDg3NWIyNDNmYWY1ZmNk
NGQ5OGVjM2M1ZDI0ZTc5MGI1NzJlLi5hNDg3NTVmOTNkMDVlZjM1M2QyYjNlMjI4ZDgyMTlmZTg5
MWU2NzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVTY3JpcHRMb2Fk
ZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zNCw0MiArMzYsMjkgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFz
cyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7Ci1jbGFzcyBD
YWNoZWRTY3JpcHRGZXRjaGVyOwogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKIGNsYXNzIE1vZHVsZUZldGNoUGFyYW1ldGVy
czsKIAotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIFJlZkNv
dW50ZWQ8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNs
aWVudCB7CitjbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9k
dWxlU2NyaXB0TG9hZGVyLCBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZl
dGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKyAgICBzdGF0aWMgUmVm
PENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZpcnR1YWwgfkNhY2hlZE1vZHVsZVNjcmlwdExv
YWRlcigpOwogCi0gICAgYm9vbCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJMJiBzb3VyY2VVUkwp
OworICAgIGJvb2wgbG9hZChEb2N1bWVudCYsIFVSTCYmIHNvdXJjZVVSTCk7CiAKLSAgICBDYWNo
ZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyKCkgeyByZXR1cm4gbV9zY3JpcHRGZXRjaGVy
LmdldCgpOyB9CiAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSB7IHJldHVybiBtX2Nh
Y2hlZFNjcmlwdC5nZXQoKTsgfQotICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyogcGFyYW1ldGVy
cygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQotICAgIGNvbnN0IFVSTCYgc291cmNl
VVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KLQotICAgIHZvaWQgY2xlYXJDbGll
bnQoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fY2xpZW50KTsKLSAgICAgICAgbV9jbGllbnQg
PSBudWxscHRyOwotICAgIH0KKyAgICBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVy
KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlciY+KE1vZHVsZVNjcmlw
dExvYWRlcjo6c2NyaXB0RmV0Y2hlcigpKTsgfQogCiBwcml2YXRlOgotICAgIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcihDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFBy
b21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVy
cz4mJik7CisgICAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNs
aWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UmLCBjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmKSBmaW5hbDsKIAotICAgIENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07Ci0gICAgUmVm
UHRyPERlZmVycmVkUHJvbWlzZT4gbV9wcm9taXNlOwotICAgIFJlZjxDYWNoZWRTY3JpcHRGZXRj
aGVyPiBtX3NjcmlwdEZldGNoZXI7Ci0gICAgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4g
bV9wYXJhbWV0ZXJzOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gbV9j
YWNoZWRTY3JpcHQ7CiAgICAgVVJMIG1fc291cmNlVVJMOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2ODhhZDkwZGFlM2VjZTk0OWVhMDli
MWVmZWU1ZGEyNmY5NGM3ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjsKLWNsYXNzIERl
ZmVycmVkUHJvbWlzZTsKLQotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsK
LXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQoKSA9
IGRlZmF1bHQ7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4pID0gMDsKLX07Ci0KLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAK
aW5kZXggYTQzMzc1ODY1YmJmMWVjNTk3M2JmMTcyYzkxYTM4NTMyMzRlMzc0ZC4uZGYzYzZiNmVi
Yjg0YWY3MmVkMjk1NWY5OTExZDA3YTg3YWIzNTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw2ICs0OCw3IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVx
dWVzdE1vZHVsZVNjcmlwdChEb2N1CiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlw
dD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNoZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2lu
TW9kZSwgU3RyaW5nJiYgaW50ZWdyaXR5LCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4g
cmVzb3VyY2VMb2FkUHJpb3JpdHkpIGNvbnN0CiB7CisgICAgLy8gV2l0aG91dCBzY3JpcHRpbmcs
IHRoZXJlIGlzIG5vIHdheSB0byBzdGFydCBXb3JrZXJzLgogICAgIGlmICghZG9jdW1lbnQuc2V0
dGluZ3MoKS5pc1NjcmlwdEVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5jcHAKaW5kZXggZGY3ZjNkNzQ2ZDVlMzJhYmFiNTE0NzZjOWRkYWNhNjNhNDM1MTM2Yy4uZWVm
MjEwMzg4NDlmZDg5ODQ5YWZjZWQ3MDMxODVmZjg5NGM0MGM3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKQEAgLTUy
LDYgKzUyLDI1IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlCiAgICAgcmVwb3J0RXhjZXB0aW9u
KGxleGljYWxHbG9iYWxPYmplY3QsIGV4Y2VwdGlvbiwgY2FjaGVkU2NyaXB0KTsKIH0KIAorU3Ry
aW5nIHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIFZNJiB2bSwgSlNWYWx1ZSBleGNlcHRpb24sIENhdGNoU2NvcGUmIGNh
dGNoU2NvcGUpCit7CisgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNTA4Nz4g
V2ViIEluc3BlY3RvcjogV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9uIHNob3VsZCBub3QgZXZhbHVh
dGUgSmF2YVNjcmlwdCBoYW5kbGluZyBleGNlcHRpb25zCisgICAgLy8gSWYgdGhpcyBpcyBhIGN1
c3RvbSBleGNlcHRpb24gb2JqZWN0LCBjYWxsIHRvU3RyaW5nIG9uIGl0IHRvIHRyeSBhbmQgZ2V0
IGEgbmljZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBleGNlcHRpb24uCisgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoYXV0byogZXJyb3IgPSBqc0R5bmFtaWNDYXN0PEVy
cm9ySW5zdGFuY2UqPih2bSwgZXhjZXB0aW9uKSkKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJy
b3ItPnNhbml0aXplZE1lc3NhZ2VTdHJpbmcoJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGVs
c2UgaWYgKGF1dG8qIGVycm9yID0ganNEeW5hbWljQ2FzdDxKU0RPTUV4Y2VwdGlvbio+KHZtLCBl
eGNlcHRpb24pKQorICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci0+d3JhcHBlZCgpLm1lc3Nh
Z2UoKTsKKyAgICBlbHNlCisgICAgICAgIGVycm9yTWVzc2FnZSA9IGV4Y2VwdGlvbi50b1dURlN0
cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisKKyAgICAvLyBXZSBuZWVkIHRvIGNsZWFyIGFu
eSBuZXcgZXhjZXB0aW9uIHRoYXQgbWF5IGJlIHRocm93biBpbiB0aGUgdG9TdHJpbmcoKSBjYWxs
IGFib3ZlLgorICAgIC8vIHJlcG9ydEV4Y2VwdGlvbigpIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBt
YWtpbmcgbmV3IGV4Y2VwdGlvbnMuCisgICAgY2F0Y2hTY29wZS5jbGVhckV4Y2VwdGlvbigpOwor
ICAgIHZtLmNsZWFyTGFzdEV4Y2VwdGlvbigpOworICAgIHJldHVybiBlcnJvck1lc3NhZ2U7Cit9
CisKIFN0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgVk0mIHZtLCBKU1ZhbHVlIGV4Y2VwdGlvbiwgQ2F0Y2hTY29wZSYgY2F0Y2hT
Y29wZSkKIHsKICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE1MDg3PiBXZWIg
SW5zcGVjdG9yOiBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24gc2hvdWxkIG5vdCBldmFsdWF0ZSBK
YXZhU2NyaXB0IGhhbmRsaW5nIGV4Y2VwdGlvbnMKQEAgLTEyMSwzNiArMTQwLDQ1IEBAIHZvaWQg
cmVwb3J0Q3VycmVudEV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCkKIAogSlNWYWx1ZSBjcmVhdGVET01FeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEV4Y2VwdGlvbkNvZGUgZWMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsK
LSAgICBpZiAoZWMgPT0gRXhpc3RpbmdFeGNlcHRpb25FcnJvcikKKyAgICBzd2l0Y2ggKGVjKSB7
CisgICAgY2FzZSBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yOgogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIAogICAgIC8vIEZJWE1FOiBIYW5kbGUgb3RoZXIgV2ViSURMIGV4Y2VwdGlvbiB0
eXBlcy4KLSAgICBpZiAoZWMgPT0gVHlwZUVycm9yKSB7CisgICAgY2FzZSBUeXBlRXJyb3I6CiAg
ICAgICAgIGlmIChtZXNzYWdlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVU
eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBjcmVhdGVUeXBl
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgbWVzc2FnZSk7Ci0gICAgfQogCi0gICAgaWYgKGVj
ID09IFJhbmdlRXJyb3IpIHsKKyAgICBjYXNlIFJhbmdlRXJyb3I6CiAgICAgICAgIGlmIChtZXNz
YWdlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSYW5nZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsICJCYWQgdmFsdWUiX3MpOwogICAgICAgICByZXR1cm4gY3JlYXRlUmFu
Z2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBtZXNzYWdlKTsKLSAgICB9CiAKLSAgICBpZiAo
ZWMgPT0gU3RhY2tPdmVyZmxvd0Vycm9yKQorICAgIGNhc2UgSlNTeW50YXhFcnJvcjoKKyAgICAg
ICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN5bnRh
eEVycm9yKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gY3JlYXRlU3ludGF4
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgbWVzc2FnZSk7CisKKyAgICBjYXNlIFN0YWNrT3Zl
cmZsb3dFcnJvcjoKICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoZWMgPT0gT3V0T2ZNZW1vcnlFcnJvcikKKworICAg
IGNhc2UgT3V0T2ZNZW1vcnlFcnJvcjoKICAgICAgICAgcmV0dXJuIGNyZWF0ZU91dE9mTWVtb3J5
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7CiAKLSAgICAvLyBGSVhNRTogQWxsIGNhbGxlcnMg
dG8gY3JlYXRlRE9NRXhjZXB0aW9uIG5lZWQgdG8gcGFzcyBpbiB0aGUgY29ycmVjdCBnbG9iYWwg
b2JqZWN0LgotICAgIC8vIEZvciBub3csIHdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0aGUgbGV4aWNh
bEdsb2JhbE9iamVjdC4gV2hpY2ggaXMgd3JvbmcgaW4gY2FzZXMgbGlrZSB0aGlzOgotICAgIC8v
IGZyYW1lc1swXS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KG51bGwsIG51bGwpOyAvLyB0aHJvd3Mg
YW4gZXhjZXB0aW9uIHdoaWNoIHNob3VsZCBoYXZlIHRoZSBzdWJmcmFtZSdzIHByb3RvdHlwZXMu
Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGRlcHJlY2F0ZWRHbG9iYWxP
YmplY3RGb3JQcm90b3R5cGUobGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgSlNWYWx1ZSBlcnJv
ck9iamVjdCA9IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBET01FeGNl
cHRpb246OmNyZWF0ZShlYywgbWVzc2FnZSkpOwotICAgIAotICAgIEFTU0VSVChlcnJvck9iamVj
dCk7Ci0gICAgYWRkRXJyb3JJbmZvKGxleGljYWxHbG9iYWxPYmplY3QsIGFzT2JqZWN0KGVycm9y
T2JqZWN0KSwgdHJ1ZSk7Ci0gICAgcmV0dXJuIGVycm9yT2JqZWN0OworICAgIGRlZmF1bHQ6IHsK
KyAgICAgICAgLy8gRklYTUU6IEFsbCBjYWxsZXJzIHRvIGNyZWF0ZURPTUV4Y2VwdGlvbiBuZWVk
IHRvIHBhc3MgaW4gdGhlIGNvcnJlY3QgZ2xvYmFsIG9iamVjdC4KKyAgICAgICAgLy8gRm9yIG5v
dywgd2UncmUgZ29pbmcgdG8gYXNzdW1lIHRoZSBsZXhpY2FsR2xvYmFsT2JqZWN0LiBXaGljaCBp
cyB3cm9uZyBpbiBjYXNlcyBsaWtlIHRoaXM6CisgICAgICAgIC8vIGZyYW1lc1swXS5kb2N1bWVu
dC5jcmVhdGVFbGVtZW50KG51bGwsIG51bGwpOyAvLyB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoaWNo
IHNob3VsZCBoYXZlIHRoZSBzdWJmcmFtZSdzIHByb3RvdHlwZXMuCisgICAgICAgIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90
eXBlKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAgICBKU1ZhbHVlIGVycm9yT2JqZWN0ID0g
dG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIERPTUV4Y2VwdGlvbjo6Y3Jl
YXRlKGVjLCBtZXNzYWdlKSk7CisKKyAgICAgICAgQVNTRVJUKGVycm9yT2JqZWN0KTsKKyAgICAg
ICAgYWRkRXJyb3JJbmZvKGxleGljYWxHbG9iYWxPYmplY3QsIGFzT2JqZWN0KGVycm9yT2JqZWN0
KSwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBlcnJvck9iamVjdDsKKyAgICB9CisgICAgfQorICAg
IHJldHVybiB7IH07CiB9CiAKIEpTVmFsdWUgY3JlYXRlRE9NRXhjZXB0aW9uKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFeGNlcHRpb24mJiBleGNlcHRpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKaW5k
ZXggMmQzZTMxMWY2MWVlYjY4NWFhYzM1NTQ2YWFlMTYwZGE5NzkwZWY1Zi4uZDFmNmRlOTM3NDcw
Y2U2ZGYyY2NiNjQ3MjI4NDc2NmZkMDE5NTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaApAQCAtNjUsNiArNjUsNyBAQCBX
RUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoR2V0dGVy
VHlwZUVycm9yKEpTQzo6SlNHbG9iYQogV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1
ZSByZWplY3RQcm9taXNlV2l0aFRoaXNUeXBlRXJyb3IoRGVmZXJyZWRQcm9taXNlJiwgY29uc3Qg
Y2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogb3BlcmF0aW9uTmFtZSk7CiBXRUJDT1JF
X0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoVGhpc1R5cGVFcnJv
cihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3Qg
Y2hhciogb3BlcmF0aW9uTmFtZSk7CiAKK1N0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhv
dXROYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlIGV4Y2Vw
dGlvbiwgSlNDOjpDYXRjaFNjb3BlJik7CiBTdHJpbmcgcmV0cmlldmVFcnJvck1lc3NhZ2UoSlND
OjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBKU0M6
OkNhdGNoU2NvcGUmKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqID0g
bnVsbHB0cik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFeGNlcHRpb24qLCBDYWNoZWRTY3JpcHQqID0gbnVsbHB0ciwgRXhj
ZXB0aW9uRGV0YWlscyogPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCA1OGI3ZGY3NjBjMDBhMzFmZjA4ZWQyMmRl
ZTIyYThjNzQ0M2FlOGRkLi45ZDY5N2Q0NTliNTYzNDVjYzgzOTYyMDI2Njc2ZTAwYTk4YmY0OWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlICJSZWplY3RlZFByb21pc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZWRDbG9uZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIK
ICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtNDIyLDYgKzQyMyw3OSBAQCBKU0M6
OkpTUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Omluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsbwogfQogI2VuZGlmCiAKK3N0YXRpYyBTY3JpcHRNb2R1bGVMb2Fk
ZXIqIHNjcmlwdE1vZHVsZUxvYWRlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5pbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKSkgeworICAgICAgICBpZiAoYXV0byBkb2N1
bWVudCA9IGpzQ2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpLT53cmFw
cGVkKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiAmZG9jdW1lbnQtPm1vZHVsZUxv
YWRlcigpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKGdsb2JhbE9i
amVjdC0+aW5oZXJpdHM8SlNSZW1vdGVET01XaW5kb3dCYXNlPih2bSkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2VyR2xvYmFs
U2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxvYWRlcigpOwor
ICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZT4o
dm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNJREJT
ZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0Pih2bSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
I2VuZGlmCisgICAgZGF0YUxvZygiVW5leHBlY3RlZCBnbG9iYWwgb2JqZWN0OiAiLCBKU1ZhbHVl
KGdsb2JhbE9iamVjdCksICJcbiIpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTQzo6SWRlbnRpZmllciBKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6Ompz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxv
YWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxv
YWRlci0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1w
b3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiB7IH07Cit9CisKK0pT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFt
ZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlw
dE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBsb2FkZXItPmZldGNoKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXks
IHBhcmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7Cisg
ICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7CisgICAgcmV0
dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6
SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAg
IEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1
bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmV2YWx1YXRlKGds
b2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0
RmV0Y2hlcik7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKworSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVs
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1N0cmluZyogbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcnMsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byog
bG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9k
dWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0ZXJzLCBzb3VyY2VPcmlnaW4pKTsKKyAgICBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAg
ICBzY29wZS5yZWxlYXNlKCk7CisgICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNV
bmRlZmluZWQoKSk7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNPYmplY3QqIEpT
RE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1v
ZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCog
bW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUds
b2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
Z2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVy
KHRoaXNPYmplY3QpKQorICAgICAgICByZXR1cm4gbG9hZGVyLT5jcmVhdGVJbXBvcnRNZXRhUHJv
cGVydGllcyhnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNv
cmQsIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVy
ZSgpKTsKK30KKwogSlNET01HbG9iYWxPYmplY3QmIGNhbGxlckdsb2JhbE9iamVjdChKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUpCiB7CiAg
ICAgY2xhc3MgR2V0Q2FsbGVyR2xvYmFsT2JqZWN0RnVuY3RvciB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCBiODQwNzJkZGQ3NDZiM2Q2
YzUxMDYwZDkwNTAxYjVjZWExYjQ5OWIxLi5mNDlhNGNkMjU3MTk3MTE4OTE3YTdkN2E0YjZjMGUx
MWZjNzZiYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgKQEAgLTEwNSw2ICsxMDUsMTIgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNET01H
bG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CiAgICAgc3RhdGljIEpT
Qzo6SlNQcm9taXNlKiBpbnN0YW50aWF0ZVN0cmVhbWluZyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OkpTT2JqZWN0Kik7CiAjZW5kaWYKIAorICAgIHN0YXRpYyBKU0M6
OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFs
dWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUg
bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVM
b2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICBz
dGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0cmluZyos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKKyAgICBzdGF0aWMgSlND
OjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOworCiAgICAgSlNET01TdHJ1Y3R1cmVNYXAg
bV9zdHJ1Y3R1cmVzOwogICAgIEpTRE9NQ29uc3RydWN0b3JNYXAgbV9jb25zdHJ1Y3RvcnM7CiAg
ICAgRE9NR3VhcmRlZE9iamVjdFNldCBtX2d1YXJkZWRPYmplY3RzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggNTYzZWZhMDU3MWI1ZDQ2
MmQ5ZTY0NTA4OWYwYmQ4Zjc3ZDE5YTc2OC4uMzEyYTAxMTU4ZThjMjgwODNjMDdlNDJkYjg3MjQ1
ZmU0ZTVjNTdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwCkBAIC0zMzksNTQgKzMzOSw0IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJl
RnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAg
fQogfQogCi1KU0M6OklkZW50aWZpZXIgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNv
bHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RP
TVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihn
bG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09i
amVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9k
dWxlTG9hZGVyKCkucmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFt
ZSwgaW1wb3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOwotICAgIHJldHVybiB7IH07Ci19
Ci0KLUpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVy
RmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBw
YXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9N
V2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9j
dW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuZmV0Y2goZ2xvYmFs
T2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hl
cikpOwotICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0
dXJlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFs
T2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpK
U1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6
SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVj
dCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYg
KFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5ldmFsdWF0ZShn
bG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQsIHNjcmlw
dEZldGNoZXIpOwotICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxl
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciog
bW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcGFy
YW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKLXsKLSAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anND
YXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1
bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuaW1w
b3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0
ZXJzLCBzb3VyY2VPcmlnaW4pKTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNl
ID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVy
bmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKLSAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcHJvbWlz
ZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIHByb21p
c2U7Ci19Ci0KLUpTQzo6SlNPYmplY3QqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyQ3Jl
YXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVL
ZXksIEpTQzo6SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nh
c3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3Vt
ZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAg
ICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0
aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwg
c2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9i
amVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDNlZjk4MGRkMjdmNmIyMTM5ODcwMDhiYTQ3NmM4
Y2E2OWYyZjBiNjQuLjUxNDJiMWM3ZGMyNWMyMmZlOTc4OTVlNzVhZTIyZWY0ZDFlNTg5ZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC05OSwx
MiArOTksNiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd0Jhc2UgOiBwdWJsaWMg
SlNET01HbG9iYWxPYmplY3QgewogcHJpdmF0ZToKICAgICB1c2luZyBSZXNwb25zZUNhbGxiYWNr
ID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IGNoYXIqLCBzaXplX3QpPjsKIAotICAgIHN0YXRp
YyBKU0M6OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2Fk
ZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpT
VmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsK
LSAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9k
dWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0
cmluZyosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKLSAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwotCiAgICAgUmVmUHRyPERPTVdp
bmRvdz4gbV93cmFwcGVkOwogICAgIFJlZlB0cjxFdmVudD4gbV9jdXJyZW50RXZlbnQ7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwCmluZGV4IDQyYjI2YzlmNGVhMjE2MjA3ZGU0Yzg2ODIwYjhhODFiNjAzNWI3ZWIu
LjJkNzkzZmZmMjE4NTNhOGExYTc4ODA2NjcyNTBmNTdlNzUyZmUzZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAK
QEAgLTU5LDExICs1OSwxMSBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZQogICAgICZqYXZhU2Ny
aXB0UnVudGltZUZsYWdzLAogICAgICZxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wLAogICAgICZz
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckltcG9ydE1vZHVsZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlclJlc29sdmUK
LSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJGZXRjaAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxl
TG9hZGVyRXZhbHVhdGUKKyAgICAmbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlLAorICAgICZtb2R1
bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1bGVMb2FkZXJGZXRjaCwKKyAgICAmbW9kdWxlTG9h
ZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMsCisgICAgJm1vZHVsZUxvYWRlckV2YWx1YXRl
LAogICAgICZwcm9taXNlUmVqZWN0aW9uVHJhY2tlciwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNl
cHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5jcHAKaW5kZXggMzVmYTZlMzI3N2ZiMGQ0YmUwZTBlMWVkYzQzNzIyZWRhZGZjOGFmMi4u
OWZhZWM5NTljMzlkMTc0ODE4MWM5ODY1MDAzZDVhODZmMTdmNWUzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3Bw
CkBAIC00OSwxMSArNDksMTEgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICAmamF2YVNj
cmlwdFJ1bnRpbWVGbGFncywKICAgICBudWxscHRyLCAvLyBxdWV1ZU1pY3JvdGFza1RvRXZlbnRM
b29wCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9h
ZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZldGNoCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMKLSAgICBudWxscHRy
LCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUs
CisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNoLAorICAg
ICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9kdWxlTG9h
ZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAogICAgICZyZXBvcnRV
bmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9u
T3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZhOTEwZTk0OWI3YWMxYTM4ZWRlZWNiMDNkZWI2ZWU4OTRjY2ViMGQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNo
UGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEZldGNoZXIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlU2NyaXB0TG9hZGVyPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+TW9kdWxlU2NyaXB0TG9hZGVyKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBjbGVh
ckNsaWVudCgpCisgICAgeworICAgICAgICBBU1NFUlQobV9jbGllbnQpOworICAgICAgICBtX2Ns
aWVudCA9IG51bGxwdHI7CisgICAgfQorCisgICAgSlNDOjpTY3JpcHRGZXRjaGVyJiBzY3JpcHRG
ZXRjaGVyKCkgeyByZXR1cm4gbV9zY3JpcHRGZXRjaGVyLmdldCgpOyB9CisgICAgTW9kdWxlRmV0
Y2hQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9
CisKK3Byb3RlY3RlZDoKKyAgICBNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgSlNDOjpTY3JpcHRGZXRj
aGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFt
ZXRlcnMpCisgICAgICAgIDogbV9jbGllbnQoJmNsaWVudCkKKyAgICAgICAgLCBtX3Byb21pc2Uo
JnByb21pc2UpCisgICAgICAgICwgbV9zY3JpcHRGZXRjaGVyKHNjcmlwdEZldGNoZXIpCisgICAg
ICAgICwgbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCisgICAgeworICAgIH0KKwor
ICAgIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCogbV9jbGllbnQ7CisgICAgUmVmUHRyPERlZmVy
cmVkUHJvbWlzZT4gbV9wcm9taXNlOworICAgIFJlZjxKU0M6OlNjcmlwdEZldGNoZXI+IG1fc2Ny
aXB0RmV0Y2hlcjsKKyAgICBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiBtX3BhcmFtZXRl
cnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5
OTVmNDhlZTNkMWUwMmMxZDhjOWM5ZGEyYmQ1ODIzNmYzYmEwN2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1vZHVs
ZVNjcmlwdExvYWRlcjsKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsKKworY2xhc3MgTW9kdWxlU2Ny
aXB0TG9hZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQo
TW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSA9IDA7Cit9
OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9h
ZGVyLmNwcAppbmRleCBhYTViODBiNTg2Yjc5ZTBlNTc1MDFjZDUxMDc4ZGYyNWE2MjVlNWQ5Li4x
MGJkN2Y4NDkwOGI4MmQ1MDcyNTQzYmJkZmJkZjhjYzc5NGMyODVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTI5LDcgKzI5
LDYgQEAKICNpbmNsdWRlICJDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlICJD
YWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCi0jaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCkBAIC00MSw2ICs0MCw4IEBA
CiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50
ZWdyaXR5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUgIldv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU01vZHVsZVJlY29yZC5oPgpAQCAtNTIsOCArNTMsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVNjcmlwdE1vZHVsZUxvYWRlcjo6U2NyaXB0TW9kdWxlTG9hZGVyKERvY3VtZW50JiBk
b2N1bWVudCkKLSAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCitTY3JpcHRNb2R1bGVMb2FkZXI6
OlNjcmlwdE1vZHVsZUxvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBPd25l
clR5cGUgb3duZXJUeXBlKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX293bmVy
VHlwZShvd25lclR5cGUpCiB7CiB9CiAKQEAgLTY4LDcgKzcwLDcgQEAgc3RhdGljIGJvb2wgaXNS
b290TW9kdWxlKEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSkKICAgICByZXR1cm4gaW1w
b3J0ZXJNb2R1bGVLZXkuaXNTeW1ib2woKSB8fCBpbXBvcnRlck1vZHVsZUtleS5pc1VuZGVmaW5l
ZCgpOwogfQogCi1zdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVj
aWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3Qg
VVJMJiBiYXNlVVJMKQorc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxl
U3BlY2lmaWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNjcmlwdE1vZHVsZUxv
YWRlcjo6T3duZXJUeXBlIG93bmVyVHlwZSwgY29uc3QgU3RyaW5nJiBzcGVjaWZpZXIsIGNvbnN0
IFVSTCYgYmFzZVVSTCkKIHsKICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcmVzb2x2ZS1hLW1vZHVsZS1zcGVjaWZpZXIKIApAQCAt
NzksNyArODEsMTIgQEAgc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxl
U3BlY2lmaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3QKICAgICBpZiAoIXNwZWNpZmll
ci5zdGFydHNXaXRoKCcvJykgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLyIpICYmICFzcGVj
aWZpZXIuc3RhcnRzV2l0aCgiLi4vIikpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCht
YWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lmaWVyLCAnIl9zLCBzcGVjaWZpZXIsICInIGRvZXMgbm90
IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9cIiwgb3IgXCIuLi9cIi4gUmVmZXJlbmNlZCBmcm9tICJf
cywgYmFzZVVSTC5zdHJpbmcoKSkpOwogCi0gICAgYXV0byByZXN1bHQgPSBkb2N1bWVudC5jb21w
bGV0ZVVSTChzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIFVSTCByZXN1bHQ7CisgICAgaWYgKG93
bmVyVHlwZSA9PSBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93bmVyVHlwZTo6RG9jdW1lbnQpCisgICAg
ICAgIHJlc3VsdCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5jb21wbGV0ZVVSTChzcGVj
aWZpZXIsIGJhc2VVUkwpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gVVJMKGJhc2VVUkws
IHNwZWNpZmllcik7CisKICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJNb2R1bGUgbmFtZSwgJyJfcywgcmVzdWx0LnN0
cmluZygpLCAiJyBkb2VzIG5vdCByZXNvbHZlIHRvIGEgdmFsaWQgVVJMLiJfcykpOwogICAgIHJl
dHVybiByZXN1bHQ7CkBAIC0xMDcsNyArMTE0LDcgQEAgSlNDOjpJZGVudGlmaWVyIFNjcmlwdE1v
ZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwK
ICAgICBVUkwgYmFzZVVSTCA9IHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoKmpzR2xvYmFsT2Jq
ZWN0LCBpbXBvcnRlck1vZHVsZUtleSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKIAotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2RvY3Vt
ZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVs
ZVNwZWNpZmllcihtX2NvbnRleHQsIG1fb3duZXJUeXBlLCBzcGVjaWZpZXIsIGJhc2VVUkwpOwog
ICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgIEpTQzo6dGhyb3dUeXBlRXJyb3IoanNHbG9iYWxP
YmplY3QsIHNjb3BlLCByZXN1bHQuZXJyb3IoKSk7CiAgICAgICAgIHJldHVybiB7IH07CkBAIC0x
NjEsMTMgKzE2OCwxOSBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2Fk
ZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIGlmIChhdXRvKiBz
Y3JpcHRGZXRjaFBhcmFtZXRlcnMgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU1NjcmlwdEZl
dGNoUGFyYW1ldGVycyo+KHZtLCBwYXJhbWV0ZXJzKSkKICAgICAgICAgdG9wTGV2ZWxGZXRjaFBh
cmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxNb2R1bGVGZXRjaFBhcmFtZXRlcnMqPigmc2NyaXB0RmV0
Y2hQYXJhbWV0ZXJzLT5wYXJhbWV0ZXJzKCkpOwogCi0gICAgYXV0byBsb2FkZXIgPSBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNf
Y2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNo
ZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFy
YW1ldGVycykpOwotICAgIG1fbG9hZGVycy5hZGQobG9hZGVyLmNvcHlSZWYoKSk7Ci0gICAgaWYg
KCFsb2FkZXItPmxvYWQobV9kb2N1bWVudCwgY29tcGxldGVkVVJMKSkgewotICAgICAgICBsb2Fk
ZXItPmNsZWFyQ2xpZW50KCk7Ci0gICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2Fk
ZXIpKTsKLSAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoZGVmZXJyZWQuZ2V0
KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1
bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwotICAgICAgICByZXR1cm4ganNQcm9taXNlOworICAgIGlm
IChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CisgICAgICAgIGF1dG8gbG9h
ZGVyID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdl
dCgpLCAqc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6
SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9w
TGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKKyAgICAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29w
eVJlZigpKTsKKyAgICAgICAgaWYgKCFsb2FkZXItPmxvYWQoZG93bmNhc3Q8RG9jdW1lbnQ+KG1f
Y29udGV4dCksIFdURk1vdmUoY29tcGxldGVkVVJMKSkpIHsKKyAgICAgICAgICAgIGxvYWRlci0+
Y2xlYXJDbGllbnQoKTsKKyAgICAgICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2Fk
ZXIpKTsKKyAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKGRlZmVycmVk
LmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEg
bW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVybiBqc1Byb21pc2U7
CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGxvYWRlciA9IFdvcmtlck1v
ZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19j
YXN0PFdvcmtlclNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hl
cio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJh
bWV0ZXJzKSk7CisgICAgICAgIG1fbG9hZGVycy5hZGQobG9hZGVyLmNvcHlSZWYoKSk7CisgICAg
ICAgIGxvYWRlci0+bG9hZChtX2NvbnRleHQsIFdURk1vdmUoY29tcGxldGVkVVJMKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGpzUHJvbWlzZTsKQEAgLTE3Niw3ICsxODksNyBAQCBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGpzR2xvYmFsTwogVVJMIFNjcmlwdE1vZHVsZUxvYWRlcjo6bW9kdWxlVVJMKEpTQzo6SlNH
bG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUp
CiB7CiAgICAgaWYgKG1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCkpCi0gICAgICAgIHJldHVybiBt
X2RvY3VtZW50LnVybCgpOworICAgICAgICByZXR1cm4gbV9jb250ZXh0LnVybCgpOwogCiAgICAg
QVNTRVJUKG1vZHVsZUtleVZhbHVlLmlzU3RyaW5nKCkpOwogICAgIHJldHVybiBVUkwoVVJMKCks
IGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoJmpzR2xvYmFsT2JqZWN0KSk7CkBAIC0x
ODcsOCArMjAwLDExIEBAIFVSTCBTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJMRnJvbVJl
cXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYganNHbG9iYWxPCiAgICAgSlNDOjpWTSYgdm0g
PSBqc0dsb2JhbE9iamVjdC52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAotICAgIGlmIChpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKQotICAgICAg
ICByZXR1cm4gbV9kb2N1bWVudC5iYXNlVVJMKCk7CisgICAgaWYgKGlzUm9vdE1vZHVsZShtb2R1
bGVLZXlWYWx1ZSkpIHsKKyAgICAgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9j
dW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCku
YmFzZVVSTCgpOworICAgICAgICByZXR1cm4gbV9jb250ZXh0LnVybCgpOworICAgIH0KIAogICAg
IEFTU0VSVCghaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSk7CiAgICAgQVNTRVJUKG1vZHVs
ZUtleVZhbHVlLmlzU3RyaW5nKCkpOwpAQCAtMjE5LDggKzIzNSwxNCBAQCBKU0M6OkpTVmFsdWUg
U2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2Jh
bE9iamVjdCwgSgogICAgIGlmICghc291cmNlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IEpTQzo6dGhyb3dUeXBlRXJyb3IoanNHbG9iYWxPYmplY3QsIHNjb3BlLCAiTW9kdWxlIGtleSBp
cyBhbiBpbnZhbGlkIFVSTC4iX3MpOwogCi0gICAgaWYgKGF1dG8qIGZyYW1lID0gbV9kb2N1bWVu
dC5mcmFtZSgpKQotICAgICAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxl
KHNvdXJjZVVSTCwgKm1vZHVsZVJlY29yZCk7CisgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVy
VHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KG1fY29udGV4dCkuZnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBmcmFtZS0+c2Ny
aXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBBU1NFUlQoaXM8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KG1fY29u
dGV4dCkpOworICAgICAgICBpZiAoYXV0byogc2NyaXB0ID0gZG93bmNhc3Q8V29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGU+KG1fY29udGV4dCkuc2NyaXB0KCkpCisgICAgICAgICAgICByZXR1cm4g
c2NyaXB0LT5ldmFsdWF0ZU1vZHVsZSgqbW9kdWxlUmVjb3JkKTsKKyAgICB9CiAgICAgcmV0dXJu
IEpTQzo6anNVbmRlZmluZWQoKTsKIH0KIApAQCAtMjQ4LDggKzI3MCwxMyBAQCBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1vZHVsZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBqcwogICAgIFVSTCBiYXNlVVJMOwogICAgIFJlZlB0cjxKU0M6OlNjcmlwdEZl
dGNoZXI+IHNjcmlwdEZldGNoZXI7CiAgICAgaWYgKHNvdXJjZU9yaWdpbi5pc051bGwoKSkgewot
ICAgICAgICBiYXNlVVJMID0gbV9kb2N1bWVudC5iYXNlVVJMKCk7Ci0gICAgICAgIHNjcmlwdEZl
dGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9kb2N1bWVudC5jaGFyc2V0KCkp
OworICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAg
ICAgICAgICAgYmFzZVVSTCA9IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmJhc2VVUkwo
KTsKKyAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVh
dGUoZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuY2hhcnNldCgpKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGJhc2VVUkwgPSBtX2NvbnRleHQudXJsKCk7CisgICAgICAgICAg
ICBzY3JpcHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4pOworICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgYmFzZVVSTCA9IFVSTChVUkwoKSwgc291cmNlT3JpZ2luLnN0cmluZygpKTsKICAgICAg
ICAgaWYgKCFiYXNlVVJMLmlzVmFsaWQoKSkKQEAgLTI1NywxNCArMjg0LDE5IEBAIEpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6aW1wb3J0TW9kdWxlKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGpzCiAKICAgICAgICAgaWYgKHNvdXJjZU9yaWdpbi5mZXRjaGVyKCkpCiAg
ICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gc291cmNlT3JpZ2luLmZldGNoZXIoKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6
OmNyZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7CisKKyAgICAgICAgaWYgKCFzY3JpcHRGZXRj
aGVyKSB7CisgICAgICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVu
dCkKKyAgICAgICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6
Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmNoYXJzZXQoKSk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZl
dGNoZXI6OmNyZWF0ZShGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luKTsKKyAg
ICAgICAgfQogICAgIH0KICAgICBBU1NFUlQoYmFzZVVSTC5pc1ZhbGlkKCkpOwogICAgIEFTU0VS
VChzY3JpcHRGZXRjaGVyKTsKIAogICAgIGF1dG8gc3BlY2lmaWVyID0gbW9kdWxlTmFtZS0+dmFs
dWUoanNHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNp
ZmllcihtX2RvY3VtZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVzdWx0ID0g
cmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2NvbnRleHQsIG1fb3duZXJUeXBlLCBzcGVjaWZpZXIs
IGJhc2VVUkwpOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4gcmVqZWN0UHJvbWlz
ZShnbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgcmVzdWx0LmVycm9yKCkpOwogCkBAIC0yODgsNjIg
KzMyMCwxMDcgQEAgSlNDOjpKU09iamVjdCogU2NyaXB0TW9kdWxlTG9hZGVyOjpjcmVhdGVJbXBv
cnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gbWV0YVByb3Bl
cnRpZXM7CiB9CiAKLXZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXImIGxvYWRlciwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gcHJv
bWlzZSkKK3ZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3Jp
cHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwgVVJMJiYgc291cmNlVVJMLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiBwcm9taXNlKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0
CiAKLSAgICBVUkwgc291cmNlVVJMID0gbG9hZGVyLnNvdXJjZVVSTCgpOwotICAgIGlmICghbV9s
b2FkZXJzLnJlbW92ZSgmbG9hZGVyKSkKKyAgICBpZiAoIW1fbG9hZGVycy5yZW1vdmUoJm1vZHVs
ZVNjcmlwdExvYWRlcikpCiAgICAgICAgIHJldHVybjsKLSAgICBsb2FkZXIuY2xlYXJDbGllbnQo
KTsKKyAgICBtb2R1bGVTY3JpcHRMb2FkZXIuY2xlYXJDbGllbnQoKTsKIAotICAgIGF1dG8mIGNh
Y2hlZFNjcmlwdCA9ICpsb2FkZXIuY2FjaGVkU2NyaXB0KCk7CisgICAgaWYgKG1fb3duZXJUeXBl
ID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgYXV0byYgbG9hZGVyID0gc3RhdGlj
X2Nhc3Q8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVyKTsKKyAg
ICAgICAgYXV0byYgY2FjaGVkU2NyaXB0ID0gKmxvYWRlci5jYWNoZWRTY3JpcHQoKTsKIAotICAg
IGlmIChjYWNoZWRTY3JpcHQucmVzb3VyY2VFcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7Ci0g
ICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxv
YWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iX3MpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LnJlc291cmNl
RXJyb3IoKS5pc0FjY2Vzc0NvbnRyb2woKSkgeworICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0
KEFib3J0RXJyb3IsICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9y
aWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iX3MpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CiAKLSAgICBpZiAoY2FjaGVkU2NyaXB0LmVycm9yT2NjdXJyZWQoKSkgewotICAg
ICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcigqcHJvbWlzZSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVk
LiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQu
ZXJyb3JPY2N1cnJlZCgpKSB7CisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtF
cnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAi
SW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC53YXNDYW5jZWxlZCgpKSB7Ci0g
ICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKCpwcm9taXNlLCBNb2R1bGVGZXRj
aEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgaXMg
Y2FuY2VsZWQuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYgKGNhY2hl
ZFNjcmlwdC53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5l
dHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5j
ZWxlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgaXMgY2FuY2VsZWQuIl9zKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYgKCFNSU1FVHlwZVJlZ2lzdHJ5Ojpp
c1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1l
VHlwZSgpKSkgewotICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAotICAgICAg
ICAvLyBUaGUgcmVzdWx0IG9mIGV4dHJhY3RpbmcgYSBNSU1FIHR5cGUgZnJvbSByZXNwb25zZSdz
IGhlYWRlciBsaXN0IChpZ25vcmluZyBwYXJhbWV0ZXJzKSBpcyBub3QgYSBKYXZhU2NyaXB0IE1J
TUUgdHlwZS4KLSAgICAgICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBj
bGFzc2ljIHNjcmlwdCBkb2VzIG5vdCBpbmNsdWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29u
dHJhc3QsIG1vZHVsZSBzY3JpcHRzIHdpbGwgZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBv
ZiBhIGNvcnJlY3QgTUlNRSB0eXBlLgotICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9y
LCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSwgIicg
aXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQorICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNj
cmlwdE1JTUVUeXBlKGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCkpKSB7CisgICAg
ICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBh
cGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAorICAgICAgICAgICAgLy8gVGhl
IHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIg
bGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUu
CisgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNz
aWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFz
dCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEg
Y29ycmVjdCBNSU1FIHR5cGUuCisgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9y
LCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSwgIicg
aXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8qIHBhcmFtZXRlcnMgPSBsb2FkZXIu
cGFyYW1ldGVycygpKSB7CisgICAgICAgICAgICBpZiAoIW1hdGNoSW50ZWdyaXR5TWV0YWRhdGEo
Y2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpIHsKKyAgICAgICAgICAgICAg
ICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCJDYW5ub3QgbG9hZCBzY3Jp
cHQgIiwgaW50ZWdyaXR5TWlzbWF0Y2hEZXNjcmlwdGlvbihjYWNoZWRTY3JpcHQsIHBhcmFtZXRl
cnMtPmludGVncml0eSgpKSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhY2hlZFNjcmlwdC5y
ZXNwb25zZSgpLnVybCgpOworICAgICAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlv
biwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBo
ZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJz
dCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0
cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRpcmVjdGlvbnMuCisgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKyAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAorICAgICAgICBpZiAoIWNh
Y2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlvbnMoKSAmJiBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5z
b3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKKyAg
ICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAg
ICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFn
bWVudElkZW50aWZpZXIoKSk7CisgICAgICAgIH0KKworICAgICAgICBtX3JlcXVlc3RVUkxUb1Jl
c3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwp
KTsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFs
T2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3Vy
Y2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6
OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3Vy
Y2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9Lmpz
U291cmNlQ29kZSgpIH0pOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRv
JiBsb2FkZXIgPSBzdGF0aWNfY2FzdDxXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXImPihtb2R1bGVT
Y3JpcHRMb2FkZXIpOworICAgICAgICBhdXRvJiB3b3JrZXJTY3JpcHRMb2FkZXIgPSBsb2FkZXIu
c2NyaXB0TG9hZGVyKCk7CiAKLSAgICBpZiAoYXV0byogcGFyYW1ldGVycyA9IGxvYWRlci5wYXJh
bWV0ZXJzKCkpIHsKLSAgICAgICAgaWYgKCFtYXRjaEludGVncml0eU1ldGFkYXRhKGNhY2hlZFNj
cmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLT5y
ZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCJDYW5ub3QgbG9hZCBzY3JpcHQgIiwgaW50ZWdy
aXR5TWlzbWF0Y2hEZXNjcmlwdGlvbihjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0
eSgpKSkpOworICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmZhaWxlZCgpKSB7CisgICAg
ICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkp
IHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoQWJvcnRFcnJvciwgIkNyb3NzLW9y
aWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcg
cG9saWN5LiJfcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmVycm9yKCkuaXNDYW5jZWxsYXRpb24o
KSkgeworICAgICAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21p
c2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkLCAiSW1wb3J0aW5n
IGEgbW9kdWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4iX3MpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3Jr
RXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwg
IkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICBVUkwgcmVzcG9uc2VVUkwgPSBjYWNoZWRTY3Jp
cHQucmVzcG9uc2UoKS51cmwoKTsKLSAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlv
biwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBo
ZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJz
dCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNr
IGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAotICAgIGlmICghY2FjaGVkU2NyaXB0Lmhhc1Jl
ZGlyZWN0aW9ucygpICYmIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpICE9IFJlc291
cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgewotICAgICAgICBpZiAoc291cmNl
VVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQotICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0
RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAg
fQorICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1J
TUVUeXBlKHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkpKSB7CisgICAgICAg
ICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlz
Lmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAorICAgICAgICAgICAgLy8gVGhlIHJl
c3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlz
dCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCisg
ICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNzaWMg
c2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFzdCwg
bW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEgY29y
cmVjdCBNSU1FIHR5cGUuCisgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBt
YWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlNRVR5cGUoKSwgIicg
aXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CiAKLSAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChz
b3VyY2VVUkwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsKLSAgICBwcm9taXNlLT5y
ZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0
KSB7Ci0gICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2Jq
ZWN0LnZtKCksCi0gICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2Rl
IHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwg
bG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOwotICAgIH0pOworICAg
ICAgICBVUkwgcmVzcG9uc2VVUkwgPSB3b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VVUkwoKTsK
KworICAgICAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNl
cnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291
cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBN
ZW1vcnlDYWNoZS4KKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVudHMg
dGhyb3VnaCByZWRpcmVjdGlvbnMuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAorICAgICAgICBpZiAoIXdvcmtlclNjcmlwdExvYWRl
ci5pc1JlZGlyZWN0ZWQoKSAmJiB3b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VTb3VyY2UoKSAh
PSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKKyAgICAgICAgICAg
IGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAg
cmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50
aWZpZXIoKSk7CisgICAgICAgIH0KKworICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJM
TWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIHJlc3BvbnNlVVJMKTsKKyAgICAgICAgcHJvbWlz
ZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9i
amVjdCkgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNH
bG9iYWxPYmplY3Qudm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3Jp
cHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3Bv
bnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2Fk
ZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkgfSk7CisgICAgICAgIH0pOworICAg
IH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuaAppbmRleCBkZTI5ZDJmNGJmMDk2YjYwYzM2OTk4MDMxNmMxNDg2YjI4MmFiZjA5Li5k
ZjM0ZDU1MWExMWNkOThmNGUyMzZhMmFhMWY0ODI3OWQ5NjRjNjg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaApAQCAtMjUsOCArMjUsOCBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5o
IgotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUg
Ik1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDUsMTYgKzQ1
LDE3IEBAIGNsYXNzIFNvdXJjZU9yaWdpbjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBEb2N1bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKIAotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVy
IGZpbmFsIDogcHJpdmF0ZSBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFNjcmlwdE1vZHVsZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRlcihEb2N1bWVudCYpOwor
ICAgIGVudW0gY2xhc3MgT3duZXJUeXBlIDogdWludDhfdCB7IERvY3VtZW50LCBXb3JrZXJPcldv
cmtsZXQgfTsKKyAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIE93bmVyVHlwZSk7CiAgICAgflNjcmlwdE1vZHVsZUxvYWRlcigpOwogCi0gICAg
RG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsgfQorICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogICAgIEpT
Qzo6SWRlbnRpZmllciByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxl
TG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1v
ZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwogICAgIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVy
KiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6
SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTYzLDEzICs2NCwxNSBAQCBjbGFzcyBTY3JpcHRN
b2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dCB7CiAgICAgSlNDOjpKU09iamVjdCogY3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwogCiBwcml2YXRlOgotICAgIHZvaWQgbm90
aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVycmVkUHJv
bWlzZT4pIGZpbmFsOworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVy
JiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSBmaW5hbDsKKwogICAgIFVSTCBtb2R1bGVV
UkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAgICAgVVJMIHJlc3BvbnNl
VVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAK
LSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBt
X2NvbnRleHQ7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25z
ZVVSTE1hcDsKLSAgICBIYXNoU2V0PFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xv
YWRlcnM7CisgICAgSGFzaFNldDxSZWY8TW9kdWxlU2NyaXB0TG9hZGVyPj4gbV9sb2FkZXJzOwor
ICAgIE93bmVyVHlwZSBtX293bmVyVHlwZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaAppbmRleCBj
NzA0NjI2ZmI3MzNkYjQ3MmJkYTUwMjM2MjQxYTZlNzQwZTI3ODJiLi4xMGZhN2U4YjQ0OWM4Yjg0
OWViMzdjYzFmMmM4NjZmYTg5M2FhZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0U291cmNlQ29kZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIGNsYXNzIFNjcmlwdFNvdXJj
ZUNvZGUgewogICAgIHsKICAgICB9CiAKLSAgICBTY3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0cmlu
ZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwg
SlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwgUmVmPENhY2hlZFNjcmlw
dEZldGNoZXI+JiYgc2NyaXB0RmV0Y2hlcikKKyAgICBTY3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0
cmluZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlv
biwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwgUmVmPEpTQzo6U2Ny
aXB0RmV0Y2hlcj4mJiBzY3JpcHRGZXRjaGVyKQogICAgICAgICA6IG1fcHJvdmlkZXIoSlNDOjpT
dHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgSlNDOjpTb3VyY2VPcmlnaW4geyB1
cmwsIFdURk1vdmUoc2NyaXB0RmV0Y2hlcikgfSwgdXJsLnN0cmluZygpLCBzdGFydFBvc2l0aW9u
LCBzb3VyY2VUeXBlKSkKICAgICAgICAgLCBtX2NvZGUobV9wcm92aWRlci5jb3B5UmVmKCksIHN0
YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4u
b25lQmFzZWRJbnQoKSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDI3NDkzYTYw
MTdmODA3ZDAwMWRmZjgzNmY0ZjI1MTc4YTE2ZTI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcApAQCAtMCww
ICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0RmV0Y2hl
ci5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgor
I2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJTY3JpcHRM
b2FkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyPiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShNb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBXb3JrZXJTY3JpcHRG
ZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBh
cmFtZXRlcnMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RGTW92ZShwYXJhbWV0ZXJz
KSkpOworfQorCitXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Oldvcmtlck1vZHVsZVNjcmlwdExv
YWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBw
cm9taXNlLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCisgICAgOiBNb2R1bGVTY3JpcHRMb2FkZXIo
Y2xpZW50LCBwcm9taXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKQorICAg
ICwgbV9zY3JpcHRMb2FkZXIoV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKSkKK3sKK30KKwor
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjp+V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKCkKK3sK
KyAgICBtX3NjcmlwdExvYWRlci0+Y2FuY2VsKCk7Cit9CisKK2Jvb2wgV29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNv
dXJjZVVSTCkKK3sKKyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUoc291cmNlVVJMKTsKKworICAg
IFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgbV9zb3VyY2VVUkwgfTsKKworICAgIEZldGNoT3B0
aW9ucyBmZXRjaE9wdGlvbnM7CisgICAgZmV0Y2hPcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6
Ok1vZGU6OkNvcnM7CisgICAgZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25zOjpDYWNo
ZTo6RGVmYXVsdDsKKyAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJl
ZGlyZWN0OjpGb2xsb3c7CisgICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gc3RhdGljX2Nh
c3Q8V29ya2VyU2NyaXB0RmV0Y2hlciY+KHNjcmlwdEZldGNoZXIoKSkuY3JlZGVudGlhbHMoKTsK
KyAgICBhdXRvIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0gY29udGV4dC5zaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSA/IENvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudDo6RW5mb3JjZUNoaWxkU3JjRGlyZWN0aXZlOworCisgICAgU3RyaW5nIHRhc2tN
b2RlID0gImxvYWRNb2R1bGVzSW5Xb3JrZXJPcldvcmtsZXRNb2RlIl9zOworICAgIG1fc2NyaXB0
TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RG
TW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2Vy
dmljZVdvcmtlcnNNb2RlOjpBbGwsICp0aGlzLCBXVEZNb3ZlKHRhc2tNb2RlKSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5p
c2hlZCgpCit7CisgICAgQVNTRVJUKG1fcHJvbWlzZSk7CisKKyAgICBhdXRvIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50
LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJjZVVSTCksIG1fcHJvbWlzZS5y
ZWxlYXNlTm9uTnVsbCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTAwODBlZTkz
MWJmYjBiMzNhOWY1NDczYjI5N2NhMmRjMmU0NzU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgKQEAgLTAsMCAr
MSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTW9kdWxlU2Ny
aXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBEZWZlcnJlZFByb21pc2U7CitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2Ns
YXNzIE1vZHVsZUZldGNoUGFyYW1ldGVyczsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFzcyBXb3JrZXJTY3JpcHRMb2Fk
ZXI7CisKK2NsYXNzIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBNb2R1
bGVTY3JpcHRMb2FkZXIsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIFdvcmtlclNjcmlwdEZldGNo
ZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKworICAgIHZpcnR1YWwgfldv
cmtlck1vZHVsZVNjcmlwdExvYWRlcigpOworCisgICAgYm9vbCBsb2FkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBVUkwmJiBzb3VyY2VVUkwpOworCisgICAgV29ya2VyU2NyaXB0TG9hZGVyJiBz
Y3JpcHRMb2FkZXIoKSB7IHJldHVybiBtX3NjcmlwdExvYWRlci5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQm
LCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZl
dGNoUGFyYW1ldGVycz4mJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25l
ZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyB9CisgICAgdm9pZCBub3Rp
ZnlGaW5pc2hlZCgpIGZpbmFsOworCisgICAgUmVmPFdvcmtlclNjcmlwdExvYWRlcj4gbV9zY3Jp
cHRMb2FkZXI7CisgICAgVVJMIG1fc291cmNlVVJMOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0
RmV0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RmV0Y2hl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY2YjU0ZWY4OTRiNTMzZWFmY2ViYzFhMTRiZjI3NmEwM2VjYmExMGIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHRGZXRjaGVyLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiTG9hZGFibGVTY3JpcHQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9T
Y3JpcHRGZXRjaGVyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVk
U2NyaXB0OworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIFdvcmtlclNjcmlwdEZldGNoZXIgZmlu
YWwgOiBwdWJsaWMgSlNDOjpTY3JpcHRGZXRjaGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFdvcmtlclNjcmlwdEZldGNoZXI+IGNyZWF0ZShGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIGNy
ZWRlbnRpYWxzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyU2Ny
aXB0RmV0Y2hlcihjcmVkZW50aWFscykpOworICAgIH0KKworICAgIEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBtX2NyZWRlbnRpYWxzOyB9CisK
KyAgICB2b2lkIG5vdGlmeUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmluZ0ltcGwmIG1vZHVsZUtl
eSkKKyAgICB7CisgICAgICAgIG1fbW9kdWxlS2V5ID0gJm1vZHVsZUtleTsKKyAgICAgICAgbV9p
c0xvYWRlZCA9IHRydWU7CisgICAgfQorCisgICAgdm9pZCBub3RpZnlMb2FkRmFpbGVkKExvYWRh
YmxlU2NyaXB0OjpFcnJvciYmIGVycm9yKQorICAgIHsKKyAgICAgICAgbV9lcnJvciA9IFdURk1v
dmUoZXJyb3IpOworICAgICAgICBtX2lzTG9hZGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lk
IG5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpCisgICAgeworICAgICAgICBtX3dhc0NhbmNlbGVkID0g
dHJ1ZTsKKyAgICAgICAgbV9pc0xvYWRlZCA9IHRydWU7CisgICAgfQorCisgICAgYm9vbCBpc0xv
YWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2FkZWQ7IH0KKyAgICBPcHRpb25hbDxMb2FkYWJs
ZVNjcmlwdDo6RXJyb3I+IGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQorICAgIGJv
b2wgd2FzQ2FuY2VsZWQoKSBjb25zdCB7IHJldHVybiBtX3dhc0NhbmNlbGVkOyB9CisgICAgVW5p
cXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlS2V5Lmdl
dCgpOyB9CisKK3Byb3RlY3RlZDoKKyAgICBXb3JrZXJTY3JpcHRGZXRjaGVyKEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMpCisgICAgICAgIDogbV9jcmVkZW50aWFscyhjcmVk
ZW50aWFscykKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHMgbV9jcmVkZW50aWFsczsKKyAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IG1f
bW9kdWxlS2V5OworICAgIE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpFcnJvcj4gbV9lcnJvcjsK
KyAgICBib29sIG1fd2FzQ2FuY2VsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0xvYWRlZCB7
IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCA0NGY5ZDBlYTUwNTJjMDE5ZTc4YmFlYmU4MDhiOGYyYzc1ZDMxOTk1Li4zYjQy
NTM4NDgwMDJhNTFkMjkwOTJjNTFhMGRhNTg3OWQ1NDIxOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTYxNSw3ICs2MTUsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1l
LCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsLCBEb2N1bQogICAgICwg
bV9kb2N1bWVudENyZWF0aW9uVGltZShNb25vdG9uaWNUaW1lOjpub3coKSkKICNlbmRpZgogICAg
ICwgbV9zY3JpcHRSdW5uZXIobWFrZVVuaXF1ZTxTY3JpcHRSdW5uZXI+KCp0aGlzKSkKLSAgICAs
IG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9hZGVyPigqdGhpcykpCisg
ICAgLCBtX21vZHVsZUxvYWRlcihtYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMs
IFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlOjpEb2N1bWVudCkpCiAjaWYgRU5BQkxFKFhT
TFQpCiAgICAgLCBtX2FwcGx5UGVuZGluZ1hTTFRyYW5zZm9ybXNUaW1lcigqdGhpcywgJkRvY3Vt
ZW50OjphcHBseVBlbmRpbmdYU0xUcmFuc2Zvcm1zVGltZXJGaXJlZCkKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FeGNlcHRpb25Db2RlLmgKaW5kZXggZjZiNTU4ZWE4MmQ3OTM2OGU2MWFkYjA2MGNmMGI0
ZWExZGJlYTIwYy4uMTdkZTc0MzQ3MmY3NzMxYjAzYzk4ZmVjZTdiMWViMWI5NjAxZTc3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5oCkBAIC02MSw2ICs2MSw3IEBAIGVudW0gRXhjZXB0
aW9uQ29kZSB7CiAgICAgLy8gU2ltcGxlIGV4Y2VwdGlvbnMgKGh0dHBzOi8vaGV5Y2FtLmdpdGh1
Yi5pby93ZWJpZGwvI2lkbC1leGNlcHRpb25zKS4KICAgICBSYW5nZUVycm9yLAogICAgIFR5cGVF
cnJvciwKKyAgICBKU1N5bnRheEVycm9yLCAvLyBEaWZmZXJlbnQgZnJvbSBET00gU1lOVEFYX0VS
Ui4KIAogICAgIC8vIE5vbi1zdGFuZGFyZCBlcnJvci4KICAgICBTdGFja092ZXJmbG93RXJyb3Is
CkBAIC0xMTEsNiArMTEyLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlPiB7CiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6Tm90QWxsb3dl
ZEVycm9yLAogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OlJhbmdlRXJyb3IsCiAgICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZTo6VHlwZUVycm9yLAorICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGU6OkpTU3ludGF4RXJyb3IsCiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6U3RhY2tPdmVy
Zmxvd0Vycm9yLAogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OkV4aXN0aW5nRXhjZXB0aW9u
RXJyb3IKICAgICA+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9k
dWxlU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5j
cHAKaW5kZXggOWEyNWMxNjU4OGVlY2FkNjc4ZmI5MTFlYzg2MjJmNDI0MjU5MmI1YS4uNDhlYzA4
NTFhNDU3ZDliYTQ3NDczZmVjMjhkN2I0OTMxMmI3ODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCkBAIC04OCwxNiArODgsNCBAQCB2b2lkIExvYWRh
YmxlTW9kdWxlU2NyaXB0OjpleGVjdXRlKFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiAg
ICAgc2NyaXB0RWxlbWVudC5leGVjdXRlTW9kdWxlU2NyaXB0KCp0aGlzKTsKIH0KIAotdm9pZCBM
b2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYg
cm9vdFVSTCkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAg
ICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgcm9vdFVSTC5zdHJp
bmcoKSwgbV9wYXJhbWV0ZXJzLmNvcHlSZWYoKSk7Ci19Ci0KLXZvaWQgTG9hZGFibGVNb2R1bGVT
Y3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBz
b3VyY2VDb2RlKQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0g
ICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KCp0aGlzLCBzb3VyY2VDb2Rl
KTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAppbmRl
eCBiYjc5OTU0ZDdiOTliMGVkMDZiZmU1NWVmODU0ZWNjZTIxZjM1ODc3Li5kMjUzNTk2M2Y2NDhi
MDJhOGEwMWZkNjNiYjFlMzgxMzg2Y2VlNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFi
bGVNb2R1bGVTY3JpcHQuaApAQCAtNTAsMTUgKzUwLDE0IEBAIGNsYXNzIExvYWRhYmxlTW9kdWxl
U2NyaXB0IGZpbmFsIDogcHVibGljIExvYWRhYmxlU2NyaXB0IHsKIAogICAgIHZvaWQgc2V0RXJy
b3IoRXJyb3ImJik7CiAKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHJvb3RV
UkwpOwotICAgIHZvaWQgbG9hZChEb2N1bWVudCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsK
LQogICAgIHZvaWQgbm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYpOwogICAg
IHZvaWQgbm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3ImJik7CiAgICAgdm9p
ZCBub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKIAogICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1
bGVLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQogCisgICAgTW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgp
OyB9CisKIHByaXZhdGU6CiAgICAgTG9hZGFibGVNb2R1bGVTY3JpcHQoY29uc3QgU3RyaW5nJiBu
b25jZSwgY29uc3QgU3RyaW5nJiBpbnRlZ3JpdHksIFJlZmVycmVyUG9saWN5LCBjb25zdCBTdHJp
bmcmIGNyb3NzT3JpZ2luTW9kZSwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBBdG9tU3Ry
aW5nJiBpbml0aWF0b3JOYW1lLCBib29sIGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDA1NzU4YjYwMGM3NTIyYjQ3ZjM2NGJh
NmExOGQzNWYxNzMxMTA3ZjkuLjVlOTlmMGY1Nzc3YjNiMjE1OGRkMGZhNGJjMzgyNzc2Y2RiMzQ4
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAK
ICNpbmNsdWRlICJMb2FkYWJsZUNsYXNzaWNTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJN
b2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5j
bHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxl
bWVudC5oIgpAQCAtMzUxLDggKzM1MiwxMSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RN
b2R1bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAg
ICAgICAgICAgc2NyaXB0Q2hhcnNldCgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmxvY2FsTmFt
ZSgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOwot
ICAgICAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIG1vZHVsZVNjcmlwdFJv
b3RVUkwpOwogICAgICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKSB7Cisg
ICAgICAgICAgICBhdXRvJiBzY3JpcHQgPSBkb3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4o
Km1fbG9hZGFibGVTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxv
YWRNb2R1bGVTY3JpcHQoc2NyaXB0LCBtb2R1bGVTY3JpcHRSb290VVJMLnN0cmluZygpLCBtYWtl
UmVmKHNjcmlwdC5wYXJhbWV0ZXJzKCkpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKQEAgLTM2Nyw4ICszNzEsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVl
c3RNb2R1bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQog
ICAgIGlmICghY29udGVudFNlY3VyaXR5UG9saWN5LmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVu
dC5kb2N1bWVudCgpLnVybCgpLnN0cmluZygpLCBtX3N0YXJ0TGluZU51bWJlciwgc291cmNlQ29k
ZS5zb3VyY2UoKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCksIGhhc0tub3duTm9uY2UpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50
KCksIHNvdXJjZUNvZGUpOwogICAgIG1fbG9hZGFibGVTY3JpcHQgPSBXVEZNb3ZlKHNjcmlwdCk7
CisgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAg
ICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoZG93bmNhc3Q8TG9hZGFibGVN
b2R1bGVTY3JpcHQ+KCptX2xvYWRhYmxlU2NyaXB0LmdldCgpKSwgc291cmNlQ29kZSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJl
YWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVy
LmNwcAppbmRleCAyNzE3Yzg2MWM3NGIwZjJhZWJjZGU0MDg3MDBlMmE5YTAzNzM3NTk1Li4xYjY1
MzJjM2IwZWFhODBkOWJkNDZjNmQ0MzIxMzY5NjIxYzAxOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0xMDEsMTAgKzEwMSwxMCBAQCBUaHJlYWRh
YmxlTG9hZGVyT3B0aW9ucyBUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6aXNvbGF0ZWRDb3B5KCkg
Y29uc3QKIH0KIAogCi1SZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gVGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRocmVhZGFibGVMb2FkZXJD
bGllbnQmIGNsaWVudCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJs
ZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMsIFN0cmluZyYmIHJlZmVycmVyKQorUmVmUHRyPFRocmVh
ZGFibGVMb2FkZXI+IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBT
dHJpbmcmJiByZWZlcnJlciwgU3RyaW5nJiYgdGFza01vZGUpCiB7CiAgICAgaWYgKGlzPFdvcmtl
ckdsb2JhbFNjb3BlPihjb250ZXh0KSB8fCAoaXM8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0
KSAmJiBkb3duY2FzdDxXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLndvcmtlck9yV29ya2xl
dFRocmVhZCgpKSkKLSAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVMb2FkZXI6OmNyZWF0
ZShzdGF0aWNfY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSY+KGNvbnRleHQpLCBjbGll
bnQsIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCksIFdURk1vdmUocmVxdWVzdCksIG9wdGlv
bnMsIFdURk1vdmUocmVmZXJyZXIpKTsKKyAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVM
b2FkZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSY+KGNv
bnRleHQpLCBjbGllbnQsIFdURk1vdmUodGFza01vZGUpLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRp
b25zLCBXVEZNb3ZlKHJlZmVycmVyKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBudWxs
cHRyOwogICAgIGlmIChpczxXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmgKaW5kZXggYzJiMjQ1YzNlYmI4YmM5MzBlZjRk
MTcyYmExNTA5YTE3OWYxZDdhNi4uMWFjNzA0YjRjM2I1MGIwZmZkYTAzNDI4YzNjZTdkYTE0OTg4
MjYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCkBAIC03NCw3
ICs3NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoVGhyZWFkYWJsZUxvYWRlcik7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgdm9pZCBs
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJj
ZVJlcXVlc3QmJiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIGNvbnN0IFRocmVhZGFibGVMb2Fk
ZXJPcHRpb25zJik7Ci0gICAgICAgIHN0YXRpYyBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgUmVz
b3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwgU3RyaW5nJiYg
cmVmZXJyZXIgPSBTdHJpbmcoKSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8VGhyZWFkYWJsZUxv
YWRlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUaHJlYWRhYmxlTG9hZGVyQ2xp
ZW50JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwg
U3RyaW5nJiYgcmVmZXJyZXIgPSBTdHJpbmcoKSwgU3RyaW5nJiYgdGFza01vZGUgPSB7IH0pOwog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSXNEb25lKCkgPSAwOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgY2FuY2VsKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IGJm
NmUyNzZhMzljMjMxNWY4ODkwYzYzMzAzMjlkNjQ0ZGZjYWVhYTUuLjA0ZmRmNTgyNzQzZWI5NzNi
NTI1ZDU0YzhhOGQ4ZjM3ZDgyNTIwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAg
LTc0LDYgKzc0LDggQEAgaW5saW5lIFdvcmtlcjo6V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWUKICAgICAsIG1faWRlbnRpZmll
cigid29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRp
ZmllcigpKQogICAgICwgbV9jb250ZXh0UHJveHkoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6Y3Jl
YXRlKCp0aGlzKSkKICAgICAsIG1fcnVudGltZUZsYWdzKHJ1bnRpbWVGbGFncykKKyAgICAsIG1f
dHlwZShvcHRpb25zLnR5cGUpCisgICAgLCBtX2NyZWRlbnRpYWxzKG9wdGlvbnMuY3JlZGVudGlh
bHMpCiB7CiAgICAgc3RhdGljIGJvb2wgYWRkZWRMaXN0ZW5lcjsKICAgICBpZiAoIWFkZGVkTGlz
dGVuZXIpIHsKQEAgLTExNywxMCArMTE5LDE1IEBAIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBX
b3JrZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OlJ1CiAK
ICAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwogICAgIGZldGNoT3B0aW9ucy5tb2RlID0g
RmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luOworICAgIGlmICh3b3JrZXItPm1fdHlwZSA9
PSBXb3JrZXJUeXBlOjpNb2R1bGUpCisgICAgICAgIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9
IHdvcmtlci0+bV9jcmVkZW50aWFsczsKKyAgICBlbHNlCisgICAgICAgIGZldGNoT3B0aW9ucy5j
cmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW47CiAgICAg
ZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKICAgICBm
ZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CiAg
ICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6
V29ya2VyOwotICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShj
b250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgd29ya2Vy
KTsKKyAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4
dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsIHdvcmtlci5nZXQo
KSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisKICAgICByZXR1cm4gd29ya2VyOwog
fQogCkBAIC0yMTksNyArMjI2LDEzIEBAIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAg
ICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kgPSBSZWZlcnJlclBvbGljeTo6RW1wdHlT
dHJpbmc7CiAgICAgaWYgKGF1dG8gcG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShtX3Njcmlw
dExvYWRlci0+cmVmZXJyZXJQb2xpY3koKSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OkhUVFBIZWFk
ZXIpKQogICAgICAgICByZWZlcnJlclBvbGljeSA9ICpwb2xpY3k7Ci0gICAgbV9jb250ZXh0UHJv
eHkuc3RhcnRXb3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwg
Y29udGV4dC0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3Nj
cmlwdExvYWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cywgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2Vy
Q3JlYXRpb25UaW1lLCByZWZlcnJlclBvbGljeSwgbV9ydW50aW1lRmxhZ3MpOworCisgICAgVVJM
IHJlc3BvbnNlVVJMID0gbV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgaWYgKCFt
X3NjcmlwdExvYWRlci0+aXNSZWRpcmVjdGVkKCkgJiYgbV9zY3JpcHRMb2FkZXItPnJlc3BvbnNl
U291cmNlKCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7Cisg
ICAgICAgIGlmIChtX3NjcmlwdExvYWRlci0+dXJsKCkuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkp
CisgICAgICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIobV9zY3JpcHRM
b2FkZXItPnVybCgpLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICB9CisgICAgbV9jb250ZXh0
UHJveHkuc3RhcnRXb3JrZXJHbG9iYWxTY29wZShyZXNwb25zZVVSTCwgbV9uYW1lLCBjb250ZXh0
LT51c2VyQWdlbnQocmVzcG9uc2VVUkwpLCBpc09ubGluZSwgbV9zY3JpcHRMb2FkZXItPnNjcmlw
dCgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIG1fc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBtX3dvcmtlckNyZWF0aW9uVGltZSwgcmVm
ZXJyZXJQb2xpY3ksIG1fdHlwZSwgbV9jcmVkZW50aWFscywgbV9ydW50aW1lRmxhZ3MpOwogICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWQoKmNvbnRleHQsIG1fc2Ny
aXB0TG9hZGVyLT5pZGVudGlmaWVyKCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5oCmluZGV4IDUzZjVlNmZmZjI3YzlmYTNlNWMwZTAxZjBmNmM0
MmM2Y2I2ZjlkMGUuLjM4YTYyM2E5OGRiYTM1ZmY4MDEzY2Q2ZmM4Yzg1YzgxMDIwNTAyMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaApAQCAtMjksOSArMjksMTEgQEAKICNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVz
dENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJQb3N0
TWVzc2FnZU9wdGlvbnMuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIK
KyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGlt
ZUZsYWdzLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KQEAgLTU1LDYgKzU3LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGlj
IEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtlcik7CiBwdWJsaWM6CiAgICAgc3RydWN0IE9w
dGlvbnMgeworICAgICAgICBXb3JrZXJUeXBlIHR5cGU7CisgICAgICAgIEZldGNoUmVxdWVzdENy
ZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwogICAgICAgICBTdHJpbmcgbmFtZTsKICAgICB9OwogICAg
IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IE9wdGlv
bnMmKTsKQEAgLTc5LDYgKzgzLDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3Ry
YWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICAgICB2b2lk
IHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKT4mJik7CiAjZW5kaWYKIAorICAgIFdvcmtlclR5cGUgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdvcmtlcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgSlNDOjpSdW50aW1lRmxhZ3MsIGNvbnN0IE9wdGlvbnMmKTsKIApA
QCAtMTEyLDYgKzExOCw4IEBAIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdv
cmtlciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBXb3JrCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fdHJhbnNmb3JtZXJzOwogI2VuZGlmCisgICAg
V29ya2VyVHlwZSBtX3R5cGUgeyBXb3JrZXJUeXBlOjpDbGFzc2ljIH07CisgICAgRmV0Y2hSZXF1
ZXN0Q3JlZGVudGlhbHMgbV9jcmVkZW50aWFscyB7IEZldGNoUmVxdWVzdENyZWRlbnRpYWxzOjpT
YW1lT3JpZ2luIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlci5pZGwKaW5kZXggNDVkNmEwODY3ODU0ZWU0MDRkZTdlN2QwMTI0OGNlYmY0NGRjYTdl
ZC4uNzAyMTc5NmRmNTA0YWRmOGU2Yjk1ODlhY2U5ZjE0NDgyMWYyOTVmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyLmlkbApAQCAtMzgsNiArMzgsOCBAQAogfTsKIAogZGljdGlvbmFyeSBXb3Jr
ZXJPcHRpb25zIHsKKyAgICBXb3JrZXJUeXBlIHR5cGUgPSAiY2xhc3NpYyI7CisgICAgRmV0Y2hS
ZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMgPSAic2FtZS1vcmlnaW4iOyAvLyBjcmVkZW50
aWFscyBpcyBvbmx5IHVzZWQgaWYgdHlwZSBpcyAibW9kdWxlIgogICAgIERPTVN0cmluZyBuYW1l
ID0gIiI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
Y3BwCmluZGV4IGRiYWIzNDhlODBjOWRlNTBiZDIxNTc3N2ExNGEzOWEwZjcwZTQ5YzcuLmNjZGU5
MDljN2NiNTJlOTc3NzRjNWI4MTU4MjNlYmNiYmIwNzBmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC03NCw2ICs3NCw4IEBAIFdvcmtlckds
b2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZShXb3JrZXJUaHJlYWRUeXBlIHR5cGUsIGNvbnN0
IFdvcmtlclBhcmFtZXRlCiAgICAgLCBtX3BlcmZvcm1hbmNlKFBlcmZvcm1hbmNlOjpjcmVhdGUo
dGhpcywgcGFyYW1zLnRpbWVPcmlnaW4pKQogICAgICwgbV9yZWZlcnJlclBvbGljeShwYXJhbXMu
cmVmZXJyZXJQb2xpY3kpCiAgICAgLCBtX3NldHRpbmdzVmFsdWVzKHBhcmFtcy5zZXR0aW5nc1Zh
bHVlcykKKyAgICAsIG1fd29ya2VyVHlwZShwYXJhbXMud29ya2VyVHlwZSkKKyAgICAsIG1fY3Jl
ZGVudGlhbHMocGFyYW1zLmNyZWRlbnRpYWxzKQogewogI2lmICFFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvblByb3h5KTsKQEAgLTI3NCw2ICsyNzYs
MTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV29ya2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwdHMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMpCiB7CiAgICAgQVNTRVJUKGNvbnRlbnRTZWN1cml0
eVBvbGljeSgpKTsKIAorICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL3dvcmtlcnMuaHRtbCNpbXBvcnRpbmctc2NyaXB0cy1hbmQtbGlicmFyaWVzCisgICAgLy8g
MS4gSWYgd29ya2VyIGdsb2JhbCBzY29wZSdzIHR5cGUgaXMgIm1vZHVsZSIsIHRocm93IGEgVHlw
ZUVycm9yIGV4Y2VwdGlvbi4KKyAgICBpZiAobV93b3JrZXJUeXBlID09IFdvcmtlclR5cGU6Ok1v
ZHVsZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImltcG9ydFNjcmlw
dHMgY2Fubm90IGJlIHVzZWQgaWYgd29lcmtlciB0eXBlIGlzIFwibW9kdWxlXCIiX3MgfTsKKwog
ICAgIFZlY3RvcjxVUkw+IGNvbXBsZXRlZFVSTHM7CiAgICAgY29tcGxldGVkVVJMcy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHVybHMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGVudHJ5IDogdXJs
cykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDQ2
ZDQ5ZDk0YzUyMzhlNDY4OGQzOTVkODdjMjA2M2ViNTcyMGQxYmYuLjc0Nzk1ZjVjMGY5YTJhMzVk
MDA5MzAxMmFkMThmNTdlMzE3ZjgyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmgKQEAgLTEyMyw2ICsxMjMsOCBAQCBjbGFzcyBXb3JrZXJHbG9iYWxTY29w
ZSA6IHB1YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBCYXNl
NgogCiAgICAgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3NldHRpbmdzVmFsdWVzOyB9CiAKKyAgICBGZXRjaE9wdGlvbnM6OkNy
ZWRlbnRpYWxzIGNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gbV9jcmVkZW50aWFsczsgfQor
CiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyR2xvYmFsU2NvcGUoV29ya2VyVGhyZWFkVHlwZSwgY29u
c3QgV29ya2VyUGFyYW1ldGVycyYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiwgV29ya2VyVGhyZWFk
JiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0
aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciopOwogCkBAIC0xNjMsOCArMTY1LDYgQEAgY2xhc3Mg
V29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2Nv
cGU+LCBwdWJsaWMgQmFzZTYKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJMb2NhdGlvbj4gbV9s
b2NhdGlvbjsKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJOYXZpZ2F0b3I+IG1fbmF2aWdhdG9y
OwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+
IG1fc2NyaXB0OwotCiAgICAgYm9vbCBtX2lzT25saW5lOwogICAgIGJvb2wgbV9zaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKQEAgLTE4Nyw2ICsxODcsOCBAQCBj
bGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9i
YWxTY29wZT4sIHB1YmxpYyBCYXNlNgogICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NWYWx1ZVBvb2w+
IG1fY3NzVmFsdWVQb29sOwogICAgIFJlZmVycmVyUG9saWN5IG1fcmVmZXJyZXJQb2xpY3k7CiAg
ICAgU2V0dGluZ3M6OlZhbHVlcyBtX3NldHRpbmdzVmFsdWVzOworICAgIFdvcmtlclR5cGUgbV93
b3JrZXJUeXBlOworICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgbV9jcmVkZW50aWFsczsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNDAwMDNjM2UwMTA5OTk2MGY2NDc4NjFl
NzAxNjg3ZDBlMzcxZDcyZC4uZWQ2NzNhYzhmN2MwZWU1NGMwNjBlY2I1OTIxNjM5MGVkNzBmZTJj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5
LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGVQcm94eSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFdvcmtlckdsb2JhbFNjb3BlUHJveHkmIGNyZWF0ZShXb3JrZXImKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29s
IGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5
LCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNv
ZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRp
bWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50
aWFscywgSlNDOjpSdW50aW1lRmxhZ3MpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRl
V29ya2VyR2xvYmFsU2NvcGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9X
b3JrZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKT4mJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCAxOWQ0YmU2NDk5MmYzMGQzY2NlNzY1NDdh
M2QyMjE4YTk4Yzg0MmMzLi43ODgzNTg3YTdhZjYyMDllM2VjYzhlN2I0MWJhZDQ3YWRmNjIyNDBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cApAQCAtNzMsNyArNzMsNyBAQCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6fldvcmtlck1lc3NhZ2lu
Z1Byb3h5KCkKICAgICAgICAgfHwgKGlzPFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KSAmJiBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCkudGhyZWFkKCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKSk7
CiB9CiAKLXZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUo
Y29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3Qg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5IHJlZmVy
cmVyUG9saWN5LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCit2b2lkIFdvcmtlck1l
c3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJM
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25s
aW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBi
b29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3Rvbmlj
VGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSwgV29ya2VyVHlw
ZSB3b3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpS
dW50aW1lRmxhZ3MgcnVudGltZUZsYWdzKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8g
YmUgcmV2aXNpdGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBB
U1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBX
b3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNj
cmlwdFVSTCwgY29uc3QgU3QKIAogICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciA9
IGRvY3VtZW50LnNvY2tldFByb3ZpZGVyKCk7CiAKLSAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFt
cyA9IHsgc2NyaXB0VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIGRvY3Vt
ZW50LnNldHRpbmdzVmFsdWVzKCkgfTsKKyAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsg
c2NyaXB0VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIHdvcmtlclR5cGUs
IGNyZWRlbnRpYWxzLCBkb2N1bWVudC5zZXR0aW5nc1ZhbHVlcygpIH07CiAgICAgYXV0byB0aHJl
YWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShwYXJhbXMsIHNvdXJjZUNvZGUsICp0
aGlzLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwgZG9jdW1lbnQudG9wT3JpZ2luKCksIHByb3h5
LCBzb2NrZXRQcm92aWRlciwgcnVudGltZUZsYWdzKTsKIAogICAgIHdvcmtlclRocmVhZENyZWF0
ZWQodGhyZWFkLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2Fn
aW5nUHJveHkuaAppbmRleCBjNWI1NzViOWU2MTViM2YzZjU5NmJmYzNkZjY4M2M4NzdjYzYyYmFi
Li5kOWU4MWUxNTdhMGY0ODUyZTQ5YjU5ZDI1NjZhOGE4MGY1ZjgxOGFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC01MCw3ICs1MCw3IEBA
IGNsYXNzIFdvcmtlck1lc3NhZ2luZ1Byb3h5IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPFdvcmtlck1lc3NhZ2luZ1ByCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGF0aW9u
cyBvZiBXb3JrZXJHbG9iYWxTY29wZVByb3h5LgogICAgIC8vIChPbmx5IHVzZSB0aGVzZSBmdW5j
dGlvbnMgaW4gdGhlIHdvcmtlciBvYmplY3QgdGhyZWFkLikKLSAgICB2b2lkIHN0YXJ0V29ya2Vy
R2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNl
Q29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUg
dGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzKSBmaW5hbDsKKyAg
ICB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNv
bnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUs
IEZldGNoUmVxdWVzdENyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgZmluYWw7CiAgICAg
dm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1l
c3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYpIGZpbmFs
OwogICAgIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggMjM4NGE1YThj
N2QyYTMwMmVlZTVjYjQwNWUxMDVlMDI1Yzk4NDNjYy4uZjRmNGIyNzQ2NmY5YTMwYjI4YjhiMjFm
NmYyYmVmOGJkZTkzODUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogCisj
aW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29w
LmgiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIldv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKQEAgLTM5LDYgKzQwLDcgQEAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKTsKIAogV29y
a2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFdvcmtl
clRocmVhZFR5cGUgdHlwZSwgUmVmPEpTQzo6Vk0+JiYgdm0sIFdvcmtlck9yV29ya2xldFRocmVh
ZCogdGhyZWFkKQogICAgIDogbV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyPih0eXBlLCBXVEZNb3ZlKHZtKSwgdGhpcykpCisgICAgLCBtX21vZHVsZUxv
YWRlcihtYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxv
YWRlcjo6T3duZXJUeXBlOjpXb3JrZXJPcldvcmtsZXQpKQogICAgICwgbV90aHJlYWQodGhyZWFk
KQogICAgICwgbV9pbnNwZWN0b3JDb250cm9sbGVyKG1ha2VVbmlxdWU8V29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcj4oKnRoaXMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IDZjMjQ0YTBjNDI3ZWUxYzhjNjVmZGNj
NzY1OTUyZjg3N2ZkOWIxNmIuLjU0NGYwNDdhZWMyNzgzMjc0NGQwYThhNzBhZjdlOTM5YzMzMDk5
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmgKQEAgLTMyLDYgKzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRXZlbnRMb29wVGFza0dyb3VwOworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogY2xhc3Mg
V29ya2VyRXZlbnRMb29wOwogY2xhc3MgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNz
IFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI7CkBAIC01NCw2ICs1NSw4IEBAIGNsYXNz
IFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIHB1YmxpYyBSZWZDb3VuCiAKICAgICB1bnNpZ25lZCBsb25nIGNyZWF0ZVVuaXF1ZUlkZW50
aWZpZXIoKSB7IHJldHVybiBtX3VuaXF1ZUlkZW50aWZpZXIrKzsgfQogCisgICAgU2NyaXB0TW9k
dWxlTG9hZGVyJiBtb2R1bGVMb2FkZXIoKSB7IHJldHVybiAqbV9tb2R1bGVMb2FkZXI7IH0KKwog
ICAgIC8vIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCiAgICAgRXZlbnRMb29wVGFza0dyb3VwJiBl
dmVudExvb3AoKSBmaW5hbDsKICAgICBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IGZpbmFs
OwpAQCAtODgsNiArOTEsNyBAQCBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1
YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMgUmVmQ291bgogICAgIHZvaWQgZGVy
ZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+IG1fc2NyaXB0OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxTY3JpcHRNb2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9hZGVyOwogICAgIFdvcmtlck9y
V29ya2xldFRocmVhZCogbV90aHJlYWQ7CiAgICAgUmVmUHRyPFdvcmtlckV2ZW50TG9vcD4gbV9l
dmVudExvb3A7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2tHcm91cD4gbV9kZWZh
dWx0VGFza0dyb3VwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggY2Q0ZWMyNDY4MjUyNWFhYmM2
NDJkODc3YTBkYTAxMWViZGUxMTQzMS4uOTFhOGE4Nzk0NTZlMDY3NjIyOWE4NzA4YTg3NTA5OTkz
YTJlMjQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zNSwxNSArMzUsMjMgQEAKICNpbmNs
dWRlICJKU0V4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIkpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUu
aCIKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIk1v
ZHVsZUZldGNoRmFpbHVyZUtpbmQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xp
ZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVDbGllbnQuaCIKKyNpbmNsdWRlICJX
b3JrZXJTY3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlv
bi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlZmVycmVkV29ya1RpbWVyLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvRXhjZXB0aW9uSGVscGVycy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dDQWN0aXZp
dHlDYWxsYmFjay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNl
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU05h
dGl2ZVN0ZEZ1bmN0aW9uLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRj
aFBhcmFtZXRlcnMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1NjcmlwdEZldGNoZXIu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmdJbmxpbmVzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTIyOCw2ICsyMzYsMjQ1IEBAIHZvaWQgV29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29k
CiAgICAgfQogfQogCitzdGF0aWMgSWRlbnRpZmllciBqc1ZhbHVlVG9Nb2R1bGVLZXkoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYg
KHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tVWlkKGpz
Q2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAgIEFTU0VSVCh2YWx1ZS5p
c1N0cmluZygpKTsKKyAgICByZXR1cm4gYXNTdHJpbmcodmFsdWUpLT50b0lkZW50aWZpZXIobGV4
aWNhbEdsb2JhbE9iamVjdCk7Cit9CisKK0pTQzo6SlNWYWx1ZSBXb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShKU0M6OkpTTW9kdWxlUmVjb3JkJiBtb2R1bGVS
ZWNvcmQpCit7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVy
LmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOworICAgIEpTTG9ja0hvbGRl
ciBsb2NrIHsgdm0gfTsKKyAgICByZXR1cm4gbW9kdWxlUmVjb3JkLmV2YWx1YXRlKCZnbG9iYWxP
YmplY3QpOworfQorCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KFdvcmtlclNjcmlwdEZldGNoZXIm
IHNjcmlwdEZldGNoZXIsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7Cisg
ICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAgIHJldHVybiBNZXNzYWdlUXVl
dWVUZXJtaW5hdGVkOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBn
bG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworCisgICAg
YXV0byBwcm90ZWN0b3IgPSBtYWtlUmVmKHNjcmlwdEZldGNoZXIpOworICAgIHsKKyAgICAgICAg
YXV0byYgcHJvbWlzZSA9IEpTRXhlY1N0YXRlOjpsb2FkTW9kdWxlKGdsb2JhbE9iamVjdCwgc291
cmNlQ29kZS5qc1NvdXJjZUNvZGUoKSwgSlNDOjpKU1NjcmlwdEZldGNoZXI6OmNyZWF0ZSh2bSwg
eyAmc2NyaXB0RmV0Y2hlciB9KSk7CisKKyAgICAgICAgYXV0byYgZnVsZmlsbEhhbmRsZXIgPSAq
SlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCAxLCBTdHJpbmco
KSwgW3Byb3RlY3Rvcl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpIC0+IEpTQzo6RW5jb2RlZEpTVmFsdWUgeworICAgICAgICAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9
OworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAg
ICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgICAgICBwcm90ZWN0b3ItPm5vdGlmeUxvYWRD
b21wbGV0ZWQoKm1vZHVsZUtleS5pbXBsKCkpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVq
ZWN0SGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmpl
Y3QsIDEsIFN0cmluZygpLCBbcHJvdGVjdG9yXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgeworICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworICAgICAg
ICAgICAgSlNWYWx1ZSBlcnJvclZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICAg
ICAgICAgIGlmIChlcnJvclZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRv
KiBvYmplY3QgPSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOworICAgICAgICAgICAgICAgIGlm
IChKU1ZhbHVlIGZhaWx1cmVLaW5kVmFsdWUgPSBvYmplY3QtPmdldERpcmVjdCh2bSwgc3RhdGlj
X2Nhc3Q8SlNWTUNsaWVudERhdGEmPigqdm0uY2xpZW50RGF0YSkuYnVpbHRpbk5hbWVzKCkuZmFp
bHVyZUtpbmRQcml2YXRlTmFtZSgpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlz
IGhvc3QgcHJvcGFnYXRlZCBlcnJvciBpbiB0aGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZS4KKyAg
ICAgICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxNb2R1bGVGZXRjaEZhaWx1cmVL
aW5kPihmYWlsdXJlS2luZFZhbHVlLmFzSW50MzIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkOgorICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJv
ciB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlw
ZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6bnVsbG9w
dAorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpX
YXNDYW5jZWxlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3Rvci0+bm90aWZ5TG9h
ZFdhc0NhbmNlbGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAg
ICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7Cisg
ICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAor
ICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVzc2FnZSB7CisgICAgICAg
ICAgICAgICAgICAgIE1lc3NhZ2VTb3VyY2U6OkpTLAorICAgICAgICAgICAgICAgICAgICBNZXNz
YWdlTGV2ZWw6OkVycm9yLAorICAgICAgICAgICAgICAgICAgICByZXRyaWV2ZUVycm9yTWVzc2Fn
ZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1ZSwgc2NvcGUpLAorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcHJvbWlzZS50aGVuKCZnbG9i
YWxPYmplY3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRsZXIpOworICAgIH0KKyAgICBt
X2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwor
CisgICAgLy8gRHJpdmUgUnVuTG9vcCB1bnRpbCB3ZSBnZXQgZWl0aGVyIG9mICJXb3JrZXIgaXMg
dGVybWluYXRlZCIsICJMb2FkaW5nIGlzIGRvbmUiLCBvciAiTG9hZGluZyBpcyBmYWlsZWQiLgor
ICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSBtX2dsb2JhbFNjb3BlLT53b3JrZXJPcldvcmts
ZXRUaHJlYWQoKS0+cnVuTG9vcCgpOworCisgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcmVjZWl2
ZSBtZXNzYWdlcyB0aGF0IGFyZSBub3QgcmVsYXRlZCB0byBhc3luY2hyb25vdXMgcmVzb3VyY2Ug
bG9hZGluZy4KKyAgICAvLyBPdGhlcndpc2UsIGEgd29ya2VyIGRpc2NhcmRzIHNvbWUgbWVzc2Fn
ZXMgZnJvbSB0aGUgbWFpbiB0aHJlYWQgaGVyZSBpbiBhIHJhY3kgd2F5LgorICAgIC8vIEZvciBl
eGFtcGxlLCB0aGUgbWFpbiB0aHJlYWQgY2FuIHBvc3RNZXNzYWdlIGp1c3QgYWZ0ZXIgY3JlYXRp
bmcgYSBXb3JrZXIuIEluIHRoYXQgY2FzZSwgcG9zdE1lc3NhZ2UncworICAgIC8vIHRhc2sgaXMg
cXVldWVkIGluIFdvcmtlclJ1bkxvb3AgYmVmb3JlIHN0YXJ0IHJ1bm5pbmcgbW9kdWxlIHNjcmlw
dHMuIFRoaXMgdGFzayBzaG91bGQgbm90IGJlIGRpc2NhcmRlZAorICAgIC8vIGluIHRoZSBmb2xs
b3dpbmcgZHJpdmluZyBvZiB0aGUgUnVuTG9vcCB3aGljaCBtYWlubHkgYXR0ZW1wdCB0byBjb2xs
ZWN0IGluaXRpYWwgbG9hZCBvZiBtb2R1bGUgc2NyaXB0cy4KKyAgICBTdHJpbmcgdGFza01vZGUg
PSAibG9hZE1vZHVsZXNJbldvcmtlck9yV29ya2xldE1vZGUiX3M7CisgICAgTWVzc2FnZVF1ZXVl
V2FpdFJlc3VsdCByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQ7CisgICAgd2hp
bGUgKCghcHJvdGVjdG9yLT5pc0xvYWRlZCgpICYmICFwcm90ZWN0b3ItPndhc0NhbmNlbGVkKCkp
ICYmIHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKSB7CisgICAgICAgIHJlc3VsdCA9
IHJ1bkxvb3AucnVuSW5Nb2RlKG1fZ2xvYmFsU2NvcGUsIHRhc2tNb2RlKTsKKyAgICAgICAgaWYg
KHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKQorICAgICAgICAgICAgbV9nbG9iYWxT
Y29wZS0+ZXZlbnRMb29wKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKKyAgICB9CisK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRG
ZXRjaGVyLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBTdHJpbmcqIHJldHVy
bmVkRXhjZXB0aW9uTWVzc2FnZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRv
JiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworCisg
ICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9uOworICAgIEpTRXhl
Y1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpm
cm9tVWlkKHZtLCBzY3JpcHRGZXRjaGVyLm1vZHVsZUtleSgpKSwganNVbmRlZmluZWQoKSwgcmV0
dXJuZWRFeGNlcHRpb24pOworICAgIGlmICgocmV0dXJuZWRFeGNlcHRpb24gJiYgaXNUZXJtaW5h
dGVkRXhlY3V0aW9uRXhjZXB0aW9uKHZtLCByZXR1cm5lZEV4Y2VwdGlvbikpIHx8IGlzVGVybWlu
YXRpbmdFeGVjdXRpb24oKSkgeworICAgICAgICBmb3JiaWRFeGVjdXRpb24oKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbikgeworICAgICAgICBp
ZiAobV9nbG9iYWxTY29wZS0+Y2FuSW5jbHVkZUVycm9yRGV0YWlscyhzb3VyY2VDb2RlLmNhY2hl
ZFNjcmlwdCgpLCBzb3VyY2VDb2RlLnVybCgpLnN0cmluZygpKSkgeworICAgICAgICAgICAgLy8g
RklYTUU6IEl0J3Mgbm90IGdyZWF0IHRoYXQgdGhpcyBjYW4gcnVuIGFyYml0cmFyeSBjb2RlIHRv
IHN0cmluZy1pZnkgdGhlIHZhbHVlIG9mIHRoZSBleGNlcHRpb24uCisgICAgICAgICAgICAvLyBE
byB3ZSBuZWVkIHRvIGRvIGFueXRoaW5nIHRvIGhhbmRsZSB0aGF0IHByb3Blcmx5LCBpZiBpdCwg
c2F5LCByYWlzZXMgYW5vdGhlciBleGNlcHRpb24/CisgICAgICAgICAgICBpZiAocmV0dXJuZWRF
eGNlcHRpb25NZXNzYWdlKQorICAgICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlvbk1lc3Nh
Z2UgPSByZXR1cm5lZEV4Y2VwdGlvbi0+dmFsdWUoKS50b1dURlN0cmluZygmZ2xvYmFsT2JqZWN0
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgZGV0YWls
ZWQgZXJyb3Igd2l0aCBhIGdlbmVyaWMgZXJyb3IuCisgICAgICAgICAgICBTdHJpbmcgZ2VuZXJp
Y0Vycm9yTWVzc2FnZSB7ICJTY3JpcHQgZXJyb3IuIl9zIH07CisgICAgICAgICAgICBpZiAocmV0
dXJuZWRFeGNlcHRpb25NZXNzYWdlKQorICAgICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlv
bk1lc3NhZ2UgPSBnZW5lcmljRXJyb3JNZXNzYWdlOworICAgICAgICB9CisgICAgfQorfQorCit2
b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVs
ZShjb25zdCBVUkwmIG1vZHVsZVVSTCwgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50
aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChpc0V4ZWN1dGlvbkZvcmJpZGRlbigpKSB7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciB9KTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisg
ICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0g
fTsKKworICAgIGF1dG8gc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZldGNoZXI6OmNyZWF0
ZShjcmVkZW50aWFscyk7CisgICAgeworICAgICAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVjU3Rh
dGU6OmxvYWRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVVUkwuc3RyaW5nKCksIGpzVW5kZWZp
bmVkKCksIEpTQzo6SlNTY3JpcHRGZXRjaGVyOjpjcmVhdGUodm0sIHsgc2NyaXB0RmV0Y2hlci5w
dHIoKSB9KSk7CisKKyAgICAgICAgYXV0byB0YXNrID0gY3JlYXRlU2hhcmVkVGFzazx2b2lkKE9w
dGlvbmFsPEV4Y2VwdGlvbj4mJik+KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAg
ICAgIH0pOworCisgICAgICAgIGF1dG8mIGZ1bGZpbGxIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFt0YXNrLCBzY3Jp
cHRGZXRjaGVyXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkgLT4gSlNDOjpFbmNvZGVkSlNWYWx1ZSB7CisgICAgICAgICAgICAvLyB0YXNrLT5ydW4o
V1RGOjpudWxsb3B0KTsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgICAgICAgICAgSWRlbnRpZmll
ciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisgICAgICAgICAgICBzY3JpcHRGZXRjaGVyLT5ub3RpZnlMb2FkQ29tcGxldGVkKCptb2R1
bGVLZXkuaW1wbCgpKTsKKworICAgICAgICAgICAgYXV0byogY29udGV4dCA9IGRvd25jYXN0PFdv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlPihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9i
YWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICAgICAgaWYgKCFj
b250ZXh0IHx8ICFjb250ZXh0LT5zY3JpcHQoKSkgeworICAgICAgICAgICAgICAgIHRhc2stPnJ1
bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIE5ha2VkUHRyPEpT
Qzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICAgICAgICAgIEpTRXhlY1N0YXRl
OjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoKmdsb2JhbE9iamVjdCwgbW9kdWxlS2V5LCBqc1VuZGVm
aW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgICAgICAgICBpZiAoKHJldHVybmVkRXhj
ZXB0aW9uICYmIGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbih2bSwgcmV0dXJuZWRFeGNl
cHRpb24pKSB8fCBjb250ZXh0LT5zY3JpcHQoKS0+aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7
CisgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQtPnNjcmlwdCgpKQorICAgICAgICAgICAgICAg
ICAgICBjb250ZXh0LT5zY3JpcHQoKS0+Zm9yYmlkRXhlY3V0aW9uKCk7CisgICAgICAgICAgICAg
ICAgdGFzay0+cnVuKFdURjo6bnVsbG9wdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2U7
CisgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQtPmNhbkluY2x1ZGVFcnJvckRldGFpbHMobnVs
bHB0ciwgbW9kdWxlS2V5LnN0cmluZygpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBydW4gYXJiaXRyYXJ5IGNvZGUgdG8gc3Ry
aW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgICAgICAgICAg
Ly8gRG8gd2UgbmVlZCB0byBkbyBhbnl0aGluZyB0byBoYW5kbGUgdGhhdCBwcm9wZXJseSwgaWYg
aXQsIHNheSwgcmFpc2VzIGFub3RoZXIgZXhjZXB0aW9uPworICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlID0gcmV0dXJuZWRFeGNlcHRpb24tPnZhbHVlKCkudG9XVEZTdHJpbmcoZ2xvYmFsT2Jq
ZWN0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBP
dmVyd3JpdGUgdGhlIGRldGFpbGVkIGVycm9yIHdpdGggYSBnZW5lcmljIGVycm9yLgorICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlID0gIlNjcmlwdCBlcnJvci4iX3M7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihtZXNzYWdlLCB7
IH0sIHsgfSwgeyB9LCB7IH0sIHsgfSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRh
c2stPnJ1bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0SGFu
ZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEs
IFN0cmluZygpLCBbdGFza10oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpIHsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIEpTVmFs
dWUgZXJyb3JWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAgICAgICAgICBpZiAo
ZXJyb3JWYWx1ZS5pc09iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byogb2JqZWN0ID0g
SlNDOjphc09iamVjdChlcnJvclZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT5n
ZXREaXJlY3Qodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhJj4oKnZtLmNsaWVudERhdGEp
LmJ1aWx0aW5OYW1lcygpLmZhaWx1cmVLaW5kUHJpdmF0ZU5hbWUoKSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAg
ICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gcmV0cmlldmVFcnJvck1lc3NhZ2VXaXRo
b3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2bSwgb2JqZWN0LCBjYXRjaFNjb3BlKTsKKyAgICAgICAg
ICAgICAgICAgICAgdGFzay0+cnVuKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsIG1lc3NhZ2UgfSk7
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChvYmplY3QtPmluaGVy
aXRzPEVycm9ySW5zdGFuY2U+KHZtKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvKiBlcnJv
ciA9IGpzQ2FzdDxFcnJvckluc3RhbmNlKj4ob2JqZWN0KTsKKyAgICAgICAgICAgICAgICAgICAg
c3dpdGNoIChlcnJvci0+ZXJyb3JUeXBlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBF
cnJvclR5cGU6OlR5cGVFcnJvcjogeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBjYXRj
aFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBTdHJpbmcgbWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoKmdsb2Jh
bE9iamVjdCwgdm0sIGVycm9yLCBjYXRjaFNjb3BlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRhc2stPnJ1bihFeGNlcHRpb24geyBUeXBlRXJyb3IsIG1lc3NhZ2UgfSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JUeXBlOjpT
eW50YXhFcnJvcjogeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBjYXRjaFNjb3BlID0g
REVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcg
bWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoKmdsb2JhbE9iamVjdCwg
dm0sIGVycm9yLCBjYXRjaFNjb3BlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhc2stPnJ1
bihFeGNlcHRpb24geyBKU1N5bnRheEVycm9yLCBtZXNzYWdlIH0pOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xB
UkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSByZXRyaWV2
ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKCpnbG9iYWxPYmplY3QsIHZtLCBlcnJvclZhbHVlLCBj
YXRjaFNjb3BlKTsKKyAgICAgICAgICAgIHRhc2stPnJ1bihFeGNlcHRpb24geyBBYm9ydEVycm9y
LCBtZXNzYWdlIH0pOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcHJvbWlzZS50aGVuKCZnbG9iYWxPYmpl
Y3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRsZXIpOworICAgIH0KKyAgICBtX2dsb2Jh
bFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworfQorCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBKU0dsb2JhbFNjb3BlUHJvdG90eXBlLCB0eXBlbmFtZSBKU0dsb2Jh
bFNjb3BlLCB0eXBlbmFtZSBHbG9iYWxTY29wZT4KIHZvaWQgV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdFdpdGhTdWJjbGFzcygpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCmlu
ZGV4IGM0OTMwMWFlZDNkZDA4OWRhNzk3MzI3NjBjYWYyZjdiNjRkYjExYjYuLjlmMDIzYTYyZjgx
NDNlN2Q5ODJmYmY3ZjU4ZWVlYWRjYTNhNWI1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIuaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8
d3RmL01lc3NhZ2VRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9OYWtlZFB0ci5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKQEAgLTQ0LDkgKzQ1LDExIEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2NsYXNzIExvYWRhYmxl
TW9kdWxlU2NyaXB0OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIGNsYXNzIFdvcmtlckNvbnNv
bGVDbGllbnQ7CiBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTsKK2NsYXNzIFdvcmtl
clNjcmlwdEZldGNoZXI7CiAKIGNsYXNzIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIpOwpAQCAtOTQsNiArOTcsMTMgQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlciB7CiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3RyaW5n
KiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKICAgICB2b2lkIGV2YWx1YXRl
KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mIHJldHVy
bmVkRXhjZXB0aW9uLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIp
OwogCisgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlTW9kdWxlKEpTQzo6SlNNb2R1bGVSZWNvcmQm
KTsKKworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlKFdvcmtlclNjcmlwdEZldGNoZXIm
LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3Nh
Z2UgPSBudWxscHRyKTsKKyAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IGxvYWRNb2R1bGVTeW5j
aHJvbm91c2x5KFdvcmtlclNjcmlwdEZldGNoZXImLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7
CisKKyAgICB2b2lkIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIG1vZHVsZVVSTCwg
RmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxFeGNlcHRpb24+JiYpPiYmKTsKKwogcHJvdGVjdGVkOgogICAgIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlKiBnbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsU2NvcGU7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCmluZGV4
IDNhNGRhZWZjMzkwMmJkYjJlYTg0ZmM1OGQ3ZTQyZjgzZTVmMDdlMmYuLjlmMzFkMGRmZDU5YTg3
MDdmZDRlYjU5Y2MzYzkyYTA2NjQ4MWRlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclNjcmlwdExvYWRlci5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBPcHRpb25hbDxFeGNl
cHRpb24+IFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZFN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dAogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKLXZvaWQgV29ya2VyU2Ny
aXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0JiYgc2NyaXB0UmVxdWVzdCwgRmV0
Y2hPcHRpb25zJiYgZmV0Y2hPcHRpb25zLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVu
dCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlIHNl
cnZpY2VXb3JrZXJNb2RlLCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCkKK3ZvaWQg
V29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0JiYgc2NyaXB0UmVx
dWVzdCwgRmV0Y2hPcHRpb25zJiYgZmV0Y2hPcHRpb25zLCBDb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtl
cnNNb2RlIHNlcnZpY2VXb3JrZXJNb2RlLCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVu
dCwgU3RyaW5nJiYgdGFza01vZGUpCiB7CiAgICAgbV9jbGllbnQgPSAmY2xpZW50OwogICAgIG1f
dXJsID0gc2NyaXB0UmVxdWVzdC51cmwoKTsKQEAgLTEyMyw4ICsxMjMsNiBAQCB2b2lkIFdvcmtl
clNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IHNjcmlwdEV4ZWN1dAogICAgIEFTU0VSVChmZXRjaE9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlv
bnM6Ok1vZGU6OlNhbWVPcmlnaW4gfHwgKGZldGNoT3B0aW9ucy5kZXN0aW5hdGlvbiAhPSBGZXRj
aE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTZXJ2aWNld29ya2VyICYmIGZldGNoT3B0aW9ucy5kZXN0
aW5hdGlvbiAhPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpXb3JrZXIpKTsKIAogICAgIFRo
cmVhZGFibGVMb2FkZXJPcHRpb25zIG9wdGlvbnMgeyBXVEZNb3ZlKGZldGNoT3B0aW9ucykgfTsK
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFkZCBhbiBvcHRpb24gdG8gc2V0IGNyZWRlbnRpYWwg
bW9kZS4KLSAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFs
czo6U2FtZU9yaWdpbjsKICAgICBvcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID0gU2VuZENhbGxi
YWNrUG9saWN5OjpTZW5kQ2FsbGJhY2tzOwogICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9s
aWN5RW5mb3JjZW1lbnQgPSBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDsKICAgICBp
ZiAoZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246
OlNlcnZpY2V3b3JrZXIpCkBAIC0xNDMsNyArMTQxLDcgQEAgdm9pZCBXb3JrZXJTY3JpcHRMb2Fk
ZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVj
dXQKIAogICAgIC8vIER1cmluZyBjcmVhdGUsIGNhbGxiYWNrcyBtYXkgaGFwcGVuIHdoaWNoIHJl
bW92ZSB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3QuCiAgICAgUmVmPFdvcmtlclNj
cmlwdExvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7Ci0gICAgbV90aHJlYWRhYmxlTG9hZGVy
ID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsICp0aGlz
LCBXVEZNb3ZlKCpyZXF1ZXN0KSwgb3B0aW9ucyk7CisgICAgbV90aHJlYWRhYmxlTG9hZGVyID0g
VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsICp0aGlzLCBX
VEZNb3ZlKCpyZXF1ZXN0KSwgb3B0aW9ucywgeyB9LCBXVEZNb3ZlKHRhc2tNb2RlKSk7CiB9CiAK
IGNvbnN0IFVSTCYgV29ya2VyU2NyaXB0TG9hZGVyOjpyZXNwb25zZVVSTCgpIGNvbnN0CkBAIC0x
OTAsNiArMTg4LDggQEAgdm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc28KICAgICBtX2NlcnRpZmljYXRl
SW5mbyA9IHJlc3BvbnNlLmNlcnRpZmljYXRlSW5mbygpID8gKnJlc3BvbnNlLmNlcnRpZmljYXRl
SW5mbygpIDogQ2VydGlmaWNhdGVJbmZvKCk7CiAgICAgbV9yZXNwb25zZU1JTUVUeXBlID0gcmVz
cG9uc2UubWltZVR5cGUoKTsKICAgICBtX3Jlc3BvbnNlRW5jb2RpbmcgPSByZXNwb25zZS50ZXh0
RW5jb2RpbmdOYW1lKCk7CisgICAgbV9yZXNwb25zZVNvdXJjZSA9IHJlc3BvbnNlLnNvdXJjZSgp
OworICAgIG1faXNSZWRpcmVjdGVkID0gcmVzcG9uc2UuaXNSZWRpcmVjdGVkKCk7CiAgICAgbV9j
b250ZW50U2VjdXJpdHlQb2xpY3kgPSBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMgeyByZXNwb25zZSB9OwogICAgIG1fcmVmZXJyZXJQb2xpY3kgPSByZXNwb25zZS5odHRwSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJlZmVycmVyUG9saWN5KTsKICAgICBpZiAobV9jbGll
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaAppbmRleCA3
ZmRkMGIzZjZhMDFjMmRiNTc3MjRhOTBiM2JiOTg0MGYxZTY4ZTVmLi5jZmEzMWEzNTMyNTlhZWVk
MTk4ZjkzOTFmZmMxNTExYjQwNTBiODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJGZXRjaE9wdGlv
bnMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1
ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlRocmVhZGFi
bGVMb2FkZXIuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVk
ZSA8bWVtb3J5PgpAQCAtNDMsNyArNDQsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBFeGNlcHRpb247Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKIGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiBjbGFzcyBXb3JrZXJTY3Jp
cHRMb2FkZXJDbGllbnQ7CkBAIC01OCw3ICs1OCw3IEBAIGNsYXNzIFdvcmtlclNjcmlwdExvYWRl
ciA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj4sIHB1YmxpYyBUaHJlYWRh
CiAgICAgfQogCiAgICAgT3B0aW9uYWw8RXhjZXB0aW9uPiBsb2FkU3luY2hyb25vdXNseShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgVVJMJiwgRmV0Y2hPcHRpb25zOjpNb2RlLCBGZXRj
aE9wdGlvbnM6OkNhY2hlLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgY29uc3Qg
U3RyaW5nJiBpbml0aWF0b3JJZGVudGlmaWVyKTsKLSAgICB2b2lkIGxvYWRBc3luY2hyb25vdXNs
eShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9u
cyYmLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2Rl
LCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmKTsKKyAgICB2b2lkIGxvYWRBc3luY2hyb25vdXNs
eShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9u
cyYmLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2Rl
LCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmLCBTdHJpbmcmJiB0YXNrTW9kZSk7CiAKICAgICB2
b2lkIG5vdGlmeUVycm9yKCk7CiAKQEAgLTY3LDYgKzY3LDggQEAgY2xhc3MgV29ya2VyU2NyaXB0
TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRo
cmVhZGEKICAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4g
bV9yZWZlcnJlclBvbGljeTsgfQogICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4g
bV91cmw7IH0KICAgICBjb25zdCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3Q7CisgICAgUmVzb3Vy
Y2VSZXNwb25zZTo6U291cmNlIHJlc3BvbnNlU291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNw
b25zZVNvdXJjZTsgfQorICAgIGJvb2wgaXNSZWRpcmVjdGVkKCkgY29uc3QgeyByZXR1cm4gbV9p
c1JlZGlyZWN0ZWQ7IH0KICAgICBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5m
bygpIGNvbnN0IHsgcmV0dXJuIG1fY2VydGlmaWNhdGVJbmZvOyB9CiAgICAgY29uc3QgU3RyaW5n
JiByZXNwb25zZU1JTUVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZU1JTUVUeXBlOyB9
CiAgICAgYm9vbCBmYWlsZWQoKSBjb25zdCB7IHJldHVybiBtX2ZhaWxlZDsgfQpAQCAtMTA3LDYg
KzEwOSw4IEBAIGNsYXNzIFdvcmtlclNjcmlwdExvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdv
cmtlclNjcmlwdExvYWRlcj4sIHB1YmxpYyBUaHJlYWRhCiAgICAgdW5zaWduZWQgbG9uZyBtX2lk
ZW50aWZpZXIgeyAwIH07CiAgICAgYm9vbCBtX2ZhaWxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2ZpbmlzaGluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUmVkaXJlY3RlZCB7IGZhbHNlIH07
CisgICAgUmVzb3VyY2VSZXNwb25zZTo6U291cmNlIG1fcmVzcG9uc2VTb3VyY2UgeyBSZXNvdXJj
ZVJlc3BvbnNlOjpTb3VyY2U6OlVua25vd24gfTsKICAgICBSZXNvdXJjZUVycm9yIG1fZXJyb3I7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggNzI3OTBh
MDMzMjI2MTllNmVlN2U2MTZhOGJkZTE4YmQ1NTJhNTc4My4uNjNlZThjOGQzNmYzYmQ3MjQ2MzUz
YzViZGY4NDE3ZGQ4MTA3YzRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgor
I2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTU1LDYgKzU3LDggQEAgV29ya2VyUGFyYW1ldGVycyBXb3JrZXJQ
YXJhbWV0ZXJzOjppc29sYXRlZENvcHkoKSBjb25zdAogICAgICAgICBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksCiAgICAgICAgIHRpbWVPcmlnaW4sCiAgICAgICAg
IHJlZmVycmVyUG9saWN5LAorICAgICAgICB3b3JrZXJUeXBlLAorICAgICAgICBjcmVkZW50aWFs
cywKICAgICAgICAgc2V0dGluZ3NWYWx1ZXMuaXNvbGF0ZWRDb3B5KCkKICAgICB9OwogfQpAQCAt
MTIzLDkgKzEyNywzMSBAQCBib29sIFdvcmtlclRocmVhZDo6c2hvdWxkV2FpdEZvcldlYkluc3Bl
Y3Rvck9uU3RhcnR1cCgpIGNvbnN0CiAKIHZvaWQgV29ya2VyVGhyZWFkOjpldmFsdWF0ZVNjcmlw
dElmTmVjZXNzYXJ5KFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkKIHsKLSAgICBnbG9iYWxTY29w
ZSgpLT5zY3JpcHQoKS0+ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5z
b3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNjcmlwdFVSTCkpLCAmZXhjZXB0
aW9uTWVzc2FnZSk7Ci0KLSAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAgICAvLyBX
ZSBhcmUgY3VycmVudGx5IGhvbGRpbmcgb25seSB0aGUgaW5pdGlhbCBzY3JpcHQgY29kZS4gSWYg
dGhlIFdvcmtlclR5cGUgaXMgTW9kdWxlLCB3ZSBzaG91bGQgZmV0Y2ggdGhlIGVudGlyZSBncmFw
aCBiZWZvcmUgZXhlY3V0aW5nIHRoZSByZXN0IG9mIHRoaXMuCisgICAgLy8gV2UgaW52b2tlIG1v
ZHVsZSBsb2FkZXIgYXMgaWYgd2UgYXJlIGV4ZWN1dGluZyBpbmxpbmUgbW9kdWxlIHNjcmlwdCB0
YWcgaW4gRG9jdW1lbnQuCisKKyAgICBpZiAobV9zdGFydHVwRGF0YS0+cGFyYW1zLndvcmtlclR5
cGUgPT0gV29ya2VyVHlwZTo6Q2xhc3NpYykgeworICAgICAgICBnbG9iYWxTY29wZSgpLT5zY3Jp
cHQoKS0+ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2Rl
LCBVUkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNjcmlwdFVSTCkpLCAmZXhjZXB0aW9uTWVzc2Fn
ZSk7CisgICAgICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIEZJWE1FIGZpeCBpbml0aWF0b3IgbmFtZS4KKyAgICAgICAgU2NyaXB0U291cmNl
Q29kZSBzb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBE
YXRhLT5wYXJhbXMuc2NyaXB0VVJMKSwgeyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZTo6TW9kdWxlKTsKKyAgICAgICAgYXV0byBzY3JpcHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0
Y2hlcjo6Y3JlYXRlKGdsb2JhbFNjb3BlKCktPmNyZWRlbnRpYWxzKCkpOworICAgICAgICBNZXNz
YWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9IGdsb2JhbFNjb3BlKCktPnNjcmlwdCgpLT5sb2Fk
TW9kdWxlU3luY2hyb25vdXNseShzY3JpcHRGZXRjaGVyLmdldCgpLCBzb3VyY2VDb2RlKTsKKyAg
ICAgICAgaWYgKHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKSB7CisgICAgICAgICAg
ICBpZiAoT3B0aW9uYWw8TG9hZGFibGVTY3JpcHQ6OkVycm9yPiBlcnJvciA9IHNjcmlwdEZldGNo
ZXItPmVycm9yKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoT3B0aW9uYWw8TG9hZGFibGVTY3Jp
cHQ6OkNvbnNvbGVNZXNzYWdlPiBtZXNzYWdlID0gZXJyb3ItPmNvbnNvbGVNZXNzYWdlKQorICAg
ICAgICAgICAgICAgICAgICBleGNlcHRpb25NZXNzYWdlID0gbWVzc2FnZS0+bWVzc2FnZTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbk1lc3NhZ2Ug
PSAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zOworICAgICAgICAgICAgICAg
IGdsb2JhbFNjb3BlKCktPnJlcG9ydEV4Y2VwdGlvbihleGNlcHRpb25NZXNzYWdlLCB7IH0sIHsg
fSwgeyB9LCB7IH0sIHsgfSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFzY3JpcHRGZXRjaGVy
LT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICAgICAgLy8gRXZhbHVhdGUuCisgICAgICAg
ICAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShz
Y3JpcHRGZXRjaGVyLmdldCgpLCBzb3VyY2VDb2RlLCAmZXhjZXB0aW9uTWVzc2FnZSk7CisgICAg
ICAgICAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9CiAKICAgICAvLyBGcmVlIHRoZSBzdGFydHVwIGRhdGEgdG8gY2F1c2Ug
aXRzIG1lbWJlciB2YXJpYWJsZSBkZXJlZidzIGhhcHBlbiBvbiB0aGUgd29ya2VyJ3MgdGhyZWFk
IChzaW5jZQogICAgIC8vIGFsbCByZWYvZGVyZWZzIG9mIHRoZXNlIG9iamVjdHMgYXJlIGhhcHBl
bmluZyBvbiB0aGUgdGhyZWFkIGF0IHRoaXMgcG9pbnQpLiBOb3RlIHRoYXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5oCmluZGV4IDg4OTA3OTA4ZTdhOWI4MDllOGYyYTRlNDczZDc1
MmQxMWQyOTM3YzAuLjk1MTJlZmRiMThmMzJhNTBlY2I3ZmI1Njk1OWQ2MWU4ODcyZmExZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAtMjYsNyArMjYsMTAgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJX
b3JrZXJPcldvcmtsZXRUaHJlYWQuaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCisjaW5j
bHVkZSAiV29ya2VyVHlwZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFn
cy5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC02Myw2ICs2
Niw4IEBAIHN0cnVjdCBXb3JrZXJQYXJhbWV0ZXJzIHsKICAgICBib29sIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeTsKICAgICBNb25vdG9uaWNUaW1lIHRpbWVPcmln
aW47CiAgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3k7CisgICAgV29ya2VyVHlwZSB3
b3JrZXJUeXBlOworICAgIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwogICAg
IFNldHRpbmdzOjpWYWx1ZXMgc2V0dGluZ3NWYWx1ZXM7CiAKICAgICBXb3JrZXJQYXJhbWV0ZXJz
IGlzb2xhdGVkQ29weSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5cGUuaAppbmRl
eCAwYjBlZDg2MGQ5YzcxNDIzOGEyYTViYjlmZGY0Mzg0MDJkMTZlYmYwLi4xYzFiYjk0NDg2N2Fk
ZjRlZDU3OGEyODE0ZmEzMzIzMjZhZWQ4YTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5
cGUuaApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xh
c3MgV29ya2VyVHlwZSB7CitlbnVtIGNsYXNzIFdvcmtlclR5cGUgOiB1aW50OF90IHsKICAgICBD
bGFzc2ljLAogICAgIE1vZHVsZSwKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAppbmRleCBlYmJlOTVlODkyNGM4
ZjFkNzM3NTI1ZGVhMTYzMGIxZmFkNTZmYjI3Li40YzdkZGY0YTRjMTMxZTBkY2Q2YmEwOTUwOWFi
MmQ5NzU3NWYzMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgTmF2
aWdhdG9yQmFzZTsKIGNsYXNzIFNlcnZpY2VXb3JrZXI7CiAKIGVudW0gY2xhc3MgU2VydmljZVdv
cmtlclVwZGF0ZVZpYUNhY2hlIDogdWludDhfdDsKLWVudW0gY2xhc3MgV29ya2VyVHlwZTsKK2Vu
dW0gY2xhc3MgV29ya2VyVHlwZSA6IHVpbnQ4X3Q7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5
cGU+IGNsYXNzIERPTVByb21pc2VQcm94eTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCmluZGV4IGVjMzljMGY4NDlhNTRlMWI2
ZDBiZWUzNGE4ZDdkMTljYmE0NWUyODguLmY5NTEwY2JmNmZkZjcwNDZmN2QxYjkyMjM2OTE3NGQw
MWZhMGJlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VySm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckpvYi5jcHAKQEAgLTExMCw3ICsxMTAsOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJK
b2I6OmZldGNoU2NyaXB0V2l0aENvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgRgogICAgIG9wdGlvbnMuY2FjaGUgPSBjYWNoZVBvbGljeTsKICAgICBvcHRpb25zLnJlZGly
ZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6RXJyb3I7CiAgICAgb3B0aW9ucy5kZXN0aW5h
dGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNlcnZpY2V3b3JrZXI7Ci0gICAgbV9z
Y3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3Qp
LCBXVEZNb3ZlKG9wdGlvbnMpLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9O
b3RFbmZvcmNlLCBTZXJ2aWNlV29ya2Vyc01vZGU6Ok5vbmUsICp0aGlzKTsKKyAgICBvcHRpb25z
LmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbjsKKyAg
ICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVx
dWVzdCksIFdURk1vdmUob3B0aW9ucyksIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50
OjpEb05vdEVuZm9yY2UsIFNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSwgKnRoaXMsIFdvcmtlclJ1
bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogfQogCiBSZXNvdXJjZUVycm9yIFNlcnZpY2VXb3JrZXJK
b2I6OnZhbGlkYXRlU2VydmljZVdvcmtlclJlc3BvbnNlKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhJiBqb2JEYXRhLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25PcHRpb25zLmgKaW5kZXggOWQ1MDBmODVhY2IxODg0MWNjNTViZWE4MjEx
ZGIxNGZhZGM5NzQ3NS4uMmUzNTU3ZmE3ZGY2N2YxYmY5OGM3YjdhNWRlNGIwYTVhN2JjY2NmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25PcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmgKQEAgLTMyLDcgKzMyLDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogZW51bSBjbGFzcyBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2Fj
aGUgOiB1aW50OF90OwotZW51bSBjbGFzcyBXb3JrZXJUeXBlOworZW51bSBjbGFzcyBXb3JrZXJU
eXBlIDogdWludDhfdDsKIAogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25z
IHsKICAgICBTdHJpbmcgc2NvcGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IGM4
YTdhOTk3MmY5Y2M4YzE2YTc5Njc1MTE1NTJmNTQ5M2E2ODZmOTguLjMzY2EwZWMyM2I1OGE1NTEx
ODc2ODQ2YmEwNzE4MzUzMmI1YzQ3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBA
IC03Myw4ICs3Myw5IEBAIGNsYXNzIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5IDogcHVi
bGljIFdvcmtlck9iamVjdFByb3h5IHsKIC8vIEZJWE1FOiBVc2UgYSB2YWxpZCBXb3JrZXJPYmpl
Y3RQcm94eQogLy8gRklYTUU6IFVzZSB2YWxpZCBydW50aW1lIGZsYWdzCiAKKy8vIEZJWE1FOiBV
c2UgYSB2YWxpZCBXb3JrZXJUeXBlIGFuZCBDcmVkZW50YWlscyBmb3IgbW9kdWxlIHNlcnZpY2Ug
d29ya2Vycy4KIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3Qg
U2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGNvbnN0
IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzLCBXb3JrZXJMb2FkZXJQcm94eSYgbG9h
ZGVyUHJveHksIFdvcmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2VyUHJveHksIElEQkNsaWVudDo6
SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBz
b2NrZXRQcm92aWRlcikKLSAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0
eVN0cmluZygpLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rv
cnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJp
dHlQb2xpY3ksIGZhbHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9LCBzZXR0aW5nc1ZhbHVl
cyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRlYnVnZ2VyUHJveHksIER1bW15U2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3Jt
YWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5zZWN1cml0eU9yaWdpbigpLmdl
dCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFn
czo6Y3JlYXRlQWxsRW5hYmxlZCgpKQorICAgIDogV29ya2VyVGhyZWFkKHsgZGF0YS5zY3JpcHRV
UkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZp
ZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHVzZXJBZ2VudCksIHBsYXRm
b3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09uTGluZSgpLCBkYXRhLmNvbnRl
bnRTZWN1cml0eVBvbGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6Om5vdygpLCB7IH0sIFdvcmtl
clR5cGU6OkNsYXNzaWMsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzOjpTYW1lT3JpZ2luLCBzZXR0
aW5nc1ZhbHVlcyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRlYnVnZ2VyUHJveHksIER1
bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29ya2VyVGhyZWFkU3RhcnRN
b2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5zZWN1cml0eU9y
aWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1
bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQogICAgICwgbV9kYXRhKGRhdGEuaXNvbGF0
ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1bW15U2VydmljZVdvcmtlclRo
cmVhZFByb3h5OjpzaGFyZWQoKSkKICAgICAsIG1faGVhcnRCZWF0VGltZW91dChTV0NvbnRleHRN
YW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCktPnNob3VsZFVzZVNob3J0VGltZW91dCgp
ID8gaGVhcnRCZWF0VGltZW91dEZvclRlc3QgOiBoZWFydEJlYXRUaW1lb3V0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5o
CmluZGV4IDJkZGRiM2I1YjQxZWQ4N2JkNjE0YTBiOTRkMDliNzYxMjkzZDc2MDcuLjM3OGZiYTY1
N2U4YmJmNDg0MWU1NmNiZjg2NTYxZjhlY2MzMTEwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKQEAgLTUwLDcg
KzUwLDcgQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOwogc3RydWN0IFNl
cnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnM7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNvbnRl
eHREYXRhOwogc3RydWN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcjsKLWVudW0gY2xh
c3MgV29ya2VyVHlwZTsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6IHVpbnQ4X3Q7CiAKIGNsYXNz
IFNXU2VydmVyV29ya2VyIDogcHVibGljIFJlZkNvdW50ZWQ8U1dTZXJ2ZXJXb3JrZXI+IHsKIHB1
YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxT
Y29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
CmluZGV4IGQ3MDQ4ODY2NDhjMGVmYWE2Yjc4MDg0YzUzODcyMDFjYTJiMWM1NDMuLjJhZTBlMzM4
OTFkYmM4OWYxNDY4N2Q0MTQ4MDJhYWExMmQwZDg0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMTU4LDcyICsxNTgsNyBAQCBSZWZl
cnJlclBvbGljeSBXb3JrbGV0R2xvYmFsU2NvcGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKIHZv
aWQgV29ya2xldEdsb2JhbFNjb3BlOjpmZXRjaEFuZEludm9rZVNjcmlwdChjb25zdCBVUkwmIG1v
ZHVsZVVSTCwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBtX3NjcmlwdEZldGNoSm9icy5h
cHBlbmQoeyBtb2R1bGVVUkwsIGNyZWRlbnRpYWxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSB9KTsKLSAgICBwcm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQoKTsKLX0KLQotdm9p
ZCBXb3JrbGV0R2xvYmFsU2NvcGU6OnByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5lZWRlZCgp
Ci17Ci0gICAgaWYgKG1fc2NyaXB0RmV0Y2hKb2JzLmlzRW1wdHkoKSB8fCBtX3NjcmlwdExvYWRl
cikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byYgc2NyaXB0RmV0Y2hKb2IgPSBtX3Njcmlw
dEZldGNoSm9icy5maXJzdCgpOwotCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBzY3Jp
cHRGZXRjaEpvYi5tb2R1bGVVUkwgfTsKLQotICAgIEZldGNoT3B0aW9ucyBmZXRjaE9wdGlvbnM7
Ci0gICAgZmV0Y2hPcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM7Ci0gICAg
ZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKLSAgICBm
ZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7Ci0g
ICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gc2NyaXB0RmV0Y2hKb2IuY3JlZGVudGlhbHM7
Ci0jaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBpZiAoaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSgpKQotICAgICAgICBmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpBdWRpb3dvcmtsZXQ7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5H
X0FQSSkKLSAgICBpZiAoaXNQYWludFdvcmtsZXRHbG9iYWxTY29wZSgpKQotICAgICAgICBmZXRj
aE9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpQYWludHdv
cmtsZXQ7Ci0jZW5kaWYKLQotICAgIGF1dG8gY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1l
bnQgPSBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSA/IENvbnRl
bnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UgOiBDb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudDo6RW5mb3JjZUNoaWxkU3JjRGlyZWN0aXZlOwotCi0gICAgbV9z
Y3JpcHRMb2FkZXIgPSBXb3JrZXJTY3JpcHRMb2FkZXI6OmNyZWF0ZSgpOwotICAgIG1fc2NyaXB0
TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoKnRoaXMsIFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUoZmV0Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZp
Y2VXb3JrZXJzTW9kZTo6QWxsLCAqdGhpcyk7Ci19Ci0KLXZvaWQgV29ya2xldEdsb2JhbFNjb3Bl
OjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpCi17Ci19Ci0KLXZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpub3RpZnlGaW5pc2hlZCgpCi17
Ci0gICAgYXV0byBjb21wbGV0ZWRKb2IgPSBtX3NjcmlwdEZldGNoSm9icy50YWtlRmlyc3QoKTsK
LQotICAgIGlmIChtX3NjcmlwdExvYWRlci0+ZmFpbGVkKCkpIHsKLSAgICAgICAgZGlkQ29tcGxl
dGVTY3JpcHRGZXRjaEpvYihXVEZNb3ZlKGNvbXBsZXRlZEpvYiksIEV4Y2VwdGlvbiB7IEFib3J0
RXJyb3IsIG1ha2VTdHJpbmcoIkZhaWxlZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiAiLCBtX3Nj
cmlwdExvYWRlci0+ZXJyb3IoKS5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKSB9KTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZWFsbHkgYmUgcnVu
IGFzIGEgbW9kdWxlIHNjcmlwdCBidXQgd2UgZG9uJ3Qgc3VwcG9ydCB0aGlzIGluIHdvcmtlcnMg
eWV0LgotICAgIFVSTCBtb2R1bGVVUkwobV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlVVJMKCkpOwot
ICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9ldmFsdWF0ZWRNb2R1bGVzLmFkZChtb2R1bGVVUkwpOwot
ICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkgewotICAgICAgICBOYWtlZFB0cjxKU0M6OkV4
Y2VwdGlvbj4gZXhjZXB0aW9uOwotICAgICAgICBzY3JpcHQoKS0+ZXZhbHVhdGUoU2NyaXB0U291
cmNlQ29kZShtX3NjcmlwdExvYWRlci0+c2NyaXB0KCksIFdURk1vdmUobW9kdWxlVVJMKSksIGV4
Y2VwdGlvbik7Ci0gICAgICAgIGlmIChleGNlcHRpb24pCi0gICAgICAgICAgICBzY3JpcHQoKS0+
c2V0RXhjZXB0aW9uKGV4Y2VwdGlvbik7Ci0gICAgfQotCi0gICAgZGlkQ29tcGxldGVTY3JpcHRG
ZXRjaEpvYihXVEZNb3ZlKGNvbXBsZXRlZEpvYiksIHsgfSk7Ci19Ci0KLXZvaWQgV29ya2xldEds
b2JhbFNjb3BlOjpkaWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKFNjcmlwdEZldGNoSm9iJiYgam9i
LCBPcHRpb25hbDxFeGNlcHRpb24+IHJlc3VsdCkKLXsKLSAgICBtX3NjcmlwdExvYWRlciA9IG51
bGxwdHI7Ci0KLSAgICBqb2IuY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKLQot
ICAgIHByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5lZWRlZCgpOworICAgIHNjcmlwdCgpLT5s
b2FkQW5kRXZhbHVhdGVNb2R1bGUobW9kdWxlVVJMLCBjcmVkZW50aWFscywgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCiBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlciYgV29ya2xl
dEdsb2JhbFNjb3BlOjptZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IGYyMzIwZjBkMTMwMjVjZWFi
M2JhYzU2YTQ1ZWMyZDFkZDNmYjZjYzAuLmZlNTRiODUzMjU2NzkyNTgzZGVkYTA1NWE0MzNhMjU2
NTRlODY3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9i
YWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29w
ZS5oCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2lu
Y2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlckNs
aWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CkBAIC01NCw3ICs1Myw3IEBAIHN0cnVjdCBXb3JrbGV0UGFyYW1ldGVy
czsKIGVudW0gV29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllclR5cGUgeyB9OwogdXNpbmcgV29y
a2xldEdsb2JhbFNjb3BlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8V29ya2xldEdsb2Jh
bFNjb3BlSWRlbnRpZmllclR5cGU+OwogCi1jbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJs
aWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUsIHB1YmxpYyBXb3JrZXJTY3JpcHRMb2FkZXJD
bGllbnQgeworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtsZXRHbG9iYWxT
Y29wZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V29ya2xldEdsb2JhbFNjb3BlKCk7CkBAIC0x
MTEsMTAgKzExMCw2IEBAIGNsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZSwgcHVibGljIFdvcmtlclNjcmlwCiAgICAgdm9pZCBhZGRNZXNz
YWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiwgdW5zaWduZWQsIHVuc2lnbmVkLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3Rh
Y2s+JiYsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBsb25nKSBmaW5hbDsKICAgICB2
b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiwgdW5zaWduZWQgbG9uZykgZmluYWw7CiAKLSAgICAvLyBXb3JrZXJTY3JpcHRMb2Fk
ZXJDbGllbnQuCi0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7Ci0gICAgdm9pZCBub3RpZnlG
aW5pc2hlZCgpIGZpbmFsOwotCiAgICAgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSBm
aW5hbCB7IHJldHVybiB0aGlzOyB9CiAKICNpZiBFTkFCTEUoV0VCX0NSWVBUTykKQEAgLTEyNSwx
NSArMTIwLDYgQEAgY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlLCBwdWJsaWMgV29ya2VyU2NyaXAKICAgICBTdHJpbmcgdXNlckFnZW50
KGNvbnN0IFVSTCYpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNl
dHRpbmdzVmFsdWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQog
Ci0gICAgc3RydWN0IFNjcmlwdEZldGNoSm9iIHsKLSAgICAgICAgVVJMIG1vZHVsZVVSTDsKLSAg
ICAgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7Ci0gICAgICAgIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4gY29tcGxldGlvbkhhbmRs
ZXI7Ci0gICAgfTsKLQotICAgIHZvaWQgcHJvY2Vzc05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVk
KCk7Ci0gICAgdm9pZCBkaWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKFNjcmlwdEZldGNoSm9iJiYs
IE9wdGlvbmFsPEV4Y2VwdGlvbj4pOwotCiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVu
dDsKIAogICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gbV90b3BPcmlnaW47CkBAIC0xNDQsOSArMTMw
LDYgQEAgY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLCBwdWJsaWMgV29ya2VyU2NyaXAKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3Jr
ZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcj4gbV9tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
cjsKIAotICAgIFJlZlB0cjxXb3JrZXJTY3JpcHRMb2FkZXI+IG1fc2NyaXB0TG9hZGVyOwotICAg
IERlcXVlPFNjcmlwdEZldGNoSm9iPiBtX3NjcmlwdEZldGNoSm9iczsKLSAgICBIYXNoU2V0PFVS
TD4gbV9ldmFsdWF0ZWRNb2R1bGVzOwogICAgIFNldHRpbmdzOjpWYWx1ZXMgbV9zZXR0aW5nc1Zh
bHVlczsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAxYWRjMjhhNmQ3MWVkOGEzM2ZmZGY5ZGFkMTc4YTUyYTcwNDg0
ZDJjLi42ZTYzMjBhZDhjNWM4NDY3MTAwM2U5ZmNkOGYwODFiNTQ3ZjMwYTI2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMjEtMDItMTEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBKUyBNb2R1bGVzIGluIFdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDg2MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiB3ZWJhdWRpby9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZhaWx1cmUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYmF1ZGlvL3dvcmtsZXQtY3Jhc2gtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAy
LTExICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMjcyMjkzKSBXZWJHTCAxLjAuMiB0ZXN0IGV4cGVjdGF0aW9ucyBzYXkg
SFRUUFMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDUxZjlkNmQyYzRhMDBjZmYz
NTNlMmVhZTUwZTY3Mzc2NmRjZDViOWEuLjRlNDBlZWQ2OWYxNmM3ZWFkOTM1NDM5YjUzZjA0NjYy
YmRiZjFlNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBA
CisyMDIxLTAyLTExICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAg
ICAgSlMgTW9kdWxlcyBpbiBXb3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRp
dmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tz
L2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jh
c2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90
aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1
YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9y
dC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxw
aGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29y
a2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRl
cmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBv
cnQtY3NwLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1lcnJv
ci1mYWlsdXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQt
Y3NwLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJs
LXJlZGlyZWN0ZWQtd29ya2VyLW9yaWdpbi1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDItMTEgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cmV2ZXJ0aW5nIHIyNzA1NzguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3OWU5MGE5NmYwY2RiNmNl
OTEwZjJiY2U1Yzc3ODYyMzlkZjlkOTBiLi42MWFkMWQ1YmE2M2I1NmY0MjQ0ZThkZTNiYmExMDVi
OWMyNmE0OTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY0MCw3ICs2NDAsNiBAQCBmYXN0L2Rv
bS9jb25uZWN0ZWQtc3ViZnJhbWUtY291bnRlci1vdmVyZmxvdy5odG1sIFsgU2xvdyBdCiBbIERl
YnVnIF0gaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLmh0bWwgWyBTbG93
IF0KIAogIyBTa2lwIHdvcmtlcnMgdGVzdHMgdGhhdCBhcmUgdGltaW5nIG91dCBvciBhcmUgU2hh
cmVkV29ya2VyIHJlbGF0ZWQgb25seQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmlnaW4uaHRtbCBbIFNraXAgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2RhdGEtdXJsLXNoYXJlZC5odG1s
IFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvZXhhbXBs
ZXMvb25jb25uZWN0LmFueS5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvZXhhbXBsZXMvb25jb25uZWN0LmFueS53b3JrZXIuaHRtbCBbIFNraXAg
XQpAQCAtNjYzLDcgKzY2Miw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9TaGFyZWRXb3JrZXItcmVwbGFjZS1FdmVudEhhbmRsZXIuYW55Lmh0CiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyLXJlcGxhY2UtRXZlbnRI
YW5kbGVyLmFueS53b3JrZXIuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL1NoYXJlZFdvcmtlci1zY3JpcHQtZXJyb3IuaHRtbCBbIFNraXAgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL1NoYXJlZFdvcmtlci1zaW1w
bGUuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJyZXIuaHRtbCBbIFNraXAgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVk
LXdvcmtlci1vcHRpb25zLWNyZWRlbnRpYWxzLmh0bWwgWyBTa2lwIF0KIAogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9TaGFyZWRXb3JrZXIgWyBT
a2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24t
bW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50
YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNDkyNjliM2I1MGI5MTc1Y2I2MmVj
YTMxMmU1ODZiM2IxNjYyYTI1OS4uMmNhZTVmN2UzNWEzMmZlY2ViMjY4ZjI5MDAwMGU0ZTU1NTZj
Njg2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1t
b2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50
ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKLUZBSUwg
Tm9uLW9iamVjdDogbnVsbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL251bGwu
anNvbicuIgotRkFJTCBOb24tb2JqZWN0OiB0cnVlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBt
b2R1bGUgJy4vdHJ1ZS5qc29uJy4iCi1GQUlMIE5vbi1vYmplY3Q6IGZhbHNlIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBu
b3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZmFsc2UuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBz
dHJpbmcgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9zdHJpbmcuanNvbicuIgot
RkFJTCBOb24tb2JqZWN0OiBhcnJheSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcu
L2FycmF5Lmpzb24nLiIKK0ZBSUwgTm9uLW9iamVjdDogbnVsbCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlv
bi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1v
YmplY3Q6IHRydWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2
YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiBmYWxzZSBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBs
aWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlM
IE5vbi1vYmplY3Q6IHN0cmluZyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2
YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IGFycmF5IHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogJ2FwcGxpY2F0aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBl
LiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90
YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3Mv
Y2hlY2twb2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3Rl
ZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uZjY4
Y2M3M2I0ZDY3NGM1NGRmYWZlNTIyMTJiNjQzYzQwMzBmZDQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdv
cmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29y
a2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBA
QAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorRkFJTCBQcm9t
aXNlIHJlc29sdmVkIGR1cmluZyAjcmVwb3J0LXRoZS1lcnJvciBhc3NlcnRfYXJyYXlfZXF1YWxz
OiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgWyJoYW5kbGVyIDEiLCAiaGFuZGxlciAy
IiwgImhhbmRsZXIgMSBwcm9taXNlIiwgImhhbmRsZXIgMiBwcm9taXNlIl0gbGVuZ3RoIDQsIGdv
dCBbXSBsZW5ndGggMAorUEFTUyBQcm9taXNlIHJlc29sdmVkIGR1cmluZyBldmVudCBoYW5kbGVy
cyBvdGhlciB0aGFuIGVycm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1w
b3J0U2NyaXB0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlw
dHMtZXhwZWN0ZWQudHh0CmluZGV4IDUxZDYxMDBlNjEyMmE5N2MzNjRiM2NlYjFkN2ZkMDdlMGUx
NTYxMTcuLmE4MDUwYzA3OGNmOGI4OGQ1NjhhZmZlMGQ1NWNjMzE5MGMzNjU0N2EgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9y
dC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2Fs
cGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsx
LDYgQEAKIAotRkFJTCBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNj
cmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2ltcG9ydC5qcz9waXBl
PWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9cmVsYXRpdmUtY3Jv
c3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKScuIgotRkFJTCBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9t
IHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9k
dWxlICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlw
ZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLWNy
b3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCknLiIKLVBBU1MgUmVsYXRpdmUgVVJMLWxpa2UgZnJv
bSBjcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpCi1GQUlMIEFic29sdXRlIFVSTC1saWtlIGZy
b20gY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUg
bW9kdWxlICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/
cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRl
LWNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCknLiIKK1BBU1MgUmVsYXRpdmUgVVJMLWxpa2Ug
ZnJvbSBzYW1lLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2Ug
ZnJvbSBzYW1lLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKK0ZBSUwgUmVsYXRpdmUgVVJMLWxpa2Ug
ZnJvbSBjcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIGFzc2VydF9lcXVhbHM6IFJlbGF0aXZl
IFVSTC1saWtlIHNwZWNpZmllciByZXNvbHV0aW9uIHNob3VsZCBmYWlsIGV4cGVjdGVkICIodW5y
ZWFjaGVkKSIgYnV0IGdvdCAiZ2FtbWEvaW1wb3J0LmpzIgorUEFTUyBBYnNvbHV0ZSBVUkwtbGlr
ZSBmcm9tIGNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jh
c2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWIt
ZXhwZWN0ZWQudHh0CmluZGV4IDg2NmViYjIyN2FkMjZhYWNlMWE1NzhiYWVhNmE4MWRjMGU2ZTc3
ZjAuLjVlNzA2MzQ5MGUyZGZmZWNlODVlYTc2NWFlYmRkZTRiMTZlYjBmYzMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9h
bHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwt
d29ya2VyLnN1Yi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgUmVsYXRpdmUg
VVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9y
dCB0aGUgbW9kdWxlICcuL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxv
dy1PcmlnaW4sKikmbGFiZWw9cmVsYXRpdmUtd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQnLiIKLUZB
SUwgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdCBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291
bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9y
dC9nYW1tYS9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu
LCopJmxhYmVsPWFic29sdXRlLXdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0Jy4iCitQQVNTIFJlbGF0
aXZlIFVSTC1saWtlIGZyb20gd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQKK1BBU1MgQWJzb2x1dGUg
VVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5v
dGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IDg5MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLjJmMTJhMjM0
MmZhZDIyNGUzYTE4YTZmYjVkODQ4MzI1ZWE2Nzc2ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13
b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC0xLDQgKzEsMyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwK
LQorUEFTUyBUZXN0IGV2YWx1YXRpb24gb3JkZXIgb2YgbW9kdWxlcwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0x
LXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3
NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uYjg2MWY3MDFmOTQ4ZmIxMzI3Njkz
MjJjMzgzNjZmMmQxMzhmMDRlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9y
ZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJv
ciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK0ZBSUwgVGVzdCBldmFsdWF0aW9uIG9yZGVy
IG9mIG1vZHVsZXMgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVk
IGFycmF5IFsic3RlcC0xLTEiLCAic3RlcC0xLTIiLCAiZ2xvYmFsLWVycm9yIiwgImVycm9yIiwg
Im1pY3JvdGFzayJdIGxlbmd0aCA1LCBnb3QgWyJzdGVwLTEtMSIsICJzdGVwLTEtMiIsICJtaWNy
b3Rhc2siXSBsZW5ndGggMwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24t
b3JkZXItMi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJi
Zjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi5jMWQzOGJkZTUwYzU5ZTVkNTk0MTczZDk2ZjljZDE5
ZWIxMDdjOWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVy
LTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3Mg
RXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitGQUlMIFRlc3QgZXZhbHVhdGlvbiBv
cmRlciBvZiBtb2R1bGVzIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBl
Y3RlZCBhcnJheSBbInN0ZXAtMi4yLTEiLCAic3RlcC0yLjItMiIsICJnbG9iYWwtZXJyb3IiLCAi
ZXJyb3IiLCAibWljcm90YXNrLTIuMiJdIGxlbmd0aCA1LCBnb3QgWyJzdGVwLTIuMi0xIiwgInN0
ZXAtMi4yLTIiLCAibWljcm90YXNrLTIuMiJdIGxlbmd0aCAzCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHlu
YW1pYy13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQK
aW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uMmYxMmEyMzQy
ZmFkMjI0ZTNhMThhNmZiNWQ4NDgzMjVlYTY3NzZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdv
cmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAot
CitQQVNTIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IDEyZDk0YTkxZWYxZjhhYjBhMTg3Yzc0OWIwZGRlYzY5NmQxMTg4ZTcuLmI0ZDY4
YWYwNTZlZWY2MjJhMzNkNTRmMDc2ZjM4MWQ0ZTFiYjI5YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMiw4ICsyLDggQEAKIEZBSUwgU3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJv
cjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUg
YXJndW1lbnQuIgogRkFJTCBOZXN0ZWQgc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJv
cjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUg
YXJndW1lbnQuIgogRkFJTCBTdGF0aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LiBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhw
ZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIER5bmFtaWMgaW1wb3J0LiBhc3NlcnRf
YXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJv
cjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5q
cycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LiBhc3NlcnRf
YXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJv
cjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1keW5hbWljLWltcG9y
dC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlMIER5bmFtaWMgaW1wb3J0IGFuZCB0
aGVuIHN0YXRpYyBpbXBvcnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQg
dG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUg
Jy4vZXhwb3J0LW9uLXN0YXRpYy1pbXBvcnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQot
RkFJTCBldmFsKGltcG9ydCgpKS4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxl
ZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVs
ZSAnLi9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5CitQQVNTIER5
bmFtaWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMg
aW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBpbXBvcnQuCitQQVNTIGV2YWwoaW1wb3J0KCkpLgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNl
dXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGRkOWFm
MzhmZjA5ZmJlYzFmYWMwYjhmNWVhOWJhZDZlMzE2MzY0OWQuLjUxZWIzNjYzOGMxY2E3ZDA2MGI3
Njc1OTI2ZmNjNzBjNWJmMDc2ZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1
bGV3b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhF
cnJvcjogVW5leHBlY3RlZCBpZGVudGlmaWVyICdyJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFj
dGx5IG9uZSBhcmd1bWVudC4KIAotRkFJTCBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdv
cmtlcnM6IGltcG9ydCBhc3NlcnRfdW5yZWFjaGVkOiBHb3QgZXJyb3IgZXZlbnQgUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlCitQQVNTIEJhc2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2Vy
czogaW1wb3J0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVk
LnR4dAppbmRleCBhYjVhN2ZiODkwMjBmMjlmZDg5M2E3NTY4MGZmZTE3ZDNkMzUwZjdjLi5hYjUz
YjgwNTk5YWUwMTk1NzgwODVlZTQ0YWFlZmE0Yzc5NTUyNjg0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBo
YS9pbXBvcnRTY3JpcHRzLWluLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1w
b3J0U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlM
IGltcG9ydFNjcmlwdHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImdhbW1hL3NjcmlwdC5qcyIg
YnV0IGdvdCAiYmV0YS9zY3JpcHQuanMiCitQQVNTIGltcG9ydFNjcmlwdHMKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jh
c2V1cmwvYWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94
aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4M2YzNjdmMmNmM2E2NmM2NGE2
MjY0Mjk0NjU2ZDVlODgxZDFjMTFjLi4yOGIwY2I0MDAxMzkyZDA4ODdhNGZlYmU2ODFjMWUxNTFk
MGRmMThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
MSwzICsxLDMgQEAKIAotRkFJTCBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6
IFhIUiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZ2FtbWFcbiIgYnV0IGdvdCAiYmV0YVxuIgor
UEFTUyBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IFhIUgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
YmFzZXVybC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1p
bi13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGQ2YjA4ZWVkYWU2ZjY5NmM3YTRiZmE2NTVlMTNi
NWVkNDYwN2VhMDEuLmVhMTQ1NGQ5YjNmMjBmODVkOTAxNmM1MDZhMTU0NmFmNjE3ODQyZDAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2Fs
cGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIHho
ci13b3JrZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImdhbW1hXG4iIGJ1dCBnb3QgImJldGFc
biIKK1BBU1MgeGhyLXdvcmtlcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9y
aWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50
eHQKaW5kZXggODMxZjBjNThjNjk0YzJkNGZlYmQ2ZDhkMGFmMzA3YjEwOTQ0MmE2ZS4uZDU1NWVl
N2NmM2ZjNzJlZmI4MmRmOWRiN2RhZDM2N2Y5YWI3ZmZiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9X
b3JrZXIvc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUt
b3JpZ2luLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSwxMSBAQAogCi1IYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyB1bnN1cHBvcnRlZF9zY2hlbWUKIEZBSUwg
ZGF0YV91cmwgVGhlIG9wZXJhdGlvbiBpcyBpbnNlY3VyZS4KLVRJTUVPVVQgYWJvdXRfYmxhbmsg
VGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgZXhhbXBsZV9pbnZhbGlkIFRlc3QgdGltZWQgb3V0Ci1U
SU1FT1VUIHBvcnRfODEgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgaHR0cHNfcG9ydF84MCBUZXN0
IHRpbWVkIG91dAotVElNRU9VVCBodHRwc19wb3J0XzgwMDAgVGVzdCB0aW1lZCBvdXQKLVRJTUVP
VVQgaHR0cF9wb3N0XzgwMTIgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgamF2YXNjcmlwdF91cmwg
VGVzdCB0aW1lZCBvdXQKK1BBU1MgYWJvdXRfYmxhbmsKK1BBU1MgZXhhbXBsZV9pbnZhbGlkCitQ
QVNTIHBvcnRfODEKK1BBU1MgaHR0cHNfcG9ydF84MAorUEFTUyBodHRwc19wb3J0XzgwMDAKK1BB
U1MgaHR0cF9wb3N0XzgwMTIKK1BBU1MgamF2YXNjcmlwdF91cmwKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFj
ZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFj
ZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0CmluZGV4
IGYxNzQxZjlkOGJmMDcwMzI3MGQyZTM3NjJkYmNiZTI2YzBiOTAwNTkuLjNiMGRmYjM1ZTUxY2Qx
YTg1NDU1MzAxOWMwZTQwM2RiZTJmMWQzM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2Jh
bFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJH
bG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBA
CiAKLUZBSUwgV29ya2VyTG9jYXRpb24gd2l0aCByZWRpcmVjdHM6IGNsYXNzaWMgZGVkaWNhdGVk
IHdvcmtlcnMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93
b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcG9zdC1sb2NhdGlv
bi1tZW1iZXJzLmpzP2EiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2lu
dGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vaGVscGVyLXJlZGlyZWN0LnB5P2Zh
aWwiCitQQVNTIFdvcmtlckxvY2F0aW9uIHdpdGggcmVkaXJlY3RzOiBjbGFzc2ljIGRlZGljYXRl
ZCB3b3JrZXJzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9u
L3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9s
b2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0CmluZGV4IGRjMmUyZTIwN2RiMDAx
ZWU3MGU3MzMwN2QyN2JiMzM1NzIwZmQ1NTkuLmIzYmY4MWVlODY4MWI5ZGMwODBmNTgwMjcxZThi
OGYzOTA5NjU0OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9u
L3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2Nv
cGUvbG9jYXRpb24vcmVkaXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAK
IAotRkFJTCBXb3JrZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3
b3JrZXJzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29y
a2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3Bvc3QtbG9jYXRpb24t
bWVtYmVycy5qcz9hIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRl
cmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL2hlbHBlci1yZWRpcmVjdC5weT9mYWls
IgorUEFTUyBXb3JrZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3
b3JrZXJzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJs
LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5h
bnktZXhwZWN0ZWQudHh0CmluZGV4IDIwYWMxN2Q1NjNjNGIzYTQ2MWYwY2FhZmJlYWVlYmQ3MTNm
OTcwODEuLmRjY2VkY2NkMzY4ZTFmZjE3YjFkZDEzNmU0NTNmZWM0ZmUxMGJjODMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4
dApAQCAtMSwxOCArMSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVz
L3Jlc291cmNlcy9zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMg
ZXhhY3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4
cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1
bGVzL3Jlc291cmNlcy9uZXN0ZWQtc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2Fs
bCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhF
cnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dv
cmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvc3RhdGljLWltcG9ydC1hbmQtdGhlbi1keW5hbWljLWlt
cG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50
LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJh
bCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1p
Yy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1
bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxp
dGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25l
c3RlZC1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0
bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9y
ZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtYW5kLXRoZW4tc3RhdGljLWltcG9ydC13b3JrZXIuanMi
LiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNT
QUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2Fs
aG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXZhbC1keW5hbWljLWltcG9ydC13
b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgogCi1I
YXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0
cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291
cmNlcy9keW5hbWljLWltcG9ydC1hbmQtdGhlbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi0KLUZBSUwgU3RhdGljIGlt
cG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50
YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgw
MC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBOZXN0ZWQgc3Rh
dGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhv
c3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1zdGF0aWMtaW1wb3J0LXdv
cmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZB
SUwgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBz
dHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL3N0YXRpYy1pbXBvcnQtYW5kLXRoZW4tZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIu
IGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWlj
IGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJT
eW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6
ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wi
LiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVk
IGR5bmFtaWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xv
Y2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvbmVzdGVkLWR5bmFtaWMtaW1w
b3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50
LiIKLUZBSUwgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LWFuZC10aGVuLXN0YXRpYy1pbXBvcnQtd29ya2Vy
LmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBl
dmFsKGltcG9ydCgpKS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2Nh
bGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V2YWwtZHluYW1pYy1pbXBvcnQt
d29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgor
UEFTUyBTdGF0aWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BBU1MgU3Rh
dGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQu
CitQQVNTIE5lc3RlZCBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQgYW5kIHRo
ZW4gc3RhdGljIGltcG9ydC4KK1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC1jc3AtZXhwZWN0ZWQudHh0CmluZGV4IDFkYTQ2YjkyNmJlMDg5NmVlOGY3
NWE3OGRjYWU0ZjI2OWIwNTA5MmIuLjIzOWNjOWNlMTUzMDFmN2VlZDgzZDVlYjIyMzBhOWRlMjk0
ZWEyZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dApA
QCAtMSwxMyArMSwyMiBAQAogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1T
ZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBV
bnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3Jj
Jy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhv
c3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5q
cworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6
OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwor
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0
My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09O
U09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0
aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1v
bi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1T
ZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29n
bml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAor
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0
My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogCiBQ
QVNTIHdvcmtlci1zcmMgJ3NlbGYnIGRpcmVjdGl2ZSBzaG91bGQgZGlzYWxsb3cgY3Jvc3Mgb3Jp
Z2luIHN0YXRpYyBpbXBvcnQuCiBGQUlMIHdvcmtlci1zcmMgKiBkaXJlY3RpdmUgc2hvdWxkIGFs
bG93IGNyb3NzIG9yaWdpbiBzdGF0aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBl
Y3RlZCBwcm9wZXJ0eSAwIHRvIGJlICJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiIGJ1dCBnb3Qg
IkVSUk9SIiAoZXhwZWN0ZWQgYXJyYXkgWyJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiXSBnb3Qg
WyJFUlJPUiJdKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtZmFpbHVy
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVj
dGVkLnR4dAppbmRleCA5NWM2ZDE1ZGY0NGUxOGEzNWRmZWIwZmEzOWM4ZDM4NDQyMGMyYzEzLi5l
OTU1NzhlNzFiMWM1MGE0ZTA0NzFiMDM3MTU0YjM4NmIzN2FlZDc0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAK
LUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwg
Jy4vbm9uLWV4aXN0ZW50LXNjcmlwdC5qcycuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBv
bmUgYXJndW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQg
ZmFpbGVkLgogCi1GQUlMIGltcG9ydFNjcmlwdHMoKSBvbiBtb2R1bGUgd29ya2VyIHNob3VsZCB0
aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJUeXBlRXJyb3IiIGJ1
dCBnb3QgIkxPQURFRCIKK1BBU1MgaW1wb3J0U2NyaXB0cygpIG9uIG1vZHVsZSB3b3JrZXIgc2hv
dWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIFBBU1MgV29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igbm9u
LWV4aXN0ZW50IHNjcmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KIFBBU1MgU3Rh
dGljIGltcG9ydCBmb3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJy
b3JFdmVudC4KLUZBSUwgRHluYW1pYyBpbXBvcnQgZm9yIG5vbi1leGlzdGVudCBzY3JpcHQgc2hv
dWxkIHRocm93IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlR5cGVFcnJv
ciIgYnV0IGdvdCAiRXJyb3IiCitQQVNTIER5bmFtaWMgaW1wb3J0IGZvciBub24tZXhpc3RlbnQg
c2NyaXB0IHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rp
b24gZm9yIGFuIGludmFsaWQgVVJMIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdv
cmtlciBjb25zdHJ1Y3Rpb24gZm9yIGEgZmlsZSBVUkwgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlv
bi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAppbmRl
eCBkNTgwNjIwNDFjM2U2OTUxNWI4MTVlMDJkN2MzODY4NGQ3N2M3NmI3Li43NzI5MWJhYTFhNDE4
NGJlYmU3YWQ3YjVkOWYxMTljNzFhNzhkZTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWlt
cG9ydC1tZXRhLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDUgQEAKLUNPTlNPTEUgTUVTU0FHRTog
U3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCiAK
LUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IGltcG9ydC5tZXRh
IGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCi0KLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51
cmwgb24gdGhlIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5
IHZhbGlkIGluc2lkZSBtb2R1bGVzLiIKLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhl
IGltcG9ydGVkIG1vZHVsZSBzY3JpcHQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNj
cmlwdCB3aXRoIGEgZnJhZ21lbnQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorUEFTUyBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgdG9wLWxldmVsIG1vZHVsZSBzY3Jp
cHQuCitQQVNTIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2Ny
aXB0LgorUEFTUyBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNj
cmlwdCB3aXRoIGEgZnJhZ21lbnQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LW1ldGEuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRtbApp
bmRleCBjZmY4ZTkxNDg4ZTgyMzlhYmUyMTM2MTlkMTJkNWE2MDMwNzJmYmVhLi5lZGUyNjkyZTFj
NjM0MWJlZmZjOTAxMGM0MWI4ZjRjZmU0MzgzMjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC1tZXRhLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQt
bWV0YS5odG1sCkBAIC01Myw3ICs1Myw3IEBACiAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgn
Li8nICsgc2NyaXB0X3VybCArICcjMScpOwogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB3b3JrZXIub25tZXNzYWdlID0gcmVzb2x2ZSk7CiAgICAgICB9KQotICAgICAgLnRo
ZW4obXNnX2V2ZW50ID0+IGFzc2VydF90cnVlKG1zZ19ldmVudC5kYXRhLmVuZHNXaXRoKHNjcmlw
dF91cmwpKSk7CisgICAgICAudGhlbihtc2dfZXZlbnQgPT4gYXNzZXJ0X3RydWUobXNnX2V2ZW50
LmRhdGEuZW5kc1dpdGgoc2NyaXB0X3VybCArICcjMScpKSk7CiB9LCAnVGVzdCBpbXBvcnQubWV0
YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQgd2l0aCBhIGZyYWdtZW50LicpOwog
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVy
cmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4
cGVjdGVkLnR4dAppbmRleCA2ZGM0MmMxY2ZkMzM0OGFmZGQxZGZkM2IxMGE1MDQ3MDU1MzAxOTZh
Li5mZTFiOWQ5M2MwODAxMWI1MGU5NDFmNGUxMjM2MDY3YWJiZDNmMjNlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxl
cy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMv
ZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJyZXItZXhwZWN0ZWQudHh0CkBAIC0xLDE5ICsx
LDIzIEBACi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3Jr
ZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtl
cnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vy
cy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJz
L21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFj
Y2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMv
bW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNj
ZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9t
b2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQogCiBQQVNTIFNhbWUt
b3JpZ2luIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0IGxvYWRpbmcgd2l0aCAibm8tcmVmZXJyZXIi
IHJlZmVycmVyIHBvbGljeQogUEFTUyBTYW1lLW9yaWdpbiB0b3AtbGV2ZWwgbW9kdWxlIHNjcmlw
dCBsb2FkaW5nIHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5CiBQQVNTIFNhbWUtb3JpZ2lu
IHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0IGxvYWRpbmcgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVy
cmVyIHBvbGljeQotRkFJTCBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVy
cmVyIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLUZBSUwgU2FtZS1vcmln
aW4gc3RhdGljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBU
eXBlIGVycm9yIgotRkFJTCBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3Jp
Z2luIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK1BBU1MgU2FtZS1vcmln
aW4gc3RhdGljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LgorUEFT
UyBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
LgorUEFTUyBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZl
cnJlciBwb2xpY3kuCiBGQUlMIENyb3NzLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJl
ZmVycmVyIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKIEZBSUwgQ3Jvc3Mt
b3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogVHlwZSBlcnJvciIKIEZBSUwgQ3Jvc3Mtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAic2Ft
ZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotVElNRU9VVCBT
YW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9s
aWN5LiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdp
dGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgotTk9UUlVOIFNhbWUtb3JpZ2luIGR5bmFtaWMg
aW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gQ3Jvc3Mt
b3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3ku
Ci1OT1RSVU4gQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJy
ZXIgcG9saWN5LgotTk9UUlVOIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJzYW1l
LW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgorRkFJTCBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9y
dCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jl
c291cmNlcy9keW5hbWljLWltcG9ydC1zYW1lLW9yaWdpbi1yZWZlcnJlci1jaGVja2VyLXdvcmtl
ci5qcyIKK0ZBSUwgU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZl
cnJlciBwb2xpY3kuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4
MDAvIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291
cmNlcy9keW5hbWljLWltcG9ydC1zYW1lLW9yaWdpbi1yZWZlcnJlci1jaGVja2VyLXdvcmtlci5q
cyIKK1BBU1MgU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJl
ZmVycmVyIHBvbGljeS4KK0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm5v
LXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgQ3Jv
c3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IFR5cGUgZXJyb3IiCitGQUlMIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRo
ICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxl
cy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGEyM2E1NTc1
ZGI0Mjc0MjdmODViZDZiNjM1NGRlODgzODMxZmUyYjQuLmRjY2VkY2NkMzY4ZTFmZjE3YjFkZDEz
NmU0NTNmZWM0ZmUxMGJjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0
LmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4
cGVjdGVkLnR4dApAQCAtMSwxNCArMSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBh
cmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4g
JyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBN
RVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4
cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNz
YWdlID0gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBl
Y3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotCi1GQUlMIFN0YXRpYyBpbXBvcnQuIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50
LiIKLUZBSUwgTmVzdGVkIHN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBp
bXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgU3RhdGljIGlt
cG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGlt
cG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWlj
IGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24t
bG9hZC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlMIE5lc3RlZCBkeW5hbWljIGlt
cG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWlj
IGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24t
ZHluYW1pYy1pbXBvcnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBEeW5hbWlj
IGltcG9ydCBhbmQgdGhlbiBzdGF0aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1
ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9y
dCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1zdGF0aWMtaW1wb3J0LXNjcmlwdC5qcycuIiwgZXhw
ZWN0ZWQgYXJyYXkKLUZBSUwgZXZhbChpbXBvcnQoKSkuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZh
bHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1w
b3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBh
cnJheQorUEFTUyBTdGF0aWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BB
U1MgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBp
bXBvcnQuCitQQVNTIE5lc3RlZCBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQg
YW5kIHRoZW4gc3RhdGljIGltcG9ydC4KK1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2Rl
ZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dAppbmRleCBkYTBlNGViNjc1
OGQxNGEzN2EzOThkMGI2ZmM3MWFkMzg3NmJkMjZiLi4xZmMwYzY2ZmRmNzI0YzJhYTNiOTEwNjk4
MGJmYmU3ZTk4OGY5NzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMt
dHlwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUt
ZXhwZWN0ZWQudHh0CkBAIC0yLDExICsyLDYgQEAKIFBBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0
aW9uIHdpdGggdGhlIGRlZmF1bHQgd29ya2VyIHR5cGUuCiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0
cnVjdGlvbiB3aXRoIHRoZSAiY2xhc3NpYyIgd29ya2VyIHR5cGUuCiBQQVNTIFRlc3Qgd29ya2Vy
IGNvbnN0cnVjdGlvbiB3aXRoIHRoZSAibW9kdWxlIiB3b3JrZXIgdHlwZS4KLUZBSUwgVGVzdCB3
b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gZW1wdHkgd29ya2VyIHR5cGUuIGFzc2VydF90aHJv
d3NfanM6IFdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiBlbXB0eSB0eXBlIHNob3VsZCB0aHJv
dyBhbiBleGNlcHRpb24gZnVuY3Rpb24gIigpID0+IHsKLSAgICAgICAgbmV3IFdvcmtlcigncmVz
b3VyY2VzL3Bvc3QtbWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcycsIHsgdHlwZTogJycgfSk7Ci0g
ICAgICB9IiBkaWQgbm90IHRocm93Ci1GQUlMIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRo
IGFuIHVua25vd24gd29ya2VyIHR5cGUuIGFzc2VydF90aHJvd3NfanM6IFdvcmtlciBjb25zdHJ1
Y3Rpb24gd2l0aCBhbiB1bmtub3duIHR5cGUgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiBmdW5j
dGlvbiAiKCkgPT4gewotICAgICAgICBuZXcgV29ya2VyKCdyZXNvdXJjZXMvcG9zdC1tZXNzYWdl
LW9uLWxvYWQtd29ya2VyLmpzJywKLSAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICd1bmtub3du
JyB9KTsKLSAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0
aW9uIHdpdGggYW4gZW1wdHkgd29ya2VyIHR5cGUuCitQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVj
dGlvbiB3aXRoIGFuIHVua25vd24gd29ya2VyIHR5cGUuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQudHh0CmluZGV4IGU4ZWI1NDBi
ZDMzOTI0MDBhOGRiZmQ5Mzg2NDhhNjQ5MjM5YzBkOWUuLmQxYTUwZjdlYTNjZDZkYzI5OGVmNzU0
MTQ3NzYyYzY5YzU3ZDczYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2Ut
ZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJz
ZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDE0IEBACi1DT05TT0xFIE1F
U1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhw
ZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KK0NPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6
IFVuZXhwZWN0ZWQgdG9rZW4gJzsnCitDT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4
cGVjdGVkIHRva2VuICc7JwogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IEVycm9y
OiBhc3NlcnRfaW1wbGVtZW50czogU3RhdGljIGltcG9ydCBtdXN0IGJlIHN1cHBvcnRlZCBvbiBt
b2R1bGUgZGVkaWNhdGVkIHdvcmtlciB0byBydW4gdGhpcyB0ZXN0LiB1bmRlZmluZWQKLQotTk9U
UlVOIE1vZHVsZSB3b3JrZXIgY29uc3RydWN0aW9uIGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJy
b3Igc2hvdWxkIGRpc3BhdGNoIGFuIGV2ZW50IG5hbWVkIGVycm9yLgotTk9UUlVOIFN0YXRpYyBp
bXBvcnQgb24gbW9kdWxlIHdvcmtlciBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNob3Vs
ZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4KK0ZBSUwgTW9kdWxlIHdvcmtlciBjb25z
dHJ1Y3Rpb24gZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJvciBzaG91bGQgZGlzcGF0Y2ggYW4g
ZXZlbnQgbmFtZWQgZXJyb3IuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZ1bmN0aW9uICJmdW5j
dGlvbiBFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiBidXQgZ290IGZ1bmN0aW9uICJm
dW5jdGlvbiBFcnJvckV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iCitGQUlMIFN0YXRp
YyBpbXBvcnQgb24gbW9kdWxlIHdvcmtlciBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNo
b3VsZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iIGJ1
dCBnb3QgZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yRXZlbnQoKSB7CisgICAgW25hdGl2ZSBjb2Rl
XQorfSIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhw
ZWN0ZWQudHh0CmluZGV4IDYzOTg0NzEyMTQ1OWE3YWIzN2I5ZjA5YTY4YmE2NGVhOGE5ZWQ1N2Mu
LmU5NDY5NDdiMTRhZWYzZTUyOTlhMGFiYTNhZTRiMWNmOWZjZDk1NzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXBy
b3BlcnR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQKQEAgLTEsNyAr
MSw4IEBACiBDT05TT0xFIE1FU1NBR0U6IFVuaGFuZGxlZCBQcm9taXNlIFJlamVjdGlvbjogUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgogCi1GQUlMIFRl
c3QgdGhlIG5hbWUgcHJvcGVydHkgb2Ygc2hhcmVkIGFuZCBkZWRpY2F0ZWQgd29ya2VycyB2aWEg
dGhlIG5hbWUgY29uc3RydWN0b3Igb3B0aW9uIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdv
cmtlcgotUEFTUyBEZWNsYXJpbmcgbmFtZSBhcyBhbiBhY2NpZGVudGFsIGdsb2JhbCBtdXN0IG5v
dCBjYXVzZSBhIGhhcm5lc3MgZXJyb3IgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCitI
YXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IENhbid0
IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorCiBQQVNTIG5hbWUgcHJvcGVydHkgdmFsdWUg
Zm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCiBQQVNTIG5hbWUgcHJvcGVydHkgaXMgcmVw
bGFjZWFibGUgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCitQQVNTIERlY2xhcmluZyBu
YW1lIGFzIGFuIGFjY2lkZW50YWwgZ2xvYmFsIG11c3Qgbm90IGNhdXNlIGEgaGFybmVzcyBlcnJv
ciBmb3IgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0
LWNyZWRlbnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jcmVkZW50aWFscy5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggZjA2OTFhYTA5Y2M0OWNkZjdmMmE5NDM3NGM2ZTYyMjIw
ZjkzYjhlMi4uYTU3MGQ4ZDI5MmZhODU2MjEyYjA1NDc4ODIwZjEzMGY4MWQ5YmJmNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0
cy9hdWRpby13b3JrbGV0LWNyZWRlbnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdv
cmtsZXQtY3JlZGVudGlhbHMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDExIEBACiBD
T05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxv
d2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIAotRkFJTCBJbXBvcnRpbmcgYSBz
YW1lLW9yaWdpbiBzY3JpcHQgd2l0aCB0aGUgZGVmYXVsdCBXb3JrbGV0T3B0aW9ucyBzaG91bGQg
c2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJy
b3I6IFJlc3BvbnNlIGlzIG5vdCAyeHgiCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNj
cmlwdCB3aXRoIHRoZSBkZWZhdWx0IFdvcmtsZXRPcHRpb25zIHNob3VsZCBzZW5kIHRoZSBjcmVk
ZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJBYm9ydEVycm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQQVNT
IEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggdGhlIGRlZmF1bHQgV29ya2xl
dE9wdGlvbnMgc2hvdWxkIG5vdCBzZW5kIHRoZSBjcmVkZW50aWFscwotRkFJTCBJbXBvcnRpbmcg
YSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1vbWl0IHNob3VsZCBub3Qgc2Vu
ZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6
IFJlc3BvbnNlIGlzIG5vdCAyeHgiCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlw
dCB3aXRoIGNyZWRlbnRpYWxzPW9taXQgc2hvdWxkIG5vdCBzZW5kIHRoZSBjcmVkZW50aWFscyBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9y
dEVycm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQQVNTIEltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9b21pdCBzaG91bGQgbm90
IHNlbmQgdGhlIGNyZWRlbnRpYWxzCi1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlw
dCB3aXRoIGNyZWRlbnRpYWxzPXNhbWUtb3JpZ2luIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFs
cyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJB
Ym9ydEVycm9yOiBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogUmVzcG9uc2UgaXMgbm90
IDJ4eCIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlh
bHM9c2FtZS1vcmlnaW4gc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEltcG9y
dGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiIKIFBBU1MgSW1wb3J0aW5nIGEgcmVtb3RlLW9y
aWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1zYW1lLW9yaWdpbiBzaG91bGQgbm90IHNlbmQg
dGhlIGNyZWRlbnRpYWxzCi1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRo
IGNyZWRlbnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6
IEZhaWxlZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiBSZXNwb25zZSBpcyBub3QgMnh4IgotRkFJ
TCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPWluY2x1
ZGUgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBt
b2R1bGUsIGVycm9yOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dl
ZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uIgorRkFJTCBJbXBvcnRpbmcgYSBzYW1l
LW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1pbmNsdWRlIHNob3VsZCBzZW5kIHRoZSBj
cmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJBYm9ydEVycm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCitG
QUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9aW5j
bHVkZSBzaG91bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogQ3Jvc3Mtb3JpZ2luIHNj
cmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3ku
IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29y
a2xldC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGJmMzM1Y2YzMDU1ZTA2NWIzODk4OWI0
MWFhMWUyMzZmZWI0YWMyOWQuLjI3NWIzNDM3ZmFkOTc1M2E2ZWNlMjQyMDBlYWJmMjU3ZmZkNjI3
MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8t
d29ya2xldC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQwICsxLDUyIEBACitCbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmts
ZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitC
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQz
L3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVy
LmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9z
dDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMt
aGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxv
Y2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRo
LWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93
d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlw
dC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0
cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0
LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXpl
ZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCiBDT05T
T0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3Rp
dmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6
Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNj
cmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBD
b250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCiBDT05TT0xF
IE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUg
J3dvcmtlci1zcmMnLgogCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNl
Y3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291
cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1F
U1NBR0U6IFtibG9ja2VkXSBUaGUgcGFnZSBhdCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3dvcmts
ZXRzL3Jlc291cmNlcy9hZGRtb2R1bGUtd2luZG93Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRp
c3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrbGV0
cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcy4KIAog
Q09OU09MRSBNRVNTQUdFOiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvYWRkbW9kdWxlLXdpbmRvdy5odG1sIHdhcyBub3QgYWxs
b3dlZCB0byBkaXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vbG9jYWxob3N0Ojg4
MDAvd29ya2xldHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFk
ZXIuanMuCiAKK0NPTlNPTEUgTUVTU0FHRTogW2Jsb2NrZWRdIFRoZSBwYWdlIGF0IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2FkZG1vZHVsZS13aW5kb3cuaHRtbCB3
YXMgbm90IGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDovL2xv
Y2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRo
LWNvcnMtaGVhZGVyLmpzLgorCitDT05TT0xFIE1FU1NBR0U6IFtibG9ja2VkXSBUaGUgcGFnZSBh
dCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9hZGRtb2R1bGUtd2lu
ZG93Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9t
IGh0dHA6Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1z
Y3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcy4KKwogCiBGQUlMIEEgcmVtb3RlLW9yaWdpbiB3b3Jr
bGV0IHNob3VsZCBiZSBibG9ja2VkIGJ5IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBkaXJlY3RpdmUu
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCi1G
QUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlw
dCBzaG91bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgorUEFT
UyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQg
c2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4KIEZB
SUwgQSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3Jp
cHQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4g
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNPTFZFRCIKIEZB
SUwgQSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgYmUgYmxvY2tlZCBi
eSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgotRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmts
ZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUg
YmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgorUEFTUyBBIHNhbWUtb3Jp
Z2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBz
aG91bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLgogUEFT
UyBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0
aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4K
LVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2
ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgorRkFJTCBBIHNhbWUtb3JpZ2luIHdv
cmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9j
a2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdp
biBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAi
UkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90
ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQt
c3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgogUEFTUyBBIHJl
bW90ZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNh
dXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dz
IGl0LgotUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdp
bi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2Ny
aXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KK0ZBSUwg
QSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3Rl
ZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGly
ZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdp
biB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICog
ZGlyZWN0aXZlIGFsbG93cyBpdC4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRo
ZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3
b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxv
Y2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4gYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSBy
ZW1vdGUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hv
dWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxs
b3dzIGl0LgogUEFTUyBBIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBu
b3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBp
dC4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4t
cmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlw
dC1zcmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0LgorRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQg
aW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgbm90IGJl
IGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNT
IEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29y
a2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRp
cmVjdGl2ZS4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1v
cmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJl
Y3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KK0ZB
SUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0
IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVz
ZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSByZW1vdGUtb3Jp
Z2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBi
ZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdvcmtsZXRzIG9i
ZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLgogUEFTUyBBIHJlbW90ZS1vcmlnaW4tcmVkaXJl
Y3RlZCB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJl
Y3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KLVBB
U1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJl
Y3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVj
dGl2ZSBiZWNhdXNlIHdvcmtsZXRzIG9iZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLgorRkFJ
TCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVj
dGVkIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0
aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEFu
IGluc2VjdXJlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4
ZWQgY29udGVudHMuCiBQQVNTIEFuIGluc2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVkIHdvcmtsZXQg
c2hvdWxkIGJlIGJsb2NrZWQgYmVjYXVzZSBvZiBtaXhlZCBjb250ZW50cy4KLUZBSUwgQSBzYW1l
LW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhbiBpbnNlY3VyZS1vcmlnaW4gc2NyaXB0IHNob3Vs
ZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCi1GQUlMIEEgc2FtZS1vcmlnaW4g
d29ya2xldCBpbXBvcnRpbmcgYW4gaW5zZWN1cmUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNo
b3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCitQQVNTIEEgc2FtZS1vcmln
aW4gd29ya2xldCBpbXBvcnRpbmcgYW4gaW5zZWN1cmUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUg
YmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLgorUEFTUyBBIHNhbWUtb3JpZ2luIHdv
cmtsZXQgaW1wb3J0aW5nIGFuIGluc2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91
bGQgYmUgYmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlv
LXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IGZlODk2NWFlZjZjYWRhMjIxOWVmOGUzMDg4OGJhOTFlMjQw
MTdhYzAuLjY3NjQ3ZDQ2ODdiOWQzY2ZjODZlMGIyYzhmNTY4ZTIwZjViZWMzOTQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMv
YXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1p
bXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xNiw3ICsxNiw3IEBAIFBBU1MgSW1wb3J0aW5n
IGEgY3Jvc3Mgb3JpZ2luIHJlc291cmNlIHdpdGggdGhlIEFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbiBoZWFkCiBQQVNTIEltcG9ydGluZyBhIGNyb3NzIG9yaWdpbiByZXNvdXJjZSB3aXRob3V0
IHRoZSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4gaGVhZGVyIHNob3VsZCByZWplY3QgdGhl
IGdpdmVuIHByb21pc2UKIFBBU1MgSW1wb3J0aW5nIGEgY3Jvc3Mtb3JpZ2luLXJlZGlyZWN0ZWQg
cmVzb3VyY2Ugd2l0aCB0aGUgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhlYWRlciBzaG91
bGQgcmVzb2x2ZSB0aGUgZ2l2ZW4gcHJvbWlzZQogUEFTUyBJbXBvcnRpbmcgYSBjcm9zcy1vcmln
aW4tcmVkaXJlY3RlZCByZXNvdXJjZSB3aXRob3V0IHRoZSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1P
cmlnaW4gaGVhZGVyIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UKLUZBSUwgSW1wb3J0
aW5nIGEgc2NyaXB0IHRoYXQgaGFzIGEgc3ludGF4IGVycm9yIHNob3VsZCByZWplY3QgdGhlIGdp
dmVuIHByb21pc2UuIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRl
ZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEltcG9ydGluZyBhIG5lc3RlZCBz
Y3JpcHQgdGhhdCBoYXMgYSBzeW50YXggZXJyb3Igc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJv
bWlzZS4gYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBS
ZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaW1w
b3J0cyBhbiBpbnZhbGlkIGlkZW50aWZpZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlz
ZS4gYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFj
aGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaGFzIGEg
c3ludGF4IGVycm9yIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuCitQQVNTIEltcG9y
dGluZyBhIG5lc3RlZCBzY3JpcHQgdGhhdCBoYXMgYSBzeW50YXggZXJyb3Igc2hvdWxkIHJlamVj
dCB0aGUgZ2l2ZW4gcHJvbWlzZS4KK1BBU1MgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaW1wb3J0
cyBhbiBpbnZhbGlkIGlkZW50aWZpZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8t
d29ya2xldC1yZWZlcnJlci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMjRkNDk5YzE0MWNlZTZk
YzliMmViZTI0YmZiNGZmNGMwM2EwYTk3My4uOWY2ZDExMzA1OWQ5ZmFkNTBjNjMwMDdiN2ZjZDJj
YmQ2NzI3NzY1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtsZXRzL2F1ZGlvLXdvcmtsZXQtcmVmZXJyZXIuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMg
KzEsOCBAQAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2Nh
bGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvcmVmZXJyZXItY2hlY2tlci5weT9yZWZlcnJl
cl9wb2xpY3k9bm8tcmVmZXJyZXImZXhwZWN0ZWRfcmVmZXJyZXI9CitCbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291
cmNlcy9yZWZlcnJlci1jaGVja2VyLnB5P3JlZmVycmVyX3BvbGljeT1vcmlnaW4mZXhwZWN0ZWRf
cmVmZXJyZXI9aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My8KK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2lu
IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wt
QWxsb3ctT3JpZ2luLgorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3
MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvcmVmZXJyZXItY2hlY2tlci5weT9y
ZWZlcnJlcl9wb2xpY3k9c2FtZS1vcmlnaW4mZXhwZWN0ZWRfcmVmZXJyZXI9CitDT05TT0xFIE1F
U1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFj
Y2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIAogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdp
biBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xp
Y3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3Jp
Z2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBv
bGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCkBAIC02LDE1ICsxMSwxNSBAQCBQQVNTIElt
cG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJvcmln
aW4iIHJlZmVycmVyIHBvbAogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJv
bSBhIHBhZ2UgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNl
bmQgcmVmZXJyZXIuCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20g
YSBwYWdlIHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qg
c2VuZCByZWZlcnJlci4KIFBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20g
YSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVy
cmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0
IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJy
ZXIuCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9y
aWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGlj
eSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNP
TFZFRCIgYnV0IGdvdCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1P
cmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9y
aWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMg
Im5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgog
UEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdp
biB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBz
aG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCiBQQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNj
cmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSBy
ZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhh
dCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFT
UyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29y
a2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5k
IHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEg
cmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBw
b2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2lu
IHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUt
b3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9y
dGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNj
cmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNl
bmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEg
cmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVy
cmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRo
YXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVy
LgorRkFJTCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmln
aW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3Vs
ZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBn
b3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291
cmNlIFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0
IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJl
ZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4i
CitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3Jp
Z2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91
bGQgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQg
Z290ICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNv
dXJjZSBTaGFyaW5nIHBvbGljeS4iCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlw
dCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2lu
IiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWls
ZWQuIgorRkFJTCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1v
cmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xp
Y3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVT
T0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3Mt
T3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1v
cmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFz
ICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4g
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcgYSBt
b2R1bGUgc2NyaXB0IGZhaWxlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9y
aWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBk
ZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Bl
bi11cmwtcmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0ZWQt
d29ya2VyLW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggMWUyZDM5OTJmNmQ1ZGYzMjIwN2E2YjBm
NjE5YTZkNzExODEyNDAwZC4uN2E3YTkxN2VhYTk4ZTkyZWUwM2VjMjhhMTFlNzgwODRkMjM0Yjg4
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy94aHIvb3Blbi11cmwtcmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVy
bC1yZWRpcmVjdGVkLXdvcmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAog
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cyLmxvY2FsaG9zdDo4ODAw
L3hoci9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5P2ZpbHRlcl9uYW1lPW9yaWdpbiZjb3Jz
CiAKLUZBSUwgUmVmZXJlciBoZWFkZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJlZmVyZXI6
IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC94aHIvcmVzb3VyY2VzL3dvcmtlcnhoci1vcmlnaW4tcmVm
ZXJyZXIuanNcbiIgYnV0IGdvdCAiUmVmZXJlcjogaHR0cDovL2xvY2FsaG9zdDo4ODAwL3hoci9y
ZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249d29ya2VyeGhyLW9yaWdpbi1yZWZlcnJlci5q
c1xuIgorUEFTUyBSZWZlcmVyIGhlYWRlcgogRkFJTCBPcmlnaW4gaGVhZGVyIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJPcmlnaW46IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMFxuIiBidXQgZ290ICIi
CiBQQVNTIFJlcXVlc3QgVVJMIHRlc3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW93b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvd29ya2xldC1hZGRNb2R1bGUtZmFpbHVyZS1leHBlY3RlZC50eHQK
aW5kZXggMDhhZjExNDM2MDU1MWJmNWE4MDc5YWYwYTM4MTVjNGUwOGViZDE0My4uMGJjYTQ4NWI2
Y2FlMjViOWQ1ZTFjZWI4MjgxN2ZhNWVkMzI3MDJhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW93b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZhaWx1cmUtZXhw
ZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBB
U1MgY29udGV4dC5hdWRpb1dvcmtsZXQuYWRkTW9kdWxlKGludmFsaWRVUkwpOyByZWplY3RlZCBw
cm9taXNlICB3aXRoIFN5bnRheEVycm9yOiBNb2R1bGUgVVJMIGlzIGludmFsaWQuCi1QQVNTIGNv
bnRleHQuYXVkaW9Xb3JrbGV0LmFkZE1vZHVsZSgnZG9lc25vdEV4aXN0LmpzJyk7IHJlamVjdGVk
IHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6
IFRoZSByZXF1ZXN0ZWQgVVJMIHdhcyBub3QgZm91bmQgb24gdGhpcyBzZXJ2ZXIuLgorUEFTUyBj
b250ZXh0LmF1ZGlvV29ya2xldC5hZGRNb2R1bGUoJ2RvZXNub3RFeGlzdC5qcycpOyByZWplY3Rl
ZCBwcm9taXNlICB3aXRoIEFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuLgog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby93b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3dvcmtsZXQtY3Jhc2gtZXhwZWN0ZWQudHh0CmluZGV4IDY1NGRk
ZjdmMTdlZmFiNThlNDJmYWJlMzg1MjU3OTY0YWUyYzVkNDEuLjE4NTBmZjQ3NTQ1OThlZjNjNmNh
NGI2OTkyZDVlNTZlNjUwNTdlYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dv
cmtsZXQtY3Jhc2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dvcmts
ZXQtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0xICsxLDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogQWJv
cnRFcnJvcjogJ3RleHQvaHRtbCcgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUu
CiBUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420086</attachid>
            <date>2021-02-11 20:26:44 -0800</date>
            <delta_ts>2021-02-11 22:52:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210211202643.patch</filename>
            <type>text/plain</type>
            <size>235629</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MDMzNjA1Y2FjMDYxMTJjMzYzYWMwMjlmMjYxZDc2OGRjNDEzZmRjLi42ZWUzOWExOTY5ZTA0YjY4
NDIxM2NkY2Q0MGE2NDVmYjBkNzNlZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAyMS0wMi0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcDoK
KyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9yKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlRXJyb3IpOgorICAgICAg
ICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVSYW5nZUVycm9y
KToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVmZXJlbmNlRXJyb3IpOgorICAgICAgICAoSlNDOjpj
cmVhdGVTeW50YXhFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVR5cGVFcnJvcik6CisgICAg
ICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlR2V0dGVyVHlw
ZUVycm9yKToKKyAgICAgICAgKEpTQzo6dGhyb3dTeW50YXhFcnJvcik6CisgICAgICAgICogcnVu
dGltZS9FcnJvci5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6RXJyb3JJ
bnN0YW5jZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VTdHJpbmcpOgorICAgICAgICAo
SlNDOjpFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5nKToKKyAgICAgICAgKEpTQzo6
RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGUpOgorICAg
ICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjplcnJvclR5cGUgY29uc3QpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBl
Pjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8
ZXJyb3JUeXBlPjo6Y2FsbEltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6
SlNXZWJBc3NlbWJseUxpbmtFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
cjo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9y
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04p
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisKIDIwMjEtMDIt
MTEgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogIlNob3cgRXh0ZW5kZWQgR3JpZGxpbmVzIiBvcHRpb24gZm9yIGdyaWQgb3Zl
cmxheSBkb2VzIG5vdCB3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjExZTgzZTAzMDYxMjc3ODNkZjI4NzM0
MDc5MGZlYjJhOTliMjg2ZS4uYTY1Y2RkMzMyYjMyMWI1Y2NmNDZkZWFiYTU3MTkzMmQ4YjJlMTcx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAyMS0wMi0xMSAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2Vycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
OjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlw
dEZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVx
dWVzdFNjcmlwdFdpdGhDYWNoZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01F
eGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXRyaWV2ZUVycm9yTWVz
c2FnZVdpdGhvdXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURPTUV4Y2VwdGlvbik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVj
dDo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyRmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxP
YmplY3Q6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xv
YmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVz
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RP
TVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVySW1w
b3J0TW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZVNj
cmlwdExvYWRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5
cGUuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6Y2xlYXJDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpzY3JpcHRGZXRjaGVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6cGFyYW1ldGVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpNb2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNjcmlwdExvYWRlcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQuaC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmllcik6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1
bGVMb2FkZXI6Om1vZHVsZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2Fk
ZXI6OnJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVM
b2FkZXI6OmltcG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpTY3JpcHRTb3VyY2VDb2RlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6V29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6fldv
cmtlck1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVHlwZS5oLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIuaDog
QWRkZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBkb20vRXhjZXB0
aW9uQ29kZS5oOgorICAgICAgICAqIGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZCk6IERlbGV0ZWQuCisgICAg
ICAgICogZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVs
ZVNjcmlwdCk6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIv
VGhyZWFkYWJsZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXI6Oldvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmlkbDoKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckds
b2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJH
bG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmNyZWRlbnRp
YWxzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVMb2FkZXIpOgorICAgICAg
ICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZVN5bmNocm9u
b3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
U2NyaXB0TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6
OnJlc3BvbnNlU291cmNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExv
YWRlcjo6aXNSZWRpcmVjdGVkIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJQYXJhbWV0ZXJzOjppc29sYXRlZENvcHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpldmFsdWF0ZVNjcmlwdElm
TmVjZXNzYXJ5KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgorICAgICAgICAq
IHdvcmtlcnMvV29ya2VyVHlwZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3Jp
cHRXaXRoQ29udGV4dCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25PcHRpb25zLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
VGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmg6CisgICAgICAgICogd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hB
bmRJbnZva2VTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpw
cm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpub3RpZnlGaW5pc2hlZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmRpZENvbXBsZXRl
U2NyaXB0RmV0Y2hKb2IpOiBEZWxldGVkLgorICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9i
YWxTY29wZS5oOgorCiAyMDIxLTAyLTExICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyNzI3NTg7IGluY2x1ZGUg
bWlzc2luZyBjaGFuZ2UgdG8gUnVudGltZUVuYWJsZWRGZWF0dXJlcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcAppbmRleCA3NTlhNWIyNGEw
ZWQwODY4MGNjYWE2MzQwZDJlOTVkNDUwYjgwZmQ2Li4yOTZjODVjYzkwZTA1YjU0NTQ3ZjY2MmE3
ZTJmOGExZTEzMGE0NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BZ2dyZWdhdGVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QWdncmVnYXRlRXJyb3IuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogY29u
c3QgQ2xhc3NJbmZvIEFnZ3JlZ2F0ZUVycm9yOjpzX2luZm8gPSB7ICJBZ2dyZWdhdGVFcnJvciIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQWdn
cmVnYXRlRXJyb3IpIH07CiAKIEFnZ3JlZ2F0ZUVycm9yOjpBZ2dyZWdhdGVFcnJvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDog
QmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5cGU6OkFnZ3JlZ2F0ZUVycm9yKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKaW5kZXggZjQ3M2I4MTgxZWMyZjAy
YTBjYzc4YTI2YzBjMjBkYzk2MzFmZGM3NC4uZmNhY2YxZTMyMmViMjcyNzg3NGZmMjUyNjI0MWVk
N2JlOThjZTUzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcApAQCAt
MzUsMzcgKzM1LDM3IEBAIG5hbWVzcGFjZSBKU0MgewogSlNPYmplY3QqIGNyZWF0ZUVycm9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJ
bnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdl
LmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpLCBt
ZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJldHVybiBFcnJvcklu
c3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9i
amVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBF
cnJvclR5cGU6OkVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZUV2YWxFcnJvcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9y
SW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2Fn
ZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJy
b3JUeXBlOjpFdmFsRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUp
OworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpFdmFs
RXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXZhbEVy
cm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVJhbmdlRXJyb3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpT
b3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgp
KTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmFu
Z2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJhbmdlRXJyb3IpLCBt
ZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6UmFuZ2VFcnJvciwgdHJ1
ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVSZWZlcmVuY2VFcnJvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJj
ZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwot
ICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpSZWZlcmVu
Y2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9y
KSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlJlZmVyZW5jZUVy
cm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6
U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHko
KSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2Jh
bE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlN5
bnRheEVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsKKyAgICBy
ZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52
bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6U3ludGF4RXJyb3Ip
LCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6U3ludGF4RXJyb3Is
IHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNl
QXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUpCiB7CiAgICAgQVNTRVJUKCFtZXNz
YWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBlLCB0cnVlKTsKKyAg
ICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9y
KSwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIEVycm9yVHlwZTo6VHlwZUVycm9yLCB0cnVlKTsK
IH0KIAogSlNPYmplY3QqIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVy
KQpAQCAtNzYsNyArNzYsNyBAQCBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JJbnN0YQogSlNPYmplY3QqIGNy
ZWF0ZVVSSUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAg
QVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNy
ZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJv
clN0cnVjdHVyZShFcnJvclR5cGU6OlVSSUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVO
b3RoaW5nLCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVy
cm9yVHlwZTo6VVJJRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9y
VHlwZTo6VVJJRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlRXJyb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JUeXBlIGVycm9yVHlwZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQpAQCAtMTEzLDcgKzExMyw3IEBAIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5cGVXaXRoRXh0ZW5zaW9uIGVycm9yCiBK
U09iamVjdCogY3JlYXRlR2V0dGVyVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0
eSgpKTsKLSAgICBhdXRvKiBlcnJvciA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJv
clR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UpOworICAgIGF1dG8qIGVycm9yID0gRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmpl
Y3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yKTsKICAgICBlcnJvci0+c2V0TmF0
aXZlR2V0dGVyVHlwZUVycm9yKCk7CiAgICAgcmV0dXJuIGVycm9yOwogfQpAQCAtMjc0LDcgKzI3
NCw3IEBAIEV4Y2VwdGlvbiogdGhyb3dUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0CiAKIEV4Y2VwdGlvbiogdGhyb3dTeW50YXhF
cnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSkKIHsK
LSAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlU3lu
dGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCAiU3ludGF4IGVycm9yIl9zKSk7CisgICAgcmV0dXJuIHRo
cm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVN5bnRheEVycm9yKGdsb2Jh
bE9iamVjdCkpOwogfQogCiBFeGNlcHRpb24qIHRocm93U3ludGF4RXJyb3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKQEAgLTMxNyw2ICszMTcsMTEgQEAgSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICByZXR1
cm4gY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBudWxscHRyKTsKIH0K
IAorSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgcmV0dXJuIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgIlN5bnRh
eCBlcnJvciJfcywgbnVsbHB0cik7Cit9CisKIEpTT2JqZWN0KiBjcmVhdGVUeXBlRXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gY3JlYXRlVHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgIlR5cGUgZXJyb3IiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yLmgKaW5kZXggNmRhYTE1NDIxNTY2NjEwZTRhY2U2ZGUzMzVmMzRkM2JmN2M3NDQ0ZC4u
ZGM4MjUyODJjMzU2NDg3MTMyNTQ1NDRiYzhkODE4ODg0MDBlNDM4YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvci5oCkBAIC01NSw2ICs1NSw3IEBAIEpTX0VYUE9SVF9QUklWQVRF
IEpTT2JqZWN0KiBjcmVhdGVFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcm
KTsKIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVSYW5nZUVycm9yKEpTR2xvYmFs
T2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3Jl
YXRlUmVmZXJlbmNlRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmKTsKIEpTX0VY
UE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVTeW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCos
IGNvbnN0IFN0cmluZyYpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZVN5bnRh
eEVycm9yKEpTR2xvYmFsT2JqZWN0Kik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3Jl
YXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0Kik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVj
dCogY3JlYXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CiBKU19F
WFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoSlNH
bG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMGYyZjVhMzE4NDAyZmJiN2M3ZDg4MDJiNmQ3ODQyZWZl
NDA2Yzg0Ni4uOWJlOTMwY2YxYzNjOWE0MGU2MDg1OTgzNTU4YTFhNTliYzc4YjYyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
QEAgLTYwLDE0ICs2MCwxNCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXJy
b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAgICA6IElu
dGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3
VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5lcnJvclN0cnVjdHVyZSgp
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5n
LCBmYWxzZSkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSkpOwog
fQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEVycm9yQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
SlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUq
IGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
ZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJv
clR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBib29sIEVycm9yQ29uc3RydWN0b3I6OnB1dChK
U0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKaW5kZXggMmU0
ZWMzOWYxMjA1OGIyNTA4NzIyZTBiODI1MjI0N2JlYjAzMTllNi4uMGY4NmUyMmI5MmRkZDZkMTM5
ODU4Yjg2ZTU2Y2VhZGNhZWNlMGQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTM0LDE4ICszNCwyMyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogY29uc3QgQ2xhc3NJbmZvIEVycm9ySW5zdGFuY2U6OnNfaW5mbyA9IHsgIkVycm9yIiwg
JkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShFcnJvckluc3RhbmNlKSB9OwogCi1FcnJvckluc3RhbmNlOjpFcnJvckluc3RhbmNl
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitFcnJvckluc3RhbmNlOjpFcnJvckluc3Rh
bmNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVycm9yVHlwZSBlcnJvclR5cGUpCiAg
ICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgLCBtX2Vycm9yVHlwZShlcnJvclR5cGUpCisg
ICAgLCBtX3N0YWNrT3ZlcmZsb3dFcnJvcihmYWxzZSkKKyAgICAsIG1fb3V0T2ZNZW1vcnlFcnJv
cihmYWxzZSkKKyAgICAsIG1fZXJyb3JJbmZvTWF0ZXJpYWxpemVkKGZhbHNlKQorICAgICwgbV9u
YXRpdmVHZXR0ZXJUeXBlRXJyb3IoZmFsc2UpCiB7CiB9CiAKLUVycm9ySW5zdGFuY2UqIEVycm9y
SW5zdGFuY2U6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNWYWx1ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciwgUnVu
dGltZVR5cGUgdHlwZSwgYm9vbCB1c2VDdXJyZW50RnJhbWUpCitFcnJvckluc3RhbmNlKiBFcnJv
ckluc3RhbmNlOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1
bnRpbWVUeXBlIHR5cGUsIEVycm9yVHlwZSBlcnJvclR5cGUsIGJvb2wgdXNlQ3VycmVudEZyYW1l
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNz
YWdlLmlzVW5kZWZpbmVkKCkgPyBTdHJpbmcoKSA6IG1lc3NhZ2UudG9XVEZTdHJpbmcoZ2xvYmFs
T2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBy
ZXR1cm4gY3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZVN0cmluZywg
YXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CisgICAgcmV0dXJuIGNyZWF0ZShnbG9i
YWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2VTdHJpbmcsIGFwcGVuZGVyLCB0eXBlLCBl
cnJvclR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgYXBwZW5kU291
cmNlVG9FcnJvck1lc3NhZ2UoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVycm9ySW5zdGFuY2UqIGV4
Y2VwdGlvbiwgQnl0ZWNvZGVJbmRleCBieXRlY29kZUluZGV4LCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCkBAIC0xMzEsNyArMTM2LDI1IEBAIHZvaWQgRXJyb3JJbnN0YW5jZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTCiAvLyBCYXNl
ZCBvbiBFcnJvclByb3RvdHlwZSdzIGVycm9yUHJvdG9GdW5jVG9TdHJpbmcoKSwgYnV0IGlzIG1v
ZGlmaWVkIHRvCiAvLyBoYXZlIG5vIG9ic2VydmFibGUgc2lkZSBlZmZlY3RzIHRvIHRoZSB1c2Vy
IChpLmUuIGRvZXMgbm90IGNhbGwgcHJveGllcywKIC8vIGFuZCBnZXR0ZXJzKS4KLVN0cmluZyBF
cnJvckluc3RhbmNlOjpzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQorU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VTdHJpbmcoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEludGVn
cml0eTo6YXVkaXRTdHJ1Y3R1cmVJRCh2bSwgc3RydWN0dXJlSUQoKSk7CisKKyAgICBKU1ZhbHVl
IG1lc3NhZ2VWYWx1ZTsKKyAgICBhdXRvIG1lc3NhZ2VQcm9wZXJ0TmFtZSA9IHZtLnByb3BlcnR5
TmFtZXMtPm1lc3NhZ2U7CisgICAgUHJvcGVydHlTbG90IG1lc3NhZ2VTbG90KHRoaXMsIFByb3Bl
cnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnksICZ2bSk7CisgICAgaWYgKEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUHJv
cGVydE5hbWUsIG1lc3NhZ2VTbG90KSAmJiBtZXNzYWdlU2xvdC5pc1ZhbHVlKCkpCisgICAgICAg
IG1lc3NhZ2VWYWx1ZSA9IG1lc3NhZ2VTbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgbWVzc2Fn
ZVByb3BlcnROYW1lKTsKKyAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOworCisgICAgaWYg
KCFtZXNzYWdlVmFsdWUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIG1lc3NhZ2VWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpKTsK
K30KKworU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZE5hbWVTdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU3LDI4ICsx
ODAsMjIgQEAgU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgfQogICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9u
KCk7CiAKLSAgICBTdHJpbmcgbmFtZVN0cmluZzsKICAgICBpZiAoIW5hbWVWYWx1ZSkKLSAgICAg
ICAgbmFtZVN0cmluZyA9ICJFcnJvciJfczsKLSAgICBlbHNlIHsKLSAgICAgICAgbmFtZVN0cmlu
ZyA9IG5hbWVWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7Ci0gICAgfQorICAgICAgICByZXR1cm4gIkVy
cm9yIl9zOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbmFtZVZhbHVlLnRvV1RGU3Ry
aW5nKGdsb2JhbE9iamVjdCkpOworfQogCi0gICAgSlNWYWx1ZSBtZXNzYWdlVmFsdWU7Ci0gICAg
YXV0byBtZXNzYWdlUHJvcGVydE5hbWUgPSB2bS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlOwotICAg
IFByb3BlcnR5U2xvdCBtZXNzYWdlU2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0
aG9kVHlwZTo6Vk1JbnF1aXJ5LCAmdm0pOwotICAgIGlmIChKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVByb3BlcnROYW1lLCBtZXNzYWdlU2xv
dCkgJiYgbWVzc2FnZVNsb3QuaXNWYWx1ZSgpKQotICAgICAgICBtZXNzYWdlVmFsdWUgPSBtZXNz
YWdlU2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSk7Ci0gICAg
c2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKK1N0cmluZyBFcnJvckluc3RhbmNlOjpzYW5pdGl6
ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisgICAgSW50ZWdyaXR5OjphdWRpdFN0cnVjdHVyZUlEKHZtLCBzdHJ1Y3R1cmVJRCgp
KTsKIAotICAgIFN0cmluZyBtZXNzYWdlU3RyaW5nOwotICAgIGlmICghbWVzc2FnZVZhbHVlKQot
ICAgICAgICBtZXNzYWdlU3RyaW5nID0gU3RyaW5nKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIG1l
c3NhZ2VTdHJpbmcgPSBtZXNzYWdlVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKLSAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgU3RyaW5nKCkpOwotICAgIH0KKyAgICBT
dHJpbmcgbmFtZVN0cmluZyA9IHNhbml0aXplZE5hbWVTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7CisKKyAgICBTdHJpbmcgbWVz
c2FnZVN0cmluZyA9IHNhbml0aXplZE1lc3NhZ2VTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7CiAKICAgICBpZiAoIW5hbWVTdHJp
bmcubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBtZXNzYWdlU3RyaW5nOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCmluZGV4IGRhNjZlYjc2ZTdhZGU5
MGZkNDFiYjE2MjcwNzI1YTdkMTQ3MGFkMzguLjk4NzEzNTcyMWIzMDU2NjIzMGQyNjFjODMzYWQ4
ZGVjYTU0NjE0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvcklu
c3RhbmNlLmgKQEAgLTIwLDYgKzIwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJF
cnJvclR5cGUuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVUeXBl
LmgiCiAjaW5jbHVkZSAiU3RhY2tGcmFtZS5oIgpAQCAtNTMsMTQgKzU0LDE0IEBAIGNsYXNzIEVy
cm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEVy
cm9ySW5zdGFuY2VUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCi0gICAg
c3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNv
dXJjZUFwcGVuZGVyIGFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVO
b3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpCisgICAgc3RhdGljIEVycm9ySW5z
dGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFw
cGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVOb3RoaW5nLCBFcnJvclR5
cGUgZXJyb3JUeXBlID0gRXJyb3JUeXBlOjpFcnJvciwgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0
cnVlKQogICAgIHsKLSAgICAgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcgKE5vdE51
bGwsIGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPih2bS5oZWFwKSkgRXJyb3JJbnN0YW5jZSh2
bSwgc3RydWN0dXJlKTsKKyAgICAgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPih2bS5oZWFwKSkgRXJyb3JJbnN0YW5j
ZSh2bSwgc3RydWN0dXJlLCBlcnJvclR5cGUpOwogICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3Jl
YXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJl
bnRGcmFtZSk7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICB9CiAKLSAgICBzdGF0aWMg
RXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNWYWx1
ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5v
dGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7CisgICAgc3RhdGljIEVycm9ySW5z
dGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpTVmFsdWUgbWVzc2Fn
ZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBF
cnJvclR5cGUgPSBFcnJvclR5cGU6OkVycm9yLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUp
OwogCiAgICAgYm9vbCBoYXNTb3VyY2VBcHBlbmRlcigpIGNvbnN0IHsgcmV0dXJuICEhbV9zb3Vy
Y2VBcHBlbmRlcjsgfQogICAgIFNvdXJjZUFwcGVuZGVyIHNvdXJjZUFwcGVuZGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2VBcHBlbmRlcjsgfQpAQCAtNzAsNiArNzEsNyBAQCBjbGFzcyBFcnJv
ckluc3RhbmNlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIFJ1bnRpbWVUeXBlIHJ1
bnRpbWVUeXBlRm9yQ2F1c2UoKSBjb25zdCB7IHJldHVybiBtX3J1bnRpbWVUeXBlRm9yQ2F1c2U7
IH0KICAgICB2b2lkIGNsZWFyUnVudGltZVR5cGVGb3JDYXVzZSgpIHsgbV9ydW50aW1lVHlwZUZv
ckNhdXNlID0gVHlwZU5vdGhpbmc7IH0KIAorICAgIEVycm9yVHlwZSBlcnJvclR5cGUoKSBjb25z
dCB7IHJldHVybiBtX2Vycm9yVHlwZTsgfQogICAgIHZvaWQgc2V0U3RhY2tPdmVyZmxvd0Vycm9y
KCkgeyBtX3N0YWNrT3ZlcmZsb3dFcnJvciA9IHRydWU7IH0KICAgICBib29sIGlzU3RhY2tPdmVy
Zmxvd0Vycm9yKCkgY29uc3QgeyByZXR1cm4gbV9zdGFja092ZXJmbG93RXJyb3I7IH0KICAgICB2
b2lkIHNldE91dE9mTWVtb3J5RXJyb3IoKSB7IG1fb3V0T2ZNZW1vcnlFcnJvciA9IHRydWU7IH0K
QEAgLTc5LDYgKzgxLDggQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKICAgICBib29sIGlzTmF0aXZlR2V0dGVyVHlwZUVycm9yKCkgY29uc3QgeyByZXR1
cm4gbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3I7IH0KIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0
cmluZyBzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCopOworICAgIEpTX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyBzYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKEpTR2xvYmFsT2JqZWN0Kik7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHNhbml0aXplZE5hbWVTdHJpbmcoSlNHbG9iYWxP
YmplY3QqKTsKICAgICAKICAgICBWZWN0b3I8U3RhY2tGcmFtZT4qIHN0YWNrVHJhY2UoKSB7IHJl
dHVybiBtX3N0YWNrVHJhY2UuZ2V0KCk7IH0KIApAQCAtODgsNyArOTIsNyBAQCBjbGFzcyBFcnJv
ckluc3RhbmNlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgZmluYWxpemVV
bmNvbmRpdGlvbmFsbHkoVk0mKTsKIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEVycm9ySW5z
dGFuY2UoVk0mLCBTdHJ1Y3R1cmUqKTsKKyAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKFZNJiwg
U3RydWN0dXJlKiwgRXJyb3JUeXBlKTsKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBK
U0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwg
UnVudGltZVR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsK
IApAQCAtMTA4LDEwICsxMTIsMTEgQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKICAgICBTdHJpbmcgbV9zb3VyY2VVUkw7CiAgICAgU3RyaW5nIG1fc3Rh
Y2tTdHJpbmc7CiAgICAgUnVudGltZVR5cGUgbV9ydW50aW1lVHlwZUZvckNhdXNlIHsgVHlwZU5v
dGhpbmcgfTsKLSAgICBib29sIG1fc3RhY2tPdmVyZmxvd0Vycm9yIHsgZmFsc2UgfTsKLSAgICBi
b29sIG1fb3V0T2ZNZW1vcnlFcnJvciB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2Vycm9ySW5mb01h
dGVyaWFsaXplZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX25hdGl2ZUdldHRlclR5cGVFcnJvciB7
IGZhbHNlIH07CisgICAgRXJyb3JUeXBlIG1fZXJyb3JUeXBlIHsgRXJyb3JUeXBlOjpFcnJvciB9
OworICAgIGJvb2wgbV9zdGFja092ZXJmbG93RXJyb3IgOiAxOworICAgIGJvb2wgbV9vdXRPZk1l
bW9yeUVycm9yIDogMTsKKyAgICBib29sIG1fZXJyb3JJbmZvTWF0ZXJpYWxpemVkIDogMTsKKyAg
ICBib29sIG1fbmF0aXZlR2V0dGVyVHlwZUVycm9yIDogMTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDQwMjFmYzdlMGFkYWY3YTBhOWUwZWY2Y2ZkMjI1
ODM4YjViZjg3ODMuLmFmNzI2MjgzMWNhMWJiNzVjNmFlNTU0MTFkZTRjZDg1YTgxMzdkYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5jcHAKQEAgLTY5NCw3ICs2OTQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yQXJndW1lbnRzQ2FsbGVlQW5kQ2FsbGVyLCAo
SlNHbAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNNYWtlVHlwZUVycm9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0
dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVy
cm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVy
cm9yU3RydWN0dXJlLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBudWxscHRyLCBUeXBlTm90aGlu
ZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIGZhbHNlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihnbG9iYWxGdW5jUHJvdG9HZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDdjYzExYjVm
NWUxMjk3MjIwMTZiODY3MWYxMzdjNmJiMTcyMTM4NDAuLmI2ZTdlZGVmZDQyZWRjNjM1ZDkwYjdl
MGU4YzdiNGZjMGMyNDNkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC01OCw3ICs1OCw3IEBAIGlu
bGluZSBFbmNvZGVkSlNWYWx1ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNv
bnN0cnVjdEltcGwoSlNHbG9iYWxPCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKICAgICBBU1NFUlQoZXJyb3JTdHJ1Y3R1cmUpOwogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkp
KTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvcklu
c3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVs
bHB0ciwgVHlwZU5vdGhpbmcsIGVycm9yVHlwZSwgZmFsc2UpKSk7CiB9CiAKIHRlbXBsYXRlPEVy
cm9yVHlwZSBlcnJvclR5cGU+CkBAIC02Niw3ICs2Niw3IEBAIGlubGluZSBFbmNvZGVkSlNWYWx1
ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNhbGxJbXBsKEpTR2xvYmFsT2Jq
ZWN0CiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAg
ICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVy
ZShlcnJvclR5cGUpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6
Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5
cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxw
dHIsIFR5cGVOb3RoaW5nLCBlcnJvclR5cGUsIGZhbHNlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjYWxsRXZhbEVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKaW5kZXggMjZmM2I2YThmOWRiNjc4Y2Q5NGQw
NWFlODhiMTFiODllNjFjMGViYy4uMGRkYjJjNmE1MGY0NmJjNjM2OTk1Y2E0NmQ3ZjE4ZTViMjY4
NjNlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRl
ckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0
dGVyRnVuY3Rpb24uY3BwCkBAIC05NCw3ICs5NCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihjYWxsVGhyb3dFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIC8vIFRoaXMg
ZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgZnJvbSBJQy4gQW5kIHdlIGRvIG5vdCB3YW50IHRvIGlu
Y2x1ZGUgdGhpcyBmcmFtZSBpbiBFcnJvcidzIHN0YWNrLgogICAgIGNvbnN0ZXhwciBib29sIHVz
ZUN1cnJlbnRGcmFtZSA9IGZhbHNlOwotICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwg
c2NvcGUsIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmpl
Y3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgUmVhZG9ubHlQcm9wZXJ0
eVdyaXRlRXJyb3IsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUpKTsKKyAg
ICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5
cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yLCBudWxscHRyLCBUeXBl
Tm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIHVzZUN1cnJlbnRGcmFtZSkpOwogICAgIHJl
dHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKaW5kZXggMzgzNzNhNzYwZDU5ZDBl
ZWRiNDk0ZGI4OGQ4NTI0ZmFiOWE1MTU0ZS4uOWViZDNkNDQ2YTlkYTlhZDE5ZDdiYTQxOTkwMDYz
ZmM1YTYzMjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgSlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvciogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6Y3JlYXRl
KEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6SlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5
cGU6OkVycm9yKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwCmluZGV4IGVhZGUwMzQxM2U0Y2UzNjBi
YTA4OWY4YzUzZDE4Y2Y4ZDZkNzAyMzUuLjliMjAwNThlY2YzNGFmOTFiNmIxOGQxNWY2NTE1Nzg1
YzIxNzJlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEpTV2ViQXNzZW1i
bHlMaW5rRXJyb3IqIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OmNyZWF0ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqCiB9CiAKIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OkpTV2ViQXNzZW1ibHlM
aW5rRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgRXJyb3JUeXBlOjpFcnJvcikKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5UnVudGltZUVycm9yLmNwcAppbmRleCBiZTFmOTI4NjAzMDQ1ZDdjZjcyOTMyNGVl
NGE3N2FlODNmY2U5Y2JlLi4xOTMzYTZlMzg4OGZiZWFjY2YwN2FjMmIzN2M3NDUwNDg0ZmE1MWYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5UnVudGltZUVycm9yLmNwcApAQCAtNDEsNyArNDEsNyBAQCBKU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yKiBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxP
YmplY3QqIGdsbwogfQogCiBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpKU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6RXJyb3Ip
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNWNk
MDAzNWEwMWZkYjc4ZGRjMzVmYzQ3YjZiODU4MGJlNDVkMzU5Ny4uYzNhMGQzOTdmNTA0ZTI1OGYx
ZDcwZjhiNDgyYjc5YTFkOWU3MjY2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxK
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIHsKICAg
ICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVy
ZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5Q29tcGlsZUVycm9y
U3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlw
ZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3Rh
bmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3Ry
dWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3NlbWJseUNv
bXBpbGVFcnJvclByb3RvdHlwZSogdGhpc1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggOTQ2ZGVmNGYxMTUyMjlhMjI1YmU5MzJhYzllNjQzNWI2YzhhYjJh
OS4uMmM1ZjZhMjkzMWYxNTIxNTg1YWFhOTM1ZTU2YjRiZDJmMTljMTZiMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlM
aW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamUKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
OwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2Vt
Ymx5TGlua0Vycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJv
ckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwg
bnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9
CiAKIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5TGlua0Vycm9y
Q29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3Nl
bWJseUxpbmtFcnJvclByb3RvdHlwZSogdGhpc1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggM2RmZDkxNTY3YjYwYTU4ZGQ5YWE2ODQyZmY2Nzkw
MjFmNWNiOTI1Mi4uYTg1NjY5YzUxOGIxZTlhYTY4Yzk1YWQwNTY2ZWJmZDZmYzNkZmE4YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTY3LDcgKzY3LDcgQEAg
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxP
YmplY3QtPndlYkFzc2VtYmx5UnVudGltZUVycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0
cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBl
cnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6
RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3Iq
IFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSogdGhpc1By
b3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGY4ODU5MTVmZThiZTc5ZTUxMjU4ZmZmOGQ4
MzE4MmM5NWQ3ZDMyY2IuLjlkYjk3ZWQ3MTIwZjM3YjJmYmJmNWZiN2MyZGVjNDQ3ZDg4ZmY2YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMzAsNiArMzAsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVy
LmgKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5oCisgICAgTW9kdWxlcy9mZXRj
aC9GZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRl
cnMuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hJZGVudGlmaWVyLmgKICAgICBNb2R1bGVzL2Zl
dGNoL0ZldGNoTG9hZGVyLmgKQEAgLTI4Nyw2ICsyODgsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgYmluZGluZ3MvanMvV2ViQ29yZUpJVE9wZXJhdGlvbnMu
aAogICAgIGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oCiAgICAgYmlu
ZGluZ3MvanMvV2luZG93UHJveHkuaAorICAgIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNo
ZXIuaAogCiAgICAgYnJpZGdlL0JyaWRnZS5oCiAgICAgYnJpZGdlL0lkZW50aWZpZXJSZXAuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCAwNDVjZjI3MDZjMDM2N2U0Y2Y5MGIzMmRkZDc5MTQ2ZDVmYTExZGZm
Li43ODBmNzMxNzdkNTQ2Y2Y4YmE0ZjM0NWEzOTBkNzcxZmQ0ZjY1MzY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtNjM5LDYgKzYzOSw3IEBAIGJpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5jcHAKIGJp
bmRpbmdzL2pzL1dlYkNvcmVKSVRPcGVyYXRpb25zLmNwcAogYmluZGluZ3MvanMvV2ViQ29yZUpT
Q2xpZW50RGF0YS5jcHAKIGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5j
cHAKK2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKIGJpbmRpbmdzL2pz
L1dpbmRvd1Byb3h5LmNwcAogYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uY3BwCiBicmlkZ2Uv
SWRlbnRpZmllclJlcC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA4YzE1ZWI2NDgwMzczMDU4MDdiNzAzZDBiZGJhYjNmM2Jm
YTU3MTViLi4yM2U5MGI1ZWVlNzY4MTJiOTNkMWNjNTdkNmE3NzhkMTY1MjcwYzVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
MDY5LDE1ICs1MDY5LDE4IEBACiAJCUUzMDU5MjY0MUUyN0EzQUQwMEQ1N0M5OCAvKiBJbmxpbmVD
bGFzc2ljU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzA1OTI2MjFFMjdBMzhDMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDU5MjY4
MUUyN0EzRDEwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTgg
LyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUUzMDdERUQwMUQ4MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzMDdERUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlF
MzA3REVEMTFEODFFNENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVD
ODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwN0RFRDUx
RDgxRTRGMjAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYg
LyogTG9hZGFibGVNb2R1bGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFMzE1MEVBNzFEQTcyMTkzMDAxOTQwMTIgLyogRE9NSklUSGVs
cGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMx
NTBFQTUxREE3MjE4RDAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCAqLzsgfTsKIAkJRTMyMDFD
MUExRjhFODIxMzAwNzZBMDMyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4RDA2MDkxRjhFODExOTAwNjQ5
Q0YyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMjNDRkZBMUU1QUY2QUYwMEYwQjRBMCAvKiBKU0RP
TUNvbnZlcnRQcm9taXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzIzQ0ZGOTFFNUFGNkE1MDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzNDMy
REU0MjVEMzc3RTMwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDMyREUwMjVEMzc3RTIw
MDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLzsgfTsKKwkJRTM0N0U1RkEy
NUQ0RjAwMDAwRjE3QTVDIC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDdFNUY4MjVENEYwMDAwMEYxN0E1QyAv
KiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJRTM1MTg4QjQyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTM1MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUz
NTY1QjdCMURDMkQ2QzkwMDIxN0RCRCAvKiBKU0V2ZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRFRTQ5RjFEQzJENTc1MDBFQUE5RDMg
LyogSlNFdmVudEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzNTgwMkI2MURDODQzNUQwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmls
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4
MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNTgyQzI4MjUyN0Y2Njkw
MEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODJDMjYyNTI3RjY2ODAwRDFCNzkwIC8qIFdlYkNv
cmVKSVRPcGVyYXRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTM1QjkwN0YyM0Y2MEE1MDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1v
ZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVC
OTA3QzIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzY0MzIxQzI1RDM3QTY3
MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyogTW9kdWxl
U2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTM3N0ZFNEQxREFERTE2NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFudHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0OTkzMURBREMw
NDUwMDcxOEYzQyAvKiBOb2RlQ29uc3RhbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNBIC8qIEpTRE9N
UHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzOTYyOEJGMjM5NTcyOEYwMDY1
OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhCRDIzOTU3MjhFMDA2NThFQ0Qg
LyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNjE5NSw3ICsxNjE5OCw2IEBACiAJCUUz
MDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFQzYxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMzA3REVDODFEODFFNDQ4MDAx
NDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVEMjFEODFFNEVEMDAxNDFDQUYgLyogTG9h
ZGFibGVNb2R1bGVTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYgLyogTG9hZGFibGVNb2R1bGVTY3JpcHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9hZGFibGVNb2R1bGVTY3JpcHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMxNTBFQTUxREE3MjE4RDAwMTk0MDEyIC8qIERP
TUpJVEhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSGVs
cGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyMDgsMTIgKzE2MjEwLDE3
IEBACiAJCUUzMjkyNzYzMjI1NDNGNTkwMDMwOEE5QSAvKiBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGVkT01DU1NVbml0VmFsdWUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzI5Mjc2NjIyNTQzRkRFMDAzMDhBOUEgLyogRE9NUmVjdFJl
YWRPbmx5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3RSZWFkT25seS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMzQ4MjVFMURDOTNBQTAwMDlDOTU0NCAvKiBET01K
SVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvRE9NSklUQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OworCQlFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2Vy
TW9kdWxlU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MzQzMkRFMzI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlck1vZHVsZVNjcmlwdExv
YWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNDdFNUY4MjVENEYwMDAw
MEYxN0E1QyAvKiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdvcmtlclNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZlbnRDdXN0b20uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFdmVudEN1c3RvbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4MDJC
NTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRJRExUeXBlRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzNTgyQzI0MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3Bl
cmF0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3Jl
SklUT3BlcmF0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTgyQzI2
MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlSklUT3BlcmF0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMzVCOTA3QzIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2
aWNlTW9kZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemVkRGV2
aWNlTW9kZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1QjkwN0UyM0Y2MDY3
NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxpemVkRGV2aWNlTW9kZWwubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzNjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1bGVTY3Jp
cHRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlU2NyaXB0
TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzN0M4NjRGMUVCNjNFMkQw
MDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNET01Qcm9taXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzODgzODk0
MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1v
ZHVsZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRNb2R1
bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3MDA5LDcgKzI3MDE2
LDYgQEAKIAkJCQkyREZBNDg4RTFEQjU0MUMyMDAzNjJCOTkgLyogQnVmZmVyU291cmNlLmggKi8s
CiAJCQkJRTMwN0RFQzYxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5jcHAgKi8sCiAJCQkJRTMwN0RFQzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5oICovLAotCQkJCUUzMDdERUM4MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLywKIAkJCQlFMzA1OTI2NTFFMjdBM0M2MDBENTdD
OTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAgKi8sCiAJCQkJRTMwNTkyNjYxRTI3QTNDNjAw
RDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLywKIAkJCQlCQ0Q1MzM2MzBFRDY4NDg5
MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLywKQEAgLTI3MDgzLDYg
KzI3MDg5LDggQEAKIAkJCQk0QkRFQTMyRDIxODAzNDA1MDA1MkRGQ0QgLyogSlNXb3JrbGV0R2xv
YmFsU2NvcGVCYXNlLmNwcCAqLywKIAkJCQk0QkRFQTMyQjIxODAzM0VCMDA1MkRGQ0QgLyogSlNX
b3JrbGV0R2xvYmFsU2NvcGVCYXNlLmggKi8sCiAJCQkJNzA5QTAxRkQxRTNEMEJDQzAwNkIwRDRD
IC8qIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQuaCAqLywKKwkJCQlFMzY0MzIxQTI1RDM3QTY2MDBG
OTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8sCisJCQkJRTM1MTg4QjMyNUQzODdDRjAw
QTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovLAogCQkJCTQxQjQ1OUVEMUY1
NUVCQzcwMDAwRjZGRCAvKiBSZWFkYWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDFCNDU5REExRjRD
QURCOTAwMDBGNkZEIC8qIFJlYWRhYmxlU3RyZWFtLmggKi8sCiAJCQkJNDE4QzM5NUUxQzhGMEFB
QjAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwICovLApAQCAt
MjcxMTQsNiArMjcxMjIsOSBAQAogCQkJCTBGMDk5RDA3MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJD
b3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAqLywKIAkJCQk0NjM1MjFBQzIwODEwOTBFMDBDMjg5
MjIgLyogV2luZG93UHJveHkuY3BwICovLAogCQkJCTQ2MzUyMUFBMjA4MTA5MEIwMEMyODkyMiAv
KiBXaW5kb3dQcm94eS5oICovLAorCQkJCUUzNDMyREUzMjVEMzc3RTMwMDU4RTYxMiAvKiBXb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwICovLAorCQkJCUUzNDMyREUwMjVEMzc3RTIwMDU4RTYx
MiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLywKKwkJCQlFMzQ3RTVGODI1RDRGMDAw
MDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5oICovLAogCQkJCTQxNDE4QTAzMjU2NDNF
MTIwMDM2MzQxNyAvKiBXcml0YWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDE0MThBMDQyNTY0M0Ux
MzAwMzYzNDE3IC8qIFdyaXRhYmxlU3RyZWFtLmggKi8sCiAJCQkpOwpAQCAtMzEzODcsNyArMzEz
OTgsNiBAQAogCQkJCUJDQjE2QzFDMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRJbWFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzE5RkJENUYxNUQyRjQ2NDAwOTY0MEE2IC8qIENhY2hlZEltYWdl
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA3REVEMDFEODFFNEM3MDAxNDFDQUYgLyog
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMzA3REVEMTFE
ODFFNENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTAxODQ2OTBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRDBFREE3NzUxNDNFMzAzQzAwMjhFMzgzIC8qIENhY2hlZFJhd1Jl
c291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUI1MzM0OTE3MTdERUUzMDBGMjA1RjkgLyog
Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzM4NjIsNiArMzM4
NzIsOCBAQAogCQkJCUM2RDc0QUQ1MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25M
aXN0TGV2ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwOUEwMUZFMUUzRDBCREQwMDZCMEQ0QyAv
KiBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzIwMUMxQTFG
OEU4MjEzMDA3NkEwMzIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMzY0MzIxQzI1RDM3QTY3MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMzUxODhCNDI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RDNjEyNTFGMTJEMDAzRUYy
NjkgLyogTW9udGhJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOTYyOEMxMjM5NTc0
MzEwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NTAzMUI0NjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zNTUxMiw2ICszNTUyNCw3IEBACiAJCQkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdv
cmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBC
MEYxQkEgLyogV29ya2VyTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUwMEY1
NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTM0MzJERTQyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNzFBMEIwRUVFQzc3QTAwRjYxMjEzIC8qIFdvcmtlck5h
dmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8q
IFdvcmtlck5ldHdvcmtBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4
MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTM1NTIx
LDYgKzM1NTM0LDcgQEAKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVw
b3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUzMEY1NDZBODIwMEIwRjFC
QSAvKiBXb3JrZXJSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDRjFGQUE0NERF
MDAzN0QxRTYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzQ3
RTVGQTI1RDRGMDAwMDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdENkIzNDkwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkVBNzY4MDQwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNj
cmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTUwRjU0NkE4MjAw
QjBGMUJBIC8qIFdvcmtlclRocmVhZC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcAppbmRl
eCAzNTJkY2M0YWNmNzUxNzZkOThhZDM0MTBiZTE1MTYwODAxMDg4NTI0Li4yNzdmNjJhN2MxMzNm
ZTE1NmM2Y2NlOTg1NTM1NTBlZGIxMzZkMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTQwLDE2ICs0
MCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXI+IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNj
cmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+
JiYgcGFyYW1ldGVycykKK1JlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+IENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcjo6Y3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBE
ZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNo
ZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoY2xpZW50LCBwcm9t
aXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSk7CiB9CiAKLUNhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcjo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hl
ZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRl
cnM+JiYgcGFyYW1ldGVycykKLSAgICA6IG1fY2xpZW50KCZjbGllbnQpCi0gICAgLCBtX3Byb21p
c2UoJnByb21pc2UpCi0gICAgLCBtX3NjcmlwdEZldGNoZXIoc2NyaXB0RmV0Y2hlcikKLSAgICAs
IG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQorQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBj
bGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2Ny
aXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQor
ICAgIDogTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwg
V1RGTW92ZShwYXJhbWV0ZXJzKSkKIHsKIH0KIApAQCAtNjEsMTQgKzU4LDE1IEBAIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcjo6fkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcigpCiAgICAgfQogfQog
Ci1ib29sIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFVSTCYgc291cmNlVVJMKQorYm9vbCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6Omxv
YWQoRG9jdW1lbnQmIGRvY3VtZW50LCBVUkwmJiBzb3VyY2VVUkwpCiB7CisgICAgQVNTRVJUKG1f
cHJvbWlzZSk7CiAgICAgQVNTRVJUKCFtX2NhY2hlZFNjcmlwdCk7CiAgICAgU3RyaW5nIGludGVn
cml0eSA9IG1fcGFyYW1ldGVycyA/IG1fcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkgOiBTdHJpbmcg
eyB9OwotICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9zY3JpcHRGZXRjaGVyLT5yZXF1ZXN0TW9kdWxl
U2NyaXB0KGRvY3VtZW50LCBzb3VyY2VVUkwsIFdURk1vdmUoaW50ZWdyaXR5KSk7CisgICAgbV9j
YWNoZWRTY3JpcHQgPSBzY3JpcHRGZXRjaGVyKCkucmVxdWVzdE1vZHVsZVNjcmlwdChkb2N1bWVu
dCwgc291cmNlVVJMLCBXVEZNb3ZlKGludGVncml0eSkpOwogICAgIGlmICghbV9jYWNoZWRTY3Jp
cHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtX3NvdXJjZVVSTCA9IHNvdXJjZVVSTDsK
KyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUoc291cmNlVVJMKTsKIAogICAgIC8vIElmIHRoZSBj
b250ZW50IGlzIGFscmVhZHkgY2FjaGVkLCB0aGlzIGltbWVkaWF0ZWx5IGNhbGxzIG5vdGlmeUZp
bmlzaGVkLgogICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQoKnRoaXMpOwpAQCAtODMsNyAr
ODEsNyBAQCB2b2lkIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2Fj
aGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBOZQogCiAgICAgUmVmPENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgaWYgKG1fY2xpZW50KQotICAg
ICAgICBtX2NsaWVudC0+bm90aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9wcm9taXNlKSk7
CisgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJj
ZVVSTCksIG1fcHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIC8vIFJlbW92ZSB0aGUg
Y2xpZW50IGFmdGVyIGNhbGxpbmcgbm90aWZ5RmluaXNoZWQgdG8ga2VlcCB0aGUgZGF0YSBidWZm
ZXIgaW4KICAgICAvLyBDYWNoZWRSZXNvdXJjZSBhbGl2ZSB3aGlsZSBub3RpZnlGaW5pc2hlZCBw
cm9jZXNzZXMgdGhlIHJlc291cmNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaAppbmRleCA0M2FiZDg3NWIyNDNmYWY1ZmNk
NGQ5OGVjM2M1ZDI0ZTc5MGI1NzJlLi5hNDg3NTVmOTNkMDVlZjM1M2QyYjNlMjI4ZDgyMTlmZTg5
MWU2NzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVTY3JpcHRMb2Fk
ZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zNCw0MiArMzYsMjkgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFz
cyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7Ci1jbGFzcyBD
YWNoZWRTY3JpcHRGZXRjaGVyOwogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKIGNsYXNzIE1vZHVsZUZldGNoUGFyYW1ldGVy
czsKIAotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIFJlZkNv
dW50ZWQ8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNs
aWVudCB7CitjbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9k
dWxlU2NyaXB0TG9hZGVyLCBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZl
dGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKyAgICBzdGF0aWMgUmVm
PENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZpcnR1YWwgfkNhY2hlZE1vZHVsZVNjcmlwdExv
YWRlcigpOwogCi0gICAgYm9vbCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJMJiBzb3VyY2VVUkwp
OworICAgIGJvb2wgbG9hZChEb2N1bWVudCYsIFVSTCYmIHNvdXJjZVVSTCk7CiAKLSAgICBDYWNo
ZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyKCkgeyByZXR1cm4gbV9zY3JpcHRGZXRjaGVy
LmdldCgpOyB9CiAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSB7IHJldHVybiBtX2Nh
Y2hlZFNjcmlwdC5nZXQoKTsgfQotICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyogcGFyYW1ldGVy
cygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQotICAgIGNvbnN0IFVSTCYgc291cmNl
VVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KLQotICAgIHZvaWQgY2xlYXJDbGll
bnQoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fY2xpZW50KTsKLSAgICAgICAgbV9jbGllbnQg
PSBudWxscHRyOwotICAgIH0KKyAgICBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVy
KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlciY+KE1vZHVsZVNjcmlw
dExvYWRlcjo6c2NyaXB0RmV0Y2hlcigpKTsgfQogCiBwcml2YXRlOgotICAgIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcihDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFBy
b21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVy
cz4mJik7CisgICAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNs
aWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UmLCBjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmKSBmaW5hbDsKIAotICAgIENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07Ci0gICAgUmVm
UHRyPERlZmVycmVkUHJvbWlzZT4gbV9wcm9taXNlOwotICAgIFJlZjxDYWNoZWRTY3JpcHRGZXRj
aGVyPiBtX3NjcmlwdEZldGNoZXI7Ci0gICAgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4g
bV9wYXJhbWV0ZXJzOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gbV9j
YWNoZWRTY3JpcHQ7CiAgICAgVVJMIG1fc291cmNlVVJMOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2ODhhZDkwZGFlM2VjZTk0OWVhMDli
MWVmZWU1ZGEyNmY5NGM3ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjsKLWNsYXNzIERl
ZmVycmVkUHJvbWlzZTsKLQotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsK
LXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQoKSA9
IGRlZmF1bHQ7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4pID0gMDsKLX07Ci0KLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAK
aW5kZXggYTQzMzc1ODY1YmJmMWVjNTk3M2JmMTcyYzkxYTM4NTMyMzRlMzc0ZC4uZGYzYzZiNmVi
Yjg0YWY3MmVkMjk1NWY5OTExZDA3YTg3YWIzNTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw2ICs0OCw3IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVx
dWVzdE1vZHVsZVNjcmlwdChEb2N1CiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlw
dD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNoZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2lu
TW9kZSwgU3RyaW5nJiYgaW50ZWdyaXR5LCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4g
cmVzb3VyY2VMb2FkUHJpb3JpdHkpIGNvbnN0CiB7CisgICAgLy8gV2l0aG91dCBzY3JpcHRpbmcs
IHRoZXJlIGlzIG5vIHdheSB0byBzdGFydCBXb3JrZXJzLgogICAgIGlmICghZG9jdW1lbnQuc2V0
dGluZ3MoKS5pc1NjcmlwdEVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5jcHAKaW5kZXggZGY3ZjNkNzQ2ZDVlMzJhYmFiNTE0NzZjOWRkYWNhNjNhNDM1MTM2Yy4uZWVm
MjEwMzg4NDlmZDg5ODQ5YWZjZWQ3MDMxODVmZjg5NGM0MGM3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKQEAgLTUy
LDYgKzUyLDI1IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlCiAgICAgcmVwb3J0RXhjZXB0aW9u
KGxleGljYWxHbG9iYWxPYmplY3QsIGV4Y2VwdGlvbiwgY2FjaGVkU2NyaXB0KTsKIH0KIAorU3Ry
aW5nIHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIFZNJiB2bSwgSlNWYWx1ZSBleGNlcHRpb24sIENhdGNoU2NvcGUmIGNh
dGNoU2NvcGUpCit7CisgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNTA4Nz4g
V2ViIEluc3BlY3RvcjogV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9uIHNob3VsZCBub3QgZXZhbHVh
dGUgSmF2YVNjcmlwdCBoYW5kbGluZyBleGNlcHRpb25zCisgICAgLy8gSWYgdGhpcyBpcyBhIGN1
c3RvbSBleGNlcHRpb24gb2JqZWN0LCBjYWxsIHRvU3RyaW5nIG9uIGl0IHRvIHRyeSBhbmQgZ2V0
IGEgbmljZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBleGNlcHRpb24uCisgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoYXV0byogZXJyb3IgPSBqc0R5bmFtaWNDYXN0PEVy
cm9ySW5zdGFuY2UqPih2bSwgZXhjZXB0aW9uKSkKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJy
b3ItPnNhbml0aXplZE1lc3NhZ2VTdHJpbmcoJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGVs
c2UgaWYgKGF1dG8qIGVycm9yID0ganNEeW5hbWljQ2FzdDxKU0RPTUV4Y2VwdGlvbio+KHZtLCBl
eGNlcHRpb24pKQorICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci0+d3JhcHBlZCgpLm1lc3Nh
Z2UoKTsKKyAgICBlbHNlCisgICAgICAgIGVycm9yTWVzc2FnZSA9IGV4Y2VwdGlvbi50b1dURlN0
cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisKKyAgICAvLyBXZSBuZWVkIHRvIGNsZWFyIGFu
eSBuZXcgZXhjZXB0aW9uIHRoYXQgbWF5IGJlIHRocm93biBpbiB0aGUgdG9TdHJpbmcoKSBjYWxs
IGFib3ZlLgorICAgIC8vIHJlcG9ydEV4Y2VwdGlvbigpIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBt
YWtpbmcgbmV3IGV4Y2VwdGlvbnMuCisgICAgY2F0Y2hTY29wZS5jbGVhckV4Y2VwdGlvbigpOwor
ICAgIHZtLmNsZWFyTGFzdEV4Y2VwdGlvbigpOworICAgIHJldHVybiBlcnJvck1lc3NhZ2U7Cit9
CisKIFN0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgVk0mIHZtLCBKU1ZhbHVlIGV4Y2VwdGlvbiwgQ2F0Y2hTY29wZSYgY2F0Y2hT
Y29wZSkKIHsKICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE1MDg3PiBXZWIg
SW5zcGVjdG9yOiBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24gc2hvdWxkIG5vdCBldmFsdWF0ZSBK
YXZhU2NyaXB0IGhhbmRsaW5nIGV4Y2VwdGlvbnMKQEAgLTEyMSwzNiArMTQwLDQ1IEBAIHZvaWQg
cmVwb3J0Q3VycmVudEV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCkKIAogSlNWYWx1ZSBjcmVhdGVET01FeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEV4Y2VwdGlvbkNvZGUgZWMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsK
LSAgICBpZiAoZWMgPT0gRXhpc3RpbmdFeGNlcHRpb25FcnJvcikKKyAgICBzd2l0Y2ggKGVjKSB7
CisgICAgY2FzZSBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yOgogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIAogICAgIC8vIEZJWE1FOiBIYW5kbGUgb3RoZXIgV2ViSURMIGV4Y2VwdGlvbiB0
eXBlcy4KLSAgICBpZiAoZWMgPT0gVHlwZUVycm9yKSB7CisgICAgY2FzZSBUeXBlRXJyb3I6CiAg
ICAgICAgIGlmIChtZXNzYWdlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVU
eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBjcmVhdGVUeXBl
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgbWVzc2FnZSk7Ci0gICAgfQogCi0gICAgaWYgKGVj
ID09IFJhbmdlRXJyb3IpIHsKKyAgICBjYXNlIFJhbmdlRXJyb3I6CiAgICAgICAgIGlmIChtZXNz
YWdlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSYW5nZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsICJCYWQgdmFsdWUiX3MpOwogICAgICAgICByZXR1cm4gY3JlYXRlUmFu
Z2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBtZXNzYWdlKTsKLSAgICB9CiAKLSAgICBpZiAo
ZWMgPT0gU3RhY2tPdmVyZmxvd0Vycm9yKQorICAgIGNhc2UgSlNTeW50YXhFcnJvcjoKKyAgICAg
ICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN5bnRh
eEVycm9yKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gY3JlYXRlU3ludGF4
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgbWVzc2FnZSk7CisKKyAgICBjYXNlIFN0YWNrT3Zl
cmZsb3dFcnJvcjoKICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoZWMgPT0gT3V0T2ZNZW1vcnlFcnJvcikKKworICAg
IGNhc2UgT3V0T2ZNZW1vcnlFcnJvcjoKICAgICAgICAgcmV0dXJuIGNyZWF0ZU91dE9mTWVtb3J5
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7CiAKLSAgICAvLyBGSVhNRTogQWxsIGNhbGxlcnMg
dG8gY3JlYXRlRE9NRXhjZXB0aW9uIG5lZWQgdG8gcGFzcyBpbiB0aGUgY29ycmVjdCBnbG9iYWwg
b2JqZWN0LgotICAgIC8vIEZvciBub3csIHdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0aGUgbGV4aWNh
bEdsb2JhbE9iamVjdC4gV2hpY2ggaXMgd3JvbmcgaW4gY2FzZXMgbGlrZSB0aGlzOgotICAgIC8v
IGZyYW1lc1swXS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KG51bGwsIG51bGwpOyAvLyB0aHJvd3Mg
YW4gZXhjZXB0aW9uIHdoaWNoIHNob3VsZCBoYXZlIHRoZSBzdWJmcmFtZSdzIHByb3RvdHlwZXMu
Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGRlcHJlY2F0ZWRHbG9iYWxP
YmplY3RGb3JQcm90b3R5cGUobGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgSlNWYWx1ZSBlcnJv
ck9iamVjdCA9IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBET01FeGNl
cHRpb246OmNyZWF0ZShlYywgbWVzc2FnZSkpOwotICAgIAotICAgIEFTU0VSVChlcnJvck9iamVj
dCk7Ci0gICAgYWRkRXJyb3JJbmZvKGxleGljYWxHbG9iYWxPYmplY3QsIGFzT2JqZWN0KGVycm9y
T2JqZWN0KSwgdHJ1ZSk7Ci0gICAgcmV0dXJuIGVycm9yT2JqZWN0OworICAgIGRlZmF1bHQ6IHsK
KyAgICAgICAgLy8gRklYTUU6IEFsbCBjYWxsZXJzIHRvIGNyZWF0ZURPTUV4Y2VwdGlvbiBuZWVk
IHRvIHBhc3MgaW4gdGhlIGNvcnJlY3QgZ2xvYmFsIG9iamVjdC4KKyAgICAgICAgLy8gRm9yIG5v
dywgd2UncmUgZ29pbmcgdG8gYXNzdW1lIHRoZSBsZXhpY2FsR2xvYmFsT2JqZWN0LiBXaGljaCBp
cyB3cm9uZyBpbiBjYXNlcyBsaWtlIHRoaXM6CisgICAgICAgIC8vIGZyYW1lc1swXS5kb2N1bWVu
dC5jcmVhdGVFbGVtZW50KG51bGwsIG51bGwpOyAvLyB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoaWNo
IHNob3VsZCBoYXZlIHRoZSBzdWJmcmFtZSdzIHByb3RvdHlwZXMuCisgICAgICAgIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90
eXBlKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAgICBKU1ZhbHVlIGVycm9yT2JqZWN0ID0g
dG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIERPTUV4Y2VwdGlvbjo6Y3Jl
YXRlKGVjLCBtZXNzYWdlKSk7CisKKyAgICAgICAgQVNTRVJUKGVycm9yT2JqZWN0KTsKKyAgICAg
ICAgYWRkRXJyb3JJbmZvKGxleGljYWxHbG9iYWxPYmplY3QsIGFzT2JqZWN0KGVycm9yT2JqZWN0
KSwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBlcnJvck9iamVjdDsKKyAgICB9CisgICAgfQorICAg
IHJldHVybiB7IH07CiB9CiAKIEpTVmFsdWUgY3JlYXRlRE9NRXhjZXB0aW9uKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFeGNlcHRpb24mJiBleGNlcHRpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKaW5k
ZXggMmQzZTMxMWY2MWVlYjY4NWFhYzM1NTQ2YWFlMTYwZGE5NzkwZWY1Zi4uZDFmNmRlOTM3NDcw
Y2U2ZGYyY2NiNjQ3MjI4NDc2NmZkMDE5NTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaApAQCAtNjUsNiArNjUsNyBAQCBX
RUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoR2V0dGVy
VHlwZUVycm9yKEpTQzo6SlNHbG9iYQogV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1
ZSByZWplY3RQcm9taXNlV2l0aFRoaXNUeXBlRXJyb3IoRGVmZXJyZWRQcm9taXNlJiwgY29uc3Qg
Y2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogb3BlcmF0aW9uTmFtZSk7CiBXRUJDT1JF
X0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoVGhpc1R5cGVFcnJv
cihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3Qg
Y2hhciogb3BlcmF0aW9uTmFtZSk7CiAKK1N0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhv
dXROYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlIGV4Y2Vw
dGlvbiwgSlNDOjpDYXRjaFNjb3BlJik7CiBTdHJpbmcgcmV0cmlldmVFcnJvck1lc3NhZ2UoSlND
OjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBKU0M6
OkNhdGNoU2NvcGUmKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqID0g
bnVsbHB0cik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFeGNlcHRpb24qLCBDYWNoZWRTY3JpcHQqID0gbnVsbHB0ciwgRXhj
ZXB0aW9uRGV0YWlscyogPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCA1OGI3ZGY3NjBjMDBhMzFmZjA4ZWQyMmRl
ZTIyYThjNzQ0M2FlOGRkLi45ZDY5N2Q0NTliNTYzNDVjYzgzOTYyMDI2Njc2ZTAwYTk4YmY0OWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlICJSZWplY3RlZFByb21pc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZWRDbG9uZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIK
ICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtNDIyLDYgKzQyMyw3OSBAQCBKU0M6
OkpTUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Omluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsbwogfQogI2VuZGlmCiAKK3N0YXRpYyBTY3JpcHRNb2R1bGVMb2Fk
ZXIqIHNjcmlwdE1vZHVsZUxvYWRlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5pbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKSkgeworICAgICAgICBpZiAoYXV0byBkb2N1
bWVudCA9IGpzQ2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpLT53cmFw
cGVkKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiAmZG9jdW1lbnQtPm1vZHVsZUxv
YWRlcigpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKGdsb2JhbE9i
amVjdC0+aW5oZXJpdHM8SlNSZW1vdGVET01XaW5kb3dCYXNlPih2bSkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2VyR2xvYmFs
U2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxvYWRlcigpOwor
ICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZT4o
dm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNJREJT
ZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0Pih2bSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
I2VuZGlmCisgICAgZGF0YUxvZygiVW5leHBlY3RlZCBnbG9iYWwgb2JqZWN0OiAiLCBKU1ZhbHVl
KGdsb2JhbE9iamVjdCksICJcbiIpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTQzo6SWRlbnRpZmllciBKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6Ompz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxv
YWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxv
YWRlci0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1w
b3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiB7IH07Cit9CisKK0pT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFt
ZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlw
dE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBsb2FkZXItPmZldGNoKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXks
IHBhcmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7Cisg
ICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7CisgICAgcmV0
dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6
SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAg
IEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1
bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmV2YWx1YXRlKGds
b2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0
RmV0Y2hlcik7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKworSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVs
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1N0cmluZyogbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcnMsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byog
bG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9k
dWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0ZXJzLCBzb3VyY2VPcmlnaW4pKTsKKyAgICBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAg
ICBzY29wZS5yZWxlYXNlKCk7CisgICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNV
bmRlZmluZWQoKSk7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNPYmplY3QqIEpT
RE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1v
ZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCog
bW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUds
b2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
Z2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVy
KHRoaXNPYmplY3QpKQorICAgICAgICByZXR1cm4gbG9hZGVyLT5jcmVhdGVJbXBvcnRNZXRhUHJv
cGVydGllcyhnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNv
cmQsIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVy
ZSgpKTsKK30KKwogSlNET01HbG9iYWxPYmplY3QmIGNhbGxlckdsb2JhbE9iamVjdChKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUpCiB7CiAg
ICAgY2xhc3MgR2V0Q2FsbGVyR2xvYmFsT2JqZWN0RnVuY3RvciB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCBiODQwNzJkZGQ3NDZiM2Q2
YzUxMDYwZDkwNTAxYjVjZWExYjQ5OWIxLi5mNDlhNGNkMjU3MTk3MTE4OTE3YTdkN2E0YjZjMGUx
MWZjNzZiYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgKQEAgLTEwNSw2ICsxMDUsMTIgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNET01H
bG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CiAgICAgc3RhdGljIEpT
Qzo6SlNQcm9taXNlKiBpbnN0YW50aWF0ZVN0cmVhbWluZyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OkpTT2JqZWN0Kik7CiAjZW5kaWYKIAorICAgIHN0YXRpYyBKU0M6
OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFs
dWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUg
bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVM
b2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICBz
dGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0cmluZyos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKKyAgICBzdGF0aWMgSlND
OjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOworCiAgICAgSlNET01TdHJ1Y3R1cmVNYXAg
bV9zdHJ1Y3R1cmVzOwogICAgIEpTRE9NQ29uc3RydWN0b3JNYXAgbV9jb25zdHJ1Y3RvcnM7CiAg
ICAgRE9NR3VhcmRlZE9iamVjdFNldCBtX2d1YXJkZWRPYmplY3RzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggNTYzZWZhMDU3MWI1ZDQ2
MmQ5ZTY0NTA4OWYwYmQ4Zjc3ZDE5YTc2OC4uMzEyYTAxMTU4ZThjMjgwODNjMDdlNDJkYjg3MjQ1
ZmU0ZTVjNTdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwCkBAIC0zMzksNTQgKzMzOSw0IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJl
RnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAg
fQogfQogCi1KU0M6OklkZW50aWZpZXIgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNv
bHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RP
TVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihn
bG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09i
amVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9k
dWxlTG9hZGVyKCkucmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFt
ZSwgaW1wb3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOwotICAgIHJldHVybiB7IH07Ci19
Ci0KLUpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVy
RmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBw
YXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9N
V2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9j
dW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuZmV0Y2goZ2xvYmFs
T2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hl
cikpOwotICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0
dXJlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFs
T2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpK
U1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6
SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVj
dCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYg
KFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5ldmFsdWF0ZShn
bG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQsIHNjcmlw
dEZldGNoZXIpOwotICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxl
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciog
bW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcGFy
YW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKLXsKLSAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anND
YXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1
bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuaW1w
b3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0
ZXJzLCBzb3VyY2VPcmlnaW4pKTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNl
ID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVy
bmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKLSAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcHJvbWlz
ZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIHByb21p
c2U7Ci19Ci0KLUpTQzo6SlNPYmplY3QqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyQ3Jl
YXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVL
ZXksIEpTQzo6SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nh
c3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3Vt
ZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAg
ICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0
aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwg
c2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9i
amVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDNlZjk4MGRkMjdmNmIyMTM5ODcwMDhiYTQ3NmM4
Y2E2OWYyZjBiNjQuLjUxNDJiMWM3ZGMyNWMyMmZlOTc4OTVlNzVhZTIyZWY0ZDFlNTg5ZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC05OSwx
MiArOTksNiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd0Jhc2UgOiBwdWJsaWMg
SlNET01HbG9iYWxPYmplY3QgewogcHJpdmF0ZToKICAgICB1c2luZyBSZXNwb25zZUNhbGxiYWNr
ID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IGNoYXIqLCBzaXplX3QpPjsKIAotICAgIHN0YXRp
YyBKU0M6OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2Fk
ZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpT
VmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsK
LSAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9k
dWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0
cmluZyosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKLSAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwotCiAgICAgUmVmUHRyPERPTVdp
bmRvdz4gbV93cmFwcGVkOwogICAgIFJlZlB0cjxFdmVudD4gbV9jdXJyZW50RXZlbnQ7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwCmluZGV4IDQyYjI2YzlmNGVhMjE2MjA3ZGU0Yzg2ODIwYjhhODFiNjAzNWI3ZWIu
LjJkNzkzZmZmMjE4NTNhOGExYTc4ODA2NjcyNTBmNTdlNzUyZmUzZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAK
QEAgLTU5LDExICs1OSwxMSBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZQogICAgICZqYXZhU2Ny
aXB0UnVudGltZUZsYWdzLAogICAgICZxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wLAogICAgICZz
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckltcG9ydE1vZHVsZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlclJlc29sdmUK
LSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJGZXRjaAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxl
TG9hZGVyRXZhbHVhdGUKKyAgICAmbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlLAorICAgICZtb2R1
bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1bGVMb2FkZXJGZXRjaCwKKyAgICAmbW9kdWxlTG9h
ZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMsCisgICAgJm1vZHVsZUxvYWRlckV2YWx1YXRl
LAogICAgICZwcm9taXNlUmVqZWN0aW9uVHJhY2tlciwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNl
cHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5jcHAKaW5kZXggMzVmYTZlMzI3N2ZiMGQ0YmUwZTBlMWVkYzQzNzIyZWRhZGZjOGFmMi4u
OWZhZWM5NTljMzlkMTc0ODE4MWM5ODY1MDAzZDVhODZmMTdmNWUzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3Bw
CkBAIC00OSwxMSArNDksMTEgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICAmamF2YVNj
cmlwdFJ1bnRpbWVGbGFncywKICAgICBudWxscHRyLCAvLyBxdWV1ZU1pY3JvdGFza1RvRXZlbnRM
b29wCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9h
ZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZldGNoCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMKLSAgICBudWxscHRy
LCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUs
CisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNoLAorICAg
ICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9kdWxlTG9h
ZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAogICAgICZyZXBvcnRV
bmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9u
T3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZhOTEwZTk0OWI3YWMxYTM4ZWRlZWNiMDNkZWI2ZWU4OTRjY2ViMGQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNo
UGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEZldGNoZXIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlU2NyaXB0TG9hZGVyPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+TW9kdWxlU2NyaXB0TG9hZGVyKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBjbGVh
ckNsaWVudCgpCisgICAgeworICAgICAgICBBU1NFUlQobV9jbGllbnQpOworICAgICAgICBtX2Ns
aWVudCA9IG51bGxwdHI7CisgICAgfQorCisgICAgSlNDOjpTY3JpcHRGZXRjaGVyJiBzY3JpcHRG
ZXRjaGVyKCkgeyByZXR1cm4gbV9zY3JpcHRGZXRjaGVyLmdldCgpOyB9CisgICAgTW9kdWxlRmV0
Y2hQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9
CisKK3Byb3RlY3RlZDoKKyAgICBNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgSlNDOjpTY3JpcHRGZXRj
aGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFt
ZXRlcnMpCisgICAgICAgIDogbV9jbGllbnQoJmNsaWVudCkKKyAgICAgICAgLCBtX3Byb21pc2Uo
JnByb21pc2UpCisgICAgICAgICwgbV9zY3JpcHRGZXRjaGVyKHNjcmlwdEZldGNoZXIpCisgICAg
ICAgICwgbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCisgICAgeworICAgIH0KKwor
ICAgIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCogbV9jbGllbnQ7CisgICAgUmVmUHRyPERlZmVy
cmVkUHJvbWlzZT4gbV9wcm9taXNlOworICAgIFJlZjxKU0M6OlNjcmlwdEZldGNoZXI+IG1fc2Ny
aXB0RmV0Y2hlcjsKKyAgICBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiBtX3BhcmFtZXRl
cnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5
OTVmNDhlZTNkMWUwMmMxZDhjOWM5ZGEyYmQ1ODIzNmYzYmEwN2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1vZHVs
ZVNjcmlwdExvYWRlcjsKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsKKworY2xhc3MgTW9kdWxlU2Ny
aXB0TG9hZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQo
TW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSA9IDA7Cit9
OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9h
ZGVyLmNwcAppbmRleCBhYTViODBiNTg2Yjc5ZTBlNTc1MDFjZDUxMDc4ZGYyNWE2MjVlNWQ5Li4x
MGJkN2Y4NDkwOGI4MmQ1MDcyNTQzYmJkZmJkZjhjYzc5NGMyODVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTI5LDcgKzI5
LDYgQEAKICNpbmNsdWRlICJDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlICJD
YWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCi0jaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCkBAIC00MSw2ICs0MCw4IEBA
CiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50
ZWdyaXR5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUgIldv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU01vZHVsZVJlY29yZC5oPgpAQCAtNTIsOCArNTMsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVNjcmlwdE1vZHVsZUxvYWRlcjo6U2NyaXB0TW9kdWxlTG9hZGVyKERvY3VtZW50JiBk
b2N1bWVudCkKLSAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCitTY3JpcHRNb2R1bGVMb2FkZXI6
OlNjcmlwdE1vZHVsZUxvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBPd25l
clR5cGUgb3duZXJUeXBlKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX293bmVy
VHlwZShvd25lclR5cGUpCiB7CiB9CiAKQEAgLTY4LDcgKzcwLDcgQEAgc3RhdGljIGJvb2wgaXNS
b290TW9kdWxlKEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSkKICAgICByZXR1cm4gaW1w
b3J0ZXJNb2R1bGVLZXkuaXNTeW1ib2woKSB8fCBpbXBvcnRlck1vZHVsZUtleS5pc1VuZGVmaW5l
ZCgpOwogfQogCi1zdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVj
aWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3Qg
VVJMJiBiYXNlVVJMKQorc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxl
U3BlY2lmaWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNjcmlwdE1vZHVsZUxv
YWRlcjo6T3duZXJUeXBlIG93bmVyVHlwZSwgY29uc3QgU3RyaW5nJiBzcGVjaWZpZXIsIGNvbnN0
IFVSTCYgYmFzZVVSTCkKIHsKICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcmVzb2x2ZS1hLW1vZHVsZS1zcGVjaWZpZXIKIApAQCAt
NzksNyArODEsMTIgQEAgc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxl
U3BlY2lmaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3QKICAgICBpZiAoIXNwZWNpZmll
ci5zdGFydHNXaXRoKCcvJykgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLyIpICYmICFzcGVj
aWZpZXIuc3RhcnRzV2l0aCgiLi4vIikpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCht
YWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lmaWVyLCAnIl9zLCBzcGVjaWZpZXIsICInIGRvZXMgbm90
IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9cIiwgb3IgXCIuLi9cIi4gUmVmZXJlbmNlZCBmcm9tICJf
cywgYmFzZVVSTC5zdHJpbmcoKSkpOwogCi0gICAgYXV0byByZXN1bHQgPSBkb2N1bWVudC5jb21w
bGV0ZVVSTChzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIFVSTCByZXN1bHQ7CisgICAgaWYgKG93
bmVyVHlwZSA9PSBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93bmVyVHlwZTo6RG9jdW1lbnQpCisgICAg
ICAgIHJlc3VsdCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5jb21wbGV0ZVVSTChzcGVj
aWZpZXIsIGJhc2VVUkwpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gVVJMKGJhc2VVUkws
IHNwZWNpZmllcik7CisKICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJNb2R1bGUgbmFtZSwgJyJfcywgcmVzdWx0LnN0
cmluZygpLCAiJyBkb2VzIG5vdCByZXNvbHZlIHRvIGEgdmFsaWQgVVJMLiJfcykpOwogICAgIHJl
dHVybiByZXN1bHQ7CkBAIC0xMDcsNyArMTE0LDcgQEAgSlNDOjpJZGVudGlmaWVyIFNjcmlwdE1v
ZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwK
ICAgICBVUkwgYmFzZVVSTCA9IHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoKmpzR2xvYmFsT2Jq
ZWN0LCBpbXBvcnRlck1vZHVsZUtleSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKIAotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2RvY3Vt
ZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVs
ZVNwZWNpZmllcihtX2NvbnRleHQsIG1fb3duZXJUeXBlLCBzcGVjaWZpZXIsIGJhc2VVUkwpOwog
ICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgIEpTQzo6dGhyb3dUeXBlRXJyb3IoanNHbG9iYWxP
YmplY3QsIHNjb3BlLCByZXN1bHQuZXJyb3IoKSk7CiAgICAgICAgIHJldHVybiB7IH07CkBAIC0x
NjEsMTMgKzE2OCwxOSBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2Fk
ZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIGlmIChhdXRvKiBz
Y3JpcHRGZXRjaFBhcmFtZXRlcnMgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU1NjcmlwdEZl
dGNoUGFyYW1ldGVycyo+KHZtLCBwYXJhbWV0ZXJzKSkKICAgICAgICAgdG9wTGV2ZWxGZXRjaFBh
cmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxNb2R1bGVGZXRjaFBhcmFtZXRlcnMqPigmc2NyaXB0RmV0
Y2hQYXJhbWV0ZXJzLT5wYXJhbWV0ZXJzKCkpOwogCi0gICAgYXV0byBsb2FkZXIgPSBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNf
Y2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNo
ZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFy
YW1ldGVycykpOwotICAgIG1fbG9hZGVycy5hZGQobG9hZGVyLmNvcHlSZWYoKSk7Ci0gICAgaWYg
KCFsb2FkZXItPmxvYWQobV9kb2N1bWVudCwgY29tcGxldGVkVVJMKSkgewotICAgICAgICBsb2Fk
ZXItPmNsZWFyQ2xpZW50KCk7Ci0gICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2Fk
ZXIpKTsKLSAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoZGVmZXJyZWQuZ2V0
KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1
bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwotICAgICAgICByZXR1cm4ganNQcm9taXNlOworICAgIGlm
IChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CisgICAgICAgIGF1dG8gbG9h
ZGVyID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdl
dCgpLCAqc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6
SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9w
TGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKKyAgICAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29w
eVJlZigpKTsKKyAgICAgICAgaWYgKCFsb2FkZXItPmxvYWQoZG93bmNhc3Q8RG9jdW1lbnQ+KG1f
Y29udGV4dCksIFdURk1vdmUoY29tcGxldGVkVVJMKSkpIHsKKyAgICAgICAgICAgIGxvYWRlci0+
Y2xlYXJDbGllbnQoKTsKKyAgICAgICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2Fk
ZXIpKTsKKyAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKGRlZmVycmVk
LmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEg
bW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVybiBqc1Byb21pc2U7
CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGxvYWRlciA9IFdvcmtlck1v
ZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19j
YXN0PFdvcmtlclNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hl
cio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJh
bWV0ZXJzKSk7CisgICAgICAgIG1fbG9hZGVycy5hZGQobG9hZGVyLmNvcHlSZWYoKSk7CisgICAg
ICAgIGxvYWRlci0+bG9hZChtX2NvbnRleHQsIFdURk1vdmUoY29tcGxldGVkVVJMKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGpzUHJvbWlzZTsKQEAgLTE3Niw3ICsxODksNyBAQCBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGpzR2xvYmFsTwogVVJMIFNjcmlwdE1vZHVsZUxvYWRlcjo6bW9kdWxlVVJMKEpTQzo6SlNH
bG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUp
CiB7CiAgICAgaWYgKG1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCkpCi0gICAgICAgIHJldHVybiBt
X2RvY3VtZW50LnVybCgpOworICAgICAgICByZXR1cm4gbV9jb250ZXh0LnVybCgpOwogCiAgICAg
QVNTRVJUKG1vZHVsZUtleVZhbHVlLmlzU3RyaW5nKCkpOwogICAgIHJldHVybiBVUkwoVVJMKCks
IGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoJmpzR2xvYmFsT2JqZWN0KSk7CkBAIC0x
ODcsOCArMjAwLDExIEBAIFVSTCBTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJMRnJvbVJl
cXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYganNHbG9iYWxPCiAgICAgSlNDOjpWTSYgdm0g
PSBqc0dsb2JhbE9iamVjdC52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAotICAgIGlmIChpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKQotICAgICAg
ICByZXR1cm4gbV9kb2N1bWVudC5iYXNlVVJMKCk7CisgICAgaWYgKGlzUm9vdE1vZHVsZShtb2R1
bGVLZXlWYWx1ZSkpIHsKKyAgICAgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9j
dW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCku
YmFzZVVSTCgpOworICAgICAgICByZXR1cm4gbV9jb250ZXh0LnVybCgpOworICAgIH0KIAogICAg
IEFTU0VSVCghaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSk7CiAgICAgQVNTRVJUKG1vZHVs
ZUtleVZhbHVlLmlzU3RyaW5nKCkpOwpAQCAtMjE5LDggKzIzNSwxNCBAQCBKU0M6OkpTVmFsdWUg
U2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2Jh
bE9iamVjdCwgSgogICAgIGlmICghc291cmNlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IEpTQzo6dGhyb3dUeXBlRXJyb3IoanNHbG9iYWxPYmplY3QsIHNjb3BlLCAiTW9kdWxlIGtleSBp
cyBhbiBpbnZhbGlkIFVSTC4iX3MpOwogCi0gICAgaWYgKGF1dG8qIGZyYW1lID0gbV9kb2N1bWVu
dC5mcmFtZSgpKQotICAgICAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxl
KHNvdXJjZVVSTCwgKm1vZHVsZVJlY29yZCk7CisgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVy
VHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KG1fY29udGV4dCkuZnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBmcmFtZS0+c2Ny
aXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBBU1NFUlQoaXM8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KG1fY29u
dGV4dCkpOworICAgICAgICBpZiAoYXV0byogc2NyaXB0ID0gZG93bmNhc3Q8V29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGU+KG1fY29udGV4dCkuc2NyaXB0KCkpCisgICAgICAgICAgICByZXR1cm4g
c2NyaXB0LT5ldmFsdWF0ZU1vZHVsZSgqbW9kdWxlUmVjb3JkKTsKKyAgICB9CiAgICAgcmV0dXJu
IEpTQzo6anNVbmRlZmluZWQoKTsKIH0KIApAQCAtMjQ4LDggKzI3MCwxMyBAQCBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1vZHVsZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBqcwogICAgIFVSTCBiYXNlVVJMOwogICAgIFJlZlB0cjxKU0M6OlNjcmlwdEZl
dGNoZXI+IHNjcmlwdEZldGNoZXI7CiAgICAgaWYgKHNvdXJjZU9yaWdpbi5pc051bGwoKSkgewot
ICAgICAgICBiYXNlVVJMID0gbV9kb2N1bWVudC5iYXNlVVJMKCk7Ci0gICAgICAgIHNjcmlwdEZl
dGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9kb2N1bWVudC5jaGFyc2V0KCkp
OworICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAg
ICAgICAgICAgYmFzZVVSTCA9IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmJhc2VVUkwo
KTsKKyAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVh
dGUoZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuY2hhcnNldCgpKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGJhc2VVUkwgPSBtX2NvbnRleHQudXJsKCk7CisgICAgICAgICAg
ICBzY3JpcHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4pOworICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgYmFzZVVSTCA9IFVSTChVUkwoKSwgc291cmNlT3JpZ2luLnN0cmluZygpKTsKICAgICAg
ICAgaWYgKCFiYXNlVVJMLmlzVmFsaWQoKSkKQEAgLTI1NywxNCArMjg0LDE5IEBAIEpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6aW1wb3J0TW9kdWxlKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGpzCiAKICAgICAgICAgaWYgKHNvdXJjZU9yaWdpbi5mZXRjaGVyKCkpCiAg
ICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gc291cmNlT3JpZ2luLmZldGNoZXIoKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6
OmNyZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7CisKKyAgICAgICAgaWYgKCFzY3JpcHRGZXRj
aGVyKSB7CisgICAgICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVu
dCkKKyAgICAgICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6
Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmNoYXJzZXQoKSk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZl
dGNoZXI6OmNyZWF0ZShGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luKTsKKyAg
ICAgICAgfQogICAgIH0KICAgICBBU1NFUlQoYmFzZVVSTC5pc1ZhbGlkKCkpOwogICAgIEFTU0VS
VChzY3JpcHRGZXRjaGVyKTsKIAogICAgIGF1dG8gc3BlY2lmaWVyID0gbW9kdWxlTmFtZS0+dmFs
dWUoanNHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNp
ZmllcihtX2RvY3VtZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVzdWx0ID0g
cmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2NvbnRleHQsIG1fb3duZXJUeXBlLCBzcGVjaWZpZXIs
IGJhc2VVUkwpOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4gcmVqZWN0UHJvbWlz
ZShnbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgcmVzdWx0LmVycm9yKCkpOwogCkBAIC0yODgsNjIg
KzMyMCwxMDcgQEAgSlNDOjpKU09iamVjdCogU2NyaXB0TW9kdWxlTG9hZGVyOjpjcmVhdGVJbXBv
cnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gbWV0YVByb3Bl
cnRpZXM7CiB9CiAKLXZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXImIGxvYWRlciwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gcHJv
bWlzZSkKK3ZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3Jp
cHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwgVVJMJiYgc291cmNlVVJMLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiBwcm9taXNlKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0
CiAKLSAgICBVUkwgc291cmNlVVJMID0gbG9hZGVyLnNvdXJjZVVSTCgpOwotICAgIGlmICghbV9s
b2FkZXJzLnJlbW92ZSgmbG9hZGVyKSkKKyAgICBpZiAoIW1fbG9hZGVycy5yZW1vdmUoJm1vZHVs
ZVNjcmlwdExvYWRlcikpCiAgICAgICAgIHJldHVybjsKLSAgICBsb2FkZXIuY2xlYXJDbGllbnQo
KTsKKyAgICBtb2R1bGVTY3JpcHRMb2FkZXIuY2xlYXJDbGllbnQoKTsKIAotICAgIGF1dG8mIGNh
Y2hlZFNjcmlwdCA9ICpsb2FkZXIuY2FjaGVkU2NyaXB0KCk7CisgICAgaWYgKG1fb3duZXJUeXBl
ID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgYXV0byYgbG9hZGVyID0gc3RhdGlj
X2Nhc3Q8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVyKTsKKyAg
ICAgICAgYXV0byYgY2FjaGVkU2NyaXB0ID0gKmxvYWRlci5jYWNoZWRTY3JpcHQoKTsKIAotICAg
IGlmIChjYWNoZWRTY3JpcHQucmVzb3VyY2VFcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7Ci0g
ICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxv
YWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iX3MpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LnJlc291cmNl
RXJyb3IoKS5pc0FjY2Vzc0NvbnRyb2woKSkgeworICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0
KEFib3J0RXJyb3IsICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9y
aWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iX3MpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CiAKLSAgICBpZiAoY2FjaGVkU2NyaXB0LmVycm9yT2NjdXJyZWQoKSkgewotICAg
ICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcigqcHJvbWlzZSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVk
LiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQu
ZXJyb3JPY2N1cnJlZCgpKSB7CisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtF
cnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAi
SW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC53YXNDYW5jZWxlZCgpKSB7Ci0g
ICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKCpwcm9taXNlLCBNb2R1bGVGZXRj
aEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgaXMg
Y2FuY2VsZWQuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYgKGNhY2hl
ZFNjcmlwdC53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5l
dHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5j
ZWxlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgaXMgY2FuY2VsZWQuIl9zKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYgKCFNSU1FVHlwZVJlZ2lzdHJ5Ojpp
c1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZShjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1l
VHlwZSgpKSkgewotICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAotICAgICAg
ICAvLyBUaGUgcmVzdWx0IG9mIGV4dHJhY3RpbmcgYSBNSU1FIHR5cGUgZnJvbSByZXNwb25zZSdz
IGhlYWRlciBsaXN0IChpZ25vcmluZyBwYXJhbWV0ZXJzKSBpcyBub3QgYSBKYXZhU2NyaXB0IE1J
TUUgdHlwZS4KLSAgICAgICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBj
bGFzc2ljIHNjcmlwdCBkb2VzIG5vdCBpbmNsdWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29u
dHJhc3QsIG1vZHVsZSBzY3JpcHRzIHdpbGwgZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBv
ZiBhIGNvcnJlY3QgTUlNRSB0eXBlLgotICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9y
LCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSwgIicg
aXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQorICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNj
cmlwdE1JTUVUeXBlKGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCkpKSB7CisgICAg
ICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBh
cGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAorICAgICAgICAgICAgLy8gVGhl
IHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIg
bGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUu
CisgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNz
aWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFz
dCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEg
Y29ycmVjdCBNSU1FIHR5cGUuCisgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9y
LCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSwgIicg
aXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8qIHBhcmFtZXRlcnMgPSBsb2FkZXIu
cGFyYW1ldGVycygpKSB7CisgICAgICAgICAgICBpZiAoIW1hdGNoSW50ZWdyaXR5TWV0YWRhdGEo
Y2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpIHsKKyAgICAgICAgICAgICAg
ICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCJDYW5ub3QgbG9hZCBzY3Jp
cHQgIiwgaW50ZWdyaXR5TWlzbWF0Y2hEZXNjcmlwdGlvbihjYWNoZWRTY3JpcHQsIHBhcmFtZXRl
cnMtPmludGVncml0eSgpKSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhY2hlZFNjcmlwdC5y
ZXNwb25zZSgpLnVybCgpOworICAgICAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlv
biwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBo
ZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJz
dCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0
cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRpcmVjdGlvbnMuCisgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKyAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAorICAgICAgICBpZiAoIWNh
Y2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlvbnMoKSAmJiBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5z
b3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKKyAg
ICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAg
ICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFn
bWVudElkZW50aWZpZXIoKSk7CisgICAgICAgIH0KKworICAgICAgICBtX3JlcXVlc3RVUkxUb1Jl
c3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwp
KTsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFs
T2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3Vy
Y2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6
OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3Vy
Y2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9Lmpz
U291cmNlQ29kZSgpIH0pOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRv
JiBsb2FkZXIgPSBzdGF0aWNfY2FzdDxXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXImPihtb2R1bGVT
Y3JpcHRMb2FkZXIpOworICAgICAgICBhdXRvJiB3b3JrZXJTY3JpcHRMb2FkZXIgPSBsb2FkZXIu
c2NyaXB0TG9hZGVyKCk7CiAKLSAgICBpZiAoYXV0byogcGFyYW1ldGVycyA9IGxvYWRlci5wYXJh
bWV0ZXJzKCkpIHsKLSAgICAgICAgaWYgKCFtYXRjaEludGVncml0eU1ldGFkYXRhKGNhY2hlZFNj
cmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLT5y
ZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCJDYW5ub3QgbG9hZCBzY3JpcHQgIiwgaW50ZWdy
aXR5TWlzbWF0Y2hEZXNjcmlwdGlvbihjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0
eSgpKSkpOworICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmZhaWxlZCgpKSB7CisgICAg
ICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkp
IHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoQWJvcnRFcnJvciwgIkNyb3NzLW9y
aWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcg
cG9saWN5LiJfcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmVycm9yKCkuaXNDYW5jZWxsYXRpb24o
KSkgeworICAgICAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21p
c2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkLCAiSW1wb3J0aW5n
IGEgbW9kdWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4iX3MpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3Jr
RXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwg
IkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICBVUkwgcmVzcG9uc2VVUkwgPSBjYWNoZWRTY3Jp
cHQucmVzcG9uc2UoKS51cmwoKTsKLSAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlv
biwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBo
ZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJz
dCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNr
IGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAotICAgIGlmICghY2FjaGVkU2NyaXB0Lmhhc1Jl
ZGlyZWN0aW9ucygpICYmIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpICE9IFJlc291
cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgewotICAgICAgICBpZiAoc291cmNl
VVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQotICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0
RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAg
fQorICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1J
TUVUeXBlKHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkpKSB7CisgICAgICAg
ICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlz
Lmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAorICAgICAgICAgICAgLy8gVGhlIHJl
c3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlz
dCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCisg
ICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNzaWMg
c2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFzdCwg
bW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEgY29y
cmVjdCBNSU1FIHR5cGUuCisgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBt
YWtlU3RyaW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlNRVR5cGUoKSwgIicg
aXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CiAKLSAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChz
b3VyY2VVUkwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsKLSAgICBwcm9taXNlLT5y
ZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0
KSB7Ci0gICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2Jq
ZWN0LnZtKCksCi0gICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2Rl
IHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwg
bG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOwotICAgIH0pOworICAg
ICAgICBVUkwgcmVzcG9uc2VVUkwgPSB3b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VVUkwoKTsK
KworICAgICAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNl
cnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291
cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBN
ZW1vcnlDYWNoZS4KKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVudHMg
dGhyb3VnaCByZWRpcmVjdGlvbnMuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAorICAgICAgICBpZiAoIXdvcmtlclNjcmlwdExvYWRl
ci5pc1JlZGlyZWN0ZWQoKSAmJiB3b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VTb3VyY2UoKSAh
PSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKKyAgICAgICAgICAg
IGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAg
cmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50
aWZpZXIoKSk7CisgICAgICAgIH0KKworICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJM
TWFwLmFkZChzb3VyY2VVUkwuc3RyaW5nKCksIHJlc3BvbnNlVVJMKTsKKyAgICAgICAgcHJvbWlz
ZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9i
amVjdCkgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNH
bG9iYWxPYmplY3Qudm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3Jp
cHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3Bv
bnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2Fk
ZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkgfSk7CisgICAgICAgIH0pOworICAg
IH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuaAppbmRleCBkZTI5ZDJmNGJmMDk2YjYwYzM2OTk4MDMxNmMxNDg2YjI4MmFiZjA5Li5k
ZjM0ZDU1MWExMWNkOThmNGUyMzZhMmFhMWY0ODI3OWQ5NjRjNjg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaApAQCAtMjUsOCArMjUsOCBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5o
IgotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUg
Ik1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDUsMTYgKzQ1
LDE3IEBAIGNsYXNzIFNvdXJjZU9yaWdpbjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBEb2N1bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKIAotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVy
IGZpbmFsIDogcHJpdmF0ZSBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFNjcmlwdE1vZHVsZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRlcihEb2N1bWVudCYpOwor
ICAgIGVudW0gY2xhc3MgT3duZXJUeXBlIDogdWludDhfdCB7IERvY3VtZW50LCBXb3JrZXJPcldv
cmtsZXQgfTsKKyAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIE93bmVyVHlwZSk7CiAgICAgflNjcmlwdE1vZHVsZUxvYWRlcigpOwogCi0gICAg
RG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsgfQorICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogICAgIEpT
Qzo6SWRlbnRpZmllciByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxl
TG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1v
ZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwogICAgIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVy
KiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6
SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTYzLDEzICs2NCwxNSBAQCBjbGFzcyBTY3JpcHRN
b2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dCB7CiAgICAgSlNDOjpKU09iamVjdCogY3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwogCiBwcml2YXRlOgotICAgIHZvaWQgbm90
aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVycmVkUHJv
bWlzZT4pIGZpbmFsOworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVy
JiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSBmaW5hbDsKKwogICAgIFVSTCBtb2R1bGVV
UkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAgICAgVVJMIHJlc3BvbnNl
VVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAK
LSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBt
X2NvbnRleHQ7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25z
ZVVSTE1hcDsKLSAgICBIYXNoU2V0PFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xv
YWRlcnM7CisgICAgSGFzaFNldDxSZWY8TW9kdWxlU2NyaXB0TG9hZGVyPj4gbV9sb2FkZXJzOwor
ICAgIE93bmVyVHlwZSBtX293bmVyVHlwZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaAppbmRleCBj
NzA0NjI2ZmI3MzNkYjQ3MmJkYTUwMjM2MjQxYTZlNzQwZTI3ODJiLi4xMGZhN2U4YjQ0OWM4Yjg0
OWViMzdjYzFmMmM4NjZmYTg5M2FhZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0U291cmNlQ29kZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIGNsYXNzIFNjcmlwdFNvdXJj
ZUNvZGUgewogICAgIHsKICAgICB9CiAKLSAgICBTY3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0cmlu
ZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwg
SlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwgUmVmPENhY2hlZFNjcmlw
dEZldGNoZXI+JiYgc2NyaXB0RmV0Y2hlcikKKyAgICBTY3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0
cmluZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlv
biwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwgUmVmPEpTQzo6U2Ny
aXB0RmV0Y2hlcj4mJiBzY3JpcHRGZXRjaGVyKQogICAgICAgICA6IG1fcHJvdmlkZXIoSlNDOjpT
dHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgSlNDOjpTb3VyY2VPcmlnaW4geyB1
cmwsIFdURk1vdmUoc2NyaXB0RmV0Y2hlcikgfSwgdXJsLnN0cmluZygpLCBzdGFydFBvc2l0aW9u
LCBzb3VyY2VUeXBlKSkKICAgICAgICAgLCBtX2NvZGUobV9wcm92aWRlci5jb3B5UmVmKCksIHN0
YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4u
b25lQmFzZWRJbnQoKSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDI3NDkzYTYw
MTdmODA3ZDAwMWRmZjgzNmY0ZjI1MTc4YTE2ZTI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcApAQCAtMCww
ICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0RmV0Y2hl
ci5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgor
I2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJTY3JpcHRM
b2FkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyPiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShNb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBXb3JrZXJTY3JpcHRG
ZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBh
cmFtZXRlcnMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RGTW92ZShwYXJhbWV0ZXJz
KSkpOworfQorCitXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Oldvcmtlck1vZHVsZVNjcmlwdExv
YWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBw
cm9taXNlLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCisgICAgOiBNb2R1bGVTY3JpcHRMb2FkZXIo
Y2xpZW50LCBwcm9taXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKQorICAg
ICwgbV9zY3JpcHRMb2FkZXIoV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKSkKK3sKK30KKwor
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjp+V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKCkKK3sK
KyAgICBtX3NjcmlwdExvYWRlci0+Y2FuY2VsKCk7Cit9CisKK2Jvb2wgV29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNv
dXJjZVVSTCkKK3sKKyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUoc291cmNlVVJMKTsKKworICAg
IFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgbV9zb3VyY2VVUkwgfTsKKworICAgIEZldGNoT3B0
aW9ucyBmZXRjaE9wdGlvbnM7CisgICAgZmV0Y2hPcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6
Ok1vZGU6OkNvcnM7CisgICAgZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25zOjpDYWNo
ZTo6RGVmYXVsdDsKKyAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJl
ZGlyZWN0OjpGb2xsb3c7CisgICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gc3RhdGljX2Nh
c3Q8V29ya2VyU2NyaXB0RmV0Y2hlciY+KHNjcmlwdEZldGNoZXIoKSkuY3JlZGVudGlhbHMoKTsK
KyAgICBhdXRvIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0gY29udGV4dC5zaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSA/IENvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudDo6RW5mb3JjZUNoaWxkU3JjRGlyZWN0aXZlOworCisgICAgU3RyaW5nIHRhc2tN
b2RlID0gImxvYWRNb2R1bGVzSW5Xb3JrZXJPcldvcmtsZXRNb2RlIl9zOworICAgIG1fc2NyaXB0
TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RG
TW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2Vy
dmljZVdvcmtlcnNNb2RlOjpBbGwsICp0aGlzLCBXVEZNb3ZlKHRhc2tNb2RlKSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5p
c2hlZCgpCit7CisgICAgQVNTRVJUKG1fcHJvbWlzZSk7CisKKyAgICBhdXRvIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50
LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJjZVVSTCksIG1fcHJvbWlzZS5y
ZWxlYXNlTm9uTnVsbCgpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTAwODBlZTkz
MWJmYjBiMzNhOWY1NDczYjI5N2NhMmRjMmU0NzU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgKQEAgLTAsMCAr
MSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTW9kdWxlU2Ny
aXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCisjaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBEZWZlcnJlZFByb21pc2U7CitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2Ns
YXNzIE1vZHVsZUZldGNoUGFyYW1ldGVyczsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFzcyBXb3JrZXJTY3JpcHRMb2Fk
ZXI7CisKK2NsYXNzIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBNb2R1
bGVTY3JpcHRMb2FkZXIsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIFdvcmtlclNjcmlwdEZldGNo
ZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKworICAgIHZpcnR1YWwgfldv
cmtlck1vZHVsZVNjcmlwdExvYWRlcigpOworCisgICAgYm9vbCBsb2FkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBVUkwmJiBzb3VyY2VVUkwpOworCisgICAgV29ya2VyU2NyaXB0TG9hZGVyJiBz
Y3JpcHRMb2FkZXIoKSB7IHJldHVybiBtX3NjcmlwdExvYWRlci5nZXQoKTsgfQorCitwcml2YXRl
OgorICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQm
LCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZl
dGNoUGFyYW1ldGVycz4mJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25l
ZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyB9CisgICAgdm9pZCBub3Rp
ZnlGaW5pc2hlZCgpIGZpbmFsOworCisgICAgUmVmPFdvcmtlclNjcmlwdExvYWRlcj4gbV9zY3Jp
cHRMb2FkZXI7CisgICAgVVJMIG1fc291cmNlVVJMOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0
RmV0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RmV0Y2hl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY2YjU0ZWY4OTRiNTMzZWFmY2ViYzFhMTRiZjI3NmEwM2VjYmExMGIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHRGZXRjaGVyLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiTG9hZGFibGVTY3JpcHQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9T
Y3JpcHRGZXRjaGVyLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVk
U2NyaXB0OworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNzIFdvcmtlclNjcmlwdEZldGNoZXIgZmlu
YWwgOiBwdWJsaWMgSlNDOjpTY3JpcHRGZXRjaGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFdvcmtlclNjcmlwdEZldGNoZXI+IGNyZWF0ZShGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIGNy
ZWRlbnRpYWxzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyU2Ny
aXB0RmV0Y2hlcihjcmVkZW50aWFscykpOworICAgIH0KKworICAgIEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBtX2NyZWRlbnRpYWxzOyB9CisK
KyAgICB2b2lkIG5vdGlmeUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmluZ0ltcGwmIG1vZHVsZUtl
eSkKKyAgICB7CisgICAgICAgIG1fbW9kdWxlS2V5ID0gJm1vZHVsZUtleTsKKyAgICAgICAgbV9p
c0xvYWRlZCA9IHRydWU7CisgICAgfQorCisgICAgdm9pZCBub3RpZnlMb2FkRmFpbGVkKExvYWRh
YmxlU2NyaXB0OjpFcnJvciYmIGVycm9yKQorICAgIHsKKyAgICAgICAgbV9lcnJvciA9IFdURk1v
dmUoZXJyb3IpOworICAgICAgICBtX2lzTG9hZGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lk
IG5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpCisgICAgeworICAgICAgICBtX3dhc0NhbmNlbGVkID0g
dHJ1ZTsKKyAgICAgICAgbV9pc0xvYWRlZCA9IHRydWU7CisgICAgfQorCisgICAgYm9vbCBpc0xv
YWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2FkZWQ7IH0KKyAgICBPcHRpb25hbDxMb2FkYWJs
ZVNjcmlwdDo6RXJyb3I+IGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQorICAgIGJv
b2wgd2FzQ2FuY2VsZWQoKSBjb25zdCB7IHJldHVybiBtX3dhc0NhbmNlbGVkOyB9CisgICAgVW5p
cXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlS2V5Lmdl
dCgpOyB9CisKK3Byb3RlY3RlZDoKKyAgICBXb3JrZXJTY3JpcHRGZXRjaGVyKEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMpCisgICAgICAgIDogbV9jcmVkZW50aWFscyhjcmVk
ZW50aWFscykKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHMgbV9jcmVkZW50aWFsczsKKyAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IG1f
bW9kdWxlS2V5OworICAgIE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpFcnJvcj4gbV9lcnJvcjsK
KyAgICBib29sIG1fd2FzQ2FuY2VsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0xvYWRlZCB7
IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCA0NGY5ZDBlYTUwNTJjMDE5ZTc4YmFlYmU4MDhiOGYyYzc1ZDMxOTk1Li4zYjQy
NTM4NDgwMDJhNTFkMjkwOTJjNTFhMGRhNTg3OWQ1NDIxOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTYxNSw3ICs2MTUsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1l
LCBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsLCBEb2N1bQogICAgICwg
bV9kb2N1bWVudENyZWF0aW9uVGltZShNb25vdG9uaWNUaW1lOjpub3coKSkKICNlbmRpZgogICAg
ICwgbV9zY3JpcHRSdW5uZXIobWFrZVVuaXF1ZTxTY3JpcHRSdW5uZXI+KCp0aGlzKSkKLSAgICAs
IG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9hZGVyPigqdGhpcykpCisg
ICAgLCBtX21vZHVsZUxvYWRlcihtYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMs
IFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlOjpEb2N1bWVudCkpCiAjaWYgRU5BQkxFKFhT
TFQpCiAgICAgLCBtX2FwcGx5UGVuZGluZ1hTTFRyYW5zZm9ybXNUaW1lcigqdGhpcywgJkRvY3Vt
ZW50OjphcHBseVBlbmRpbmdYU0xUcmFuc2Zvcm1zVGltZXJGaXJlZCkKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FeGNlcHRpb25Db2RlLmgKaW5kZXggZjZiNTU4ZWE4MmQ3OTM2OGU2MWFkYjA2MGNmMGI0
ZWExZGJlYTIwYy4uMTdkZTc0MzQ3MmY3NzMxYjAzYzk4ZmVjZTdiMWViMWI5NjAxZTc3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5oCkBAIC02MSw2ICs2MSw3IEBAIGVudW0gRXhjZXB0
aW9uQ29kZSB7CiAgICAgLy8gU2ltcGxlIGV4Y2VwdGlvbnMgKGh0dHBzOi8vaGV5Y2FtLmdpdGh1
Yi5pby93ZWJpZGwvI2lkbC1leGNlcHRpb25zKS4KICAgICBSYW5nZUVycm9yLAogICAgIFR5cGVF
cnJvciwKKyAgICBKU1N5bnRheEVycm9yLCAvLyBEaWZmZXJlbnQgZnJvbSBET00gU1lOVEFYX0VS
Ui4KIAogICAgIC8vIE5vbi1zdGFuZGFyZCBlcnJvci4KICAgICBTdGFja092ZXJmbG93RXJyb3Is
CkBAIC0xMTEsNiArMTEyLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlPiB7CiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6Tm90QWxsb3dl
ZEVycm9yLAogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OlJhbmdlRXJyb3IsCiAgICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZTo6VHlwZUVycm9yLAorICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGU6OkpTU3ludGF4RXJyb3IsCiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6U3RhY2tPdmVy
Zmxvd0Vycm9yLAogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OkV4aXN0aW5nRXhjZXB0aW9u
RXJyb3IKICAgICA+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9k
dWxlU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5j
cHAKaW5kZXggOWEyNWMxNjU4OGVlY2FkNjc4ZmI5MTFlYzg2MjJmNDI0MjU5MmI1YS4uNDhlYzA4
NTFhNDU3ZDliYTQ3NDczZmVjMjhkN2I0OTMxMmI3ODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCkBAIC04OCwxNiArODgsNCBAQCB2b2lkIExvYWRh
YmxlTW9kdWxlU2NyaXB0OjpleGVjdXRlKFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiAg
ICAgc2NyaXB0RWxlbWVudC5leGVjdXRlTW9kdWxlU2NyaXB0KCp0aGlzKTsKIH0KIAotdm9pZCBM
b2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYg
cm9vdFVSTCkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAg
ICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgcm9vdFVSTC5zdHJp
bmcoKSwgbV9wYXJhbWV0ZXJzLmNvcHlSZWYoKSk7Ci19Ci0KLXZvaWQgTG9hZGFibGVNb2R1bGVT
Y3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBz
b3VyY2VDb2RlKQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0g
ICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KCp0aGlzLCBzb3VyY2VDb2Rl
KTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAppbmRl
eCBiYjc5OTU0ZDdiOTliMGVkMDZiZmU1NWVmODU0ZWNjZTIxZjM1ODc3Li5kMjUzNTk2M2Y2NDhi
MDJhOGEwMWZkNjNiYjFlMzgxMzg2Y2VlNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFi
bGVNb2R1bGVTY3JpcHQuaApAQCAtNTAsMTUgKzUwLDE0IEBAIGNsYXNzIExvYWRhYmxlTW9kdWxl
U2NyaXB0IGZpbmFsIDogcHVibGljIExvYWRhYmxlU2NyaXB0IHsKIAogICAgIHZvaWQgc2V0RXJy
b3IoRXJyb3ImJik7CiAKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHJvb3RV
UkwpOwotICAgIHZvaWQgbG9hZChEb2N1bWVudCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsK
LQogICAgIHZvaWQgbm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYpOwogICAg
IHZvaWQgbm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3ImJik7CiAgICAgdm9p
ZCBub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKIAogICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1
bGVLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQogCisgICAgTW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgp
OyB9CisKIHByaXZhdGU6CiAgICAgTG9hZGFibGVNb2R1bGVTY3JpcHQoY29uc3QgU3RyaW5nJiBu
b25jZSwgY29uc3QgU3RyaW5nJiBpbnRlZ3JpdHksIFJlZmVycmVyUG9saWN5LCBjb25zdCBTdHJp
bmcmIGNyb3NzT3JpZ2luTW9kZSwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBBdG9tU3Ry
aW5nJiBpbml0aWF0b3JOYW1lLCBib29sIGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDA1NzU4YjYwMGM3NTIyYjQ3ZjM2NGJh
NmExOGQzNWYxNzMxMTA3ZjkuLjVlOTlmMGY1Nzc3YjNiMjE1OGRkMGZhNGJjMzgyNzc2Y2RiMzQ4
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAK
ICNpbmNsdWRlICJMb2FkYWJsZUNsYXNzaWNTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJN
b2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5j
bHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxl
bWVudC5oIgpAQCAtMzUxLDggKzM1MiwxMSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RN
b2R1bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAg
ICAgICAgICAgc2NyaXB0Q2hhcnNldCgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmxvY2FsTmFt
ZSgpLAogICAgICAgICAgICAgbV9lbGVtZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOwot
ICAgICAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIG1vZHVsZVNjcmlwdFJv
b3RVUkwpOwogICAgICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKSB7Cisg
ICAgICAgICAgICBhdXRvJiBzY3JpcHQgPSBkb3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4o
Km1fbG9hZGFibGVTY3JpcHQuZ2V0KCkpOworICAgICAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxv
YWRNb2R1bGVTY3JpcHQoc2NyaXB0LCBtb2R1bGVTY3JpcHRSb290VVJMLnN0cmluZygpLCBtYWtl
UmVmKHNjcmlwdC5wYXJhbWV0ZXJzKCkpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKQEAgLTM2Nyw4ICszNzEsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVl
c3RNb2R1bGVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQog
ICAgIGlmICghY29udGVudFNlY3VyaXR5UG9saWN5LmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVu
dC5kb2N1bWVudCgpLnVybCgpLnN0cmluZygpLCBtX3N0YXJ0TGluZU51bWJlciwgc291cmNlQ29k
ZS5zb3VyY2UoKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCksIGhhc0tub3duTm9uY2UpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50
KCksIHNvdXJjZUNvZGUpOwogICAgIG1fbG9hZGFibGVTY3JpcHQgPSBXVEZNb3ZlKHNjcmlwdCk7
CisgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAg
ICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoZG93bmNhc3Q8TG9hZGFibGVN
b2R1bGVTY3JpcHQ+KCptX2xvYWRhYmxlU2NyaXB0LmdldCgpKSwgc291cmNlQ29kZSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJl
YWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVy
LmNwcAppbmRleCAyNzE3Yzg2MWM3NGIwZjJhZWJjZGU0MDg3MDBlMmE5YTAzNzM3NTk1Li4xYjY1
MzJjM2IwZWFhODBkOWJkNDZjNmQ0MzIxMzY5NjIxYzAxOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0xMDEsMTAgKzEwMSwxMCBAQCBUaHJlYWRh
YmxlTG9hZGVyT3B0aW9ucyBUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6aXNvbGF0ZWRDb3B5KCkg
Y29uc3QKIH0KIAogCi1SZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gVGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRocmVhZGFibGVMb2FkZXJD
bGllbnQmIGNsaWVudCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJs
ZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMsIFN0cmluZyYmIHJlZmVycmVyKQorUmVmUHRyPFRocmVh
ZGFibGVMb2FkZXI+IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBT
dHJpbmcmJiByZWZlcnJlciwgU3RyaW5nJiYgdGFza01vZGUpCiB7CiAgICAgaWYgKGlzPFdvcmtl
ckdsb2JhbFNjb3BlPihjb250ZXh0KSB8fCAoaXM8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0
KSAmJiBkb3duY2FzdDxXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpLndvcmtlck9yV29ya2xl
dFRocmVhZCgpKSkKLSAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVMb2FkZXI6OmNyZWF0
ZShzdGF0aWNfY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSY+KGNvbnRleHQpLCBjbGll
bnQsIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCksIFdURk1vdmUocmVxdWVzdCksIG9wdGlv
bnMsIFdURk1vdmUocmVmZXJyZXIpKTsKKyAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVM
b2FkZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSY+KGNv
bnRleHQpLCBjbGllbnQsIFdURk1vdmUodGFza01vZGUpLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRp
b25zLCBXVEZNb3ZlKHJlZmVycmVyKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBudWxs
cHRyOwogICAgIGlmIChpczxXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmgKaW5kZXggYzJiMjQ1YzNlYmI4YmM5MzBlZjRk
MTcyYmExNTA5YTE3OWYxZDdhNi4uMWFjNzA0YjRjM2I1MGIwZmZkYTAzNDI4YzNjZTdkYTE0OTg4
MjYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCkBAIC03NCw3
ICs3NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoVGhyZWFkYWJsZUxvYWRlcik7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgdm9pZCBs
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJj
ZVJlcXVlc3QmJiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIGNvbnN0IFRocmVhZGFibGVMb2Fk
ZXJPcHRpb25zJik7Ci0gICAgICAgIHN0YXRpYyBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgUmVz
b3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwgU3RyaW5nJiYg
cmVmZXJyZXIgPSBTdHJpbmcoKSk7CisgICAgICAgIHN0YXRpYyBSZWZQdHI8VGhyZWFkYWJsZUxv
YWRlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBUaHJlYWRhYmxlTG9hZGVyQ2xp
ZW50JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwg
U3RyaW5nJiYgcmVmZXJyZXIgPSBTdHJpbmcoKSwgU3RyaW5nJiYgdGFza01vZGUgPSB7IH0pOwog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSXNEb25lKCkgPSAwOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgY2FuY2VsKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IGJm
NmUyNzZhMzljMjMxNWY4ODkwYzYzMzAzMjlkNjQ0ZGZjYWVhYTUuLjA0ZmRmNTgyNzQzZWI5NzNi
NTI1ZDU0YzhhOGQ4ZjM3ZDgyNTIwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAg
LTc0LDYgKzc0LDggQEAgaW5saW5lIFdvcmtlcjo6V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWUKICAgICAsIG1faWRlbnRpZmll
cigid29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRp
ZmllcigpKQogICAgICwgbV9jb250ZXh0UHJveHkoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6Y3Jl
YXRlKCp0aGlzKSkKICAgICAsIG1fcnVudGltZUZsYWdzKHJ1bnRpbWVGbGFncykKKyAgICAsIG1f
dHlwZShvcHRpb25zLnR5cGUpCisgICAgLCBtX2NyZWRlbnRpYWxzKG9wdGlvbnMuY3JlZGVudGlh
bHMpCiB7CiAgICAgc3RhdGljIGJvb2wgYWRkZWRMaXN0ZW5lcjsKICAgICBpZiAoIWFkZGVkTGlz
dGVuZXIpIHsKQEAgLTExNywxMCArMTE5LDE1IEBAIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBX
b3JrZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OlJ1CiAK
ICAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwogICAgIGZldGNoT3B0aW9ucy5tb2RlID0g
RmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luOworICAgIGlmICh3b3JrZXItPm1fdHlwZSA9
PSBXb3JrZXJUeXBlOjpNb2R1bGUpCisgICAgICAgIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9
IHdvcmtlci0+bV9jcmVkZW50aWFsczsKKyAgICBlbHNlCisgICAgICAgIGZldGNoT3B0aW9ucy5j
cmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW47CiAgICAg
ZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKICAgICBm
ZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CiAg
ICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6
V29ya2VyOwotICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShj
b250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgd29ya2Vy
KTsKKyAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4
dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsIHdvcmtlci5nZXQo
KSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisKICAgICByZXR1cm4gd29ya2VyOwog
fQogCkBAIC0yMTksNyArMjI2LDEzIEBAIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAg
ICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kgPSBSZWZlcnJlclBvbGljeTo6RW1wdHlT
dHJpbmc7CiAgICAgaWYgKGF1dG8gcG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShtX3Njcmlw
dExvYWRlci0+cmVmZXJyZXJQb2xpY3koKSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OkhUVFBIZWFk
ZXIpKQogICAgICAgICByZWZlcnJlclBvbGljeSA9ICpwb2xpY3k7Ci0gICAgbV9jb250ZXh0UHJv
eHkuc3RhcnRXb3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwg
Y29udGV4dC0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3Nj
cmlwdExvYWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cywgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2Vy
Q3JlYXRpb25UaW1lLCByZWZlcnJlclBvbGljeSwgbV9ydW50aW1lRmxhZ3MpOworCisgICAgVVJM
IHJlc3BvbnNlVVJMID0gbV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgaWYgKCFt
X3NjcmlwdExvYWRlci0+aXNSZWRpcmVjdGVkKCkgJiYgbV9zY3JpcHRMb2FkZXItPnJlc3BvbnNl
U291cmNlKCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7Cisg
ICAgICAgIGlmIChtX3NjcmlwdExvYWRlci0+dXJsKCkuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkp
CisgICAgICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIobV9zY3JpcHRM
b2FkZXItPnVybCgpLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICB9CisgICAgbV9jb250ZXh0
UHJveHkuc3RhcnRXb3JrZXJHbG9iYWxTY29wZShyZXNwb25zZVVSTCwgbV9uYW1lLCBjb250ZXh0
LT51c2VyQWdlbnQocmVzcG9uc2VVUkwpLCBpc09ubGluZSwgbV9zY3JpcHRMb2FkZXItPnNjcmlw
dCgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIG1fc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBtX3dvcmtlckNyZWF0aW9uVGltZSwgcmVm
ZXJyZXJQb2xpY3ksIG1fdHlwZSwgbV9jcmVkZW50aWFscywgbV9ydW50aW1lRmxhZ3MpOwogICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWQoKmNvbnRleHQsIG1fc2Ny
aXB0TG9hZGVyLT5pZGVudGlmaWVyKCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5oCmluZGV4IDUzZjVlNmZmZjI3YzlmYTNlNWMwZTAxZjBmNmM0
MmM2Y2I2ZjlkMGUuLjM4YTYyM2E5OGRiYTM1ZmY4MDEzY2Q2ZmM4Yzg1YzgxMDIwNTAyMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaApAQCAtMjksOSArMjksMTEgQEAKICNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVz
dENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJQb3N0
TWVzc2FnZU9wdGlvbnMuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIK
KyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGlt
ZUZsYWdzLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KQEAgLTU1LDYgKzU3LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGlj
IEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtlcik7CiBwdWJsaWM6CiAgICAgc3RydWN0IE9w
dGlvbnMgeworICAgICAgICBXb3JrZXJUeXBlIHR5cGU7CisgICAgICAgIEZldGNoUmVxdWVzdENy
ZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwogICAgICAgICBTdHJpbmcgbmFtZTsKICAgICB9OwogICAg
IHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IE9wdGlv
bnMmKTsKQEAgLTc5LDYgKzgzLDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3Ry
YWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICAgICB2b2lk
IHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKT4mJik7CiAjZW5kaWYKIAorICAgIFdvcmtlclR5cGUgdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdvcmtlcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgSlNDOjpSdW50aW1lRmxhZ3MsIGNvbnN0IE9wdGlvbnMmKTsKIApA
QCAtMTEyLDYgKzExOCw4IEBAIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdv
cmtlciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBXb3JrCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCiAgICAgSGFzaFNldDxTdHJpbmc+IG1fdHJhbnNmb3JtZXJzOwogI2VuZGlmCisgICAg
V29ya2VyVHlwZSBtX3R5cGUgeyBXb3JrZXJUeXBlOjpDbGFzc2ljIH07CisgICAgRmV0Y2hSZXF1
ZXN0Q3JlZGVudGlhbHMgbV9jcmVkZW50aWFscyB7IEZldGNoUmVxdWVzdENyZWRlbnRpYWxzOjpT
YW1lT3JpZ2luIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlci5pZGwKaW5kZXggNDVkNmEwODY3ODU0ZWU0MDRkZTdlN2QwMTI0OGNlYmY0NGRjYTdl
ZC4uNzAyMTc5NmRmNTA0YWRmOGU2Yjk1ODlhY2U5ZjE0NDgyMWYyOTVmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyLmlkbApAQCAtMzgsNiArMzgsOCBAQAogfTsKIAogZGljdGlvbmFyeSBXb3Jr
ZXJPcHRpb25zIHsKKyAgICBXb3JrZXJUeXBlIHR5cGUgPSAiY2xhc3NpYyI7CisgICAgRmV0Y2hS
ZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMgPSAic2FtZS1vcmlnaW4iOyAvLyBjcmVkZW50
aWFscyBpcyBvbmx5IHVzZWQgaWYgdHlwZSBpcyAibW9kdWxlIgogICAgIERPTVN0cmluZyBuYW1l
ID0gIiI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUu
Y3BwCmluZGV4IGRiYWIzNDhlODBjOWRlNTBiZDIxNTc3N2ExNGEzOWEwZjcwZTQ5YzcuLmNjZGU5
MDljN2NiNTJlOTc3NzRjNWI4MTU4MjNlYmNiYmIwNzBmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC03NCw2ICs3NCw4IEBAIFdvcmtlckds
b2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZShXb3JrZXJUaHJlYWRUeXBlIHR5cGUsIGNvbnN0
IFdvcmtlclBhcmFtZXRlCiAgICAgLCBtX3BlcmZvcm1hbmNlKFBlcmZvcm1hbmNlOjpjcmVhdGUo
dGhpcywgcGFyYW1zLnRpbWVPcmlnaW4pKQogICAgICwgbV9yZWZlcnJlclBvbGljeShwYXJhbXMu
cmVmZXJyZXJQb2xpY3kpCiAgICAgLCBtX3NldHRpbmdzVmFsdWVzKHBhcmFtcy5zZXR0aW5nc1Zh
bHVlcykKKyAgICAsIG1fd29ya2VyVHlwZShwYXJhbXMud29ya2VyVHlwZSkKKyAgICAsIG1fY3Jl
ZGVudGlhbHMocGFyYW1zLmNyZWRlbnRpYWxzKQogewogI2lmICFFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvblByb3h5KTsKQEAgLTI3NCw2ICsyNzYs
MTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV29ya2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwdHMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMpCiB7CiAgICAgQVNTRVJUKGNvbnRlbnRTZWN1cml0
eVBvbGljeSgpKTsKIAorICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL3dvcmtlcnMuaHRtbCNpbXBvcnRpbmctc2NyaXB0cy1hbmQtbGlicmFyaWVzCisgICAgLy8g
MS4gSWYgd29ya2VyIGdsb2JhbCBzY29wZSdzIHR5cGUgaXMgIm1vZHVsZSIsIHRocm93IGEgVHlw
ZUVycm9yIGV4Y2VwdGlvbi4KKyAgICBpZiAobV93b3JrZXJUeXBlID09IFdvcmtlclR5cGU6Ok1v
ZHVsZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImltcG9ydFNjcmlw
dHMgY2Fubm90IGJlIHVzZWQgaWYgd29lcmtlciB0eXBlIGlzIFwibW9kdWxlXCIiX3MgfTsKKwog
ICAgIFZlY3RvcjxVUkw+IGNvbXBsZXRlZFVSTHM7CiAgICAgY29tcGxldGVkVVJMcy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHVybHMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGVudHJ5IDogdXJs
cykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDQ2
ZDQ5ZDk0YzUyMzhlNDY4OGQzOTVkODdjMjA2M2ViNTcyMGQxYmYuLjc0Nzk1ZjVjMGY5YTJhMzVk
MDA5MzAxMmFkMThmNTdlMzE3ZjgyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmgKQEAgLTEyMyw2ICsxMjMsOCBAQCBjbGFzcyBXb3JrZXJHbG9iYWxTY29w
ZSA6IHB1YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBCYXNl
NgogCiAgICAgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3NldHRpbmdzVmFsdWVzOyB9CiAKKyAgICBGZXRjaE9wdGlvbnM6OkNy
ZWRlbnRpYWxzIGNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gbV9jcmVkZW50aWFsczsgfQor
CiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyR2xvYmFsU2NvcGUoV29ya2VyVGhyZWFkVHlwZSwgY29u
c3QgV29ya2VyUGFyYW1ldGVycyYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiwgV29ya2VyVGhyZWFk
JiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0
aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciopOwogCkBAIC0xNjMsOCArMTY1LDYgQEAgY2xhc3Mg
V29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2Nv
cGU+LCBwdWJsaWMgQmFzZTYKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJMb2NhdGlvbj4gbV9s
b2NhdGlvbjsKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJOYXZpZ2F0b3I+IG1fbmF2aWdhdG9y
OwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+
IG1fc2NyaXB0OwotCiAgICAgYm9vbCBtX2lzT25saW5lOwogICAgIGJvb2wgbV9zaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKQEAgLTE4Nyw2ICsxODcsOCBAQCBj
bGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9i
YWxTY29wZT4sIHB1YmxpYyBCYXNlNgogICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NWYWx1ZVBvb2w+
IG1fY3NzVmFsdWVQb29sOwogICAgIFJlZmVycmVyUG9saWN5IG1fcmVmZXJyZXJQb2xpY3k7CiAg
ICAgU2V0dGluZ3M6OlZhbHVlcyBtX3NldHRpbmdzVmFsdWVzOworICAgIFdvcmtlclR5cGUgbV93
b3JrZXJUeXBlOworICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgbV9jcmVkZW50aWFsczsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKaW5kZXggNDAwMDNjM2UwMTA5OTk2MGY2NDc4NjFl
NzAxNjg3ZDBlMzcxZDcyZC4uZWQ2NzNhYzhmN2MwZWU1NGMwNjBlY2I1OTIxNjM5MGVkNzBmZTJj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5
LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGVQcm94eSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFdvcmtlckdsb2JhbFNjb3BlUHJveHkmIGNyZWF0ZShXb3JrZXImKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29s
IGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5
LCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNv
ZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRp
bWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50
aWFscywgSlNDOjpSdW50aW1lRmxhZ3MpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRl
V29ya2VyR2xvYmFsU2NvcGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9X
b3JrZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKT4mJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAppbmRleCAxOWQ0YmU2NDk5MmYzMGQzY2NlNzY1NDdh
M2QyMjE4YTk4Yzg0MmMzLi43ODgzNTg3YTdhZjYyMDllM2VjYzhlN2I0MWJhZDQ3YWRmNjIyNDBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cApAQCAtNzMsNyArNzMsNyBAQCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6fldvcmtlck1lc3NhZ2lu
Z1Byb3h5KCkKICAgICAgICAgfHwgKGlzPFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0KSAmJiBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCkudGhyZWFkKCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKSk7
CiB9CiAKLXZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUo
Y29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3Qg
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5IHJlZmVy
cmVyUG9saWN5LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCit2b2lkIFdvcmtlck1l
c3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJM
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25s
aW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBi
b29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3Rvbmlj
VGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSwgV29ya2VyVHlw
ZSB3b3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpS
dW50aW1lRmxhZ3MgcnVudGltZUZsYWdzKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8g
YmUgcmV2aXNpdGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBB
U1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBX
b3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNj
cmlwdFVSTCwgY29uc3QgU3QKIAogICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciA9
IGRvY3VtZW50LnNvY2tldFByb3ZpZGVyKCk7CiAKLSAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFt
cyA9IHsgc2NyaXB0VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBj
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIGRvY3Vt
ZW50LnNldHRpbmdzVmFsdWVzKCkgfTsKKyAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsg
c2NyaXB0VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIHdvcmtlclR5cGUs
IGNyZWRlbnRpYWxzLCBkb2N1bWVudC5zZXR0aW5nc1ZhbHVlcygpIH07CiAgICAgYXV0byB0aHJl
YWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShwYXJhbXMsIHNvdXJjZUNvZGUsICp0
aGlzLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwgZG9jdW1lbnQudG9wT3JpZ2luKCksIHByb3h5
LCBzb2NrZXRQcm92aWRlciwgcnVudGltZUZsYWdzKTsKIAogICAgIHdvcmtlclRocmVhZENyZWF0
ZWQodGhyZWFkLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2Fn
aW5nUHJveHkuaAppbmRleCBjNWI1NzViOWU2MTViM2YzZjU5NmJmYzNkZjY4M2M4NzdjYzYyYmFi
Li5kOWU4MWUxNTdhMGY0ODUyZTQ5YjU5ZDI1NjZhOGE4MGY1ZjgxOGFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC01MCw3ICs1MCw3IEBA
IGNsYXNzIFdvcmtlck1lc3NhZ2luZ1Byb3h5IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPFdvcmtlck1lc3NhZ2luZ1ByCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGF0aW9u
cyBvZiBXb3JrZXJHbG9iYWxTY29wZVByb3h5LgogICAgIC8vIChPbmx5IHVzZSB0aGVzZSBmdW5j
dGlvbnMgaW4gdGhlIHdvcmtlciBvYmplY3QgdGhyZWFkLikKLSAgICB2b2lkIHN0YXJ0V29ya2Vy
R2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNl
Q29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUg
dGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzKSBmaW5hbDsKKyAg
ICB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNv
bnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUs
IEZldGNoUmVxdWVzdENyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgZmluYWw7CiAgICAg
dm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1l
c3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYpIGZpbmFs
OwogICAgIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggMjM4NGE1YThj
N2QyYTMwMmVlZTVjYjQwNWUxMDVlMDI1Yzk4NDNjYy4uZjRmNGIyNzQ2NmY5YTMwYjI4YjhiMjFm
NmYyYmVmOGJkZTkzODUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogCisj
aW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRMb29w
LmgiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIldv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKQEAgLTM5LDYgKzQwLDcgQEAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKTsKIAogV29y
a2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFdvcmtl
clRocmVhZFR5cGUgdHlwZSwgUmVmPEpTQzo6Vk0+JiYgdm0sIFdvcmtlck9yV29ya2xldFRocmVh
ZCogdGhyZWFkKQogICAgIDogbV9zY3JpcHQobWFrZVVuaXF1ZTxXb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyPih0eXBlLCBXVEZNb3ZlKHZtKSwgdGhpcykpCisgICAgLCBtX21vZHVsZUxv
YWRlcihtYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxv
YWRlcjo6T3duZXJUeXBlOjpXb3JrZXJPcldvcmtsZXQpKQogICAgICwgbV90aHJlYWQodGhyZWFk
KQogICAgICwgbV9pbnNwZWN0b3JDb250cm9sbGVyKG1ha2VVbmlxdWU8V29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcj4oKnRoaXMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IDZjMjQ0YTBjNDI3ZWUxYzhjNjVmZGNj
NzY1OTUyZjg3N2ZkOWIxNmIuLjU0NGYwNDdhZWMyNzgzMjc0NGQwYThhNzBhZjdlOTM5YzMzMDk5
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmgKQEAgLTMyLDYgKzMyLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRXZlbnRMb29wVGFza0dyb3VwOworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwogY2xhc3Mg
V29ya2VyRXZlbnRMb29wOwogY2xhc3MgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNz
IFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI7CkBAIC01NCw2ICs1NSw4IEBAIGNsYXNz
IFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIHB1YmxpYyBSZWZDb3VuCiAKICAgICB1bnNpZ25lZCBsb25nIGNyZWF0ZVVuaXF1ZUlkZW50
aWZpZXIoKSB7IHJldHVybiBtX3VuaXF1ZUlkZW50aWZpZXIrKzsgfQogCisgICAgU2NyaXB0TW9k
dWxlTG9hZGVyJiBtb2R1bGVMb2FkZXIoKSB7IHJldHVybiAqbV9tb2R1bGVMb2FkZXI7IH0KKwog
ICAgIC8vIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCiAgICAgRXZlbnRMb29wVGFza0dyb3VwJiBl
dmVudExvb3AoKSBmaW5hbDsKICAgICBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IGZpbmFs
OwpAQCAtODgsNiArOTEsNyBAQCBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1
YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMgUmVmQ291bgogICAgIHZvaWQgZGVy
ZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+IG1fc2NyaXB0OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxTY3JpcHRNb2R1bGVMb2FkZXI+IG1fbW9kdWxlTG9hZGVyOwogICAgIFdvcmtlck9y
V29ya2xldFRocmVhZCogbV90aHJlYWQ7CiAgICAgUmVmUHRyPFdvcmtlckV2ZW50TG9vcD4gbV9l
dmVudExvb3A7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2tHcm91cD4gbV9kZWZh
dWx0VGFza0dyb3VwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggY2Q0ZWMyNDY4MjUyNWFhYmM2
NDJkODc3YTBkYTAxMWViZGUxMTQzMS4uOTFhOGE4Nzk0NTZlMDY3NjIyOWE4NzA4YTg3NTA5OTkz
YTJlMjQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zNSwxNSArMzUsMjMgQEAKICNpbmNs
dWRlICJKU0V4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIkpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUu
aCIKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIk1v
ZHVsZUZldGNoRmFpbHVyZUtpbmQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xp
ZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnNvbGVDbGllbnQuaCIKKyNpbmNsdWRlICJX
b3JrZXJTY3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlv
bi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlZmVycmVkV29ya1RpbWVyLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvRXhjZXB0aW9uSGVscGVycy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dDQWN0aXZp
dHlDYWxsYmFjay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNl
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU05h
dGl2ZVN0ZEZ1bmN0aW9uLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRj
aFBhcmFtZXRlcnMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1NjcmlwdEZldGNoZXIu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmdJbmxpbmVzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTIyOCw2ICsyMzYsMjQ1IEBAIHZvaWQgV29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29k
CiAgICAgfQogfQogCitzdGF0aWMgSWRlbnRpZmllciBqc1ZhbHVlVG9Nb2R1bGVLZXkoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgaWYg
KHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tVWlkKGpz
Q2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOworICAgIEFTU0VSVCh2YWx1ZS5p
c1N0cmluZygpKTsKKyAgICByZXR1cm4gYXNTdHJpbmcodmFsdWUpLT50b0lkZW50aWZpZXIobGV4
aWNhbEdsb2JhbE9iamVjdCk7Cit9CisKK0pTQzo6SlNWYWx1ZSBXb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShKU0M6OkpTTW9kdWxlUmVjb3JkJiBtb2R1bGVS
ZWNvcmQpCit7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVy
LmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOworICAgIEpTTG9ja0hvbGRl
ciBsb2NrIHsgdm0gfTsKKyAgICByZXR1cm4gbW9kdWxlUmVjb3JkLmV2YWx1YXRlKCZnbG9iYWxP
YmplY3QpOworfQorCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KFdvcmtlclNjcmlwdEZldGNoZXIm
IHNjcmlwdEZldGNoZXIsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCit7Cisg
ICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAgIHJldHVybiBNZXNzYWdlUXVl
dWVUZXJtaW5hdGVkOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBn
bG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworCisgICAg
YXV0byBwcm90ZWN0b3IgPSBtYWtlUmVmKHNjcmlwdEZldGNoZXIpOworICAgIHsKKyAgICAgICAg
YXV0byYgcHJvbWlzZSA9IEpTRXhlY1N0YXRlOjpsb2FkTW9kdWxlKGdsb2JhbE9iamVjdCwgc291
cmNlQ29kZS5qc1NvdXJjZUNvZGUoKSwgSlNDOjpKU1NjcmlwdEZldGNoZXI6OmNyZWF0ZSh2bSwg
eyAmc2NyaXB0RmV0Y2hlciB9KSk7CisKKyAgICAgICAgYXV0byYgZnVsZmlsbEhhbmRsZXIgPSAq
SlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCAxLCBTdHJpbmco
KSwgW3Byb3RlY3Rvcl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpIC0+IEpTQzo6RW5jb2RlZEpTVmFsdWUgeworICAgICAgICAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9
OworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAg
ICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgICAgICBwcm90ZWN0b3ItPm5vdGlmeUxvYWRD
b21wbGV0ZWQoKm1vZHVsZUtleS5pbXBsKCkpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVq
ZWN0SGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmpl
Y3QsIDEsIFN0cmluZygpLCBbcHJvdGVjdG9yXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgeworICAgICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworICAgICAg
ICAgICAgSlNWYWx1ZSBlcnJvclZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICAg
ICAgICAgIGlmIChlcnJvclZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRv
KiBvYmplY3QgPSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOworICAgICAgICAgICAgICAgIGlm
IChKU1ZhbHVlIGZhaWx1cmVLaW5kVmFsdWUgPSBvYmplY3QtPmdldERpcmVjdCh2bSwgc3RhdGlj
X2Nhc3Q8SlNWTUNsaWVudERhdGEmPigqdm0uY2xpZW50RGF0YSkuYnVpbHRpbk5hbWVzKCkuZmFp
bHVyZUtpbmRQcml2YXRlTmFtZSgpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlz
IGhvc3QgcHJvcGFnYXRlZCBlcnJvciBpbiB0aGUgbW9kdWxlIGxvYWRlciBwaXBlbGluZS4KKyAg
ICAgICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxNb2R1bGVGZXRjaEZhaWx1cmVL
aW5kPihmYWlsdXJlS2luZFZhbHVlLmFzSW50MzIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkOgorICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJv
ciB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlw
ZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6bnVsbG9w
dAorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpX
YXNDYW5jZWxlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3Rvci0+bm90aWZ5TG9h
ZFdhc0NhbmNlbGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAg
ICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciB7Cisg
ICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAor
ICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpDb25zb2xlTWVzc2FnZSB7CisgICAgICAg
ICAgICAgICAgICAgIE1lc3NhZ2VTb3VyY2U6OkpTLAorICAgICAgICAgICAgICAgICAgICBNZXNz
YWdlTGV2ZWw6OkVycm9yLAorICAgICAgICAgICAgICAgICAgICByZXRyaWV2ZUVycm9yTWVzc2Fn
ZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1ZSwgc2NvcGUpLAorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcHJvbWlzZS50aGVuKCZnbG9i
YWxPYmplY3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRsZXIpOworICAgIH0KKyAgICBt
X2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOwor
CisgICAgLy8gRHJpdmUgUnVuTG9vcCB1bnRpbCB3ZSBnZXQgZWl0aGVyIG9mICJXb3JrZXIgaXMg
dGVybWluYXRlZCIsICJMb2FkaW5nIGlzIGRvbmUiLCBvciAiTG9hZGluZyBpcyBmYWlsZWQiLgor
ICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSBtX2dsb2JhbFNjb3BlLT53b3JrZXJPcldvcmts
ZXRUaHJlYWQoKS0+cnVuTG9vcCgpOworCisgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcmVjZWl2
ZSBtZXNzYWdlcyB0aGF0IGFyZSBub3QgcmVsYXRlZCB0byBhc3luY2hyb25vdXMgcmVzb3VyY2Ug
bG9hZGluZy4KKyAgICAvLyBPdGhlcndpc2UsIGEgd29ya2VyIGRpc2NhcmRzIHNvbWUgbWVzc2Fn
ZXMgZnJvbSB0aGUgbWFpbiB0aHJlYWQgaGVyZSBpbiBhIHJhY3kgd2F5LgorICAgIC8vIEZvciBl
eGFtcGxlLCB0aGUgbWFpbiB0aHJlYWQgY2FuIHBvc3RNZXNzYWdlIGp1c3QgYWZ0ZXIgY3JlYXRp
bmcgYSBXb3JrZXIuIEluIHRoYXQgY2FzZSwgcG9zdE1lc3NhZ2UncworICAgIC8vIHRhc2sgaXMg
cXVldWVkIGluIFdvcmtlclJ1bkxvb3AgYmVmb3JlIHN0YXJ0IHJ1bm5pbmcgbW9kdWxlIHNjcmlw
dHMuIFRoaXMgdGFzayBzaG91bGQgbm90IGJlIGRpc2NhcmRlZAorICAgIC8vIGluIHRoZSBmb2xs
b3dpbmcgZHJpdmluZyBvZiB0aGUgUnVuTG9vcCB3aGljaCBtYWlubHkgYXR0ZW1wdCB0byBjb2xs
ZWN0IGluaXRpYWwgbG9hZCBvZiBtb2R1bGUgc2NyaXB0cy4KKyAgICBTdHJpbmcgdGFza01vZGUg
PSAibG9hZE1vZHVsZXNJbldvcmtlck9yV29ya2xldE1vZGUiX3M7CisgICAgTWVzc2FnZVF1ZXVl
V2FpdFJlc3VsdCByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdlUmVjZWl2ZWQ7CisgICAgd2hp
bGUgKCghcHJvdGVjdG9yLT5pc0xvYWRlZCgpICYmICFwcm90ZWN0b3ItPndhc0NhbmNlbGVkKCkp
ICYmIHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKSB7CisgICAgICAgIHJlc3VsdCA9
IHJ1bkxvb3AucnVuSW5Nb2RlKG1fZ2xvYmFsU2NvcGUsIHRhc2tNb2RlKTsKKyAgICAgICAgaWYg
KHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKQorICAgICAgICAgICAgbV9nbG9iYWxT
Y29wZS0+ZXZlbnRMb29wKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKKyAgICB9CisK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRG
ZXRjaGVyLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBTdHJpbmcqIHJldHVy
bmVkRXhjZXB0aW9uTWVzc2FnZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRv
JiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworCisg
ICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9uOworICAgIEpTRXhl
Y1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpm
cm9tVWlkKHZtLCBzY3JpcHRGZXRjaGVyLm1vZHVsZUtleSgpKSwganNVbmRlZmluZWQoKSwgcmV0
dXJuZWRFeGNlcHRpb24pOworICAgIGlmICgocmV0dXJuZWRFeGNlcHRpb24gJiYgaXNUZXJtaW5h
dGVkRXhlY3V0aW9uRXhjZXB0aW9uKHZtLCByZXR1cm5lZEV4Y2VwdGlvbikpIHx8IGlzVGVybWlu
YXRpbmdFeGVjdXRpb24oKSkgeworICAgICAgICBmb3JiaWRFeGVjdXRpb24oKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbikgeworICAgICAgICBp
ZiAobV9nbG9iYWxTY29wZS0+Y2FuSW5jbHVkZUVycm9yRGV0YWlscyhzb3VyY2VDb2RlLmNhY2hl
ZFNjcmlwdCgpLCBzb3VyY2VDb2RlLnVybCgpLnN0cmluZygpKSkgeworICAgICAgICAgICAgLy8g
RklYTUU6IEl0J3Mgbm90IGdyZWF0IHRoYXQgdGhpcyBjYW4gcnVuIGFyYml0cmFyeSBjb2RlIHRv
IHN0cmluZy1pZnkgdGhlIHZhbHVlIG9mIHRoZSBleGNlcHRpb24uCisgICAgICAgICAgICAvLyBE
byB3ZSBuZWVkIHRvIGRvIGFueXRoaW5nIHRvIGhhbmRsZSB0aGF0IHByb3Blcmx5LCBpZiBpdCwg
c2F5LCByYWlzZXMgYW5vdGhlciBleGNlcHRpb24/CisgICAgICAgICAgICBpZiAocmV0dXJuZWRF
eGNlcHRpb25NZXNzYWdlKQorICAgICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlvbk1lc3Nh
Z2UgPSByZXR1cm5lZEV4Y2VwdGlvbi0+dmFsdWUoKS50b1dURlN0cmluZygmZ2xvYmFsT2JqZWN0
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgZGV0YWls
ZWQgZXJyb3Igd2l0aCBhIGdlbmVyaWMgZXJyb3IuCisgICAgICAgICAgICBTdHJpbmcgZ2VuZXJp
Y0Vycm9yTWVzc2FnZSB7ICJTY3JpcHQgZXJyb3IuIl9zIH07CisgICAgICAgICAgICBpZiAocmV0
dXJuZWRFeGNlcHRpb25NZXNzYWdlKQorICAgICAgICAgICAgICAgICpyZXR1cm5lZEV4Y2VwdGlv
bk1lc3NhZ2UgPSBnZW5lcmljRXJyb3JNZXNzYWdlOworICAgICAgICB9CisgICAgfQorfQorCit2
b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVs
ZShjb25zdCBVUkwmIG1vZHVsZVVSTCwgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50
aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChpc0V4ZWN1dGlvbkZvcmJpZGRlbigpKSB7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciB9KTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisg
ICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0g
fTsKKworICAgIGF1dG8gc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZldGNoZXI6OmNyZWF0
ZShjcmVkZW50aWFscyk7CisgICAgeworICAgICAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVjU3Rh
dGU6OmxvYWRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVVUkwuc3RyaW5nKCksIGpzVW5kZWZp
bmVkKCksIEpTQzo6SlNTY3JpcHRGZXRjaGVyOjpjcmVhdGUodm0sIHsgc2NyaXB0RmV0Y2hlci5w
dHIoKSB9KSk7CisKKyAgICAgICAgYXV0byB0YXNrID0gY3JlYXRlU2hhcmVkVGFzazx2b2lkKE9w
dGlvbmFsPEV4Y2VwdGlvbj4mJik+KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAg
ICAgIH0pOworCisgICAgICAgIGF1dG8mIGZ1bGZpbGxIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFt0YXNrLCBzY3Jp
cHRGZXRjaGVyXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkgLT4gSlNDOjpFbmNvZGVkSlNWYWx1ZSB7CisgICAgICAgICAgICAvLyB0YXNrLT5ydW4o
V1RGOjpudWxsb3B0KTsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgICAgICAgICAgSWRlbnRpZmll
ciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisgICAgICAgICAgICBzY3JpcHRGZXRjaGVyLT5ub3RpZnlMb2FkQ29tcGxldGVkKCptb2R1
bGVLZXkuaW1wbCgpKTsKKworICAgICAgICAgICAgYXV0byogY29udGV4dCA9IGRvd25jYXN0PFdv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlPihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9i
YWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICAgICAgaWYgKCFj
b250ZXh0IHx8ICFjb250ZXh0LT5zY3JpcHQoKSkgeworICAgICAgICAgICAgICAgIHRhc2stPnJ1
bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIE5ha2VkUHRyPEpT
Qzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICAgICAgICAgIEpTRXhlY1N0YXRl
OjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoKmdsb2JhbE9iamVjdCwgbW9kdWxlS2V5LCBqc1VuZGVm
aW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgICAgICAgICBpZiAoKHJldHVybmVkRXhj
ZXB0aW9uICYmIGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbih2bSwgcmV0dXJuZWRFeGNl
cHRpb24pKSB8fCBjb250ZXh0LT5zY3JpcHQoKS0+aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7
CisgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQtPnNjcmlwdCgpKQorICAgICAgICAgICAgICAg
ICAgICBjb250ZXh0LT5zY3JpcHQoKS0+Zm9yYmlkRXhlY3V0aW9uKCk7CisgICAgICAgICAgICAg
ICAgdGFzay0+cnVuKFdURjo6bnVsbG9wdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2U7
CisgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQtPmNhbkluY2x1ZGVFcnJvckRldGFpbHMobnVs
bHB0ciwgbW9kdWxlS2V5LnN0cmluZygpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBydW4gYXJiaXRyYXJ5IGNvZGUgdG8gc3Ry
aW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgICAgICAgICAg
Ly8gRG8gd2UgbmVlZCB0byBkbyBhbnl0aGluZyB0byBoYW5kbGUgdGhhdCBwcm9wZXJseSwgaWYg
aXQsIHNheSwgcmFpc2VzIGFub3RoZXIgZXhjZXB0aW9uPworICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlID0gcmV0dXJuZWRFeGNlcHRpb24tPnZhbHVlKCkudG9XVEZTdHJpbmcoZ2xvYmFsT2Jq
ZWN0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBP
dmVyd3JpdGUgdGhlIGRldGFpbGVkIGVycm9yIHdpdGggYSBnZW5lcmljIGVycm9yLgorICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlID0gIlNjcmlwdCBlcnJvci4iX3M7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihtZXNzYWdlLCB7
IH0sIHsgfSwgeyB9LCB7IH0sIHsgfSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRh
c2stPnJ1bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0SGFu
ZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEs
IFN0cmluZygpLCBbdGFza10oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpIHsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIEpTVmFs
dWUgZXJyb3JWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAgICAgICAgICBpZiAo
ZXJyb3JWYWx1ZS5pc09iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byogb2JqZWN0ID0g
SlNDOjphc09iamVjdChlcnJvclZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT5n
ZXREaXJlY3Qodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhJj4oKnZtLmNsaWVudERhdGEp
LmJ1aWx0aW5OYW1lcygpLmZhaWx1cmVLaW5kUHJpdmF0ZU5hbWUoKSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAg
ICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gcmV0cmlldmVFcnJvck1lc3NhZ2VXaXRo
b3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2bSwgb2JqZWN0LCBjYXRjaFNjb3BlKTsKKyAgICAgICAg
ICAgICAgICAgICAgdGFzay0+cnVuKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsIG1lc3NhZ2UgfSk7
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChvYmplY3QtPmluaGVy
aXRzPEVycm9ySW5zdGFuY2U+KHZtKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvKiBlcnJv
ciA9IGpzQ2FzdDxFcnJvckluc3RhbmNlKj4ob2JqZWN0KTsKKyAgICAgICAgICAgICAgICAgICAg
c3dpdGNoIChlcnJvci0+ZXJyb3JUeXBlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBF
cnJvclR5cGU6OlR5cGVFcnJvcjogeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBjYXRj
aFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBTdHJpbmcgbWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoKmdsb2Jh
bE9iamVjdCwgdm0sIGVycm9yLCBjYXRjaFNjb3BlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRhc2stPnJ1bihFeGNlcHRpb24geyBUeXBlRXJyb3IsIG1lc3NhZ2UgfSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JUeXBlOjpT
eW50YXhFcnJvcjogeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBjYXRjaFNjb3BlID0g
REVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcg
bWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoKmdsb2JhbE9iamVjdCwg
dm0sIGVycm9yLCBjYXRjaFNjb3BlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhc2stPnJ1
bihFeGNlcHRpb24geyBKU1N5bnRheEVycm9yLCBtZXNzYWdlIH0pOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xB
UkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSByZXRyaWV2
ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKCpnbG9iYWxPYmplY3QsIHZtLCBlcnJvclZhbHVlLCBj
YXRjaFNjb3BlKTsKKyAgICAgICAgICAgIHRhc2stPnJ1bihFeGNlcHRpb24geyBBYm9ydEVycm9y
LCBtZXNzYWdlIH0pOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcHJvbWlzZS50aGVuKCZnbG9iYWxPYmpl
Y3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRsZXIpOworICAgIH0KKyAgICBtX2dsb2Jh
bFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworfQorCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBKU0dsb2JhbFNjb3BlUHJvdG90eXBlLCB0eXBlbmFtZSBKU0dsb2Jh
bFNjb3BlLCB0eXBlbmFtZSBHbG9iYWxTY29wZT4KIHZvaWQgV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6aW5pdFNjcmlwdFdpdGhTdWJjbGFzcygpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCmlu
ZGV4IGM0OTMwMWFlZDNkZDA4OWRhNzk3MzI3NjBjYWYyZjdiNjRkYjExYjYuLjlmMDIzYTYyZjgx
NDNlN2Q5ODJmYmY3ZjU4ZWVlYWRjYTNhNWI1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIuaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8
d3RmL01lc3NhZ2VRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9OYWtlZFB0ci5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKQEAgLTQ0LDkgKzQ1LDExIEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2NsYXNzIExvYWRhYmxl
TW9kdWxlU2NyaXB0OwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsKIGNsYXNzIFdvcmtlckNvbnNv
bGVDbGllbnQ7CiBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTsKK2NsYXNzIFdvcmtl
clNjcmlwdEZldGNoZXI7CiAKIGNsYXNzIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXIpOwpAQCAtOTQsNiArOTcsMTMgQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlciB7CiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3RyaW5n
KiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKICAgICB2b2lkIGV2YWx1YXRl
KGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mIHJldHVy
bmVkRXhjZXB0aW9uLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIp
OwogCisgICAgSlNDOjpKU1ZhbHVlIGV2YWx1YXRlTW9kdWxlKEpTQzo6SlNNb2R1bGVSZWNvcmQm
KTsKKworICAgIHZvaWQgbGlua0FuZEV2YWx1YXRlTW9kdWxlKFdvcmtlclNjcmlwdEZldGNoZXIm
LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3Nh
Z2UgPSBudWxscHRyKTsKKyAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IGxvYWRNb2R1bGVTeW5j
aHJvbm91c2x5KFdvcmtlclNjcmlwdEZldGNoZXImLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7
CisKKyAgICB2b2lkIGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIG1vZHVsZVVSTCwg
RmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxFeGNlcHRpb24+JiYpPiYmKTsKKwogcHJvdGVjdGVkOgogICAgIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlKiBnbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsU2NvcGU7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCmluZGV4
IDNhNGRhZWZjMzkwMmJkYjJlYTg0ZmM1OGQ3ZTQyZjgzZTVmMDdlMmYuLjlmMzFkMGRmZDU5YTg3
MDdmZDRlYjU5Y2MzYzkyYTA2NjQ4MWRlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclNjcmlwdExvYWRlci5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBPcHRpb25hbDxFeGNl
cHRpb24+IFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZFN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dAogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKLXZvaWQgV29ya2VyU2Ny
aXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0JiYgc2NyaXB0UmVxdWVzdCwgRmV0
Y2hPcHRpb25zJiYgZmV0Y2hPcHRpb25zLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVu
dCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlIHNl
cnZpY2VXb3JrZXJNb2RlLCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCkKK3ZvaWQg
V29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0JiYgc2NyaXB0UmVx
dWVzdCwgRmV0Y2hPcHRpb25zJiYgZmV0Y2hPcHRpb25zLCBDb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtl
cnNNb2RlIHNlcnZpY2VXb3JrZXJNb2RlLCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVu
dCwgU3RyaW5nJiYgdGFza01vZGUpCiB7CiAgICAgbV9jbGllbnQgPSAmY2xpZW50OwogICAgIG1f
dXJsID0gc2NyaXB0UmVxdWVzdC51cmwoKTsKQEAgLTEyMyw4ICsxMjMsNiBAQCB2b2lkIFdvcmtl
clNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IHNjcmlwdEV4ZWN1dAogICAgIEFTU0VSVChmZXRjaE9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlv
bnM6Ok1vZGU6OlNhbWVPcmlnaW4gfHwgKGZldGNoT3B0aW9ucy5kZXN0aW5hdGlvbiAhPSBGZXRj
aE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTZXJ2aWNld29ya2VyICYmIGZldGNoT3B0aW9ucy5kZXN0
aW5hdGlvbiAhPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpXb3JrZXIpKTsKIAogICAgIFRo
cmVhZGFibGVMb2FkZXJPcHRpb25zIG9wdGlvbnMgeyBXVEZNb3ZlKGZldGNoT3B0aW9ucykgfTsK
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFkZCBhbiBvcHRpb24gdG8gc2V0IGNyZWRlbnRpYWwg
bW9kZS4KLSAgICBvcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFs
czo6U2FtZU9yaWdpbjsKICAgICBvcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID0gU2VuZENhbGxi
YWNrUG9saWN5OjpTZW5kQ2FsbGJhY2tzOwogICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9s
aWN5RW5mb3JjZW1lbnQgPSBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDsKICAgICBp
ZiAoZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246
OlNlcnZpY2V3b3JrZXIpCkBAIC0xNDMsNyArMTQxLDcgQEAgdm9pZCBXb3JrZXJTY3JpcHRMb2Fk
ZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVj
dXQKIAogICAgIC8vIER1cmluZyBjcmVhdGUsIGNhbGxiYWNrcyBtYXkgaGFwcGVuIHdoaWNoIHJl
bW92ZSB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3QuCiAgICAgUmVmPFdvcmtlclNj
cmlwdExvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7Ci0gICAgbV90aHJlYWRhYmxlTG9hZGVy
ID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsICp0aGlz
LCBXVEZNb3ZlKCpyZXF1ZXN0KSwgb3B0aW9ucyk7CisgICAgbV90aHJlYWRhYmxlTG9hZGVyID0g
VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsICp0aGlzLCBX
VEZNb3ZlKCpyZXF1ZXN0KSwgb3B0aW9ucywgeyB9LCBXVEZNb3ZlKHRhc2tNb2RlKSk7CiB9CiAK
IGNvbnN0IFVSTCYgV29ya2VyU2NyaXB0TG9hZGVyOjpyZXNwb25zZVVSTCgpIGNvbnN0CkBAIC0x
OTAsNiArMTg4LDggQEAgdm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc28KICAgICBtX2NlcnRpZmljYXRl
SW5mbyA9IHJlc3BvbnNlLmNlcnRpZmljYXRlSW5mbygpID8gKnJlc3BvbnNlLmNlcnRpZmljYXRl
SW5mbygpIDogQ2VydGlmaWNhdGVJbmZvKCk7CiAgICAgbV9yZXNwb25zZU1JTUVUeXBlID0gcmVz
cG9uc2UubWltZVR5cGUoKTsKICAgICBtX3Jlc3BvbnNlRW5jb2RpbmcgPSByZXNwb25zZS50ZXh0
RW5jb2RpbmdOYW1lKCk7CisgICAgbV9yZXNwb25zZVNvdXJjZSA9IHJlc3BvbnNlLnNvdXJjZSgp
OworICAgIG1faXNSZWRpcmVjdGVkID0gcmVzcG9uc2UuaXNSZWRpcmVjdGVkKCk7CiAgICAgbV9j
b250ZW50U2VjdXJpdHlQb2xpY3kgPSBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMgeyByZXNwb25zZSB9OwogICAgIG1fcmVmZXJyZXJQb2xpY3kgPSByZXNwb25zZS5odHRwSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJlZmVycmVyUG9saWN5KTsKICAgICBpZiAobV9jbGll
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaAppbmRleCA3
ZmRkMGIzZjZhMDFjMmRiNTc3MjRhOTBiM2JiOTg0MGYxZTY4ZTVmLi5jZmEzMWEzNTMyNTlhZWVk
MTk4ZjkzOTFmZmMxNTExYjQwNTBiODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJGZXRjaE9wdGlv
bnMuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1
ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlRocmVhZGFi
bGVMb2FkZXIuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVk
ZSA8bWVtb3J5PgpAQCAtNDMsNyArNDQsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBFeGNlcHRpb247Ci1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKIGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiBjbGFzcyBXb3JrZXJTY3Jp
cHRMb2FkZXJDbGllbnQ7CkBAIC01OCw3ICs1OCw3IEBAIGNsYXNzIFdvcmtlclNjcmlwdExvYWRl
ciA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj4sIHB1YmxpYyBUaHJlYWRh
CiAgICAgfQogCiAgICAgT3B0aW9uYWw8RXhjZXB0aW9uPiBsb2FkU3luY2hyb25vdXNseShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgVVJMJiwgRmV0Y2hPcHRpb25zOjpNb2RlLCBGZXRj
aE9wdGlvbnM6OkNhY2hlLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgY29uc3Qg
U3RyaW5nJiBpbml0aWF0b3JJZGVudGlmaWVyKTsKLSAgICB2b2lkIGxvYWRBc3luY2hyb25vdXNs
eShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9u
cyYmLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2Rl
LCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmKTsKKyAgICB2b2lkIGxvYWRBc3luY2hyb25vdXNs
eShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9u
cyYmLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2Rl
LCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmLCBTdHJpbmcmJiB0YXNrTW9kZSk7CiAKICAgICB2
b2lkIG5vdGlmeUVycm9yKCk7CiAKQEAgLTY3LDYgKzY3LDggQEAgY2xhc3MgV29ya2VyU2NyaXB0
TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRo
cmVhZGEKICAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4g
bV9yZWZlcnJlclBvbGljeTsgfQogICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4g
bV91cmw7IH0KICAgICBjb25zdCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3Q7CisgICAgUmVzb3Vy
Y2VSZXNwb25zZTo6U291cmNlIHJlc3BvbnNlU291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNw
b25zZVNvdXJjZTsgfQorICAgIGJvb2wgaXNSZWRpcmVjdGVkKCkgY29uc3QgeyByZXR1cm4gbV9p
c1JlZGlyZWN0ZWQ7IH0KICAgICBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5m
bygpIGNvbnN0IHsgcmV0dXJuIG1fY2VydGlmaWNhdGVJbmZvOyB9CiAgICAgY29uc3QgU3RyaW5n
JiByZXNwb25zZU1JTUVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZU1JTUVUeXBlOyB9
CiAgICAgYm9vbCBmYWlsZWQoKSBjb25zdCB7IHJldHVybiBtX2ZhaWxlZDsgfQpAQCAtMTA3LDYg
KzEwOSw4IEBAIGNsYXNzIFdvcmtlclNjcmlwdExvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdv
cmtlclNjcmlwdExvYWRlcj4sIHB1YmxpYyBUaHJlYWRhCiAgICAgdW5zaWduZWQgbG9uZyBtX2lk
ZW50aWZpZXIgeyAwIH07CiAgICAgYm9vbCBtX2ZhaWxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2ZpbmlzaGluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUmVkaXJlY3RlZCB7IGZhbHNlIH07
CisgICAgUmVzb3VyY2VSZXNwb25zZTo6U291cmNlIG1fcmVzcG9uc2VTb3VyY2UgeyBSZXNvdXJj
ZVJlc3BvbnNlOjpTb3VyY2U6OlVua25vd24gfTsKICAgICBSZXNvdXJjZUVycm9yIG1fZXJyb3I7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggNzI3OTBh
MDMzMjI2MTllNmVlN2U2MTZhOGJkZTE4YmQ1NTJhNTc4My4uNjNlZThjOGQzNmYzYmQ3MjQ2MzUz
YzViZGY4NDE3ZGQ4MTA3YzRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgor
I2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTU1LDYgKzU3LDggQEAgV29ya2VyUGFyYW1ldGVycyBXb3JrZXJQ
YXJhbWV0ZXJzOjppc29sYXRlZENvcHkoKSBjb25zdAogICAgICAgICBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksCiAgICAgICAgIHRpbWVPcmlnaW4sCiAgICAgICAg
IHJlZmVycmVyUG9saWN5LAorICAgICAgICB3b3JrZXJUeXBlLAorICAgICAgICBjcmVkZW50aWFs
cywKICAgICAgICAgc2V0dGluZ3NWYWx1ZXMuaXNvbGF0ZWRDb3B5KCkKICAgICB9OwogfQpAQCAt
MTIzLDkgKzEyNywzMSBAQCBib29sIFdvcmtlclRocmVhZDo6c2hvdWxkV2FpdEZvcldlYkluc3Bl
Y3Rvck9uU3RhcnR1cCgpIGNvbnN0CiAKIHZvaWQgV29ya2VyVGhyZWFkOjpldmFsdWF0ZVNjcmlw
dElmTmVjZXNzYXJ5KFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkKIHsKLSAgICBnbG9iYWxTY29w
ZSgpLT5zY3JpcHQoKS0+ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5z
b3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNjcmlwdFVSTCkpLCAmZXhjZXB0
aW9uTWVzc2FnZSk7Ci0KLSAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAgICAvLyBX
ZSBhcmUgY3VycmVudGx5IGhvbGRpbmcgb25seSB0aGUgaW5pdGlhbCBzY3JpcHQgY29kZS4gSWYg
dGhlIFdvcmtlclR5cGUgaXMgTW9kdWxlLCB3ZSBzaG91bGQgZmV0Y2ggdGhlIGVudGlyZSBncmFw
aCBiZWZvcmUgZXhlY3V0aW5nIHRoZSByZXN0IG9mIHRoaXMuCisgICAgLy8gV2UgaW52b2tlIG1v
ZHVsZSBsb2FkZXIgYXMgaWYgd2UgYXJlIGV4ZWN1dGluZyBpbmxpbmUgbW9kdWxlIHNjcmlwdCB0
YWcgaW4gRG9jdW1lbnQuCisKKyAgICBpZiAobV9zdGFydHVwRGF0YS0+cGFyYW1zLndvcmtlclR5
cGUgPT0gV29ya2VyVHlwZTo6Q2xhc3NpYykgeworICAgICAgICBnbG9iYWxTY29wZSgpLT5zY3Jp
cHQoKS0+ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2Rl
LCBVUkwobV9zdGFydHVwRGF0YS0+cGFyYW1zLnNjcmlwdFVSTCkpLCAmZXhjZXB0aW9uTWVzc2Fn
ZSk7CisgICAgICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIEZJWE1FIGZpeCBpbml0aWF0b3IgbmFtZS4KKyAgICAgICAgU2NyaXB0U291cmNl
Q29kZSBzb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBE
YXRhLT5wYXJhbXMuc2NyaXB0VVJMKSwgeyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZTo6TW9kdWxlKTsKKyAgICAgICAgYXV0byBzY3JpcHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0
Y2hlcjo6Y3JlYXRlKGdsb2JhbFNjb3BlKCktPmNyZWRlbnRpYWxzKCkpOworICAgICAgICBNZXNz
YWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9IGdsb2JhbFNjb3BlKCktPnNjcmlwdCgpLT5sb2Fk
TW9kdWxlU3luY2hyb25vdXNseShzY3JpcHRGZXRjaGVyLmdldCgpLCBzb3VyY2VDb2RlKTsKKyAg
ICAgICAgaWYgKHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKSB7CisgICAgICAgICAg
ICBpZiAoT3B0aW9uYWw8TG9hZGFibGVTY3JpcHQ6OkVycm9yPiBlcnJvciA9IHNjcmlwdEZldGNo
ZXItPmVycm9yKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoT3B0aW9uYWw8TG9hZGFibGVTY3Jp
cHQ6OkNvbnNvbGVNZXNzYWdlPiBtZXNzYWdlID0gZXJyb3ItPmNvbnNvbGVNZXNzYWdlKQorICAg
ICAgICAgICAgICAgICAgICBleGNlcHRpb25NZXNzYWdlID0gbWVzc2FnZS0+bWVzc2FnZTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbk1lc3NhZ2Ug
PSAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zOworICAgICAgICAgICAgICAg
IGdsb2JhbFNjb3BlKCktPnJlcG9ydEV4Y2VwdGlvbihleGNlcHRpb25NZXNzYWdlLCB7IH0sIHsg
fSwgeyB9LCB7IH0sIHsgfSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFzY3JpcHRGZXRjaGVy
LT53YXNDYW5jZWxlZCgpKSB7CisgICAgICAgICAgICAgICAgLy8gRXZhbHVhdGUuCisgICAgICAg
ICAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShz
Y3JpcHRGZXRjaGVyLmdldCgpLCBzb3VyY2VDb2RlLCAmZXhjZXB0aW9uTWVzc2FnZSk7CisgICAg
ICAgICAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9CiAKICAgICAvLyBGcmVlIHRoZSBzdGFydHVwIGRhdGEgdG8gY2F1c2Ug
aXRzIG1lbWJlciB2YXJpYWJsZSBkZXJlZidzIGhhcHBlbiBvbiB0aGUgd29ya2VyJ3MgdGhyZWFk
IChzaW5jZQogICAgIC8vIGFsbCByZWYvZGVyZWZzIG9mIHRoZXNlIG9iamVjdHMgYXJlIGhhcHBl
bmluZyBvbiB0aGUgdGhyZWFkIGF0IHRoaXMgcG9pbnQpLiBOb3RlIHRoYXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5oCmluZGV4IDg4OTA3OTA4ZTdhOWI4MDllOGYyYTRlNDczZDc1
MmQxMWQyOTM3YzAuLjk1MTJlZmRiMThmMzJhNTBlY2I3ZmI1Njk1OWQ2MWU4ODcyZmExZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApAQCAtMjYsNyArMjYsMTAgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJX
b3JrZXJPcldvcmtsZXRUaHJlYWQuaCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCisjaW5j
bHVkZSAiV29ya2VyVHlwZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFn
cy5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC02Myw2ICs2
Niw4IEBAIHN0cnVjdCBXb3JrZXJQYXJhbWV0ZXJzIHsKICAgICBib29sIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeTsKICAgICBNb25vdG9uaWNUaW1lIHRpbWVPcmln
aW47CiAgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3k7CisgICAgV29ya2VyVHlwZSB3
b3JrZXJUeXBlOworICAgIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwogICAg
IFNldHRpbmdzOjpWYWx1ZXMgc2V0dGluZ3NWYWx1ZXM7CiAKICAgICBXb3JrZXJQYXJhbWV0ZXJz
IGlzb2xhdGVkQ29weSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5cGUuaAppbmRl
eCAwYjBlZDg2MGQ5YzcxNDIzOGEyYTViYjlmZGY0Mzg0MDJkMTZlYmYwLi4xYzFiYjk0NDg2N2Fk
ZjRlZDU3OGEyODE0ZmEzMzIzMjZhZWQ4YTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5
cGUuaApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xh
c3MgV29ya2VyVHlwZSB7CitlbnVtIGNsYXNzIFdvcmtlclR5cGUgOiB1aW50OF90IHsKICAgICBD
bGFzc2ljLAogICAgIE1vZHVsZSwKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAppbmRleCBlYmJlOTVlODkyNGM4
ZjFkNzM3NTI1ZGVhMTYzMGIxZmFkNTZmYjI3Li40YzdkZGY0YTRjMTMxZTBkY2Q2YmEwOTUwOWFi
MmQ5NzU3NWYzMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgTmF2
aWdhdG9yQmFzZTsKIGNsYXNzIFNlcnZpY2VXb3JrZXI7CiAKIGVudW0gY2xhc3MgU2VydmljZVdv
cmtlclVwZGF0ZVZpYUNhY2hlIDogdWludDhfdDsKLWVudW0gY2xhc3MgV29ya2VyVHlwZTsKK2Vu
dW0gY2xhc3MgV29ya2VyVHlwZSA6IHVpbnQ4X3Q7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5
cGU+IGNsYXNzIERPTVByb21pc2VQcm94eTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCmluZGV4IGVjMzljMGY4NDlhNTRlMWI2
ZDBiZWUzNGE4ZDdkMTljYmE0NWUyODguLmY5NTEwY2JmNmZkZjcwNDZmN2QxYjkyMjM2OTE3NGQw
MWZhMGJlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VySm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckpvYi5jcHAKQEAgLTExMCw3ICsxMTAsOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJK
b2I6OmZldGNoU2NyaXB0V2l0aENvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgRgogICAgIG9wdGlvbnMuY2FjaGUgPSBjYWNoZVBvbGljeTsKICAgICBvcHRpb25zLnJlZGly
ZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6RXJyb3I7CiAgICAgb3B0aW9ucy5kZXN0aW5h
dGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNlcnZpY2V3b3JrZXI7Ci0gICAgbV9z
Y3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3Qp
LCBXVEZNb3ZlKG9wdGlvbnMpLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9O
b3RFbmZvcmNlLCBTZXJ2aWNlV29ya2Vyc01vZGU6Ok5vbmUsICp0aGlzKTsKKyAgICBvcHRpb25z
LmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbjsKKyAg
ICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVx
dWVzdCksIFdURk1vdmUob3B0aW9ucyksIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50
OjpEb05vdEVuZm9yY2UsIFNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSwgKnRoaXMsIFdvcmtlclJ1
bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogfQogCiBSZXNvdXJjZUVycm9yIFNlcnZpY2VXb3JrZXJK
b2I6OnZhbGlkYXRlU2VydmljZVdvcmtlclJlc3BvbnNlKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhJiBqb2JEYXRhLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uT3B0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25PcHRpb25zLmgKaW5kZXggOWQ1MDBmODVhY2IxODg0MWNjNTViZWE4MjEx
ZGIxNGZhZGM5NzQ3NS4uMmUzNTU3ZmE3ZGY2N2YxYmY5OGM3YjdhNWRlNGIwYTVhN2JjY2NmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25PcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmgKQEAgLTMyLDcgKzMyLDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogZW51bSBjbGFzcyBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2Fj
aGUgOiB1aW50OF90OwotZW51bSBjbGFzcyBXb3JrZXJUeXBlOworZW51bSBjbGFzcyBXb3JrZXJU
eXBlIDogdWludDhfdDsKIAogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25z
IHsKICAgICBTdHJpbmcgc2NvcGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IGM4
YTdhOTk3MmY5Y2M4YzE2YTc5Njc1MTE1NTJmNTQ5M2E2ODZmOTguLjMzY2EwZWMyM2I1OGE1NTEx
ODc2ODQ2YmEwNzE4MzUzMmI1YzQ3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBA
IC03Myw4ICs3Myw5IEBAIGNsYXNzIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5IDogcHVi
bGljIFdvcmtlck9iamVjdFByb3h5IHsKIC8vIEZJWE1FOiBVc2UgYSB2YWxpZCBXb3JrZXJPYmpl
Y3RQcm94eQogLy8gRklYTUU6IFVzZSB2YWxpZCBydW50aW1lIGZsYWdzCiAKKy8vIEZJWE1FOiBV
c2UgYSB2YWxpZCBXb3JrZXJUeXBlIGFuZCBDcmVkZW50YWlscyBmb3IgbW9kdWxlIHNlcnZpY2Ug
d29ya2Vycy4KIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3Qg
U2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGNvbnN0
IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzLCBXb3JrZXJMb2FkZXJQcm94eSYgbG9h
ZGVyUHJveHksIFdvcmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2VyUHJveHksIElEQkNsaWVudDo6
SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBz
b2NrZXRQcm92aWRlcikKLSAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0
eVN0cmluZygpLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rv
cnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJp
dHlQb2xpY3ksIGZhbHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9LCBzZXR0aW5nc1ZhbHVl
cyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRlYnVnZ2VyUHJveHksIER1bW15U2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3Jt
YWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5zZWN1cml0eU9yaWdpbigpLmdl
dCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFn
czo6Y3JlYXRlQWxsRW5hYmxlZCgpKQorICAgIDogV29ya2VyVGhyZWFkKHsgZGF0YS5zY3JpcHRV
UkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZp
ZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHVzZXJBZ2VudCksIHBsYXRm
b3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09uTGluZSgpLCBkYXRhLmNvbnRl
bnRTZWN1cml0eVBvbGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6Om5vdygpLCB7IH0sIFdvcmtl
clR5cGU6OkNsYXNzaWMsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzOjpTYW1lT3JpZ2luLCBzZXR0
aW5nc1ZhbHVlcyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRlYnVnZ2VyUHJveHksIER1
bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29ya2VyVGhyZWFkU3RhcnRN
b2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5zZWN1cml0eU9y
aWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1
bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQogICAgICwgbV9kYXRhKGRhdGEuaXNvbGF0
ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1bW15U2VydmljZVdvcmtlclRo
cmVhZFByb3h5OjpzaGFyZWQoKSkKICAgICAsIG1faGVhcnRCZWF0VGltZW91dChTV0NvbnRleHRN
YW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCktPnNob3VsZFVzZVNob3J0VGltZW91dCgp
ID8gaGVhcnRCZWF0VGltZW91dEZvclRlc3QgOiBoZWFydEJlYXRUaW1lb3V0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5o
CmluZGV4IDJkZGRiM2I1YjQxZWQ4N2JkNjE0YTBiOTRkMDliNzYxMjkzZDc2MDcuLjM3OGZiYTY1
N2U4YmJmNDg0MWU1NmNiZjg2NTYxZjhlY2MzMTEwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKQEAgLTUwLDcg
KzUwLDcgQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOwogc3RydWN0IFNl
cnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnM7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNvbnRl
eHREYXRhOwogc3RydWN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcjsKLWVudW0gY2xh
c3MgV29ya2VyVHlwZTsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6IHVpbnQ4X3Q7CiAKIGNsYXNz
IFNXU2VydmVyV29ya2VyIDogcHVibGljIFJlZkNvdW50ZWQ8U1dTZXJ2ZXJXb3JrZXI+IHsKIHB1
YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxT
Y29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
CmluZGV4IGQ3MDQ4ODY2NDhjMGVmYWE2Yjc4MDg0YzUzODcyMDFjYTJiMWM1NDMuLjJhZTBlMzM4
OTFkYmM4OWYxNDY4N2Q0MTQ4MDJhYWExMmQwZDg0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMTU4LDcyICsxNTgsNyBAQCBSZWZl
cnJlclBvbGljeSBXb3JrbGV0R2xvYmFsU2NvcGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKIHZv
aWQgV29ya2xldEdsb2JhbFNjb3BlOjpmZXRjaEFuZEludm9rZVNjcmlwdChjb25zdCBVUkwmIG1v
ZHVsZVVSTCwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLSAgICBtX3NjcmlwdEZldGNoSm9icy5h
cHBlbmQoeyBtb2R1bGVVUkwsIGNyZWRlbnRpYWxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSB9KTsKLSAgICBwcm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQoKTsKLX0KLQotdm9p
ZCBXb3JrbGV0R2xvYmFsU2NvcGU6OnByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5lZWRlZCgp
Ci17Ci0gICAgaWYgKG1fc2NyaXB0RmV0Y2hKb2JzLmlzRW1wdHkoKSB8fCBtX3NjcmlwdExvYWRl
cikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byYgc2NyaXB0RmV0Y2hKb2IgPSBtX3Njcmlw
dEZldGNoSm9icy5maXJzdCgpOwotCi0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBzY3Jp
cHRGZXRjaEpvYi5tb2R1bGVVUkwgfTsKLQotICAgIEZldGNoT3B0aW9ucyBmZXRjaE9wdGlvbnM7
Ci0gICAgZmV0Y2hPcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM7Ci0gICAg
ZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKLSAgICBm
ZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7Ci0g
ICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gc2NyaXB0RmV0Y2hKb2IuY3JlZGVudGlhbHM7
Ci0jaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBpZiAoaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZSgpKQotICAgICAgICBmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpBdWRpb3dvcmtsZXQ7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5H
X0FQSSkKLSAgICBpZiAoaXNQYWludFdvcmtsZXRHbG9iYWxTY29wZSgpKQotICAgICAgICBmZXRj
aE9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpQYWludHdv
cmtsZXQ7Ci0jZW5kaWYKLQotICAgIGF1dG8gY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1l
bnQgPSBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSA/IENvbnRl
bnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UgOiBDb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudDo6RW5mb3JjZUNoaWxkU3JjRGlyZWN0aXZlOwotCi0gICAgbV9z
Y3JpcHRMb2FkZXIgPSBXb3JrZXJTY3JpcHRMb2FkZXI6OmNyZWF0ZSgpOwotICAgIG1fc2NyaXB0
TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoKnRoaXMsIFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUoZmV0Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZp
Y2VXb3JrZXJzTW9kZTo6QWxsLCAqdGhpcyk7Ci19Ci0KLXZvaWQgV29ya2xldEdsb2JhbFNjb3Bl
OjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpCi17Ci19Ci0KLXZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpub3RpZnlGaW5pc2hlZCgpCi17
Ci0gICAgYXV0byBjb21wbGV0ZWRKb2IgPSBtX3NjcmlwdEZldGNoSm9icy50YWtlRmlyc3QoKTsK
LQotICAgIGlmIChtX3NjcmlwdExvYWRlci0+ZmFpbGVkKCkpIHsKLSAgICAgICAgZGlkQ29tcGxl
dGVTY3JpcHRGZXRjaEpvYihXVEZNb3ZlKGNvbXBsZXRlZEpvYiksIEV4Y2VwdGlvbiB7IEFib3J0
RXJyb3IsIG1ha2VTdHJpbmcoIkZhaWxlZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiAiLCBtX3Nj
cmlwdExvYWRlci0+ZXJyb3IoKS5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKSB9KTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZWFsbHkgYmUgcnVu
IGFzIGEgbW9kdWxlIHNjcmlwdCBidXQgd2UgZG9uJ3Qgc3VwcG9ydCB0aGlzIGluIHdvcmtlcnMg
eWV0LgotICAgIFVSTCBtb2R1bGVVUkwobV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlVVJMKCkpOwot
ICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9ldmFsdWF0ZWRNb2R1bGVzLmFkZChtb2R1bGVVUkwpOwot
ICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkgewotICAgICAgICBOYWtlZFB0cjxKU0M6OkV4
Y2VwdGlvbj4gZXhjZXB0aW9uOwotICAgICAgICBzY3JpcHQoKS0+ZXZhbHVhdGUoU2NyaXB0U291
cmNlQ29kZShtX3NjcmlwdExvYWRlci0+c2NyaXB0KCksIFdURk1vdmUobW9kdWxlVVJMKSksIGV4
Y2VwdGlvbik7Ci0gICAgICAgIGlmIChleGNlcHRpb24pCi0gICAgICAgICAgICBzY3JpcHQoKS0+
c2V0RXhjZXB0aW9uKGV4Y2VwdGlvbik7Ci0gICAgfQotCi0gICAgZGlkQ29tcGxldGVTY3JpcHRG
ZXRjaEpvYihXVEZNb3ZlKGNvbXBsZXRlZEpvYiksIHsgfSk7Ci19Ci0KLXZvaWQgV29ya2xldEds
b2JhbFNjb3BlOjpkaWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKFNjcmlwdEZldGNoSm9iJiYgam9i
LCBPcHRpb25hbDxFeGNlcHRpb24+IHJlc3VsdCkKLXsKLSAgICBtX3NjcmlwdExvYWRlciA9IG51
bGxwdHI7Ci0KLSAgICBqb2IuY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKLQot
ICAgIHByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5lZWRlZCgpOworICAgIHNjcmlwdCgpLT5s
b2FkQW5kRXZhbHVhdGVNb2R1bGUobW9kdWxlVVJMLCBjcmVkZW50aWFscywgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCiBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlciYgV29ya2xl
dEdsb2JhbFNjb3BlOjptZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IGYyMzIwZjBkMTMwMjVjZWFi
M2JhYzU2YTQ1ZWMyZDFkZDNmYjZjYzAuLmZlNTRiODUzMjU2NzkyNTgzZGVkYTA1NWE0MzNhMjU2
NTRlODY3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9i
YWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29w
ZS5oCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2lu
Y2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlckNs
aWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CkBAIC01NCw3ICs1Myw3IEBAIHN0cnVjdCBXb3JrbGV0UGFyYW1ldGVy
czsKIGVudW0gV29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllclR5cGUgeyB9OwogdXNpbmcgV29y
a2xldEdsb2JhbFNjb3BlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8V29ya2xldEdsb2Jh
bFNjb3BlSWRlbnRpZmllclR5cGU+OwogCi1jbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJs
aWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUsIHB1YmxpYyBXb3JrZXJTY3JpcHRMb2FkZXJD
bGllbnQgeworY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdvcmtsZXRHbG9iYWxT
Y29wZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V29ya2xldEdsb2JhbFNjb3BlKCk7CkBAIC0x
MTEsMTAgKzExMCw2IEBAIGNsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZSwgcHVibGljIFdvcmtlclNjcmlwCiAgICAgdm9pZCBhZGRNZXNz
YWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiwgdW5zaWduZWQsIHVuc2lnbmVkLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3Rh
Y2s+JiYsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBsb25nKSBmaW5hbDsKICAgICB2
b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiwgdW5zaWduZWQgbG9uZykgZmluYWw7CiAKLSAgICAvLyBXb3JrZXJTY3JpcHRMb2Fk
ZXJDbGllbnQuCi0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7Ci0gICAgdm9pZCBub3RpZnlG
aW5pc2hlZCgpIGZpbmFsOwotCiAgICAgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSBm
aW5hbCB7IHJldHVybiB0aGlzOyB9CiAKICNpZiBFTkFCTEUoV0VCX0NSWVBUTykKQEAgLTEyNSwx
NSArMTIwLDYgQEAgY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlLCBwdWJsaWMgV29ya2VyU2NyaXAKICAgICBTdHJpbmcgdXNlckFnZW50
KGNvbnN0IFVSTCYpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNl
dHRpbmdzVmFsdWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQog
Ci0gICAgc3RydWN0IFNjcmlwdEZldGNoSm9iIHsKLSAgICAgICAgVVJMIG1vZHVsZVVSTDsKLSAg
ICAgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7Ci0gICAgICAgIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4gY29tcGxldGlvbkhhbmRs
ZXI7Ci0gICAgfTsKLQotICAgIHZvaWQgcHJvY2Vzc05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVk
KCk7Ci0gICAgdm9pZCBkaWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKFNjcmlwdEZldGNoSm9iJiYs
IE9wdGlvbmFsPEV4Y2VwdGlvbj4pOwotCiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVu
dDsKIAogICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gbV90b3BPcmlnaW47CkBAIC0xNDQsOSArMTMw
LDYgQEAgY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLCBwdWJsaWMgV29ya2VyU2NyaXAKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3Jr
ZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcj4gbV9tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
cjsKIAotICAgIFJlZlB0cjxXb3JrZXJTY3JpcHRMb2FkZXI+IG1fc2NyaXB0TG9hZGVyOwotICAg
IERlcXVlPFNjcmlwdEZldGNoSm9iPiBtX3NjcmlwdEZldGNoSm9iczsKLSAgICBIYXNoU2V0PFVS
TD4gbV9ldmFsdWF0ZWRNb2R1bGVzOwogICAgIFNldHRpbmdzOjpWYWx1ZXMgbV9zZXR0aW5nc1Zh
bHVlczsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAxYWRjMjhhNmQ3MWVkOGEzM2ZmZGY5ZGFkMTc4YTUyYTcwNDg0
ZDJjLi42ZTYzMjBhZDhjNWM4NDY3MTAwM2U5ZmNkOGYwODFiNTQ3ZjMwYTI2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMjEtMDItMTEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBKUyBNb2R1bGVzIGluIFdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDg2MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiB3ZWJhdWRpby9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZhaWx1cmUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYmF1ZGlvL3dvcmtsZXQtY3Jhc2gtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAy
LTExICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMjcyMjkzKSBXZWJHTCAxLjAuMiB0ZXN0IGV4cGVjdGF0aW9ucyBzYXkg
SFRUUFMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDUxZjlkNmQyYzRhMDBjZmYz
NTNlMmVhZTUwZTY3Mzc2NmRjZDViOWEuLjRlNDBlZWQ2OWYxNmM3ZWFkOTM1NDM5YjUzZjA0NjYy
YmRiZjFlNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBA
CisyMDIxLTAyLTExICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAg
ICAgSlMgTW9kdWxlcyBpbiBXb3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRp
dmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tz
L2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jh
c2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90
aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1
YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9y
dC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxw
aGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29y
a2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRl
cmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBv
cnQtY3NwLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLmh0bWw6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1lcnJv
ci1mYWlsdXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQt
Y3NwLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJs
LXJlZGlyZWN0ZWQtd29ya2VyLW9yaWdpbi1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDItMTEgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cmV2ZXJ0aW5nIHIyNzA1NzguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3OWU5MGE5NmYwY2RiNmNl
OTEwZjJiY2U1Yzc3ODYyMzlkZjlkOTBiLi42MWFkMWQ1YmE2M2I1NmY0MjQ0ZThkZTNiYmExMDVi
OWMyNmE0OTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY0MCw3ICs2NDAsNiBAQCBmYXN0L2Rv
bS9jb25uZWN0ZWQtc3ViZnJhbWUtY291bnRlci1vdmVyZmxvdy5odG1sIFsgU2xvdyBdCiBbIERl
YnVnIF0gaHR0cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLmh0bWwgWyBTbG93
IF0KIAogIyBTa2lwIHdvcmtlcnMgdGVzdHMgdGhhdCBhcmUgdGltaW5nIG91dCBvciBhcmUgU2hh
cmVkV29ya2VyIHJlbGF0ZWQgb25seQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmlnaW4uaHRtbCBbIFNraXAgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2RhdGEtdXJsLXNoYXJlZC5odG1s
IFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvZXhhbXBs
ZXMvb25jb25uZWN0LmFueS5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvZXhhbXBsZXMvb25jb25uZWN0LmFueS53b3JrZXIuaHRtbCBbIFNraXAg
XQpAQCAtNjYzLDcgKzY2Miw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9TaGFyZWRXb3JrZXItcmVwbGFjZS1FdmVudEhhbmRsZXIuYW55Lmh0CiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyLXJlcGxhY2UtRXZlbnRI
YW5kbGVyLmFueS53b3JrZXIuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL1NoYXJlZFdvcmtlci1zY3JpcHQtZXJyb3IuaHRtbCBbIFNraXAgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL1NoYXJlZFdvcmtlci1zaW1w
bGUuaHRtbCBbIFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJyZXIuaHRtbCBbIFNraXAgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVk
LXdvcmtlci1vcHRpb25zLWNyZWRlbnRpYWxzLmh0bWwgWyBTa2lwIF0KIAogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9TaGFyZWRXb3JrZXIgWyBT
a2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24t
bW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50
YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNDkyNjliM2I1MGI5MTc1Y2I2MmVj
YTMxMmU1ODZiM2IxNjYyYTI1OS4uMmNhZTVmN2UzNWEzMmZlY2ViMjY4ZjI5MDAwMGU0ZTU1NTZj
Njg2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1t
b2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50
ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKLUZBSUwg
Tm9uLW9iamVjdDogbnVsbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL251bGwu
anNvbicuIgotRkFJTCBOb24tb2JqZWN0OiB0cnVlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBt
b2R1bGUgJy4vdHJ1ZS5qc29uJy4iCi1GQUlMIE5vbi1vYmplY3Q6IGZhbHNlIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBu
b3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZmFsc2UuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBz
dHJpbmcgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9zdHJpbmcuanNvbicuIgot
RkFJTCBOb24tb2JqZWN0OiBhcnJheSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcu
L2FycmF5Lmpzb24nLiIKK0ZBSUwgTm9uLW9iamVjdDogbnVsbCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlv
bi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1v
YmplY3Q6IHRydWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2
YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiBmYWxzZSBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBs
aWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlM
IE5vbi1vYmplY3Q6IHN0cmluZyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2
YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IGFycmF5IHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogJ2FwcGxpY2F0aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBl
LiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90
YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3Mv
Y2hlY2twb2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3Rl
ZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uZjY4
Y2M3M2I0ZDY3NGM1NGRmYWZlNTIyMTJiNjQzYzQwMzBmZDQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdv
cmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29y
a2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBA
QAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorRkFJTCBQcm9t
aXNlIHJlc29sdmVkIGR1cmluZyAjcmVwb3J0LXRoZS1lcnJvciBhc3NlcnRfYXJyYXlfZXF1YWxz
OiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgWyJoYW5kbGVyIDEiLCAiaGFuZGxlciAy
IiwgImhhbmRsZXIgMSBwcm9taXNlIiwgImhhbmRsZXIgMiBwcm9taXNlIl0gbGVuZ3RoIDQsIGdv
dCBbXSBsZW5ndGggMAorUEFTUyBQcm9taXNlIHJlc29sdmVkIGR1cmluZyBldmVudCBoYW5kbGVy
cyBvdGhlciB0aGFuIGVycm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1w
b3J0U2NyaXB0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlw
dHMtZXhwZWN0ZWQudHh0CmluZGV4IDUxZDYxMDBlNjEyMmE5N2MzNjRiM2NlYjFkN2ZkMDdlMGUx
NTYxMTcuLmE4MDUwYzA3OGNmOGI4OGQ1NjhhZmZlMGQ1NWNjMzE5MGMzNjU0N2EgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9y
dC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2Fs
cGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsx
LDYgQEAKIAotRkFJTCBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNj
cmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2ltcG9ydC5qcz9waXBl
PWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9cmVsYXRpdmUtY3Jv
c3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKScuIgotRkFJTCBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9t
IHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9k
dWxlICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlw
ZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLWNy
b3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCknLiIKLVBBU1MgUmVsYXRpdmUgVVJMLWxpa2UgZnJv
bSBjcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpCi1GQUlMIEFic29sdXRlIFVSTC1saWtlIGZy
b20gY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUg
bW9kdWxlICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/
cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRl
LWNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCknLiIKK1BBU1MgUmVsYXRpdmUgVVJMLWxpa2Ug
ZnJvbSBzYW1lLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2Ug
ZnJvbSBzYW1lLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKK0ZBSUwgUmVsYXRpdmUgVVJMLWxpa2Ug
ZnJvbSBjcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIGFzc2VydF9lcXVhbHM6IFJlbGF0aXZl
IFVSTC1saWtlIHNwZWNpZmllciByZXNvbHV0aW9uIHNob3VsZCBmYWlsIGV4cGVjdGVkICIodW5y
ZWFjaGVkKSIgYnV0IGdvdCAiZ2FtbWEvaW1wb3J0LmpzIgorUEFTUyBBYnNvbHV0ZSBVUkwtbGlr
ZSBmcm9tIGNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jh
c2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWIt
ZXhwZWN0ZWQudHh0CmluZGV4IDg2NmViYjIyN2FkMjZhYWNlMWE1NzhiYWVhNmE4MWRjMGU2ZTc3
ZjAuLjVlNzA2MzQ5MGUyZGZmZWNlODVlYTc2NWFlYmRkZTRiMTZlYjBmYzMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9h
bHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwt
d29ya2VyLnN1Yi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgUmVsYXRpdmUg
VVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9y
dCB0aGUgbW9kdWxlICcuL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxv
dy1PcmlnaW4sKikmbGFiZWw9cmVsYXRpdmUtd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQnLiIKLUZB
SUwgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdCBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291
bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9y
dC9nYW1tYS9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu
LCopJmxhYmVsPWFic29sdXRlLXdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0Jy4iCitQQVNTIFJlbGF0
aXZlIFVSTC1saWtlIGZyb20gd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQKK1BBU1MgQWJzb2x1dGUg
VVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5v
dGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IDg5MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLjJmMTJhMjM0
MmZhZDIyNGUzYTE4YTZmYjVkODQ4MzI1ZWE2Nzc2ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13
b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC0xLDQgKzEsMyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwK
LQorUEFTUyBUZXN0IGV2YWx1YXRpb24gb3JkZXIgb2YgbW9kdWxlcwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0x
LXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3
NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uYjg2MWY3MDFmOTQ4ZmIxMzI3Njkz
MjJjMzgzNjZmMmQxMzhmMDRlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9y
ZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJv
ciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK0ZBSUwgVGVzdCBldmFsdWF0aW9uIG9yZGVy
IG9mIG1vZHVsZXMgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVk
IGFycmF5IFsic3RlcC0xLTEiLCAic3RlcC0xLTIiLCAiZ2xvYmFsLWVycm9yIiwgImVycm9yIiwg
Im1pY3JvdGFzayJdIGxlbmd0aCA1LCBnb3QgWyJzdGVwLTEtMSIsICJzdGVwLTEtMiIsICJtaWNy
b3Rhc2siXSBsZW5ndGggMwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24t
b3JkZXItMi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJi
Zjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi5jMWQzOGJkZTUwYzU5ZTVkNTk0MTczZDk2ZjljZDE5
ZWIxMDdjOWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVy
LTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3Mg
RXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitGQUlMIFRlc3QgZXZhbHVhdGlvbiBv
cmRlciBvZiBtb2R1bGVzIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBl
Y3RlZCBhcnJheSBbInN0ZXAtMi4yLTEiLCAic3RlcC0yLjItMiIsICJnbG9iYWwtZXJyb3IiLCAi
ZXJyb3IiLCAibWljcm90YXNrLTIuMiJdIGxlbmd0aCA1LCBnb3QgWyJzdGVwLTIuMi0xIiwgInN0
ZXAtMi4yLTIiLCAibWljcm90YXNrLTIuMiJdIGxlbmd0aCAzCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHlu
YW1pYy13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQK
aW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uMmYxMmEyMzQy
ZmFkMjI0ZTNhMThhNmZiNWQ4NDgzMjVlYTY3NzZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdv
cmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAot
CitQQVNTIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IDEyZDk0YTkxZWYxZjhhYjBhMTg3Yzc0OWIwZGRlYzY5NmQxMTg4ZTcuLmI0ZDY4
YWYwNTZlZWY2MjJhMzNkNTRmMDc2ZjM4MWQ0ZTFiYjI5YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMiw4ICsyLDggQEAKIEZBSUwgU3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJv
cjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUg
YXJndW1lbnQuIgogRkFJTCBOZXN0ZWQgc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJv
cjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUg
YXJndW1lbnQuIgogRkFJTCBTdGF0aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LiBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhw
ZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIER5bmFtaWMgaW1wb3J0LiBhc3NlcnRf
YXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJv
cjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5q
cycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LiBhc3NlcnRf
YXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJv
cjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1keW5hbWljLWltcG9y
dC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlMIER5bmFtaWMgaW1wb3J0IGFuZCB0
aGVuIHN0YXRpYyBpbXBvcnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQg
dG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUg
Jy4vZXhwb3J0LW9uLXN0YXRpYy1pbXBvcnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQot
RkFJTCBldmFsKGltcG9ydCgpKS4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxl
ZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVs
ZSAnLi9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5CitQQVNTIER5
bmFtaWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMg
aW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBpbXBvcnQuCitQQVNTIGV2YWwoaW1wb3J0KCkpLgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNl
dXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGRkOWFm
MzhmZjA5ZmJlYzFmYWMwYjhmNWVhOWJhZDZlMzE2MzY0OWQuLjUxZWIzNjYzOGMxY2E3ZDA2MGI3
Njc1OTI2ZmNjNzBjNWJmMDc2ZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1
bGV3b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhF
cnJvcjogVW5leHBlY3RlZCBpZGVudGlmaWVyICdyJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFj
dGx5IG9uZSBhcmd1bWVudC4KIAotRkFJTCBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdv
cmtlcnM6IGltcG9ydCBhc3NlcnRfdW5yZWFjaGVkOiBHb3QgZXJyb3IgZXZlbnQgUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlCitQQVNTIEJhc2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2Vy
czogaW1wb3J0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVk
LnR4dAppbmRleCBhYjVhN2ZiODkwMjBmMjlmZDg5M2E3NTY4MGZmZTE3ZDNkMzUwZjdjLi5hYjUz
YjgwNTk5YWUwMTk1NzgwODVlZTQ0YWFlZmE0Yzc5NTUyNjg0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBo
YS9pbXBvcnRTY3JpcHRzLWluLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1w
b3J0U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlM
IGltcG9ydFNjcmlwdHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImdhbW1hL3NjcmlwdC5qcyIg
YnV0IGdvdCAiYmV0YS9zY3JpcHQuanMiCitQQVNTIGltcG9ydFNjcmlwdHMKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jh
c2V1cmwvYWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94
aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4M2YzNjdmMmNmM2E2NmM2NGE2
MjY0Mjk0NjU2ZDVlODgxZDFjMTFjLi4yOGIwY2I0MDAxMzkyZDA4ODdhNGZlYmU2ODFjMWUxNTFk
MGRmMThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
MSwzICsxLDMgQEAKIAotRkFJTCBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6
IFhIUiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZ2FtbWFcbiIgYnV0IGdvdCAiYmV0YVxuIgor
UEFTUyBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IFhIUgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
YmFzZXVybC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1p
bi13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGQ2YjA4ZWVkYWU2ZjY5NmM3YTRiZmE2NTVlMTNi
NWVkNDYwN2VhMDEuLmVhMTQ1NGQ5YjNmMjBmODVkOTAxNmM1MDZhMTU0NmFmNjE3ODQyZDAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2Fs
cGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIHho
ci13b3JrZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImdhbW1hXG4iIGJ1dCBnb3QgImJldGFc
biIKK1BBU1MgeGhyLXdvcmtlcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9y
aWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50
eHQKaW5kZXggODMxZjBjNThjNjk0YzJkNGZlYmQ2ZDhkMGFmMzA3YjEwOTQ0MmE2ZS4uZDU1NWVl
N2NmM2ZjNzJlZmI4MmRmOWRiN2RhZDM2N2Y5YWI3ZmZiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9X
b3JrZXIvc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUt
b3JpZ2luLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSwxMSBAQAogCi1IYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyB1bnN1cHBvcnRlZF9zY2hlbWUKIEZBSUwg
ZGF0YV91cmwgVGhlIG9wZXJhdGlvbiBpcyBpbnNlY3VyZS4KLVRJTUVPVVQgYWJvdXRfYmxhbmsg
VGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgZXhhbXBsZV9pbnZhbGlkIFRlc3QgdGltZWQgb3V0Ci1U
SU1FT1VUIHBvcnRfODEgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgaHR0cHNfcG9ydF84MCBUZXN0
IHRpbWVkIG91dAotVElNRU9VVCBodHRwc19wb3J0XzgwMDAgVGVzdCB0aW1lZCBvdXQKLVRJTUVP
VVQgaHR0cF9wb3N0XzgwMTIgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgamF2YXNjcmlwdF91cmwg
VGVzdCB0aW1lZCBvdXQKK1BBU1MgYWJvdXRfYmxhbmsKK1BBU1MgZXhhbXBsZV9pbnZhbGlkCitQ
QVNTIHBvcnRfODEKK1BBU1MgaHR0cHNfcG9ydF84MAorUEFTUyBodHRwc19wb3J0XzgwMDAKK1BB
U1MgaHR0cF9wb3N0XzgwMTIKK1BBU1MgamF2YXNjcmlwdF91cmwKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFj
ZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFj
ZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0CmluZGV4
IGYxNzQxZjlkOGJmMDcwMzI3MGQyZTM3NjJkYmNiZTI2YzBiOTAwNTkuLjNiMGRmYjM1ZTUxY2Qx
YTg1NDU1MzAxOWMwZTQwM2RiZTJmMWQzM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2Jh
bFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJH
bG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBA
CiAKLUZBSUwgV29ya2VyTG9jYXRpb24gd2l0aCByZWRpcmVjdHM6IGNsYXNzaWMgZGVkaWNhdGVk
IHdvcmtlcnMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93
b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcG9zdC1sb2NhdGlv
bi1tZW1iZXJzLmpzP2EiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2lu
dGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vaGVscGVyLXJlZGlyZWN0LnB5P2Zh
aWwiCitQQVNTIFdvcmtlckxvY2F0aW9uIHdpdGggcmVkaXJlY3RzOiBjbGFzc2ljIGRlZGljYXRl
ZCB3b3JrZXJzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9u
L3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9s
b2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0CmluZGV4IGRjMmUyZTIwN2RiMDAx
ZWU3MGU3MzMwN2QyN2JiMzM1NzIwZmQ1NTkuLmIzYmY4MWVlODY4MWI5ZGMwODBmNTgwMjcxZThi
OGYzOTA5NjU0OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9u
L3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2Nv
cGUvbG9jYXRpb24vcmVkaXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAK
IAotRkFJTCBXb3JrZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3
b3JrZXJzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29y
a2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3Bvc3QtbG9jYXRpb24t
bWVtYmVycy5qcz9hIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRl
cmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL2hlbHBlci1yZWRpcmVjdC5weT9mYWls
IgorUEFTUyBXb3JrZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3
b3JrZXJzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJs
LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5h
bnktZXhwZWN0ZWQudHh0CmluZGV4IDIwYWMxN2Q1NjNjNGIzYTQ2MWYwY2FhZmJlYWVlYmQ3MTNm
OTcwODEuLmRjY2VkY2NkMzY4ZTFmZjE3YjFkZDEzNmU0NTNmZWM0ZmUxMGJjODMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4
dApAQCAtMSwxOCArMSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVz
L3Jlc291cmNlcy9zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMg
ZXhhY3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4
cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1
bGVzL3Jlc291cmNlcy9uZXN0ZWQtc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2Fs
bCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhF
cnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dv
cmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvc3RhdGljLWltcG9ydC1hbmQtdGhlbi1keW5hbWljLWlt
cG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50
LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJh
bCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1p
Yy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1
bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxp
dGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25l
c3RlZC1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0
bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9y
ZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtYW5kLXRoZW4tc3RhdGljLWltcG9ydC13b3JrZXIuanMi
LiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNT
QUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2Fs
aG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXZhbC1keW5hbWljLWltcG9ydC13
b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgogCi1I
YXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0
cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291
cmNlcy9keW5hbWljLWltcG9ydC1hbmQtdGhlbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi0KLUZBSUwgU3RhdGljIGlt
cG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50
YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgw
MC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBOZXN0ZWQgc3Rh
dGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhv
c3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1zdGF0aWMtaW1wb3J0LXdv
cmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZB
SUwgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBz
dHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL3N0YXRpYy1pbXBvcnQtYW5kLXRoZW4tZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIu
IGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWlj
IGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJT
eW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6
ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wi
LiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVk
IGR5bmFtaWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xv
Y2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvbmVzdGVkLWR5bmFtaWMtaW1w
b3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50
LiIKLUZBSUwgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LWFuZC10aGVuLXN0YXRpYy1pbXBvcnQtd29ya2Vy
LmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBl
dmFsKGltcG9ydCgpKS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2Nh
bGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V2YWwtZHluYW1pYy1pbXBvcnQt
d29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgor
UEFTUyBTdGF0aWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BBU1MgU3Rh
dGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQu
CitQQVNTIE5lc3RlZCBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQgYW5kIHRo
ZW4gc3RhdGljIGltcG9ydC4KK1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC1jc3AtZXhwZWN0ZWQudHh0CmluZGV4IDFkYTQ2YjkyNmJlMDg5NmVlOGY3
NWE3OGRjYWU0ZjI2OWIwNTA5MmIuLjIzOWNjOWNlMTUzMDFmN2VlZDgzZDVlYjIyMzBhOWRlMjk0
ZWEyZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dApA
QCAtMSwxMyArMSwyMiBAQAogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1T
ZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBV
bnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3Jj
Jy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhv
c3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5q
cworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6
OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwor
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0
My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09O
U09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0
aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1v
bi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1T
ZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29n
bml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAor
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0
My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogCiBQ
QVNTIHdvcmtlci1zcmMgJ3NlbGYnIGRpcmVjdGl2ZSBzaG91bGQgZGlzYWxsb3cgY3Jvc3Mgb3Jp
Z2luIHN0YXRpYyBpbXBvcnQuCiBGQUlMIHdvcmtlci1zcmMgKiBkaXJlY3RpdmUgc2hvdWxkIGFs
bG93IGNyb3NzIG9yaWdpbiBzdGF0aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBl
Y3RlZCBwcm9wZXJ0eSAwIHRvIGJlICJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiIGJ1dCBnb3Qg
IkVSUk9SIiAoZXhwZWN0ZWQgYXJyYXkgWyJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiXSBnb3Qg
WyJFUlJPUiJdKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtZmFpbHVy
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVj
dGVkLnR4dAppbmRleCA5NWM2ZDE1ZGY0NGUxOGEzNWRmZWIwZmEzOWM4ZDM4NDQyMGMyYzEzLi5l
OTU1NzhlNzFiMWM1MGE0ZTA0NzFiMDM3MTU0YjM4NmIzN2FlZDc0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAK
LUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwg
Jy4vbm9uLWV4aXN0ZW50LXNjcmlwdC5qcycuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBv
bmUgYXJndW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQg
ZmFpbGVkLgogCi1GQUlMIGltcG9ydFNjcmlwdHMoKSBvbiBtb2R1bGUgd29ya2VyIHNob3VsZCB0
aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJUeXBlRXJyb3IiIGJ1
dCBnb3QgIkxPQURFRCIKK1BBU1MgaW1wb3J0U2NyaXB0cygpIG9uIG1vZHVsZSB3b3JrZXIgc2hv
dWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIFBBU1MgV29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igbm9u
LWV4aXN0ZW50IHNjcmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KIFBBU1MgU3Rh
dGljIGltcG9ydCBmb3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJy
b3JFdmVudC4KLUZBSUwgRHluYW1pYyBpbXBvcnQgZm9yIG5vbi1leGlzdGVudCBzY3JpcHQgc2hv
dWxkIHRocm93IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlR5cGVFcnJv
ciIgYnV0IGdvdCAiRXJyb3IiCitQQVNTIER5bmFtaWMgaW1wb3J0IGZvciBub24tZXhpc3RlbnQg
c2NyaXB0IHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rp
b24gZm9yIGFuIGludmFsaWQgVVJMIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdv
cmtlciBjb25zdHJ1Y3Rpb24gZm9yIGEgZmlsZSBVUkwgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlv
bi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAppbmRl
eCBkNTgwNjIwNDFjM2U2OTUxNWI4MTVlMDJkN2MzODY4NGQ3N2M3NmI3Li43NzI5MWJhYTFhNDE4
NGJlYmU3YWQ3YjVkOWYxMTljNzFhNzhkZTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWlt
cG9ydC1tZXRhLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDUgQEAKLUNPTlNPTEUgTUVTU0FHRTog
U3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCiAK
LUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IGltcG9ydC5tZXRh
IGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCi0KLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51
cmwgb24gdGhlIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5
IHZhbGlkIGluc2lkZSBtb2R1bGVzLiIKLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhl
IGltcG9ydGVkIG1vZHVsZSBzY3JpcHQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNj
cmlwdCB3aXRoIGEgZnJhZ21lbnQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorUEFTUyBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgdG9wLWxldmVsIG1vZHVsZSBzY3Jp
cHQuCitQQVNTIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2Ny
aXB0LgorUEFTUyBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNj
cmlwdCB3aXRoIGEgZnJhZ21lbnQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LW1ldGEuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRtbApp
bmRleCBjZmY4ZTkxNDg4ZTgyMzlhYmUyMTM2MTlkMTJkNWE2MDMwNzJmYmVhLi5lZGUyNjkyZTFj
NjM0MWJlZmZjOTAxMGM0MWI4ZjRjZmU0MzgzMjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC1tZXRhLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQt
bWV0YS5odG1sCkBAIC01Myw3ICs1Myw3IEBACiAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgn
Li8nICsgc2NyaXB0X3VybCArICcjMScpOwogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB3b3JrZXIub25tZXNzYWdlID0gcmVzb2x2ZSk7CiAgICAgICB9KQotICAgICAgLnRo
ZW4obXNnX2V2ZW50ID0+IGFzc2VydF90cnVlKG1zZ19ldmVudC5kYXRhLmVuZHNXaXRoKHNjcmlw
dF91cmwpKSk7CisgICAgICAudGhlbihtc2dfZXZlbnQgPT4gYXNzZXJ0X3RydWUobXNnX2V2ZW50
LmRhdGEuZW5kc1dpdGgoc2NyaXB0X3VybCArICcjMScpKSk7CiB9LCAnVGVzdCBpbXBvcnQubWV0
YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQgd2l0aCBhIGZyYWdtZW50LicpOwog
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVy
cmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4
cGVjdGVkLnR4dAppbmRleCA2ZGM0MmMxY2ZkMzM0OGFmZGQxZGZkM2IxMGE1MDQ3MDU1MzAxOTZh
Li5mZTFiOWQ5M2MwODAxMWI1MGU5NDFmNGUxMjM2MDY3YWJiZDNmMjNlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxl
cy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMv
ZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJyZXItZXhwZWN0ZWQudHh0CkBAIC0xLDE5ICsx
LDIzIEBACi0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3Jr
ZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtl
cnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vy
cy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJz
L21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFj
Y2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMv
bW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNj
ZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9t
b2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQogCiBQQVNTIFNhbWUt
b3JpZ2luIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0IGxvYWRpbmcgd2l0aCAibm8tcmVmZXJyZXIi
IHJlZmVycmVyIHBvbGljeQogUEFTUyBTYW1lLW9yaWdpbiB0b3AtbGV2ZWwgbW9kdWxlIHNjcmlw
dCBsb2FkaW5nIHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5CiBQQVNTIFNhbWUtb3JpZ2lu
IHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0IGxvYWRpbmcgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVy
cmVyIHBvbGljeQotRkFJTCBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVy
cmVyIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLUZBSUwgU2FtZS1vcmln
aW4gc3RhdGljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBU
eXBlIGVycm9yIgotRkFJTCBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3Jp
Z2luIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK1BBU1MgU2FtZS1vcmln
aW4gc3RhdGljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LgorUEFT
UyBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
LgorUEFTUyBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZl
cnJlciBwb2xpY3kuCiBGQUlMIENyb3NzLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJl
ZmVycmVyIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKIEZBSUwgQ3Jvc3Mt
b3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogVHlwZSBlcnJvciIKIEZBSUwgQ3Jvc3Mtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAic2Ft
ZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotVElNRU9VVCBT
YW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9s
aWN5LiBUZXN0IHRpbWVkIG91dAotTk9UUlVOIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdp
dGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgotTk9UUlVOIFNhbWUtb3JpZ2luIGR5bmFtaWMg
aW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gQ3Jvc3Mt
b3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3ku
Ci1OT1RSVU4gQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJy
ZXIgcG9saWN5LgotTk9UUlVOIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJzYW1l
LW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgorRkFJTCBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9y
dCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jl
c291cmNlcy9keW5hbWljLWltcG9ydC1zYW1lLW9yaWdpbi1yZWZlcnJlci1jaGVja2VyLXdvcmtl
ci5qcyIKK0ZBSUwgU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZl
cnJlciBwb2xpY3kuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4
MDAvIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291
cmNlcy9keW5hbWljLWltcG9ydC1zYW1lLW9yaWdpbi1yZWZlcnJlci1jaGVja2VyLXdvcmtlci5q
cyIKK1BBU1MgU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJl
ZmVycmVyIHBvbGljeS4KK0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm5v
LXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgQ3Jv
c3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IFR5cGUgZXJyb3IiCitGQUlMIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRo
ICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxl
cy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGEyM2E1NTc1
ZGI0Mjc0MjdmODViZDZiNjM1NGRlODgzODMxZmUyYjQuLmRjY2VkY2NkMzY4ZTFmZjE3YjFkZDEz
NmU0NTNmZWM0ZmUxMGJjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0
LmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4
cGVjdGVkLnR4dApAQCAtMSwxNCArMSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBh
cmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4g
JyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBN
RVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4
cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNz
YWdlID0gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBl
Y3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotCi1GQUlMIFN0YXRpYyBpbXBvcnQuIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50
LiIKLUZBSUwgTmVzdGVkIHN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBp
bXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgU3RhdGljIGlt
cG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGlt
cG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWlj
IGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24t
bG9hZC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlMIE5lc3RlZCBkeW5hbWljIGlt
cG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWlj
IGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24t
ZHluYW1pYy1pbXBvcnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBEeW5hbWlj
IGltcG9ydCBhbmQgdGhlbiBzdGF0aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1
ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9y
dCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1zdGF0aWMtaW1wb3J0LXNjcmlwdC5qcycuIiwgZXhw
ZWN0ZWQgYXJyYXkKLUZBSUwgZXZhbChpbXBvcnQoKSkuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZh
bHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1w
b3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBh
cnJheQorUEFTUyBTdGF0aWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BB
U1MgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBp
bXBvcnQuCitQQVNTIE5lc3RlZCBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQg
YW5kIHRoZW4gc3RhdGljIGltcG9ydC4KK1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2Rl
ZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dAppbmRleCBkYTBlNGViNjc1
OGQxNGEzN2EzOThkMGI2ZmM3MWFkMzg3NmJkMjZiLi4xZmMwYzY2ZmRmNzI0YzJhYTNiOTEwNjk4
MGJmYmU3ZTk4OGY5NzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMt
dHlwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUt
ZXhwZWN0ZWQudHh0CkBAIC0yLDExICsyLDYgQEAKIFBBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0
aW9uIHdpdGggdGhlIGRlZmF1bHQgd29ya2VyIHR5cGUuCiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0
cnVjdGlvbiB3aXRoIHRoZSAiY2xhc3NpYyIgd29ya2VyIHR5cGUuCiBQQVNTIFRlc3Qgd29ya2Vy
IGNvbnN0cnVjdGlvbiB3aXRoIHRoZSAibW9kdWxlIiB3b3JrZXIgdHlwZS4KLUZBSUwgVGVzdCB3
b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gZW1wdHkgd29ya2VyIHR5cGUuIGFzc2VydF90aHJv
d3NfanM6IFdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiBlbXB0eSB0eXBlIHNob3VsZCB0aHJv
dyBhbiBleGNlcHRpb24gZnVuY3Rpb24gIigpID0+IHsKLSAgICAgICAgbmV3IFdvcmtlcigncmVz
b3VyY2VzL3Bvc3QtbWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcycsIHsgdHlwZTogJycgfSk7Ci0g
ICAgICB9IiBkaWQgbm90IHRocm93Ci1GQUlMIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRo
IGFuIHVua25vd24gd29ya2VyIHR5cGUuIGFzc2VydF90aHJvd3NfanM6IFdvcmtlciBjb25zdHJ1
Y3Rpb24gd2l0aCBhbiB1bmtub3duIHR5cGUgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiBmdW5j
dGlvbiAiKCkgPT4gewotICAgICAgICBuZXcgV29ya2VyKCdyZXNvdXJjZXMvcG9zdC1tZXNzYWdl
LW9uLWxvYWQtd29ya2VyLmpzJywKLSAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICd1bmtub3du
JyB9KTsKLSAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0
aW9uIHdpdGggYW4gZW1wdHkgd29ya2VyIHR5cGUuCitQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVj
dGlvbiB3aXRoIGFuIHVua25vd24gd29ya2VyIHR5cGUuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQudHh0CmluZGV4IGU4ZWI1NDBi
ZDMzOTI0MDBhOGRiZmQ5Mzg2NDhhNjQ5MjM5YzBkOWUuLmQxYTUwZjdlYTNjZDZkYzI5OGVmNzU0
MTQ3NzYyYzY5YzU3ZDczYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2Ut
ZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJz
ZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDE0IEBACi1DT05TT0xFIE1F
U1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhw
ZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KK0NPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6
IFVuZXhwZWN0ZWQgdG9rZW4gJzsnCitDT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4
cGVjdGVkIHRva2VuICc7JwogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IEVycm9y
OiBhc3NlcnRfaW1wbGVtZW50czogU3RhdGljIGltcG9ydCBtdXN0IGJlIHN1cHBvcnRlZCBvbiBt
b2R1bGUgZGVkaWNhdGVkIHdvcmtlciB0byBydW4gdGhpcyB0ZXN0LiB1bmRlZmluZWQKLQotTk9U
UlVOIE1vZHVsZSB3b3JrZXIgY29uc3RydWN0aW9uIGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJy
b3Igc2hvdWxkIGRpc3BhdGNoIGFuIGV2ZW50IG5hbWVkIGVycm9yLgotTk9UUlVOIFN0YXRpYyBp
bXBvcnQgb24gbW9kdWxlIHdvcmtlciBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNob3Vs
ZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4KK0ZBSUwgTW9kdWxlIHdvcmtlciBjb25z
dHJ1Y3Rpb24gZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJvciBzaG91bGQgZGlzcGF0Y2ggYW4g
ZXZlbnQgbmFtZWQgZXJyb3IuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZ1bmN0aW9uICJmdW5j
dGlvbiBFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiBidXQgZ290IGZ1bmN0aW9uICJm
dW5jdGlvbiBFcnJvckV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iCitGQUlMIFN0YXRp
YyBpbXBvcnQgb24gbW9kdWxlIHdvcmtlciBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNo
b3VsZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iIGJ1
dCBnb3QgZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yRXZlbnQoKSB7CisgICAgW25hdGl2ZSBjb2Rl
XQorfSIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhw
ZWN0ZWQudHh0CmluZGV4IDYzOTg0NzEyMTQ1OWE3YWIzN2I5ZjA5YTY4YmE2NGVhOGE5ZWQ1N2Mu
LmU5NDY5NDdiMTRhZWYzZTUyOTlhMGFiYTNhZTRiMWNmOWZjZDk1NzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXBy
b3BlcnR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQKQEAgLTEsNyAr
MSw4IEBACiBDT05TT0xFIE1FU1NBR0U6IFVuaGFuZGxlZCBQcm9taXNlIFJlamVjdGlvbjogUmVm
ZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgogCi1GQUlMIFRl
c3QgdGhlIG5hbWUgcHJvcGVydHkgb2Ygc2hhcmVkIGFuZCBkZWRpY2F0ZWQgd29ya2VycyB2aWEg
dGhlIG5hbWUgY29uc3RydWN0b3Igb3B0aW9uIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdv
cmtlcgotUEFTUyBEZWNsYXJpbmcgbmFtZSBhcyBhbiBhY2NpZGVudGFsIGdsb2JhbCBtdXN0IG5v
dCBjYXVzZSBhIGhhcm5lc3MgZXJyb3IgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCitI
YXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IENhbid0
IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorCiBQQVNTIG5hbWUgcHJvcGVydHkgdmFsdWUg
Zm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCiBQQVNTIG5hbWUgcHJvcGVydHkgaXMgcmVw
bGFjZWFibGUgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCitQQVNTIERlY2xhcmluZyBu
YW1lIGFzIGFuIGFjY2lkZW50YWwgZ2xvYmFsIG11c3Qgbm90IGNhdXNlIGEgaGFybmVzcyBlcnJv
ciBmb3IgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0
LWNyZWRlbnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jcmVkZW50aWFscy5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggZjA2OTFhYTA5Y2M0OWNkZjdmMmE5NDM3NGM2ZTYyMjIw
ZjkzYjhlMi4uYTU3MGQ4ZDI5MmZhODU2MjEyYjA1NDc4ODIwZjEzMGY4MWQ5YmJmNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0
cy9hdWRpby13b3JrbGV0LWNyZWRlbnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdv
cmtsZXQtY3JlZGVudGlhbHMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDExIEBACiBD
T05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxv
d2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIAotRkFJTCBJbXBvcnRpbmcgYSBz
YW1lLW9yaWdpbiBzY3JpcHQgd2l0aCB0aGUgZGVmYXVsdCBXb3JrbGV0T3B0aW9ucyBzaG91bGQg
c2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJy
b3I6IFJlc3BvbnNlIGlzIG5vdCAyeHgiCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNj
cmlwdCB3aXRoIHRoZSBkZWZhdWx0IFdvcmtsZXRPcHRpb25zIHNob3VsZCBzZW5kIHRoZSBjcmVk
ZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJBYm9ydEVycm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQQVNT
IEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggdGhlIGRlZmF1bHQgV29ya2xl
dE9wdGlvbnMgc2hvdWxkIG5vdCBzZW5kIHRoZSBjcmVkZW50aWFscwotRkFJTCBJbXBvcnRpbmcg
YSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1vbWl0IHNob3VsZCBub3Qgc2Vu
ZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6
IFJlc3BvbnNlIGlzIG5vdCAyeHgiCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlw
dCB3aXRoIGNyZWRlbnRpYWxzPW9taXQgc2hvdWxkIG5vdCBzZW5kIHRoZSBjcmVkZW50aWFscyBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9y
dEVycm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQQVNTIEltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9b21pdCBzaG91bGQgbm90
IHNlbmQgdGhlIGNyZWRlbnRpYWxzCi1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlw
dCB3aXRoIGNyZWRlbnRpYWxzPXNhbWUtb3JpZ2luIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFs
cyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJB
Ym9ydEVycm9yOiBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogUmVzcG9uc2UgaXMgbm90
IDJ4eCIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlh
bHM9c2FtZS1vcmlnaW4gc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEltcG9y
dGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiIKIFBBU1MgSW1wb3J0aW5nIGEgcmVtb3RlLW9y
aWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1zYW1lLW9yaWdpbiBzaG91bGQgbm90IHNlbmQg
dGhlIGNyZWRlbnRpYWxzCi1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRo
IGNyZWRlbnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6
IEZhaWxlZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiBSZXNwb25zZSBpcyBub3QgMnh4IgotRkFJ
TCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPWluY2x1
ZGUgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBt
b2R1bGUsIGVycm9yOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dl
ZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uIgorRkFJTCBJbXBvcnRpbmcgYSBzYW1l
LW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1pbmNsdWRlIHNob3VsZCBzZW5kIHRoZSBj
cmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJBYm9ydEVycm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCitG
QUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9aW5j
bHVkZSBzaG91bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogQ3Jvc3Mtb3JpZ2luIHNj
cmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3ku
IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29y
a2xldC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGJmMzM1Y2YzMDU1ZTA2NWIzODk4OWI0
MWFhMWUyMzZmZWI0YWMyOWQuLjI3NWIzNDM3ZmFkOTc1M2E2ZWNlMjQyMDBlYWJmMjU3ZmZkNjI3
MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8t
d29ya2xldC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQwICsxLDUyIEBACitCbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmts
ZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitC
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQz
L3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVy
LmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9z
dDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMt
aGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxv
Y2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRo
LWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93
d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlw
dC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0
cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0
LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXpl
ZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCiBDT05T
T0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3Rp
dmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6
Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNj
cmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBD
b250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCiBDT05TT0xF
IE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUg
J3dvcmtlci1zcmMnLgogCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNl
Y3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291
cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1F
U1NBR0U6IFtibG9ja2VkXSBUaGUgcGFnZSBhdCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3dvcmts
ZXRzL3Jlc291cmNlcy9hZGRtb2R1bGUtd2luZG93Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRp
c3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrbGV0
cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcy4KIAog
Q09OU09MRSBNRVNTQUdFOiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvYWRkbW9kdWxlLXdpbmRvdy5odG1sIHdhcyBub3QgYWxs
b3dlZCB0byBkaXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vbG9jYWxob3N0Ojg4
MDAvd29ya2xldHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFk
ZXIuanMuCiAKK0NPTlNPTEUgTUVTU0FHRTogW2Jsb2NrZWRdIFRoZSBwYWdlIGF0IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2FkZG1vZHVsZS13aW5kb3cuaHRtbCB3
YXMgbm90IGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDovL2xv
Y2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRo
LWNvcnMtaGVhZGVyLmpzLgorCitDT05TT0xFIE1FU1NBR0U6IFtibG9ja2VkXSBUaGUgcGFnZSBh
dCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9hZGRtb2R1bGUtd2lu
ZG93Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9t
IGh0dHA6Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1z
Y3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcy4KKwogCiBGQUlMIEEgcmVtb3RlLW9yaWdpbiB3b3Jr
bGV0IHNob3VsZCBiZSBibG9ja2VkIGJ5IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBkaXJlY3RpdmUu
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCi1G
QUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlw
dCBzaG91bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgorUEFT
UyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQg
c2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4KIEZB
SUwgQSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3Jp
cHQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4g
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNPTFZFRCIKIEZB
SUwgQSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgYmUgYmxvY2tlZCBi
eSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgotRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmts
ZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUg
YmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgorUEFTUyBBIHNhbWUtb3Jp
Z2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBz
aG91bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLgogUEFT
UyBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0
aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4K
LVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2
ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgorRkFJTCBBIHNhbWUtb3JpZ2luIHdv
cmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9j
a2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdp
biBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAi
UkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90
ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQt
c3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgogUEFTUyBBIHJl
bW90ZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNh
dXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dz
IGl0LgotUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdp
bi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2Ny
aXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KK0ZBSUwg
QSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3Rl
ZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGly
ZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdp
biB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICog
ZGlyZWN0aXZlIGFsbG93cyBpdC4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRo
ZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3
b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxv
Y2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4gYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSBy
ZW1vdGUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hv
dWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxs
b3dzIGl0LgogUEFTUyBBIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBu
b3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBp
dC4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4t
cmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlw
dC1zcmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0LgorRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQg
aW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgbm90IGJl
IGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNT
IEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29y
a2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRp
cmVjdGl2ZS4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1v
cmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJl
Y3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KK0ZB
SUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0
IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVz
ZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSByZW1vdGUtb3Jp
Z2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBi
ZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdvcmtsZXRzIG9i
ZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLgogUEFTUyBBIHJlbW90ZS1vcmlnaW4tcmVkaXJl
Y3RlZCB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJl
Y3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KLVBB
U1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJl
Y3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVj
dGl2ZSBiZWNhdXNlIHdvcmtsZXRzIG9iZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLgorRkFJ
TCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVj
dGVkIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0
aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEFu
IGluc2VjdXJlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4
ZWQgY29udGVudHMuCiBQQVNTIEFuIGluc2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVkIHdvcmtsZXQg
c2hvdWxkIGJlIGJsb2NrZWQgYmVjYXVzZSBvZiBtaXhlZCBjb250ZW50cy4KLUZBSUwgQSBzYW1l
LW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhbiBpbnNlY3VyZS1vcmlnaW4gc2NyaXB0IHNob3Vs
ZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCi1GQUlMIEEgc2FtZS1vcmlnaW4g
d29ya2xldCBpbXBvcnRpbmcgYW4gaW5zZWN1cmUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNo
b3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCitQQVNTIEEgc2FtZS1vcmln
aW4gd29ya2xldCBpbXBvcnRpbmcgYW4gaW5zZWN1cmUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUg
YmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLgorUEFTUyBBIHNhbWUtb3JpZ2luIHdv
cmtsZXQgaW1wb3J0aW5nIGFuIGluc2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91
bGQgYmUgYmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlv
LXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IGZlODk2NWFlZjZjYWRhMjIxOWVmOGUzMDg4OGJhOTFlMjQw
MTdhYzAuLjY3NjQ3ZDQ2ODdiOWQzY2ZjODZlMGIyYzhmNTY4ZTIwZjViZWMzOTQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMv
YXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1p
bXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xNiw3ICsxNiw3IEBAIFBBU1MgSW1wb3J0aW5n
IGEgY3Jvc3Mgb3JpZ2luIHJlc291cmNlIHdpdGggdGhlIEFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbiBoZWFkCiBQQVNTIEltcG9ydGluZyBhIGNyb3NzIG9yaWdpbiByZXNvdXJjZSB3aXRob3V0
IHRoZSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4gaGVhZGVyIHNob3VsZCByZWplY3QgdGhl
IGdpdmVuIHByb21pc2UKIFBBU1MgSW1wb3J0aW5nIGEgY3Jvc3Mtb3JpZ2luLXJlZGlyZWN0ZWQg
cmVzb3VyY2Ugd2l0aCB0aGUgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhlYWRlciBzaG91
bGQgcmVzb2x2ZSB0aGUgZ2l2ZW4gcHJvbWlzZQogUEFTUyBJbXBvcnRpbmcgYSBjcm9zcy1vcmln
aW4tcmVkaXJlY3RlZCByZXNvdXJjZSB3aXRob3V0IHRoZSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1P
cmlnaW4gaGVhZGVyIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UKLUZBSUwgSW1wb3J0
aW5nIGEgc2NyaXB0IHRoYXQgaGFzIGEgc3ludGF4IGVycm9yIHNob3VsZCByZWplY3QgdGhlIGdp
dmVuIHByb21pc2UuIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRl
ZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEltcG9ydGluZyBhIG5lc3RlZCBz
Y3JpcHQgdGhhdCBoYXMgYSBzeW50YXggZXJyb3Igc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJv
bWlzZS4gYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBS
ZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaW1w
b3J0cyBhbiBpbnZhbGlkIGlkZW50aWZpZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlz
ZS4gYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFj
aGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaGFzIGEg
c3ludGF4IGVycm9yIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuCitQQVNTIEltcG9y
dGluZyBhIG5lc3RlZCBzY3JpcHQgdGhhdCBoYXMgYSBzeW50YXggZXJyb3Igc2hvdWxkIHJlamVj
dCB0aGUgZ2l2ZW4gcHJvbWlzZS4KK1BBU1MgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaW1wb3J0
cyBhbiBpbnZhbGlkIGlkZW50aWZpZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8t
d29ya2xldC1yZWZlcnJlci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMjRkNDk5YzE0MWNlZTZk
YzliMmViZTI0YmZiNGZmNGMwM2EwYTk3My4uOWY2ZDExMzA1OWQ5ZmFkNTBjNjMwMDdiN2ZjZDJj
YmQ2NzI3NzY1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtsZXRzL2F1ZGlvLXdvcmtsZXQtcmVmZXJyZXIuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMg
KzEsOCBAQAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2Nh
bGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvcmVmZXJyZXItY2hlY2tlci5weT9yZWZlcnJl
cl9wb2xpY3k9bm8tcmVmZXJyZXImZXhwZWN0ZWRfcmVmZXJyZXI9CitCbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291
cmNlcy9yZWZlcnJlci1jaGVja2VyLnB5P3JlZmVycmVyX3BvbGljeT1vcmlnaW4mZXhwZWN0ZWRf
cmVmZXJyZXI9aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My8KK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2lu
IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wt
QWxsb3ctT3JpZ2luLgorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3
MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvcmVmZXJyZXItY2hlY2tlci5weT9y
ZWZlcnJlcl9wb2xpY3k9c2FtZS1vcmlnaW4mZXhwZWN0ZWRfcmVmZXJyZXI9CitDT05TT0xFIE1F
U1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFj
Y2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIAogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdp
biBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xp
Y3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3Jp
Z2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBv
bGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCkBAIC02LDE1ICsxMSwxNSBAQCBQQVNTIElt
cG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJvcmln
aW4iIHJlZmVycmVyIHBvbAogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJv
bSBhIHBhZ2UgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNl
bmQgcmVmZXJyZXIuCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20g
YSBwYWdlIHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qg
c2VuZCByZWZlcnJlci4KIFBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20g
YSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVy
cmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0
IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJy
ZXIuCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9y
aWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGlj
eSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNP
TFZFRCIgYnV0IGdvdCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1P
cmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9y
aWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMg
Im5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgog
UEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdp
biB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBz
aG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCiBQQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNj
cmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSBy
ZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhh
dCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFT
UyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29y
a2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5k
IHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEg
cmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBw
b2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2lu
IHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUt
b3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9y
dGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNj
cmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNl
bmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEg
cmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVy
cmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRo
YXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVy
LgorRkFJTCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmln
aW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3Vs
ZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBn
b3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291
cmNlIFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0
IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJl
ZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4i
CitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3Jp
Z2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91
bGQgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQg
Z290ICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNv
dXJjZSBTaGFyaW5nIHBvbGljeS4iCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlw
dCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2lu
IiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWls
ZWQuIgorRkFJTCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1v
cmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xp
Y3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVT
T0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3Mt
T3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1v
cmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFz
ICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4g
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcgYSBt
b2R1bGUgc2NyaXB0IGZhaWxlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9y
aWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBk
ZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Bl
bi11cmwtcmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0ZWQt
d29ya2VyLW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggMWUyZDM5OTJmNmQ1ZGYzMjIwN2E2YjBm
NjE5YTZkNzExODEyNDAwZC4uN2E3YTkxN2VhYTk4ZTkyZWUwM2VjMjhhMTFlNzgwODRkMjM0Yjg4
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy94aHIvb3Blbi11cmwtcmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVy
bC1yZWRpcmVjdGVkLXdvcmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAog
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cyLmxvY2FsaG9zdDo4ODAw
L3hoci9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5P2ZpbHRlcl9uYW1lPW9yaWdpbiZjb3Jz
CiAKLUZBSUwgUmVmZXJlciBoZWFkZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJlZmVyZXI6
IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC94aHIvcmVzb3VyY2VzL3dvcmtlcnhoci1vcmlnaW4tcmVm
ZXJyZXIuanNcbiIgYnV0IGdvdCAiUmVmZXJlcjogaHR0cDovL2xvY2FsaG9zdDo4ODAwL3hoci9y
ZXNvdXJjZXMvcmVkaXJlY3QucHk/bG9jYXRpb249d29ya2VyeGhyLW9yaWdpbi1yZWZlcnJlci5q
c1xuIgorUEFTUyBSZWZlcmVyIGhlYWRlcgogRkFJTCBPcmlnaW4gaGVhZGVyIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJPcmlnaW46IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMFxuIiBidXQgZ290ICIi
CiBQQVNTIFJlcXVlc3QgVVJMIHRlc3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW93b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvd29ya2xldC1hZGRNb2R1bGUtZmFpbHVyZS1leHBlY3RlZC50eHQK
aW5kZXggMDhhZjExNDM2MDU1MWJmNWE4MDc5YWYwYTM4MTVjNGUwOGViZDE0My4uZGVmMzNhZDg2
OTFiNjk0MzZlMGUxODFjNWJkMDA0ODM1NDgzNTFiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW93b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZhaWx1cmUtZXhw
ZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBB
U1MgY29udGV4dC5hdWRpb1dvcmtsZXQuYWRkTW9kdWxlKGludmFsaWRVUkwpOyByZWplY3RlZCBw
cm9taXNlICB3aXRoIFN5bnRheEVycm9yOiBNb2R1bGUgVVJMIGlzIGludmFsaWQuCi1QQVNTIGNv
bnRleHQuYXVkaW9Xb3JrbGV0LmFkZE1vZHVsZSgnZG9lc25vdEV4aXN0LmpzJyk7IHJlamVjdGVk
IHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6
IFRoZSByZXF1ZXN0ZWQgVVJMIHdhcyBub3QgZm91bmQgb24gdGhpcyBzZXJ2ZXIuLgorUEFTUyBj
b250ZXh0LmF1ZGlvV29ya2xldC5hZGRNb2R1bGUoJ2RvZXNub3RFeGlzdC5qcycpOyByZWplY3Rl
ZCBwcm9taXNlICB3aXRoIEFib3J0RXJyb3I6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFp
bGVkLi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd29ya2xldC1jcmFzaC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby93b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dAppbmRl
eCA2NTRkZGY3ZjE3ZWZhYjU4ZTQyZmFiZTM4NTI1Nzk2NGFlMmM1ZDQxLi4xODUwZmY0NzU0NTk4
ZWYzYzZjYTRiNjk5MmQ1ZTU2ZTY1MDU3ZWM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby93b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by93b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMSArMSwyIEBACitDT05TT0xFIE1FU1NB
R0U6IEFib3J0RXJyb3I6ICd0ZXh0L2h0bWwnIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlN
RSB0eXBlLgogVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420100</attachid>
            <date>2021-02-11 22:52:30 -0800</date>
            <delta_ts>2021-02-12 01:12:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210211225229.patch</filename>
            <type>text/plain</type>
            <size>235734</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MDMzNjA1Y2FjMDYxMTJjMzYzYWMwMjlmMjYxZDc2OGRjNDEzZmRjLi42ZWUzOWExOTY5ZTA0YjY4
NDIxM2NkY2Q0MGE2NDVmYjBkNzNlZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAyMS0wMi0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcDoK
KyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9yKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlRXJyb3IpOgorICAgICAg
ICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVSYW5nZUVycm9y
KToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVmZXJlbmNlRXJyb3IpOgorICAgICAgICAoSlNDOjpj
cmVhdGVTeW50YXhFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVR5cGVFcnJvcik6CisgICAg
ICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlR2V0dGVyVHlw
ZUVycm9yKToKKyAgICAgICAgKEpTQzo6dGhyb3dTeW50YXhFcnJvcik6CisgICAgICAgICogcnVu
dGltZS9FcnJvci5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6RXJyb3JJ
bnN0YW5jZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VTdHJpbmcpOgorICAgICAgICAo
SlNDOjpFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5nKToKKyAgICAgICAgKEpTQzo6
RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGUpOgorICAg
ICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjplcnJvclR5cGUgY29uc3QpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBl
Pjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8
ZXJyb3JUeXBlPjo6Y2FsbEltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6
SlNXZWJBc3NlbWJseUxpbmtFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
cjo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9y
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04p
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisKIDIwMjEtMDIt
MTEgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogIlNob3cgRXh0ZW5kZWQgR3JpZGxpbmVzIiBvcHRpb24gZm9yIGdyaWQgb3Zl
cmxheSBkb2VzIG5vdCB3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjExZTgzZTAzMDYxMjc3ODNkZjI4NzM0
MDc5MGZlYjJhOTliMjg2ZS4uYTY1Y2RkMzMyYjMyMWI1Y2NmNDZkZWFiYTU3MTkzMmQ4YjJlMTcx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAyMS0wMi0xMSAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2Vycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
OjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlw
dEZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVx
dWVzdFNjcmlwdFdpdGhDYWNoZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01F
eGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXRyaWV2ZUVycm9yTWVz
c2FnZVdpdGhvdXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURPTUV4Y2VwdGlvbik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVj
dDo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyRmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxP
YmplY3Q6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xv
YmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVz
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RP
TVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVySW1w
b3J0TW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZVNj
cmlwdExvYWRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5
cGUuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6Y2xlYXJDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpzY3JpcHRGZXRjaGVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6cGFyYW1ldGVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpNb2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNjcmlwdExvYWRlcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQuaC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmllcik6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1
bGVMb2FkZXI6Om1vZHVsZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2Fk
ZXI6OnJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVM
b2FkZXI6OmltcG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpTY3JpcHRTb3VyY2VDb2RlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6V29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6fldv
cmtlck1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVHlwZS5oLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIuaDog
QWRkZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBkb20vRXhjZXB0
aW9uQ29kZS5oOgorICAgICAgICAqIGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZCk6IERlbGV0ZWQuCisgICAg
ICAgICogZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVs
ZVNjcmlwdCk6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIv
VGhyZWFkYWJsZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXI6Oldvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmlkbDoKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckds
b2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJH
bG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmNyZWRlbnRp
YWxzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVMb2FkZXIpOgorICAgICAg
ICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZVN5bmNocm9u
b3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
U2NyaXB0TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6
OnJlc3BvbnNlU291cmNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExv
YWRlcjo6aXNSZWRpcmVjdGVkIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJQYXJhbWV0ZXJzOjppc29sYXRlZENvcHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpldmFsdWF0ZVNjcmlwdElm
TmVjZXNzYXJ5KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgorICAgICAgICAq
IHdvcmtlcnMvV29ya2VyVHlwZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3Jp
cHRXaXRoQ29udGV4dCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25PcHRpb25zLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
VGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmg6CisgICAgICAgICogd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hB
bmRJbnZva2VTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpw
cm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpub3RpZnlGaW5pc2hlZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmRpZENvbXBsZXRl
U2NyaXB0RmV0Y2hKb2IpOiBEZWxldGVkLgorICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9i
YWxTY29wZS5oOgorCiAyMDIxLTAyLTExICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyNzI3NTg7IGluY2x1ZGUg
bWlzc2luZyBjaGFuZ2UgdG8gUnVudGltZUVuYWJsZWRGZWF0dXJlcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcAppbmRleCA3NTlhNWIyNGEw
ZWQwODY4MGNjYWE2MzQwZDJlOTVkNDUwYjgwZmQ2Li4yOTZjODVjYzkwZTA1YjU0NTQ3ZjY2MmE3
ZTJmOGExZTEzMGE0NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BZ2dyZWdhdGVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QWdncmVnYXRlRXJyb3IuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogY29u
c3QgQ2xhc3NJbmZvIEFnZ3JlZ2F0ZUVycm9yOjpzX2luZm8gPSB7ICJBZ2dyZWdhdGVFcnJvciIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQWdn
cmVnYXRlRXJyb3IpIH07CiAKIEFnZ3JlZ2F0ZUVycm9yOjpBZ2dyZWdhdGVFcnJvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDog
QmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5cGU6OkFnZ3JlZ2F0ZUVycm9yKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKaW5kZXggZjQ3M2I4MTgxZWMyZjAy
YTBjYzc4YTI2YzBjMjBkYzk2MzFmZGM3NC4uZmNhY2YxZTMyMmViMjcyNzg3NGZmMjUyNjI0MWVk
N2JlOThjZTUzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcApAQCAt
MzUsMzcgKzM1LDM3IEBAIG5hbWVzcGFjZSBKU0MgewogSlNPYmplY3QqIGNyZWF0ZUVycm9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJ
bnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdl
LmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpLCBt
ZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJldHVybiBFcnJvcklu
c3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9i
amVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBF
cnJvclR5cGU6OkVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZUV2YWxFcnJvcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9y
SW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2Fn
ZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJy
b3JUeXBlOjpFdmFsRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUp
OworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpFdmFs
RXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXZhbEVy
cm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVJhbmdlRXJyb3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpT
b3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgp
KTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmFu
Z2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJhbmdlRXJyb3IpLCBt
ZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6UmFuZ2VFcnJvciwgdHJ1
ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVSZWZlcmVuY2VFcnJvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJj
ZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwot
ICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpSZWZlcmVu
Y2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9y
KSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlJlZmVyZW5jZUVy
cm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6
U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHko
KSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2Jh
bE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlN5
bnRheEVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsKKyAgICBy
ZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52
bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6U3ludGF4RXJyb3Ip
LCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6U3ludGF4RXJyb3Is
IHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNl
QXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUpCiB7CiAgICAgQVNTRVJUKCFtZXNz
YWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBlLCB0cnVlKTsKKyAg
ICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9y
KSwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIEVycm9yVHlwZTo6VHlwZUVycm9yLCB0cnVlKTsK
IH0KIAogSlNPYmplY3QqIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVy
KQpAQCAtNzYsNyArNzYsNyBAQCBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JJbnN0YQogSlNPYmplY3QqIGNy
ZWF0ZVVSSUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAg
QVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNy
ZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJv
clN0cnVjdHVyZShFcnJvclR5cGU6OlVSSUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVO
b3RoaW5nLCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVy
cm9yVHlwZTo6VVJJRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9y
VHlwZTo6VVJJRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlRXJyb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JUeXBlIGVycm9yVHlwZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQpAQCAtMTEzLDcgKzExMyw3IEBAIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5cGVXaXRoRXh0ZW5zaW9uIGVycm9yCiBK
U09iamVjdCogY3JlYXRlR2V0dGVyVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0
eSgpKTsKLSAgICBhdXRvKiBlcnJvciA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJv
clR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UpOworICAgIGF1dG8qIGVycm9yID0gRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmpl
Y3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yKTsKICAgICBlcnJvci0+c2V0TmF0
aXZlR2V0dGVyVHlwZUVycm9yKCk7CiAgICAgcmV0dXJuIGVycm9yOwogfQpAQCAtMjc0LDcgKzI3
NCw3IEBAIEV4Y2VwdGlvbiogdGhyb3dUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0CiAKIEV4Y2VwdGlvbiogdGhyb3dTeW50YXhF
cnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSkKIHsK
LSAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlU3lu
dGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCAiU3ludGF4IGVycm9yIl9zKSk7CisgICAgcmV0dXJuIHRo
cm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVN5bnRheEVycm9yKGdsb2Jh
bE9iamVjdCkpOwogfQogCiBFeGNlcHRpb24qIHRocm93U3ludGF4RXJyb3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKQEAgLTMxNyw2ICszMTcsMTEgQEAgSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICByZXR1
cm4gY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBudWxscHRyKTsKIH0K
IAorSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgcmV0dXJuIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgIlN5bnRh
eCBlcnJvciJfcywgbnVsbHB0cik7Cit9CisKIEpTT2JqZWN0KiBjcmVhdGVUeXBlRXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gY3JlYXRlVHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgIlR5cGUgZXJyb3IiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yLmgKaW5kZXggNmRhYTE1NDIxNTY2NjEwZTRhY2U2ZGUzMzVmMzRkM2JmN2M3NDQ0ZC4u
ZGM4MjUyODJjMzU2NDg3MTMyNTQ1NDRiYzhkODE4ODg0MDBlNDM4YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvci5oCkBAIC01NSw2ICs1NSw3IEBAIEpTX0VYUE9SVF9QUklWQVRF
IEpTT2JqZWN0KiBjcmVhdGVFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcm
KTsKIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVSYW5nZUVycm9yKEpTR2xvYmFs
T2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3Jl
YXRlUmVmZXJlbmNlRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmKTsKIEpTX0VY
UE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVTeW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCos
IGNvbnN0IFN0cmluZyYpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZVN5bnRh
eEVycm9yKEpTR2xvYmFsT2JqZWN0Kik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3Jl
YXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0Kik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVj
dCogY3JlYXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CiBKU19F
WFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoSlNH
bG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMGYyZjVhMzE4NDAyZmJiN2M3ZDg4MDJiNmQ3ODQyZWZl
NDA2Yzg0Ni4uOWJlOTMwY2YxYzNjOWE0MGU2MDg1OTgzNTU4YTFhNTliYzc4YjYyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
QEAgLTYwLDE0ICs2MCwxNCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXJy
b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAgICA6IElu
dGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3
VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5lcnJvclN0cnVjdHVyZSgp
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5n
LCBmYWxzZSkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSkpOwog
fQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEVycm9yQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
SlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUq
IGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
ZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJv
clR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBib29sIEVycm9yQ29uc3RydWN0b3I6OnB1dChK
U0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKaW5kZXggMmU0
ZWMzOWYxMjA1OGIyNTA4NzIyZTBiODI1MjI0N2JlYjAzMTllNi4uMGY4NmUyMmI5MmRkZDZkMTM5
ODU4Yjg2ZTU2Y2VhZGNhZWNlMGQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTM0LDE4ICszNCwyMyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogY29uc3QgQ2xhc3NJbmZvIEVycm9ySW5zdGFuY2U6OnNfaW5mbyA9IHsgIkVycm9yIiwg
JkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShFcnJvckluc3RhbmNlKSB9OwogCi1FcnJvckluc3RhbmNlOjpFcnJvckluc3RhbmNl
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitFcnJvckluc3RhbmNlOjpFcnJvckluc3Rh
bmNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVycm9yVHlwZSBlcnJvclR5cGUpCiAg
ICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgLCBtX2Vycm9yVHlwZShlcnJvclR5cGUpCisg
ICAgLCBtX3N0YWNrT3ZlcmZsb3dFcnJvcihmYWxzZSkKKyAgICAsIG1fb3V0T2ZNZW1vcnlFcnJv
cihmYWxzZSkKKyAgICAsIG1fZXJyb3JJbmZvTWF0ZXJpYWxpemVkKGZhbHNlKQorICAgICwgbV9u
YXRpdmVHZXR0ZXJUeXBlRXJyb3IoZmFsc2UpCiB7CiB9CiAKLUVycm9ySW5zdGFuY2UqIEVycm9y
SW5zdGFuY2U6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNWYWx1ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciwgUnVu
dGltZVR5cGUgdHlwZSwgYm9vbCB1c2VDdXJyZW50RnJhbWUpCitFcnJvckluc3RhbmNlKiBFcnJv
ckluc3RhbmNlOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1
bnRpbWVUeXBlIHR5cGUsIEVycm9yVHlwZSBlcnJvclR5cGUsIGJvb2wgdXNlQ3VycmVudEZyYW1l
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNz
YWdlLmlzVW5kZWZpbmVkKCkgPyBTdHJpbmcoKSA6IG1lc3NhZ2UudG9XVEZTdHJpbmcoZ2xvYmFs
T2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBy
ZXR1cm4gY3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZVN0cmluZywg
YXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CisgICAgcmV0dXJuIGNyZWF0ZShnbG9i
YWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2VTdHJpbmcsIGFwcGVuZGVyLCB0eXBlLCBl
cnJvclR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgYXBwZW5kU291
cmNlVG9FcnJvck1lc3NhZ2UoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVycm9ySW5zdGFuY2UqIGV4
Y2VwdGlvbiwgQnl0ZWNvZGVJbmRleCBieXRlY29kZUluZGV4LCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCkBAIC0xMzEsNyArMTM2LDI1IEBAIHZvaWQgRXJyb3JJbnN0YW5jZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTCiAvLyBCYXNl
ZCBvbiBFcnJvclByb3RvdHlwZSdzIGVycm9yUHJvdG9GdW5jVG9TdHJpbmcoKSwgYnV0IGlzIG1v
ZGlmaWVkIHRvCiAvLyBoYXZlIG5vIG9ic2VydmFibGUgc2lkZSBlZmZlY3RzIHRvIHRoZSB1c2Vy
IChpLmUuIGRvZXMgbm90IGNhbGwgcHJveGllcywKIC8vIGFuZCBnZXR0ZXJzKS4KLVN0cmluZyBF
cnJvckluc3RhbmNlOjpzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQorU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VTdHJpbmcoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEludGVn
cml0eTo6YXVkaXRTdHJ1Y3R1cmVJRCh2bSwgc3RydWN0dXJlSUQoKSk7CisKKyAgICBKU1ZhbHVl
IG1lc3NhZ2VWYWx1ZTsKKyAgICBhdXRvIG1lc3NhZ2VQcm9wZXJ0TmFtZSA9IHZtLnByb3BlcnR5
TmFtZXMtPm1lc3NhZ2U7CisgICAgUHJvcGVydHlTbG90IG1lc3NhZ2VTbG90KHRoaXMsIFByb3Bl
cnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnksICZ2bSk7CisgICAgaWYgKEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUHJv
cGVydE5hbWUsIG1lc3NhZ2VTbG90KSAmJiBtZXNzYWdlU2xvdC5pc1ZhbHVlKCkpCisgICAgICAg
IG1lc3NhZ2VWYWx1ZSA9IG1lc3NhZ2VTbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgbWVzc2Fn
ZVByb3BlcnROYW1lKTsKKyAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOworCisgICAgaWYg
KCFtZXNzYWdlVmFsdWUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIG1lc3NhZ2VWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpKTsK
K30KKworU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZE5hbWVTdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU3LDI4ICsx
ODAsMjIgQEAgU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgfQogICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9u
KCk7CiAKLSAgICBTdHJpbmcgbmFtZVN0cmluZzsKICAgICBpZiAoIW5hbWVWYWx1ZSkKLSAgICAg
ICAgbmFtZVN0cmluZyA9ICJFcnJvciJfczsKLSAgICBlbHNlIHsKLSAgICAgICAgbmFtZVN0cmlu
ZyA9IG5hbWVWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7Ci0gICAgfQorICAgICAgICByZXR1cm4gIkVy
cm9yIl9zOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbmFtZVZhbHVlLnRvV1RGU3Ry
aW5nKGdsb2JhbE9iamVjdCkpOworfQogCi0gICAgSlNWYWx1ZSBtZXNzYWdlVmFsdWU7Ci0gICAg
YXV0byBtZXNzYWdlUHJvcGVydE5hbWUgPSB2bS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlOwotICAg
IFByb3BlcnR5U2xvdCBtZXNzYWdlU2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0
aG9kVHlwZTo6Vk1JbnF1aXJ5LCAmdm0pOwotICAgIGlmIChKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVByb3BlcnROYW1lLCBtZXNzYWdlU2xv
dCkgJiYgbWVzc2FnZVNsb3QuaXNWYWx1ZSgpKQotICAgICAgICBtZXNzYWdlVmFsdWUgPSBtZXNz
YWdlU2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSk7Ci0gICAg
c2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKK1N0cmluZyBFcnJvckluc3RhbmNlOjpzYW5pdGl6
ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisgICAgSW50ZWdyaXR5OjphdWRpdFN0cnVjdHVyZUlEKHZtLCBzdHJ1Y3R1cmVJRCgp
KTsKIAotICAgIFN0cmluZyBtZXNzYWdlU3RyaW5nOwotICAgIGlmICghbWVzc2FnZVZhbHVlKQot
ICAgICAgICBtZXNzYWdlU3RyaW5nID0gU3RyaW5nKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIG1l
c3NhZ2VTdHJpbmcgPSBtZXNzYWdlVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKLSAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgU3RyaW5nKCkpOwotICAgIH0KKyAgICBT
dHJpbmcgbmFtZVN0cmluZyA9IHNhbml0aXplZE5hbWVTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7CisKKyAgICBTdHJpbmcgbWVz
c2FnZVN0cmluZyA9IHNhbml0aXplZE1lc3NhZ2VTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7CiAKICAgICBpZiAoIW5hbWVTdHJp
bmcubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBtZXNzYWdlU3RyaW5nOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCmluZGV4IGRhNjZlYjc2ZTdhZGU5
MGZkNDFiYjE2MjcwNzI1YTdkMTQ3MGFkMzguLjk4NzEzNTcyMWIzMDU2NjIzMGQyNjFjODMzYWQ4
ZGVjYTU0NjE0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvcklu
c3RhbmNlLmgKQEAgLTIwLDYgKzIwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJF
cnJvclR5cGUuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVUeXBl
LmgiCiAjaW5jbHVkZSAiU3RhY2tGcmFtZS5oIgpAQCAtNTMsMTQgKzU0LDE0IEBAIGNsYXNzIEVy
cm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEVy
cm9ySW5zdGFuY2VUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCi0gICAg
c3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNv
dXJjZUFwcGVuZGVyIGFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVO
b3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpCisgICAgc3RhdGljIEVycm9ySW5z
dGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFw
cGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVOb3RoaW5nLCBFcnJvclR5
cGUgZXJyb3JUeXBlID0gRXJyb3JUeXBlOjpFcnJvciwgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0
cnVlKQogICAgIHsKLSAgICAgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcgKE5vdE51
bGwsIGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPih2bS5oZWFwKSkgRXJyb3JJbnN0YW5jZSh2
bSwgc3RydWN0dXJlKTsKKyAgICAgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPih2bS5oZWFwKSkgRXJyb3JJbnN0YW5j
ZSh2bSwgc3RydWN0dXJlLCBlcnJvclR5cGUpOwogICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3Jl
YXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJl
bnRGcmFtZSk7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICB9CiAKLSAgICBzdGF0aWMg
RXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNWYWx1
ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5v
dGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7CisgICAgc3RhdGljIEVycm9ySW5z
dGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpTVmFsdWUgbWVzc2Fn
ZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBF
cnJvclR5cGUgPSBFcnJvclR5cGU6OkVycm9yLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUp
OwogCiAgICAgYm9vbCBoYXNTb3VyY2VBcHBlbmRlcigpIGNvbnN0IHsgcmV0dXJuICEhbV9zb3Vy
Y2VBcHBlbmRlcjsgfQogICAgIFNvdXJjZUFwcGVuZGVyIHNvdXJjZUFwcGVuZGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2VBcHBlbmRlcjsgfQpAQCAtNzAsNiArNzEsNyBAQCBjbGFzcyBFcnJv
ckluc3RhbmNlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIFJ1bnRpbWVUeXBlIHJ1
bnRpbWVUeXBlRm9yQ2F1c2UoKSBjb25zdCB7IHJldHVybiBtX3J1bnRpbWVUeXBlRm9yQ2F1c2U7
IH0KICAgICB2b2lkIGNsZWFyUnVudGltZVR5cGVGb3JDYXVzZSgpIHsgbV9ydW50aW1lVHlwZUZv
ckNhdXNlID0gVHlwZU5vdGhpbmc7IH0KIAorICAgIEVycm9yVHlwZSBlcnJvclR5cGUoKSBjb25z
dCB7IHJldHVybiBtX2Vycm9yVHlwZTsgfQogICAgIHZvaWQgc2V0U3RhY2tPdmVyZmxvd0Vycm9y
KCkgeyBtX3N0YWNrT3ZlcmZsb3dFcnJvciA9IHRydWU7IH0KICAgICBib29sIGlzU3RhY2tPdmVy
Zmxvd0Vycm9yKCkgY29uc3QgeyByZXR1cm4gbV9zdGFja092ZXJmbG93RXJyb3I7IH0KICAgICB2
b2lkIHNldE91dE9mTWVtb3J5RXJyb3IoKSB7IG1fb3V0T2ZNZW1vcnlFcnJvciA9IHRydWU7IH0K
QEAgLTc5LDYgKzgxLDggQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKICAgICBib29sIGlzTmF0aXZlR2V0dGVyVHlwZUVycm9yKCkgY29uc3QgeyByZXR1
cm4gbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3I7IH0KIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0
cmluZyBzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCopOworICAgIEpTX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyBzYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKEpTR2xvYmFsT2JqZWN0Kik7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHNhbml0aXplZE5hbWVTdHJpbmcoSlNHbG9iYWxP
YmplY3QqKTsKICAgICAKICAgICBWZWN0b3I8U3RhY2tGcmFtZT4qIHN0YWNrVHJhY2UoKSB7IHJl
dHVybiBtX3N0YWNrVHJhY2UuZ2V0KCk7IH0KIApAQCAtODgsNyArOTIsNyBAQCBjbGFzcyBFcnJv
ckluc3RhbmNlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgZmluYWxpemVV
bmNvbmRpdGlvbmFsbHkoVk0mKTsKIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEVycm9ySW5z
dGFuY2UoVk0mLCBTdHJ1Y3R1cmUqKTsKKyAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKFZNJiwg
U3RydWN0dXJlKiwgRXJyb3JUeXBlKTsKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBK
U0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwg
UnVudGltZVR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsK
IApAQCAtMTA4LDEwICsxMTIsMTEgQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKICAgICBTdHJpbmcgbV9zb3VyY2VVUkw7CiAgICAgU3RyaW5nIG1fc3Rh
Y2tTdHJpbmc7CiAgICAgUnVudGltZVR5cGUgbV9ydW50aW1lVHlwZUZvckNhdXNlIHsgVHlwZU5v
dGhpbmcgfTsKLSAgICBib29sIG1fc3RhY2tPdmVyZmxvd0Vycm9yIHsgZmFsc2UgfTsKLSAgICBi
b29sIG1fb3V0T2ZNZW1vcnlFcnJvciB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2Vycm9ySW5mb01h
dGVyaWFsaXplZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX25hdGl2ZUdldHRlclR5cGVFcnJvciB7
IGZhbHNlIH07CisgICAgRXJyb3JUeXBlIG1fZXJyb3JUeXBlIHsgRXJyb3JUeXBlOjpFcnJvciB9
OworICAgIGJvb2wgbV9zdGFja092ZXJmbG93RXJyb3IgOiAxOworICAgIGJvb2wgbV9vdXRPZk1l
bW9yeUVycm9yIDogMTsKKyAgICBib29sIG1fZXJyb3JJbmZvTWF0ZXJpYWxpemVkIDogMTsKKyAg
ICBib29sIG1fbmF0aXZlR2V0dGVyVHlwZUVycm9yIDogMTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDQwMjFmYzdlMGFkYWY3YTBhOWUwZWY2Y2ZkMjI1
ODM4YjViZjg3ODMuLmFmNzI2MjgzMWNhMWJiNzVjNmFlNTU0MTFkZTRjZDg1YTgxMzdkYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5jcHAKQEAgLTY5NCw3ICs2OTQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yQXJndW1lbnRzQ2FsbGVlQW5kQ2FsbGVyLCAo
SlNHbAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNNYWtlVHlwZUVycm9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0
dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVy
cm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVy
cm9yU3RydWN0dXJlLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBudWxscHRyLCBUeXBlTm90aGlu
ZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIGZhbHNlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihnbG9iYWxGdW5jUHJvdG9HZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDdjYzExYjVm
NWUxMjk3MjIwMTZiODY3MWYxMzdjNmJiMTcyMTM4NDAuLmI2ZTdlZGVmZDQyZWRjNjM1ZDkwYjdl
MGU4YzdiNGZjMGMyNDNkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC01OCw3ICs1OCw3IEBAIGlu
bGluZSBFbmNvZGVkSlNWYWx1ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNv
bnN0cnVjdEltcGwoSlNHbG9iYWxPCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKICAgICBBU1NFUlQoZXJyb3JTdHJ1Y3R1cmUpOwogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkp
KTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvcklu
c3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVs
bHB0ciwgVHlwZU5vdGhpbmcsIGVycm9yVHlwZSwgZmFsc2UpKSk7CiB9CiAKIHRlbXBsYXRlPEVy
cm9yVHlwZSBlcnJvclR5cGU+CkBAIC02Niw3ICs2Niw3IEBAIGlubGluZSBFbmNvZGVkSlNWYWx1
ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNhbGxJbXBsKEpTR2xvYmFsT2Jq
ZWN0CiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAg
ICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVy
ZShlcnJvclR5cGUpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6
Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5
cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxw
dHIsIFR5cGVOb3RoaW5nLCBlcnJvclR5cGUsIGZhbHNlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjYWxsRXZhbEVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKaW5kZXggMjZmM2I2YThmOWRiNjc4Y2Q5NGQw
NWFlODhiMTFiODllNjFjMGViYy4uMGRkYjJjNmE1MGY0NmJjNjM2OTk1Y2E0NmQ3ZjE4ZTViMjY4
NjNlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRl
ckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0
dGVyRnVuY3Rpb24uY3BwCkBAIC05NCw3ICs5NCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihjYWxsVGhyb3dFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIC8vIFRoaXMg
ZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgZnJvbSBJQy4gQW5kIHdlIGRvIG5vdCB3YW50IHRvIGlu
Y2x1ZGUgdGhpcyBmcmFtZSBpbiBFcnJvcidzIHN0YWNrLgogICAgIGNvbnN0ZXhwciBib29sIHVz
ZUN1cnJlbnRGcmFtZSA9IGZhbHNlOwotICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwg
c2NvcGUsIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmpl
Y3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgUmVhZG9ubHlQcm9wZXJ0
eVdyaXRlRXJyb3IsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUpKTsKKyAg
ICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5
cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yLCBudWxscHRyLCBUeXBl
Tm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIHVzZUN1cnJlbnRGcmFtZSkpOwogICAgIHJl
dHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKaW5kZXggMzgzNzNhNzYwZDU5ZDBl
ZWRiNDk0ZGI4OGQ4NTI0ZmFiOWE1MTU0ZS4uOWViZDNkNDQ2YTlkYTlhZDE5ZDdiYTQxOTkwMDYz
ZmM1YTYzMjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgSlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvciogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6Y3JlYXRl
KEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6SlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5
cGU6OkVycm9yKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwCmluZGV4IGVhZGUwMzQxM2U0Y2UzNjBi
YTA4OWY4YzUzZDE4Y2Y4ZDZkNzAyMzUuLjliMjAwNThlY2YzNGFmOTFiNmIxOGQxNWY2NTE1Nzg1
YzIxNzJlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEpTV2ViQXNzZW1i
bHlMaW5rRXJyb3IqIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OmNyZWF0ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqCiB9CiAKIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OkpTV2ViQXNzZW1ibHlM
aW5rRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgRXJyb3JUeXBlOjpFcnJvcikKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5UnVudGltZUVycm9yLmNwcAppbmRleCBiZTFmOTI4NjAzMDQ1ZDdjZjcyOTMyNGVl
NGE3N2FlODNmY2U5Y2JlLi4xOTMzYTZlMzg4OGZiZWFjY2YwN2FjMmIzN2M3NDUwNDg0ZmE1MWYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5UnVudGltZUVycm9yLmNwcApAQCAtNDEsNyArNDEsNyBAQCBKU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yKiBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxP
YmplY3QqIGdsbwogfQogCiBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpKU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6RXJyb3Ip
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNWNk
MDAzNWEwMWZkYjc4ZGRjMzVmYzQ3YjZiODU4MGJlNDVkMzU5Ny4uYzNhMGQzOTdmNTA0ZTI1OGYx
ZDcwZjhiNDgyYjc5YTFkOWU3MjY2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxK
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIHsKICAg
ICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVy
ZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5Q29tcGlsZUVycm9y
U3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlw
ZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3Rh
bmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3Ry
dWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3NlbWJseUNv
bXBpbGVFcnJvclByb3RvdHlwZSogdGhpc1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggOTQ2ZGVmNGYxMTUyMjlhMjI1YmU5MzJhYzllNjQzNWI2YzhhYjJh
OS4uMmM1ZjZhMjkzMWYxNTIxNTg1YWFhOTM1ZTU2YjRiZDJmMTljMTZiMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlM
aW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamUKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
OwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2Vt
Ymx5TGlua0Vycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJv
ckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwg
bnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9
CiAKIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5TGlua0Vycm9y
Q29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3Nl
bWJseUxpbmtFcnJvclByb3RvdHlwZSogdGhpc1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggM2RmZDkxNTY3YjYwYTU4ZGQ5YWE2ODQyZmY2Nzkw
MjFmNWNiOTI1Mi4uYTg1NjY5YzUxOGIxZTlhYTY4Yzk1YWQwNTY2ZWJmZDZmYzNkZmE4YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTY3LDcgKzY3LDcgQEAg
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxP
YmplY3QtPndlYkFzc2VtYmx5UnVudGltZUVycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0
cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBl
cnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6
RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3Iq
IFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSogdGhpc1By
b3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGY4ODU5MTVmZThiZTc5ZTUxMjU4ZmZmOGQ4
MzE4MmM5NWQ3ZDMyY2IuLjlkYjk3ZWQ3MTIwZjM3YjJmYmJmNWZiN2MyZGVjNDQ3ZDg4ZmY2YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMzAsNiArMzAsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVy
LmgKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5oCisgICAgTW9kdWxlcy9mZXRj
aC9GZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRl
cnMuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hJZGVudGlmaWVyLmgKICAgICBNb2R1bGVzL2Zl
dGNoL0ZldGNoTG9hZGVyLmgKQEAgLTI4Nyw2ICsyODgsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgYmluZGluZ3MvanMvV2ViQ29yZUpJVE9wZXJhdGlvbnMu
aAogICAgIGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oCiAgICAgYmlu
ZGluZ3MvanMvV2luZG93UHJveHkuaAorICAgIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNo
ZXIuaAogCiAgICAgYnJpZGdlL0JyaWRnZS5oCiAgICAgYnJpZGdlL0lkZW50aWZpZXJSZXAuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCAwNDVjZjI3MDZjMDM2N2U0Y2Y5MGIzMmRkZDc5MTQ2ZDVmYTExZGZm
Li43ODBmNzMxNzdkNTQ2Y2Y4YmE0ZjM0NWEzOTBkNzcxZmQ0ZjY1MzY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtNjM5LDYgKzYzOSw3IEBAIGJpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5jcHAKIGJp
bmRpbmdzL2pzL1dlYkNvcmVKSVRPcGVyYXRpb25zLmNwcAogYmluZGluZ3MvanMvV2ViQ29yZUpT
Q2xpZW50RGF0YS5jcHAKIGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5j
cHAKK2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKIGJpbmRpbmdzL2pz
L1dpbmRvd1Byb3h5LmNwcAogYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uY3BwCiBicmlkZ2Uv
SWRlbnRpZmllclJlcC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA4YzE1ZWI2NDgwMzczMDU4MDdiNzAzZDBiZGJhYjNmM2Jm
YTU3MTViLi4yM2U5MGI1ZWVlNzY4MTJiOTNkMWNjNTdkNmE3NzhkMTY1MjcwYzVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
MDY5LDE1ICs1MDY5LDE4IEBACiAJCUUzMDU5MjY0MUUyN0EzQUQwMEQ1N0M5OCAvKiBJbmxpbmVD
bGFzc2ljU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzA1OTI2MjFFMjdBMzhDMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDU5MjY4
MUUyN0EzRDEwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTgg
LyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUUzMDdERUQwMUQ4MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzMDdERUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlF
MzA3REVEMTFEODFFNENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVD
ODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwN0RFRDUx
RDgxRTRGMjAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYg
LyogTG9hZGFibGVNb2R1bGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFMzE1MEVBNzFEQTcyMTkzMDAxOTQwMTIgLyogRE9NSklUSGVs
cGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMx
NTBFQTUxREE3MjE4RDAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCAqLzsgfTsKIAkJRTMyMDFD
MUExRjhFODIxMzAwNzZBMDMyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4RDA2MDkxRjhFODExOTAwNjQ5
Q0YyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMjNDRkZBMUU1QUY2QUYwMEYwQjRBMCAvKiBKU0RP
TUNvbnZlcnRQcm9taXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzIzQ0ZGOTFFNUFGNkE1MDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzNDMy
REU0MjVEMzc3RTMwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDMyREUwMjVEMzc3RTIw
MDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLzsgfTsKKwkJRTM0N0U1RkEy
NUQ0RjAwMDAwRjE3QTVDIC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDdFNUY4MjVENEYwMDAwMEYxN0E1QyAv
KiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJRTM1MTg4QjQyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTM1MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUz
NTY1QjdCMURDMkQ2QzkwMDIxN0RCRCAvKiBKU0V2ZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRFRTQ5RjFEQzJENTc1MDBFQUE5RDMg
LyogSlNFdmVudEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzNTgwMkI2MURDODQzNUQwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmls
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4
MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNTgyQzI4MjUyN0Y2Njkw
MEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODJDMjYyNTI3RjY2ODAwRDFCNzkwIC8qIFdlYkNv
cmVKSVRPcGVyYXRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTM1QjkwN0YyM0Y2MEE1MDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1v
ZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVC
OTA3QzIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzY0MzIxQzI1RDM3QTY3
MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyogTW9kdWxl
U2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTM3N0ZFNEQxREFERTE2NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFudHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0OTkzMURBREMw
NDUwMDcxOEYzQyAvKiBOb2RlQ29uc3RhbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNBIC8qIEpTRE9N
UHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzOTYyOEJGMjM5NTcyOEYwMDY1
OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhCRDIzOTU3MjhFMDA2NThFQ0Qg
LyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNjE5NSw3ICsxNjE5OCw2IEBACiAJCUUz
MDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFQzYxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMzA3REVDODFEODFFNDQ4MDAx
NDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVEMjFEODFFNEVEMDAxNDFDQUYgLyogTG9h
ZGFibGVNb2R1bGVTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYgLyogTG9hZGFibGVNb2R1bGVTY3JpcHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9hZGFibGVNb2R1bGVTY3JpcHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMxNTBFQTUxREE3MjE4RDAwMTk0MDEyIC8qIERP
TUpJVEhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSGVs
cGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyMDgsMTIgKzE2MjEwLDE3
IEBACiAJCUUzMjkyNzYzMjI1NDNGNTkwMDMwOEE5QSAvKiBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGVkT01DU1NVbml0VmFsdWUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzI5Mjc2NjIyNTQzRkRFMDAzMDhBOUEgLyogRE9NUmVjdFJl
YWRPbmx5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3RSZWFkT25seS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMzQ4MjVFMURDOTNBQTAwMDlDOTU0NCAvKiBET01K
SVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvRE9NSklUQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OworCQlFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2Vy
TW9kdWxlU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MzQzMkRFMzI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlck1vZHVsZVNjcmlwdExv
YWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNDdFNUY4MjVENEYwMDAw
MEYxN0E1QyAvKiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdvcmtlclNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZlbnRDdXN0b20uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFdmVudEN1c3RvbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4MDJC
NTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRJRExUeXBlRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzNTgyQzI0MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3Bl
cmF0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3Jl
SklUT3BlcmF0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTgyQzI2
MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlSklUT3BlcmF0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMzVCOTA3QzIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2
aWNlTW9kZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemVkRGV2
aWNlTW9kZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1QjkwN0UyM0Y2MDY3
NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxpemVkRGV2aWNlTW9kZWwubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzNjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1bGVTY3Jp
cHRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlU2NyaXB0
TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzN0M4NjRGMUVCNjNFMkQw
MDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNET01Qcm9taXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzODgzODk0
MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1v
ZHVsZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRNb2R1
bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3MDA5LDcgKzI3MDE2
LDYgQEAKIAkJCQkyREZBNDg4RTFEQjU0MUMyMDAzNjJCOTkgLyogQnVmZmVyU291cmNlLmggKi8s
CiAJCQkJRTMwN0RFQzYxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5jcHAgKi8sCiAJCQkJRTMwN0RFQzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5oICovLAotCQkJCUUzMDdERUM4MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLywKIAkJCQlFMzA1OTI2NTFFMjdBM0M2MDBENTdD
OTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAgKi8sCiAJCQkJRTMwNTkyNjYxRTI3QTNDNjAw
RDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLywKIAkJCQlCQ0Q1MzM2MzBFRDY4NDg5
MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLywKQEAgLTI3MDgzLDYg
KzI3MDg5LDggQEAKIAkJCQk0QkRFQTMyRDIxODAzNDA1MDA1MkRGQ0QgLyogSlNXb3JrbGV0R2xv
YmFsU2NvcGVCYXNlLmNwcCAqLywKIAkJCQk0QkRFQTMyQjIxODAzM0VCMDA1MkRGQ0QgLyogSlNX
b3JrbGV0R2xvYmFsU2NvcGVCYXNlLmggKi8sCiAJCQkJNzA5QTAxRkQxRTNEMEJDQzAwNkIwRDRD
IC8qIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQuaCAqLywKKwkJCQlFMzY0MzIxQTI1RDM3QTY2MDBG
OTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8sCisJCQkJRTM1MTg4QjMyNUQzODdDRjAw
QTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovLAogCQkJCTQxQjQ1OUVEMUY1
NUVCQzcwMDAwRjZGRCAvKiBSZWFkYWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDFCNDU5REExRjRD
QURCOTAwMDBGNkZEIC8qIFJlYWRhYmxlU3RyZWFtLmggKi8sCiAJCQkJNDE4QzM5NUUxQzhGMEFB
QjAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwICovLApAQCAt
MjcxMTQsNiArMjcxMjIsOSBAQAogCQkJCTBGMDk5RDA3MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJD
b3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAqLywKIAkJCQk0NjM1MjFBQzIwODEwOTBFMDBDMjg5
MjIgLyogV2luZG93UHJveHkuY3BwICovLAogCQkJCTQ2MzUyMUFBMjA4MTA5MEIwMEMyODkyMiAv
KiBXaW5kb3dQcm94eS5oICovLAorCQkJCUUzNDMyREUzMjVEMzc3RTMwMDU4RTYxMiAvKiBXb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwICovLAorCQkJCUUzNDMyREUwMjVEMzc3RTIwMDU4RTYx
MiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLywKKwkJCQlFMzQ3RTVGODI1RDRGMDAw
MDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5oICovLAogCQkJCTQxNDE4QTAzMjU2NDNF
MTIwMDM2MzQxNyAvKiBXcml0YWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDE0MThBMDQyNTY0M0Ux
MzAwMzYzNDE3IC8qIFdyaXRhYmxlU3RyZWFtLmggKi8sCiAJCQkpOwpAQCAtMzEzODcsNyArMzEz
OTgsNiBAQAogCQkJCUJDQjE2QzFDMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRJbWFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzE5RkJENUYxNUQyRjQ2NDAwOTY0MEE2IC8qIENhY2hlZEltYWdl
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA3REVEMDFEODFFNEM3MDAxNDFDQUYgLyog
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMzA3REVEMTFE
ODFFNENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTAxODQ2OTBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRDBFREE3NzUxNDNFMzAzQzAwMjhFMzgzIC8qIENhY2hlZFJhd1Jl
c291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUI1MzM0OTE3MTdERUUzMDBGMjA1RjkgLyog
Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzM4NjIsNiArMzM4
NzIsOCBAQAogCQkJCUM2RDc0QUQ1MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25M
aXN0TGV2ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwOUEwMUZFMUUzRDBCREQwMDZCMEQ0QyAv
KiBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzIwMUMxQTFG
OEU4MjEzMDA3NkEwMzIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMzY0MzIxQzI1RDM3QTY3MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMzUxODhCNDI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RDNjEyNTFGMTJEMDAzRUYy
NjkgLyogTW9udGhJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOTYyOEMxMjM5NTc0
MzEwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NTAzMUI0NjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zNTUxMiw2ICszNTUyNCw3IEBACiAJCQkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdv
cmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBC
MEYxQkEgLyogV29ya2VyTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUwMEY1
NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTM0MzJERTQyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNzFBMEIwRUVFQzc3QTAwRjYxMjEzIC8qIFdvcmtlck5h
dmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8q
IFdvcmtlck5ldHdvcmtBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4
MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTM1NTIx
LDYgKzM1NTM0LDcgQEAKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVw
b3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUzMEY1NDZBODIwMEIwRjFC
QSAvKiBXb3JrZXJSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDRjFGQUE0NERF
MDAzN0QxRTYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzQ3
RTVGQTI1RDRGMDAwMDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdENkIzNDkwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkVBNzY4MDQwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNj
cmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTUwRjU0NkE4MjAw
QjBGMUJBIC8qIFdvcmtlclRocmVhZC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcAppbmRl
eCAzNTJkY2M0YWNmNzUxNzZkOThhZDM0MTBiZTE1MTYwODAxMDg4NTI0Li4yNzdmNjJhN2MxMzNm
ZTE1NmM2Y2NlOTg1NTM1NTBlZGIxMzZkMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTQwLDE2ICs0
MCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXI+IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNj
cmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+
JiYgcGFyYW1ldGVycykKK1JlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+IENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcjo6Y3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBE
ZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNo
ZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoY2xpZW50LCBwcm9t
aXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSk7CiB9CiAKLUNhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcjo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hl
ZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRl
cnM+JiYgcGFyYW1ldGVycykKLSAgICA6IG1fY2xpZW50KCZjbGllbnQpCi0gICAgLCBtX3Byb21p
c2UoJnByb21pc2UpCi0gICAgLCBtX3NjcmlwdEZldGNoZXIoc2NyaXB0RmV0Y2hlcikKLSAgICAs
IG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQorQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBj
bGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2Ny
aXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQor
ICAgIDogTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwg
V1RGTW92ZShwYXJhbWV0ZXJzKSkKIHsKIH0KIApAQCAtNjEsMTQgKzU4LDE1IEBAIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcjo6fkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcigpCiAgICAgfQogfQog
Ci1ib29sIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFVSTCYgc291cmNlVVJMKQorYm9vbCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6Omxv
YWQoRG9jdW1lbnQmIGRvY3VtZW50LCBVUkwmJiBzb3VyY2VVUkwpCiB7CisgICAgQVNTRVJUKG1f
cHJvbWlzZSk7CiAgICAgQVNTRVJUKCFtX2NhY2hlZFNjcmlwdCk7CiAgICAgU3RyaW5nIGludGVn
cml0eSA9IG1fcGFyYW1ldGVycyA/IG1fcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkgOiBTdHJpbmcg
eyB9OwotICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9zY3JpcHRGZXRjaGVyLT5yZXF1ZXN0TW9kdWxl
U2NyaXB0KGRvY3VtZW50LCBzb3VyY2VVUkwsIFdURk1vdmUoaW50ZWdyaXR5KSk7CisgICAgbV9j
YWNoZWRTY3JpcHQgPSBzY3JpcHRGZXRjaGVyKCkucmVxdWVzdE1vZHVsZVNjcmlwdChkb2N1bWVu
dCwgc291cmNlVVJMLCBXVEZNb3ZlKGludGVncml0eSkpOwogICAgIGlmICghbV9jYWNoZWRTY3Jp
cHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtX3NvdXJjZVVSTCA9IHNvdXJjZVVSTDsK
KyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUoc291cmNlVVJMKTsKIAogICAgIC8vIElmIHRoZSBj
b250ZW50IGlzIGFscmVhZHkgY2FjaGVkLCB0aGlzIGltbWVkaWF0ZWx5IGNhbGxzIG5vdGlmeUZp
bmlzaGVkLgogICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQoKnRoaXMpOwpAQCAtODMsNyAr
ODEsNyBAQCB2b2lkIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2Fj
aGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBOZQogCiAgICAgUmVmPENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgaWYgKG1fY2xpZW50KQotICAg
ICAgICBtX2NsaWVudC0+bm90aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9wcm9taXNlKSk7
CisgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJj
ZVVSTCksIG1fcHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIC8vIFJlbW92ZSB0aGUg
Y2xpZW50IGFmdGVyIGNhbGxpbmcgbm90aWZ5RmluaXNoZWQgdG8ga2VlcCB0aGUgZGF0YSBidWZm
ZXIgaW4KICAgICAvLyBDYWNoZWRSZXNvdXJjZSBhbGl2ZSB3aGlsZSBub3RpZnlGaW5pc2hlZCBw
cm9jZXNzZXMgdGhlIHJlc291cmNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaAppbmRleCA0M2FiZDg3NWIyNDNmYWY1ZmNk
NGQ5OGVjM2M1ZDI0ZTc5MGI1NzJlLi5hNDg3NTVmOTNkMDVlZjM1M2QyYjNlMjI4ZDgyMTlmZTg5
MWU2NzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVTY3JpcHRMb2Fk
ZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zNCw0MiArMzYsMjkgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFz
cyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7Ci1jbGFzcyBD
YWNoZWRTY3JpcHRGZXRjaGVyOwogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKIGNsYXNzIE1vZHVsZUZldGNoUGFyYW1ldGVy
czsKIAotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIFJlZkNv
dW50ZWQ8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNs
aWVudCB7CitjbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9k
dWxlU2NyaXB0TG9hZGVyLCBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZl
dGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKyAgICBzdGF0aWMgUmVm
PENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZpcnR1YWwgfkNhY2hlZE1vZHVsZVNjcmlwdExv
YWRlcigpOwogCi0gICAgYm9vbCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJMJiBzb3VyY2VVUkwp
OworICAgIGJvb2wgbG9hZChEb2N1bWVudCYsIFVSTCYmIHNvdXJjZVVSTCk7CiAKLSAgICBDYWNo
ZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyKCkgeyByZXR1cm4gbV9zY3JpcHRGZXRjaGVy
LmdldCgpOyB9CiAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSB7IHJldHVybiBtX2Nh
Y2hlZFNjcmlwdC5nZXQoKTsgfQotICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyogcGFyYW1ldGVy
cygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQotICAgIGNvbnN0IFVSTCYgc291cmNl
VVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KLQotICAgIHZvaWQgY2xlYXJDbGll
bnQoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fY2xpZW50KTsKLSAgICAgICAgbV9jbGllbnQg
PSBudWxscHRyOwotICAgIH0KKyAgICBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVy
KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlciY+KE1vZHVsZVNjcmlw
dExvYWRlcjo6c2NyaXB0RmV0Y2hlcigpKTsgfQogCiBwcml2YXRlOgotICAgIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcihDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFBy
b21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVy
cz4mJik7CisgICAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNs
aWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UmLCBjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmKSBmaW5hbDsKIAotICAgIENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07Ci0gICAgUmVm
UHRyPERlZmVycmVkUHJvbWlzZT4gbV9wcm9taXNlOwotICAgIFJlZjxDYWNoZWRTY3JpcHRGZXRj
aGVyPiBtX3NjcmlwdEZldGNoZXI7Ci0gICAgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4g
bV9wYXJhbWV0ZXJzOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gbV9j
YWNoZWRTY3JpcHQ7CiAgICAgVVJMIG1fc291cmNlVVJMOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2ODhhZDkwZGFlM2VjZTk0OWVhMDli
MWVmZWU1ZGEyNmY5NGM3ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjsKLWNsYXNzIERl
ZmVycmVkUHJvbWlzZTsKLQotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsK
LXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQoKSA9
IGRlZmF1bHQ7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4pID0gMDsKLX07Ci0KLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAK
aW5kZXggYTQzMzc1ODY1YmJmMWVjNTk3M2JmMTcyYzkxYTM4NTMyMzRlMzc0ZC4uZGYzYzZiNmVi
Yjg0YWY3MmVkMjk1NWY5OTExZDA3YTg3YWIzNTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw2ICs0OCw3IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVx
dWVzdE1vZHVsZVNjcmlwdChEb2N1CiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlw
dD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNoZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2lu
TW9kZSwgU3RyaW5nJiYgaW50ZWdyaXR5LCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4g
cmVzb3VyY2VMb2FkUHJpb3JpdHkpIGNvbnN0CiB7CisgICAgLy8gV2l0aG91dCBzY3JpcHRpbmcs
IHRoZXJlIGlzIG5vIHdheSB0byBzdGFydCBXb3JrZXJzLgogICAgIGlmICghZG9jdW1lbnQuc2V0
dGluZ3MoKS5pc1NjcmlwdEVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5jcHAKaW5kZXggZGY3ZjNkNzQ2ZDVlMzJhYmFiNTE0NzZjOWRkYWNhNjNhNDM1MTM2Yy4uZWVm
MjEwMzg4NDlmZDg5ODQ5YWZjZWQ3MDMxODVmZjg5NGM0MGM3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKQEAgLTUy
LDYgKzUyLDI1IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlCiAgICAgcmVwb3J0RXhjZXB0aW9u
KGxleGljYWxHbG9iYWxPYmplY3QsIGV4Y2VwdGlvbiwgY2FjaGVkU2NyaXB0KTsKIH0KIAorU3Ry
aW5nIHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIFZNJiB2bSwgSlNWYWx1ZSBleGNlcHRpb24sIENhdGNoU2NvcGUmIGNh
dGNoU2NvcGUpCit7CisgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNTA4Nz4g
V2ViIEluc3BlY3RvcjogV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9uIHNob3VsZCBub3QgZXZhbHVh
dGUgSmF2YVNjcmlwdCBoYW5kbGluZyBleGNlcHRpb25zCisgICAgLy8gSWYgdGhpcyBpcyBhIGN1
c3RvbSBleGNlcHRpb24gb2JqZWN0LCBjYWxsIHRvU3RyaW5nIG9uIGl0IHRvIHRyeSBhbmQgZ2V0
IGEgbmljZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBleGNlcHRpb24uCisgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoYXV0byogZXJyb3IgPSBqc0R5bmFtaWNDYXN0PEVy
cm9ySW5zdGFuY2UqPih2bSwgZXhjZXB0aW9uKSkKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJy
b3ItPnNhbml0aXplZE1lc3NhZ2VTdHJpbmcoJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGVs
c2UgaWYgKGF1dG8qIGVycm9yID0ganNEeW5hbWljQ2FzdDxKU0RPTUV4Y2VwdGlvbio+KHZtLCBl
eGNlcHRpb24pKQorICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci0+d3JhcHBlZCgpLm1lc3Nh
Z2UoKTsKKyAgICBlbHNlCisgICAgICAgIGVycm9yTWVzc2FnZSA9IGV4Y2VwdGlvbi50b1dURlN0
cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisKKyAgICAvLyBXZSBuZWVkIHRvIGNsZWFyIGFu
eSBuZXcgZXhjZXB0aW9uIHRoYXQgbWF5IGJlIHRocm93biBpbiB0aGUgdG9TdHJpbmcoKSBjYWxs
IGFib3ZlLgorICAgIC8vIHJlcG9ydEV4Y2VwdGlvbigpIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBt
YWtpbmcgbmV3IGV4Y2VwdGlvbnMuCisgICAgY2F0Y2hTY29wZS5jbGVhckV4Y2VwdGlvbigpOwor
ICAgIHZtLmNsZWFyTGFzdEV4Y2VwdGlvbigpOworICAgIHJldHVybiBlcnJvck1lc3NhZ2U7Cit9
CisKIFN0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgVk0mIHZtLCBKU1ZhbHVlIGV4Y2VwdGlvbiwgQ2F0Y2hTY29wZSYgY2F0Y2hT
Y29wZSkKIHsKICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE1MDg3PiBXZWIg
SW5zcGVjdG9yOiBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24gc2hvdWxkIG5vdCBldmFsdWF0ZSBK
YXZhU2NyaXB0IGhhbmRsaW5nIGV4Y2VwdGlvbnMKQEAgLTEyMSwzNiArMTQwLDQ1IEBAIHZvaWQg
cmVwb3J0Q3VycmVudEV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCkKIAogSlNWYWx1ZSBjcmVhdGVET01FeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEV4Y2VwdGlvbkNvZGUgZWMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsK
LSAgICBpZiAoZWMgPT0gRXhpc3RpbmdFeGNlcHRpb25FcnJvcikKKyAgICBzd2l0Y2ggKGVjKSB7
CisgICAgY2FzZSBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yOgogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIAogICAgIC8vIEZJWE1FOiBIYW5kbGUgb3RoZXIgV2ViSURMIGV4Y2VwdGlvbiB0
eXBlcy4KLSAgICBpZiAoZWMgPT0gVHlwZUVycm9yKSB7CisgICAgY2FzZSBUeXBlRXJyb3I6CiAg
ICAgICAgIGlmIChtZXNzYWdlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVU
eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBjcmVhdGVUeXBl
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgbWVzc2FnZSk7Ci0gICAgfQogCi0gICAgaWYgKGVj
ID09IFJhbmdlRXJyb3IpIHsKKyAgICBjYXNlIFJhbmdlRXJyb3I6CiAgICAgICAgIGlmIChtZXNz
YWdlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSYW5nZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsICJCYWQgdmFsdWUiX3MpOwogICAgICAgICByZXR1cm4gY3JlYXRlUmFu
Z2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBtZXNzYWdlKTsKLSAgICB9CiAKLSAgICBpZiAo
ZWMgPT0gU3RhY2tPdmVyZmxvd0Vycm9yKQorICAgIGNhc2UgSlNTeW50YXhFcnJvcjoKKyAgICAg
ICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN5bnRh
eEVycm9yKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gY3JlYXRlU3ludGF4
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgbWVzc2FnZSk7CisKKyAgICBjYXNlIFN0YWNrT3Zl
cmZsb3dFcnJvcjoKICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoZWMgPT0gT3V0T2ZNZW1vcnlFcnJvcikKKworICAg
IGNhc2UgT3V0T2ZNZW1vcnlFcnJvcjoKICAgICAgICAgcmV0dXJuIGNyZWF0ZU91dE9mTWVtb3J5
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7CiAKLSAgICAvLyBGSVhNRTogQWxsIGNhbGxlcnMg
dG8gY3JlYXRlRE9NRXhjZXB0aW9uIG5lZWQgdG8gcGFzcyBpbiB0aGUgY29ycmVjdCBnbG9iYWwg
b2JqZWN0LgotICAgIC8vIEZvciBub3csIHdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0aGUgbGV4aWNh
bEdsb2JhbE9iamVjdC4gV2hpY2ggaXMgd3JvbmcgaW4gY2FzZXMgbGlrZSB0aGlzOgotICAgIC8v
IGZyYW1lc1swXS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KG51bGwsIG51bGwpOyAvLyB0aHJvd3Mg
YW4gZXhjZXB0aW9uIHdoaWNoIHNob3VsZCBoYXZlIHRoZSBzdWJmcmFtZSdzIHByb3RvdHlwZXMu
Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGRlcHJlY2F0ZWRHbG9iYWxP
YmplY3RGb3JQcm90b3R5cGUobGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgSlNWYWx1ZSBlcnJv
ck9iamVjdCA9IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBET01FeGNl
cHRpb246OmNyZWF0ZShlYywgbWVzc2FnZSkpOwotICAgIAotICAgIEFTU0VSVChlcnJvck9iamVj
dCk7Ci0gICAgYWRkRXJyb3JJbmZvKGxleGljYWxHbG9iYWxPYmplY3QsIGFzT2JqZWN0KGVycm9y
T2JqZWN0KSwgdHJ1ZSk7Ci0gICAgcmV0dXJuIGVycm9yT2JqZWN0OworICAgIGRlZmF1bHQ6IHsK
KyAgICAgICAgLy8gRklYTUU6IEFsbCBjYWxsZXJzIHRvIGNyZWF0ZURPTUV4Y2VwdGlvbiBuZWVk
IHRvIHBhc3MgaW4gdGhlIGNvcnJlY3QgZ2xvYmFsIG9iamVjdC4KKyAgICAgICAgLy8gRm9yIG5v
dywgd2UncmUgZ29pbmcgdG8gYXNzdW1lIHRoZSBsZXhpY2FsR2xvYmFsT2JqZWN0LiBXaGljaCBp
cyB3cm9uZyBpbiBjYXNlcyBsaWtlIHRoaXM6CisgICAgICAgIC8vIGZyYW1lc1swXS5kb2N1bWVu
dC5jcmVhdGVFbGVtZW50KG51bGwsIG51bGwpOyAvLyB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoaWNo
IHNob3VsZCBoYXZlIHRoZSBzdWJmcmFtZSdzIHByb3RvdHlwZXMuCisgICAgICAgIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90
eXBlKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAgICBKU1ZhbHVlIGVycm9yT2JqZWN0ID0g
dG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIERPTUV4Y2VwdGlvbjo6Y3Jl
YXRlKGVjLCBtZXNzYWdlKSk7CisKKyAgICAgICAgQVNTRVJUKGVycm9yT2JqZWN0KTsKKyAgICAg
ICAgYWRkRXJyb3JJbmZvKGxleGljYWxHbG9iYWxPYmplY3QsIGFzT2JqZWN0KGVycm9yT2JqZWN0
KSwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBlcnJvck9iamVjdDsKKyAgICB9CisgICAgfQorICAg
IHJldHVybiB7IH07CiB9CiAKIEpTVmFsdWUgY3JlYXRlRE9NRXhjZXB0aW9uKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFeGNlcHRpb24mJiBleGNlcHRpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKaW5k
ZXggMmQzZTMxMWY2MWVlYjY4NWFhYzM1NTQ2YWFlMTYwZGE5NzkwZWY1Zi4uZDFmNmRlOTM3NDcw
Y2U2ZGYyY2NiNjQ3MjI4NDc2NmZkMDE5NTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaApAQCAtNjUsNiArNjUsNyBAQCBX
RUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoR2V0dGVy
VHlwZUVycm9yKEpTQzo6SlNHbG9iYQogV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1
ZSByZWplY3RQcm9taXNlV2l0aFRoaXNUeXBlRXJyb3IoRGVmZXJyZWRQcm9taXNlJiwgY29uc3Qg
Y2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogb3BlcmF0aW9uTmFtZSk7CiBXRUJDT1JF
X0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoVGhpc1R5cGVFcnJv
cihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3Qg
Y2hhciogb3BlcmF0aW9uTmFtZSk7CiAKK1N0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhv
dXROYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlIGV4Y2Vw
dGlvbiwgSlNDOjpDYXRjaFNjb3BlJik7CiBTdHJpbmcgcmV0cmlldmVFcnJvck1lc3NhZ2UoSlND
OjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBKU0M6
OkNhdGNoU2NvcGUmKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqID0g
bnVsbHB0cik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFeGNlcHRpb24qLCBDYWNoZWRTY3JpcHQqID0gbnVsbHB0ciwgRXhj
ZXB0aW9uRGV0YWlscyogPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCA1OGI3ZGY3NjBjMDBhMzFmZjA4ZWQyMmRl
ZTIyYThjNzQ0M2FlOGRkLi45ZDY5N2Q0NTliNTYzNDVjYzgzOTYyMDI2Njc2ZTAwYTk4YmY0OWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlICJSZWplY3RlZFByb21pc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZWRDbG9uZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIK
ICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtNDIyLDYgKzQyMyw3OSBAQCBKU0M6
OkpTUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Omluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsbwogfQogI2VuZGlmCiAKK3N0YXRpYyBTY3JpcHRNb2R1bGVMb2Fk
ZXIqIHNjcmlwdE1vZHVsZUxvYWRlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5pbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKSkgeworICAgICAgICBpZiAoYXV0byBkb2N1
bWVudCA9IGpzQ2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpLT53cmFw
cGVkKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiAmZG9jdW1lbnQtPm1vZHVsZUxv
YWRlcigpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKGdsb2JhbE9i
amVjdC0+aW5oZXJpdHM8SlNSZW1vdGVET01XaW5kb3dCYXNlPih2bSkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2VyR2xvYmFs
U2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxvYWRlcigpOwor
ICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZT4o
dm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNJREJT
ZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0Pih2bSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
I2VuZGlmCisgICAgZGF0YUxvZygiVW5leHBlY3RlZCBnbG9iYWwgb2JqZWN0OiAiLCBKU1ZhbHVl
KGdsb2JhbE9iamVjdCksICJcbiIpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTQzo6SWRlbnRpZmllciBKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6Ompz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxv
YWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxv
YWRlci0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1w
b3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiB7IH07Cit9CisKK0pT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFt
ZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlw
dE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBsb2FkZXItPmZldGNoKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXks
IHBhcmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7Cisg
ICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7CisgICAgcmV0
dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6
SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAg
IEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1
bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmV2YWx1YXRlKGds
b2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0
RmV0Y2hlcik7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKworSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVs
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1N0cmluZyogbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcnMsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byog
bG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9k
dWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0ZXJzLCBzb3VyY2VPcmlnaW4pKTsKKyAgICBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAg
ICBzY29wZS5yZWxlYXNlKCk7CisgICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNV
bmRlZmluZWQoKSk7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNPYmplY3QqIEpT
RE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1v
ZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCog
bW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUds
b2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
Z2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVy
KHRoaXNPYmplY3QpKQorICAgICAgICByZXR1cm4gbG9hZGVyLT5jcmVhdGVJbXBvcnRNZXRhUHJv
cGVydGllcyhnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNv
cmQsIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVy
ZSgpKTsKK30KKwogSlNET01HbG9iYWxPYmplY3QmIGNhbGxlckdsb2JhbE9iamVjdChKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUpCiB7CiAg
ICAgY2xhc3MgR2V0Q2FsbGVyR2xvYmFsT2JqZWN0RnVuY3RvciB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCBiODQwNzJkZGQ3NDZiM2Q2
YzUxMDYwZDkwNTAxYjVjZWExYjQ5OWIxLi5mNDlhNGNkMjU3MTk3MTE4OTE3YTdkN2E0YjZjMGUx
MWZjNzZiYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgKQEAgLTEwNSw2ICsxMDUsMTIgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNET01H
bG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CiAgICAgc3RhdGljIEpT
Qzo6SlNQcm9taXNlKiBpbnN0YW50aWF0ZVN0cmVhbWluZyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OkpTT2JqZWN0Kik7CiAjZW5kaWYKIAorICAgIHN0YXRpYyBKU0M6
OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFs
dWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUg
bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVM
b2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICBz
dGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0cmluZyos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKKyAgICBzdGF0aWMgSlND
OjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOworCiAgICAgSlNET01TdHJ1Y3R1cmVNYXAg
bV9zdHJ1Y3R1cmVzOwogICAgIEpTRE9NQ29uc3RydWN0b3JNYXAgbV9jb25zdHJ1Y3RvcnM7CiAg
ICAgRE9NR3VhcmRlZE9iamVjdFNldCBtX2d1YXJkZWRPYmplY3RzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggNTYzZWZhMDU3MWI1ZDQ2
MmQ5ZTY0NTA4OWYwYmQ4Zjc3ZDE5YTc2OC4uMzEyYTAxMTU4ZThjMjgwODNjMDdlNDJkYjg3MjQ1
ZmU0ZTVjNTdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwCkBAIC0zMzksNTQgKzMzOSw0IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJl
RnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAg
fQogfQogCi1KU0M6OklkZW50aWZpZXIgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNv
bHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RP
TVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihn
bG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09i
amVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9k
dWxlTG9hZGVyKCkucmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFt
ZSwgaW1wb3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOwotICAgIHJldHVybiB7IH07Ci19
Ci0KLUpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVy
RmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBw
YXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9N
V2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9j
dW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuZmV0Y2goZ2xvYmFs
T2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hl
cikpOwotICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0
dXJlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFs
T2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpK
U1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6
SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVj
dCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYg
KFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5ldmFsdWF0ZShn
bG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQsIHNjcmlw
dEZldGNoZXIpOwotICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxl
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciog
bW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcGFy
YW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKLXsKLSAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anND
YXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1
bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuaW1w
b3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0
ZXJzLCBzb3VyY2VPcmlnaW4pKTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNl
ID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVy
bmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKLSAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcHJvbWlz
ZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIHByb21p
c2U7Ci19Ci0KLUpTQzo6SlNPYmplY3QqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyQ3Jl
YXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVL
ZXksIEpTQzo6SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nh
c3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3Vt
ZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAg
ICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0
aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwg
c2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9i
amVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDNlZjk4MGRkMjdmNmIyMTM5ODcwMDhiYTQ3NmM4
Y2E2OWYyZjBiNjQuLjUxNDJiMWM3ZGMyNWMyMmZlOTc4OTVlNzVhZTIyZWY0ZDFlNTg5ZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC05OSwx
MiArOTksNiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd0Jhc2UgOiBwdWJsaWMg
SlNET01HbG9iYWxPYmplY3QgewogcHJpdmF0ZToKICAgICB1c2luZyBSZXNwb25zZUNhbGxiYWNr
ID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IGNoYXIqLCBzaXplX3QpPjsKIAotICAgIHN0YXRp
YyBKU0M6OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2Fk
ZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpT
VmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsK
LSAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9k
dWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0
cmluZyosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKLSAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwotCiAgICAgUmVmUHRyPERPTVdp
bmRvdz4gbV93cmFwcGVkOwogICAgIFJlZlB0cjxFdmVudD4gbV9jdXJyZW50RXZlbnQ7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwCmluZGV4IDQyYjI2YzlmNGVhMjE2MjA3ZGU0Yzg2ODIwYjhhODFiNjAzNWI3ZWIu
LjJkNzkzZmZmMjE4NTNhOGExYTc4ODA2NjcyNTBmNTdlNzUyZmUzZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAK
QEAgLTU5LDExICs1OSwxMSBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZQogICAgICZqYXZhU2Ny
aXB0UnVudGltZUZsYWdzLAogICAgICZxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wLAogICAgICZz
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckltcG9ydE1vZHVsZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlclJlc29sdmUK
LSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJGZXRjaAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxl
TG9hZGVyRXZhbHVhdGUKKyAgICAmbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlLAorICAgICZtb2R1
bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1bGVMb2FkZXJGZXRjaCwKKyAgICAmbW9kdWxlTG9h
ZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMsCisgICAgJm1vZHVsZUxvYWRlckV2YWx1YXRl
LAogICAgICZwcm9taXNlUmVqZWN0aW9uVHJhY2tlciwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNl
cHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5jcHAKaW5kZXggMzVmYTZlMzI3N2ZiMGQ0YmUwZTBlMWVkYzQzNzIyZWRhZGZjOGFmMi4u
OWZhZWM5NTljMzlkMTc0ODE4MWM5ODY1MDAzZDVhODZmMTdmNWUzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3Bw
CkBAIC00OSwxMSArNDksMTEgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICAmamF2YVNj
cmlwdFJ1bnRpbWVGbGFncywKICAgICBudWxscHRyLCAvLyBxdWV1ZU1pY3JvdGFza1RvRXZlbnRM
b29wCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9h
ZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZldGNoCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMKLSAgICBudWxscHRy
LCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUs
CisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNoLAorICAg
ICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9kdWxlTG9h
ZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAogICAgICZyZXBvcnRV
bmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9u
T3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZhOTEwZTk0OWI3YWMxYTM4ZWRlZWNiMDNkZWI2ZWU4OTRjY2ViMGQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNo
UGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEZldGNoZXIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlU2NyaXB0TG9hZGVyPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+TW9kdWxlU2NyaXB0TG9hZGVyKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBjbGVh
ckNsaWVudCgpCisgICAgeworICAgICAgICBBU1NFUlQobV9jbGllbnQpOworICAgICAgICBtX2Ns
aWVudCA9IG51bGxwdHI7CisgICAgfQorCisgICAgSlNDOjpTY3JpcHRGZXRjaGVyJiBzY3JpcHRG
ZXRjaGVyKCkgeyByZXR1cm4gbV9zY3JpcHRGZXRjaGVyLmdldCgpOyB9CisgICAgTW9kdWxlRmV0
Y2hQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9
CisKK3Byb3RlY3RlZDoKKyAgICBNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgSlNDOjpTY3JpcHRGZXRj
aGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFt
ZXRlcnMpCisgICAgICAgIDogbV9jbGllbnQoJmNsaWVudCkKKyAgICAgICAgLCBtX3Byb21pc2Uo
JnByb21pc2UpCisgICAgICAgICwgbV9zY3JpcHRGZXRjaGVyKHNjcmlwdEZldGNoZXIpCisgICAg
ICAgICwgbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCisgICAgeworICAgIH0KKwor
ICAgIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCogbV9jbGllbnQ7CisgICAgUmVmUHRyPERlZmVy
cmVkUHJvbWlzZT4gbV9wcm9taXNlOworICAgIFJlZjxKU0M6OlNjcmlwdEZldGNoZXI+IG1fc2Ny
aXB0RmV0Y2hlcjsKKyAgICBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiBtX3BhcmFtZXRl
cnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5
OTVmNDhlZTNkMWUwMmMxZDhjOWM5ZGEyYmQ1ODIzNmYzYmEwN2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1vZHVs
ZVNjcmlwdExvYWRlcjsKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsKKworY2xhc3MgTW9kdWxlU2Ny
aXB0TG9hZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQo
TW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSA9IDA7Cit9
OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9h
ZGVyLmNwcAppbmRleCBhYTViODBiNTg2Yjc5ZTBlNTc1MDFjZDUxMDc4ZGYyNWE2MjVlNWQ5Li5k
NWEyZjIzMThjMjBhNDE4N2Y3Y2E2ODFjODExNWNjNGY5YmExMzYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTI5LDcgKzI5
LDYgQEAKICNpbmNsdWRlICJDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlICJD
YWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCi0jaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCkBAIC00MSw2ICs0MCw4IEBA
CiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50
ZWdyaXR5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUgIldv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU01vZHVsZVJlY29yZC5oPgpAQCAtNTIsOCArNTMsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVNjcmlwdE1vZHVsZUxvYWRlcjo6U2NyaXB0TW9kdWxlTG9hZGVyKERvY3VtZW50JiBk
b2N1bWVudCkKLSAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCitTY3JpcHRNb2R1bGVMb2FkZXI6
OlNjcmlwdE1vZHVsZUxvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBPd25l
clR5cGUgb3duZXJUeXBlKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX293bmVy
VHlwZShvd25lclR5cGUpCiB7CiB9CiAKQEAgLTY4LDcgKzcwLDcgQEAgc3RhdGljIGJvb2wgaXNS
b290TW9kdWxlKEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSkKICAgICByZXR1cm4gaW1w
b3J0ZXJNb2R1bGVLZXkuaXNTeW1ib2woKSB8fCBpbXBvcnRlck1vZHVsZUtleS5pc1VuZGVmaW5l
ZCgpOwogfQogCi1zdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVj
aWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3Qg
VVJMJiBiYXNlVVJMKQorc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxl
U3BlY2lmaWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNjcmlwdE1vZHVsZUxv
YWRlcjo6T3duZXJUeXBlIG93bmVyVHlwZSwgY29uc3QgU3RyaW5nJiBzcGVjaWZpZXIsIGNvbnN0
IFVSTCYgYmFzZVVSTCkKIHsKICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcmVzb2x2ZS1hLW1vZHVsZS1zcGVjaWZpZXIKIApAQCAt
NzksNyArODEsMTIgQEAgc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxl
U3BlY2lmaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3QKICAgICBpZiAoIXNwZWNpZmll
ci5zdGFydHNXaXRoKCcvJykgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLyIpICYmICFzcGVj
aWZpZXIuc3RhcnRzV2l0aCgiLi4vIikpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCht
YWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lmaWVyLCAnIl9zLCBzcGVjaWZpZXIsICInIGRvZXMgbm90
IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9cIiwgb3IgXCIuLi9cIi4gUmVmZXJlbmNlZCBmcm9tICJf
cywgYmFzZVVSTC5zdHJpbmcoKSkpOwogCi0gICAgYXV0byByZXN1bHQgPSBkb2N1bWVudC5jb21w
bGV0ZVVSTChzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIFVSTCByZXN1bHQ7CisgICAgaWYgKG93
bmVyVHlwZSA9PSBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93bmVyVHlwZTo6RG9jdW1lbnQpCisgICAg
ICAgIHJlc3VsdCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5jb21wbGV0ZVVSTChzcGVj
aWZpZXIsIGJhc2VVUkwpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gVVJMKGJhc2VVUkws
IHNwZWNpZmllcik7CisKICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJNb2R1bGUgbmFtZSwgJyJfcywgcmVzdWx0LnN0
cmluZygpLCAiJyBkb2VzIG5vdCByZXNvbHZlIHRvIGEgdmFsaWQgVVJMLiJfcykpOwogICAgIHJl
dHVybiByZXN1bHQ7CkBAIC0xMDcsNyArMTE0LDcgQEAgSlNDOjpJZGVudGlmaWVyIFNjcmlwdE1v
ZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwK
ICAgICBVUkwgYmFzZVVSTCA9IHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoKmpzR2xvYmFsT2Jq
ZWN0LCBpbXBvcnRlck1vZHVsZUtleSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKIAotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2RvY3Vt
ZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVs
ZVNwZWNpZmllcihtX2NvbnRleHQsIG1fb3duZXJUeXBlLCBzcGVjaWZpZXIsIGJhc2VVUkwpOwog
ICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgIEpTQzo6dGhyb3dUeXBlRXJyb3IoanNHbG9iYWxP
YmplY3QsIHNjb3BlLCByZXN1bHQuZXJyb3IoKSk7CiAgICAgICAgIHJldHVybiB7IH07CkBAIC0x
NjEsMTMgKzE2OCwxOSBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2Fk
ZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIGlmIChhdXRvKiBz
Y3JpcHRGZXRjaFBhcmFtZXRlcnMgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU1NjcmlwdEZl
dGNoUGFyYW1ldGVycyo+KHZtLCBwYXJhbWV0ZXJzKSkKICAgICAgICAgdG9wTGV2ZWxGZXRjaFBh
cmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxNb2R1bGVGZXRjaFBhcmFtZXRlcnMqPigmc2NyaXB0RmV0
Y2hQYXJhbWV0ZXJzLT5wYXJhbWV0ZXJzKCkpOwogCi0gICAgYXV0byBsb2FkZXIgPSBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNf
Y2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNo
ZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFy
YW1ldGVycykpOwotICAgIG1fbG9hZGVycy5hZGQobG9hZGVyLmNvcHlSZWYoKSk7Ci0gICAgaWYg
KCFsb2FkZXItPmxvYWQobV9kb2N1bWVudCwgY29tcGxldGVkVVJMKSkgewotICAgICAgICBsb2Fk
ZXItPmNsZWFyQ2xpZW50KCk7Ci0gICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2Fk
ZXIpKTsKLSAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoZGVmZXJyZWQuZ2V0
KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1
bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwotICAgICAgICByZXR1cm4ganNQcm9taXNlOworICAgIGlm
IChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CisgICAgICAgIGF1dG8gbG9h
ZGVyID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdl
dCgpLCAqc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6
SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9w
TGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKKyAgICAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29w
eVJlZigpKTsKKyAgICAgICAgaWYgKCFsb2FkZXItPmxvYWQoZG93bmNhc3Q8RG9jdW1lbnQ+KG1f
Y29udGV4dCksIFdURk1vdmUoY29tcGxldGVkVVJMKSkpIHsKKyAgICAgICAgICAgIGxvYWRlci0+
Y2xlYXJDbGllbnQoKTsKKyAgICAgICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2Fk
ZXIpKTsKKyAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKGRlZmVycmVk
LmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEg
bW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVybiBqc1Byb21pc2U7
CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGxvYWRlciA9IFdvcmtlck1v
ZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19j
YXN0PFdvcmtlclNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hl
cio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJh
bWV0ZXJzKSk7CisgICAgICAgIG1fbG9hZGVycy5hZGQobG9hZGVyLmNvcHlSZWYoKSk7CisgICAg
ICAgIGxvYWRlci0+bG9hZChtX2NvbnRleHQsIFdURk1vdmUoY29tcGxldGVkVVJMKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGpzUHJvbWlzZTsKQEAgLTE3Niw3ICsxODksNyBAQCBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGpzR2xvYmFsTwogVVJMIFNjcmlwdE1vZHVsZUxvYWRlcjo6bW9kdWxlVVJMKEpTQzo6SlNH
bG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUp
CiB7CiAgICAgaWYgKG1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCkpCi0gICAgICAgIHJldHVybiBt
X2RvY3VtZW50LnVybCgpOworICAgICAgICByZXR1cm4gbV9jb250ZXh0LnVybCgpOwogCiAgICAg
QVNTRVJUKG1vZHVsZUtleVZhbHVlLmlzU3RyaW5nKCkpOwogICAgIHJldHVybiBVUkwoVVJMKCks
IGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoJmpzR2xvYmFsT2JqZWN0KSk7CkBAIC0x
ODcsOCArMjAwLDExIEBAIFVSTCBTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJMRnJvbVJl
cXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYganNHbG9iYWxPCiAgICAgSlNDOjpWTSYgdm0g
PSBqc0dsb2JhbE9iamVjdC52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAotICAgIGlmIChpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKQotICAgICAg
ICByZXR1cm4gbV9kb2N1bWVudC5iYXNlVVJMKCk7CisgICAgaWYgKGlzUm9vdE1vZHVsZShtb2R1
bGVLZXlWYWx1ZSkpIHsKKyAgICAgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9j
dW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCku
YmFzZVVSTCgpOworICAgICAgICByZXR1cm4gbV9jb250ZXh0LnVybCgpOworICAgIH0KIAogICAg
IEFTU0VSVCghaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSk7CiAgICAgQVNTRVJUKG1vZHVs
ZUtleVZhbHVlLmlzU3RyaW5nKCkpOwpAQCAtMjE5LDggKzIzNSwxNCBAQCBKU0M6OkpTVmFsdWUg
U2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2Jh
bE9iamVjdCwgSgogICAgIGlmICghc291cmNlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IEpTQzo6dGhyb3dUeXBlRXJyb3IoanNHbG9iYWxPYmplY3QsIHNjb3BlLCAiTW9kdWxlIGtleSBp
cyBhbiBpbnZhbGlkIFVSTC4iX3MpOwogCi0gICAgaWYgKGF1dG8qIGZyYW1lID0gbV9kb2N1bWVu
dC5mcmFtZSgpKQotICAgICAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxl
KHNvdXJjZVVSTCwgKm1vZHVsZVJlY29yZCk7CisgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVy
VHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KG1fY29udGV4dCkuZnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBmcmFtZS0+c2Ny
aXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBBU1NFUlQoaXM8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KG1fY29u
dGV4dCkpOworICAgICAgICBpZiAoYXV0byogc2NyaXB0ID0gZG93bmNhc3Q8V29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGU+KG1fY29udGV4dCkuc2NyaXB0KCkpCisgICAgICAgICAgICByZXR1cm4g
c2NyaXB0LT5ldmFsdWF0ZU1vZHVsZSgqbW9kdWxlUmVjb3JkKTsKKyAgICB9CiAgICAgcmV0dXJu
IEpTQzo6anNVbmRlZmluZWQoKTsKIH0KIApAQCAtMjQ4LDggKzI3MCwxMyBAQCBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1vZHVsZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBqcwogICAgIFVSTCBiYXNlVVJMOwogICAgIFJlZlB0cjxKU0M6OlNjcmlwdEZl
dGNoZXI+IHNjcmlwdEZldGNoZXI7CiAgICAgaWYgKHNvdXJjZU9yaWdpbi5pc051bGwoKSkgewot
ICAgICAgICBiYXNlVVJMID0gbV9kb2N1bWVudC5iYXNlVVJMKCk7Ci0gICAgICAgIHNjcmlwdEZl
dGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9kb2N1bWVudC5jaGFyc2V0KCkp
OworICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAg
ICAgICAgICAgYmFzZVVSTCA9IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmJhc2VVUkwo
KTsKKyAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVh
dGUoZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuY2hhcnNldCgpKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGJhc2VVUkwgPSBtX2NvbnRleHQudXJsKCk7CisgICAgICAgICAg
ICBzY3JpcHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4pOworICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgYmFzZVVSTCA9IFVSTChVUkwoKSwgc291cmNlT3JpZ2luLnN0cmluZygpKTsKICAgICAg
ICAgaWYgKCFiYXNlVVJMLmlzVmFsaWQoKSkKQEAgLTI1NywxNCArMjg0LDE5IEBAIEpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6aW1wb3J0TW9kdWxlKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGpzCiAKICAgICAgICAgaWYgKHNvdXJjZU9yaWdpbi5mZXRjaGVyKCkpCiAg
ICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gc291cmNlT3JpZ2luLmZldGNoZXIoKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6
OmNyZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7CisKKyAgICAgICAgaWYgKCFzY3JpcHRGZXRj
aGVyKSB7CisgICAgICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVu
dCkKKyAgICAgICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6
Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmNoYXJzZXQoKSk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZl
dGNoZXI6OmNyZWF0ZShGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luKTsKKyAg
ICAgICAgfQogICAgIH0KICAgICBBU1NFUlQoYmFzZVVSTC5pc1ZhbGlkKCkpOwogICAgIEFTU0VS
VChzY3JpcHRGZXRjaGVyKTsKIAogICAgIGF1dG8gc3BlY2lmaWVyID0gbW9kdWxlTmFtZS0+dmFs
dWUoanNHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNp
ZmllcihtX2RvY3VtZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVzdWx0ID0g
cmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2NvbnRleHQsIG1fb3duZXJUeXBlLCBzcGVjaWZpZXIs
IGJhc2VVUkwpOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4gcmVqZWN0UHJvbWlz
ZShnbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgcmVzdWx0LmVycm9yKCkpOwogCkBAIC0yODgsNjIg
KzMyMCwxMDcgQEAgSlNDOjpKU09iamVjdCogU2NyaXB0TW9kdWxlTG9hZGVyOjpjcmVhdGVJbXBv
cnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gbWV0YVByb3Bl
cnRpZXM7CiB9CiAKLXZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXImIGxvYWRlciwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gcHJv
bWlzZSkKK3ZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3Jp
cHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwgVVJMJiYgc291cmNlVVJMLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiBwcm9taXNlKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0
CiAKLSAgICBVUkwgc291cmNlVVJMID0gbG9hZGVyLnNvdXJjZVVSTCgpOwotICAgIGlmICghbV9s
b2FkZXJzLnJlbW92ZSgmbG9hZGVyKSkKKyAgICBpZiAoIW1fbG9hZGVycy5yZW1vdmUoJm1vZHVs
ZVNjcmlwdExvYWRlcikpCiAgICAgICAgIHJldHVybjsKLSAgICBsb2FkZXIuY2xlYXJDbGllbnQo
KTsKKyAgICBtb2R1bGVTY3JpcHRMb2FkZXIuY2xlYXJDbGllbnQoKTsKIAotICAgIGF1dG8mIGNh
Y2hlZFNjcmlwdCA9ICpsb2FkZXIuY2FjaGVkU2NyaXB0KCk7CisgICAgaWYgKG1fb3duZXJUeXBl
ID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgYXV0byYgbG9hZGVyID0gc3RhdGlj
X2Nhc3Q8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVyKTsKKyAg
ICAgICAgYXV0byYgY2FjaGVkU2NyaXB0ID0gKmxvYWRlci5jYWNoZWRTY3JpcHQoKTsKIAotICAg
IGlmIChjYWNoZWRTY3JpcHQucmVzb3VyY2VFcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7Ci0g
ICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxv
YWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iX3MpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LnJlc291cmNl
RXJyb3IoKS5pc0FjY2Vzc0NvbnRyb2woKSkgeworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdh
dGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2Fz
RXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2lu
IFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KIAotICAgIGlmIChjYWNoZWRTY3JpcHQuZXJyb3JPY2N1cnJlZCgpKSB7Ci0gICAgICAg
IHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKCpwcm9taXNlLCBNb2R1bGVGZXRjaEZhaWx1
cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9z
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC5lcnJv
ck9jY3VycmVkKCkpIHsKKyAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9y
KHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBv
cnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CiAKLSAgICBpZiAoY2FjaGVkU2NyaXB0Lndhc0NhbmNlbGVkKCkpIHsKLSAgICAg
ICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoKnByb21pc2UsIE1vZHVsZUZldGNoRmFp
bHVyZUtpbmQ6Oldhc0NhbmNlbGVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBpcyBjYW5j
ZWxlZC4iX3MpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoY2FjaGVkU2Ny
aXB0Lndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29y
a0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVk
LCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4iX3MpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3Vw
cG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBl
KCkpKSB7Ci0gICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L3dlYmFwcGFwaXMuaHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0Ci0gICAgICAgIC8v
IFRoZSByZXN1bHQgb2YgZXh0cmFjdGluZyBhIE1JTUUgdHlwZSBmcm9tIHJlc3BvbnNlJ3MgaGVh
ZGVyIGxpc3QgKGlnbm9yaW5nIHBhcmFtZXRlcnMpIGlzIG5vdCBhIEphdmFTY3JpcHQgTUlNRSB0
eXBlLgotICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNz
aWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFz
dCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEg
Y29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1h
a2VTdHJpbmcoIiciLCBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpLCAiJyBpcyBu
b3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iKSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CisgICAgICAgIGlmICghTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0
TUlNRVR5cGUoY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSkpIHsKKyAgICAgICAg
ICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMu
aHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0CisgICAgICAgICAgICAvLyBUaGUgcmVz
dWx0IG9mIGV4dHJhY3RpbmcgYSBNSU1FIHR5cGUgZnJvbSByZXNwb25zZSdzIGhlYWRlciBsaXN0
IChpZ25vcmluZyBwYXJhbWV0ZXJzKSBpcyBub3QgYSBKYXZhU2NyaXB0IE1JTUUgdHlwZS4KKyAg
ICAgICAgICAgIC8vIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGZldGNoaW5nIGEgY2xhc3NpYyBz
Y3JpcHQgZG9lcyBub3QgaW5jbHVkZSBNSU1FIHR5cGUgY2hlY2tpbmcuIEluIGNvbnRyYXN0LCBt
b2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwgdG8gbG9hZCBpZiB0aGV5IGFyZSBub3Qgb2YgYSBjb3Jy
ZWN0IE1JTUUgdHlwZS4KKyAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1h
a2VTdHJpbmcoIiciLCBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpLCAiJyBpcyBu
b3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXV0byogcGFyYW1ldGVycyA9IGxvYWRlci5wYXJh
bWV0ZXJzKCkpIHsKKyAgICAgICAgICAgIGlmICghbWF0Y2hJbnRlZ3JpdHlNZXRhZGF0YShjYWNo
ZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkgeworICAgICAgICAgICAgICAgIHBy
b21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIkNhbm5vdCBsb2FkIHNjcmlwdCAi
LCBpbnRlZ3JpdHlNaXNtYXRjaERlc2NyaXB0aW9uKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+
aW50ZWdyaXR5KCkpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgVVJMIHJlc3BvbnNlVVJMID0gY2FjaGVkU2NyaXB0LnJlc3Bv
bnNlKCkudXJsKCk7CisgICAgICAgIC8vIElmIHdlIGRvIG5vdCBoYXZlIHJlZGlyZWN0aW9uLCB3
ZSBtdXN0IHJlc2VydmUgdGhlIHNvdXJjZSBVUkwncyBmcmFnbWVudCBleHBsaWNpdGx5IGhlcmUg
c2luY2UgUmVzb3VyY2VSZXNwb25zZTo6dXJsKCkgaXMgdGhlIG9uZSB3aGVuIHdlIGZpcnN0IGNh
Y2hlIGl0IHRvIE1lbW9yeUNhY2hlLgorICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNr
IGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODQyMAorICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNDkwCisgICAgICAgIGlmICghY2FjaGVk
U2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpICYmIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJj
ZSgpICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgeworICAgICAg
ICAgICAgaWYgKHNvdXJjZVVSTC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkKKyAgICAgICAgICAg
ICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIoc291cmNlVVJMLmZyYWdtZW50
SWRlbnRpZmllcigpKTsKKyAgICAgICAgfQorCisgICAgICAgIG1fcmVxdWVzdFVSTFRvUmVzcG9u
c2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwgV1RGTW92ZShyZXNwb25zZVVSTCkpOwor
ICAgICAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmpl
Y3QmIGpzR2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpKU1NvdXJjZUNv
ZGU6OmNyZWF0ZShqc0dsb2JhbE9iamVjdC52bSgpLAorICAgICAgICAgICAgICAgIEpTQzo6U291
cmNlQ29kZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyAmY2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3Vy
Y2VDb2RlKCkgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8mIGxv
YWRlciA9IHN0YXRpY19jYXN0PFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciY+KG1vZHVsZVNjcmlw
dExvYWRlcik7CisgICAgICAgIGF1dG8mIHdvcmtlclNjcmlwdExvYWRlciA9IGxvYWRlci5zY3Jp
cHRMb2FkZXIoKTsKIAotICAgIGlmIChhdXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRl
cnMoKSkgewotICAgICAgICBpZiAoIW1hdGNoSW50ZWdyaXR5TWV0YWRhdGEoY2FjaGVkU2NyaXB0
LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpIHsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVj
dChUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIkNhbm5vdCBsb2FkIHNjcmlwdCAiLCBpbnRlZ3JpdHlN
aXNtYXRjaERlc2NyaXB0aW9uKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkp
KSk7CisgICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpIHsKKyAgICAgICAg
ICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZXJyb3IoKS5pc0FjY2Vzc0NvbnRyb2woKSkgewor
ICAgICAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2UuZ2V0
KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJDcm9zcy1vcmlnaW4gc2Ny
aXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4i
X3MpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgaWYgKHdvcmtlclNjcmlwdExvYWRlci5lcnJvcigpLmlzQ2FuY2VsbGF0aW9uKCkpIHsKKyAg
ICAgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgp
LCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZCwgIkltcG9ydGluZyBhIG1vZHVs
ZSBzY3JpcHQgaXMgY2FuY2VsZWQuIl9zKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHBy
b21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRp
bmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9Ci0gICAgfQogCi0gICAgVVJMIHJlc3BvbnNlVVJMID0gY2FjaGVkU2NyaXB0LnJlc3Bv
bnNlKCkudXJsKCk7Ci0gICAgLy8gSWYgd2UgZG8gbm90IGhhdmUgcmVkaXJlY3Rpb24sIHdlIG11
c3QgcmVzZXJ2ZSB0aGUgc291cmNlIFVSTCdzIGZyYWdtZW50IGV4cGxpY2l0bHkgaGVyZSBzaW5j
ZSBSZXNvdXJjZVJlc3BvbnNlOjp1cmwoKSBpcyB0aGUgb25lIHdoZW4gd2UgZmlyc3QgY2FjaGUg
aXQgdG8gTWVtb3J5Q2FjaGUuCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVu
dHMgdGhyb3VnaCByZWRpcmVjdGlvbnMuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1ODQyMAotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTA0OTAKLSAgICBpZiAoIWNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlv
bnMoKSAmJiBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5zb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3Bv
bnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKLSAgICAgICAgaWYgKHNvdXJjZVVSTC5oYXNG
cmFnbWVudElkZW50aWZpZXIoKSkKLSAgICAgICAgICAgIHJlc3BvbnNlVVJMLnNldEZyYWdtZW50
SWRlbnRpZmllcihzb3VyY2VVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAgIH0KKyAgICAg
ICAgaWYgKCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3
b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICAgICAgLy8g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2Zl
dGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKKyAgICAgICAgICAgIC8vIFRoZSByZXN1bHQgb2Yg
ZXh0cmFjdGluZyBhIE1JTUUgdHlwZSBmcm9tIHJlc3BvbnNlJ3MgaGVhZGVyIGxpc3QgKGlnbm9y
aW5nIHBhcmFtZXRlcnMpIGlzIG5vdCBhIEphdmFTY3JpcHQgTUlNRSB0eXBlLgorICAgICAgICAg
ICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBk
b2VzIG5vdCBpbmNsdWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBz
Y3JpcHRzIHdpbGwgZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlN
RSB0eXBlLgorICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmlu
ZygiJyIsIHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBh
IHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQogCi0gICAgbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcC5hZGQoc291cmNlVVJM
LnN0cmluZygpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSk7Ci0gICAgcHJvbWlzZS0+cmVzb2x2ZVdp
dGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewotICAg
ICAgICByZXR1cm4gSlNDOjpKU1NvdXJjZUNvZGU6OmNyZWF0ZShqc0dsb2JhbE9iamVjdC52bSgp
LAotICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNo
ZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5z
Y3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUoKSB9KTsKLSAgICB9KTsKKyAgICAgICAgVVJM
IHJlc3BvbnNlVVJMID0gd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCk7CisKKyAgICAg
ICAgLy8gSWYgd2UgZG8gbm90IGhhdmUgcmVkaXJlY3Rpb24sIHdlIG11c3QgcmVzZXJ2ZSB0aGUg
c291cmNlIFVSTCdzIGZyYWdtZW50IGV4cGxpY2l0bHkgaGVyZSBzaW5jZSBSZXNvdXJjZVJlc3Bv
bnNlOjp1cmwoKSBpcyB0aGUgb25lIHdoZW4gd2UgZmlyc3QgY2FjaGUgaXQgdG8gTWVtb3J5Q2Fj
aGUuCisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJhY2sgZnJhZ21lbnRzIHRocm91Z2gg
cmVkaXJlY3Rpb25zLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU4NDIwCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTA0OTAKKyAgICAgICAgaWYgKCF3b3JrZXJTY3JpcHRMb2FkZXIuaXNSZWRp
cmVjdGVkKCkgJiYgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkgIT0gUmVzb3Vy
Y2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7CisgICAgICAgICAgICBpZiAoc291
cmNlVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIHJlc3BvbnNl
VVJMLnNldEZyYWdtZW50SWRlbnRpZmllcihzb3VyY2VVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkp
OworICAgICAgICB9CisKKyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcC5hZGQo
c291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7CisgICAgICAgIHByb21pc2UtPnJlc29s
dmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QpIHsK
KyAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2Jq
ZWN0LnZtKCksCisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291cmNl
Q29kZSB7IHdvcmtlclNjcmlwdExvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCks
IHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlw
dEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOworICAgICAgICB9KTsKKyAgICB9CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgK
aW5kZXggZGUyOWQyZjRiZjA5NmI2MGMzNjk5ODAzMTZjMTQ4NmIyODJhYmYwOS4uZGYzNGQ1NTFh
MTFjZDk4ZjRlMjM2YTJhYTFmNDgyNzlkOTY0YzY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKQEAgLTI1LDggKzI1LDggQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCIKLSNpbmNs
dWRlICJDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJNb2R1bGVT
Y3JpcHRMb2FkZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQ1LDE2ICs0NSwxNyBAQCBj
bGFzcyBTb3VyY2VPcmlnaW47CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7CiAKLWNsYXNzIFNjcmlwdE1vZHVsZUxvYWRlciBmaW5hbCA6IHByaXZhdGUgQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlciBmaW5hbCA6
IHByaXZhdGUgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShTY3JpcHRNb2R1bGVMb2FkZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoRG9jdW1lbnQmKTsKKyAgICBlbnVt
IGNsYXNzIE93bmVyVHlwZSA6IHVpbnQ4X3QgeyBEb2N1bWVudCwgV29ya2VyT3JXb3JrbGV0IH07
CisgICAgZXhwbGljaXQgU2NyaXB0TW9kdWxlTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBPd25lclR5cGUpOwogICAgIH5TY3JpcHRNb2R1bGVMb2FkZXIoKTsKIAotICAgIERvY3VtZW50
JiBkb2N1bWVudCgpIHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAgICBKU0M6OklkZW50
aWZpZXIgcmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlcios
IEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXks
IEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKICAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBwYXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUg
c2NyaXB0RmV0Y2hlcik7CkBAIC02MywxMyArNjQsMTUgQEAgY2xhc3MgU2NyaXB0TW9kdWxlTG9h
ZGVyIGZpbmFsIDogcHJpdmF0ZSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgewogICAg
IEpTQzo6SlNPYmplY3QqIGNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTTW9kdWxl
UmVjb3JkKiwgSlNDOjpKU1ZhbHVlKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIG5vdGlmeUZpbmlz
aGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciYsIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+KSBm
aW5hbDsKKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYsIFVSTCYm
LCBSZWY8RGVmZXJyZWRQcm9taXNlPikgZmluYWw7CisKICAgICBVUkwgbW9kdWxlVVJMKEpTQzo6
SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpTVmFsdWUpOwogICAgIFVSTCByZXNwb25zZVVSTEZyb21S
ZXF1ZXN0VVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpTVmFsdWUpOwogCi0gICAgRG9j
dW1lbnQmIG1fZG9jdW1lbnQ7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgbV9jb250ZXh0
OwogICAgIEhhc2hNYXA8U3RyaW5nLCBVUkw+IG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXA7
Ci0gICAgSGFzaFNldDxSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPj4gbV9sb2FkZXJzOwor
ICAgIEhhc2hTZXQ8UmVmPE1vZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9hZGVyczsKKyAgICBPd25l
clR5cGUgbV9vd25lclR5cGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKaW5kZXggYzcwNDYyNmZi
NzMzZGI0NzJiZGE1MDIzNjI0MWE2ZTc0MGUyNzgyYi4uMTBmYTdlOGI0NDljOGI4NDllYjM3Y2Mx
ZjJjODY2ZmE4OTNhYWQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0U291cmNlQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dFNvdXJjZUNvZGUuaApAQCAtNTcsNyArNTcsNyBAQCBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlIHsK
ICAgICB7CiAgICAgfQogCi0gICAgU2NyaXB0U291cmNlQ29kZShjb25zdCBTdHJpbmcmIHNvdXJj
ZSwgVVJMJiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIEpTQzo6U291
cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUsIFJlZjxDYWNoZWRTY3JpcHRGZXRjaGVy
PiYmIHNjcmlwdEZldGNoZXIpCisgICAgU2NyaXB0U291cmNlQ29kZShjb25zdCBTdHJpbmcmIHNv
dXJjZSwgVVJMJiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIEpTQzo6
U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUsIFJlZjxKU0M6OlNjcmlwdEZldGNo
ZXI+JiYgc2NyaXB0RmV0Y2hlcikKICAgICAgICAgOiBtX3Byb3ZpZGVyKEpTQzo6U3RyaW5nU291
cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIEpTQzo6U291cmNlT3JpZ2luIHsgdXJsLCBXVEZN
b3ZlKHNjcmlwdEZldGNoZXIpIH0sIHVybC5zdHJpbmcoKSwgc3RhcnRQb3NpdGlvbiwgc291cmNl
VHlwZSkpCiAgICAgICAgICwgbV9jb2RlKG1fcHJvdmlkZXIuY29weVJlZigpLCBzdGFydFBvc2l0
aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2Vk
SW50KCkpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQyNzQ5M2E2MDE3ZjgwN2Qw
MDFkZmY4MzZmNGYyNTE3OGExNmUyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTAsMCArMSw4NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXIuaCIKKworI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKKyNp
bmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5j
bHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJP
cHRpb25zLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlw
dE1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKyNpbmNsdWRl
ICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcj4g
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgV29ya2VyU2NyaXB0RmV0Y2hlciYg
c2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJz
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihj
bGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1vdmUocGFyYW1ldGVycykpKTsKK30K
KworV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwg
V29ya2VyU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFy
YW1ldGVycz4mJiBwYXJhbWV0ZXJzKQorICAgIDogTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwg
cHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RGTW92ZShwYXJhbWV0ZXJzKSkKKyAgICAsIG1fc2Ny
aXB0TG9hZGVyKFdvcmtlclNjcmlwdExvYWRlcjo6Y3JlYXRlKCkpCit7Cit9CisKK1dvcmtlck1v
ZHVsZVNjcmlwdExvYWRlcjo6fldvcmtlck1vZHVsZVNjcmlwdExvYWRlcigpCit7CisgICAgbV9z
Y3JpcHRMb2FkZXItPmNhbmNlbCgpOworfQorCitib29sIFdvcmtlck1vZHVsZVNjcmlwdExvYWRl
cjo6bG9hZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBVUkwmJiBzb3VyY2VVUkwp
Cit7CisgICAgbV9zb3VyY2VVUkwgPSBXVEZNb3ZlKHNvdXJjZVVSTCk7CisKKyAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291cmNlVVJMIH07CisKKyAgICBGZXRjaE9wdGlvbnMgZmV0
Y2hPcHRpb25zOworICAgIGZldGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpD
b3JzOworICAgIGZldGNoT3B0aW9ucy5jYWNoZSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1
bHQ7CisgICAgZmV0Y2hPcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6
Rm9sbG93OworICAgIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9IHN0YXRpY19jYXN0PFdvcmtl
clNjcmlwdEZldGNoZXImPihzY3JpcHRGZXRjaGVyKCkpLmNyZWRlbnRpYWxzKCk7CisgICAgYXV0
byBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IGNvbnRleHQuc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1l
bnQ6OkVuZm9yY2VDaGlsZFNyY0RpcmVjdGl2ZTsKKworICAgIFN0cmluZyB0YXNrTW9kZSA9ICJs
b2FkTW9kdWxlc0luV29ya2VyT3JXb3JrbGV0TW9kZSJfczsKKyAgICBtX3NjcmlwdExvYWRlci0+
bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZmV0
Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3Jr
ZXJzTW9kZTo6QWxsLCAqdGhpcywgV1RGTW92ZSh0YXNrTW9kZSkpOworICAgIHJldHVybiB0cnVl
OworfQorCit2b2lkIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQoKQor
eworICAgIEFTU0VSVChtX3Byb21pc2UpOworCisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyk7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+bm90aWZ5
RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9zb3VyY2VVUkwpLCBtX3Byb21pc2UucmVsZWFzZU5v
bk51bGwoKSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjEwMDgwZWU5MzFiZmIwYjMz
YTlmNTQ3M2IyOTdjYTJkYzJlNDc1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0wLDAgKzEsNjQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRl
ci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRGVmZXJyZWRQcm9taXNlOworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBNb2R1
bGVGZXRjaFBhcmFtZXRlcnM7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3Mg
TW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OworY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyOworCitj
bGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxlU2NyaXB0
TG9hZGVyLCBwcml2YXRlIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCB7CitwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI+IGNyZWF0ZShNb2R1bGVTY3JpcHRM
b2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiwgUmVm
UHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisKKyAgICB2aXJ0dWFsIH5Xb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXIoKTsKKworICAgIGJvb2wgbG9hZChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgVVJMJiYgc291cmNlVVJMKTsKKworICAgIFdvcmtlclNjcmlwdExvYWRlciYgc2NyaXB0TG9h
ZGVyKCkgeyByZXR1cm4gbV9zY3JpcHRMb2FkZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBX
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJy
ZWRQcm9taXNlJiwgV29ya2VyU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFt
ZXRlcnM+JiYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZywg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgbm90aWZ5RmluaXNo
ZWQoKSBmaW5hbDsKKworICAgIFJlZjxXb3JrZXJTY3JpcHRMb2FkZXI+IG1fc2NyaXB0TG9hZGVy
OworICAgIFVSTCBtX3NvdXJjZVVSTDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NmI1NGVmODk0YjUzM2VhZmNlYmMxYTE0YmYyNzZhMDNlY2JhMTBiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RmV0Y2hl
ci5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkxvYWRhYmxlU2NyaXB0LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0RmV0
Y2hlci5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFNjcmlwdDsK
K2NsYXNzIERvY3VtZW50OworCitjbGFzcyBXb3JrZXJTY3JpcHRGZXRjaGVyIGZpbmFsIDogcHVi
bGljIEpTQzo6U2NyaXB0RmV0Y2hlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXb3JrZXJT
Y3JpcHRGZXRjaGVyPiBjcmVhdGUoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFs
cykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtlclNjcmlwdEZldGNo
ZXIoY3JlZGVudGlhbHMpKTsKKyAgICB9CisKKyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxz
IGNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gbV9jcmVkZW50aWFsczsgfQorCisgICAgdm9p
ZCBub3RpZnlMb2FkQ29tcGxldGVkKFVuaXF1ZWRTdHJpbmdJbXBsJiBtb2R1bGVLZXkpCisgICAg
eworICAgICAgICBtX21vZHVsZUtleSA9ICZtb2R1bGVLZXk7CisgICAgICAgIG1faXNMb2FkZWQg
PSB0cnVlOworICAgIH0KKworICAgIHZvaWQgbm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlw
dDo6RXJyb3ImJiBlcnJvcikKKyAgICB7CisgICAgICAgIG1fZXJyb3IgPSBXVEZNb3ZlKGVycm9y
KTsKKyAgICAgICAgbV9pc0xvYWRlZCA9IHRydWU7CisgICAgfQorCisgICAgdm9pZCBub3RpZnlM
b2FkV2FzQ2FuY2VsZWQoKQorICAgIHsKKyAgICAgICAgbV93YXNDYW5jZWxlZCA9IHRydWU7Cisg
ICAgICAgIG1faXNMb2FkZWQgPSB0cnVlOworICAgIH0KKworICAgIGJvb2wgaXNMb2FkZWQoKSBj
b25zdCB7IHJldHVybiBtX2lzTG9hZGVkOyB9CisgICAgT3B0aW9uYWw8TG9hZGFibGVTY3JpcHQ6
OkVycm9yPiBlcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3I7IH0KKyAgICBib29sIHdhc0Nh
bmNlbGVkKCkgY29uc3QgeyByZXR1cm4gbV93YXNDYW5jZWxlZDsgfQorICAgIFVuaXF1ZWRTdHJp
bmdJbXBsKiBtb2R1bGVLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQor
Citwcm90ZWN0ZWQ6CisgICAgV29ya2VyU2NyaXB0RmV0Y2hlcihGZXRjaE9wdGlvbnM6OkNyZWRl
bnRpYWxzIGNyZWRlbnRpYWxzKQorICAgICAgICA6IG1fY3JlZGVudGlhbHMoY3JlZGVudGlhbHMp
CisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxz
IG1fY3JlZGVudGlhbHM7CisgICAgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPiBtX21vZHVsZUtl
eTsKKyAgICBPcHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6RXJyb3I+IG1fZXJyb3I7CisgICAgYm9v
bCBtX3dhc0NhbmNlbGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNMb2FkZWQgeyBmYWxzZSB9
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggNDRmOWQwZWE1MDUyYzAxOWU3OGJhZWJlODA4YjhmMmM3NWQzMTk5NS4uM2I0MjUzODQ4MDAy
YTUxZDI5MDkyYzUxYTBkYTU4NzlkNTQyMThhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC02MTUsNyArNjE1LDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3Qg
U2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVybCwgRG9jdW0KICAgICAsIG1fZG9jdW1l
bnRDcmVhdGlvblRpbWUoTW9ub3RvbmljVGltZTo6bm93KCkpCiAjZW5kaWYKICAgICAsIG1fc2Ny
aXB0UnVubmVyKG1ha2VVbmlxdWU8U2NyaXB0UnVubmVyPigqdGhpcykpCi0gICAgLCBtX21vZHVs
ZUxvYWRlcihtYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMpKQorICAgICwgbV9t
b2R1bGVMb2FkZXIobWFrZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KCp0aGlzLCBTY3JpcHRN
b2R1bGVMb2FkZXI6Ok93bmVyVHlwZTo6RG9jdW1lbnQpKQogI2lmIEVOQUJMRShYU0xUKQogICAg
ICwgbV9hcHBseVBlbmRpbmdYU0xUcmFuc2Zvcm1zVGltZXIoKnRoaXMsICZEb2N1bWVudDo6YXBw
bHlQZW5kaW5nWFNMVHJhbnNmb3Jtc1RpbWVyRmlyZWQpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhj
ZXB0aW9uQ29kZS5oCmluZGV4IGY2YjU1OGVhODJkNzkzNjhlNjFhZGIwNjBjZjBiNGVhMWRiZWEy
MGMuLjE3ZGU3NDM0NzJmNzczMWIwM2M5OGZlY2U3YjFlYjFiOTYwMWU3N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V4Y2VwdGlvbkNvZGUuaApAQCAtNjEsNiArNjEsNyBAQCBlbnVtIEV4Y2VwdGlvbkNvZGUg
ewogICAgIC8vIFNpbXBsZSBleGNlcHRpb25zIChodHRwczovL2hleWNhbS5naXRodWIuaW8vd2Vi
aWRsLyNpZGwtZXhjZXB0aW9ucykuCiAgICAgUmFuZ2VFcnJvciwKICAgICBUeXBlRXJyb3IsCisg
ICAgSlNTeW50YXhFcnJvciwgLy8gRGlmZmVyZW50IGZyb20gRE9NIFNZTlRBWF9FUlIuCiAKICAg
ICAvLyBOb24tc3RhbmRhcmQgZXJyb3IuCiAgICAgU3RhY2tPdmVyZmxvd0Vycm9yLApAQCAtMTEx
LDYgKzExMiw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RXhjZXB0
aW9uQ29kZT4gewogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6Ok5vdEFsbG93ZWRFcnJvciwK
ICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpSYW5nZUVycm9yLAogICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGU6OlR5cGVFcnJvciwKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpKU1N5
bnRheEVycm9yLAogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OlN0YWNrT3ZlcmZsb3dFcnJv
ciwKICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpFeGlzdGluZ0V4Y2VwdGlvbkVycm9yCiAg
ICAgPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlw
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCmluZGV4
IDlhMjVjMTY1ODhlZWNhZDY3OGZiOTExZWM4NjIyZjQyNDI1OTJiNWEuLjQ4ZWMwODUxYTQ1N2Q5
YmE0NzQ3M2ZlYzI4ZDdiNDkzMTJiNzg4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRh
YmxlTW9kdWxlU2NyaXB0LmNwcApAQCAtODgsMTYgKzg4LDQgQEAgdm9pZCBMb2FkYWJsZU1vZHVs
ZVNjcmlwdDo6ZXhlY3V0ZShTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50KQogICAgIHNjcmlw
dEVsZW1lbnQuZXhlY3V0ZU1vZHVsZVNjcmlwdCgqdGhpcyk7CiB9CiAKLXZvaWQgTG9hZGFibGVN
b2R1bGVTY3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHJvb3RVUkwp
Ci17Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgZnJh
bWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoKnRoaXMsIHJvb3RVUkwuc3RyaW5nKCksIG1f
cGFyYW1ldGVycy5jb3B5UmVmKCkpOwotfQotCi12b2lkIExvYWRhYmxlTW9kdWxlU2NyaXB0Ojps
b2FkKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29k
ZSkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAgICAgICBm
cmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgc291cmNlQ29kZSk7Ci19Ci0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgKaW5kZXggYmI3OTk1
NGQ3Yjk5YjBlZDA2YmZlNTVlZjg1NGVjY2UyMWYzNTg3Ny4uZDI1MzU5NjNmNjQ4YjAyYThhMDFm
ZDYzYmIxZTM4MTM4NmNlZTQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRh
YmxlTW9kdWxlU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmgKQEAgLTUwLDE1ICs1MCwxNCBAQCBjbGFzcyBMb2FkYWJsZU1vZHVsZVNjcmlwdCBm
aW5hbCA6IHB1YmxpYyBMb2FkYWJsZVNjcmlwdCB7CiAKICAgICB2b2lkIHNldEVycm9yKEVycm9y
JiYpOwogCi0gICAgdm9pZCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJMJiByb290VVJMKTsKLSAg
ICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7Ci0KICAgICB2
b2lkIG5vdGlmeUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmluZ0ltcGwmKTsKICAgICB2b2lkIG5v
dGlmeUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yJiYpOwogICAgIHZvaWQgbm90aWZ5
TG9hZFdhc0NhbmNlbGVkKCk7CiAKICAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KCkg
Y29uc3QgeyByZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0KIAorICAgIE1vZHVsZUZldGNoUGFy
YW1ldGVycyYgcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQorCiBw
cml2YXRlOgogICAgIExvYWRhYmxlTW9kdWxlU2NyaXB0KGNvbnN0IFN0cmluZyYgbm9uY2UsIGNv
bnN0IFN0cmluZyYgaW50ZWdyaXR5LCBSZWZlcnJlclBvbGljeSwgY29uc3QgU3RyaW5nJiBjcm9z
c09yaWdpbk1vZGUsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQXRvbVN0cmluZyYgaW5p
dGlhdG9yTmFtZSwgYm9vbCBpc0luVXNlckFnZW50U2hhZG93VHJlZSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCAwNTc1OGI2MDBjNzUyMmI0N2YzNjRiYTZhMThkMzVm
MTczMTEwN2Y5Li41ZTk5ZjBmNTc3N2IzYjIxNThkZDBmYTRiYzM4Mjc3NmNkYjM0ODEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVk
ZSAiTG9hZGFibGVDbGFzc2ljU2NyaXB0LmgiCiAjaW5jbHVkZSAiTG9hZGFibGVNb2R1bGVTY3Jp
cHQuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0
Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGVuZGluZ1NjcmlwdC5oIgogI2luY2x1ZGUgIlJ1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1lbnQuaCIK
QEAgLTM1MSw4ICszNTIsMTEgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2Ny
aXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKICAgICAgICAgICAg
IHNjcmlwdENoYXJzZXQoKSwKICAgICAgICAgICAgIG1fZWxlbWVudC5sb2NhbE5hbWUoKSwKICAg
ICAgICAgICAgIG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKTsKLSAgICAgICAg
c2NyaXB0LT5sb2FkKG1fZWxlbWVudC5kb2N1bWVudCgpLCBtb2R1bGVTY3JpcHRSb290VVJMKTsK
ICAgICAgICAgbV9sb2FkYWJsZVNjcmlwdCA9IFdURk1vdmUoc2NyaXB0KTsKKyAgICAgICAgaWYg
KGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkgeworICAgICAgICAg
ICAgYXV0byYgc2NyaXB0ID0gZG93bmNhc3Q8TG9hZGFibGVNb2R1bGVTY3JpcHQ+KCptX2xvYWRh
YmxlU2NyaXB0LmdldCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxl
U2NyaXB0KHNjcmlwdCwgbW9kdWxlU2NyaXB0Um9vdFVSTC5zdHJpbmcoKSwgbWFrZVJlZihzY3Jp
cHQucGFyYW1ldGVycygpKSk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCkBAIC0zNjcsOCArMzcxLDkgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxl
U2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKICAgICBpZiAo
IWNvbnRlbnRTZWN1cml0eVBvbGljeS5hbGxvd0lubGluZVNjcmlwdChtX2VsZW1lbnQuZG9jdW1l
bnQoKS51cmwoKS5zdHJpbmcoKSwgbV9zdGFydExpbmVOdW1iZXIsIHNvdXJjZUNvZGUuc291cmNl
KCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpLCBoYXNLbm93bk5vbmNlKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgc2NyaXB0LT5sb2FkKG1fZWxlbWVudC5kb2N1bWVudCgpLCBzb3Vy
Y2VDb2RlKTsKICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAgIGlm
IChhdXRvKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpCisgICAgICAgIGZy
YW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KGRvd25jYXN0PExvYWRhYmxlTW9kdWxlU2Ny
aXB0PigqbV9sb2FkYWJsZVNjcmlwdC5nZXQoKSksIHNvdXJjZUNvZGUpOwogICAgIHJldHVybiB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKaW5k
ZXggMjcxN2M4NjFjNzRiMGYyYWViY2RlNDA4NzAwZTJhOWEwMzczNzU5NS4uMWI2NTMyYzNiMGVh
YTgwZDliZDQ2YzZkNDMyMTM2OTYyMWMwMTliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
aHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMTAxLDEwICsxMDEsMTAgQEAgVGhyZWFkYWJsZUxvYWRl
ck9wdGlvbnMgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiB9
CiAKIAotUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiBj
bGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJP
cHRpb25zJiBvcHRpb25zLCBTdHJpbmcmJiByZWZlcnJlcikKK1JlZlB0cjxUaHJlYWRhYmxlTG9h
ZGVyPiBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgU3RyaW5nJiYg
cmVmZXJyZXIsIFN0cmluZyYmIHRhc2tNb2RlKQogewogICAgIGlmIChpczxXb3JrZXJHbG9iYWxT
Y29wZT4oY29udGV4dCkgfHwgKGlzPFdvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkgJiYgZG93
bmNhc3Q8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS53b3JrZXJPcldvcmtsZXRUaHJlYWQo
KSkpCi0gICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc3RhdGlj
X2Nhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmPihjb250ZXh0KSwgY2xpZW50LCBXb3Jr
ZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLCBXVEZN
b3ZlKHJlZmVycmVyKSk7CisgICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpj
cmVhdGUoc3RhdGljX2Nhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmPihjb250ZXh0KSwg
Y2xpZW50LCBXVEZNb3ZlKHRhc2tNb2RlKSwgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucywgV1RG
TW92ZShyZWZlcnJlcikpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbnVsbHB0cjsKICAg
ICBpZiAoaXM8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvVGhyZWFkYWJsZUxvYWRlci5oCmluZGV4IGMyYjI0NWMzZWJiOGJjOTMwZWY0ZDE3MmJhMTUw
OWExNzlmMWQ3YTYuLjFhYzcwNGI0YzNiNTBiMGZmZGEwMzQyOGMzY2U3ZGExNDk4ODI2MzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaApAQCAtNzQsNyArNzQsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocmVh
ZGFibGVMb2FkZXIpOwogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIHZvaWQgbG9hZFJlc291
cmNlU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVzb3VyY2VSZXF1ZXN0
JiYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9u
cyYpOwotICAgICAgICBzdGF0aWMgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIFJlc291cmNlUmVx
dWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYsIFN0cmluZyYmIHJlZmVycmVy
ID0gU3RyaW5nKCkpOworICAgICAgICBzdGF0aWMgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIFJl
c291cmNlUmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYsIFN0cmluZyYm
IHJlZmVycmVyID0gU3RyaW5nKCksIFN0cmluZyYmIHRhc2tNb2RlID0geyB9KTsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUlzRG9uZSgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lk
IGNhbmNlbCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCBiZjZlMjc2YTM5
YzIzMTVmODg5MGM2MzMwMzI5ZDY0NGRmY2FlYWE1Li4wNGZkZjU4Mjc0M2ViOTczYjUyNWQ1NGM4
YThkOGYzN2Q4MjUyMGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC03NCw2ICs3
NCw4IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAgLCBtX2lkZW50aWZpZXIoIndvcmtl
cjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSkK
ICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNyZWF0ZSgqdGhp
cykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxhZ3MpCisgICAgLCBtX3R5cGUob3B0
aW9ucy50eXBlKQorICAgICwgbV9jcmVkZW50aWFscyhvcHRpb25zLmNyZWRlbnRpYWxzKQogewog
ICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAgaWYgKCFhZGRlZExpc3RlbmVyKSB7
CkBAIC0xMTcsMTAgKzExOSwxNSBAQCBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gV29ya2VyOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpSdQogCiAgICAgRmV0
Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKICAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNoT3B0
aW9uczo6TW9kZTo6U2FtZU9yaWdpbjsKKyAgICBpZiAod29ya2VyLT5tX3R5cGUgPT0gV29ya2Vy
VHlwZTo6TW9kdWxlKQorICAgICAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSB3b3JrZXIt
Pm1fY3JlZGVudGlhbHM7CisgICAgZWxzZQorICAgICAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlh
bHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luOwogICAgIGZldGNoT3B0
aW9ucy5jYWNoZSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQ7CiAgICAgZmV0Y2hPcHRp
b25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93OwogICAgIGZldGNo
T3B0aW9ucy5kZXN0aW5hdGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OldvcmtlcjsK
LSAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwg
V1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQ
b2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsIHdvcmtlcik7CisgICAg
d29ya2VyLT5tX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1v
dmUocmVxdWVzdCksIFdURk1vdmUoZmV0Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5
RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZTo6QWxsLCB3b3JrZXIuZ2V0KCksIFdvcmtl
clJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworCiAgICAgcmV0dXJuIHdvcmtlcjsKIH0KIApAQCAt
MjE5LDcgKzIyNiwxMyBAQCB2b2lkIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQoKQogICAgIFJlZmVy
cmVyUG9saWN5IHJlZmVycmVyUG9saWN5ID0gUmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nOwog
ICAgIGlmIChhdXRvIHBvbGljeSA9IHBhcnNlUmVmZXJyZXJQb2xpY3kobV9zY3JpcHRMb2FkZXIt
PnJlZmVycmVyUG9saWN5KCksIFJlZmVycmVyUG9saWN5U291cmNlOjpIVFRQSGVhZGVyKSkKICAg
ICAgICAgcmVmZXJyZXJQb2xpY3kgPSAqcG9saWN5OwotICAgIG1fY29udGV4dFByb3h5LnN0YXJ0
V29ya2VyR2xvYmFsU2NvcGUobV9zY3JpcHRMb2FkZXItPnVybCgpLCBtX25hbWUsIGNvbnRleHQt
PnVzZXJBZ2VudChtX3NjcmlwdExvYWRlci0+dXJsKCkpLCBpc09ubGluZSwgbV9zY3JpcHRMb2Fk
ZXItPnNjcmlwdCgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIG1fc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBtX3dvcmtlckNyZWF0aW9u
VGltZSwgcmVmZXJyZXJQb2xpY3ksIG1fcnVudGltZUZsYWdzKTsKKworICAgIFVSTCByZXNwb25z
ZVVSTCA9IG1fc2NyaXB0TG9hZGVyLT5yZXNwb25zZVVSTCgpOworICAgIGlmICghbV9zY3JpcHRM
b2FkZXItPmlzUmVkaXJlY3RlZCgpICYmIG1fc2NyaXB0TG9hZGVyLT5yZXNwb25zZVNvdXJjZSgp
ICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgeworICAgICAgICBp
ZiAobV9zY3JpcHRMb2FkZXItPnVybCgpLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQorICAgICAg
ICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKG1fc2NyaXB0TG9hZGVyLT51
cmwoKS5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgfQorICAgIG1fY29udGV4dFByb3h5LnN0
YXJ0V29ya2VyR2xvYmFsU2NvcGUocmVzcG9uc2VVUkwsIG1fbmFtZSwgY29udGV4dC0+dXNlckFn
ZW50KHJlc3BvbnNlVVJMKSwgaXNPbmxpbmUsIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgY29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgbV93b3JrZXJDcmVhdGlvblRpbWUsIHJlZmVycmVyUG9s
aWN5LCBtX3R5cGUsIG1fY3JlZGVudGlhbHMsIG1fcnVudGltZUZsYWdzKTsKICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnNjcmlwdEltcG9ydGVkKCpjb250ZXh0LCBtX3NjcmlwdExvYWRl
ci0+aWRlbnRpZmllcigpLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXIuaAppbmRleCA1M2Y1ZTZmZmYyN2M5ZmEzZTVjMGUwMWYwZjZjNDJjNmNiNmY5
ZDBlLi4zOGE2MjNhOThkYmEzNWZmODAxM2NkNmZjOGM4NWM4MTAyMDUwMjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyLmgKQEAgLTI5LDkgKzI5LDExIEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgi
CiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50
aWFscy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiUG9zdE1lc3NhZ2VP
cHRpb25zLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVk
ZSAiV29ya2VyVHlwZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5o
PgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CkBAIC01NSw2ICs1Nyw4IEBAIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFj
dFdvcmtlciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBXb3JrCiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChXb3JrZXIpOwogcHVibGljOgogICAgIHN0cnVjdCBPcHRpb25zIHsK
KyAgICAgICAgV29ya2VyVHlwZSB0eXBlOworICAgICAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFs
cyBjcmVkZW50aWFsczsKICAgICAgICAgU3RyaW5nIG5hbWU7CiAgICAgfTsKICAgICBzdGF0aWMg
RXhjZXB0aW9uT3I8UmVmPFdvcmtlcj4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
SlNDOjpSdW50aW1lRmxhZ3MsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBPcHRpb25zJik7CkBA
IC03OSw2ICs4Myw4IEBAIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtl
ciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBXb3JrCiAgICAgdm9pZCBwb3N0VGFz
a1RvV29ya2VyR2xvYmFsU2NvcGUoRnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0
Jik+JiYpOwogI2VuZGlmCiAKKyAgICBXb3JrZXJUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXb3JrZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBjb25zdCBPcHRpb25zJik7CiAKQEAgLTExMiw2
ICsxMTgsOCBAQCBjbGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1
YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV29yawogI2lmIEVOQUJMRShXRUJfUlRDKQog
ICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3RyYW5zZm9ybWVyczsKICNlbmRpZgorICAgIFdvcmtlclR5
cGUgbV90eXBlIHsgV29ya2VyVHlwZTo6Q2xhc3NpYyB9OworICAgIEZldGNoUmVxdWVzdENyZWRl
bnRpYWxzIG1fY3JlZGVudGlhbHMgeyBGZXRjaFJlcXVlc3RDcmVkZW50aWFsczo6U2FtZU9yaWdp
biB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
aWRsCmluZGV4IDQ1ZDZhMDg2Nzg1NGVlNDA0ZGU3ZTdkMDEyNDhjZWJmNDRkY2E3ZWQuLjcwMjE3
OTZkZjUwNGFkZjhlNmI5NTg5YWNlOWYxNDQ4MjFmMjk1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5pZGwKQEAgLTM4LDYgKzM4LDggQEAKIH07CiAKIGRpY3Rpb25hcnkgV29ya2VyT3B0aW9u
cyB7CisgICAgV29ya2VyVHlwZSB0eXBlID0gImNsYXNzaWMiOworICAgIEZldGNoUmVxdWVzdENy
ZWRlbnRpYWxzIGNyZWRlbnRpYWxzID0gInNhbWUtb3JpZ2luIjsgLy8gY3JlZGVudGlhbHMgaXMg
b25seSB1c2VkIGlmIHR5cGUgaXMgIm1vZHVsZSIKICAgICBET01TdHJpbmcgbmFtZSA9ICIiOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRl
eCBkYmFiMzQ4ZTgwYzlkZTUwYmQyMTU3NzdhMTRhMzlhMGY3MGU0OWM3Li5jY2RlOTA5YzdjYjUy
ZTk3Nzc0YzViODE1ODIzZWJjYmJiMDcwZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNzQsNiArNzQsOCBAQCBXb3JrZXJHbG9iYWxTY29w
ZTo6V29ya2VyR2xvYmFsU2NvcGUoV29ya2VyVGhyZWFkVHlwZSB0eXBlLCBjb25zdCBXb3JrZXJQ
YXJhbWV0ZQogICAgICwgbV9wZXJmb3JtYW5jZShQZXJmb3JtYW5jZTo6Y3JlYXRlKHRoaXMsIHBh
cmFtcy50aW1lT3JpZ2luKSkKICAgICAsIG1fcmVmZXJyZXJQb2xpY3kocGFyYW1zLnJlZmVycmVy
UG9saWN5KQogICAgICwgbV9zZXR0aW5nc1ZhbHVlcyhwYXJhbXMuc2V0dGluZ3NWYWx1ZXMpCisg
ICAgLCBtX3dvcmtlclR5cGUocGFyYW1zLndvcmtlclR5cGUpCisgICAgLCBtX2NyZWRlbnRpYWxz
KHBhcmFtcy5jcmVkZW50aWFscykKIHsKICNpZiAhRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAg
ICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb25Qcm94eSk7CkBAIC0yNzQsNiArMjc2LDExIEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IFdvcmtlckdsb2JhbFNjb3BlOjppbXBvcnRTY3JpcHRzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiB1cmxzKQogewogICAgIEFTU0VSVChjb250ZW50U2VjdXJpdHlQb2xpY3ko
KSk7CiAKKyAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93b3Jr
ZXJzLmh0bWwjaW1wb3J0aW5nLXNjcmlwdHMtYW5kLWxpYnJhcmllcworICAgIC8vIDEuIElmIHdv
cmtlciBnbG9iYWwgc2NvcGUncyB0eXBlIGlzICJtb2R1bGUiLCB0aHJvdyBhIFR5cGVFcnJvciBl
eGNlcHRpb24uCisgICAgaWYgKG1fd29ya2VyVHlwZSA9PSBXb3JrZXJUeXBlOjpNb2R1bGUpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJpbXBvcnRTY3JpcHRzIGNhbm5v
dCBiZSB1c2VkIGlmIHdvZXJrZXIgdHlwZSBpcyBcIm1vZHVsZVwiIl9zIH07CisKICAgICBWZWN0
b3I8VVJMPiBjb21wbGV0ZWRVUkxzOwogICAgIGNvbXBsZXRlZFVSTHMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eSh1cmxzLnNpemUoKSk7CiAgICAgZm9yIChhdXRvJiBlbnRyeSA6IHVybHMpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCA0NmQ0OWQ5NGM1
MjM4ZTQ2ODhkMzk1ZDg3YzIwNjNlYjU3MjBkMWJmLi43NDc5NWY1YzBmOWEyYTM1ZDAwOTMwMTJh
ZDE4ZjU3ZTMxN2Y4MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5oCkBAIC0xMjMsNiArMTIzLDggQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJs
aWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgQmFzZTYKIAogICAg
IGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQogCisgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFs
cyBjcmVkZW50aWFscygpIGNvbnN0IHsgcmV0dXJuIG1fY3JlZGVudGlhbHM7IH0KKwogcHJvdGVj
dGVkOgogICAgIFdvcmtlckdsb2JhbFNjb3BlKFdvcmtlclRocmVhZFR5cGUsIGNvbnN0IFdvcmtl
clBhcmFtZXRlcnMmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYsIFdvcmtlclRocmVhZCYsIFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
KiwgU29ja2V0UHJvdmlkZXIqKTsKIApAQCAtMTYzLDggKzE2NSw2IEBAIGNsYXNzIFdvcmtlckds
b2JhbFNjb3BlIDogcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVi
bGljIEJhc2U2CiAgICAgbXV0YWJsZSBSZWZQdHI8V29ya2VyTG9jYXRpb24+IG1fbG9jYXRpb247
CiAgICAgbXV0YWJsZSBSZWZQdHI8V29ya2VyTmF2aWdhdG9yPiBtX25hdmlnYXRvcjsKIAotICAg
IHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyPiBtX3Njcmlw
dDsKLQogICAgIGJvb2wgbV9pc09ubGluZTsKICAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5OwogCkBAIC0xODcsNiArMTg3LDggQEAgY2xhc3MgV29y
a2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+
LCBwdWJsaWMgQmFzZTYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTVmFsdWVQb29sPiBtX2Nzc1Zh
bHVlUG9vbDsKICAgICBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5OwogICAgIFNldHRp
bmdzOjpWYWx1ZXMgbV9zZXR0aW5nc1ZhbHVlczsKKyAgICBXb3JrZXJUeXBlIG1fd29ya2VyVHlw
ZTsKKyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIG1fY3JlZGVudGlhbHM7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGVQcm94eS5oCmluZGV4IDQwMDAzYzNlMDEwOTk5NjBmNjQ3ODYxZTcwMTY4N2Qw
ZTM3MWQ3MmQuLmVkNjczYWM4ZjdjMGVlNTRjMDYwZWNiNTkyMTYzOTBlZDcwZmUyY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCkBAIC00
OCw3ICs0OCw3IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlUHJveHkgewogcHVibGljOgogICAg
IHN0YXRpYyBXb3JrZXJHbG9iYWxTY29wZVByb3h5JiBjcmVhdGUoV29ya2VyJik7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGlu
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgSlNDOjpS
dW50aW1lRmxhZ3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29w
ZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25z
dCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
LCBSZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIEpT
Qzo6UnVudGltZUZsYWdzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZVdvcmtlckds
b2JhbFNjb3BlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xv
YmFsU2NvcGUoTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBwb3N0VGFza1RvV29ya2VyR2xvYmFsU2NvcGUoRnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik+JiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggMTlkNGJlNjQ5OTJmMzBkM2NjZTc2NTQ3YTNkMjIxOGE5
OGM4NDJjMy4uNzg4MzU4N2E3YWY2MjA5ZTNlY2M4ZTdiNDFiYWQ0N2FkZjYyMjQwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTcz
LDcgKzczLDcgQEAgV29ya2VyTWVzc2FnaW5nUHJveHk6On5Xb3JrZXJNZXNzYWdpbmdQcm94eSgp
CiAgICAgICAgIHx8IChpczxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkgJiYgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpLnRocmVhZCgpLnRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSkpOwogfQogCi12
b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVS
TCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGlj
eSwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZsYWdzKQordm9pZCBXb3JrZXJNZXNzYWdpbmdQ
cm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGlt
ZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUgd29ya2Vy
VHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIEpTQzo6UnVudGltZUZs
YWdzIHJ1bnRpbWVGbGFncykKIHsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkIHRvIGJlIHJldmlz
aXRlZCB3aGVuIHdlIHN1cHBvcnQgbmVzdGVkIHdvcmtlciBvbmUgZGF5CiAgICAgQVNTRVJUKG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV29ya2VyTWVz
c2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkws
IGNvbnN0IFN0CiAKICAgICBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIgPSBkb2N1bWVu
dC5zb2NrZXRQcm92aWRlcigpOwogCi0gICAgV29ya2VyUGFyYW1ldGVycyBwYXJhbXMgPSB7IHNj
cmlwdFVSTCwgbmFtZSwgaWRlbnRpZmllciwgdXNlckFnZW50LCBpc09ubGluZSwgY29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3ksIHRpbWVPcmlnaW4sIHJlZmVycmVyUG9saWN5LCBkb2N1bWVudC5zZXR0
aW5nc1ZhbHVlcygpIH07CisgICAgV29ya2VyUGFyYW1ldGVycyBwYXJhbXMgPSB7IHNjcmlwdFVS
TCwgbmFtZSwgaWRlbnRpZmllciwgdXNlckFnZW50LCBpc09ubGluZSwgY29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIHRpbWVPcmlnaW4sIHJlZmVycmVyUG9saWN5LCB3b3JrZXJUeXBlLCBjcmVkZW50
aWFscywgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMoKSB9OwogICAgIGF1dG8gdGhyZWFkID0gRGVk
aWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUocGFyYW1zLCBzb3VyY2VDb2RlLCAqdGhpcywgKnRo
aXMsICp0aGlzLCBzdGFydE1vZGUsIGRvY3VtZW50LnRvcE9yaWdpbigpLCBwcm94eSwgc29ja2V0
UHJvdmlkZXIsIHJ1bnRpbWVGbGFncyk7CiAKICAgICB3b3JrZXJUaHJlYWRDcmVhdGVkKHRocmVh
ZC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmgKaW5kZXggYzViNTc1YjllNjE1YjNmM2Y1OTZiZmMzZGY2ODNjODc3Y2M2MmJhYi4uZDllODFl
MTU3YTBmNDg1MmU0OWI1OWQyNTY2YThhODBmNWY4MThhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBX
b3JrZXJNZXNzYWdpbmdQcm94eSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxX
b3JrZXJNZXNzYWdpbmdQcgogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgV29y
a2VyR2xvYmFsU2NvcGVQcm94eS4KICAgICAvLyAoT25seSB1c2UgdGhlc2UgZnVuY3Rpb25zIGlu
IHRoZSB3b3JrZXIgb2JqZWN0IHRocmVhZC4pCi0gICAgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNj
b3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmln
aW4sIFJlZmVycmVyUG9saWN5LCBKU0M6OlJ1bnRpbWVGbGFncykgZmluYWw7CisgICAgdm9pZCBz
dGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJp
bmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25v
dG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBGZXRjaFJl
cXVlc3RDcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOwogICAgIHZvaWQgdGVy
bWluYXRlV29ya2VyR2xvYmFsU2NvcGUoKSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9X
b3JrZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSBmaW5hbDsKICAgICB2
b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmKT4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDIzODRhNWE4YzdkMmEzMDJl
ZWU1Y2I0MDVlMTA1ZTAyNWM5ODQzY2MuLmY0ZjRiMjc0NjZmOWEzMGIyOGI4YjIxZjZmMmJlZjhi
ZGU5Mzg1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKIAorI2luY2x1ZGUg
IlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1ZGUgIldvcmtlckV2ZW50TG9vcC5oIgogI2lu
Y2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0zOSw2ICs0MCw3IEBAIFdURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSk7CiAKIFdvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShXb3JrZXJUaHJlYWRU
eXBlIHR5cGUsIFJlZjxKU0M6OlZNPiYmIHZtLCBXb3JrZXJPcldvcmtsZXRUaHJlYWQqIHRocmVh
ZCkKICAgICA6IG1fc2NyaXB0KG1ha2VVbmlxdWU8V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlcj4odHlwZSwgV1RGTW92ZSh2bSksIHRoaXMpKQorICAgICwgbV9tb2R1bGVMb2FkZXIobWFr
ZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KCp0aGlzLCBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93
bmVyVHlwZTo6V29ya2VyT3JXb3JrbGV0KSkKICAgICAsIG1fdGhyZWFkKHRocmVhZCkKICAgICAs
IG1faW5zcGVjdG9yQ29udHJvbGxlcihtYWtlVW5pcXVlPFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXI+KCp0aGlzKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCA2YzI0NGEwYzQyN2VlMWM4YzY1ZmRjYzc2NTk1MmY4
NzdmZDliMTZiLi41NDRmMDQ3YWVjMjc4MzI3NDRkMGE4YTcwYWY3ZTkzOWMzMzA5OTJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZS5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV2ZW50
TG9vcFRhc2tHcm91cDsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNsYXNzIFdvcmtlckV2
ZW50TG9vcDsKIGNsYXNzIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBXb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyOwpAQCAtNTQsNiArNTUsOCBAQCBjbGFzcyBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJs
aWMgUmVmQ291bgogCiAgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJZGVudGlmaWVyKCkg
eyByZXR1cm4gbV91bmlxdWVJZGVudGlmaWVyKys7IH0KIAorICAgIFNjcmlwdE1vZHVsZUxvYWRl
ciYgbW9kdWxlTG9hZGVyKCkgeyByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOyB9CisKICAgICAvLyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LgogICAgIEV2ZW50TG9vcFRhc2tHcm91cCYgZXZlbnRMb29w
KCkgZmluYWw7CiAgICAgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCBmaW5hbDsKQEAgLTg4
LDYgKzkxLDcgQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KICAgICB2b2lkIGRlcmVmRXZlbnRU
YXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyPiBtX3NjcmlwdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
U2NyaXB0TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRlcjsKICAgICBXb3JrZXJPcldvcmtsZXRU
aHJlYWQqIG1fdGhyZWFkOwogICAgIFJlZlB0cjxXb3JrZXJFdmVudExvb3A+IG1fZXZlbnRMb29w
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrR3JvdXA+IG1fZGVmYXVsdFRhc2tH
cm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGNkNGVjMjQ2ODI1MjVhYWJjNjQyZDg3N2Ew
ZGEwMTFlYmRlMTE0MzEuLjkxYThhODc5NDU2ZTA2NzYyMjlhODcwOGE4NzUwOTk5M2EyZTI0ODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzUsMTUgKzM1LDIzIEBACiAjaW5jbHVkZSAiSlNF
eGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5j
bHVkZSAiSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRj
aEZhaWx1cmVLaW5kLmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCiAjaW5j
bHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEu
aCIKICNpbmNsdWRlICJXb3JrZXJDb25zb2xlQ2xpZW50LmgiCisjaW5jbHVkZSAiV29ya2VyU2Ny
aXB0RmV0Y2hlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbXBsZXRpb24uaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWZlcnJlZFdvcmtUaW1lci5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0V4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2Vw
dGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9HQ0FjdGl2aXR5Q2FsbGJh
Y2suaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTTW9kdWxlUmVjb3JkLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNOYXRpdmVTdGRG
dW5jdGlvbi5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2NyaXB0RmV0Y2hQYXJhbWV0
ZXJzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRjaGVyLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0yMjgsNiArMjM2LDI0NSBAQCB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZAogICAgIH0K
IH0KIAorc3RhdGljIElkZW50aWZpZXIganNWYWx1ZVRvTW9kdWxlS2V5KEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5p
c1N5bWJvbCgpKQorICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVVpZChqc0Nhc3Q8U3lt
Ym9sKj4odmFsdWUpLT5wcml2YXRlTmFtZSgpKTsKKyAgICBBU1NFUlQodmFsdWUuaXNTdHJpbmco
KSk7CisgICAgcmV0dXJuIGFzU3RyaW5nKHZhbHVlKS0+dG9JZGVudGlmaWVyKGxleGljYWxHbG9i
YWxPYmplY3QpOworfQorCitKU0M6OkpTVmFsdWUgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlcjo6ZXZhbHVhdGVNb2R1bGUoSlNDOjpKU01vZHVsZVJlY29yZCYgbW9kdWxlUmVjb3JkKQor
eworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBlci5nZXQoKTsK
KyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayB7
IHZtIH07CisgICAgcmV0dXJuIG1vZHVsZVJlY29yZC5ldmFsdWF0ZSgmZ2xvYmFsT2JqZWN0KTsK
K30KKworTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpsb2FkTW9kdWxlU3luY2hyb25vdXNseShXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRG
ZXRjaGVyLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIGlmIChp
c0V4ZWN1dGlvbkZvcmJpZGRlbigpKQorICAgICAgICByZXR1cm4gTWVzc2FnZVF1ZXVlVGVybWlu
YXRlZDsKKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZ2xvYmFsT2Jq
ZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKworICAgIGF1dG8gcHJv
dGVjdG9yID0gbWFrZVJlZihzY3JpcHRGZXRjaGVyKTsKKyAgICB7CisgICAgICAgIGF1dG8mIHBy
b21pc2UgPSBKU0V4ZWNTdGF0ZTo6bG9hZE1vZHVsZShnbG9iYWxPYmplY3QsIHNvdXJjZUNvZGUu
anNTb3VyY2VDb2RlKCksIEpTQzo6SlNTY3JpcHRGZXRjaGVyOjpjcmVhdGUodm0sIHsgJnNjcmlw
dEZldGNoZXIgfSkpOworCisgICAgICAgIGF1dG8mIGZ1bGZpbGxIYW5kbGVyID0gKkpTTmF0aXZl
U3RkRnVuY3Rpb246OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFtwcm90
ZWN0b3JdKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSAtPiBKU0M6OkVuY29kZWRKU1ZhbHVlIHsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKKyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAg
ICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICAgICAgICAg
IElkZW50aWZpZXIgbW9kdWxlS2V5ID0ganNWYWx1ZVRvTW9kdWxlS2V5KGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOworICAgICAgICAgICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkQ29tcGxldGVk
KCptb2R1bGVLZXkuaW1wbCgpKTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGF1dG8mIHJlamVjdEhhbmRs
ZXIgPSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCAxLCBT
dHJpbmcoKSwgW3Byb3RlY3Rvcl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpIHsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIEpT
VmFsdWUgZXJyb3JWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAgICAgICAgICBp
ZiAoZXJyb3JWYWx1ZS5pc09iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byogb2JqZWN0
ID0gSlNDOjphc09iamVjdChlcnJvclZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAoSlNWYWx1
ZSBmYWlsdXJlS2luZFZhbHVlID0gb2JqZWN0LT5nZXREaXJlY3Qodm0sIHN0YXRpY19jYXN0PEpT
Vk1DbGllbnREYXRhJj4oKnZtLmNsaWVudERhdGEpLmJ1aWx0aW5OYW1lcygpLmZhaWx1cmVLaW5k
UHJpdmF0ZU5hbWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBob3N0IHBy
b3BhZ2F0ZWQgZXJyb3IgaW4gdGhlIG1vZHVsZSBsb2FkZXIgcGlwZWxpbmUuCisgICAgICAgICAg
ICAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8TW9kdWxlRmV0Y2hGYWlsdXJlS2luZD4oZmFp
bHVyZUtpbmRWYWx1ZS5hc0ludDMyKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgTW9k
dWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZDoKKyAgICAgICAgICAgICAgICAgICAgICAg
IHByb3RlY3Rvci0+bm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3IgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpFcnJvclR5cGU6OkNhY2hl
ZFNjcmlwdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6Om51bGxvcHQKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2Vs
ZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0b3ItPm5vdGlmeUxvYWRXYXNDYW5j
ZWxlZCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICAgICAgICAgIHByb3Rl
Y3Rvci0+bm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3IgeworICAgICAgICAg
ICAgICAgIExvYWRhYmxlU2NyaXB0OjpFcnJvclR5cGU6OkNhY2hlZFNjcmlwdCwKKyAgICAgICAg
ICAgICAgICBMb2FkYWJsZVNjcmlwdDo6Q29uc29sZU1lc3NhZ2UgeworICAgICAgICAgICAgICAg
ICAgICBNZXNzYWdlU291cmNlOjpKUywKKyAgICAgICAgICAgICAgICAgICAgTWVzc2FnZUxldmVs
OjpFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgcmV0cmlldmVFcnJvck1lc3NhZ2UoKmdsb2Jh
bE9iamVjdCwgdm0sIGVycm9yVmFsdWUsIHNjb3BlKSwKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIHByb21pc2UudGhlbigmZ2xvYmFsT2JqZWN0
LCAmZnVsZmlsbEhhbmRsZXIsICZyZWplY3RIYW5kbGVyKTsKKyAgICB9CisgICAgbV9nbG9iYWxT
Y29wZS0+ZXZlbnRMb29wKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKKworICAgIC8v
IERyaXZlIFJ1bkxvb3AgdW50aWwgd2UgZ2V0IGVpdGhlciBvZiAiV29ya2VyIGlzIHRlcm1pbmF0
ZWQiLCAiTG9hZGluZyBpcyBkb25lIiwgb3IgIkxvYWRpbmcgaXMgZmFpbGVkIi4KKyAgICBXb3Jr
ZXJSdW5Mb29wJiBydW5Mb29wID0gbV9nbG9iYWxTY29wZS0+d29ya2VyT3JXb3JrbGV0VGhyZWFk
KCktPnJ1bkxvb3AoKTsKKworICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHJlY2VpdmUgbWVzc2Fn
ZXMgdGhhdCBhcmUgbm90IHJlbGF0ZWQgdG8gYXN5bmNocm9ub3VzIHJlc291cmNlIGxvYWRpbmcu
CisgICAgLy8gT3RoZXJ3aXNlLCBhIHdvcmtlciBkaXNjYXJkcyBzb21lIG1lc3NhZ2VzIGZyb20g
dGhlIG1haW4gdGhyZWFkIGhlcmUgaW4gYSByYWN5IHdheS4KKyAgICAvLyBGb3IgZXhhbXBsZSwg
dGhlIG1haW4gdGhyZWFkIGNhbiBwb3N0TWVzc2FnZSBqdXN0IGFmdGVyIGNyZWF0aW5nIGEgV29y
a2VyLiBJbiB0aGF0IGNhc2UsIHBvc3RNZXNzYWdlJ3MKKyAgICAvLyB0YXNrIGlzIHF1ZXVlZCBp
biBXb3JrZXJSdW5Mb29wIGJlZm9yZSBzdGFydCBydW5uaW5nIG1vZHVsZSBzY3JpcHRzLiBUaGlz
IHRhc2sgc2hvdWxkIG5vdCBiZSBkaXNjYXJkZWQKKyAgICAvLyBpbiB0aGUgZm9sbG93aW5nIGRy
aXZpbmcgb2YgdGhlIFJ1bkxvb3Agd2hpY2ggbWFpbmx5IGF0dGVtcHQgdG8gY29sbGVjdCBpbml0
aWFsIGxvYWQgb2YgbW9kdWxlIHNjcmlwdHMuCisgICAgU3RyaW5nIHRhc2tNb2RlID0gImxvYWRN
b2R1bGVzSW5Xb3JrZXJPcldvcmtsZXRNb2RlIl9zOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1
bHQgcmVzdWx0ID0gTWVzc2FnZVF1ZXVlTWVzc2FnZVJlY2VpdmVkOworICAgIHdoaWxlICgoIXBy
b3RlY3Rvci0+aXNMb2FkZWQoKSAmJiAhcHJvdGVjdG9yLT53YXNDYW5jZWxlZCgpKSAmJiByZXN1
bHQgIT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgeworICAgICAgICByZXN1bHQgPSBydW5Mb29w
LnJ1bkluTW9kZShtX2dsb2JhbFNjb3BlLCB0YXNrTW9kZSk7CisgICAgICAgIGlmIChyZXN1bHQg
IT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkKKyAgICAgICAgICAgIG1fZ2xvYmFsU2NvcGUtPmV2
ZW50TG9vcCgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7CisgICAgfQorCisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKwordm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjps
aW5rQW5kRXZhbHVhdGVNb2R1bGUoV29ya2VyU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwg
Y29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgU3RyaW5nKiByZXR1cm5lZEV4Y2Vw
dGlvbk1lc3NhZ2UpCit7CisgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZ2xvYmFs
T2JqZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKworICAgIE5ha2Vk
UHRyPEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICBKU0V4ZWNTdGF0ZTo6
bGlua0FuZEV2YWx1YXRlTW9kdWxlKGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVVpZCh2
bSwgc2NyaXB0RmV0Y2hlci5tb2R1bGVLZXkoKSksIGpzVW5kZWZpbmVkKCksIHJldHVybmVkRXhj
ZXB0aW9uKTsKKyAgICBpZiAoKHJldHVybmVkRXhjZXB0aW9uICYmIGlzVGVybWluYXRlZEV4ZWN1
dGlvbkV4Y2VwdGlvbih2bSwgcmV0dXJuZWRFeGNlcHRpb24pKSB8fCBpc1Rlcm1pbmF0aW5nRXhl
Y3V0aW9uKCkpIHsKKyAgICAgICAgZm9yYmlkRXhlY3V0aW9uKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAocmV0dXJuZWRFeGNlcHRpb24pIHsKKyAgICAgICAgaWYgKG1fZ2xv
YmFsU2NvcGUtPmNhbkluY2x1ZGVFcnJvckRldGFpbHMoc291cmNlQ29kZS5jYWNoZWRTY3JpcHQo
KSwgc291cmNlQ29kZS51cmwoKS5zdHJpbmcoKSkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJ
dCdzIG5vdCBncmVhdCB0aGF0IHRoaXMgY2FuIHJ1biBhcmJpdHJhcnkgY29kZSB0byBzdHJpbmct
aWZ5IHRoZSB2YWx1ZSBvZiB0aGUgZXhjZXB0aW9uLgorICAgICAgICAgICAgLy8gRG8gd2UgbmVl
ZCB0byBkbyBhbnl0aGluZyB0byBoYW5kbGUgdGhhdCBwcm9wZXJseSwgaWYgaXQsIHNheSwgcmFp
c2VzIGFub3RoZXIgZXhjZXB0aW9uPworICAgICAgICAgICAgaWYgKHJldHVybmVkRXhjZXB0aW9u
TWVzc2FnZSkKKyAgICAgICAgICAgICAgICAqcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gcmV0
dXJuZWRFeGNlcHRpb24tPnZhbHVlKCkudG9XVEZTdHJpbmcoJmdsb2JhbE9iamVjdCk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBPdmVyd3JpdGUgdGhlIGRldGFpbGVkIGVycm9y
IHdpdGggYSBnZW5lcmljIGVycm9yLgorICAgICAgICAgICAgU3RyaW5nIGdlbmVyaWNFcnJvck1l
c3NhZ2UgeyAiU2NyaXB0IGVycm9yLiJfcyB9OworICAgICAgICAgICAgaWYgKHJldHVybmVkRXhj
ZXB0aW9uTWVzc2FnZSkKKyAgICAgICAgICAgICAgICAqcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdl
ID0gZ2VuZXJpY0Vycm9yTWVzc2FnZTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBXb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUoY29uc3Qg
VVJMJiBtb2R1bGVVUkwsIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkgeworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpbml0U2NyaXB0SWZOZWVkZWQoKTsKKworICAgIGF1dG8m
IGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBlci5nZXQoKTsKKyAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisKKyAg
ICBhdXRvIHNjcmlwdEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpjcmVhdGUoY3JlZGVu
dGlhbHMpOworICAgIHsKKyAgICAgICAgYXV0byYgcHJvbWlzZSA9IEpTRXhlY1N0YXRlOjpsb2Fk
TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9kdWxlVVJMLnN0cmluZygpLCBqc1VuZGVmaW5lZCgpLCBK
U0M6OkpTU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKHZtLCB7IHNjcmlwdEZldGNoZXIucHRyKCkgfSkp
OworCisgICAgICAgIGF1dG8gdGFzayA9IGNyZWF0ZVNoYXJlZFRhc2s8dm9pZChPcHRpb25hbDxF
eGNlcHRpb24+JiYpPihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICB9KTsK
KworICAgICAgICBhdXRvJiBmdWxmaWxsSGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpj
cmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbdGFzaywgc2NyaXB0RmV0Y2hl
cl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIC0+
IEpTQzo6RW5jb2RlZEpTVmFsdWUgeworICAgICAgICAgICAgLy8gdGFzay0+cnVuKFdURjo6bnVs
bG9wdCk7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAg
ICAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisgICAgICAgICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICAgICAgICAgIElkZW50aWZpZXIgbW9kdWxl
S2V5ID0ganNWYWx1ZVRvTW9kdWxlS2V5KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVu
dCgwKSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAg
ICAgICAgICAgc2NyaXB0RmV0Y2hlci0+bm90aWZ5TG9hZENvbXBsZXRlZCgqbW9kdWxlS2V5Lmlt
cGwoKSk7CisKKyAgICAgICAgICAgIGF1dG8qIGNvbnRleHQgPSBkb3duY2FzdDxXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZT4oanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0
KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAgICAgICAgIGlmICghY29udGV4dCB8
fCAhY29udGV4dC0+c2NyaXB0KCkpIHsKKyAgICAgICAgICAgICAgICB0YXNrLT5ydW4oV1RGOjpu
dWxsb3B0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBOYWtlZFB0cjxKU0M6OkV4Y2Vw
dGlvbj4gcmV0dXJuZWRFeGNlcHRpb247CisgICAgICAgICAgICBKU0V4ZWNTdGF0ZTo6bGlua0Fu
ZEV2YWx1YXRlTW9kdWxlKCpnbG9iYWxPYmplY3QsIG1vZHVsZUtleSwganNVbmRlZmluZWQoKSwg
cmV0dXJuZWRFeGNlcHRpb24pOworICAgICAgICAgICAgaWYgKChyZXR1cm5lZEV4Y2VwdGlvbiAm
JiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVybmVkRXhjZXB0aW9uKSkg
fHwgY29udGV4dC0+c2NyaXB0KCktPmlzVGVybWluYXRpbmdFeGVjdXRpb24oKSkgeworICAgICAg
ICAgICAgICAgIGlmIChjb250ZXh0LT5zY3JpcHQoKSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGV4dC0+c2NyaXB0KCktPmZvcmJpZEV4ZWN1dGlvbigpOworICAgICAgICAgICAgICAgIHRhc2st
PnJ1bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChyZXR1
cm5lZEV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgICAg
ICAgICAgICAgIGlmIChjb250ZXh0LT5jYW5JbmNsdWRlRXJyb3JEZXRhaWxzKG51bGxwdHIsIG1v
ZHVsZUtleS5zdHJpbmcoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEl0J3Mg
bm90IGdyZWF0IHRoYXQgdGhpcyBjYW4gcnVuIGFyYml0cmFyeSBjb2RlIHRvIHN0cmluZy1pZnkg
dGhlIHZhbHVlIG9mIHRoZSBleGNlcHRpb24uCisgICAgICAgICAgICAgICAgICAgIC8vIERvIHdl
IG5lZWQgdG8gZG8gYW55dGhpbmcgdG8gaGFuZGxlIHRoYXQgcHJvcGVybHksIGlmIGl0LCBzYXks
IHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlvbj8KKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9
IHJldHVybmVkRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gT3ZlcndyaXRl
IHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBlcnJvci4KKyAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZSA9ICJTY3JpcHQgZXJyb3IuIl9zOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24obWVzc2FnZSwgeyB9LCB7IH0s
IHsgfSwgeyB9LCB7IH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0YXNrLT5ydW4o
V1RGOjpudWxsb3B0KTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGF1dG8mIHJlamVjdEhhbmRsZXIgPSAq
SlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCAxLCBTdHJpbmco
KSwgW3Rhc2tdKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSB7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAg
ICAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisgICAgICAgICAgICBKU1ZhbHVlIGVycm9y
VmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOworICAgICAgICAgICAgaWYgKGVycm9yVmFs
dWUuaXNPYmplY3QoKSkgeworICAgICAgICAgICAgICAgIGF1dG8qIG9iamVjdCA9IEpTQzo6YXNP
YmplY3QoZXJyb3JWYWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+Z2V0RGlyZWN0
KHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSY+KCp2bS5jbGllbnREYXRhKS5idWlsdGlu
TmFtZXMoKS5mYWlsdXJlS2luZFByaXZhdGVOYW1lKCkpKSB7CisgICAgICAgICAgICAgICAgICAg
IGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAg
ICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUo
Kmdsb2JhbE9iamVjdCwgdm0sIG9iamVjdCwgY2F0Y2hTY29wZSk7CisgICAgICAgICAgICAgICAg
ICAgIHRhc2stPnJ1bihFeGNlcHRpb24geyBBYm9ydEVycm9yLCBtZXNzYWdlIH0pOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxFcnJv
ckluc3RhbmNlPih2bSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byogZXJyb3IgPSBqc0Nh
c3Q8RXJyb3JJbnN0YW5jZSo+KG9iamVjdCk7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAo
ZXJyb3ItPmVycm9yVHlwZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JUeXBl
OjpUeXBlRXJyb3I6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gY2F0Y2hTY29wZSA9
IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5n
IG1lc3NhZ2UgPSByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKCpnbG9iYWxPYmplY3Qs
IHZtLCBlcnJvciwgY2F0Y2hTY29wZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXNrLT5y
dW4oRXhjZXB0aW9uIHsgVHlwZUVycm9yLCBtZXNzYWdlIH0pOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXNlIEVycm9yVHlwZTo6U3ludGF4RXJy
b3I6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xBUkVf
Q0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2Ug
PSByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKCpnbG9iYWxPYmplY3QsIHZtLCBlcnJv
ciwgY2F0Y2hTY29wZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXNrLT5ydW4oRXhjZXB0
aW9uIHsgSlNTeW50YXhFcnJvciwgbWVzc2FnZSB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJFX0NBVENI
X1NDT1BFKHZtKTsKKyAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gcmV0cmlldmVFcnJvck1l
c3NhZ2VXaXRob3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1ZSwgY2F0Y2hTY29w
ZSk7CisgICAgICAgICAgICB0YXNrLT5ydW4oRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgbWVzc2Fn
ZSB9KTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CisgICAgICAgIH0pOworCisgICAgICAgIHByb21pc2UudGhlbigmZ2xvYmFsT2JqZWN0LCAmZnVs
ZmlsbEhhbmRsZXIsICZyZWplY3RIYW5kbGVyKTsKKyAgICB9CisgICAgbV9nbG9iYWxTY29wZS0+
ZXZlbnRMb29wKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKK30KKwogdGVtcGxhdGU8
dHlwZW5hbWUgSlNHbG9iYWxTY29wZVByb3RvdHlwZSwgdHlwZW5hbWUgSlNHbG9iYWxTY29wZSwg
dHlwZW5hbWUgR2xvYmFsU2NvcGU+CiB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI6OmluaXRTY3JpcHRXaXRoU3ViY2xhc3MoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBjNDkz
MDFhZWQzZGQwODlkYTc5NzMyNzYwY2FmMmY3YjY0ZGIxMWI2Li45ZjAyM2E2MmY4MTQzZTdkOTgy
ZmJmN2Y1OGVlZWFkY2EzYTViNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLmg+CiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9NZXNz
YWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvTmFrZWRQdHIuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkBAIC00NCw5ICs0NSwxMSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBMb2FkYWJsZU1vZHVsZVNj
cmlwdDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBXb3JrZXJDb25zb2xlQ2xpZW50
OwogY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU7CitjbGFzcyBXb3JrZXJTY3JpcHRG
ZXRjaGVyOwogCiBjbGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyKTsKQEAg
LTk0LDYgKzk3LDEzIEBAIGNsYXNzIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewog
ICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIFN0cmluZyogcmV0dXJu
ZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2Vw
dGlvbiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKIAorICAg
IEpTQzo6SlNWYWx1ZSBldmFsdWF0ZU1vZHVsZShKU0M6OkpTTW9kdWxlUmVjb3JkJik7CisKKyAg
ICB2b2lkIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShXb3JrZXJTY3JpcHRGZXRjaGVyJiwgY29uc3Qg
U2NyaXB0U291cmNlQ29kZSYsIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVs
bHB0cik7CisgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBsb2FkTW9kdWxlU3luY2hyb25vdXNs
eShXb3JrZXJTY3JpcHRGZXRjaGVyJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOworCisgICAg
dm9pZCBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiBtb2R1bGVVUkwsIEZldGNoT3B0
aW9uczo6Q3JlZGVudGlhbHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0
aW9uPiYmKT4mJik7CisKIHByb3RlY3RlZDoKICAgICBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSogZ2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbFNjb3BlOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcAppbmRleCAzYTRkYWVm
YzM5MDJiZGIyZWE4NGZjNThkN2U0MmY4M2U1ZjA3ZTJmLi45ZjMxZDBkZmQ1OWE4NzA3ZmQ0ZWI1
OWNjM2M5MmEwNjY0ODFkZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJT
Y3JpcHRMb2FkZXIuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgT3B0aW9uYWw8RXhjZXB0aW9uPiBX
b3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi12b2lkIFdvcmtlclNjcmlwdExvYWRl
cjo6bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIFJlc291cmNlUmVxdWVzdCYmIHNjcmlwdFJlcXVlc3QsIEZldGNoT3B0aW9u
cyYmIGZldGNoT3B0aW9ucywgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgY29udGVu
dFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZSBzZXJ2aWNlV29y
a2VyTW9kZSwgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQpCit2b2lkIFdvcmtlclNj
cmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIFJlc291cmNlUmVxdWVzdCYmIHNjcmlwdFJlcXVlc3QsIEZl
dGNoT3B0aW9ucyYmIGZldGNoT3B0aW9ucywgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1l
bnQgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZSBz
ZXJ2aWNlV29ya2VyTW9kZSwgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIFN0cmlu
ZyYmIHRhc2tNb2RlKQogewogICAgIG1fY2xpZW50ID0gJmNsaWVudDsKICAgICBtX3VybCA9IHNj
cmlwdFJlcXVlc3QudXJsKCk7CkBAIC0xMjMsOCArMTIzLDYgQEAgdm9pZCBXb3JrZXJTY3JpcHRM
b2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRF
eGVjdXQKICAgICBBU1NFUlQoZmV0Y2hPcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpTYW1lT3JpZ2luIHx8IChmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gIT0gRmV0Y2hPcHRpb25z
OjpEZXN0aW5hdGlvbjo6U2VydmljZXdvcmtlciAmJiBmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24g
IT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyKSk7CiAKICAgICBUaHJlYWRhYmxl
TG9hZGVyT3B0aW9ucyBvcHRpb25zIHsgV1RGTW92ZShmZXRjaE9wdGlvbnMpIH07Ci0gICAgLy8g
RklYTUU6IFdlIHNob3VsZCBhZGQgYW4gb3B0aW9uIHRvIHNldCBjcmVkZW50aWFsIG1vZGUuCi0g
ICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVP
cmlnaW47CiAgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxsYmFja1BvbGlj
eTo6U2VuZENhbGxiYWNrczsKICAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9y
Y2VtZW50ID0gY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ7CiAgICAgaWYgKGZldGNo
T3B0aW9ucy5kZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTZXJ2aWNl
d29ya2VyKQpAQCAtMTQzLDcgKzE0MSw3IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpsb2Fk
QXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0CiAKICAg
ICAvLyBEdXJpbmcgY3JlYXRlLCBjYWxsYmFja3MgbWF5IGhhcHBlbiB3aGljaCByZW1vdmUgdGhl
IGxhc3QgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0LgogICAgIFJlZjxXb3JrZXJTY3JpcHRMb2Fk
ZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwotICAgIG1fdGhyZWFkYWJsZUxvYWRlciA9IFRocmVh
ZGFibGVMb2FkZXI6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCAqdGhpcywgV1RGTW92
ZSgqcmVxdWVzdCksIG9wdGlvbnMpOworICAgIG1fdGhyZWFkYWJsZUxvYWRlciA9IFRocmVhZGFi
bGVMb2FkZXI6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCAqdGhpcywgV1RGTW92ZSgq
cmVxdWVzdCksIG9wdGlvbnMsIHsgfSwgV1RGTW92ZSh0YXNrTW9kZSkpOwogfQogCiBjb25zdCBV
UkwmIFdvcmtlclNjcmlwdExvYWRlcjo6cmVzcG9uc2VVUkwoKSBjb25zdApAQCAtMTkwLDYgKzE4
OCw4IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvCiAgICAgbV9jZXJ0aWZpY2F0ZUluZm8gPSBy
ZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKSA/ICpyZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKSA6
IENlcnRpZmljYXRlSW5mbygpOwogICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IHJlc3BvbnNlLm1p
bWVUeXBlKCk7CiAgICAgbV9yZXNwb25zZUVuY29kaW5nID0gcmVzcG9uc2UudGV4dEVuY29kaW5n
TmFtZSgpOworICAgIG1fcmVzcG9uc2VTb3VyY2UgPSByZXNwb25zZS5zb3VyY2UoKTsKKyAgICBt
X2lzUmVkaXJlY3RlZCA9IHJlc3BvbnNlLmlzUmVkaXJlY3RlZCgpOwogICAgIG1fY29udGVudFNl
Y3VyaXR5UG9saWN5ID0gQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIHsgcmVz
cG9uc2UgfTsKICAgICBtX3JlZmVycmVyUG9saWN5ID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxk
KEhUVFBIZWFkZXJOYW1lOjpSZWZlcnJlclBvbGljeSk7CiAgICAgaWYgKG1fY2xpZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKaW5kZXggN2ZkZDBiM2Y2
YTAxYzJkYjU3NzI0YTkwYjNiYjk4NDBmMWU2OGU1Zi4uY2ZhMzFhMzUzMjU5YWVlZDE5OGY5Mzkx
ZmZjMTUxMWI0MDUwYjg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRmV0Y2hPcHRpb25zLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgor
I2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVy
LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPG1lbW9y
eT4KQEAgLTQzLDcgKzQ0LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXhjZXB0
aW9uOwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50OwpAQCAtNTgsNyArNTgsNyBAQCBjbGFzcyBXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxXb3JrZXJTY3JpcHRMb2FkZXI+LCBwdWJsaWMgVGhyZWFkYQogICAgIH0K
IAogICAgIE9wdGlvbmFsPEV4Y2VwdGlvbj4gbG9hZFN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFVSTCYsIEZldGNoT3B0aW9uczo6TW9kZSwgRmV0Y2hPcHRpb25z
OjpDYWNoZSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIGNvbnN0IFN0cmluZyYg
aW5pdGlhdG9ySWRlbnRpZmllcik7Ci0gICAgdm9pZCBsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlvbnMmJiwgQ29u
dGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZSwgV29ya2Vy
U2NyaXB0TG9hZGVyQ2xpZW50Jik7CisgICAgdm9pZCBsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlvbnMmJiwgQ29u
dGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZSwgV29ya2Vy
U2NyaXB0TG9hZGVyQ2xpZW50JiwgU3RyaW5nJiYgdGFza01vZGUpOwogCiAgICAgdm9pZCBub3Rp
ZnlFcnJvcigpOwogCkBAIC02Nyw2ICs2Nyw4IEBAIGNsYXNzIFdvcmtlclNjcmlwdExvYWRlciA6
IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj4sIHB1YmxpYyBUaHJlYWRhCiAg
ICAgY29uc3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJy
ZXJQb2xpY3k7IH0KICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9
CiAgICAgY29uc3QgVVJMJiByZXNwb25zZVVSTCgpIGNvbnN0OworICAgIFJlc291cmNlUmVzcG9u
c2U6OlNvdXJjZSByZXNwb25zZVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VTb3Vy
Y2U7IH0KKyAgICBib29sIGlzUmVkaXJlY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNSZWRpcmVj
dGVkOyB9CiAgICAgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8oKSBjb25z
dCB7IHJldHVybiBtX2NlcnRpZmljYXRlSW5mbzsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVzcG9u
c2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VNSU1FVHlwZTsgfQogICAgIGJv
b2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsZWQ7IH0KQEAgLTEwNyw2ICsxMDksOCBA
QCBjbGFzcyBXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJTY3Jp
cHRMb2FkZXI+LCBwdWJsaWMgVGhyZWFkYQogICAgIHVuc2lnbmVkIGxvbmcgbV9pZGVudGlmaWVy
IHsgMCB9OwogICAgIGJvb2wgbV9mYWlsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9maW5pc2hp
bmcgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1JlZGlyZWN0ZWQgeyBmYWxzZSB9OworICAgIFJl
c291cmNlUmVzcG9uc2U6OlNvdXJjZSBtX3Jlc3BvbnNlU291cmNlIHsgUmVzb3VyY2VSZXNwb25z
ZTo6U291cmNlOjpVbmtub3duIH07CiAgICAgUmVzb3VyY2VFcnJvciBtX2Vycm9yOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDcyNzkwYTAzMzIyNjE5
ZTZlZTdlNjE2YThiZGUxOGJkNTUyYTU3ODMuLjYzZWU4YzhkMzZmM2JkNzI0NjM1M2M1YmRmODQx
N2RkODEwN2M0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAg
LTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNv
Y2tldFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRl
ICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0
Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC01NSw2ICs1Nyw4IEBAIFdvcmtlclBhcmFtZXRlcnMgV29ya2VyUGFyYW1ldGVy
czo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICAgICAgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29u
dGVudFNlY3VyaXR5UG9saWN5LAogICAgICAgICB0aW1lT3JpZ2luLAogICAgICAgICByZWZlcnJl
clBvbGljeSwKKyAgICAgICAgd29ya2VyVHlwZSwKKyAgICAgICAgY3JlZGVudGlhbHMsCiAgICAg
ICAgIHNldHRpbmdzVmFsdWVzLmlzb2xhdGVkQ29weSgpCiAgICAgfTsKIH0KQEAgLTEyMyw5ICsx
MjcsMzEgQEAgYm9vbCBXb3JrZXJUaHJlYWQ6OnNob3VsZFdhaXRGb3JXZWJJbnNwZWN0b3JPblN0
YXJ0dXAoKSBjb25zdAogCiB2b2lkIFdvcmtlclRocmVhZDo6ZXZhbHVhdGVTY3JpcHRJZk5lY2Vz
c2FyeShTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpCiB7Ci0gICAgZ2xvYmFsU2NvcGUoKS0+c2Ny
aXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29k
ZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3Nh
Z2UpOwotCi0gICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgLy8gV2UgYXJlIGN1
cnJlbnRseSBob2xkaW5nIG9ubHkgdGhlIGluaXRpYWwgc2NyaXB0IGNvZGUuIElmIHRoZSBXb3Jr
ZXJUeXBlIGlzIE1vZHVsZSwgd2Ugc2hvdWxkIGZldGNoIHRoZSBlbnRpcmUgZ3JhcGggYmVmb3Jl
IGV4ZWN1dGluZyB0aGUgcmVzdCBvZiB0aGlzLgorICAgIC8vIFdlIGludm9rZSBtb2R1bGUgbG9h
ZGVyIGFzIGlmIHdlIGFyZSBleGVjdXRpbmcgaW5saW5lIG1vZHVsZSBzY3JpcHQgdGFnIGluIERv
Y3VtZW50LgorCisgICAgaWYgKG1fc3RhcnR1cERhdGEtPnBhcmFtcy53b3JrZXJUeXBlID09IFdv
cmtlclR5cGU6OkNsYXNzaWMpIHsKKyAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmV2
YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwgVVJMKG1f
c3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOworICAg
ICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAv
LyBGSVhNRSBmaXggaW5pdGlhdG9yIG5hbWUuCisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291
cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFy
YW1zLnNjcmlwdFVSTCksIHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVs
ZSk7CisgICAgICAgIGF1dG8gc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZldGNoZXI6OmNy
ZWF0ZShnbG9iYWxTY29wZSgpLT5jcmVkZW50aWFscygpKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVl
V2FpdFJlc3VsdCByZXN1bHQgPSBnbG9iYWxTY29wZSgpLT5zY3JpcHQoKS0+bG9hZE1vZHVsZVN5
bmNocm9ub3VzbHkoc2NyaXB0RmV0Y2hlci5nZXQoKSwgc291cmNlQ29kZSk7CisgICAgICAgIGlm
IChyZXN1bHQgIT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgeworICAgICAgICAgICAgaWYgKE9w
dGlvbmFsPExvYWRhYmxlU2NyaXB0OjpFcnJvcj4gZXJyb3IgPSBzY3JpcHRGZXRjaGVyLT5lcnJv
cigpKSB7CisgICAgICAgICAgICAgICAgaWYgKE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpDb25z
b2xlTWVzc2FnZT4gbWVzc2FnZSA9IGVycm9yLT5jb25zb2xlTWVzc2FnZSkKKyAgICAgICAgICAg
ICAgICAgICAgZXhjZXB0aW9uTWVzc2FnZSA9IG1lc3NhZ2UtPm1lc3NhZ2U7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25NZXNzYWdlID0gIkltcG9y
dGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfczsKKyAgICAgICAgICAgICAgICBnbG9iYWxT
Y29wZSgpLT5yZXBvcnRFeGNlcHRpb24oZXhjZXB0aW9uTWVzc2FnZSwgeyB9LCB7IH0sIHsgfSwg
eyB9LCB7IH0pOworICAgICAgICAgICAgfSBlbHNlIGlmICghc2NyaXB0RmV0Y2hlci0+d2FzQ2Fu
Y2VsZWQoKSkgeworICAgICAgICAgICAgICAgIC8vIEV2YWx1YXRlLgorICAgICAgICAgICAgICAg
IGdsb2JhbFNjb3BlKCktPnNjcmlwdCgpLT5saW5rQW5kRXZhbHVhdGVNb2R1bGUoc2NyaXB0RmV0
Y2hlci5nZXQoKSwgc291cmNlQ29kZSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOworICAgICAgICAgICAg
ICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQogCiAgICAgLy8gRnJlZSB0aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNlIGl0cyBtZW1i
ZXIgdmFyaWFibGUgZGVyZWYncyBoYXBwZW4gb24gdGhlIHdvcmtlcidzIHRocmVhZCAoc2luY2UK
ICAgICAvLyBhbGwgcmVmL2RlcmVmcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBwZW5pbmcgb24g
dGhlIHRocmVhZCBhdCB0aGlzIHBvaW50KS4gTm90ZSB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuaAppbmRleCA4ODkwNzkwOGU3YTliODA5ZThmMmE0ZTQ3M2Q3NTJkMTFkMjkz
N2MwLi45NTEyZWZkYjE4ZjMyYTUwZWNiN2ZiNTY5NTlkNjFlODg3MmZhMWQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTI2LDcgKzI2LDEwIEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgor
I2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JX
b3JrbGV0VGhyZWFkLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldv
cmtlclR5cGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNp
bmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtNjMsNiArNjYsOCBAQCBz
dHJ1Y3QgV29ya2VyUGFyYW1ldGVycyB7CiAgICAgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3k7CiAgICAgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luOwogICAg
IFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5OworICAgIFdvcmtlclR5cGUgd29ya2VyVHlw
ZTsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsKICAgICBTZXR0aW5n
czo6VmFsdWVzIHNldHRpbmdzVmFsdWVzOwogCiAgICAgV29ya2VyUGFyYW1ldGVycyBpc29sYXRl
ZENvcHkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKaW5kZXggMGIwZWQ4
NjBkOWM3MTQyMzhhMmE1YmI5ZmRmNDM4NDAyZDE2ZWJmMC4uMWMxYmI5NDQ4NjdhZGY0ZWQ1Nzhh
MjgxNGZhMzMyMzI2YWVkOGE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKQEAg
LTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFdvcmtl
clR5cGUgeworZW51bSBjbGFzcyBXb3JrZXJUeXBlIDogdWludDhfdCB7CiAgICAgQ2xhc3NpYywK
ICAgICBNb2R1bGUsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggZWJiZTk1ZTg5MjRjOGYxZDczNzUy
NWRlYTE2MzBiMWZhZDU2ZmIyNy4uNGM3ZGRmNGE0YzEzMWUwZGNkNmJhMDk1MDlhYjJkOTc1NzVm
MzBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIE5hdmlnYXRvckJh
c2U7CiBjbGFzcyBTZXJ2aWNlV29ya2VyOwogCiBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJVcGRh
dGVWaWFDYWNoZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7CitlbnVtIGNsYXNz
IFdvcmtlclR5cGUgOiB1aW50OF90OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFz
cyBET01Qcm9taXNlUHJveHk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcAppbmRleCBlYzM5YzBmODQ5YTU0ZTFiNmQwYmVlMzRh
OGQ3ZDE5Y2JhNDVlMjg4Li5mOTUxMGNiZjZmZGY3MDQ2ZjdkMWI5MjIzNjkxNzRkMDFmYTBiZTA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckpvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2IuY3BwCkBAIC0xMTAsNyArMTEwLDggQEAgdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpmZXRj
aFNjcmlwdFdpdGhDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEYKICAg
ICBvcHRpb25zLmNhY2hlID0gY2FjaGVQb2xpY3k7CiAgICAgb3B0aW9ucy5yZWRpcmVjdCA9IEZl
dGNoT3B0aW9uczo6UmVkaXJlY3Q6OkVycm9yOwogICAgIG9wdGlvbnMuZGVzdGluYXRpb24gPSBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTZXJ2aWNld29ya2VyOwotICAgIG1fc2NyaXB0TG9h
ZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShvcHRpb25zKSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3Jj
ZSwgU2VydmljZVdvcmtlcnNNb2RlOjpOb25lLCAqdGhpcyk7CisgICAgb3B0aW9ucy5jcmVkZW50
aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW47CisgICAgbV9zY3Jp
cHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBX
VEZNb3ZlKG9wdGlvbnMpLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RF
bmZvcmNlLCBTZXJ2aWNlV29ya2Vyc01vZGU6Ok5vbmUsICp0aGlzLCBXb3JrZXJSdW5Mb29wOjpk
ZWZhdWx0TW9kZSgpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBTZXJ2aWNlV29ya2VySm9iOjp2YWxp
ZGF0ZVNlcnZpY2VXb3JrZXJSZXNwb25zZShjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9i
RGF0YSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlv
bnMuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uT3B0aW9ucy5oCmluZGV4IDlkNTAwZjg1YWNiMTg4NDFjYzU1YmVhODIxMWRiMTRmYWRj
OTc0NzUuLjJlMzU1N2ZhN2RmNjdmMWJmOThjN2I3YTVkZTRiMGE1YTdiY2NjZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIDogdWlu
dDhfdDsKLWVudW0gY2xhc3MgV29ya2VyVHlwZTsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6IHVp
bnQ4X3Q7CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucyB7CiAgICAg
U3RyaW5nIHNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCBjOGE3YTk5NzJm
OWNjOGMxNmE3OTY3NTExNTUyZjU0OTNhNjg2Zjk4Li4zM2NhMGVjMjNiNThhNTUxMTg3Njg0NmJh
MDcxODM1MzJiNWM0N2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtNzMsOCAr
NzMsOSBAQCBjbGFzcyBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA6IHB1YmxpYyBXb3Jr
ZXJPYmplY3RQcm94eSB7CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkK
IC8vIEZJWE1FOiBVc2UgdmFsaWQgcnVudGltZSBmbGFncwogCisvLyBGSVhNRTogVXNlIGEgdmFs
aWQgV29ya2VyVHlwZSBhbmQgQ3JlZGVudGFpbHMgZm9yIG1vZHVsZSBzZXJ2aWNlIHdvcmtlcnMu
CiBTZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKGNvbnN0IFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBTZXR0aW5n
czo6VmFsdWVzJiBzZXR0aW5nc1ZhbHVlcywgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5
LCBXb3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJv
dmlkZXIpCi0gICAgOiBXb3JrZXJUaHJlYWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmco
KSwgInNlcnZpY2V3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVh
dGVJZGVudGlmaWVyKCksIFdURk1vdmUodXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PmxvYWRlclN0cmF0ZWd5KCktPmlzT25MaW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5
LCBmYWxzZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHsgfSwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0
YS5zY3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRh
LnJlZ2lzdHJhdGlvbi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRi
Q29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0
ZUFsbEVuYWJsZWQoKSkKKyAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0
eVN0cmluZygpLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rv
cnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJp
dHlQb2xpY3ksIGZhbHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9LCBXb3JrZXJUeXBlOjpD
bGFzc2ljLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFsczo6U2FtZU9yaWdpbiwgc2V0dGluZ3NWYWx1
ZXMgfSwgZGF0YS5zY3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9y
bWFsLCBkYXRhLnJlZ2lzdHJhdGlvbi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5n
ZXQoKSwgaWRiQ29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxh
Z3M6OmNyZWF0ZUFsbEVuYWJsZWQoKSkKICAgICAsIG1fZGF0YShkYXRhLmlzb2xhdGVkQ29weSgp
KQogICAgICwgbV93b3JrZXJPYmplY3RQcm94eShEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eTo6c2hhcmVkKCkpCiAgICAgLCBtX2hlYXJ0QmVhdFRpbWVvdXQoU1dDb250ZXh0TWFuYWdlcjo6
c2luZ2xldG9uKCkuY29ubmVjdGlvbigpLT5zaG91bGRVc2VTaG9ydFRpbWVvdXQoKSA/IGhlYXJ0
QmVhdFRpbWVvdXRGb3JUZXN0IDogaGVhcnRCZWF0VGltZW91dCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCAy
ZGRkYjNiNWI0MWVkODdiZDYxNGEwYjk0ZDA5Yjc2MTI5M2Q3NjA3Li4zNzhmYmE2NTdlOGJiZjQ4
NDFlNTZjYmY4NjU2MWY4ZWNjMzExMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCkBAIC01MCw3ICs1MCw3IEBA
IHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjsKIHN0cnVjdCBTZXJ2aWNlV29y
a2VyQ2xpZW50UXVlcnlPcHRpb25zOwogc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsK
IHN0cnVjdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI7Ci1lbnVtIGNsYXNzIFdvcmtl
clR5cGU7CitlbnVtIGNsYXNzIFdvcmtlclR5cGUgOiB1aW50OF90OwogCiBjbGFzcyBTV1NlcnZl
cldvcmtlciA6IHB1YmxpYyBSZWZDb3VudGVkPFNXU2VydmVyV29ya2VyPiB7CiBwdWJsaWM6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCBk
NzA0ODg2NjQ4YzBlZmFhNmI3ODA4NGM1Mzg3MjAxY2EyYjFjNTQzLi4yYWUwZTMzODkxZGJjODlm
MTQ2ODdkNDE0ODAyYWFhMTJkMGQ4NGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRz
L1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTE1OCw3MiArMTU4LDcgQEAgUmVmZXJyZXJQb2xp
Y3kgV29ya2xldEdsb2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiB2b2lkIFdvcmts
ZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQoY29uc3QgVVJMJiBtb2R1bGVVUkws
IEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9zY3JpcHRGZXRjaEpvYnMuYXBwZW5kKHsg
bW9kdWxlVVJMLCBjcmVkZW50aWFscywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikgfSk7Ci0g
ICAgcHJvY2Vzc05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKCk7Ci19Ci0KLXZvaWQgV29ya2xl
dEdsb2JhbFNjb3BlOjpwcm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQoKQotewotICAg
IGlmIChtX3NjcmlwdEZldGNoSm9icy5pc0VtcHR5KCkgfHwgbV9zY3JpcHRMb2FkZXIpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGF1dG8mIHNjcmlwdEZldGNoSm9iID0gbV9zY3JpcHRGZXRjaEpv
YnMuZmlyc3QoKTsKLQotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgc2NyaXB0RmV0Y2hK
b2IubW9kdWxlVVJMIH07Ci0KLSAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwotICAgIGZl
dGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzOwotICAgIGZldGNoT3B0
aW9ucy5jYWNoZSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQ7Ci0gICAgZmV0Y2hPcHRp
b25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93OwotICAgIGZldGNo
T3B0aW9ucy5jcmVkZW50aWFscyA9IHNjcmlwdEZldGNoSm9iLmNyZWRlbnRpYWxzOwotI2lmIEVO
QUJMRShXRUJfQVVESU8pCi0gICAgaWYgKGlzQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoKSkKLSAg
ICAgICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
bjo6QXVkaW93b3JrbGV0OwotI2VuZGlmCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0g
ICAgaWYgKGlzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUoKSkKLSAgICAgICAgZmV0Y2hPcHRpb25z
LmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6UGFpbnR3b3JrbGV0Owot
I2VuZGlmCi0KLSAgICBhdXRvIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0gc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgPyBDb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5
RW5mb3JjZW1lbnQ6OkVuZm9yY2VDaGlsZFNyY0RpcmVjdGl2ZTsKLQotICAgIG1fc2NyaXB0TG9h
ZGVyID0gV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKTsKLSAgICBtX3NjcmlwdExvYWRlci0+
bG9hZEFzeW5jaHJvbm91c2x5KCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNo
T3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vy
c01vZGU6OkFsbCwgKnRoaXMpOwotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQotewot
fQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6bm90aWZ5RmluaXNoZWQoKQotewotICAgIGF1
dG8gY29tcGxldGVkSm9iID0gbV9zY3JpcHRGZXRjaEpvYnMudGFrZUZpcnN0KCk7Ci0KLSAgICBp
ZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKSB7Ci0gICAgICAgIGRpZENvbXBsZXRlU2NyaXB0
RmV0Y2hKb2IoV1RGTW92ZShjb21wbGV0ZWRKb2IpLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCBt
YWtlU3RyaW5nKCJGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogIiwgbV9zY3JpcHRMb2Fk
ZXItPmVycm9yKCkubG9jYWxpemVkRGVzY3JpcHRpb24oKSkgfSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJlIHJ1biBhcyBhIG1v
ZHVsZSBzY3JpcHQgYnV0IHdlIGRvbid0IHN1cHBvcnQgdGhpcyBpbiB3b3JrZXJzIHlldC4KLSAg
ICBVUkwgbW9kdWxlVVJMKG1fc2NyaXB0TG9hZGVyLT5yZXNwb25zZVVSTCgpKTsKLSAgICBhdXRv
IGFkZFJlc3VsdCA9IG1fZXZhbHVhdGVkTW9kdWxlcy5hZGQobW9kdWxlVVJMKTsKLSAgICBpZiAo
YWRkUmVzdWx0LmlzTmV3RW50cnkpIHsKLSAgICAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+
IGV4Y2VwdGlvbjsKLSAgICAgICAgc2NyaXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUo
bV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBXVEZNb3ZlKG1vZHVsZVVSTCkpLCBleGNlcHRpb24p
OwotICAgICAgICBpZiAoZXhjZXB0aW9uKQotICAgICAgICAgICAgc2NyaXB0KCktPnNldEV4Y2Vw
dGlvbihleGNlcHRpb24pOwotICAgIH0KLQotICAgIGRpZENvbXBsZXRlU2NyaXB0RmV0Y2hKb2Io
V1RGTW92ZShjb21wbGV0ZWRKb2IpLCB7IH0pOwotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29w
ZTo6ZGlkQ29tcGxldGVTY3JpcHRGZXRjaEpvYihTY3JpcHRGZXRjaEpvYiYmIGpvYiwgT3B0aW9u
YWw8RXhjZXB0aW9uPiByZXN1bHQpCi17Ci0gICAgbV9zY3JpcHRMb2FkZXIgPSBudWxscHRyOwot
Ci0gICAgam9iLmNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSk7Ci0KLSAgICBwcm9j
ZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQoKTsKKyAgICBzY3JpcHQoKS0+bG9hZEFuZEV2
YWx1YXRlTW9kdWxlKG1vZHVsZVVSTCwgY3JlZGVudGlhbHMsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAogTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXImIFdvcmtsZXRHbG9iYWxT
Y29wZTo6bWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCBmMjMyMGYwZDEzMDI1Y2VhYjNiYWM1NmE0
NWVjMmQxZGQzZmI2Y2MwLi5mZTU0Yjg1MzI1Njc5MjU4M2RlZGEwNTVhNDMzYTI1NjU0ZTg2NzUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAt
MzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNj
cmlwdENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgpAQCAtNTQsNyArNTMsNyBAQCBzdHJ1Y3QgV29ya2xldFBhcmFtZXRlcnM7CiBlbnVt
IFdvcmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIFdvcmtsZXRHbG9i
YWxTY29wZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFdvcmtsZXRHbG9iYWxTY29wZUlk
ZW50aWZpZXJUeXBlPjsKIAotY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlLCBwdWJsaWMgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsK
K2NsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0R2xvYmFsU2NvcGUpOwog
cHVibGljOgogICAgIHZpcnR1YWwgfldvcmtsZXRHbG9iYWxTY29wZSgpOwpAQCAtMTExLDEwICsx
MTAsNiBAQCBjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0
R2xvYmFsU2NvcGUsIHB1YmxpYyBXb3JrZXJTY3JpcAogICAgIHZvaWQgYWRkTWVzc2FnZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIHVu
c2lnbmVkLCB1bnNpZ25lZCwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgbG9uZykgZmluYWw7CiAgICAgdm9pZCBhZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYs
IHVuc2lnbmVkIGxvbmcpIGZpbmFsOwogCi0gICAgLy8gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50
LgotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOwotICAgIHZvaWQgbm90aWZ5RmluaXNoZWQo
KSBmaW5hbDsKLQogICAgIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCkgZmluYWwgeyBy
ZXR1cm4gdGhpczsgfQogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCkBAIC0xMjUsMTUgKzEyMCw2
IEBAIGNsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZSwgcHVibGljIFdvcmtlclNjcmlwCiAgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBV
UkwmKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0aW5nc1Zh
bHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1ZXM7IH0KIAotICAgIHN0
cnVjdCBTY3JpcHRGZXRjaEpvYiB7Ci0gICAgICAgIFVSTCBtb2R1bGVVUkw7Ci0gICAgICAgIEZl
dGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwotICAgICAgICBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+IGNvbXBsZXRpb25IYW5kbGVyOwotICAg
IH07Ci0KLSAgICB2b2lkIHByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5lZWRlZCgpOwotICAg
IHZvaWQgZGlkQ29tcGxldGVTY3JpcHRGZXRjaEpvYihTY3JpcHRGZXRjaEpvYiYmLCBPcHRpb25h
bDxFeGNlcHRpb24+KTsKLQogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAKICAg
ICBSZWY8U2VjdXJpdHlPcmlnaW4+IG1fdG9wT3JpZ2luOwpAQCAtMTQ0LDkgKzEzMCw2IEBAIGNs
YXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSwgcHVibGljIFdvcmtlclNjcmlwCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXI+IG1fbWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI7CiAKLSAg
ICBSZWZQdHI8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKLSAgICBEZXF1ZTxT
Y3JpcHRGZXRjaEpvYj4gbV9zY3JpcHRGZXRjaEpvYnM7Ci0gICAgSGFzaFNldDxVUkw+IG1fZXZh
bHVhdGVkTW9kdWxlczsKICAgICBTZXR0aW5nczo6VmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7CiB9
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMWFkYzI4YTZkNzFlZDhhMzNmZmRmOWRhZDE3OGE1MmE3MDQ4NGQyYy4uNmU2
MzIwYWQ4YzVjODQ2NzEwMDNlOWZjZDhmMDgxYjU0N2YzMGEyNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIxLTAyLTExICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSlMgTW9kdWxlcyBpbiBXb3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogd2ViYXVk
aW8vYXVkaW93b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWJhdWRpby93b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wMi0xMSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JF
U1NJT04ocjI3MjI5MykgV2ViR0wgMS4wLjIgdGVzdCBleHBlY3RhdGlvbnMgc2F5IEhUVFBTCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA1MWY5ZDZkMmM0YTAwY2ZmMzUzZTJlYWU1
MGU2NzM3NjZkY2Q1YjlhLi40ZTQwZWVkNjlmMTZjN2VhZDkzNTQzOWI1M2YwNDY2MmJkYmYxZTc0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAyMS0w
Mi0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1v
ZHVsZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3Bv
aW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13
b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29y
a2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9y
ZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFs
dWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9k
dWxld29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1p
bi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1l
LW9yaWdpbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9X
b3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxl
cy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1w
b3J0LW1ldGEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBv
cnQtcmVmZXJyZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13
b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVy
ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFt
ZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3JlZGVudGlhbHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNzcC5odHRw
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1
ZGlvLXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1yZWZlcnJlci5odHRwcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1yZWRpcmVj
dGVkLXdvcmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAyLTExICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGlu
ZyByMjcwNTc4LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNzllOTBhOTZmMGNkYjZjZTkxMGYyYmNl
NWM3Nzg2MjM5ZGY5ZDkwYi4uNjFhZDFkNWJhNjNiNTZmNDI0NGU4ZGUzYmJhMTA1YjljMjZhNDk4
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC02NDAsNyArNjQwLDYgQEAgZmFzdC9kb20vY29ubmVj
dGVkLXN1YmZyYW1lLWNvdW50ZXItb3ZlcmZsb3cuaHRtbCBbIFNsb3cgXQogWyBEZWJ1ZyBdIGh0
dHAvdGVzdHMvd29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtMi5odG1sIFsgU2xvdyBdCiAKICMg
U2tpcCB3b3JrZXJzIHRlc3RzIHRoYXQgYXJlIHRpbWluZyBvdXQgb3IgYXJlIFNoYXJlZFdvcmtl
ciByZWxhdGVkIG9ubHkKLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9j
b25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9kYXRhLXVybC1zaGFyZWQuaHRtbCBbIFNraXAg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2V4YW1wbGVzL29uY29u
bmVjdC5hbnkuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL2V4YW1wbGVzL29uY29ubmVjdC5hbnkud29ya2VyLmh0bWwgWyBTa2lwIF0KQEAgLTY2
Myw3ICs2NjIsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hh
cmVkV29ya2VyLXJlcGxhY2UtRXZlbnRIYW5kbGVyLmFueS5odAogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL1NoYXJlZFdvcmtlci1yZXBsYWNlLUV2ZW50SGFuZGxlci5h
bnkud29ya2VyLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9TaGFyZWRXb3JrZXItc2NyaXB0LWVycm9yLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9TaGFyZWRXb3JrZXItc2ltcGxlLmh0bWwg
WyBTa2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
b3B0aW9ucy1jcmVkZW50aWFscy5odG1sIFsgU2tpcCBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvU2hhcmVkV29ya2VyIFsgU2tpcCBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9u
b24tb2JqZWN0LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDQ5MjY5YjNiNTBiOTE3NWNiNjJlY2EzMTJlNTg2
YjNiMTY2MmEyNTkuLjJjYWU1ZjdlMzVhMzJmZWNlYjI2OGYyOTAwMDBlNGU1NTU2YzY4NjAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25v
bi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZl
LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1GQUlMIE5vbi1vYmpl
Y3Q6IG51bGwgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9udWxsLmpzb24nLiIK
LUZBSUwgTm9uLW9iamVjdDogdHJ1ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcu
L3RydWUuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBmYWxzZSBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9y
dCB0aGUgbW9kdWxlICcuL2ZhbHNlLmpzb24nLiIKLUZBSUwgTm9uLW9iamVjdDogc3RyaW5nIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9y
OiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vc3RyaW5nLmpzb24nLiIKLUZBSUwgTm9u
LW9iamVjdDogYXJyYXkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9hcnJheS5q
c29uJy4iCitGQUlMIE5vbi1vYmplY3Q6IG51bGwgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicg
aXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiB0
cnVlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQg
TUlNRSB0eXBlLiIKK0ZBSUwgTm9uLW9iamVjdDogZmFsc2UgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24v
anNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2Jq
ZWN0OiBzdHJpbmcgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2
YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiBhcnJheSBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBs
aWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hl
Y2twb2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9p
bnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDg5MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLmY2OGNjNzNiNGQ2
NzRjNTRkZmFmZTUyMjEyYjY0M2M0MDMwZmQ0MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRlci13b3JrZXJnbG9i
YWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2Jh
bHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotSGFy
bmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK0ZBSUwgUHJvbWlzZSByZXNv
bHZlZCBkdXJpbmcgI3JlcG9ydC10aGUtZXJyb3IgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3Ro
cyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsiaGFuZGxlciAxIiwgImhhbmRsZXIgMiIsICJoYW5k
bGVyIDEgcHJvbWlzZSIsICJoYW5kbGVyIDIgcHJvbWlzZSJdIGxlbmd0aCA0LCBnb3QgW10gbGVu
Z3RoIDAKK1BBU1MgUHJvbWlzZSByZXNvbHZlZCBkdXJpbmcgZXZlbnQgaGFuZGxlcnMgb3RoZXIg
dGhhbiBlcnJvcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlw
dHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVj
dGVkLnR4dAppbmRleCA1MWQ2MTAwZTYxMjJhOTdjMzY0YjNjZWIxZDdmZDA3ZTBlMTU2MTE3Li5h
ODA1MGMwNzhjZjhiODhkNTY4YWZmZTBkNTVjYzMxOTBjMzY1NDdhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEv
YmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNl
LXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAK
LUZBSUwgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBzYW1lLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJy
b3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9pbXBvcnQuanM/cGlwZT1oZWFkZXIo
QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPXJlbGF0aXZlLWNyb3NzLW9yaWdp
biBpbXBvcnRTY3JpcHRzKCknLiIKLUZBSUwgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSBzYW1lLW9y
aWdpbiBpbXBvcnRTY3JpcHRzKCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnaHR0
cDovLzEyNy4wLjAuMTo4ODAwL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvZ2FtbWEvaW1wb3J0LmpzP3BpcGU9aGVhZGVy
KEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJlbD1hYnNvbHV0ZS1jcm9zcy1vcmln
aW4gaW1wb3J0U2NyaXB0cygpJy4iCi1QQVNTIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gY3Jvc3Mt
b3JpZ2luIGltcG9ydFNjcmlwdHMoKQotRkFJTCBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIGNyb3Nz
LW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAn
aHR0cDovLzEyNy4wLjAuMTo4ODAwL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3Jp
cHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvZ2FtbWEvaW1wb3J0LmpzP3BpcGU9aGVh
ZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJlbD1hYnNvbHV0ZS1jcm9zcy1v
cmlnaW4gaW1wb3J0U2NyaXB0cygpJy4iCitQQVNTIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gc2Ft
ZS1vcmlnaW4gaW1wb3J0U2NyaXB0cygpCitQQVNTIEFic29sdXRlIFVSTC1saWtlIGZyb20gc2Ft
ZS1vcmlnaW4gaW1wb3J0U2NyaXB0cygpCitGQUlMIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gY3Jv
c3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKSBhc3NlcnRfZXF1YWxzOiBSZWxhdGl2ZSBVUkwtbGlr
ZSBzcGVjaWZpZXIgcmVzb2x1dGlvbiBzaG91bGQgZmFpbCBleHBlY3RlZCAiKHVucmVhY2hlZCki
IGJ1dCBnb3QgImdhbW1hL2ltcG9ydC5qcyIKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSBj
cm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13
b3JrZXIuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVk
LnR4dAppbmRleCA4NjZlYmIyMjdhZDI2YWFjZTFhNTc4YmFlYTZhODFkYzBlNmU3N2YwLi41ZTcw
NjM0OTBlMmRmZmVjZTg1ZWE3NjVhZWJkZGU0YjE2ZWIwZmMzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFz
ZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5z
dWItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1GQUlMIFJlbGF0aXZlIFVSTC1saWtl
IGZyb20gd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1v
ZHVsZSAnLi9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu
LCopJmxhYmVsPXJlbGF0aXZlLXdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0Jy4iCi1GQUlMIEFic29s
dXRlIFVSTC1saWtlIGZyb20gd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBp
bXBvcnQgdGhlIG1vZHVsZSAnaHR0cDovLzEyNy4wLjAuMTo4ODAwL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvZ2FtbWEv
aW1wb3J0LmpzP3BpcGU9aGVhZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJl
bD1hYnNvbHV0ZS13b3JrZXIgdG9wLWxldmVsIHNjcmlwdCcuIgorUEFTUyBSZWxhdGl2ZSBVUkwt
bGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0CitQQVNTIEFic29sdXRlIFVSTC1saWtl
IGZyb20gd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdv
cmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4
OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi4yZjEyYTIzNDJmYWQyMjRl
M2ExOGE2ZmI1ZDg0ODMyNWVhNjc3NmZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUv
ZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK1BBU1Mg
VGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVsZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2
YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThmYmE4
YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLmI4NjFmNzAxZjk0OGZiMTMyNzY5MzIyYzM4MzY2
ZjJkMTM4ZjA0ZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdv
cmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAotCitGQUlMIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1
bGVzIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBb
InN0ZXAtMS0xIiwgInN0ZXAtMS0yIiwgImdsb2JhbC1lcnJvciIsICJlcnJvciIsICJtaWNyb3Rh
c2siXSBsZW5ndGggNSwgZ290IFsic3RlcC0xLTEiLCAic3RlcC0xLTIiLCAibWljcm90YXNrIl0g
bGVuZ3RoIDMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTIt
aW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZh
ZGRkMjJlNGMxZGNiM2E1Zi4uYzFkMzhiZGU1MGM1OWU1ZDU5NDE3M2Q5NmY5Y2QxOWViMTA3Yzli
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2
YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9y
dC13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCi1IYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorRkFJTCBUZXN0IGV2YWx1YXRpb24gb3JkZXIgb2Yg
bW9kdWxlcyBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJy
YXkgWyJzdGVwLTIuMi0xIiwgInN0ZXAtMi4yLTIiLCAiZ2xvYmFsLWVycm9yIiwgImVycm9yIiwg
Im1pY3JvdGFzay0yLjIiXSBsZW5ndGggNSwgZ290IFsic3RlcC0yLjItMSIsICJzdGVwLTIuMi0y
IiwgIm1pY3JvdGFzay0yLjIiXSBsZW5ndGggMwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29y
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5
MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLjJmMTJhMjM0MmZhZDIyNGUz
YTE4YTZmYjVkODQ4MzI1ZWE2Nzc2ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9l
dmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
MyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorUEFTUyBU
ZXN0IGV2YWx1YXRpb24gb3JkZXIgb2YgbW9kdWxlcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRl
eCAxMmQ5NGE5MWVmMWY4YWIwYTE4N2M3NDliMGRkZWM2OTZkMTE4OGU3Li5iNGQ2OGFmMDU2ZWVm
NjIyYTMzZDU0ZjA3NmYzODFkNGUxYmIyOWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTIs
OCArMiw4IEBACiBGQUlMIFN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50
LiIKIEZBSUwgTmVzdGVkIHN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50
LiIKIEZBSUwgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBT
eW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhh
Y3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2Vx
dWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxk
IG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMnLiIsIGV4
cGVjdGVkIGFycmF5Ci1GQUlMIE5lc3RlZCBkeW5hbWljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2Vx
dWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxk
IG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tZHluYW1pYy1pbXBvcnQtc2NyaXB0
LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBEeW5hbWljIGltcG9ydCBhbmQgdGhlbiBzdGF0
aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5
bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9y
dC1vbi1zdGF0aWMtaW1wb3J0LXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgZXZh
bChpbXBvcnQoKSkuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8g
ZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhw
b3J0LW9uLWxvYWQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQorUEFTUyBEeW5hbWljIGlt
cG9ydC4KK1BBU1MgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LgorUEFTUyBEeW5hbWljIGltcG9ydCBh
bmQgdGhlbiBzdGF0aWMgaW1wb3J0LgorUEFTUyBldmFsKGltcG9ydCgpKS4KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jh
c2V1cmwvYWxwaGEvaW1wb3J0LWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBo
YS9pbXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBkZDlhZjM4ZmYwOWZi
ZWMxZmFjMGI4ZjVlYTliYWQ2ZTMxNjM2NDlkLi41MWViMzY2MzhjMWNhN2QwNjBiNzY3NTkyNmZj
YzcwYzViZjA3NmU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9kdWxld29ya2Vy
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVu
ZXhwZWN0ZWQgaWRlbnRpZmllciAncicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUg
YXJndW1lbnQuCiAKLUZBSUwgQmFzZSBVUkwgaW4gbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzOiBp
bXBvcnQgYXNzZXJ0X3VucmVhY2hlZDogR290IGVycm9yIGV2ZW50IFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQorUEFTUyBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IGltcG9y
dAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnRTY3JpcHRzLWluLXdvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvYmFzZXVybC9hbHBoYS9pbXBvcnRTY3JpcHRzLWluLXdvcmtlci1leHBlY3RlZC50eHQKaW5k
ZXggYWI1YTdmYjg5MDIwZjI5ZmQ4OTNhNzU2ODBmZmUxN2QzZDM1MGY3Yy4uYWI1M2I4MDU5OWFl
MDE5NTc4MDg1ZWU0NGFhZWZhNGM3OTU1MjY4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0
U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlw
dHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBpbXBvcnRT
Y3JpcHRzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJnYW1tYS9zY3JpcHQuanMiIGJ1dCBnb3Qg
ImJldGEvc2NyaXB0LmpzIgorUEFTUyBpbXBvcnRTY3JpcHRzCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2Fs
cGhhL3hoci1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1v
ZHVsZXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODNmMzY3ZjJjZjNhNjZjNjRhNjI2NDI5NDY1
NmQ1ZTg4MWQxYzExYy4uMjhiMGNiNDAwMTM5MmQwODg3YTRmZWJlNjgxYzFlMTUxZDBkZjE4YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jh
c2V1cmwvYWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwz
IEBACiAKLUZBSUwgQmFzZSBVUkwgaW4gbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzOiBYSFIgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgImdhbW1hXG4iIGJ1dCBnb3QgImJldGFcbiIKK1BBU1MgQmFz
ZSBVUkwgaW4gbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzOiBYSFIKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwv
YWxwaGEveGhyLWluLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4td29ya2Vy
LWV4cGVjdGVkLnR4dAppbmRleCBkNmIwOGVlZGFlNmY2OTZjN2E0YmZhNjU1ZTEzYjVlZDQ2MDdl
YTAxLi5lYTE0NTRkOWIzZjIwZjg1ZDkwMTZjNTA2YTE1NDZhZjYxNzg0MmQwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFz
ZXVybC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHIt
aW4td29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCB4aHItd29ya2Vy
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJnYW1tYVxuIiBidXQgZ290ICJiZXRhXG4iCitQQVNT
IHhoci13b3JrZXIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmlnaW4tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0CmluZGV4
IDgzMWYwYzU4YzY5NGMyZDRmZWJkNmQ4ZDBhZjMwN2IxMDk0NDJhNmUuLmQ1NTVlZTdjZjNmYzcy
ZWZiODJkZjlkYjdkYWQzNjdmOWFiN2ZmYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3Nh
bWUtb3JpZ2luLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1l
eHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsMTEgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCks
IG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgdW5zdXBwb3J0ZWRfc2NoZW1lCiBGQUlMIGRhdGFfdXJs
IFRoZSBvcGVyYXRpb24gaXMgaW5zZWN1cmUuCi1USU1FT1VUIGFib3V0X2JsYW5rIFRlc3QgdGlt
ZWQgb3V0Ci1USU1FT1VUIGV4YW1wbGVfaW52YWxpZCBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBw
b3J0XzgxIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIGh0dHBzX3BvcnRfODAgVGVzdCB0aW1lZCBv
dXQKLVRJTUVPVVQgaHR0cHNfcG9ydF84MDAwIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIGh0dHBf
cG9zdF84MDEyIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIGphdmFzY3JpcHRfdXJsIFRlc3QgdGlt
ZWQgb3V0CitQQVNTIGFib3V0X2JsYW5rCitQQVNTIGV4YW1wbGVfaW52YWxpZAorUEFTUyBwb3J0
XzgxCitQQVNTIGh0dHBzX3BvcnRfODAKK1BBU1MgaHR0cHNfcG9ydF84MDAwCitQQVNTIGh0dHBf
cG9zdF84MDEyCitQQVNTIGphdmFzY3JpcHRfdXJsCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtl
ckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtl
ckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dAppbmRleCBmMTc0MWY5
ZDhiZjA3MDMyNzBkMmUzNzYyZGJjYmUyNmMwYjkwMDU5Li4zYjBkZmIzNWU1MWNkMWE4NTQ1NTMw
MTljMGU0MDNkYmUyZjFkMzNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9s
b2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2Nv
cGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlM
IFdvcmtlckxvY2F0aW9uIHdpdGggcmVkaXJlY3RzOiBjbGFzc2ljIGRlZGljYXRlZCB3b3JrZXJz
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9p
bnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3Bvc3QtbG9jYXRpb24tbWVtYmVy
cy5qcz9hIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2Vz
L1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL2hlbHBlci1yZWRpcmVjdC5weT9mYWlsIgorUEFT
UyBXb3JrZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czogY2xhc3NpYyBkZWRpY2F0ZWQgd29ya2Vy
cwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVj
dC1tb2R1bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24v
cmVkaXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dAppbmRleCBkYzJlMmUyMDdkYjAwMWVlNzBlNzMz
MDdkMjdiYjMzNTcyMGZkNTU5Li5iM2JmODFlZTg2ODFiOWRjMDgwZjU4MDI3MWU4YjhmMzkwOTY1
NDk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVj
dC1tb2R1bGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0
aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
V29ya2VyTG9jYXRpb24gd2l0aCByZWRpcmVjdHM6IG1vZHVsZSBkZWRpY2F0ZWQgd29ya2VycyBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvaW50
ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9wb3N0LWxvY2F0aW9uLW1lbWJlcnMu
anM/YSIgYnV0IGdvdCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvaW50ZXJmYWNlcy9X
b3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9oZWxwZXItcmVkaXJlY3QucHk/ZmFpbCIKK1BBU1Mg
V29ya2VyTG9jYXRpb24gd2l0aCByZWRpcmVjdHM6IG1vZHVsZSBkZWRpY2F0ZWQgd29ya2Vycwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVj
dGVkLnR4dAppbmRleCAyMGFjMTdkNTYzYzRiM2E0NjFmMGNhYWZiZWFlZWJkNzEzZjk3MDgxLi5k
Y2NlZGNjZDM2OGUxZmYxN2IxZGQxMzZlNDUzZmVjNGZlMTBiYzgzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQKQEAgLTEs
MTggKzEsOSBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJp
bmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJj
ZXMvc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkg
b25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBz
dHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNv
dXJjZXMvbmVzdGVkLXN0YXRpYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0
cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVu
ZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1pbXBvcnQtYW5kLXRoZW4tZHluYW1pYy1pbXBvcnQtd29y
a2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNP
TEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6
Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0
LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1D
T05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJo
dHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9uZXN0ZWQtZHlu
YW1pYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBh
cmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5n
IGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2Vz
L2R5bmFtaWMtaW1wb3J0LWFuZC10aGVuLXN0YXRpYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0
IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3lu
dGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgw
MC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V2YWwtZHluYW1pYy1pbXBvcnQtd29ya2VyLmpz
Ii4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KIAotSGFybmVzcyBF
cnJvciAoRkFJTCksIG1lc3NhZ2UgPSBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0
ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHlu
YW1pYy1pbXBvcnQtYW5kLXRoZW4tc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2Fs
bCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotCi1GQUlMIFN0YXRpYyBpbXBvcnQuIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6
IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgXCJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vy
cy9tb2R1bGVzL3Jlc291cmNlcy9zdGF0aWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2Fs
bCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVkIHN0YXRpYyBpbXBv
cnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4
RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgXCJodHRwOi8vbG9jYWxob3N0Ojg4MDAv
d29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9uZXN0ZWQtc3RhdGljLWltcG9ydC13b3JrZXIuanNc
Ii4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIFN0YXRp
YyBpbXBvcnQgYW5kIHRoZW4gZHluYW1pYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxp
dGVyYWwgXCJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9z
dGF0aWMtaW1wb3J0LWFuZC10aGVuLWR5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQg
Y2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHluYW1pYyBpbXBvcnQu
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJy
b3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgXCJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29y
a2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWltcG9ydC13b3JrZXIuanNcIi4gaW1wb3J0
IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIE5lc3RlZCBkeW5hbWlj
IGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJT
eW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6
ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1keW5hbWljLWltcG9ydC13b3Jr
ZXIuanNcIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlM
IER5bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3Ry
aW5nIGxpdGVyYWwgXCJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291
cmNlcy9keW5hbWljLWltcG9ydC1hbmQtdGhlbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qc1wiLiBp
bXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgZXZhbChpbXBv
cnQoKSkuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3lu
dGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgXCJodHRwOi8vbG9jYWxob3N0Ojg4
MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9ldmFsLWR5bmFtaWMtaW1wb3J0LXdvcmtlci5q
c1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKK1BBU1MgU3Rh
dGljIGltcG9ydC4KK1BBU1MgTmVzdGVkIHN0YXRpYyBpbXBvcnQuCitQQVNTIFN0YXRpYyBpbXBv
cnQgYW5kIHRoZW4gZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMgaW1wb3J0LgorUEFTUyBO
ZXN0ZWQgZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0YXRp
YyBpbXBvcnQuCitQQVNTIGV2YWwoaW1wb3J0KCkpLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLWltcG9ydC1jc3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1p
bXBvcnQtY3NwLWV4cGVjdGVkLnR4dAppbmRleCAxZGE0NmI5MjZiZTA4OTZlZThmNzVhNzhkY2Fl
NGYyNjliMDUwOTJiLi4yMzljYzljZTE1MzAxZjdlZWQ4M2Q1ZWIyMjMwYTlkZTI5NGVhMmVkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1jc3AtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQKQEAgLTEsMTMg
KzEsMjIgQEAKIENPTlNPTEUgTUVTU0FHRTogVW5yZWNvZ25pemVkIENvbnRlbnQtU2VjdXJpdHkt
UG9saWN5IGRpcmVjdGl2ZSAnd29ya2VyLXNyYycuCiAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVy
bmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291
cmNlcy9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMKIENPTlNPTEUgTUVTU0FHRTogVW5yZWNvZ25p
emVkIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2ZSAnd29ya2VyLXNyYycuCiAKK0Js
b2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMv
d29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMKK0Jsb2Nr
ZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29y
a2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMKK0Jsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vy
cy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMKIENPTlNPTEUgTUVT
U0FHRTogVW5yZWNvZ25pemVkIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2ZSAnd29y
a2VyLXNyYycuCiAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEu
bG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtb24tbG9hZC1z
Y3JpcHQuanMKIENPTlNPTEUgTUVTU0FHRTogVW5yZWNvZ25pemVkIENvbnRlbnQtU2VjdXJpdHkt
UG9saWN5IGRpcmVjdGl2ZSAnd29ya2VyLXNyYycuCiAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVy
bmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291
cmNlcy9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFs
IFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNl
cy9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9l
eHBvcnQtb24tbG9hZC1zY3JpcHQuanMKIENPTlNPTEUgTUVTU0FHRTogVW5yZWNvZ25pemVkIENv
bnRlbnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2ZSAnd29ya2VyLXNyYycuCiAKK0Jsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vy
cy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMKIAogUEFTUyB3b3Jr
ZXItc3JjICdzZWxmJyBkaXJlY3RpdmUgc2hvdWxkIGRpc2FsbG93IGNyb3NzIG9yaWdpbiBzdGF0
aWMgaW1wb3J0LgogRkFJTCB3b3JrZXItc3JjICogZGlyZWN0aXZlIHNob3VsZCBhbGxvdyBjcm9z
cyBvcmlnaW4gc3RhdGljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJv
cGVydHkgMCB0byBiZSAiZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzIiBidXQgZ290ICJFUlJPUiIg
KGV4cGVjdGVkIGFycmF5IFsiZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzIl0gZ290IFsiRVJST1Ii
XSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtZmFpbHVyZS1leHBlY3RlZC50eHQK
aW5kZXggOTVjNmQxNWRmNDRlMThhMzVkZmViMGZhMzljOGQzODQ0MjBjMmMxMy4uZTk1NTc4ZTcx
YjFjNTBhNGUwNDcxYjAzNzE1NGIzODZiMzdhZWQ3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVk
LXdvcmtlci1pbXBvcnQtZmFpbHVyZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1pbXBvcnQtZmFpbHVyZS1leHBlY3RlZC50eHQKQEAgLTEsOSArMSw5IEBACi1DT05TT0xF
IE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICcuL25vbi1l
eGlzdGVudC1zY3JpcHQuanMnLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3Vt
ZW50LgorQ09OU09MRSBNRVNTQUdFOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4K
IAotRkFJTCBpbXBvcnRTY3JpcHRzKCkgb24gbW9kdWxlIHdvcmtlciBzaG91bGQgdGhyb3cgYW4g
ZXhjZXB0aW9uLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiVHlwZUVycm9yIiBidXQgZ290ICJM
T0FERUQiCitQQVNTIGltcG9ydFNjcmlwdHMoKSBvbiBtb2R1bGUgd29ya2VyIHNob3VsZCB0aHJv
dyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIG5vbi1leGlzdGVu
dCBzY3JpcHQgc2hvdWxkIGRpc3BhdGNoIGFuIEVycm9yRXZlbnQuCiBQQVNTIFN0YXRpYyBpbXBv
cnQgZm9yIG5vbi1leGlzdGVudCBzY3JpcHQgc2hvdWxkIGRpc3BhdGNoIGFuIEVycm9yRXZlbnQu
Ci1GQUlMIER5bmFtaWMgaW1wb3J0IGZvciBub24tZXhpc3RlbnQgc2NyaXB0IHNob3VsZCB0aHJv
dyBhbiBleGNlcHRpb24uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJUeXBlRXJyb3IiIGJ1dCBn
b3QgIkVycm9yIgorUEFTUyBEeW5hbWljIGltcG9ydCBmb3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBz
aG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLgogUEFTUyBXb3JrZXIgY29uc3RydWN0aW9uIGZvciBh
biBpbnZhbGlkIFVSTCBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLgogUEFTUyBXb3JrZXIgY29u
c3RydWN0aW9uIGZvciBhIGZpbGUgVVJMIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVs
ZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQKaW5kZXggZDU4MDYy
MDQxYzNlNjk1MTViODE1ZTAyZDdjMzg2ODRkNzdjNzZiNy4uNzcyOTFiYWExYTQxODRiZWJlN2Fk
N2I1ZDlmMTE5YzcxYTc4ZGU0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBv
cnQtbWV0YS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0
YS1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw1IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVy
cm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5IHZhbGlkIGluc2lkZSBtb2R1bGVzLgogCi1IYXJuZXNz
IEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFN5bnRheEVycm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5
IHZhbGlkIGluc2lkZSBtb2R1bGVzLgotCi1GQUlMIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRo
ZSB0b3AtbGV2ZWwgbW9kdWxlIHNjcmlwdC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogaW1wb3J0Lm1ldGEgaXMgb25seSB2YWxpZCBp
bnNpZGUgbW9kdWxlcy4iCi1GQUlMIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRl
ZCBtb2R1bGUgc2NyaXB0LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQgd2l0
aCBhIGZyYWdtZW50LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
VGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0LgorUEFT
UyBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdC4KK1BB
U1MgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQgd2l0
aCBhIGZyYWdtZW50LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1t
ZXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLmh0bWwKaW5kZXggY2Zm
OGU5MTQ4OGU4MjM5YWJlMjEzNjE5ZDEyZDVhNjAzMDcyZmJlYS4uZWRlMjY5MmUxYzYzNDFiZWZm
YzkwMTBjNDFiOGY0Y2ZlNDM4MzI5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1p
bXBvcnQtbWV0YS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRt
bApAQCAtNTMsNyArNTMsNyBAQAogICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJy4vJyArIHNj
cmlwdF91cmwgKyAnIzEnKTsKICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
d29ya2VyLm9ubWVzc2FnZSA9IHJlc29sdmUpOwogICAgICAgfSkKLSAgICAgIC50aGVuKG1zZ19l
dmVudCA9PiBhc3NlcnRfdHJ1ZShtc2dfZXZlbnQuZGF0YS5lbmRzV2l0aChzY3JpcHRfdXJsKSkp
OworICAgICAgLnRoZW4obXNnX2V2ZW50ID0+IGFzc2VydF90cnVlKG1zZ19ldmVudC5kYXRhLmVu
ZHNXaXRoKHNjcmlwdF91cmwgKyAnIzEnKSkpOwogfSwgJ1Rlc3QgaW1wb3J0Lm1ldGEudXJsIG9u
IHRoZSBpbXBvcnRlZCBtb2R1bGUgc2NyaXB0IHdpdGggYSBmcmFnbWVudC4nKTsKIAogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50
eHQKaW5kZXggNmRjNDJjMWNmZDMzNDhhZmRkMWRmZDNiMTBhNTA0NzA1NTMwMTk2YS4uZmUxYjlk
OTNjMDgwMTFiNTBlOTQxZjRlMTIzNjA2N2FiYmQzZjIzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNh
dGVkLXdvcmtlci1pbXBvcnQtcmVmZXJyZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRl
ZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4cGVjdGVkLnR4dApAQCAtMSwxOSArMSwyMyBAQAot
Ci1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKK0Jsb2NrZWQgYWNjZXNz
IHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1
bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxl
cy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVz
L3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0byBl
eHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9y
ZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKIAogUEFTUyBTYW1lLW9yaWdpbiB0
b3AtbGV2ZWwgbW9kdWxlIHNjcmlwdCBsb2FkaW5nIHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJl
ciBwb2xpY3kKIFBBU1MgU2FtZS1vcmlnaW4gdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQgbG9hZGlu
ZyB3aXRoICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeQogUEFTUyBTYW1lLW9yaWdpbiB0b3AtbGV2
ZWwgbW9kdWxlIHNjcmlwdCBsb2FkaW5nIHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xp
Y3kKLUZBSUwgU2FtZS1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVm
ZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCi1GQUlMIFNhbWUtb3JpZ2luIHN0YXRp
YyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJv
ciIKLUZBSUwgU2FtZS1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVm
ZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCitQQVNTIFNhbWUtb3JpZ2luIHN0YXRp
YyBpbXBvcnQgd2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeS4KK1BBU1MgU2FtZS1v
cmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4KK1BBU1Mg
U2FtZS1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9s
aWN5LgogRkFJTCBDcm9zcy1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIg
cmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCiBGQUlMIENyb3NzLW9yaWdpbiBz
dGF0aWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IiCiBGQUlMIENyb3NzLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2lu
IiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLVRJTUVPVVQgU2FtZS1vcmln
aW4gZHluYW1pYyBpbXBvcnQgd2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeS4gVGVz
dCB0aW1lZCBvdXQKLU5PVFJVTiBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJvcmln
aW4iIHJlZmVycmVyIHBvbGljeS4KLU5PVFJVTiBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3
aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgotTk9UUlVOIENyb3NzLW9yaWdpbiBk
eW5hbWljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LgotTk9UUlVO
IENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVyIHBvbGlj
eS4KLU5PVFJVTiBDcm9zcy1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4i
IHJlZmVycmVyIHBvbGljeS4KK0ZBSUwgU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAi
bm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIiIg
YnV0IGdvdCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMv
ZHluYW1pYy1pbXBvcnQtc2FtZS1vcmlnaW4tcmVmZXJyZXItY2hlY2tlci13b3JrZXIuanMiCitG
QUlMIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9s
aWN5LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwLyIgYnV0
IGdvdCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHlu
YW1pYy1pbXBvcnQtc2FtZS1vcmlnaW4tcmVmZXJyZXItY2hlY2tlci13b3JrZXIuanMiCitQQVNT
IFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBw
b2xpY3kuCitGQUlMIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJuby1yZWZlcnJl
ciIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCitGQUlMIENyb3NzLW9yaWdp
biBkeW5hbWljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBU
eXBlIGVycm9yIgorRkFJTCBDcm9zcy1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAic2FtZS1v
cmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9k
dWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNh
dGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dAppbmRleCBhMjNhNTU3NWRiNDI3NDI3
Zjg1YmQ2YjYzNTRkZTg4MzgzMWZlMmI0Li5kY2NlZGNjZDM2OGUxZmYxN2IxZGQxMzZlNDUzZmVj
NGZlMTBiYzgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50
eHQKQEAgLTEsMTQgKzEsOSBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
Ci1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1w
b3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTog
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4
YWN0bHkgb25lIGFyZ3VtZW50LgogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFN5
bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFj
dGx5IG9uZSBhcmd1bWVudC4KLQotRkFJTCBTdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRv
a2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlM
IE5lc3RlZCBzdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNh
bGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIFN0YXRpYyBpbXBvcnQgYW5k
IHRoZW4gZHluYW1pYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2Fs
bCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHluYW1pYyBpbXBvcnQuIGFz
c2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6
IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWxvYWQtc2Ny
aXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuIGFz
c2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6
IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWR5bmFtaWMt
aW1wb3J0LXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgRHluYW1pYyBpbXBvcnQg
YW5kIHRoZW4gc3RhdGljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZh
aWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1v
ZHVsZSAnLi9leHBvcnQtb24tc3RhdGljLWltcG9ydC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFy
cmF5Ci1GQUlMIGV2YWwoaW1wb3J0KCkpLiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAi
RmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUg
bW9kdWxlICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKK1BB
U1MgU3RhdGljIGltcG9ydC4KK1BBU1MgTmVzdGVkIHN0YXRpYyBpbXBvcnQuCitQQVNTIFN0YXRp
YyBpbXBvcnQgYW5kIHRoZW4gZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMgaW1wb3J0Lgor
UEFTUyBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVu
IHN0YXRpYyBpbXBvcnQuCitQQVNTIGV2YWwoaW1wb3J0KCkpLgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQKaW5kZXggZGEwZTRlYjY3NThkMTRhMzdh
Mzk4ZDBiNmZjNzFhZDM4NzZiZDI2Yi4uMWZjMGM2NmZkZjcyNGMyYWEzYjkxMDY5ODBiZmJlN2U5
ODhmOTc3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVk
LnR4dApAQCAtMiwxMSArMiw2IEBACiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRo
IHRoZSBkZWZhdWx0IHdvcmtlciB0eXBlLgogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24g
d2l0aCB0aGUgImNsYXNzaWMiIHdvcmtlciB0eXBlLgogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1
Y3Rpb24gd2l0aCB0aGUgIm1vZHVsZSIgd29ya2VyIHR5cGUuCi1GQUlMIFRlc3Qgd29ya2VyIGNv
bnN0cnVjdGlvbiB3aXRoIGFuIGVtcHR5IHdvcmtlciB0eXBlLiBhc3NlcnRfdGhyb3dzX2pzOiBX
b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gZW1wdHkgdHlwZSBzaG91bGQgdGhyb3cgYW4gZXhj
ZXB0aW9uIGZ1bmN0aW9uICIoKSA9PiB7Ci0gICAgICAgIG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9w
b3N0LW1lc3NhZ2Utb24tbG9hZC13b3JrZXIuanMnLCB7IHR5cGU6ICcnIH0pOwotICAgICAgfSIg
ZGlkIG5vdCB0aHJvdwotRkFJTCBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1bmtu
b3duIHdvcmtlciB0eXBlLiBhc3NlcnRfdGhyb3dzX2pzOiBXb3JrZXIgY29uc3RydWN0aW9uIHdp
dGggYW4gdW5rbm93biB0eXBlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gZnVuY3Rpb24gIigp
ID0+IHsKLSAgICAgICAgbmV3IFdvcmtlcigncmVzb3VyY2VzL3Bvc3QtbWVzc2FnZS1vbi1sb2Fk
LXdvcmtlci5qcycsCi0gICAgICAgICAgICAgICAgICAgeyB0eXBlOiAndW5rbm93bicgfSk7Ci0g
ICAgICB9IiBkaWQgbm90IHRocm93CitQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRo
IGFuIGVtcHR5IHdvcmtlciB0eXBlLgorUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0
aCBhbiB1bmtub3duIHdvcmtlciB0eXBlLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtl
ci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dAppbmRleCBlOGViNTQwYmQzMzkyNDAw
YThkYmZkOTM4NjQ4YTY0OTIzOWMwZDllLi5kMWE1MGY3ZWEzY2Q2ZGMyOThlZjc1NDE0Nzc2MmM2
OWM1N2Q3M2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLXBhcnNlLWVycm9yLWZh
aWx1cmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3It
ZmFpbHVyZS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwxNCBAQAotQ09OU09MRSBNRVNTQUdFOiBT
eW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhh
Y3RseSBvbmUgYXJndW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIHRva2VuICc7JworQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0
b2tlbiAnOycKIAotSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBFcnJvcjogYXNzZXJ0
X2ltcGxlbWVudHM6IFN0YXRpYyBpbXBvcnQgbXVzdCBiZSBzdXBwb3J0ZWQgb24gbW9kdWxlIGRl
ZGljYXRlZCB3b3JrZXIgdG8gcnVuIHRoaXMgdGVzdC4gdW5kZWZpbmVkCi0KLU5PVFJVTiBNb2R1
bGUgd29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNob3Vs
ZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4KLU5PVFJVTiBTdGF0aWMgaW1wb3J0IG9u
IG1vZHVsZSB3b3JrZXIgZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJvciBzaG91bGQgZGlzcGF0
Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuCitGQUlMIE1vZHVsZSB3b3JrZXIgY29uc3RydWN0aW9u
IGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJyb3Igc2hvdWxkIGRpc3BhdGNoIGFuIGV2ZW50IG5h
bWVkIGVycm9yLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmdW5jdGlvbiAiZnVuY3Rpb24gRXZl
bnQoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIgYnV0IGdvdCBmdW5jdGlvbiAiZnVuY3Rpb24g
RXJyb3JFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IgorRkFJTCBTdGF0aWMgaW1wb3J0
IG9uIG1vZHVsZSB3b3JrZXIgZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJvciBzaG91bGQgZGlz
cGF0Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZ1bmN0
aW9uICJmdW5jdGlvbiBFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiBidXQgZ290IGZ1
bmN0aW9uICJmdW5jdGlvbiBFcnJvckV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4
dAppbmRleCA2Mzk4NDcxMjE0NTlhN2FiMzdiOWYwOWE2OGJhNjRlYThhOWVkNTdjLi5lOTQ2OTQ3
YjE0YWVmM2U1Mjk5YTBhYmEzYWU0YjFjZjlmY2Q5NTcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsOCBAQAog
Q09OU09MRSBNRVNTQUdFOiBVbmhhbmRsZWQgUHJvbWlzZSBSZWplY3Rpb246IFJlZmVyZW5jZUVy
cm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKIAotRkFJTCBUZXN0IHRoZSBu
YW1lIHByb3BlcnR5IG9mIHNoYXJlZCBhbmQgZGVkaWNhdGVkIHdvcmtlcnMgdmlhIHRoZSBuYW1l
IGNvbnN0cnVjdG9yIG9wdGlvbiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKLVBB
U1MgRGVjbGFyaW5nIG5hbWUgYXMgYW4gYWNjaWRlbnRhbCBnbG9iYWwgbXVzdCBub3QgY2F1c2Ug
YSBoYXJuZXNzIGVycm9yIGZvciBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZQorSGFybmVzcyBF
cnJvciAoRkFJTCksIG1lc3NhZ2UgPSBVbmhhbmRsZWQgcmVqZWN0aW9uOiBDYW4ndCBmaW5kIHZh
cmlhYmxlOiBTaGFyZWRXb3JrZXIKKwogUEFTUyBuYW1lIHByb3BlcnR5IHZhbHVlIGZvciBEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZQogUEFTUyBuYW1lIHByb3BlcnR5IGlzIHJlcGxhY2VhYmxl
IGZvciBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZQorUEFTUyBEZWNsYXJpbmcgbmFtZSBhcyBh
biBhY2NpZGVudGFsIGdsb2JhbCBtdXN0IG5vdCBjYXVzZSBhIGhhcm5lc3MgZXJyb3IgZm9yIERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jcmVkZW50
aWFscy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3JlZGVudGlhbHMuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IGYwNjkxYWEwOWNjNDljZGY3ZjJhOTQzNzRjNmU2MjIyMGY5M2I4ZTIu
LmE1NzBkOGQyOTJmYTg1NjIxMmIwNTQ3ODgyMGYxMzBmODFkOWJiZjcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8t
d29ya2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNy
ZWRlbnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMSArMSwxMSBAQAogQ09OU09MRSBN
RVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCiAKLUZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmln
aW4gc2NyaXB0IHdpdGggdGhlIGRlZmF1bHQgV29ya2xldE9wdGlvbnMgc2hvdWxkIHNlbmQgdGhl
IGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiBSZXNw
b25zZSBpcyBub3QgMnh4IgorRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0
aCB0aGUgZGVmYXVsdCBXb3JrbGV0T3B0aW9ucyBzaG91bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJv
cnRFcnJvcjogSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIgogUEFTUyBJbXBvcnRp
bmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIHRoZSBkZWZhdWx0IFdvcmtsZXRPcHRpb25z
IHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVudGlhbHMKLUZBSUwgSW1wb3J0aW5nIGEgc2FtZS1v
cmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9b21pdCBzaG91bGQgbm90IHNlbmQgdGhlIGNy
ZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiBSZXNwb25z
ZSBpcyBub3QgMnh4IgorRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0aCBj
cmVkZW50aWFscz1vbWl0IHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjog
SW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIgogUEFTUyBJbXBvcnRpbmcgYSByZW1v
dGUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPW9taXQgc2hvdWxkIG5vdCBzZW5kIHRo
ZSBjcmVkZW50aWFscwotRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0aCBj
cmVkZW50aWFscz1zYW1lLW9yaWdpbiBzaG91bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJv
cjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFJlc3BvbnNlIGlzIG5vdCAyeHgiCitG
QUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPXNhbWUt
b3JpZ2luIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBJbXBvcnRpbmcgYSBt
b2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IHdpdGggY3JlZGVudGlhbHM9c2FtZS1vcmlnaW4gc2hvdWxkIG5vdCBzZW5kIHRoZSBjcmVk
ZW50aWFscwotRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50
aWFscz1pbmNsdWRlIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBGYWlsZWQg
dG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogUmVzcG9uc2UgaXMgbm90IDJ4eCIKLUZBSUwgSW1wb3J0
aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1pbmNsdWRlIHNob3Vs
ZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBl
cnJvcjogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4g
c2NyaXB0IHdpdGggY3JlZGVudGlhbHM9aW5jbHVkZSBzaG91bGQgc2VuZCB0aGUgY3JlZGVudGlh
bHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
QWJvcnRFcnJvcjogSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIgorRkFJTCBJbXBv
cnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPWluY2x1ZGUgc2hv
dWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IENyb3NzLW9yaWdpbiBzY3JpcHQgbG9h
ZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
bGV0cy9hdWRpby13b3JrbGV0LWNzcC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3Nw
Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBiZjMzNWNmMzA1NWUwNjViMzg5ODliNDFhYTFlMjM2
ZmViNGFjMjlkLi4yNzViMzQzN2ZhZDk3NTNhNmVjZTI0MjAwZWFiZjI1N2ZmZDYyNzJhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmts
ZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQt
Y3NwLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0MCArMSw1MiBAQAorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNv
dXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcworQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0
cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcworQmxv
Y2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93
b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5q
cworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6
OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhl
YWRlci5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2Nh
bGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1j
b3JzLWhlYWRlci5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3
MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQt
d2l0aC1jb3JzLWhlYWRlci5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVu
dC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAogQ09OU09MRSBNRVNT
QUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3Jr
ZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5s
b2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0
aC1jb3JzLWhlYWRlci5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1T
ZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAogQ09OU09MRSBNRVNTQUdF
OiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXIt
c3JjJy4KIAogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Q
b2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1w
dHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcwogQ09OU09MRSBNRVNTQUdFOiBb
YmxvY2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNv
dXJjZXMvYWRkbW9kdWxlLXdpbmRvdy5odG1sIHdhcyBub3QgYWxsb3dlZCB0byBkaXNwbGF5IGlu
c2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2xldHMvcmVzb3Vy
Y2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMuCiAKIENPTlNPTEUg
TUVTU0FHRTogW2Jsb2NrZWRdIFRoZSBwYWdlIGF0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvd29y
a2xldHMvcmVzb3VyY2VzL2FkZG1vZHVsZS13aW5kb3cuaHRtbCB3YXMgbm90IGFsbG93ZWQgdG8g
ZGlzcGxheSBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmts
ZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzLgog
CitDT05TT0xFIE1FU1NBR0U6IFtibG9ja2VkXSBUaGUgcGFnZSBhdCBodHRwczovL2xvY2FsaG9z
dDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9hZGRtb2R1bGUtd2luZG93Lmh0bWwgd2FzIG5vdCBh
bGxvd2VkIHRvIGRpc3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly9sb2NhbGhvc3Q6
OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhl
YWRlci5qcy4KKworQ09OU09MRSBNRVNTQUdFOiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvYWRkbW9kdWxlLXdpbmRvdy5odG1s
IHdhcyBub3QgYWxsb3dlZCB0byBkaXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8v
bG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdp
dGgtY29ycy1oZWFkZXIuanMuCisKIAogRkFJTCBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzaG91
bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgotRkFJTCBBIHNh
bWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxk
IGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNPTFZFRCIKK1BBU1MgQSBzYW1l
LW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBi
ZSBibG9ja2VkIGJ5IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBkaXJlY3RpdmUuCiBGQUlMIEEgcmVt
b3RlLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3Vs
ZCBiZSBibG9ja2VkIGJ5IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBkaXJlY3RpdmUuIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCiBGQUlMIEEgcmVt
b3RlLW9yaWdpbi1yZWRpcmVjdGVkIHdvcmtsZXQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNj
cmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVD
VEVEIiBidXQgZ290ICJSRVNPTFZFRCIKLUZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9y
dGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQg
YnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNPTFZFRCIKK1BBU1MgQSBzYW1lLW9yaWdpbiB3b3Jr
bGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIGJl
IGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4KIFBBU1MgQSByZW1v
dGUtb3JpZ2luIHdvcmtsZXQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlw
dC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuCi1QQVNTIEEg
c2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91
bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lm
eWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGlt
cG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNh
dXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dz
IGl0LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIlJFSkVDVEVE
IgogUEFTUyBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2lu
IHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJl
Y3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KIFBBU1MgQSByZW1vdGUtb3Jp
Z2luLXJlZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUg
c2NyaXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KLVBB
U1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJl
Y3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMg
ZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuCitGQUlMIEEgc2FtZS1v
cmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0
IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBz
cGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
UkVTT0xWRUQiIGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBIHJlbW90ZS1vcmlnaW4gd29ya2xl
dCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2
ZSBhbGxvd3MgaXQuCi1QQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1v
dGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0
LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuCitGQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBp
bXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVj
YXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9y
aWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3Qg
YmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4K
IFBBU1MgQSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgbm90IGJlIGJs
b2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuCi1QQVNT
IEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0
ZWQgc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICog
ZGlyZWN0aXZlIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2Vk
IGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0LiBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBIHJlbW90
ZS1vcmlnaW4gd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMg
ZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUu
Ci1QQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNj
cmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJl
Y2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuCitGQUlMIEEgc2Ft
ZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQg
bm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xl
dHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3Jr
bGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tl
ZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBz
Y3JpcHQtc3JjIGRpcmVjdGl2ZS4KIFBBU1MgQSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgd29y
a2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJl
Y2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuCi1QQVNTIEEgc2Ft
ZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2Ny
aXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVj
YXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KK0ZBSUwgQSBzYW1l
LW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3Jp
cHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNh
dXNlIHdvcmtsZXRzIG9iZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBbiBpbnNlY3Vy
ZS1vcmlnaW4gd29ya2xldCBzaG91bGQgYmUgYmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRl
bnRzLgogUEFTUyBBbiBpbnNlY3VyZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBi
ZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuCi1GQUlMIEEgc2FtZS1vcmlnaW4g
d29ya2xldCBpbXBvcnRpbmcgYW4gaW5zZWN1cmUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUgYmxv
Y2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
UkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgotRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQg
aW1wb3J0aW5nIGFuIGluc2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUg
YmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgorUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmts
ZXQgaW1wb3J0aW5nIGFuIGluc2VjdXJlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQg
YmVjYXVzZSBvZiBtaXhlZCBjb250ZW50cy4KK1BBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGlt
cG9ydGluZyBhbiBpbnNlY3VyZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIGJlIGJs
b2NrZWQgYmVjYXVzZSBvZiBtaXhlZCBjb250ZW50cy4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0
LWltcG9ydC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVj
dGVkLnR4dAppbmRleCBmZTg5NjVhZWY2Y2FkYTIyMTllZjhlMzA4ODhiYTkxZTI0MDE3YWMwLi42
NzY0N2Q0Njg3YjlkM2NmYzg2ZTBiMmM4ZjU2OGUyMGY1YmVjMzk0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdv
cmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtaW1wb3J0Lmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMTYsNyArMTYsNyBAQCBQQVNTIEltcG9ydGluZyBhIGNyb3Nz
IG9yaWdpbiByZXNvdXJjZSB3aXRoIHRoZSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4gaGVh
ZAogUEFTUyBJbXBvcnRpbmcgYSBjcm9zcyBvcmlnaW4gcmVzb3VyY2Ugd2l0aG91dCB0aGUgQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhlYWRlciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBw
cm9taXNlCiBQQVNTIEltcG9ydGluZyBhIGNyb3NzLW9yaWdpbi1yZWRpcmVjdGVkIHJlc291cmNl
IHdpdGggdGhlIEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiBoZWFkZXIgc2hvdWxkIHJlc29s
dmUgdGhlIGdpdmVuIHByb21pc2UKIFBBU1MgSW1wb3J0aW5nIGEgY3Jvc3Mtb3JpZ2luLXJlZGly
ZWN0ZWQgcmVzb3VyY2Ugd2l0aG91dCB0aGUgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhl
YWRlciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9taXNlCi1GQUlMIEltcG9ydGluZyBhIHNj
cmlwdCB0aGF0IGhhcyBhIHN5bnRheCBlcnJvciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9t
aXNlLiBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJl
YWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBJbXBvcnRpbmcgYSBuZXN0ZWQgc2NyaXB0IHRo
YXQgaGFzIGEgc3ludGF4IGVycm9yIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuIGFz
c2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEltcG9ydGluZyBhIHNjcmlwdCB0aGF0IGltcG9ydHMgYW4g
aW52YWxpZCBpZGVudGlmaWVyIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuIGFzc2Vy
dF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJl
YWNoYWJsZSBjb2RlCitQQVNTIEltcG9ydGluZyBhIHNjcmlwdCB0aGF0IGhhcyBhIHN5bnRheCBl
cnJvciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9taXNlLgorUEFTUyBJbXBvcnRpbmcgYSBu
ZXN0ZWQgc2NyaXB0IHRoYXQgaGFzIGEgc3ludGF4IGVycm9yIHNob3VsZCByZWplY3QgdGhlIGdp
dmVuIHByb21pc2UuCitQQVNTIEltcG9ydGluZyBhIHNjcmlwdCB0aGF0IGltcG9ydHMgYW4gaW52
YWxpZCBpZGVudGlmaWVyIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xl
dHMvYXVkaW8td29ya2xldC1yZWZlcnJlci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQt
cmVmZXJyZXIuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDI0ZDQ5OWMxNDFjZWU2ZGM5YjJlYmUy
NGJmYjRmZjRjMDNhMGE5NzMuLjlmNmQxMTMwNTlkOWZhZDUwYzYzMDA3YjdmY2QyY2JkNjcyNzc2
NTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2xldHMvYXVkaW8td29ya2xldC1yZWZlcnJlci5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9h
dWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDggQEAK
K0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0
NDMvd29ya2xldHMvcmVzb3VyY2VzL3JlZmVycmVyLWNoZWNrZXIucHk/cmVmZXJyZXJfcG9saWN5
PW5vLXJlZmVycmVyJmV4cGVjdGVkX3JlZmVycmVyPQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvcmVm
ZXJyZXItY2hlY2tlci5weT9yZWZlcnJlcl9wb2xpY3k9b3JpZ2luJmV4cGVjdGVkX3JlZmVycmVy
PWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvCitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczov
L2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbi4KK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxo
b3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL3JlZmVycmVyLWNoZWNrZXIucHk/cmVmZXJyZXJf
cG9saWN5PXNhbWUtb3JpZ2luJmV4cGVjdGVkX3JlZmVycmVyPQorQ09OU09MRSBNRVNTQUdFOiBP
cmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4uCiAKIFBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0
IGZyb20gYSBwYWdlIHRoYXQgaGFzICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5IHNob3Vs
ZCBub3Qgc2VuZCByZWZlcnJlci4KIFBBU1MgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3Jp
cHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hv
dWxkIG5vdCBzZW5kIHJlZmVycmVyLgpAQCAtNiwxNSArMTEsMTUgQEAgUEFTUyBJbXBvcnRpbmcg
YSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAib3JpZ2luIiByZWZl
cnJlciBwb2wKIFBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdl
IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVy
cmVyLgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0
aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVm
ZXJyZXIuCiBQQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1v
cmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xp
Y3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3Jp
Z2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm5v
LXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgorRkFJ
TCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29y
a2xldCBzY3JpcHQgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxk
IG5vdCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1
dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJl
c291cmNlIFNoYXJpbmcgcG9saWN5LiIKIFBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2Ny
aXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJuby1yZWZl
cnJlciIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4KIFBBU1MgSW1w
b3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xl
dCBzY3JpcHQgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5v
dCBzZW5kIHJlZmVycmVyLgogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJv
bSBhIHNhbWUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVy
IHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4KLVBBU1MgSW1wb3J0aW5nIGEgcmVtb3RlLW9y
aWdpbiBzY3JpcHQgZnJvbSBhIHNhbWUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJv
cmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4KLVBBU1MgSW1wb3J0
aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2Ny
aXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJl
ci4KLVBBU1MgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1v
cmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNo
b3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQg
ZnJvbSBhIHNhbWUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSBy
ZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhh
dCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVy
cmVyLgotUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1v
cmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xp
Y3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3Jp
Z2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAi
c2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4KK0ZBSUwg
SW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHNhbWUtb3JpZ2luIHdvcmts
ZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCBy
ZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJDcm9z
cy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFy
aW5nIHBvbGljeS4iCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEg
cmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBw
b2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNP
TFZFRCIgYnV0IGdvdCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIgorRkFJTCBJ
bXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3Jr
bGV0IHNjcmlwdCB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQg
cmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiQ3Jv
c3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hh
cmluZyBwb2xpY3kuIgorRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBh
IHNhbWUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJy
ZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
UkVTT0xWRUQiIGJ1dCBnb3QgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiIKK0ZB
SUwgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHNhbWUtb3JpZ2luIHdv
cmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3Vs
ZCBub3Qgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBi
dXQgZ290ICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBS
ZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNj
cmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1v
cmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNj
cmlwdCBmYWlsZWQuIgorRkFJTCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9t
IGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJl
ZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIlJFU09MVkVEIiBidXQgZ290ICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5
IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJl
ZGlyZWN0ZWQtd29ya2VyLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1yZWRpcmVjdGVkLXdvcmtlci1v
cmlnaW4tZXhwZWN0ZWQudHh0CmluZGV4IDFlMmQzOTkyZjZkNWRmMzIyMDdhNmIwZjYxOWE2ZDcx
MTgxMjQwMGQuLjdhN2E5MTdlYWE5OGU5MmVlMDNlYzI4YTExZTc4MDg0ZDIzNGI4ODYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL29w
ZW4tdXJsLXJlZGlyZWN0ZWQtd29ya2VyLW9yaWdpbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtcmVkaXJl
Y3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIEJsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwOi8vd3d3Mi5sb2NhbGhvc3Q6ODgwMC94aHIvcmVz
b3VyY2VzL2luc3BlY3QtaGVhZGVycy5weT9maWx0ZXJfbmFtZT1vcmlnaW4mY29ycwogCi1GQUlM
IFJlZmVyZXIgaGVhZGVyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSZWZlcmVyOiBodHRwOi8v
bG9jYWxob3N0Ojg4MDAveGhyL3Jlc291cmNlcy93b3JrZXJ4aHItb3JpZ2luLXJlZmVycmVyLmpz
XG4iIGJ1dCBnb3QgIlJlZmVyZXI6IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC94aHIvcmVzb3VyY2Vz
L3JlZGlyZWN0LnB5P2xvY2F0aW9uPXdvcmtlcnhoci1vcmlnaW4tcmVmZXJyZXIuanNcbiIKK1BB
U1MgUmVmZXJlciBoZWFkZXIKIEZBSUwgT3JpZ2luIGhlYWRlciBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiT3JpZ2luOiBodHRwOi8vbG9jYWxob3N0Ojg4MDBcbiIgYnV0IGdvdCAiIgogUEFTUyBS
ZXF1ZXN0IFVSTCB0ZXN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
d29ya2xldC1hZGRNb2R1bGUtZmFpbHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZhaWx1cmUtZXhwZWN0ZWQudHh0CmluZGV4IDA4
YWYxMTQzNjA1NTFiZjVhODA3OWFmMGEzODE1YzRlMDhlYmQxNDMuLmRlZjMzYWQ4NjkxYjY5NDM2
ZTBlMTgxYzViZDAwNDgzNTQ4MzUxYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvd29ya2xldC1hZGRNb2R1bGUtZmFpbHVyZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW93b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4
dApAQCAtNCw3ICs0LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBQQVNTIGNvbnRl
eHQuYXVkaW9Xb3JrbGV0LmFkZE1vZHVsZShpbnZhbGlkVVJMKTsgcmVqZWN0ZWQgcHJvbWlzZSAg
d2l0aCBTeW50YXhFcnJvcjogTW9kdWxlIFVSTCBpcyBpbnZhbGlkLgotUEFTUyBjb250ZXh0LmF1
ZGlvV29ya2xldC5hZGRNb2R1bGUoJ2RvZXNub3RFeGlzdC5qcycpOyByZWplY3RlZCBwcm9taXNl
ICB3aXRoIEFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiBUaGUgcmVx
dWVzdGVkIFVSTCB3YXMgbm90IGZvdW5kIG9uIHRoaXMgc2VydmVyLi4KK1BBU1MgY29udGV4dC5h
dWRpb1dvcmtsZXQuYWRkTW9kdWxlKCdkb2Vzbm90RXhpc3QuanMnKTsgcmVqZWN0ZWQgcHJvbWlz
ZSAgd2l0aCBBYm9ydEVycm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4uCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dvcmtsZXQtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vd29ya2xldC1jcmFzaC1leHBlY3RlZC50eHQKaW5kZXggNjU0ZGRm
N2YxN2VmYWI1OGU0MmZhYmUzODUyNTc5NjRhZTJjNWQ0MS4uMWE0M2UzZjk3Y2IyZjA2YjlmN2Nk
NWYyYjE4MjMzODEwNTEzZWVmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd29y
a2xldC1jcmFzaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd29ya2xl
dC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTEgKzEsMiBAQAorQ09OU09MRSBNRVNTQUdFOiBUeXBl
RXJyb3I6ICd0ZXh0L2h0bWwnIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLgog
VGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420102</attachid>
            <date>2021-02-12 01:12:45 -0800</date>
            <delta_ts>2021-02-12 22:57:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210212011244.patch</filename>
            <type>text/plain</type>
            <size>238586</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MDMzNjA1Y2FjMDYxMTJjMzYzYWMwMjlmMjYxZDc2OGRjNDEzZmRjLi42ODM4YTVmMGM1NTJlMzkx
YmMyOGI2N2JjYTNmNzRjM2MwZThlZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAyMS0wMi0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcDoK
KyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9yKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlRXJyb3IpOgorICAgICAg
ICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVSYW5nZUVycm9y
KToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVmZXJlbmNlRXJyb3IpOgorICAgICAgICAoSlNDOjpj
cmVhdGVTeW50YXhFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVR5cGVFcnJvcik6CisgICAg
ICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlR2V0dGVyVHlw
ZUVycm9yKToKKyAgICAgICAgKEpTQzo6dGhyb3dTeW50YXhFcnJvcik6CisgICAgICAgICogcnVu
dGltZS9FcnJvci5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6RXJyb3JJ
bnN0YW5jZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VTdHJpbmcpOgorICAgICAgICAo
SlNDOjpFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5nKToKKyAgICAgICAgKEpTQzo6
RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGUpOgorICAg
ICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjplcnJvclR5cGUgY29uc3QpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBl
Pjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8
ZXJyb3JUeXBlPjo6Y2FsbEltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6
SlNXZWJBc3NlbWJseUxpbmtFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
cjo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9y
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04p
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisKIDIwMjEtMDIt
MTEgIE5pa2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogIlNob3cgRXh0ZW5kZWQgR3JpZGxpbmVzIiBvcHRpb24gZm9yIGdyaWQgb3Zl
cmxheSBkb2VzIG5vdCB3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjExZTgzZTAzMDYxMjc3ODNkZjI4NzM0
MDc5MGZlYjJhOTliMjg2ZS4uNTc5MjcxZGM2NjZkNDZiNjY4M2YyYTQ0YWVkZjdmNGY1OGVlOTIx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAyMS0wMi0xMiAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2Vycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
OjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlw
dEZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVx
dWVzdFNjcmlwdFdpdGhDYWNoZSBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01F
eGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXRyaWV2ZUVycm9yTWVz
c2FnZVdpdGhvdXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURPTUV4Y2VwdGlvbik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVj
dDo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyRmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxP
YmplY3Q6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xv
YmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVz
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RP
TVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVySW1w
b3J0TW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZVNj
cmlwdExvYWRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5
cGUuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6Y2xlYXJDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpzY3JpcHRGZXRjaGVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6cGFyYW1ldGVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpNb2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNjcmlwdExvYWRlcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQuaC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmllcik6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1
bGVMb2FkZXI6Om1vZHVsZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2Fk
ZXI6OnJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVM
b2FkZXI6OmltcG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2Fk
ZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpTY3JpcHRTb3VyY2VDb2RlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6V29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6fldv
cmtlck1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVHlwZS5oLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIuaDog
QWRkZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBkb20vRXhjZXB0
aW9uQ29kZS5oOgorICAgICAgICAqIGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZCk6IERlbGV0ZWQuCisgICAg
ICAgICogZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0Lmg6CisgICAgICAgICogZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVs
ZVNjcmlwdCk6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIv
VGhyZWFkYWJsZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXI6Oldvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmlkbDoKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckds
b2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJH
bG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmNyZWRlbnRp
YWxzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVMb2FkZXIpOgorICAgICAg
ICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZVN5bmNocm9u
b3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
U2NyaXB0TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6
OnJlc3BvbnNlU291cmNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExv
YWRlcjo6aXNSZWRpcmVjdGVkIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJQYXJhbWV0ZXJzOjppc29sYXRlZENvcHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpldmFsdWF0ZVNjcmlwdElm
TmVjZXNzYXJ5KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgorICAgICAgICAq
IHdvcmtlcnMvV29ya2VyVHlwZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3Jp
cHRXaXRoQ29udGV4dCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25PcHRpb25zLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
VGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmg6CisgICAgICAgICogd29ya2xldHMvV29ya2xldEdsb2Jh
bFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hB
bmRJbnZva2VTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpw
cm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpub3RpZnlGaW5pc2hlZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmRpZENvbXBsZXRl
U2NyaXB0RmV0Y2hKb2IpOiBEZWxldGVkLgorICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9i
YWxTY29wZS5oOgorCiAyMDIxLTAyLTExICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIyNzI3NTg7IGluY2x1ZGUg
bWlzc2luZyBjaGFuZ2UgdG8gUnVudGltZUVuYWJsZWRGZWF0dXJlcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcAppbmRleCA3NTlhNWIyNGEw
ZWQwODY4MGNjYWE2MzQwZDJlOTVkNDUwYjgwZmQ2Li4yOTZjODVjYzkwZTA1YjU0NTQ3ZjY2MmE3
ZTJmOGExZTEzMGE0NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BZ2dyZWdhdGVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QWdncmVnYXRlRXJyb3IuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogY29u
c3QgQ2xhc3NJbmZvIEFnZ3JlZ2F0ZUVycm9yOjpzX2luZm8gPSB7ICJBZ2dyZWdhdGVFcnJvciIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQWdn
cmVnYXRlRXJyb3IpIH07CiAKIEFnZ3JlZ2F0ZUVycm9yOjpBZ2dyZWdhdGVFcnJvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDog
QmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5cGU6OkFnZ3JlZ2F0ZUVycm9yKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKaW5kZXggZjQ3M2I4MTgxZWMyZjAy
YTBjYzc4YTI2YzBjMjBkYzk2MzFmZGM3NC4uZmNhY2YxZTMyMmViMjcyNzg3NGZmMjUyNjI0MWVk
N2JlOThjZTUzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcApAQCAt
MzUsMzcgKzM1LDM3IEBAIG5hbWVzcGFjZSBKU0MgewogSlNPYmplY3QqIGNyZWF0ZUVycm9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJ
bnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdl
LmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpLCBt
ZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJldHVybiBFcnJvcklu
c3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9i
amVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBF
cnJvclR5cGU6OkVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZUV2YWxFcnJvcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9y
SW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2Fn
ZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJy
b3JUeXBlOjpFdmFsRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUp
OworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpFdmFs
RXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXZhbEVy
cm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVJhbmdlRXJyb3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpT
b3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgp
KTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmFu
Z2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJhbmdlRXJyb3IpLCBt
ZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6UmFuZ2VFcnJvciwgdHJ1
ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVSZWZlcmVuY2VFcnJvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJj
ZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwot
ICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpSZWZlcmVu
Y2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9y
KSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlJlZmVyZW5jZUVy
cm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6
U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHko
KSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2Jh
bE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlN5
bnRheEVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsKKyAgICBy
ZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52
bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6U3ludGF4RXJyb3Ip
LCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6U3ludGF4RXJyb3Is
IHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNl
QXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUpCiB7CiAgICAgQVNTRVJUKCFtZXNz
YWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBlLCB0cnVlKTsKKyAg
ICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9y
KSwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIEVycm9yVHlwZTo6VHlwZUVycm9yLCB0cnVlKTsK
IH0KIAogSlNPYmplY3QqIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVy
KQpAQCAtNzYsNyArNzYsNyBAQCBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JJbnN0YQogSlNPYmplY3QqIGNy
ZWF0ZVVSSUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAg
QVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNy
ZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJv
clN0cnVjdHVyZShFcnJvclR5cGU6OlVSSUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVO
b3RoaW5nLCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVy
cm9yVHlwZTo6VVJJRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9y
VHlwZTo6VVJJRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlRXJyb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JUeXBlIGVycm9yVHlwZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQpAQCAtMTEzLDcgKzExMyw3IEBAIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5cGVXaXRoRXh0ZW5zaW9uIGVycm9yCiBK
U09iamVjdCogY3JlYXRlR2V0dGVyVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0
eSgpKTsKLSAgICBhdXRvKiBlcnJvciA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJv
clR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UpOworICAgIGF1dG8qIGVycm9yID0gRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmpl
Y3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yKTsKICAgICBlcnJvci0+c2V0TmF0
aXZlR2V0dGVyVHlwZUVycm9yKCk7CiAgICAgcmV0dXJuIGVycm9yOwogfQpAQCAtMjc0LDcgKzI3
NCw3IEBAIEV4Y2VwdGlvbiogdGhyb3dUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0CiAKIEV4Y2VwdGlvbiogdGhyb3dTeW50YXhF
cnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSkKIHsK
LSAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlU3lu
dGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCAiU3ludGF4IGVycm9yIl9zKSk7CisgICAgcmV0dXJuIHRo
cm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVN5bnRheEVycm9yKGdsb2Jh
bE9iamVjdCkpOwogfQogCiBFeGNlcHRpb24qIHRocm93U3ludGF4RXJyb3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKQEAgLTMxNyw2ICszMTcsMTEgQEAgSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICByZXR1
cm4gY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBudWxscHRyKTsKIH0K
IAorSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCit7CisgICAgcmV0dXJuIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgIlN5bnRh
eCBlcnJvciJfcywgbnVsbHB0cik7Cit9CisKIEpTT2JqZWN0KiBjcmVhdGVUeXBlRXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gY3JlYXRlVHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgIlR5cGUgZXJyb3IiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yLmgKaW5kZXggNmRhYTE1NDIxNTY2NjEwZTRhY2U2ZGUzMzVmMzRkM2JmN2M3NDQ0ZC4u
ZGM4MjUyODJjMzU2NDg3MTMyNTQ1NDRiYzhkODE4ODg0MDBlNDM4YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvci5oCkBAIC01NSw2ICs1NSw3IEBAIEpTX0VYUE9SVF9QUklWQVRF
IEpTT2JqZWN0KiBjcmVhdGVFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcm
KTsKIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVSYW5nZUVycm9yKEpTR2xvYmFs
T2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3Jl
YXRlUmVmZXJlbmNlRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmKTsKIEpTX0VY
UE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVTeW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCos
IGNvbnN0IFN0cmluZyYpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZVN5bnRh
eEVycm9yKEpTR2xvYmFsT2JqZWN0Kik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3Jl
YXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0Kik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVj
dCogY3JlYXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CiBKU19F
WFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoSlNH
bG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMGYyZjVhMzE4NDAyZmJiN2M3ZDg4MDJiNmQ3ODQyZWZl
NDA2Yzg0Ni4uOWJlOTMwY2YxYzNjOWE0MGU2MDg1OTgzNTU4YTFhNTliYzc4YjYyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAK
QEAgLTYwLDE0ICs2MCwxNCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXJy
b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAgICA6IElu
dGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVjdCwgbmV3
VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5lcnJvclN0cnVjdHVyZSgp
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5n
LCBmYWxzZSkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSkpOwog
fQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEVycm9yQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
SlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUq
IGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
ZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJv
clR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBib29sIEVycm9yQ29uc3RydWN0b3I6OnB1dChK
U0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKaW5kZXggMmU0
ZWMzOWYxMjA1OGIyNTA4NzIyZTBiODI1MjI0N2JlYjAzMTllNi4uMGY4NmUyMmI5MmRkZDZkMTM5
ODU4Yjg2ZTU2Y2VhZGNhZWNlMGQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTM0LDE4ICszNCwyMyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogY29uc3QgQ2xhc3NJbmZvIEVycm9ySW5zdGFuY2U6OnNfaW5mbyA9IHsgIkVycm9yIiwg
JkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShFcnJvckluc3RhbmNlKSB9OwogCi1FcnJvckluc3RhbmNlOjpFcnJvckluc3RhbmNl
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitFcnJvckluc3RhbmNlOjpFcnJvckluc3Rh
bmNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVycm9yVHlwZSBlcnJvclR5cGUpCiAg
ICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgLCBtX2Vycm9yVHlwZShlcnJvclR5cGUpCisg
ICAgLCBtX3N0YWNrT3ZlcmZsb3dFcnJvcihmYWxzZSkKKyAgICAsIG1fb3V0T2ZNZW1vcnlFcnJv
cihmYWxzZSkKKyAgICAsIG1fZXJyb3JJbmZvTWF0ZXJpYWxpemVkKGZhbHNlKQorICAgICwgbV9u
YXRpdmVHZXR0ZXJUeXBlRXJyb3IoZmFsc2UpCiB7CiB9CiAKLUVycm9ySW5zdGFuY2UqIEVycm9y
SW5zdGFuY2U6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNWYWx1ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciwgUnVu
dGltZVR5cGUgdHlwZSwgYm9vbCB1c2VDdXJyZW50RnJhbWUpCitFcnJvckluc3RhbmNlKiBFcnJv
ckluc3RhbmNlOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1
bnRpbWVUeXBlIHR5cGUsIEVycm9yVHlwZSBlcnJvclR5cGUsIGJvb2wgdXNlQ3VycmVudEZyYW1l
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBtZXNz
YWdlLmlzVW5kZWZpbmVkKCkgPyBTdHJpbmcoKSA6IG1lc3NhZ2UudG9XVEZTdHJpbmcoZ2xvYmFs
T2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBy
ZXR1cm4gY3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZVN0cmluZywg
YXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CisgICAgcmV0dXJuIGNyZWF0ZShnbG9i
YWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2VTdHJpbmcsIGFwcGVuZGVyLCB0eXBlLCBl
cnJvclR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgYXBwZW5kU291
cmNlVG9FcnJvck1lc3NhZ2UoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVycm9ySW5zdGFuY2UqIGV4
Y2VwdGlvbiwgQnl0ZWNvZGVJbmRleCBieXRlY29kZUluZGV4LCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCkBAIC0xMzEsNyArMTM2LDI1IEBAIHZvaWQgRXJyb3JJbnN0YW5jZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTCiAvLyBCYXNl
ZCBvbiBFcnJvclByb3RvdHlwZSdzIGVycm9yUHJvdG9GdW5jVG9TdHJpbmcoKSwgYnV0IGlzIG1v
ZGlmaWVkIHRvCiAvLyBoYXZlIG5vIG9ic2VydmFibGUgc2lkZSBlZmZlY3RzIHRvIHRoZSB1c2Vy
IChpLmUuIGRvZXMgbm90IGNhbGwgcHJveGllcywKIC8vIGFuZCBnZXR0ZXJzKS4KLVN0cmluZyBF
cnJvckluc3RhbmNlOjpzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQorU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VTdHJpbmcoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEludGVn
cml0eTo6YXVkaXRTdHJ1Y3R1cmVJRCh2bSwgc3RydWN0dXJlSUQoKSk7CisKKyAgICBKU1ZhbHVl
IG1lc3NhZ2VWYWx1ZTsKKyAgICBhdXRvIG1lc3NhZ2VQcm9wZXJ0TmFtZSA9IHZtLnByb3BlcnR5
TmFtZXMtPm1lc3NhZ2U7CisgICAgUHJvcGVydHlTbG90IG1lc3NhZ2VTbG90KHRoaXMsIFByb3Bl
cnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnksICZ2bSk7CisgICAgaWYgKEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUHJv
cGVydE5hbWUsIG1lc3NhZ2VTbG90KSAmJiBtZXNzYWdlU2xvdC5pc1ZhbHVlKCkpCisgICAgICAg
IG1lc3NhZ2VWYWx1ZSA9IG1lc3NhZ2VTbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgbWVzc2Fn
ZVByb3BlcnROYW1lKTsKKyAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOworCisgICAgaWYg
KCFtZXNzYWdlVmFsdWUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIG1lc3NhZ2VWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpKTsK
K30KKworU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZE5hbWVTdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU3LDI4ICsx
ODAsMjIgQEAgU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgfQogICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9u
KCk7CiAKLSAgICBTdHJpbmcgbmFtZVN0cmluZzsKICAgICBpZiAoIW5hbWVWYWx1ZSkKLSAgICAg
ICAgbmFtZVN0cmluZyA9ICJFcnJvciJfczsKLSAgICBlbHNlIHsKLSAgICAgICAgbmFtZVN0cmlu
ZyA9IG5hbWVWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7Ci0gICAgfQorICAgICAgICByZXR1cm4gIkVy
cm9yIl9zOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbmFtZVZhbHVlLnRvV1RGU3Ry
aW5nKGdsb2JhbE9iamVjdCkpOworfQogCi0gICAgSlNWYWx1ZSBtZXNzYWdlVmFsdWU7Ci0gICAg
YXV0byBtZXNzYWdlUHJvcGVydE5hbWUgPSB2bS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlOwotICAg
IFByb3BlcnR5U2xvdCBtZXNzYWdlU2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0
aG9kVHlwZTo6Vk1JbnF1aXJ5LCAmdm0pOwotICAgIGlmIChKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVByb3BlcnROYW1lLCBtZXNzYWdlU2xv
dCkgJiYgbWVzc2FnZVNsb3QuaXNWYWx1ZSgpKQotICAgICAgICBtZXNzYWdlVmFsdWUgPSBtZXNz
YWdlU2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSk7Ci0gICAg
c2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKK1N0cmluZyBFcnJvckluc3RhbmNlOjpzYW5pdGl6
ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisgICAgSW50ZWdyaXR5OjphdWRpdFN0cnVjdHVyZUlEKHZtLCBzdHJ1Y3R1cmVJRCgp
KTsKIAotICAgIFN0cmluZyBtZXNzYWdlU3RyaW5nOwotICAgIGlmICghbWVzc2FnZVZhbHVlKQot
ICAgICAgICBtZXNzYWdlU3RyaW5nID0gU3RyaW5nKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIG1l
c3NhZ2VTdHJpbmcgPSBtZXNzYWdlVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKLSAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgU3RyaW5nKCkpOwotICAgIH0KKyAgICBT
dHJpbmcgbmFtZVN0cmluZyA9IHNhbml0aXplZE5hbWVTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7CisKKyAgICBTdHJpbmcgbWVz
c2FnZVN0cmluZyA9IHNhbml0aXplZE1lc3NhZ2VTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7CiAKICAgICBpZiAoIW5hbWVTdHJp
bmcubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBtZXNzYWdlU3RyaW5nOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCmluZGV4IGRhNjZlYjc2ZTdhZGU5
MGZkNDFiYjE2MjcwNzI1YTdkMTQ3MGFkMzguLjk4NzEzNTcyMWIzMDU2NjIzMGQyNjFjODMzYWQ4
ZGVjYTU0NjE0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvcklu
c3RhbmNlLmgKQEAgLTIwLDYgKzIwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJF
cnJvclR5cGUuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVUeXBl
LmgiCiAjaW5jbHVkZSAiU3RhY2tGcmFtZS5oIgpAQCAtNTMsMTQgKzU0LDE0IEBAIGNsYXNzIEVy
cm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAgIHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEVy
cm9ySW5zdGFuY2VUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCi0gICAg
c3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNv
dXJjZUFwcGVuZGVyIGFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVO
b3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpCisgICAgc3RhdGljIEVycm9ySW5z
dGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFw
cGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVOb3RoaW5nLCBFcnJvclR5
cGUgZXJyb3JUeXBlID0gRXJyb3JUeXBlOjpFcnJvciwgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0
cnVlKQogICAgIHsKLSAgICAgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcgKE5vdE51
bGwsIGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPih2bS5oZWFwKSkgRXJyb3JJbnN0YW5jZSh2
bSwgc3RydWN0dXJlKTsKKyAgICAgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPih2bS5oZWFwKSkgRXJyb3JJbnN0YW5j
ZSh2bSwgc3RydWN0dXJlLCBlcnJvclR5cGUpOwogICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3Jl
YXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJl
bnRGcmFtZSk7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICB9CiAKLSAgICBzdGF0aWMg
RXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNWYWx1
ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5v
dGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7CisgICAgc3RhdGljIEVycm9ySW5z
dGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpTVmFsdWUgbWVzc2Fn
ZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBF
cnJvclR5cGUgPSBFcnJvclR5cGU6OkVycm9yLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUp
OwogCiAgICAgYm9vbCBoYXNTb3VyY2VBcHBlbmRlcigpIGNvbnN0IHsgcmV0dXJuICEhbV9zb3Vy
Y2VBcHBlbmRlcjsgfQogICAgIFNvdXJjZUFwcGVuZGVyIHNvdXJjZUFwcGVuZGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2VBcHBlbmRlcjsgfQpAQCAtNzAsNiArNzEsNyBAQCBjbGFzcyBFcnJv
ckluc3RhbmNlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIFJ1bnRpbWVUeXBlIHJ1
bnRpbWVUeXBlRm9yQ2F1c2UoKSBjb25zdCB7IHJldHVybiBtX3J1bnRpbWVUeXBlRm9yQ2F1c2U7
IH0KICAgICB2b2lkIGNsZWFyUnVudGltZVR5cGVGb3JDYXVzZSgpIHsgbV9ydW50aW1lVHlwZUZv
ckNhdXNlID0gVHlwZU5vdGhpbmc7IH0KIAorICAgIEVycm9yVHlwZSBlcnJvclR5cGUoKSBjb25z
dCB7IHJldHVybiBtX2Vycm9yVHlwZTsgfQogICAgIHZvaWQgc2V0U3RhY2tPdmVyZmxvd0Vycm9y
KCkgeyBtX3N0YWNrT3ZlcmZsb3dFcnJvciA9IHRydWU7IH0KICAgICBib29sIGlzU3RhY2tPdmVy
Zmxvd0Vycm9yKCkgY29uc3QgeyByZXR1cm4gbV9zdGFja092ZXJmbG93RXJyb3I7IH0KICAgICB2
b2lkIHNldE91dE9mTWVtb3J5RXJyb3IoKSB7IG1fb3V0T2ZNZW1vcnlFcnJvciA9IHRydWU7IH0K
QEAgLTc5LDYgKzgxLDggQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKICAgICBib29sIGlzTmF0aXZlR2V0dGVyVHlwZUVycm9yKCkgY29uc3QgeyByZXR1
cm4gbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3I7IH0KIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0
cmluZyBzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCopOworICAgIEpTX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyBzYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKEpTR2xvYmFsT2JqZWN0Kik7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHNhbml0aXplZE5hbWVTdHJpbmcoSlNHbG9iYWxP
YmplY3QqKTsKICAgICAKICAgICBWZWN0b3I8U3RhY2tGcmFtZT4qIHN0YWNrVHJhY2UoKSB7IHJl
dHVybiBtX3N0YWNrVHJhY2UuZ2V0KCk7IH0KIApAQCAtODgsNyArOTIsNyBAQCBjbGFzcyBFcnJv
ckluc3RhbmNlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgZmluYWxpemVV
bmNvbmRpdGlvbmFsbHkoVk0mKTsKIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEVycm9ySW5z
dGFuY2UoVk0mLCBTdHJ1Y3R1cmUqKTsKKyAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKFZNJiwg
U3RydWN0dXJlKiwgRXJyb3JUeXBlKTsKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBK
U0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwg
UnVudGltZVR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsK
IApAQCAtMTA4LDEwICsxMTIsMTEgQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKICAgICBTdHJpbmcgbV9zb3VyY2VVUkw7CiAgICAgU3RyaW5nIG1fc3Rh
Y2tTdHJpbmc7CiAgICAgUnVudGltZVR5cGUgbV9ydW50aW1lVHlwZUZvckNhdXNlIHsgVHlwZU5v
dGhpbmcgfTsKLSAgICBib29sIG1fc3RhY2tPdmVyZmxvd0Vycm9yIHsgZmFsc2UgfTsKLSAgICBi
b29sIG1fb3V0T2ZNZW1vcnlFcnJvciB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2Vycm9ySW5mb01h
dGVyaWFsaXplZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX25hdGl2ZUdldHRlclR5cGVFcnJvciB7
IGZhbHNlIH07CisgICAgRXJyb3JUeXBlIG1fZXJyb3JUeXBlIHsgRXJyb3JUeXBlOjpFcnJvciB9
OworICAgIGJvb2wgbV9zdGFja092ZXJmbG93RXJyb3IgOiAxOworICAgIGJvb2wgbV9vdXRPZk1l
bW9yeUVycm9yIDogMTsKKyAgICBib29sIG1fZXJyb3JJbmZvTWF0ZXJpYWxpemVkIDogMTsKKyAg
ICBib29sIG1fbmF0aXZlR2V0dGVyVHlwZUVycm9yIDogMTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDQwMjFmYzdlMGFkYWY3YTBhOWUwZWY2Y2ZkMjI1
ODM4YjViZjg3ODMuLmFmNzI2MjgzMWNhMWJiNzVjNmFlNTU0MTFkZTRjZDg1YTgxMzdkYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5jcHAKQEAgLTY5NCw3ICs2OTQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yQXJndW1lbnRzQ2FsbGVlQW5kQ2FsbGVyLCAo
SlNHbAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNNYWtlVHlwZUVycm9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0
dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVy
cm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVy
cm9yU3RydWN0dXJlLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBudWxscHRyLCBUeXBlTm90aGlu
ZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIGZhbHNlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihnbG9iYWxGdW5jUHJvdG9HZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDdjYzExYjVm
NWUxMjk3MjIwMTZiODY3MWYxMzdjNmJiMTcyMTM4NDAuLmI2ZTdlZGVmZDQyZWRjNjM1ZDkwYjdl
MGU4YzdiNGZjMGMyNDNkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC01OCw3ICs1OCw3IEBAIGlu
bGluZSBFbmNvZGVkSlNWYWx1ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNv
bnN0cnVjdEltcGwoSlNHbG9iYWxPCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKICAgICBBU1NFUlQoZXJyb3JTdHJ1Y3R1cmUpOwogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkp
KTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvcklu
c3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVs
bHB0ciwgVHlwZU5vdGhpbmcsIGVycm9yVHlwZSwgZmFsc2UpKSk7CiB9CiAKIHRlbXBsYXRlPEVy
cm9yVHlwZSBlcnJvclR5cGU+CkBAIC02Niw3ICs2Niw3IEBAIGlubGluZSBFbmNvZGVkSlNWYWx1
ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNhbGxJbXBsKEpTR2xvYmFsT2Jq
ZWN0CiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAg
ICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVy
ZShlcnJvclR5cGUpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6
Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5
cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxw
dHIsIFR5cGVOb3RoaW5nLCBlcnJvclR5cGUsIGZhbHNlKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjYWxsRXZhbEVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKaW5kZXggMjZmM2I2YThmOWRiNjc4Y2Q5NGQw
NWFlODhiMTFiODllNjFjMGViYy4uMGRkYjJjNmE1MGY0NmJjNjM2OTk1Y2E0NmQ3ZjE4ZTViMjY4
NjNlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRl
ckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0
dGVyRnVuY3Rpb24uY3BwCkBAIC05NCw3ICs5NCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihjYWxsVGhyb3dFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIC8vIFRoaXMg
ZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgZnJvbSBJQy4gQW5kIHdlIGRvIG5vdCB3YW50IHRvIGlu
Y2x1ZGUgdGhpcyBmcmFtZSBpbiBFcnJvcidzIHN0YWNrLgogICAgIGNvbnN0ZXhwciBib29sIHVz
ZUN1cnJlbnRGcmFtZSA9IGZhbHNlOwotICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwg
c2NvcGUsIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmpl
Y3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgUmVhZG9ubHlQcm9wZXJ0
eVdyaXRlRXJyb3IsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUpKTsKKyAg
ICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5
cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yLCBudWxscHRyLCBUeXBl
Tm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIHVzZUN1cnJlbnRGcmFtZSkpOwogICAgIHJl
dHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKaW5kZXggMzgzNzNhNzYwZDU5ZDBl
ZWRiNDk0ZGI4OGQ4NTI0ZmFiOWE1MTU0ZS4uOWViZDNkNDQ2YTlkYTlhZDE5ZDdiYTQxOTkwMDYz
ZmM1YTYzMjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgSlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvciogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6Y3JlYXRl
KEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6SlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5
cGU6OkVycm9yKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwCmluZGV4IGVhZGUwMzQxM2U0Y2UzNjBi
YTA4OWY4YzUzZDE4Y2Y4ZDZkNzAyMzUuLjliMjAwNThlY2YzNGFmOTFiNmIxOGQxNWY2NTE1Nzg1
YzIxNzJlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEpTV2ViQXNzZW1i
bHlMaW5rRXJyb3IqIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OmNyZWF0ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqCiB9CiAKIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OkpTV2ViQXNzZW1ibHlM
aW5rRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgRXJyb3JUeXBlOjpFcnJvcikKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5UnVudGltZUVycm9yLmNwcAppbmRleCBiZTFmOTI4NjAzMDQ1ZDdjZjcyOTMyNGVl
NGE3N2FlODNmY2U5Y2JlLi4xOTMzYTZlMzg4OGZiZWFjY2YwN2FjMmIzN2M3NDUwNDg0ZmE1MWYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5UnVudGltZUVycm9yLmNwcApAQCAtNDEsNyArNDEsNyBAQCBKU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yKiBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxP
YmplY3QqIGdsbwogfQogCiBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpKU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6RXJyb3Ip
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNWNk
MDAzNWEwMWZkYjc4ZGRjMzVmYzQ3YjZiODU4MGJlNDVkMzU5Ny4uYzNhMGQzOTdmNTA0ZTI1OGYx
ZDcwZjhiNDgyYjc5YTFkOWU3MjY2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxK
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIHsKICAg
ICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVy
ZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5Q29tcGlsZUVycm9y
U3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlw
ZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3Rh
bmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3Ry
dWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3NlbWJseUNv
bXBpbGVFcnJvclByb3RvdHlwZSogdGhpc1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggOTQ2ZGVmNGYxMTUyMjlhMjI1YmU5MzJhYzllNjQzNWI2YzhhYjJh
OS4uMmM1ZjZhMjkzMWYxNTIxNTg1YWFhOTM1ZTU2YjRiZDJmMTljMTZiMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlM
aW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamUKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
OwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2Vt
Ymx5TGlua0Vycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJv
ckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwg
bnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9
CiAKIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5TGlua0Vycm9y
Q29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3Nl
bWJseUxpbmtFcnJvclByb3RvdHlwZSogdGhpc1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggM2RmZDkxNTY3YjYwYTU4ZGQ5YWE2ODQyZmY2Nzkw
MjFmNWNiOTI1Mi4uYTg1NjY5YzUxOGIxZTlhYTY4Yzk1YWQwNTY2ZWJmZDZmYzNkZmE4YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTY3LDcgKzY3LDcgQEAg
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxP
YmplY3QtPndlYkFzc2VtYmx5UnVudGltZUVycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0
cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBl
cnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6
RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3Iq
IFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSogdGhpc1By
b3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGY4ODU5MTVmZThiZTc5ZTUxMjU4ZmZmOGQ4
MzE4MmM5NWQ3ZDMyY2IuLjlkYjk3ZWQ3MTIwZjM3YjJmYmJmNWZiN2MyZGVjNDQ3ZDg4ZmY2YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMzAsNiArMzAsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVy
LmgKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5oCisgICAgTW9kdWxlcy9mZXRj
aC9GZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRl
cnMuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hJZGVudGlmaWVyLmgKICAgICBNb2R1bGVzL2Zl
dGNoL0ZldGNoTG9hZGVyLmgKQEAgLTI4Nyw2ICsyODgsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgYmluZGluZ3MvanMvV2ViQ29yZUpJVE9wZXJhdGlvbnMu
aAogICAgIGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oCiAgICAgYmlu
ZGluZ3MvanMvV2luZG93UHJveHkuaAorICAgIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNo
ZXIuaAogCiAgICAgYnJpZGdlL0JyaWRnZS5oCiAgICAgYnJpZGdlL0lkZW50aWZpZXJSZXAuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCAwNDVjZjI3MDZjMDM2N2U0Y2Y5MGIzMmRkZDc5MTQ2ZDVmYTExZGZm
Li43ODBmNzMxNzdkNTQ2Y2Y4YmE0ZjM0NWEzOTBkNzcxZmQ0ZjY1MzY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtNjM5LDYgKzYzOSw3IEBAIGJpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5jcHAKIGJp
bmRpbmdzL2pzL1dlYkNvcmVKSVRPcGVyYXRpb25zLmNwcAogYmluZGluZ3MvanMvV2ViQ29yZUpT
Q2xpZW50RGF0YS5jcHAKIGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5j
cHAKK2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKIGJpbmRpbmdzL2pz
L1dpbmRvd1Byb3h5LmNwcAogYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uY3BwCiBicmlkZ2Uv
SWRlbnRpZmllclJlcC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA4YzE1ZWI2NDgwMzczMDU4MDdiNzAzZDBiZGJhYjNmM2Jm
YTU3MTViLi4yM2U5MGI1ZWVlNzY4MTJiOTNkMWNjNTdkNmE3NzhkMTY1MjcwYzVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
MDY5LDE1ICs1MDY5LDE4IEBACiAJCUUzMDU5MjY0MUUyN0EzQUQwMEQ1N0M5OCAvKiBJbmxpbmVD
bGFzc2ljU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzA1OTI2MjFFMjdBMzhDMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDU5MjY4
MUUyN0EzRDEwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTgg
LyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUUzMDdERUQwMUQ4MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzMDdERUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlF
MzA3REVEMTFEODFFNENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVD
ODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwN0RFRDUx
RDgxRTRGMjAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYg
LyogTG9hZGFibGVNb2R1bGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFMzE1MEVBNzFEQTcyMTkzMDAxOTQwMTIgLyogRE9NSklUSGVs
cGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMx
NTBFQTUxREE3MjE4RDAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCAqLzsgfTsKIAkJRTMyMDFD
MUExRjhFODIxMzAwNzZBMDMyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4RDA2MDkxRjhFODExOTAwNjQ5
Q0YyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMjNDRkZBMUU1QUY2QUYwMEYwQjRBMCAvKiBKU0RP
TUNvbnZlcnRQcm9taXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzIzQ0ZGOTFFNUFGNkE1MDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzNDMy
REU0MjVEMzc3RTMwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDMyREUwMjVEMzc3RTIw
MDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLzsgfTsKKwkJRTM0N0U1RkEy
NUQ0RjAwMDAwRjE3QTVDIC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDdFNUY4MjVENEYwMDAwMEYxN0E1QyAv
KiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJRTM1MTg4QjQyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTM1MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUz
NTY1QjdCMURDMkQ2QzkwMDIxN0RCRCAvKiBKU0V2ZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRFRTQ5RjFEQzJENTc1MDBFQUE5RDMg
LyogSlNFdmVudEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzNTgwMkI2MURDODQzNUQwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmls
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4
MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNTgyQzI4MjUyN0Y2Njkw
MEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODJDMjYyNTI3RjY2ODAwRDFCNzkwIC8qIFdlYkNv
cmVKSVRPcGVyYXRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTM1QjkwN0YyM0Y2MEE1MDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1v
ZGVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVC
OTA3QzIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzY0MzIxQzI1RDM3QTY3
MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyogTW9kdWxl
U2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTM3N0ZFNEQxREFERTE2NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFudHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0OTkzMURBREMw
NDUwMDcxOEYzQyAvKiBOb2RlQ29uc3RhbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNBIC8qIEpTRE9N
UHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzOTYyOEJGMjM5NTcyOEYwMDY1
OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhCRDIzOTU3MjhFMDA2NThFQ0Qg
LyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNjE5NSw3ICsxNjE5OCw2IEBACiAJCUUz
MDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFQzYxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMzA3REVDODFEODFFNDQ4MDAx
NDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVEMjFEODFFNEVEMDAxNDFDQUYgLyogTG9h
ZGFibGVNb2R1bGVTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYgLyogTG9hZGFibGVNb2R1bGVTY3JpcHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9hZGFibGVNb2R1bGVTY3JpcHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMxNTBFQTUxREE3MjE4RDAwMTk0MDEyIC8qIERP
TUpJVEhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSGVs
cGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyMDgsMTIgKzE2MjEwLDE3
IEBACiAJCUUzMjkyNzYzMjI1NDNGNTkwMDMwOEE5QSAvKiBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFR5cGVkT01DU1NVbml0VmFsdWUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzI5Mjc2NjIyNTQzRkRFMDAzMDhBOUEgLyogRE9NUmVjdFJl
YWRPbmx5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3RSZWFkT25seS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMzQ4MjVFMURDOTNBQTAwMDlDOTU0NCAvKiBET01K
SVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvRE9NSklUQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OworCQlFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2Vy
TW9kdWxlU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MzQzMkRFMzI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlck1vZHVsZVNjcmlwdExv
YWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNDdFNUY4MjVENEYwMDAw
MEYxN0E1QyAvKiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdvcmtlclNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZlbnRDdXN0b20uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFdmVudEN1c3RvbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4MDJC
NTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRJRExUeXBlRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzNTgyQzI0MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3Bl
cmF0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3Jl
SklUT3BlcmF0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTgyQzI2
MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlSklUT3BlcmF0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMzVCOTA3QzIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2
aWNlTW9kZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemVkRGV2
aWNlTW9kZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1QjkwN0UyM0Y2MDY3
NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxpemVkRGV2aWNlTW9kZWwubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzNjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1bGVTY3Jp
cHRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlU2NyaXB0
TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzN0M4NjRGMUVCNjNFMkQw
MDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNET01Qcm9taXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzODgzODk0
MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1v
ZHVsZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRNb2R1
bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3MDA5LDcgKzI3MDE2
LDYgQEAKIAkJCQkyREZBNDg4RTFEQjU0MUMyMDAzNjJCOTkgLyogQnVmZmVyU291cmNlLmggKi8s
CiAJCQkJRTMwN0RFQzYxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5jcHAgKi8sCiAJCQkJRTMwN0RFQzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlci5oICovLAotCQkJCUUzMDdERUM4MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLywKIAkJCQlFMzA1OTI2NTFFMjdBM0M2MDBENTdD
OTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAgKi8sCiAJCQkJRTMwNTkyNjYxRTI3QTNDNjAw
RDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLywKIAkJCQlCQ0Q1MzM2MzBFRDY4NDg5
MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLywKQEAgLTI3MDgzLDYg
KzI3MDg5LDggQEAKIAkJCQk0QkRFQTMyRDIxODAzNDA1MDA1MkRGQ0QgLyogSlNXb3JrbGV0R2xv
YmFsU2NvcGVCYXNlLmNwcCAqLywKIAkJCQk0QkRFQTMyQjIxODAzM0VCMDA1MkRGQ0QgLyogSlNX
b3JrbGV0R2xvYmFsU2NvcGVCYXNlLmggKi8sCiAJCQkJNzA5QTAxRkQxRTNEMEJDQzAwNkIwRDRD
IC8qIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQuaCAqLywKKwkJCQlFMzY0MzIxQTI1RDM3QTY2MDBG
OTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8sCisJCQkJRTM1MTg4QjMyNUQzODdDRjAw
QTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovLAogCQkJCTQxQjQ1OUVEMUY1
NUVCQzcwMDAwRjZGRCAvKiBSZWFkYWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDFCNDU5REExRjRD
QURCOTAwMDBGNkZEIC8qIFJlYWRhYmxlU3RyZWFtLmggKi8sCiAJCQkJNDE4QzM5NUUxQzhGMEFB
QjAwNTFDOEEzIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwICovLApAQCAt
MjcxMTQsNiArMjcxMjIsOSBAQAogCQkJCTBGMDk5RDA3MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJD
b3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAqLywKIAkJCQk0NjM1MjFBQzIwODEwOTBFMDBDMjg5
MjIgLyogV2luZG93UHJveHkuY3BwICovLAogCQkJCTQ2MzUyMUFBMjA4MTA5MEIwMEMyODkyMiAv
KiBXaW5kb3dQcm94eS5oICovLAorCQkJCUUzNDMyREUzMjVEMzc3RTMwMDU4RTYxMiAvKiBXb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwICovLAorCQkJCUUzNDMyREUwMjVEMzc3RTIwMDU4RTYx
MiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLywKKwkJCQlFMzQ3RTVGODI1RDRGMDAw
MDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5oICovLAogCQkJCTQxNDE4QTAzMjU2NDNF
MTIwMDM2MzQxNyAvKiBXcml0YWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDE0MThBMDQyNTY0M0Ux
MzAwMzYzNDE3IC8qIFdyaXRhYmxlU3RyZWFtLmggKi8sCiAJCQkpOwpAQCAtMzEzODcsNyArMzEz
OTgsNiBAQAogCQkJCUJDQjE2QzFDMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRJbWFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzE5RkJENUYxNUQyRjQ2NDAwOTY0MEE2IC8qIENhY2hlZEltYWdl
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzA3REVEMDFEODFFNEM3MDAxNDFDQUYgLyog
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMzA3REVEMTFE
ODFFNENCMDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTAxODQ2OTBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRDBFREE3NzUxNDNFMzAzQzAwMjhFMzgzIC8qIENhY2hlZFJhd1Jl
c291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUI1MzM0OTE3MTdERUUzMDBGMjA1RjkgLyog
Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzM4NjIsNiArMzM4
NzIsOCBAQAogCQkJCUM2RDc0QUQ1MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25M
aXN0TGV2ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwOUEwMUZFMUUzRDBCREQwMDZCMEQ0QyAv
KiBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzIwMUMxQTFG
OEU4MjEzMDA3NkEwMzIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMzY0MzIxQzI1RDM3QTY3MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMzUxODhCNDI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RDNjEyNTFGMTJEMDAzRUYy
NjkgLyogTW9udGhJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOTYyOEMxMjM5NTc0
MzEwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NTAzMUI0NjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zNTUxMiw2ICszNTUyNCw3IEBACiAJCQkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdv
cmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBC
MEYxQkEgLyogV29ya2VyTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUwMEY1
NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTM0MzJERTQyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNzFBMEIwRUVFQzc3QTAwRjYxMjEzIC8qIFdvcmtlck5h
dmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDQjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8q
IFdvcmtlck5ldHdvcmtBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4
MjAwQjBGMUJBIC8qIFdvcmtlck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTM1NTIx
LDYgKzM1NTM0LDcgQEAKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVw
b3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUzMEY1NDZBODIwMEIwRjFC
QSAvKiBXb3JrZXJSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDRjFGQUE0NERF
MDAzN0QxRTYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzQ3
RTVGQTI1RDRGMDAwMDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdENkIzNDkwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkVBNzY4MDQwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNj
cmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTUwRjU0NkE4MjAw
QjBGMUJBIC8qIFdvcmtlclRocmVhZC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcAppbmRl
eCAzNTJkY2M0YWNmNzUxNzZkOThhZDM0MTBiZTE1MTYwODAxMDg4NTI0Li4yNzdmNjJhN2MxMzNm
ZTE1NmM2Y2NlOTg1NTM1NTBlZGIxMzZkMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTQwLDE2ICs0
MCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXI+IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNj
cmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+
JiYgcGFyYW1ldGVycykKK1JlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+IENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcjo6Y3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBE
ZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNo
ZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoY2xpZW50LCBwcm9t
aXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSk7CiB9CiAKLUNhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcjo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hl
ZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRl
cnM+JiYgcGFyYW1ldGVycykKLSAgICA6IG1fY2xpZW50KCZjbGllbnQpCi0gICAgLCBtX3Byb21p
c2UoJnByb21pc2UpCi0gICAgLCBtX3NjcmlwdEZldGNoZXIoc2NyaXB0RmV0Y2hlcikKLSAgICAs
IG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQorQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBj
bGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2Ny
aXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQor
ICAgIDogTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwg
V1RGTW92ZShwYXJhbWV0ZXJzKSkKIHsKIH0KIApAQCAtNjEsMTQgKzU4LDE1IEBAIENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlcjo6fkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcigpCiAgICAgfQogfQog
Ci1ib29sIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFVSTCYgc291cmNlVVJMKQorYm9vbCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6Omxv
YWQoRG9jdW1lbnQmIGRvY3VtZW50LCBVUkwmJiBzb3VyY2VVUkwpCiB7CisgICAgQVNTRVJUKG1f
cHJvbWlzZSk7CiAgICAgQVNTRVJUKCFtX2NhY2hlZFNjcmlwdCk7CiAgICAgU3RyaW5nIGludGVn
cml0eSA9IG1fcGFyYW1ldGVycyA/IG1fcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkgOiBTdHJpbmcg
eyB9OwotICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9zY3JpcHRGZXRjaGVyLT5yZXF1ZXN0TW9kdWxl
U2NyaXB0KGRvY3VtZW50LCBzb3VyY2VVUkwsIFdURk1vdmUoaW50ZWdyaXR5KSk7CisgICAgbV9j
YWNoZWRTY3JpcHQgPSBzY3JpcHRGZXRjaGVyKCkucmVxdWVzdE1vZHVsZVNjcmlwdChkb2N1bWVu
dCwgc291cmNlVVJMLCBXVEZNb3ZlKGludGVncml0eSkpOwogICAgIGlmICghbV9jYWNoZWRTY3Jp
cHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtX3NvdXJjZVVSTCA9IHNvdXJjZVVSTDsK
KyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUoc291cmNlVVJMKTsKIAogICAgIC8vIElmIHRoZSBj
b250ZW50IGlzIGFscmVhZHkgY2FjaGVkLCB0aGlzIGltbWVkaWF0ZWx5IGNhbGxzIG5vdGlmeUZp
bmlzaGVkLgogICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQoKnRoaXMpOwpAQCAtODMsNyAr
ODEsNyBAQCB2b2lkIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2Fj
aGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBOZQogCiAgICAgUmVmPENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgaWYgKG1fY2xpZW50KQotICAg
ICAgICBtX2NsaWVudC0+bm90aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9wcm9taXNlKSk7
CisgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJj
ZVVSTCksIG1fcHJvbWlzZS5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIC8vIFJlbW92ZSB0aGUg
Y2xpZW50IGFmdGVyIGNhbGxpbmcgbm90aWZ5RmluaXNoZWQgdG8ga2VlcCB0aGUgZGF0YSBidWZm
ZXIgaW4KICAgICAvLyBDYWNoZWRSZXNvdXJjZSBhbGl2ZSB3aGlsZSBub3RpZnlGaW5pc2hlZCBw
cm9jZXNzZXMgdGhlIHJlc291cmNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaAppbmRleCA0M2FiZDg3NWIyNDNmYWY1ZmNk
NGQ5OGVjM2M1ZDI0ZTc5MGI1NzJlLi5hNDg3NTVmOTNkMDVlZjM1M2QyYjNlMjI4ZDgyMTlmZTg5
MWU2NzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVTY3JpcHRMb2Fk
ZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zNCw0MiArMzYsMjkgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFz
cyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7Ci1jbGFzcyBD
YWNoZWRTY3JpcHRGZXRjaGVyOwogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKIGNsYXNzIE1vZHVsZUZldGNoUGFyYW1ldGVy
czsKIAotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIFJlZkNv
dW50ZWQ8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNs
aWVudCB7CitjbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9k
dWxlU2NyaXB0TG9hZGVyLCBwcml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKENhY2hlZE1v
ZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZl
dGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKyAgICBzdGF0aWMgUmVm
PENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZpcnR1YWwgfkNhY2hlZE1vZHVsZVNjcmlwdExv
YWRlcigpOwogCi0gICAgYm9vbCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJMJiBzb3VyY2VVUkwp
OworICAgIGJvb2wgbG9hZChEb2N1bWVudCYsIFVSTCYmIHNvdXJjZVVSTCk7CiAKLSAgICBDYWNo
ZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyKCkgeyByZXR1cm4gbV9zY3JpcHRGZXRjaGVy
LmdldCgpOyB9CiAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSB7IHJldHVybiBtX2Nh
Y2hlZFNjcmlwdC5nZXQoKTsgfQotICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyogcGFyYW1ldGVy
cygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQotICAgIGNvbnN0IFVSTCYgc291cmNl
VVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KLQotICAgIHZvaWQgY2xlYXJDbGll
bnQoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fY2xpZW50KTsKLSAgICAgICAgbV9jbGllbnQg
PSBudWxscHRyOwotICAgIH0KKyAgICBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVy
KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlciY+KE1vZHVsZVNjcmlw
dExvYWRlcjo6c2NyaXB0RmV0Y2hlcigpKTsgfQogCiBwcml2YXRlOgotICAgIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcihDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFBy
b21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVy
cz4mJik7CisgICAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNs
aWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKIAogICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVk
UmVzb3VyY2UmLCBjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmKSBmaW5hbDsKIAotICAgIENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07Ci0gICAgUmVm
UHRyPERlZmVycmVkUHJvbWlzZT4gbV9wcm9taXNlOwotICAgIFJlZjxDYWNoZWRTY3JpcHRGZXRj
aGVyPiBtX3NjcmlwdEZldGNoZXI7Ci0gICAgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4g
bV9wYXJhbWV0ZXJzOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gbV9j
YWNoZWRTY3JpcHQ7CiAgICAgVVJMIG1fc291cmNlVVJMOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2ODhhZDkwZGFlM2VjZTk0OWVhMDli
MWVmZWU1ZGEyNmY5NGM3ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjsKLWNsYXNzIERl
ZmVycmVkUHJvbWlzZTsKLQotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsK
LXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQoKSA9
IGRlZmF1bHQ7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4pID0gMDsKLX07Ci0KLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAK
aW5kZXggYTQzMzc1ODY1YmJmMWVjNTk3M2JmMTcyYzkxYTM4NTMyMzRlMzc0ZC4uZGYzYzZiNmVi
Yjg0YWY3MmVkMjk1NWY5OTExZDA3YTg3YWIzNTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw2ICs0OCw3IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVx
dWVzdE1vZHVsZVNjcmlwdChEb2N1CiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlw
dD4gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNoZShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2lu
TW9kZSwgU3RyaW5nJiYgaW50ZWdyaXR5LCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4g
cmVzb3VyY2VMb2FkUHJpb3JpdHkpIGNvbnN0CiB7CisgICAgLy8gV2l0aG91dCBzY3JpcHRpbmcs
IHRoZXJlIGlzIG5vIHdheSB0byBzdGFydCBXb3JrZXJzLgogICAgIGlmICghZG9jdW1lbnQuc2V0
dGluZ3MoKS5pc1NjcmlwdEVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5jcHAKaW5kZXggZGY3ZjNkNzQ2ZDVlMzJhYmFiNTE0NzZjOWRkYWNhNjNhNDM1MTM2Yy4uZWVm
MjEwMzg4NDlmZDg5ODQ5YWZjZWQ3MDMxODVmZjg5NGM0MGM3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKQEAgLTUy
LDYgKzUyLDI1IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlCiAgICAgcmVwb3J0RXhjZXB0aW9u
KGxleGljYWxHbG9iYWxPYmplY3QsIGV4Y2VwdGlvbiwgY2FjaGVkU2NyaXB0KTsKIH0KIAorU3Ry
aW5nIHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIFZNJiB2bSwgSlNWYWx1ZSBleGNlcHRpb24sIENhdGNoU2NvcGUmIGNh
dGNoU2NvcGUpCit7CisgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNTA4Nz4g
V2ViIEluc3BlY3RvcjogV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9uIHNob3VsZCBub3QgZXZhbHVh
dGUgSmF2YVNjcmlwdCBoYW5kbGluZyBleGNlcHRpb25zCisgICAgLy8gSWYgdGhpcyBpcyBhIGN1
c3RvbSBleGNlcHRpb24gb2JqZWN0LCBjYWxsIHRvU3RyaW5nIG9uIGl0IHRvIHRyeSBhbmQgZ2V0
IGEgbmljZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBleGNlcHRpb24uCisgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoYXV0byogZXJyb3IgPSBqc0R5bmFtaWNDYXN0PEVy
cm9ySW5zdGFuY2UqPih2bSwgZXhjZXB0aW9uKSkKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJy
b3ItPnNhbml0aXplZE1lc3NhZ2VTdHJpbmcoJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGVs
c2UgaWYgKGF1dG8qIGVycm9yID0ganNEeW5hbWljQ2FzdDxKU0RPTUV4Y2VwdGlvbio+KHZtLCBl
eGNlcHRpb24pKQorICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci0+d3JhcHBlZCgpLm1lc3Nh
Z2UoKTsKKyAgICBlbHNlCisgICAgICAgIGVycm9yTWVzc2FnZSA9IGV4Y2VwdGlvbi50b1dURlN0
cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisKKyAgICAvLyBXZSBuZWVkIHRvIGNsZWFyIGFu
eSBuZXcgZXhjZXB0aW9uIHRoYXQgbWF5IGJlIHRocm93biBpbiB0aGUgdG9TdHJpbmcoKSBjYWxs
IGFib3ZlLgorICAgIC8vIHJlcG9ydEV4Y2VwdGlvbigpIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBt
YWtpbmcgbmV3IGV4Y2VwdGlvbnMuCisgICAgY2F0Y2hTY29wZS5jbGVhckV4Y2VwdGlvbigpOwor
ICAgIHZtLmNsZWFyTGFzdEV4Y2VwdGlvbigpOworICAgIHJldHVybiBlcnJvck1lc3NhZ2U7Cit9
CisKIFN0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgVk0mIHZtLCBKU1ZhbHVlIGV4Y2VwdGlvbiwgQ2F0Y2hTY29wZSYgY2F0Y2hT
Y29wZSkKIHsKICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE1MDg3PiBXZWIg
SW5zcGVjdG9yOiBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24gc2hvdWxkIG5vdCBldmFsdWF0ZSBK
YXZhU2NyaXB0IGhhbmRsaW5nIGV4Y2VwdGlvbnMKQEAgLTEyMSwzNiArMTQwLDQ1IEBAIHZvaWQg
cmVwb3J0Q3VycmVudEV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCkKIAogSlNWYWx1ZSBjcmVhdGVET01FeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEV4Y2VwdGlvbkNvZGUgZWMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsK
LSAgICBpZiAoZWMgPT0gRXhpc3RpbmdFeGNlcHRpb25FcnJvcikKKyAgICBzd2l0Y2ggKGVjKSB7
CisgICAgY2FzZSBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yOgogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIAogICAgIC8vIEZJWE1FOiBIYW5kbGUgb3RoZXIgV2ViSURMIGV4Y2VwdGlvbiB0
eXBlcy4KLSAgICBpZiAoZWMgPT0gVHlwZUVycm9yKSB7CisgICAgY2FzZSBUeXBlRXJyb3I6CiAg
ICAgICAgIGlmIChtZXNzYWdlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVU
eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBjcmVhdGVUeXBl
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgbWVzc2FnZSk7Ci0gICAgfQogCi0gICAgaWYgKGVj
ID09IFJhbmdlRXJyb3IpIHsKKyAgICBjYXNlIFJhbmdlRXJyb3I6CiAgICAgICAgIGlmIChtZXNz
YWdlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSYW5nZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsICJCYWQgdmFsdWUiX3MpOwogICAgICAgICByZXR1cm4gY3JlYXRlUmFu
Z2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBtZXNzYWdlKTsKLSAgICB9CiAKLSAgICBpZiAo
ZWMgPT0gU3RhY2tPdmVyZmxvd0Vycm9yKQorICAgIGNhc2UgSlNTeW50YXhFcnJvcjoKKyAgICAg
ICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN5bnRh
eEVycm9yKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gY3JlYXRlU3ludGF4
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgbWVzc2FnZSk7CisKKyAgICBjYXNlIFN0YWNrT3Zl
cmZsb3dFcnJvcjoKICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoZWMgPT0gT3V0T2ZNZW1vcnlFcnJvcikKKworICAg
IGNhc2UgT3V0T2ZNZW1vcnlFcnJvcjoKICAgICAgICAgcmV0dXJuIGNyZWF0ZU91dE9mTWVtb3J5
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7CiAKLSAgICAvLyBGSVhNRTogQWxsIGNhbGxlcnMg
dG8gY3JlYXRlRE9NRXhjZXB0aW9uIG5lZWQgdG8gcGFzcyBpbiB0aGUgY29ycmVjdCBnbG9iYWwg
b2JqZWN0LgotICAgIC8vIEZvciBub3csIHdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0aGUgbGV4aWNh
bEdsb2JhbE9iamVjdC4gV2hpY2ggaXMgd3JvbmcgaW4gY2FzZXMgbGlrZSB0aGlzOgotICAgIC8v
IGZyYW1lc1swXS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KG51bGwsIG51bGwpOyAvLyB0aHJvd3Mg
YW4gZXhjZXB0aW9uIHdoaWNoIHNob3VsZCBoYXZlIHRoZSBzdWJmcmFtZSdzIHByb3RvdHlwZXMu
Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGRlcHJlY2F0ZWRHbG9iYWxP
YmplY3RGb3JQcm90b3R5cGUobGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgSlNWYWx1ZSBlcnJv
ck9iamVjdCA9IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBET01FeGNl
cHRpb246OmNyZWF0ZShlYywgbWVzc2FnZSkpOwotICAgIAotICAgIEFTU0VSVChlcnJvck9iamVj
dCk7Ci0gICAgYWRkRXJyb3JJbmZvKGxleGljYWxHbG9iYWxPYmplY3QsIGFzT2JqZWN0KGVycm9y
T2JqZWN0KSwgdHJ1ZSk7Ci0gICAgcmV0dXJuIGVycm9yT2JqZWN0OworICAgIGRlZmF1bHQ6IHsK
KyAgICAgICAgLy8gRklYTUU6IEFsbCBjYWxsZXJzIHRvIGNyZWF0ZURPTUV4Y2VwdGlvbiBuZWVk
IHRvIHBhc3MgaW4gdGhlIGNvcnJlY3QgZ2xvYmFsIG9iamVjdC4KKyAgICAgICAgLy8gRm9yIG5v
dywgd2UncmUgZ29pbmcgdG8gYXNzdW1lIHRoZSBsZXhpY2FsR2xvYmFsT2JqZWN0LiBXaGljaCBp
cyB3cm9uZyBpbiBjYXNlcyBsaWtlIHRoaXM6CisgICAgICAgIC8vIGZyYW1lc1swXS5kb2N1bWVu
dC5jcmVhdGVFbGVtZW50KG51bGwsIG51bGwpOyAvLyB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoaWNo
IHNob3VsZCBoYXZlIHRoZSBzdWJmcmFtZSdzIHByb3RvdHlwZXMuCisgICAgICAgIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90
eXBlKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAgICBKU1ZhbHVlIGVycm9yT2JqZWN0ID0g
dG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIERPTUV4Y2VwdGlvbjo6Y3Jl
YXRlKGVjLCBtZXNzYWdlKSk7CisKKyAgICAgICAgQVNTRVJUKGVycm9yT2JqZWN0KTsKKyAgICAg
ICAgYWRkRXJyb3JJbmZvKGxleGljYWxHbG9iYWxPYmplY3QsIGFzT2JqZWN0KGVycm9yT2JqZWN0
KSwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBlcnJvck9iamVjdDsKKyAgICB9CisgICAgfQorICAg
IHJldHVybiB7IH07CiB9CiAKIEpTVmFsdWUgY3JlYXRlRE9NRXhjZXB0aW9uKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFeGNlcHRpb24mJiBleGNlcHRpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKaW5k
ZXggMmQzZTMxMWY2MWVlYjY4NWFhYzM1NTQ2YWFlMTYwZGE5NzkwZWY1Zi4uZDFmNmRlOTM3NDcw
Y2U2ZGYyY2NiNjQ3MjI4NDc2NmZkMDE5NTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaApAQCAtNjUsNiArNjUsNyBAQCBX
RUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoR2V0dGVy
VHlwZUVycm9yKEpTQzo6SlNHbG9iYQogV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1
ZSByZWplY3RQcm9taXNlV2l0aFRoaXNUeXBlRXJyb3IoRGVmZXJyZWRQcm9taXNlJiwgY29uc3Qg
Y2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogb3BlcmF0aW9uTmFtZSk7CiBXRUJDT1JF
X0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoVGhpc1R5cGVFcnJv
cihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3Qg
Y2hhciogb3BlcmF0aW9uTmFtZSk7CiAKK1N0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhv
dXROYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlIGV4Y2Vw
dGlvbiwgSlNDOjpDYXRjaFNjb3BlJik7CiBTdHJpbmcgcmV0cmlldmVFcnJvck1lc3NhZ2UoSlND
OjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBKU0M6
OkNhdGNoU2NvcGUmKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqID0g
bnVsbHB0cik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFeGNlcHRpb24qLCBDYWNoZWRTY3JpcHQqID0gbnVsbHB0ciwgRXhj
ZXB0aW9uRGV0YWlscyogPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCA1OGI3ZGY3NjBjMDBhMzFmZjA4ZWQyMmRl
ZTIyYThjNzQ0M2FlOGRkLi45ZDY5N2Q0NTliNTYzNDVjYzgzOTYyMDI2Njc2ZTAwYTk4YmY0OWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlICJSZWplY3RlZFByb21pc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZWRDbG9uZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIK
ICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtNDIyLDYgKzQyMyw3OSBAQCBKU0M6
OkpTUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Omluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsbwogfQogI2VuZGlmCiAKK3N0YXRpYyBTY3JpcHRNb2R1bGVMb2Fk
ZXIqIHNjcmlwdE1vZHVsZUxvYWRlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5pbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKSkgeworICAgICAgICBpZiAoYXV0byBkb2N1
bWVudCA9IGpzQ2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpLT53cmFw
cGVkKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiAmZG9jdW1lbnQtPm1vZHVsZUxv
YWRlcigpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKGdsb2JhbE9i
amVjdC0+aW5oZXJpdHM8SlNSZW1vdGVET01XaW5kb3dCYXNlPih2bSkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2VyR2xvYmFs
U2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxvYWRlcigpOwor
ICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZT4o
dm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNJREJT
ZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0Pih2bSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
I2VuZGlmCisgICAgZGF0YUxvZygiVW5leHBlY3RlZCBnbG9iYWwgb2JqZWN0OiAiLCBKU1ZhbHVl
KGdsb2JhbE9iamVjdCksICJcbiIpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTQzo6SWRlbnRpZmllciBKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6Ompz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxv
YWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxv
YWRlci0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1w
b3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiB7IH07Cit9CisKK0pT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFt
ZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlw
dE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBsb2FkZXItPmZldGNoKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXks
IHBhcmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7Cisg
ICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7CisgICAgcmV0
dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6
SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAg
IEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1
bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmV2YWx1YXRlKGds
b2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0
RmV0Y2hlcik7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKworSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVs
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1N0cmluZyogbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcnMsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byog
bG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9k
dWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0ZXJzLCBzb3VyY2VPcmlnaW4pKTsKKyAgICBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAg
ICBzY29wZS5yZWxlYXNlKCk7CisgICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNV
bmRlZmluZWQoKSk7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNPYmplY3QqIEpT
RE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1v
ZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCog
bW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUds
b2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
Z2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVy
KHRoaXNPYmplY3QpKQorICAgICAgICByZXR1cm4gbG9hZGVyLT5jcmVhdGVJbXBvcnRNZXRhUHJv
cGVydGllcyhnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNv
cmQsIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVy
ZSgpKTsKK30KKwogSlNET01HbG9iYWxPYmplY3QmIGNhbGxlckdsb2JhbE9iamVjdChKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUpCiB7CiAg
ICAgY2xhc3MgR2V0Q2FsbGVyR2xvYmFsT2JqZWN0RnVuY3RvciB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCBiODQwNzJkZGQ3NDZiM2Q2
YzUxMDYwZDkwNTAxYjVjZWExYjQ5OWIxLi5mNDlhNGNkMjU3MTk3MTE4OTE3YTdkN2E0YjZjMGUx
MWZjNzZiYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgKQEAgLTEwNSw2ICsxMDUsMTIgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNET01H
bG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CiAgICAgc3RhdGljIEpT
Qzo6SlNQcm9taXNlKiBpbnN0YW50aWF0ZVN0cmVhbWluZyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OkpTT2JqZWN0Kik7CiAjZW5kaWYKIAorICAgIHN0YXRpYyBKU0M6
OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFs
dWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUg
bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVM
b2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICBz
dGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0cmluZyos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKKyAgICBzdGF0aWMgSlND
OjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOworCiAgICAgSlNET01TdHJ1Y3R1cmVNYXAg
bV9zdHJ1Y3R1cmVzOwogICAgIEpTRE9NQ29uc3RydWN0b3JNYXAgbV9jb25zdHJ1Y3RvcnM7CiAg
ICAgRE9NR3VhcmRlZE9iamVjdFNldCBtX2d1YXJkZWRPYmplY3RzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggNTYzZWZhMDU3MWI1ZDQ2
MmQ5ZTY0NTA4OWYwYmQ4Zjc3ZDE5YTc2OC4uMzEyYTAxMTU4ZThjMjgwODNjMDdlNDJkYjg3MjQ1
ZmU0ZTVjNTdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwCkBAIC0zMzksNTQgKzMzOSw0IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJl
RnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAg
fQogfQogCi1KU0M6OklkZW50aWZpZXIgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNv
bHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RP
TVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihn
bG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09i
amVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9k
dWxlTG9hZGVyKCkucmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFt
ZSwgaW1wb3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOwotICAgIHJldHVybiB7IH07Ci19
Ci0KLUpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVy
RmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBw
YXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9N
V2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9j
dW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuZmV0Y2goZ2xvYmFs
T2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hl
cikpOwotICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0
dXJlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFs
T2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpK
U1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6
SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVj
dCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYg
KFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5ldmFsdWF0ZShn
bG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQsIHNjcmlw
dEZldGNoZXIpOwotICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxl
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciog
bW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcGFy
YW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKLXsKLSAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anND
YXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1
bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuaW1w
b3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0
ZXJzLCBzb3VyY2VPcmlnaW4pKTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNl
ID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVy
bmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKLSAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcHJvbWlz
ZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIHByb21p
c2U7Ci19Ci0KLUpTQzo6SlNPYmplY3QqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyQ3Jl
YXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVL
ZXksIEpTQzo6SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nh
c3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3Vt
ZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAg
ICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0
aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwg
c2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9i
amVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDNlZjk4MGRkMjdmNmIyMTM5ODcwMDhiYTQ3NmM4
Y2E2OWYyZjBiNjQuLjUxNDJiMWM3ZGMyNWMyMmZlOTc4OTVlNzVhZTIyZWY0ZDFlNTg5ZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC05OSwx
MiArOTksNiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd0Jhc2UgOiBwdWJsaWMg
SlNET01HbG9iYWxPYmplY3QgewogcHJpdmF0ZToKICAgICB1c2luZyBSZXNwb25zZUNhbGxiYWNr
ID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IGNoYXIqLCBzaXplX3QpPjsKIAotICAgIHN0YXRp
YyBKU0M6OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2Fk
ZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpT
VmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsK
LSAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9k
dWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0
cmluZyosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKLSAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwotCiAgICAgUmVmUHRyPERPTVdp
bmRvdz4gbV93cmFwcGVkOwogICAgIFJlZlB0cjxFdmVudD4gbV9jdXJyZW50RXZlbnQ7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwCmluZGV4IDQyYjI2YzlmNGVhMjE2MjA3ZGU0Yzg2ODIwYjhhODFiNjAzNWI3ZWIu
LjJkNzkzZmZmMjE4NTNhOGExYTc4ODA2NjcyNTBmNTdlNzUyZmUzZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAK
QEAgLTU5LDExICs1OSwxMSBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZQogICAgICZqYXZhU2Ny
aXB0UnVudGltZUZsYWdzLAogICAgICZxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wLAogICAgICZz
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckltcG9ydE1vZHVsZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlclJlc29sdmUK
LSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJGZXRjaAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxl
TG9hZGVyRXZhbHVhdGUKKyAgICAmbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlLAorICAgICZtb2R1
bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1bGVMb2FkZXJGZXRjaCwKKyAgICAmbW9kdWxlTG9h
ZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMsCisgICAgJm1vZHVsZUxvYWRlckV2YWx1YXRl
LAogICAgICZwcm9taXNlUmVqZWN0aW9uVHJhY2tlciwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNl
cHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5jcHAKaW5kZXggMzVmYTZlMzI3N2ZiMGQ0YmUwZTBlMWVkYzQzNzIyZWRhZGZjOGFmMi4u
OWZhZWM5NTljMzlkMTc0ODE4MWM5ODY1MDAzZDVhODZmMTdmNWUzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3Bw
CkBAIC00OSwxMSArNDksMTEgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICAmamF2YVNj
cmlwdFJ1bnRpbWVGbGFncywKICAgICBudWxscHRyLCAvLyBxdWV1ZU1pY3JvdGFza1RvRXZlbnRM
b29wCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9h
ZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZldGNoCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMKLSAgICBudWxscHRy
LCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUs
CisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNoLAorICAg
ICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9kdWxlTG9h
ZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAogICAgICZyZXBvcnRV
bmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9u
T3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZhOTEwZTk0OWI3YWMxYTM4ZWRlZWNiMDNkZWI2ZWU4OTRjY2ViMGQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNo
UGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEZldGNoZXIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlU2NyaXB0TG9hZGVyPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+TW9kdWxlU2NyaXB0TG9hZGVyKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBjbGVh
ckNsaWVudCgpCisgICAgeworICAgICAgICBBU1NFUlQobV9jbGllbnQpOworICAgICAgICBtX2Ns
aWVudCA9IG51bGxwdHI7CisgICAgfQorCisgICAgSlNDOjpTY3JpcHRGZXRjaGVyJiBzY3JpcHRG
ZXRjaGVyKCkgeyByZXR1cm4gbV9zY3JpcHRGZXRjaGVyLmdldCgpOyB9CisgICAgTW9kdWxlRmV0
Y2hQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9
CisKK3Byb3RlY3RlZDoKKyAgICBNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgSlNDOjpTY3JpcHRGZXRj
aGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFt
ZXRlcnMpCisgICAgICAgIDogbV9jbGllbnQoJmNsaWVudCkKKyAgICAgICAgLCBtX3Byb21pc2Uo
JnByb21pc2UpCisgICAgICAgICwgbV9zY3JpcHRGZXRjaGVyKHNjcmlwdEZldGNoZXIpCisgICAg
ICAgICwgbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCisgICAgeworICAgIH0KKwor
ICAgIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCogbV9jbGllbnQ7CisgICAgUmVmUHRyPERlZmVy
cmVkUHJvbWlzZT4gbV9wcm9taXNlOworICAgIFJlZjxKU0M6OlNjcmlwdEZldGNoZXI+IG1fc2Ny
aXB0RmV0Y2hlcjsKKyAgICBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiBtX3BhcmFtZXRl
cnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5
OTVmNDhlZTNkMWUwMmMxZDhjOWM5ZGEyYmQ1ODIzNmYzYmEwN2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1vZHVs
ZVNjcmlwdExvYWRlcjsKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsKKworY2xhc3MgTW9kdWxlU2Ny
aXB0TG9hZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQo
TW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSA9IDA7Cit9
OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9h
ZGVyLmNwcAppbmRleCBhYTViODBiNTg2Yjc5ZTBlNTc1MDFjZDUxMDc4ZGYyNWE2MjVlNWQ5Li5k
NWEyZjIzMThjMjBhNDE4N2Y3Y2E2ODFjODExNWNjNGY5YmExMzYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTI5LDcgKzI5
LDYgQEAKICNpbmNsdWRlICJDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlICJD
YWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCi0jaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCkBAIC00MSw2ICs0MCw4IEBA
CiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50
ZWdyaXR5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUgIldv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU01vZHVsZVJlY29yZC5oPgpAQCAtNTIsOCArNTMsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVNjcmlwdE1vZHVsZUxvYWRlcjo6U2NyaXB0TW9kdWxlTG9hZGVyKERvY3VtZW50JiBk
b2N1bWVudCkKLSAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCitTY3JpcHRNb2R1bGVMb2FkZXI6
OlNjcmlwdE1vZHVsZUxvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBPd25l
clR5cGUgb3duZXJUeXBlKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX293bmVy
VHlwZShvd25lclR5cGUpCiB7CiB9CiAKQEAgLTY4LDcgKzcwLDcgQEAgc3RhdGljIGJvb2wgaXNS
b290TW9kdWxlKEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSkKICAgICByZXR1cm4gaW1w
b3J0ZXJNb2R1bGVLZXkuaXNTeW1ib2woKSB8fCBpbXBvcnRlck1vZHVsZUtleS5pc1VuZGVmaW5l
ZCgpOwogfQogCi1zdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVj
aWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3Qg
VVJMJiBiYXNlVVJMKQorc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxl
U3BlY2lmaWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNjcmlwdE1vZHVsZUxv
YWRlcjo6T3duZXJUeXBlIG93bmVyVHlwZSwgY29uc3QgU3RyaW5nJiBzcGVjaWZpZXIsIGNvbnN0
IFVSTCYgYmFzZVVSTCkKIHsKICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcmVzb2x2ZS1hLW1vZHVsZS1zcGVjaWZpZXIKIApAQCAt
NzksNyArODEsMTIgQEAgc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxl
U3BlY2lmaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3QKICAgICBpZiAoIXNwZWNpZmll
ci5zdGFydHNXaXRoKCcvJykgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLyIpICYmICFzcGVj
aWZpZXIuc3RhcnRzV2l0aCgiLi4vIikpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCht
YWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lmaWVyLCAnIl9zLCBzcGVjaWZpZXIsICInIGRvZXMgbm90
IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9cIiwgb3IgXCIuLi9cIi4gUmVmZXJlbmNlZCBmcm9tICJf
cywgYmFzZVVSTC5zdHJpbmcoKSkpOwogCi0gICAgYXV0byByZXN1bHQgPSBkb2N1bWVudC5jb21w
bGV0ZVVSTChzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIFVSTCByZXN1bHQ7CisgICAgaWYgKG93
bmVyVHlwZSA9PSBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93bmVyVHlwZTo6RG9jdW1lbnQpCisgICAg
ICAgIHJlc3VsdCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5jb21wbGV0ZVVSTChzcGVj
aWZpZXIsIGJhc2VVUkwpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gVVJMKGJhc2VVUkws
IHNwZWNpZmllcik7CisKICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJNb2R1bGUgbmFtZSwgJyJfcywgcmVzdWx0LnN0
cmluZygpLCAiJyBkb2VzIG5vdCByZXNvbHZlIHRvIGEgdmFsaWQgVVJMLiJfcykpOwogICAgIHJl
dHVybiByZXN1bHQ7CkBAIC0xMDcsNyArMTE0LDcgQEAgSlNDOjpJZGVudGlmaWVyIFNjcmlwdE1v
ZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwK
ICAgICBVUkwgYmFzZVVSTCA9IHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoKmpzR2xvYmFsT2Jq
ZWN0LCBpbXBvcnRlck1vZHVsZUtleSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKIAotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2RvY3Vt
ZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVs
ZVNwZWNpZmllcihtX2NvbnRleHQsIG1fb3duZXJUeXBlLCBzcGVjaWZpZXIsIGJhc2VVUkwpOwog
ICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgIEpTQzo6dGhyb3dUeXBlRXJyb3IoanNHbG9iYWxP
YmplY3QsIHNjb3BlLCByZXN1bHQuZXJyb3IoKSk7CiAgICAgICAgIHJldHVybiB7IH07CkBAIC0x
NjEsMTMgKzE2OCwxOSBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2Fk
ZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogICAgIGlmIChhdXRvKiBz
Y3JpcHRGZXRjaFBhcmFtZXRlcnMgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU1NjcmlwdEZl
dGNoUGFyYW1ldGVycyo+KHZtLCBwYXJhbWV0ZXJzKSkKICAgICAgICAgdG9wTGV2ZWxGZXRjaFBh
cmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxNb2R1bGVGZXRjaFBhcmFtZXRlcnMqPigmc2NyaXB0RmV0
Y2hQYXJhbWV0ZXJzLT5wYXJhbWV0ZXJzKCkpOwogCi0gICAgYXV0byBsb2FkZXIgPSBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNf
Y2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNo
ZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFy
YW1ldGVycykpOwotICAgIG1fbG9hZGVycy5hZGQobG9hZGVyLmNvcHlSZWYoKSk7Ci0gICAgaWYg
KCFsb2FkZXItPmxvYWQobV9kb2N1bWVudCwgY29tcGxldGVkVVJMKSkgewotICAgICAgICBsb2Fk
ZXItPmNsZWFyQ2xpZW50KCk7Ci0gICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2Fk
ZXIpKTsKLSAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoZGVmZXJyZWQuZ2V0
KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1
bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwotICAgICAgICByZXR1cm4ganNQcm9taXNlOworICAgIGlm
IChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CisgICAgICAgIGF1dG8gbG9h
ZGVyID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdl
dCgpLCAqc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6
SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9w
TGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKKyAgICAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29w
eVJlZigpKTsKKyAgICAgICAgaWYgKCFsb2FkZXItPmxvYWQoZG93bmNhc3Q8RG9jdW1lbnQ+KG1f
Y29udGV4dCksIFdURk1vdmUoY29tcGxldGVkVVJMKSkpIHsKKyAgICAgICAgICAgIGxvYWRlci0+
Y2xlYXJDbGllbnQoKTsKKyAgICAgICAgICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2Fk
ZXIpKTsKKyAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKGRlZmVycmVk
LmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEg
bW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVybiBqc1Byb21pc2U7
CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGxvYWRlciA9IFdvcmtlck1v
ZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19j
YXN0PFdvcmtlclNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hl
cio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJh
bWV0ZXJzKSk7CisgICAgICAgIG1fbG9hZGVycy5hZGQobG9hZGVyLmNvcHlSZWYoKSk7CisgICAg
ICAgIGxvYWRlci0+bG9hZChtX2NvbnRleHQsIFdURk1vdmUoY29tcGxldGVkVVJMKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGpzUHJvbWlzZTsKQEAgLTE3Niw3ICsxODksNyBAQCBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGpzR2xvYmFsTwogVVJMIFNjcmlwdE1vZHVsZUxvYWRlcjo6bW9kdWxlVVJMKEpTQzo6SlNH
bG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUp
CiB7CiAgICAgaWYgKG1vZHVsZUtleVZhbHVlLmlzU3ltYm9sKCkpCi0gICAgICAgIHJldHVybiBt
X2RvY3VtZW50LnVybCgpOworICAgICAgICByZXR1cm4gbV9jb250ZXh0LnVybCgpOwogCiAgICAg
QVNTRVJUKG1vZHVsZUtleVZhbHVlLmlzU3RyaW5nKCkpOwogICAgIHJldHVybiBVUkwoVVJMKCks
IGFzU3RyaW5nKG1vZHVsZUtleVZhbHVlKS0+dmFsdWUoJmpzR2xvYmFsT2JqZWN0KSk7CkBAIC0x
ODcsOCArMjAwLDExIEBAIFVSTCBTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJMRnJvbVJl
cXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYganNHbG9iYWxPCiAgICAgSlNDOjpWTSYgdm0g
PSBqc0dsb2JhbE9iamVjdC52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAotICAgIGlmIChpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKQotICAgICAg
ICByZXR1cm4gbV9kb2N1bWVudC5iYXNlVVJMKCk7CisgICAgaWYgKGlzUm9vdE1vZHVsZShtb2R1
bGVLZXlWYWx1ZSkpIHsKKyAgICAgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9j
dW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCku
YmFzZVVSTCgpOworICAgICAgICByZXR1cm4gbV9jb250ZXh0LnVybCgpOworICAgIH0KIAogICAg
IEFTU0VSVCghaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSk7CiAgICAgQVNTRVJUKG1vZHVs
ZUtleVZhbHVlLmlzU3RyaW5nKCkpOwpAQCAtMjE5LDggKzIzNSwxNCBAQCBKU0M6OkpTVmFsdWUg
U2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2Jh
bE9iamVjdCwgSgogICAgIGlmICghc291cmNlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IEpTQzo6dGhyb3dUeXBlRXJyb3IoanNHbG9iYWxPYmplY3QsIHNjb3BlLCAiTW9kdWxlIGtleSBp
cyBhbiBpbnZhbGlkIFVSTC4iX3MpOwogCi0gICAgaWYgKGF1dG8qIGZyYW1lID0gbV9kb2N1bWVu
dC5mcmFtZSgpKQotICAgICAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxl
KHNvdXJjZVVSTCwgKm1vZHVsZVJlY29yZCk7CisgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVy
VHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KG1fY29udGV4dCkuZnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBmcmFtZS0+c2Ny
aXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBBU1NFUlQoaXM8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KG1fY29u
dGV4dCkpOworICAgICAgICBpZiAoYXV0byogc2NyaXB0ID0gZG93bmNhc3Q8V29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGU+KG1fY29udGV4dCkuc2NyaXB0KCkpCisgICAgICAgICAgICByZXR1cm4g
c2NyaXB0LT5ldmFsdWF0ZU1vZHVsZSgqbW9kdWxlUmVjb3JkKTsKKyAgICB9CiAgICAgcmV0dXJu
IEpTQzo6anNVbmRlZmluZWQoKTsKIH0KIApAQCAtMjQ4LDggKzI3MCwxMyBAQCBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1vZHVsZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBqcwogICAgIFVSTCBiYXNlVVJMOwogICAgIFJlZlB0cjxKU0M6OlNjcmlwdEZl
dGNoZXI+IHNjcmlwdEZldGNoZXI7CiAgICAgaWYgKHNvdXJjZU9yaWdpbi5pc051bGwoKSkgewot
ICAgICAgICBiYXNlVVJMID0gbV9kb2N1bWVudC5iYXNlVVJMKCk7Ci0gICAgICAgIHNjcmlwdEZl
dGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9kb2N1bWVudC5jaGFyc2V0KCkp
OworICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAg
ICAgICAgICAgYmFzZVVSTCA9IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmJhc2VVUkwo
KTsKKyAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVh
dGUoZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuY2hhcnNldCgpKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGJhc2VVUkwgPSBtX2NvbnRleHQudXJsKCk7CisgICAgICAgICAg
ICBzY3JpcHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4pOworICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgYmFzZVVSTCA9IFVSTChVUkwoKSwgc291cmNlT3JpZ2luLnN0cmluZygpKTsKICAgICAg
ICAgaWYgKCFiYXNlVVJMLmlzVmFsaWQoKSkKQEAgLTI1NywxNCArMjg0LDE5IEBAIEpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6aW1wb3J0TW9kdWxlKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGpzCiAKICAgICAgICAgaWYgKHNvdXJjZU9yaWdpbi5mZXRjaGVyKCkpCiAg
ICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gc291cmNlT3JpZ2luLmZldGNoZXIoKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6
OmNyZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7CisKKyAgICAgICAgaWYgKCFzY3JpcHRGZXRj
aGVyKSB7CisgICAgICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVu
dCkKKyAgICAgICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6
Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmNoYXJzZXQoKSk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZl
dGNoZXI6OmNyZWF0ZShGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luKTsKKyAg
ICAgICAgfQogICAgIH0KICAgICBBU1NFUlQoYmFzZVVSTC5pc1ZhbGlkKCkpOwogICAgIEFTU0VS
VChzY3JpcHRGZXRjaGVyKTsKIAogICAgIGF1dG8gc3BlY2lmaWVyID0gbW9kdWxlTmFtZS0+dmFs
dWUoanNHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNp
ZmllcihtX2RvY3VtZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVzdWx0ID0g
cmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2NvbnRleHQsIG1fb3duZXJUeXBlLCBzcGVjaWZpZXIs
IGJhc2VVUkwpOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4gcmVqZWN0UHJvbWlz
ZShnbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgcmVzdWx0LmVycm9yKCkpOwogCkBAIC0yODgsNjIg
KzMyMCwxMDcgQEAgSlNDOjpKU09iamVjdCogU2NyaXB0TW9kdWxlTG9hZGVyOjpjcmVhdGVJbXBv
cnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gbWV0YVByb3Bl
cnRpZXM7CiB9CiAKLXZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXImIGxvYWRlciwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gcHJv
bWlzZSkKK3ZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3Jp
cHRMb2FkZXImIG1vZHVsZVNjcmlwdExvYWRlciwgVVJMJiYgc291cmNlVVJMLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiBwcm9taXNlKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0
CiAKLSAgICBVUkwgc291cmNlVVJMID0gbG9hZGVyLnNvdXJjZVVSTCgpOwotICAgIGlmICghbV9s
b2FkZXJzLnJlbW92ZSgmbG9hZGVyKSkKKyAgICBpZiAoIW1fbG9hZGVycy5yZW1vdmUoJm1vZHVs
ZVNjcmlwdExvYWRlcikpCiAgICAgICAgIHJldHVybjsKLSAgICBsb2FkZXIuY2xlYXJDbGllbnQo
KTsKKyAgICBtb2R1bGVTY3JpcHRMb2FkZXIuY2xlYXJDbGllbnQoKTsKIAotICAgIGF1dG8mIGNh
Y2hlZFNjcmlwdCA9ICpsb2FkZXIuY2FjaGVkU2NyaXB0KCk7CisgICAgaWYgKG1fb3duZXJUeXBl
ID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgYXV0byYgbG9hZGVyID0gc3RhdGlj
X2Nhc3Q8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVyKTsKKyAg
ICAgICAgYXV0byYgY2FjaGVkU2NyaXB0ID0gKmxvYWRlci5jYWNoZWRTY3JpcHQoKTsKIAotICAg
IGlmIChjYWNoZWRTY3JpcHQucmVzb3VyY2VFcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7Ci0g
ICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxv
YWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iX3MpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LnJlc291cmNl
RXJyb3IoKS5pc0FjY2Vzc0NvbnRyb2woKSkgeworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdh
dGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2Fz
RXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2lu
IFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KIAotICAgIGlmIChjYWNoZWRTY3JpcHQuZXJyb3JPY2N1cnJlZCgpKSB7Ci0gICAgICAg
IHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKCpwcm9taXNlLCBNb2R1bGVGZXRjaEZhaWx1
cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9z
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC5lcnJv
ck9jY3VycmVkKCkpIHsKKyAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9y
KHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBv
cnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CiAKLSAgICBpZiAoY2FjaGVkU2NyaXB0Lndhc0NhbmNlbGVkKCkpIHsKLSAgICAg
ICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoKnByb21pc2UsIE1vZHVsZUZldGNoRmFp
bHVyZUtpbmQ6Oldhc0NhbmNlbGVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBpcyBjYW5j
ZWxlZC4iX3MpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoY2FjaGVkU2Ny
aXB0Lndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29y
a0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVk
LCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4iX3MpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3Vw
cG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBl
KCkpKSB7Ci0gICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L3dlYmFwcGFwaXMuaHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0Ci0gICAgICAgIC8v
IFRoZSByZXN1bHQgb2YgZXh0cmFjdGluZyBhIE1JTUUgdHlwZSBmcm9tIHJlc3BvbnNlJ3MgaGVh
ZGVyIGxpc3QgKGlnbm9yaW5nIHBhcmFtZXRlcnMpIGlzIG5vdCBhIEphdmFTY3JpcHQgTUlNRSB0
eXBlLgotICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNz
aWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFz
dCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEg
Y29ycmVjdCBNSU1FIHR5cGUuCi0gICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1h
a2VTdHJpbmcoIiciLCBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpLCAiJyBpcyBu
b3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iKSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CisgICAgICAgIGlmICghTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0
TUlNRVR5cGUoY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSkpIHsKKyAgICAgICAg
ICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMu
aHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0CisgICAgICAgICAgICAvLyBUaGUgcmVz
dWx0IG9mIGV4dHJhY3RpbmcgYSBNSU1FIHR5cGUgZnJvbSByZXNwb25zZSdzIGhlYWRlciBsaXN0
IChpZ25vcmluZyBwYXJhbWV0ZXJzKSBpcyBub3QgYSBKYXZhU2NyaXB0IE1JTUUgdHlwZS4KKyAg
ICAgICAgICAgIC8vIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGZldGNoaW5nIGEgY2xhc3NpYyBz
Y3JpcHQgZG9lcyBub3QgaW5jbHVkZSBNSU1FIHR5cGUgY2hlY2tpbmcuIEluIGNvbnRyYXN0LCBt
b2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwgdG8gbG9hZCBpZiB0aGV5IGFyZSBub3Qgb2YgYSBjb3Jy
ZWN0IE1JTUUgdHlwZS4KKyAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1h
a2VTdHJpbmcoIiciLCBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpLCAiJyBpcyBu
b3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iKSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXV0byogcGFyYW1ldGVycyA9IGxvYWRlci5wYXJh
bWV0ZXJzKCkpIHsKKyAgICAgICAgICAgIGlmICghbWF0Y2hJbnRlZ3JpdHlNZXRhZGF0YShjYWNo
ZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkgeworICAgICAgICAgICAgICAgIHBy
b21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIkNhbm5vdCBsb2FkIHNjcmlwdCAi
LCBpbnRlZ3JpdHlNaXNtYXRjaERlc2NyaXB0aW9uKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+
aW50ZWdyaXR5KCkpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgVVJMIHJlc3BvbnNlVVJMID0gY2FjaGVkU2NyaXB0LnJlc3Bv
bnNlKCkudXJsKCk7CisgICAgICAgIC8vIElmIHdlIGRvIG5vdCBoYXZlIHJlZGlyZWN0aW9uLCB3
ZSBtdXN0IHJlc2VydmUgdGhlIHNvdXJjZSBVUkwncyBmcmFnbWVudCBleHBsaWNpdGx5IGhlcmUg
c2luY2UgUmVzb3VyY2VSZXNwb25zZTo6dXJsKCkgaXMgdGhlIG9uZSB3aGVuIHdlIGZpcnN0IGNh
Y2hlIGl0IHRvIE1lbW9yeUNhY2hlLgorICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNr
IGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODQyMAorICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNDkwCisgICAgICAgIGlmICghY2FjaGVk
U2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpICYmIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJj
ZSgpICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgeworICAgICAg
ICAgICAgaWYgKHNvdXJjZVVSTC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkKKyAgICAgICAgICAg
ICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIoc291cmNlVVJMLmZyYWdtZW50
SWRlbnRpZmllcigpKTsKKyAgICAgICAgfQorCisgICAgICAgIG1fcmVxdWVzdFVSTFRvUmVzcG9u
c2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwgV1RGTW92ZShyZXNwb25zZVVSTCkpOwor
ICAgICAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmpl
Y3QmIGpzR2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpKU1NvdXJjZUNv
ZGU6OmNyZWF0ZShqc0dsb2JhbE9iamVjdC52bSgpLAorICAgICAgICAgICAgICAgIEpTQzo6U291
cmNlQ29kZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyAmY2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3Vy
Y2VDb2RlKCkgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8mIGxv
YWRlciA9IHN0YXRpY19jYXN0PFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciY+KG1vZHVsZVNjcmlw
dExvYWRlcik7CisgICAgICAgIGF1dG8mIHdvcmtlclNjcmlwdExvYWRlciA9IGxvYWRlci5zY3Jp
cHRMb2FkZXIoKTsKIAotICAgIGlmIChhdXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRl
cnMoKSkgewotICAgICAgICBpZiAoIW1hdGNoSW50ZWdyaXR5TWV0YWRhdGEoY2FjaGVkU2NyaXB0
LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpIHsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVj
dChUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIkNhbm5vdCBsb2FkIHNjcmlwdCAiLCBpbnRlZ3JpdHlN
aXNtYXRjaERlc2NyaXB0aW9uKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkp
KSk7CisgICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpIHsKKyAgICAgICAg
ICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZXJyb3IoKS5pc0FjY2Vzc0NvbnRyb2woKSkgewor
ICAgICAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2UuZ2V0
KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJDcm9zcy1vcmlnaW4gc2Ny
aXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4i
X3MpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgaWYgKHdvcmtlclNjcmlwdExvYWRlci5lcnJvcigpLmlzQ2FuY2VsbGF0aW9uKCkpIHsKKyAg
ICAgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgp
LCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZCwgIkltcG9ydGluZyBhIG1vZHVs
ZSBzY3JpcHQgaXMgY2FuY2VsZWQuIl9zKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHBy
b21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRp
bmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9Ci0gICAgfQogCi0gICAgVVJMIHJlc3BvbnNlVVJMID0gY2FjaGVkU2NyaXB0LnJlc3Bv
bnNlKCkudXJsKCk7Ci0gICAgLy8gSWYgd2UgZG8gbm90IGhhdmUgcmVkaXJlY3Rpb24sIHdlIG11
c3QgcmVzZXJ2ZSB0aGUgc291cmNlIFVSTCdzIGZyYWdtZW50IGV4cGxpY2l0bHkgaGVyZSBzaW5j
ZSBSZXNvdXJjZVJlc3BvbnNlOjp1cmwoKSBpcyB0aGUgb25lIHdoZW4gd2UgZmlyc3QgY2FjaGUg
aXQgdG8gTWVtb3J5Q2FjaGUuCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVu
dHMgdGhyb3VnaCByZWRpcmVjdGlvbnMuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1ODQyMAotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTA0OTAKLSAgICBpZiAoIWNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlv
bnMoKSAmJiBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5zb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3Bv
bnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKLSAgICAgICAgaWYgKHNvdXJjZVVSTC5oYXNG
cmFnbWVudElkZW50aWZpZXIoKSkKLSAgICAgICAgICAgIHJlc3BvbnNlVVJMLnNldEZyYWdtZW50
SWRlbnRpZmllcihzb3VyY2VVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAgIH0KKyAgICAg
ICAgaWYgKCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3
b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICAgICAgLy8g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2Zl
dGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKKyAgICAgICAgICAgIC8vIFRoZSByZXN1bHQgb2Yg
ZXh0cmFjdGluZyBhIE1JTUUgdHlwZSBmcm9tIHJlc3BvbnNlJ3MgaGVhZGVyIGxpc3QgKGlnbm9y
aW5nIHBhcmFtZXRlcnMpIGlzIG5vdCBhIEphdmFTY3JpcHQgTUlNRSB0eXBlLgorICAgICAgICAg
ICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBk
b2VzIG5vdCBpbmNsdWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBz
Y3JpcHRzIHdpbGwgZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlN
RSB0eXBlLgorICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmlu
ZygiJyIsIHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBh
IHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQogCi0gICAgbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcC5hZGQoc291cmNlVVJM
LnN0cmluZygpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSk7Ci0gICAgcHJvbWlzZS0+cmVzb2x2ZVdp
dGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewotICAg
ICAgICByZXR1cm4gSlNDOjpKU1NvdXJjZUNvZGU6OmNyZWF0ZShqc0dsb2JhbE9iamVjdC52bSgp
LAotICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNo
ZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5z
Y3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUoKSB9KTsKLSAgICB9KTsKKyAgICAgICAgVVJM
IHJlc3BvbnNlVVJMID0gd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCk7CisKKyAgICAg
ICAgLy8gSWYgd2UgZG8gbm90IGhhdmUgcmVkaXJlY3Rpb24sIHdlIG11c3QgcmVzZXJ2ZSB0aGUg
c291cmNlIFVSTCdzIGZyYWdtZW50IGV4cGxpY2l0bHkgaGVyZSBzaW5jZSBSZXNvdXJjZVJlc3Bv
bnNlOjp1cmwoKSBpcyB0aGUgb25lIHdoZW4gd2UgZmlyc3QgY2FjaGUgaXQgdG8gTWVtb3J5Q2Fj
aGUuCisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJhY2sgZnJhZ21lbnRzIHRocm91Z2gg
cmVkaXJlY3Rpb25zLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU4NDIwCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTA0OTAKKyAgICAgICAgaWYgKCF3b3JrZXJTY3JpcHRMb2FkZXIuaXNSZWRp
cmVjdGVkKCkgJiYgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkgIT0gUmVzb3Vy
Y2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7CisgICAgICAgICAgICBpZiAoc291
cmNlVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIHJlc3BvbnNl
VVJMLnNldEZyYWdtZW50SWRlbnRpZmllcihzb3VyY2VVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkp
OworICAgICAgICB9CisKKyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcC5hZGQo
c291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7CisgICAgICAgIHByb21pc2UtPnJlc29s
dmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QpIHsK
KyAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2Jq
ZWN0LnZtKCksCisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291cmNl
Q29kZSB7IHdvcmtlclNjcmlwdExvYWRlci5zY3JpcHQoKSwgV1RGTW92ZShyZXNwb25zZVVSTCks
IHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlw
dEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOworICAgICAgICB9KTsKKyAgICB9CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgK
aW5kZXggZGUyOWQyZjRiZjA5NmI2MGMzNjk5ODAzMTZjMTQ4NmIyODJhYmYwOS4uZGYzNGQ1NTFh
MTFjZDk4ZjRlMjM2YTJhYTFmNDgyNzlkOTY0YzY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmgKQEAgLTI1LDggKzI1LDggQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCIKLSNpbmNs
dWRlICJDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJNb2R1bGVT
Y3JpcHRMb2FkZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQ1LDE2ICs0NSwxNyBAQCBj
bGFzcyBTb3VyY2VPcmlnaW47CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7CiAKLWNsYXNzIFNjcmlwdE1vZHVsZUxvYWRlciBmaW5hbCA6IHByaXZhdGUgQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlciBmaW5hbCA6
IHByaXZhdGUgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShTY3JpcHRNb2R1bGVMb2FkZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoRG9jdW1lbnQmKTsKKyAgICBlbnVt
IGNsYXNzIE93bmVyVHlwZSA6IHVpbnQ4X3QgeyBEb2N1bWVudCwgV29ya2VyT3JXb3JrbGV0IH07
CisgICAgZXhwbGljaXQgU2NyaXB0TW9kdWxlTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBPd25lclR5cGUpOwogICAgIH5TY3JpcHRNb2R1bGVMb2FkZXIoKTsKIAotICAgIERvY3VtZW50
JiBkb2N1bWVudCgpIHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KCkgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAgICBKU0M6OklkZW50
aWZpZXIgcmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlcios
IEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXks
IEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKICAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBwYXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUg
c2NyaXB0RmV0Y2hlcik7CkBAIC02MywxMyArNjQsMTUgQEAgY2xhc3MgU2NyaXB0TW9kdWxlTG9h
ZGVyIGZpbmFsIDogcHJpdmF0ZSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgewogICAg
IEpTQzo6SlNPYmplY3QqIGNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTTW9kdWxl
UmVjb3JkKiwgSlNDOjpKU1ZhbHVlKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIG5vdGlmeUZpbmlz
aGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciYsIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+KSBm
aW5hbDsKKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYsIFVSTCYm
LCBSZWY8RGVmZXJyZWRQcm9taXNlPikgZmluYWw7CisKICAgICBVUkwgbW9kdWxlVVJMKEpTQzo6
SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpTVmFsdWUpOwogICAgIFVSTCByZXNwb25zZVVSTEZyb21S
ZXF1ZXN0VVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpTVmFsdWUpOwogCi0gICAgRG9j
dW1lbnQmIG1fZG9jdW1lbnQ7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgbV9jb250ZXh0
OwogICAgIEhhc2hNYXA8U3RyaW5nLCBVUkw+IG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXA7
Ci0gICAgSGFzaFNldDxSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPj4gbV9sb2FkZXJzOwor
ICAgIEhhc2hTZXQ8UmVmPE1vZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9hZGVyczsKKyAgICBPd25l
clR5cGUgbV9vd25lclR5cGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKaW5kZXggYzcwNDYyNmZi
NzMzZGI0NzJiZGE1MDIzNjI0MWE2ZTc0MGUyNzgyYi4uMTBmYTdlOGI0NDljOGI4NDllYjM3Y2Mx
ZjJjODY2ZmE4OTNhYWQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0U291cmNlQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dFNvdXJjZUNvZGUuaApAQCAtNTcsNyArNTcsNyBAQCBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlIHsK
ICAgICB7CiAgICAgfQogCi0gICAgU2NyaXB0U291cmNlQ29kZShjb25zdCBTdHJpbmcmIHNvdXJj
ZSwgVVJMJiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIEpTQzo6U291
cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUsIFJlZjxDYWNoZWRTY3JpcHRGZXRjaGVy
PiYmIHNjcmlwdEZldGNoZXIpCisgICAgU2NyaXB0U291cmNlQ29kZShjb25zdCBTdHJpbmcmIHNv
dXJjZSwgVVJMJiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIEpTQzo6
U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUsIFJlZjxKU0M6OlNjcmlwdEZldGNo
ZXI+JiYgc2NyaXB0RmV0Y2hlcikKICAgICAgICAgOiBtX3Byb3ZpZGVyKEpTQzo6U3RyaW5nU291
cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIEpTQzo6U291cmNlT3JpZ2luIHsgdXJsLCBXVEZN
b3ZlKHNjcmlwdEZldGNoZXIpIH0sIHVybC5zdHJpbmcoKSwgc3RhcnRQb3NpdGlvbiwgc291cmNl
VHlwZSkpCiAgICAgICAgICwgbV9jb2RlKG1fcHJvdmlkZXIuY29weVJlZigpLCBzdGFydFBvc2l0
aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2Vk
SW50KCkpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQyNzQ5M2E2MDE3ZjgwN2Qw
MDFkZmY4MzZmNGYyNTE3OGExNmUyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTAsMCArMSw4NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXIuaCIKKworI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKKyNp
bmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5j
bHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJP
cHRpb25zLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlw
dE1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKyNpbmNsdWRl
ICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcj4g
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgV29ya2VyU2NyaXB0RmV0Y2hlciYg
c2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJz
KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihj
bGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1vdmUocGFyYW1ldGVycykpKTsKK30K
KworV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwg
V29ya2VyU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFy
YW1ldGVycz4mJiBwYXJhbWV0ZXJzKQorICAgIDogTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwg
cHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RGTW92ZShwYXJhbWV0ZXJzKSkKKyAgICAsIG1fc2Ny
aXB0TG9hZGVyKFdvcmtlclNjcmlwdExvYWRlcjo6Y3JlYXRlKCkpCit7Cit9CisKK1dvcmtlck1v
ZHVsZVNjcmlwdExvYWRlcjo6fldvcmtlck1vZHVsZVNjcmlwdExvYWRlcigpCit7CisgICAgbV9z
Y3JpcHRMb2FkZXItPmNhbmNlbCgpOworfQorCitib29sIFdvcmtlck1vZHVsZVNjcmlwdExvYWRl
cjo6bG9hZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBVUkwmJiBzb3VyY2VVUkwp
Cit7CisgICAgbV9zb3VyY2VVUkwgPSBXVEZNb3ZlKHNvdXJjZVVSTCk7CisKKyAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291cmNlVVJMIH07CisKKyAgICBGZXRjaE9wdGlvbnMgZmV0
Y2hPcHRpb25zOworICAgIGZldGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpD
b3JzOworICAgIGZldGNoT3B0aW9ucy5jYWNoZSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1
bHQ7CisgICAgZmV0Y2hPcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6
Rm9sbG93OworICAgIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9IHN0YXRpY19jYXN0PFdvcmtl
clNjcmlwdEZldGNoZXImPihzY3JpcHRGZXRjaGVyKCkpLmNyZWRlbnRpYWxzKCk7CisgICAgYXV0
byBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IGNvbnRleHQuc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1l
bnQ6OkVuZm9yY2VDaGlsZFNyY0RpcmVjdGl2ZTsKKworICAgIFN0cmluZyB0YXNrTW9kZSA9ICJs
b2FkTW9kdWxlc0luV29ya2VyT3JXb3JrbGV0TW9kZSJfczsKKyAgICBtX3NjcmlwdExvYWRlci0+
bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZmV0
Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3Jr
ZXJzTW9kZTo6QWxsLCAqdGhpcywgV1RGTW92ZSh0YXNrTW9kZSkpOworICAgIHJldHVybiB0cnVl
OworfQorCit2b2lkIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQoKQor
eworICAgIEFTU0VSVChtX3Byb21pc2UpOworCisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyk7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+bm90aWZ5
RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9zb3VyY2VVUkwpLCBtX3Byb21pc2UucmVsZWFzZU5v
bk51bGwoKSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjEwMDgwZWU5MzFiZmIwYjMz
YTlmNTQ3M2IyOTdjYTJkYzJlNDc1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0wLDAgKzEsNjQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRl
ci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRGVmZXJyZWRQcm9taXNlOworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBNb2R1
bGVGZXRjaFBhcmFtZXRlcnM7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3Mg
TW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OworY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyOworCitj
bGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxlU2NyaXB0
TG9hZGVyLCBwcml2YXRlIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCB7CitwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI+IGNyZWF0ZShNb2R1bGVTY3JpcHRM
b2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiwgUmVm
UHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisKKyAgICB2aXJ0dWFsIH5Xb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXIoKTsKKworICAgIGJvb2wgbG9hZChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgVVJMJiYgc291cmNlVVJMKTsKKworICAgIFdvcmtlclNjcmlwdExvYWRlciYgc2NyaXB0TG9h
ZGVyKCkgeyByZXR1cm4gbV9zY3JpcHRMb2FkZXIuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBX
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJy
ZWRQcm9taXNlJiwgV29ya2VyU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFt
ZXRlcnM+JiYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZywg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgbm90aWZ5RmluaXNo
ZWQoKSBmaW5hbDsKKworICAgIFJlZjxXb3JrZXJTY3JpcHRMb2FkZXI+IG1fc2NyaXB0TG9hZGVy
OworICAgIFVSTCBtX3NvdXJjZVVSTDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NmI1NGVmODk0YjUzM2VhZmNlYmMxYTE0YmYyNzZhMDNlY2JhMTBiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RmV0Y2hl
ci5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkxvYWRhYmxlU2NyaXB0LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0RmV0
Y2hlci5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFNjcmlwdDsK
K2NsYXNzIERvY3VtZW50OworCitjbGFzcyBXb3JrZXJTY3JpcHRGZXRjaGVyIGZpbmFsIDogcHVi
bGljIEpTQzo6U2NyaXB0RmV0Y2hlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXb3JrZXJT
Y3JpcHRGZXRjaGVyPiBjcmVhdGUoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFs
cykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtlclNjcmlwdEZldGNo
ZXIoY3JlZGVudGlhbHMpKTsKKyAgICB9CisKKyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxz
IGNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gbV9jcmVkZW50aWFsczsgfQorCisgICAgdm9p
ZCBub3RpZnlMb2FkQ29tcGxldGVkKFVuaXF1ZWRTdHJpbmdJbXBsJiBtb2R1bGVLZXkpCisgICAg
eworICAgICAgICBtX21vZHVsZUtleSA9ICZtb2R1bGVLZXk7CisgICAgICAgIG1faXNMb2FkZWQg
PSB0cnVlOworICAgIH0KKworICAgIHZvaWQgbm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlw
dDo6RXJyb3ImJiBlcnJvcikKKyAgICB7CisgICAgICAgIG1fZXJyb3IgPSBXVEZNb3ZlKGVycm9y
KTsKKyAgICAgICAgbV9pc0xvYWRlZCA9IHRydWU7CisgICAgfQorCisgICAgdm9pZCBub3RpZnlM
b2FkV2FzQ2FuY2VsZWQoKQorICAgIHsKKyAgICAgICAgbV93YXNDYW5jZWxlZCA9IHRydWU7Cisg
ICAgICAgIG1faXNMb2FkZWQgPSB0cnVlOworICAgIH0KKworICAgIGJvb2wgaXNMb2FkZWQoKSBj
b25zdCB7IHJldHVybiBtX2lzTG9hZGVkOyB9CisgICAgT3B0aW9uYWw8TG9hZGFibGVTY3JpcHQ6
OkVycm9yPiBlcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3I7IH0KKyAgICBib29sIHdhc0Nh
bmNlbGVkKCkgY29uc3QgeyByZXR1cm4gbV93YXNDYW5jZWxlZDsgfQorICAgIFVuaXF1ZWRTdHJp
bmdJbXBsKiBtb2R1bGVLZXkoKSBjb25zdCB7IHJldHVybiBtX21vZHVsZUtleS5nZXQoKTsgfQor
Citwcm90ZWN0ZWQ6CisgICAgV29ya2VyU2NyaXB0RmV0Y2hlcihGZXRjaE9wdGlvbnM6OkNyZWRl
bnRpYWxzIGNyZWRlbnRpYWxzKQorICAgICAgICA6IG1fY3JlZGVudGlhbHMoY3JlZGVudGlhbHMp
CisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxz
IG1fY3JlZGVudGlhbHM7CisgICAgUmVmUHRyPFVuaXF1ZWRTdHJpbmdJbXBsPiBtX21vZHVsZUtl
eTsKKyAgICBPcHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6RXJyb3I+IG1fZXJyb3I7CisgICAgYm9v
bCBtX3dhc0NhbmNlbGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNMb2FkZWQgeyBmYWxzZSB9
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggNDRmOWQwZWE1MDUyYzAxOWU3OGJhZWJlODA4YjhmMmM3NWQzMTk5NS4uM2I0MjUzODQ4MDAy
YTUxZDI5MDkyYzUxYTBkYTU4NzlkNTQyMThhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC02MTUsNyArNjE1LDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3Qg
U2V0dGluZ3MmIHNldHRpbmdzLCBjb25zdCBVUkwmIHVybCwgRG9jdW0KICAgICAsIG1fZG9jdW1l
bnRDcmVhdGlvblRpbWUoTW9ub3RvbmljVGltZTo6bm93KCkpCiAjZW5kaWYKICAgICAsIG1fc2Ny
aXB0UnVubmVyKG1ha2VVbmlxdWU8U2NyaXB0UnVubmVyPigqdGhpcykpCi0gICAgLCBtX21vZHVs
ZUxvYWRlcihtYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMpKQorICAgICwgbV9t
b2R1bGVMb2FkZXIobWFrZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KCp0aGlzLCBTY3JpcHRN
b2R1bGVMb2FkZXI6Ok93bmVyVHlwZTo6RG9jdW1lbnQpKQogI2lmIEVOQUJMRShYU0xUKQogICAg
ICwgbV9hcHBseVBlbmRpbmdYU0xUcmFuc2Zvcm1zVGltZXIoKnRoaXMsICZEb2N1bWVudDo6YXBw
bHlQZW5kaW5nWFNMVHJhbnNmb3Jtc1RpbWVyRmlyZWQpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhj
ZXB0aW9uQ29kZS5oCmluZGV4IGY2YjU1OGVhODJkNzkzNjhlNjFhZGIwNjBjZjBiNGVhMWRiZWEy
MGMuLjE3ZGU3NDM0NzJmNzczMWIwM2M5OGZlY2U3YjFlYjFiOTYwMWU3N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V4Y2VwdGlvbkNvZGUuaApAQCAtNjEsNiArNjEsNyBAQCBlbnVtIEV4Y2VwdGlvbkNvZGUg
ewogICAgIC8vIFNpbXBsZSBleGNlcHRpb25zIChodHRwczovL2hleWNhbS5naXRodWIuaW8vd2Vi
aWRsLyNpZGwtZXhjZXB0aW9ucykuCiAgICAgUmFuZ2VFcnJvciwKICAgICBUeXBlRXJyb3IsCisg
ICAgSlNTeW50YXhFcnJvciwgLy8gRGlmZmVyZW50IGZyb20gRE9NIFNZTlRBWF9FUlIuCiAKICAg
ICAvLyBOb24tc3RhbmRhcmQgZXJyb3IuCiAgICAgU3RhY2tPdmVyZmxvd0Vycm9yLApAQCAtMTEx
LDYgKzExMiw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RXhjZXB0
aW9uQ29kZT4gewogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6Ok5vdEFsbG93ZWRFcnJvciwK
ICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpSYW5nZUVycm9yLAogICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGU6OlR5cGVFcnJvciwKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpKU1N5
bnRheEVycm9yLAogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OlN0YWNrT3ZlcmZsb3dFcnJv
ciwKICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpFeGlzdGluZ0V4Y2VwdGlvbkVycm9yCiAg
ICAgPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlw
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCmluZGV4
IDlhMjVjMTY1ODhlZWNhZDY3OGZiOTExZWM4NjIyZjQyNDI1OTJiNWEuLjQ4ZWMwODUxYTQ1N2Q5
YmE0NzQ3M2ZlYzI4ZDdiNDkzMTJiNzg4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRh
YmxlTW9kdWxlU2NyaXB0LmNwcApAQCAtODgsMTYgKzg4LDQgQEAgdm9pZCBMb2FkYWJsZU1vZHVs
ZVNjcmlwdDo6ZXhlY3V0ZShTY3JpcHRFbGVtZW50JiBzY3JpcHRFbGVtZW50KQogICAgIHNjcmlw
dEVsZW1lbnQuZXhlY3V0ZU1vZHVsZVNjcmlwdCgqdGhpcyk7CiB9CiAKLXZvaWQgTG9hZGFibGVN
b2R1bGVTY3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHJvb3RVUkwp
Ci17Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgZnJh
bWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoKnRoaXMsIHJvb3RVUkwuc3RyaW5nKCksIG1f
cGFyYW1ldGVycy5jb3B5UmVmKCkpOwotfQotCi12b2lkIExvYWRhYmxlTW9kdWxlU2NyaXB0Ojps
b2FkKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29k
ZSkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAgICAgICBm
cmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywgc291cmNlQ29kZSk7Ci19Ci0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgKaW5kZXggYmI3OTk1
NGQ3Yjk5YjBlZDA2YmZlNTVlZjg1NGVjY2UyMWYzNTg3Ny4uZDI1MzU5NjNmNjQ4YjAyYThhMDFm
ZDYzYmIxZTM4MTM4NmNlZTQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRh
YmxlTW9kdWxlU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmgKQEAgLTUwLDE1ICs1MCwxNCBAQCBjbGFzcyBMb2FkYWJsZU1vZHVsZVNjcmlwdCBm
aW5hbCA6IHB1YmxpYyBMb2FkYWJsZVNjcmlwdCB7CiAKICAgICB2b2lkIHNldEVycm9yKEVycm9y
JiYpOwogCi0gICAgdm9pZCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJMJiByb290VVJMKTsKLSAg
ICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7Ci0KICAgICB2
b2lkIG5vdGlmeUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmluZ0ltcGwmKTsKICAgICB2b2lkIG5v
dGlmeUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yJiYpOwogICAgIHZvaWQgbm90aWZ5
TG9hZFdhc0NhbmNlbGVkKCk7CiAKICAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KCkg
Y29uc3QgeyByZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0KIAorICAgIE1vZHVsZUZldGNoUGFy
YW1ldGVycyYgcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsgfQorCiBw
cml2YXRlOgogICAgIExvYWRhYmxlTW9kdWxlU2NyaXB0KGNvbnN0IFN0cmluZyYgbm9uY2UsIGNv
bnN0IFN0cmluZyYgaW50ZWdyaXR5LCBSZWZlcnJlclBvbGljeSwgY29uc3QgU3RyaW5nJiBjcm9z
c09yaWdpbk1vZGUsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQXRvbVN0cmluZyYgaW5p
dGlhdG9yTmFtZSwgYm9vbCBpc0luVXNlckFnZW50U2hhZG93VHJlZSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCAwNTc1OGI2MDBjNzUyMmI0N2YzNjRiYTZhMThkMzVm
MTczMTEwN2Y5Li41ZTk5ZjBmNTc3N2IzYjIxNThkZDBmYTRiYzM4Mjc3NmNkYjM0ODEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVk
ZSAiTG9hZGFibGVDbGFzc2ljU2NyaXB0LmgiCiAjaW5jbHVkZSAiTG9hZGFibGVNb2R1bGVTY3Jp
cHQuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0
Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGVuZGluZ1NjcmlwdC5oIgogI2luY2x1ZGUgIlJ1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlNWR1NjcmlwdEVsZW1lbnQuaCIK
QEAgLTM1MSw4ICszNTIsMTEgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2Ny
aXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKICAgICAgICAgICAg
IHNjcmlwdENoYXJzZXQoKSwKICAgICAgICAgICAgIG1fZWxlbWVudC5sb2NhbE5hbWUoKSwKICAg
ICAgICAgICAgIG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgpKTsKLSAgICAgICAg
c2NyaXB0LT5sb2FkKG1fZWxlbWVudC5kb2N1bWVudCgpLCBtb2R1bGVTY3JpcHRSb290VVJMKTsK
ICAgICAgICAgbV9sb2FkYWJsZVNjcmlwdCA9IFdURk1vdmUoc2NyaXB0KTsKKyAgICAgICAgaWYg
KGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkgeworICAgICAgICAg
ICAgYXV0byYgc2NyaXB0ID0gZG93bmNhc3Q8TG9hZGFibGVNb2R1bGVTY3JpcHQ+KCptX2xvYWRh
YmxlU2NyaXB0LmdldCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxl
U2NyaXB0KHNjcmlwdCwgbW9kdWxlU2NyaXB0Um9vdFVSTC5zdHJpbmcoKSwgbWFrZVJlZihzY3Jp
cHQucGFyYW1ldGVycygpKSk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCkBAIC0zNjcsOCArMzcxLDkgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxl
U2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikKICAgICBpZiAo
IWNvbnRlbnRTZWN1cml0eVBvbGljeS5hbGxvd0lubGluZVNjcmlwdChtX2VsZW1lbnQuZG9jdW1l
bnQoKS51cmwoKS5zdHJpbmcoKSwgbV9zdGFydExpbmVOdW1iZXIsIHNvdXJjZUNvZGUuc291cmNl
KCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpLCBoYXNLbm93bk5vbmNlKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgc2NyaXB0LT5sb2FkKG1fZWxlbWVudC5kb2N1bWVudCgpLCBzb3Vy
Y2VDb2RlKTsKICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAgIGlm
IChhdXRvKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpCisgICAgICAgIGZy
YW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KGRvd25jYXN0PExvYWRhYmxlTW9kdWxlU2Ny
aXB0PigqbV9sb2FkYWJsZVNjcmlwdC5nZXQoKSksIHNvdXJjZUNvZGUpOwogICAgIHJldHVybiB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKaW5k
ZXggMjcxN2M4NjFjNzRiMGYyYWViY2RlNDA4NzAwZTJhOWEwMzczNzU5NS4uMWI2NTMyYzNiMGVh
YTgwZDliZDQ2YzZkNDMyMTM2OTYyMWMwMTliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
aHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMTAxLDEwICsxMDEsMTAgQEAgVGhyZWFkYWJsZUxvYWRl
ck9wdGlvbnMgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiB9
CiAKIAotUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiBj
bGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJP
cHRpb25zJiBvcHRpb25zLCBTdHJpbmcmJiByZWZlcnJlcikKK1JlZlB0cjxUaHJlYWRhYmxlTG9h
ZGVyPiBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgU3RyaW5nJiYg
cmVmZXJyZXIsIFN0cmluZyYmIHRhc2tNb2RlKQogewogICAgIGlmIChpczxXb3JrZXJHbG9iYWxT
Y29wZT4oY29udGV4dCkgfHwgKGlzPFdvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkgJiYgZG93
bmNhc3Q8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS53b3JrZXJPcldvcmtsZXRUaHJlYWQo
KSkpCi0gICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc3RhdGlj
X2Nhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmPihjb250ZXh0KSwgY2xpZW50LCBXb3Jr
ZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLCBXVEZN
b3ZlKHJlZmVycmVyKSk7CisgICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpj
cmVhdGUoc3RhdGljX2Nhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmPihjb250ZXh0KSwg
Y2xpZW50LCBXVEZNb3ZlKHRhc2tNb2RlKSwgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucywgV1RG
TW92ZShyZWZlcnJlcikpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbnVsbHB0cjsKICAg
ICBpZiAoaXM8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvVGhyZWFkYWJsZUxvYWRlci5oCmluZGV4IGMyYjI0NWMzZWJiOGJjOTMwZWY0ZDE3MmJhMTUw
OWExNzlmMWQ3YTYuLjFhYzcwNGI0YzNiNTBiMGZmZGEwMzQyOGMzY2U3ZGExNDk4ODI2MzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaApAQCAtNzQsNyArNzQsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocmVh
ZGFibGVMb2FkZXIpOwogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIHZvaWQgbG9hZFJlc291
cmNlU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVzb3VyY2VSZXF1ZXN0
JiYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9u
cyYpOwotICAgICAgICBzdGF0aWMgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIFJlc291cmNlUmVx
dWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYsIFN0cmluZyYmIHJlZmVycmVy
ID0gU3RyaW5nKCkpOworICAgICAgICBzdGF0aWMgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYsIFJl
c291cmNlUmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYsIFN0cmluZyYm
IHJlZmVycmVyID0gU3RyaW5nKCksIFN0cmluZyYmIHRhc2tNb2RlID0geyB9KTsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUlzRG9uZSgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lk
IGNhbmNlbCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcAppbmRleCBiZjZlMjc2YTM5
YzIzMTVmODg5MGM2MzMwMzI5ZDY0NGRmY2FlYWE1Li4wNGZkZjU4Mjc0M2ViOTczYjUyNWQ1NGM4
YThkOGYzN2Q4MjUyMGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCkBAIC03NCw2ICs3
NCw4IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lCiAgICAgLCBtX2lkZW50aWZpZXIoIndvcmtl
cjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSkK
ICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckdsb2JhbFNjb3BlUHJveHk6OmNyZWF0ZSgqdGhp
cykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50aW1lRmxhZ3MpCisgICAgLCBtX3R5cGUob3B0
aW9ucy50eXBlKQorICAgICwgbV9jcmVkZW50aWFscyhvcHRpb25zLmNyZWRlbnRpYWxzKQogewog
ICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7CiAgICAgaWYgKCFhZGRlZExpc3RlbmVyKSB7
CkBAIC0xMTcsMTAgKzExOSwxNSBAQCBFeGNlcHRpb25PcjxSZWY8V29ya2VyPj4gV29ya2VyOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpSdQogCiAgICAgRmV0
Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKICAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNoT3B0
aW9uczo6TW9kZTo6U2FtZU9yaWdpbjsKKyAgICBpZiAod29ya2VyLT5tX3R5cGUgPT0gV29ya2Vy
VHlwZTo6TW9kdWxlKQorICAgICAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSB3b3JrZXIt
Pm1fY3JlZGVudGlhbHM7CisgICAgZWxzZQorICAgICAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlh
bHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luOwogICAgIGZldGNoT3B0
aW9ucy5jYWNoZSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQ7CiAgICAgZmV0Y2hPcHRp
b25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93OwogICAgIGZldGNo
T3B0aW9ucy5kZXN0aW5hdGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OldvcmtlcjsK
LSAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwg
V1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQ
b2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsIHdvcmtlcik7CisgICAg
d29ya2VyLT5tX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1v
dmUocmVxdWVzdCksIFdURk1vdmUoZmV0Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5
RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZTo6QWxsLCB3b3JrZXIuZ2V0KCksIFdvcmtl
clJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworCiAgICAgcmV0dXJuIHdvcmtlcjsKIH0KIApAQCAt
MjE5LDcgKzIyNiwxMyBAQCB2b2lkIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQoKQogICAgIFJlZmVy
cmVyUG9saWN5IHJlZmVycmVyUG9saWN5ID0gUmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nOwog
ICAgIGlmIChhdXRvIHBvbGljeSA9IHBhcnNlUmVmZXJyZXJQb2xpY3kobV9zY3JpcHRMb2FkZXIt
PnJlZmVycmVyUG9saWN5KCksIFJlZmVycmVyUG9saWN5U291cmNlOjpIVFRQSGVhZGVyKSkKICAg
ICAgICAgcmVmZXJyZXJQb2xpY3kgPSAqcG9saWN5OwotICAgIG1fY29udGV4dFByb3h5LnN0YXJ0
V29ya2VyR2xvYmFsU2NvcGUobV9zY3JpcHRMb2FkZXItPnVybCgpLCBtX25hbWUsIGNvbnRleHQt
PnVzZXJBZ2VudChtX3NjcmlwdExvYWRlci0+dXJsKCkpLCBpc09ubGluZSwgbV9zY3JpcHRMb2Fk
ZXItPnNjcmlwdCgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIG1fc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBtX3dvcmtlckNyZWF0aW9u
VGltZSwgcmVmZXJyZXJQb2xpY3ksIG1fcnVudGltZUZsYWdzKTsKKworICAgIFVSTCByZXNwb25z
ZVVSTCA9IG1fc2NyaXB0TG9hZGVyLT5yZXNwb25zZVVSTCgpOworICAgIGlmICghbV9zY3JpcHRM
b2FkZXItPmlzUmVkaXJlY3RlZCgpICYmIG1fc2NyaXB0TG9hZGVyLT5yZXNwb25zZVNvdXJjZSgp
ICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgeworICAgICAgICBp
ZiAobV9zY3JpcHRMb2FkZXItPnVybCgpLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQorICAgICAg
ICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKG1fc2NyaXB0TG9hZGVyLT51
cmwoKS5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgfQorICAgIG1fY29udGV4dFByb3h5LnN0
YXJ0V29ya2VyR2xvYmFsU2NvcGUocmVzcG9uc2VVUkwsIG1fbmFtZSwgY29udGV4dC0+dXNlckFn
ZW50KHJlc3BvbnNlVVJMKSwgaXNPbmxpbmUsIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgY29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgbV93b3JrZXJDcmVhdGlvblRpbWUsIHJlZmVycmVyUG9s
aWN5LCBtX3R5cGUsIG1fY3JlZGVudGlhbHMsIG1fcnVudGltZUZsYWdzKTsKICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnNjcmlwdEltcG9ydGVkKCpjb250ZXh0LCBtX3NjcmlwdExvYWRl
ci0+aWRlbnRpZmllcigpLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXIuaAppbmRleCA1M2Y1ZTZmZmYyN2M5ZmEzZTVjMGUwMWYwZjZjNDJjNmNiNmY5
ZDBlLi4zOGE2MjNhOThkYmEzNWZmODAxM2NkNmZjOGM4NWM4MTAyMDUwMjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyLmgKQEAgLTI5LDkgKzI5LDExIEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgi
CiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50
aWFscy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiUG9zdE1lc3NhZ2VP
cHRpb25zLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVk
ZSAiV29ya2VyVHlwZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5o
PgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CkBAIC01NSw2ICs1Nyw4IEBAIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFj
dFdvcmtlciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBXb3JrCiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChXb3JrZXIpOwogcHVibGljOgogICAgIHN0cnVjdCBPcHRpb25zIHsK
KyAgICAgICAgV29ya2VyVHlwZSB0eXBlOworICAgICAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFs
cyBjcmVkZW50aWFsczsKICAgICAgICAgU3RyaW5nIG5hbWU7CiAgICAgfTsKICAgICBzdGF0aWMg
RXhjZXB0aW9uT3I8UmVmPFdvcmtlcj4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
SlNDOjpSdW50aW1lRmxhZ3MsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBPcHRpb25zJik7CkBA
IC03OSw2ICs4Myw4IEBAIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtl
ciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBXb3JrCiAgICAgdm9pZCBwb3N0VGFz
a1RvV29ya2VyR2xvYmFsU2NvcGUoRnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0
Jik+JiYpOwogI2VuZGlmCiAKKyAgICBXb3JrZXJUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXb3JrZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBjb25zdCBPcHRpb25zJik7CiAKQEAgLTExMiw2
ICsxMTgsOCBAQCBjbGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1
YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV29yawogI2lmIEVOQUJMRShXRUJfUlRDKQog
ICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3RyYW5zZm9ybWVyczsKICNlbmRpZgorICAgIFdvcmtlclR5
cGUgbV90eXBlIHsgV29ya2VyVHlwZTo6Q2xhc3NpYyB9OworICAgIEZldGNoUmVxdWVzdENyZWRl
bnRpYWxzIG1fY3JlZGVudGlhbHMgeyBGZXRjaFJlcXVlc3RDcmVkZW50aWFsczo6U2FtZU9yaWdp
biB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
aWRsCmluZGV4IDQ1ZDZhMDg2Nzg1NGVlNDA0ZGU3ZTdkMDEyNDhjZWJmNDRkY2E3ZWQuLjcwMjE3
OTZkZjUwNGFkZjhlNmI5NTg5YWNlOWYxNDQ4MjFmMjk1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5pZGwKQEAgLTM4LDYgKzM4LDggQEAKIH07CiAKIGRpY3Rpb25hcnkgV29ya2VyT3B0aW9u
cyB7CisgICAgV29ya2VyVHlwZSB0eXBlID0gImNsYXNzaWMiOworICAgIEZldGNoUmVxdWVzdENy
ZWRlbnRpYWxzIGNyZWRlbnRpYWxzID0gInNhbWUtb3JpZ2luIjsgLy8gY3JlZGVudGlhbHMgaXMg
b25seSB1c2VkIGlmIHR5cGUgaXMgIm1vZHVsZSIKICAgICBET01TdHJpbmcgbmFtZSA9ICIiOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRl
eCBkYmFiMzQ4ZTgwYzlkZTUwYmQyMTU3NzdhMTRhMzlhMGY3MGU0OWM3Li5jY2RlOTA5YzdjYjUy
ZTk3Nzc0YzViODE1ODIzZWJjYmJiMDcwZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNzQsNiArNzQsOCBAQCBXb3JrZXJHbG9iYWxTY29w
ZTo6V29ya2VyR2xvYmFsU2NvcGUoV29ya2VyVGhyZWFkVHlwZSB0eXBlLCBjb25zdCBXb3JrZXJQ
YXJhbWV0ZQogICAgICwgbV9wZXJmb3JtYW5jZShQZXJmb3JtYW5jZTo6Y3JlYXRlKHRoaXMsIHBh
cmFtcy50aW1lT3JpZ2luKSkKICAgICAsIG1fcmVmZXJyZXJQb2xpY3kocGFyYW1zLnJlZmVycmVy
UG9saWN5KQogICAgICwgbV9zZXR0aW5nc1ZhbHVlcyhwYXJhbXMuc2V0dGluZ3NWYWx1ZXMpCisg
ICAgLCBtX3dvcmtlclR5cGUocGFyYW1zLndvcmtlclR5cGUpCisgICAgLCBtX2NyZWRlbnRpYWxz
KHBhcmFtcy5jcmVkZW50aWFscykKIHsKICNpZiAhRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAg
ICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb25Qcm94eSk7CkBAIC0yNzQsNiArMjc2LDExIEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IFdvcmtlckdsb2JhbFNjb3BlOjppbXBvcnRTY3JpcHRzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiB1cmxzKQogewogICAgIEFTU0VSVChjb250ZW50U2VjdXJpdHlQb2xpY3ko
KSk7CiAKKyAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93b3Jr
ZXJzLmh0bWwjaW1wb3J0aW5nLXNjcmlwdHMtYW5kLWxpYnJhcmllcworICAgIC8vIDEuIElmIHdv
cmtlciBnbG9iYWwgc2NvcGUncyB0eXBlIGlzICJtb2R1bGUiLCB0aHJvdyBhIFR5cGVFcnJvciBl
eGNlcHRpb24uCisgICAgaWYgKG1fd29ya2VyVHlwZSA9PSBXb3JrZXJUeXBlOjpNb2R1bGUpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJpbXBvcnRTY3JpcHRzIGNhbm5v
dCBiZSB1c2VkIGlmIHdvZXJrZXIgdHlwZSBpcyBcIm1vZHVsZVwiIl9zIH07CisKICAgICBWZWN0
b3I8VVJMPiBjb21wbGV0ZWRVUkxzOwogICAgIGNvbXBsZXRlZFVSTHMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eSh1cmxzLnNpemUoKSk7CiAgICAgZm9yIChhdXRvJiBlbnRyeSA6IHVybHMpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCA0NmQ0OWQ5NGM1
MjM4ZTQ2ODhkMzk1ZDg3YzIwNjNlYjU3MjBkMWJmLi43NDc5NWY1YzBmOWEyYTM1ZDAwOTMwMTJh
ZDE4ZjU3ZTMxN2Y4MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5oCkBAIC0xMjMsNiArMTIzLDggQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJs
aWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgQmFzZTYKIAogICAg
IGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQogCisgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFs
cyBjcmVkZW50aWFscygpIGNvbnN0IHsgcmV0dXJuIG1fY3JlZGVudGlhbHM7IH0KKwogcHJvdGVj
dGVkOgogICAgIFdvcmtlckdsb2JhbFNjb3BlKFdvcmtlclRocmVhZFR5cGUsIGNvbnN0IFdvcmtl
clBhcmFtZXRlcnMmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYsIFdvcmtlclRocmVhZCYsIFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
KiwgU29ja2V0UHJvdmlkZXIqKTsKIApAQCAtMTYzLDggKzE2NSw2IEBAIGNsYXNzIFdvcmtlckds
b2JhbFNjb3BlIDogcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVi
bGljIEJhc2U2CiAgICAgbXV0YWJsZSBSZWZQdHI8V29ya2VyTG9jYXRpb24+IG1fbG9jYXRpb247
CiAgICAgbXV0YWJsZSBSZWZQdHI8V29ya2VyTmF2aWdhdG9yPiBtX25hdmlnYXRvcjsKIAotICAg
IHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyPiBtX3Njcmlw
dDsKLQogICAgIGJvb2wgbV9pc09ubGluZTsKICAgICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5OwogCkBAIC0xODcsNiArMTg3LDggQEAgY2xhc3MgV29y
a2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+
LCBwdWJsaWMgQmFzZTYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTVmFsdWVQb29sPiBtX2Nzc1Zh
bHVlUG9vbDsKICAgICBSZWZlcnJlclBvbGljeSBtX3JlZmVycmVyUG9saWN5OwogICAgIFNldHRp
bmdzOjpWYWx1ZXMgbV9zZXR0aW5nc1ZhbHVlczsKKyAgICBXb3JrZXJUeXBlIG1fd29ya2VyVHlw
ZTsKKyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIG1fY3JlZGVudGlhbHM7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGVQcm94eS5oCmluZGV4IDQwMDAzYzNlMDEwOTk5NjBmNjQ3ODYxZTcwMTY4N2Qw
ZTM3MWQ3MmQuLmVkNjczYWM4ZjdjMGVlNTRjMDYwZWNiNTkyMTYzOTBlZDcwZmUyY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCkBAIC00
OCw3ICs0OCw3IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlUHJveHkgewogcHVibGljOgogICAg
IHN0YXRpYyBXb3JrZXJHbG9iYWxTY29wZVByb3h5JiBjcmVhdGUoV29ya2VyJik7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGlu
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgSlNDOjpS
dW50aW1lRmxhZ3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29w
ZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25z
dCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
LCBSZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIEpT
Qzo6UnVudGltZUZsYWdzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZVdvcmtlckds
b2JhbFNjb3BlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xv
YmFsU2NvcGUoTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBwb3N0VGFza1RvV29ya2VyR2xvYmFsU2NvcGUoRnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik+JiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggMTlkNGJlNjQ5OTJmMzBkM2NjZTc2NTQ3YTNkMjIxOGE5
OGM4NDJjMy4uNzg4MzU4N2E3YWY2MjA5ZTNlY2M4ZTdiNDFiYWQ0N2FkZjYyMjQwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTcz
LDcgKzczLDcgQEAgV29ya2VyTWVzc2FnaW5nUHJveHk6On5Xb3JrZXJNZXNzYWdpbmdQcm94eSgp
CiAgICAgICAgIHx8IChpczxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkgJiYgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpLnRocmVhZCgpLnRocmVhZCgpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSkpOwogfQogCi12
b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVS
TCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGlj
eSwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZsYWdzKQordm9pZCBXb3JrZXJNZXNzYWdpbmdQ
cm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGlt
ZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUgd29ya2Vy
VHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIEpTQzo6UnVudGltZUZs
YWdzIHJ1bnRpbWVGbGFncykKIHsKICAgICAvLyBGSVhNRTogVGhpcyBuZWVkIHRvIGJlIHJldmlz
aXRlZCB3aGVuIHdlIHN1cHBvcnQgbmVzdGVkIHdvcmtlciBvbmUgZGF5CiAgICAgQVNTRVJUKG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV29ya2VyTWVz
c2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkws
IGNvbnN0IFN0CiAKICAgICBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIgPSBkb2N1bWVu
dC5zb2NrZXRQcm92aWRlcigpOwogCi0gICAgV29ya2VyUGFyYW1ldGVycyBwYXJhbXMgPSB7IHNj
cmlwdFVSTCwgbmFtZSwgaWRlbnRpZmllciwgdXNlckFnZW50LCBpc09ubGluZSwgY29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50
U2VjdXJpdHlQb2xpY3ksIHRpbWVPcmlnaW4sIHJlZmVycmVyUG9saWN5LCBkb2N1bWVudC5zZXR0
aW5nc1ZhbHVlcygpIH07CisgICAgV29ya2VyUGFyYW1ldGVycyBwYXJhbXMgPSB7IHNjcmlwdFVS
TCwgbmFtZSwgaWRlbnRpZmllciwgdXNlckFnZW50LCBpc09ubGluZSwgY29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIHRpbWVPcmlnaW4sIHJlZmVycmVyUG9saWN5LCB3b3JrZXJUeXBlLCBjcmVkZW50
aWFscywgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMoKSB9OwogICAgIGF1dG8gdGhyZWFkID0gRGVk
aWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUocGFyYW1zLCBzb3VyY2VDb2RlLCAqdGhpcywgKnRo
aXMsICp0aGlzLCBzdGFydE1vZGUsIGRvY3VtZW50LnRvcE9yaWdpbigpLCBwcm94eSwgc29ja2V0
UHJvdmlkZXIsIHJ1bnRpbWVGbGFncyk7CiAKICAgICB3b3JrZXJUaHJlYWRDcmVhdGVkKHRocmVh
ZC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmgKaW5kZXggYzViNTc1YjllNjE1YjNmM2Y1OTZiZmMzZGY2ODNjODc3Y2M2MmJhYi4uZDllODFl
MTU3YTBmNDg1MmU0OWI1OWQyNTY2YThhODBmNWY4MThhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBX
b3JrZXJNZXNzYWdpbmdQcm94eSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxX
b3JrZXJNZXNzYWdpbmdQcgogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgV29y
a2VyR2xvYmFsU2NvcGVQcm94eS4KICAgICAvLyAoT25seSB1c2UgdGhlc2UgZnVuY3Rpb25zIGlu
IHRoZSB3b3JrZXIgb2JqZWN0IHRocmVhZC4pCi0gICAgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNj
b3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNv
bnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmln
aW4sIFJlZmVycmVyUG9saWN5LCBKU0M6OlJ1bnRpbWVGbGFncykgZmluYWw7CisgICAgdm9pZCBz
dGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJp
bmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25v
dG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBGZXRjaFJl
cXVlc3RDcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxhZ3MpIGZpbmFsOwogICAgIHZvaWQgdGVy
bWluYXRlV29ya2VyR2xvYmFsU2NvcGUoKSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9X
b3JrZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSBmaW5hbDsKICAgICB2
b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmKT4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDIzODRhNWE4YzdkMmEzMDJl
ZWU1Y2I0MDVlMTA1ZTAyNWM5ODQzY2MuLmY0ZjRiMjc0NjZmOWEzMGIyOGI4YjIxZjZmMmJlZjhi
ZGU5Mzg1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKIAorI2luY2x1ZGUg
IlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1ZGUgIldvcmtlckV2ZW50TG9vcC5oIgogI2lu
Y2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0zOSw2ICs0MCw3IEBAIFdURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSk7CiAKIFdvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShXb3JrZXJUaHJlYWRU
eXBlIHR5cGUsIFJlZjxKU0M6OlZNPiYmIHZtLCBXb3JrZXJPcldvcmtsZXRUaHJlYWQqIHRocmVh
ZCkKICAgICA6IG1fc2NyaXB0KG1ha2VVbmlxdWU8V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlcj4odHlwZSwgV1RGTW92ZSh2bSksIHRoaXMpKQorICAgICwgbV9tb2R1bGVMb2FkZXIobWFr
ZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KCp0aGlzLCBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93
bmVyVHlwZTo6V29ya2VyT3JXb3JrbGV0KSkKICAgICAsIG1fdGhyZWFkKHRocmVhZCkKICAgICAs
IG1faW5zcGVjdG9yQ29udHJvbGxlcihtYWtlVW5pcXVlPFdvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXI+KCp0aGlzKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCA2YzI0NGEwYzQyN2VlMWM4YzY1ZmRjYzc2NTk1MmY4
NzdmZDliMTZiLi41NDRmMDQ3YWVjMjc4MzI3NDRkMGE4YTcwYWY3ZTkzOWMzMzA5OTJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZS5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV2ZW50
TG9vcFRhc2tHcm91cDsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNsYXNzIFdvcmtlckV2
ZW50TG9vcDsKIGNsYXNzIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBXb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyOwpAQCAtNTQsNiArNTUsOCBAQCBjbGFzcyBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJs
aWMgUmVmQ291bgogCiAgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJZGVudGlmaWVyKCkg
eyByZXR1cm4gbV91bmlxdWVJZGVudGlmaWVyKys7IH0KIAorICAgIFNjcmlwdE1vZHVsZUxvYWRl
ciYgbW9kdWxlTG9hZGVyKCkgeyByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOyB9CisKICAgICAvLyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LgogICAgIEV2ZW50TG9vcFRhc2tHcm91cCYgZXZlbnRMb29w
KCkgZmluYWw7CiAgICAgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCBmaW5hbDsKQEAgLTg4
LDYgKzkxLDcgQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KICAgICB2b2lkIGRlcmVmRXZlbnRU
YXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyPiBtX3NjcmlwdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
U2NyaXB0TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRlcjsKICAgICBXb3JrZXJPcldvcmtsZXRU
aHJlYWQqIG1fdGhyZWFkOwogICAgIFJlZlB0cjxXb3JrZXJFdmVudExvb3A+IG1fZXZlbnRMb29w
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrR3JvdXA+IG1fZGVmYXVsdFRhc2tH
cm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGNkNGVjMjQ2ODI1MjVhYWJjNjQyZDg3N2Ew
ZGEwMTFlYmRlMTE0MzEuLjkxYThhODc5NDU2ZTA2NzYyMjlhODcwOGE4NzUwOTk5M2EyZTI0ODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzUsMTUgKzM1LDIzIEBACiAjaW5jbHVkZSAiSlNF
eGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5j
bHVkZSAiSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRj
aEZhaWx1cmVLaW5kLmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCiAjaW5j
bHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEu
aCIKICNpbmNsdWRlICJXb3JrZXJDb25zb2xlQ2xpZW50LmgiCisjaW5jbHVkZSAiV29ya2VyU2Ny
aXB0RmV0Y2hlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbXBsZXRpb24uaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWZlcnJlZFdvcmtUaW1lci5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0V4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2Vw
dGlvbkhlbHBlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9HQ0FjdGl2aXR5Q2FsbGJh
Y2suaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTTW9kdWxlUmVjb3JkLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNOYXRpdmVTdGRG
dW5jdGlvbi5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2NyaXB0RmV0Y2hQYXJhbWV0
ZXJzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRjaGVyLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0yMjgsNiArMjM2LDI0NSBAQCB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZAogICAgIH0K
IH0KIAorc3RhdGljIElkZW50aWZpZXIganNWYWx1ZVRvTW9kdWxlS2V5KEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5p
c1N5bWJvbCgpKQorICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVVpZChqc0Nhc3Q8U3lt
Ym9sKj4odmFsdWUpLT5wcml2YXRlTmFtZSgpKTsKKyAgICBBU1NFUlQodmFsdWUuaXNTdHJpbmco
KSk7CisgICAgcmV0dXJuIGFzU3RyaW5nKHZhbHVlKS0+dG9JZGVudGlmaWVyKGxleGljYWxHbG9i
YWxPYmplY3QpOworfQorCitKU0M6OkpTVmFsdWUgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlcjo6ZXZhbHVhdGVNb2R1bGUoSlNDOjpKU01vZHVsZVJlY29yZCYgbW9kdWxlUmVjb3JkKQor
eworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBlci5nZXQoKTsK
KyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayB7
IHZtIH07CisgICAgcmV0dXJuIG1vZHVsZVJlY29yZC5ldmFsdWF0ZSgmZ2xvYmFsT2JqZWN0KTsK
K30KKworTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyOjpsb2FkTW9kdWxlU3luY2hyb25vdXNseShXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRG
ZXRjaGVyLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIGlmIChp
c0V4ZWN1dGlvbkZvcmJpZGRlbigpKQorICAgICAgICByZXR1cm4gTWVzc2FnZVF1ZXVlVGVybWlu
YXRlZDsKKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZ2xvYmFsT2Jq
ZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKworICAgIGF1dG8gcHJv
dGVjdG9yID0gbWFrZVJlZihzY3JpcHRGZXRjaGVyKTsKKyAgICB7CisgICAgICAgIGF1dG8mIHBy
b21pc2UgPSBKU0V4ZWNTdGF0ZTo6bG9hZE1vZHVsZShnbG9iYWxPYmplY3QsIHNvdXJjZUNvZGUu
anNTb3VyY2VDb2RlKCksIEpTQzo6SlNTY3JpcHRGZXRjaGVyOjpjcmVhdGUodm0sIHsgJnNjcmlw
dEZldGNoZXIgfSkpOworCisgICAgICAgIGF1dG8mIGZ1bGZpbGxIYW5kbGVyID0gKkpTTmF0aXZl
U3RkRnVuY3Rpb246OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFtwcm90
ZWN0b3JdKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSAtPiBKU0M6OkVuY29kZWRKU1ZhbHVlIHsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKKyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAg
ICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICAgICAgICAg
IElkZW50aWZpZXIgbW9kdWxlS2V5ID0ganNWYWx1ZVRvTW9kdWxlS2V5KGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOworICAgICAgICAgICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkQ29tcGxldGVk
KCptb2R1bGVLZXkuaW1wbCgpKTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGF1dG8mIHJlamVjdEhhbmRs
ZXIgPSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCAxLCBT
dHJpbmcoKSwgW3Byb3RlY3Rvcl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpIHsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIEpT
VmFsdWUgZXJyb3JWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAgICAgICAgICBp
ZiAoZXJyb3JWYWx1ZS5pc09iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byogb2JqZWN0
ID0gSlNDOjphc09iamVjdChlcnJvclZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAoSlNWYWx1
ZSBmYWlsdXJlS2luZFZhbHVlID0gb2JqZWN0LT5nZXREaXJlY3Qodm0sIHN0YXRpY19jYXN0PEpT
Vk1DbGllbnREYXRhJj4oKnZtLmNsaWVudERhdGEpLmJ1aWx0aW5OYW1lcygpLmZhaWx1cmVLaW5k
UHJpdmF0ZU5hbWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBob3N0IHBy
b3BhZ2F0ZWQgZXJyb3IgaW4gdGhlIG1vZHVsZSBsb2FkZXIgcGlwZWxpbmUuCisgICAgICAgICAg
ICAgICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8TW9kdWxlRmV0Y2hGYWlsdXJlS2luZD4oZmFp
bHVyZUtpbmRWYWx1ZS5hc0ludDMyKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgTW9k
dWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZDoKKyAgICAgICAgICAgICAgICAgICAgICAg
IHByb3RlY3Rvci0+bm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3IgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpFcnJvclR5cGU6OkNhY2hl
ZFNjcmlwdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6Om51bGxvcHQKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2Vs
ZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0b3ItPm5vdGlmeUxvYWRXYXNDYW5j
ZWxlZCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICAgICAgICAgIHByb3Rl
Y3Rvci0+bm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3IgeworICAgICAgICAg
ICAgICAgIExvYWRhYmxlU2NyaXB0OjpFcnJvclR5cGU6OkNhY2hlZFNjcmlwdCwKKyAgICAgICAg
ICAgICAgICBMb2FkYWJsZVNjcmlwdDo6Q29uc29sZU1lc3NhZ2UgeworICAgICAgICAgICAgICAg
ICAgICBNZXNzYWdlU291cmNlOjpKUywKKyAgICAgICAgICAgICAgICAgICAgTWVzc2FnZUxldmVs
OjpFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgcmV0cmlldmVFcnJvck1lc3NhZ2UoKmdsb2Jh
bE9iamVjdCwgdm0sIGVycm9yVmFsdWUsIHNjb3BlKSwKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIHByb21pc2UudGhlbigmZ2xvYmFsT2JqZWN0
LCAmZnVsZmlsbEhhbmRsZXIsICZyZWplY3RIYW5kbGVyKTsKKyAgICB9CisgICAgbV9nbG9iYWxT
Y29wZS0+ZXZlbnRMb29wKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKKworICAgIC8v
IERyaXZlIFJ1bkxvb3AgdW50aWwgd2UgZ2V0IGVpdGhlciBvZiAiV29ya2VyIGlzIHRlcm1pbmF0
ZWQiLCAiTG9hZGluZyBpcyBkb25lIiwgb3IgIkxvYWRpbmcgaXMgZmFpbGVkIi4KKyAgICBXb3Jr
ZXJSdW5Mb29wJiBydW5Mb29wID0gbV9nbG9iYWxTY29wZS0+d29ya2VyT3JXb3JrbGV0VGhyZWFk
KCktPnJ1bkxvb3AoKTsKKworICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHJlY2VpdmUgbWVzc2Fn
ZXMgdGhhdCBhcmUgbm90IHJlbGF0ZWQgdG8gYXN5bmNocm9ub3VzIHJlc291cmNlIGxvYWRpbmcu
CisgICAgLy8gT3RoZXJ3aXNlLCBhIHdvcmtlciBkaXNjYXJkcyBzb21lIG1lc3NhZ2VzIGZyb20g
dGhlIG1haW4gdGhyZWFkIGhlcmUgaW4gYSByYWN5IHdheS4KKyAgICAvLyBGb3IgZXhhbXBsZSwg
dGhlIG1haW4gdGhyZWFkIGNhbiBwb3N0TWVzc2FnZSBqdXN0IGFmdGVyIGNyZWF0aW5nIGEgV29y
a2VyLiBJbiB0aGF0IGNhc2UsIHBvc3RNZXNzYWdlJ3MKKyAgICAvLyB0YXNrIGlzIHF1ZXVlZCBp
biBXb3JrZXJSdW5Mb29wIGJlZm9yZSBzdGFydCBydW5uaW5nIG1vZHVsZSBzY3JpcHRzLiBUaGlz
IHRhc2sgc2hvdWxkIG5vdCBiZSBkaXNjYXJkZWQKKyAgICAvLyBpbiB0aGUgZm9sbG93aW5nIGRy
aXZpbmcgb2YgdGhlIFJ1bkxvb3Agd2hpY2ggbWFpbmx5IGF0dGVtcHQgdG8gY29sbGVjdCBpbml0
aWFsIGxvYWQgb2YgbW9kdWxlIHNjcmlwdHMuCisgICAgU3RyaW5nIHRhc2tNb2RlID0gImxvYWRN
b2R1bGVzSW5Xb3JrZXJPcldvcmtsZXRNb2RlIl9zOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1
bHQgcmVzdWx0ID0gTWVzc2FnZVF1ZXVlTWVzc2FnZVJlY2VpdmVkOworICAgIHdoaWxlICgoIXBy
b3RlY3Rvci0+aXNMb2FkZWQoKSAmJiAhcHJvdGVjdG9yLT53YXNDYW5jZWxlZCgpKSAmJiByZXN1
bHQgIT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgeworICAgICAgICByZXN1bHQgPSBydW5Mb29w
LnJ1bkluTW9kZShtX2dsb2JhbFNjb3BlLCB0YXNrTW9kZSk7CisgICAgICAgIGlmIChyZXN1bHQg
IT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkKKyAgICAgICAgICAgIG1fZ2xvYmFsU2NvcGUtPmV2
ZW50TG9vcCgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7CisgICAgfQorCisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKwordm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjps
aW5rQW5kRXZhbHVhdGVNb2R1bGUoV29ya2VyU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwg
Y29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgU3RyaW5nKiByZXR1cm5lZEV4Y2Vw
dGlvbk1lc3NhZ2UpCit7CisgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZ2xvYmFs
T2JqZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKworICAgIE5ha2Vk
UHRyPEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICBKU0V4ZWNTdGF0ZTo6
bGlua0FuZEV2YWx1YXRlTW9kdWxlKGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVVpZCh2
bSwgc2NyaXB0RmV0Y2hlci5tb2R1bGVLZXkoKSksIGpzVW5kZWZpbmVkKCksIHJldHVybmVkRXhj
ZXB0aW9uKTsKKyAgICBpZiAoKHJldHVybmVkRXhjZXB0aW9uICYmIGlzVGVybWluYXRlZEV4ZWN1
dGlvbkV4Y2VwdGlvbih2bSwgcmV0dXJuZWRFeGNlcHRpb24pKSB8fCBpc1Rlcm1pbmF0aW5nRXhl
Y3V0aW9uKCkpIHsKKyAgICAgICAgZm9yYmlkRXhlY3V0aW9uKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAocmV0dXJuZWRFeGNlcHRpb24pIHsKKyAgICAgICAgaWYgKG1fZ2xv
YmFsU2NvcGUtPmNhbkluY2x1ZGVFcnJvckRldGFpbHMoc291cmNlQ29kZS5jYWNoZWRTY3JpcHQo
KSwgc291cmNlQ29kZS51cmwoKS5zdHJpbmcoKSkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJ
dCdzIG5vdCBncmVhdCB0aGF0IHRoaXMgY2FuIHJ1biBhcmJpdHJhcnkgY29kZSB0byBzdHJpbmct
aWZ5IHRoZSB2YWx1ZSBvZiB0aGUgZXhjZXB0aW9uLgorICAgICAgICAgICAgLy8gRG8gd2UgbmVl
ZCB0byBkbyBhbnl0aGluZyB0byBoYW5kbGUgdGhhdCBwcm9wZXJseSwgaWYgaXQsIHNheSwgcmFp
c2VzIGFub3RoZXIgZXhjZXB0aW9uPworICAgICAgICAgICAgaWYgKHJldHVybmVkRXhjZXB0aW9u
TWVzc2FnZSkKKyAgICAgICAgICAgICAgICAqcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gcmV0
dXJuZWRFeGNlcHRpb24tPnZhbHVlKCkudG9XVEZTdHJpbmcoJmdsb2JhbE9iamVjdCk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBPdmVyd3JpdGUgdGhlIGRldGFpbGVkIGVycm9y
IHdpdGggYSBnZW5lcmljIGVycm9yLgorICAgICAgICAgICAgU3RyaW5nIGdlbmVyaWNFcnJvck1l
c3NhZ2UgeyAiU2NyaXB0IGVycm9yLiJfcyB9OworICAgICAgICAgICAgaWYgKHJldHVybmVkRXhj
ZXB0aW9uTWVzc2FnZSkKKyAgICAgICAgICAgICAgICAqcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdl
ID0gZ2VuZXJpY0Vycm9yTWVzc2FnZTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBXb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUoY29uc3Qg
VVJMJiBtb2R1bGVVUkwsIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkgeworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpbml0U2NyaXB0SWZOZWVkZWQoKTsKKworICAgIGF1dG8m
IGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBlci5nZXQoKTsKKyAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisKKyAg
ICBhdXRvIHNjcmlwdEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpjcmVhdGUoY3JlZGVu
dGlhbHMpOworICAgIHsKKyAgICAgICAgYXV0byYgcHJvbWlzZSA9IEpTRXhlY1N0YXRlOjpsb2Fk
TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9kdWxlVVJMLnN0cmluZygpLCBqc1VuZGVmaW5lZCgpLCBK
U0M6OkpTU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKHZtLCB7IHNjcmlwdEZldGNoZXIucHRyKCkgfSkp
OworCisgICAgICAgIGF1dG8gdGFzayA9IGNyZWF0ZVNoYXJlZFRhc2s8dm9pZChPcHRpb25hbDxF
eGNlcHRpb24+JiYpPihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICB9KTsK
KworICAgICAgICBhdXRvJiBmdWxmaWxsSGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpj
cmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbdGFzaywgc2NyaXB0RmV0Y2hl
cl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIC0+
IEpTQzo6RW5jb2RlZEpTVmFsdWUgeworICAgICAgICAgICAgLy8gdGFzay0+cnVuKFdURjo6bnVs
bG9wdCk7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAg
ICAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisgICAgICAgICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICAgICAgICAgIElkZW50aWZpZXIgbW9kdWxl
S2V5ID0ganNWYWx1ZVRvTW9kdWxlS2V5KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVu
dCgwKSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAg
ICAgICAgICAgc2NyaXB0RmV0Y2hlci0+bm90aWZ5TG9hZENvbXBsZXRlZCgqbW9kdWxlS2V5Lmlt
cGwoKSk7CisKKyAgICAgICAgICAgIGF1dG8qIGNvbnRleHQgPSBkb3duY2FzdDxXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZT4oanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0
KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAgICAgICAgIGlmICghY29udGV4dCB8
fCAhY29udGV4dC0+c2NyaXB0KCkpIHsKKyAgICAgICAgICAgICAgICB0YXNrLT5ydW4oV1RGOjpu
dWxsb3B0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBOYWtlZFB0cjxKU0M6OkV4Y2Vw
dGlvbj4gcmV0dXJuZWRFeGNlcHRpb247CisgICAgICAgICAgICBKU0V4ZWNTdGF0ZTo6bGlua0Fu
ZEV2YWx1YXRlTW9kdWxlKCpnbG9iYWxPYmplY3QsIG1vZHVsZUtleSwganNVbmRlZmluZWQoKSwg
cmV0dXJuZWRFeGNlcHRpb24pOworICAgICAgICAgICAgaWYgKChyZXR1cm5lZEV4Y2VwdGlvbiAm
JiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVybmVkRXhjZXB0aW9uKSkg
fHwgY29udGV4dC0+c2NyaXB0KCktPmlzVGVybWluYXRpbmdFeGVjdXRpb24oKSkgeworICAgICAg
ICAgICAgICAgIGlmIChjb250ZXh0LT5zY3JpcHQoKSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGV4dC0+c2NyaXB0KCktPmZvcmJpZEV4ZWN1dGlvbigpOworICAgICAgICAgICAgICAgIHRhc2st
PnJ1bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChyZXR1
cm5lZEV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgICAg
ICAgICAgICAgIGlmIChjb250ZXh0LT5jYW5JbmNsdWRlRXJyb3JEZXRhaWxzKG51bGxwdHIsIG1v
ZHVsZUtleS5zdHJpbmcoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEl0J3Mg
bm90IGdyZWF0IHRoYXQgdGhpcyBjYW4gcnVuIGFyYml0cmFyeSBjb2RlIHRvIHN0cmluZy1pZnkg
dGhlIHZhbHVlIG9mIHRoZSBleGNlcHRpb24uCisgICAgICAgICAgICAgICAgICAgIC8vIERvIHdl
IG5lZWQgdG8gZG8gYW55dGhpbmcgdG8gaGFuZGxlIHRoYXQgcHJvcGVybHksIGlmIGl0LCBzYXks
IHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlvbj8KKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9
IHJldHVybmVkRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gT3ZlcndyaXRl
IHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBlcnJvci4KKyAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZSA9ICJTY3JpcHQgZXJyb3IuIl9zOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24obWVzc2FnZSwgeyB9LCB7IH0s
IHsgfSwgeyB9LCB7IH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0YXNrLT5ydW4o
V1RGOjpudWxsb3B0KTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGF1dG8mIHJlamVjdEhhbmRsZXIgPSAq
SlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCAxLCBTdHJpbmco
KSwgW3Rhc2tdKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSB7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAg
ICAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisgICAgICAgICAgICBKU1ZhbHVlIGVycm9y
VmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOworICAgICAgICAgICAgaWYgKGVycm9yVmFs
dWUuaXNPYmplY3QoKSkgeworICAgICAgICAgICAgICAgIGF1dG8qIG9iamVjdCA9IEpTQzo6YXNP
YmplY3QoZXJyb3JWYWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+Z2V0RGlyZWN0
KHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSY+KCp2bS5jbGllbnREYXRhKS5idWlsdGlu
TmFtZXMoKS5mYWlsdXJlS2luZFByaXZhdGVOYW1lKCkpKSB7CisgICAgICAgICAgICAgICAgICAg
IGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAg
ICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUo
Kmdsb2JhbE9iamVjdCwgdm0sIG9iamVjdCwgY2F0Y2hTY29wZSk7CisgICAgICAgICAgICAgICAg
ICAgIHRhc2stPnJ1bihFeGNlcHRpb24geyBBYm9ydEVycm9yLCBtZXNzYWdlIH0pOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxFcnJv
ckluc3RhbmNlPih2bSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byogZXJyb3IgPSBqc0Nh
c3Q8RXJyb3JJbnN0YW5jZSo+KG9iamVjdCk7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAo
ZXJyb3ItPmVycm9yVHlwZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JUeXBl
OjpUeXBlRXJyb3I6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gY2F0Y2hTY29wZSA9
IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5n
IG1lc3NhZ2UgPSByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKCpnbG9iYWxPYmplY3Qs
IHZtLCBlcnJvciwgY2F0Y2hTY29wZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXNrLT5y
dW4oRXhjZXB0aW9uIHsgVHlwZUVycm9yLCBtZXNzYWdlIH0pOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXNlIEVycm9yVHlwZTo6U3ludGF4RXJy
b3I6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xBUkVf
Q0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2Ug
PSByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKCpnbG9iYWxPYmplY3QsIHZtLCBlcnJv
ciwgY2F0Y2hTY29wZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXNrLT5ydW4oRXhjZXB0
aW9uIHsgSlNTeW50YXhFcnJvciwgbWVzc2FnZSB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJFX0NBVENI
X1NDT1BFKHZtKTsKKyAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gcmV0cmlldmVFcnJvck1l
c3NhZ2VXaXRob3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1ZSwgY2F0Y2hTY29w
ZSk7CisgICAgICAgICAgICB0YXNrLT5ydW4oRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgbWVzc2Fn
ZSB9KTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CisgICAgICAgIH0pOworCisgICAgICAgIHByb21pc2UudGhlbigmZ2xvYmFsT2JqZWN0LCAmZnVs
ZmlsbEhhbmRsZXIsICZyZWplY3RIYW5kbGVyKTsKKyAgICB9CisgICAgbV9nbG9iYWxTY29wZS0+
ZXZlbnRMb29wKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKK30KKwogdGVtcGxhdGU8
dHlwZW5hbWUgSlNHbG9iYWxTY29wZVByb3RvdHlwZSwgdHlwZW5hbWUgSlNHbG9iYWxTY29wZSwg
dHlwZW5hbWUgR2xvYmFsU2NvcGU+CiB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI6OmluaXRTY3JpcHRXaXRoU3ViY2xhc3MoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBjNDkz
MDFhZWQzZGQwODlkYTc5NzMyNzYwY2FmMmY3YjY0ZGIxMWI2Li45ZjAyM2E2MmY4MTQzZTdkOTgy
ZmJmN2Y1OGVlZWFkY2EzYTViNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLmg+CiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9NZXNz
YWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvTmFrZWRQdHIuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkBAIC00NCw5ICs0NSwxMSBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBMb2FkYWJsZU1vZHVsZVNj
cmlwdDsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiBjbGFzcyBXb3JrZXJDb25zb2xlQ2xpZW50
OwogY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU7CitjbGFzcyBXb3JrZXJTY3JpcHRG
ZXRjaGVyOwogCiBjbGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyKTsKQEAg
LTk0LDYgKzk3LDEzIEBAIGNsYXNzIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewog
ICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIFN0cmluZyogcmV0dXJu
ZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2Vw
dGlvbiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKIAorICAg
IEpTQzo6SlNWYWx1ZSBldmFsdWF0ZU1vZHVsZShKU0M6OkpTTW9kdWxlUmVjb3JkJik7CisKKyAg
ICB2b2lkIGxpbmtBbmRFdmFsdWF0ZU1vZHVsZShXb3JrZXJTY3JpcHRGZXRjaGVyJiwgY29uc3Qg
U2NyaXB0U291cmNlQ29kZSYsIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVs
bHB0cik7CisgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBsb2FkTW9kdWxlU3luY2hyb25vdXNs
eShXb3JrZXJTY3JpcHRGZXRjaGVyJiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOworCisgICAg
dm9pZCBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoY29uc3QgVVJMJiBtb2R1bGVVUkwsIEZldGNoT3B0
aW9uczo6Q3JlZGVudGlhbHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0
aW9uPiYmKT4mJik7CisKIHByb3RlY3RlZDoKICAgICBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSogZ2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbFNjb3BlOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcAppbmRleCAzYTRkYWVm
YzM5MDJiZGIyZWE4NGZjNThkN2U0MmY4M2U1ZjA3ZTJmLi45ZjMxZDBkZmQ1OWE4NzA3ZmQ0ZWI1
OWNjM2M5MmEwNjY0ODFkZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJT
Y3JpcHRMb2FkZXIuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgT3B0aW9uYWw8RXhjZXB0aW9uPiBX
b3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi12b2lkIFdvcmtlclNjcmlwdExvYWRl
cjo6bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIFJlc291cmNlUmVxdWVzdCYmIHNjcmlwdFJlcXVlc3QsIEZldGNoT3B0aW9u
cyYmIGZldGNoT3B0aW9ucywgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgY29udGVu
dFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZSBzZXJ2aWNlV29y
a2VyTW9kZSwgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQpCit2b2lkIFdvcmtlclNj
cmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsIFJlc291cmNlUmVxdWVzdCYmIHNjcmlwdFJlcXVlc3QsIEZl
dGNoT3B0aW9ucyYmIGZldGNoT3B0aW9ucywgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1l
bnQgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZSBz
ZXJ2aWNlV29ya2VyTW9kZSwgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIFN0cmlu
ZyYmIHRhc2tNb2RlKQogewogICAgIG1fY2xpZW50ID0gJmNsaWVudDsKICAgICBtX3VybCA9IHNj
cmlwdFJlcXVlc3QudXJsKCk7CkBAIC0xMjMsOCArMTIzLDYgQEAgdm9pZCBXb3JrZXJTY3JpcHRM
b2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRF
eGVjdXQKICAgICBBU1NFUlQoZmV0Y2hPcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpTYW1lT3JpZ2luIHx8IChmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gIT0gRmV0Y2hPcHRpb25z
OjpEZXN0aW5hdGlvbjo6U2VydmljZXdvcmtlciAmJiBmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24g
IT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyKSk7CiAKICAgICBUaHJlYWRhYmxl
TG9hZGVyT3B0aW9ucyBvcHRpb25zIHsgV1RGTW92ZShmZXRjaE9wdGlvbnMpIH07Ci0gICAgLy8g
RklYTUU6IFdlIHNob3VsZCBhZGQgYW4gb3B0aW9uIHRvIHNldCBjcmVkZW50aWFsIG1vZGUuCi0g
ICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVP
cmlnaW47CiAgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxsYmFja1BvbGlj
eTo6U2VuZENhbGxiYWNrczsKICAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9y
Y2VtZW50ID0gY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ7CiAgICAgaWYgKGZldGNo
T3B0aW9ucy5kZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTZXJ2aWNl
d29ya2VyKQpAQCAtMTQzLDcgKzE0MSw3IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpsb2Fk
QXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0CiAKICAg
ICAvLyBEdXJpbmcgY3JlYXRlLCBjYWxsYmFja3MgbWF5IGhhcHBlbiB3aGljaCByZW1vdmUgdGhl
IGxhc3QgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0LgogICAgIFJlZjxXb3JrZXJTY3JpcHRMb2Fk
ZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwotICAgIG1fdGhyZWFkYWJsZUxvYWRlciA9IFRocmVh
ZGFibGVMb2FkZXI6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCAqdGhpcywgV1RGTW92
ZSgqcmVxdWVzdCksIG9wdGlvbnMpOworICAgIG1fdGhyZWFkYWJsZUxvYWRlciA9IFRocmVhZGFi
bGVMb2FkZXI6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCAqdGhpcywgV1RGTW92ZSgq
cmVxdWVzdCksIG9wdGlvbnMsIHsgfSwgV1RGTW92ZSh0YXNrTW9kZSkpOwogfQogCiBjb25zdCBV
UkwmIFdvcmtlclNjcmlwdExvYWRlcjo6cmVzcG9uc2VVUkwoKSBjb25zdApAQCAtMTkwLDYgKzE4
OCw4IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvCiAgICAgbV9jZXJ0aWZpY2F0ZUluZm8gPSBy
ZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKSA/ICpyZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKSA6
IENlcnRpZmljYXRlSW5mbygpOwogICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IHJlc3BvbnNlLm1p
bWVUeXBlKCk7CiAgICAgbV9yZXNwb25zZUVuY29kaW5nID0gcmVzcG9uc2UudGV4dEVuY29kaW5n
TmFtZSgpOworICAgIG1fcmVzcG9uc2VTb3VyY2UgPSByZXNwb25zZS5zb3VyY2UoKTsKKyAgICBt
X2lzUmVkaXJlY3RlZCA9IHJlc3BvbnNlLmlzUmVkaXJlY3RlZCgpOwogICAgIG1fY29udGVudFNl
Y3VyaXR5UG9saWN5ID0gQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIHsgcmVz
cG9uc2UgfTsKICAgICBtX3JlZmVycmVyUG9saWN5ID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxk
KEhUVFBIZWFkZXJOYW1lOjpSZWZlcnJlclBvbGljeSk7CiAgICAgaWYgKG1fY2xpZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKaW5kZXggN2ZkZDBiM2Y2
YTAxYzJkYjU3NzI0YTkwYjNiYjk4NDBmMWU2OGU1Zi4uY2ZhMzFhMzUzMjU5YWVlZDE5OGY5Mzkx
ZmZjMTUxMWI0MDUwYjg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRmV0Y2hPcHRpb25zLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgor
I2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVy
LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPG1lbW9y
eT4KQEAgLTQzLDcgKzQ0LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRXhjZXB0
aW9uOwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50OwpAQCAtNTgsNyArNTgsNyBAQCBjbGFzcyBXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxXb3JrZXJTY3JpcHRMb2FkZXI+LCBwdWJsaWMgVGhyZWFkYQogICAgIH0K
IAogICAgIE9wdGlvbmFsPEV4Y2VwdGlvbj4gbG9hZFN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFVSTCYsIEZldGNoT3B0aW9uczo6TW9kZSwgRmV0Y2hPcHRpb25z
OjpDYWNoZSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIGNvbnN0IFN0cmluZyYg
aW5pdGlhdG9ySWRlbnRpZmllcik7Ci0gICAgdm9pZCBsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlvbnMmJiwgQ29u
dGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZSwgV29ya2Vy
U2NyaXB0TG9hZGVyQ2xpZW50Jik7CisgICAgdm9pZCBsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlvbnMmJiwgQ29u
dGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZSwgV29ya2Vy
U2NyaXB0TG9hZGVyQ2xpZW50JiwgU3RyaW5nJiYgdGFza01vZGUpOwogCiAgICAgdm9pZCBub3Rp
ZnlFcnJvcigpOwogCkBAIC02Nyw2ICs2Nyw4IEBAIGNsYXNzIFdvcmtlclNjcmlwdExvYWRlciA6
IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj4sIHB1YmxpYyBUaHJlYWRhCiAg
ICAgY29uc3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJy
ZXJQb2xpY3k7IH0KICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9
CiAgICAgY29uc3QgVVJMJiByZXNwb25zZVVSTCgpIGNvbnN0OworICAgIFJlc291cmNlUmVzcG9u
c2U6OlNvdXJjZSByZXNwb25zZVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VTb3Vy
Y2U7IH0KKyAgICBib29sIGlzUmVkaXJlY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNSZWRpcmVj
dGVkOyB9CiAgICAgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8oKSBjb25z
dCB7IHJldHVybiBtX2NlcnRpZmljYXRlSW5mbzsgfQogICAgIGNvbnN0IFN0cmluZyYgcmVzcG9u
c2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VNSU1FVHlwZTsgfQogICAgIGJv
b2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsZWQ7IH0KQEAgLTEwNyw2ICsxMDksOCBA
QCBjbGFzcyBXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJTY3Jp
cHRMb2FkZXI+LCBwdWJsaWMgVGhyZWFkYQogICAgIHVuc2lnbmVkIGxvbmcgbV9pZGVudGlmaWVy
IHsgMCB9OwogICAgIGJvb2wgbV9mYWlsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9maW5pc2hp
bmcgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1JlZGlyZWN0ZWQgeyBmYWxzZSB9OworICAgIFJl
c291cmNlUmVzcG9uc2U6OlNvdXJjZSBtX3Jlc3BvbnNlU291cmNlIHsgUmVzb3VyY2VSZXNwb25z
ZTo6U291cmNlOjpVbmtub3duIH07CiAgICAgUmVzb3VyY2VFcnJvciBtX2Vycm9yOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDcyNzkwYTAzMzIyNjE5
ZTZlZTdlNjE2YThiZGUxOGJkNTUyYTU3ODMuLjYzZWU4YzhkMzZmM2JkNzI0NjM1M2M1YmRmODQx
N2RkODEwN2M0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAg
LTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNv
Y2tldFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRl
ICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0
Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC01NSw2ICs1Nyw4IEBAIFdvcmtlclBhcmFtZXRlcnMgV29ya2VyUGFyYW1ldGVy
czo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICAgICAgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29u
dGVudFNlY3VyaXR5UG9saWN5LAogICAgICAgICB0aW1lT3JpZ2luLAogICAgICAgICByZWZlcnJl
clBvbGljeSwKKyAgICAgICAgd29ya2VyVHlwZSwKKyAgICAgICAgY3JlZGVudGlhbHMsCiAgICAg
ICAgIHNldHRpbmdzVmFsdWVzLmlzb2xhdGVkQ29weSgpCiAgICAgfTsKIH0KQEAgLTEyMyw5ICsx
MjcsMzEgQEAgYm9vbCBXb3JrZXJUaHJlYWQ6OnNob3VsZFdhaXRGb3JXZWJJbnNwZWN0b3JPblN0
YXJ0dXAoKSBjb25zdAogCiB2b2lkIFdvcmtlclRocmVhZDo6ZXZhbHVhdGVTY3JpcHRJZk5lY2Vz
c2FyeShTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpCiB7Ci0gICAgZ2xvYmFsU2NvcGUoKS0+c2Ny
aXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29k
ZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3Nh
Z2UpOwotCi0gICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgLy8gV2UgYXJlIGN1
cnJlbnRseSBob2xkaW5nIG9ubHkgdGhlIGluaXRpYWwgc2NyaXB0IGNvZGUuIElmIHRoZSBXb3Jr
ZXJUeXBlIGlzIE1vZHVsZSwgd2Ugc2hvdWxkIGZldGNoIHRoZSBlbnRpcmUgZ3JhcGggYmVmb3Jl
IGV4ZWN1dGluZyB0aGUgcmVzdCBvZiB0aGlzLgorICAgIC8vIFdlIGludm9rZSBtb2R1bGUgbG9h
ZGVyIGFzIGlmIHdlIGFyZSBleGVjdXRpbmcgaW5saW5lIG1vZHVsZSBzY3JpcHQgdGFnIGluIERv
Y3VtZW50LgorCisgICAgaWYgKG1fc3RhcnR1cERhdGEtPnBhcmFtcy53b3JrZXJUeXBlID09IFdv
cmtlclR5cGU6OkNsYXNzaWMpIHsKKyAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmV2
YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwgVVJMKG1f
c3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOworICAg
ICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAv
LyBGSVhNRSBmaXggaW5pdGlhdG9yIG5hbWUuCisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291
cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFy
YW1zLnNjcmlwdFVSTCksIHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVs
ZSk7CisgICAgICAgIGF1dG8gc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZldGNoZXI6OmNy
ZWF0ZShnbG9iYWxTY29wZSgpLT5jcmVkZW50aWFscygpKTsKKyAgICAgICAgTWVzc2FnZVF1ZXVl
V2FpdFJlc3VsdCByZXN1bHQgPSBnbG9iYWxTY29wZSgpLT5zY3JpcHQoKS0+bG9hZE1vZHVsZVN5
bmNocm9ub3VzbHkoc2NyaXB0RmV0Y2hlci5nZXQoKSwgc291cmNlQ29kZSk7CisgICAgICAgIGlm
IChyZXN1bHQgIT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgeworICAgICAgICAgICAgaWYgKE9w
dGlvbmFsPExvYWRhYmxlU2NyaXB0OjpFcnJvcj4gZXJyb3IgPSBzY3JpcHRGZXRjaGVyLT5lcnJv
cigpKSB7CisgICAgICAgICAgICAgICAgaWYgKE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpDb25z
b2xlTWVzc2FnZT4gbWVzc2FnZSA9IGVycm9yLT5jb25zb2xlTWVzc2FnZSkKKyAgICAgICAgICAg
ICAgICAgICAgZXhjZXB0aW9uTWVzc2FnZSA9IG1lc3NhZ2UtPm1lc3NhZ2U7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25NZXNzYWdlID0gIkltcG9y
dGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfczsKKyAgICAgICAgICAgICAgICBnbG9iYWxT
Y29wZSgpLT5yZXBvcnRFeGNlcHRpb24oZXhjZXB0aW9uTWVzc2FnZSwgeyB9LCB7IH0sIHsgfSwg
eyB9LCB7IH0pOworICAgICAgICAgICAgfSBlbHNlIGlmICghc2NyaXB0RmV0Y2hlci0+d2FzQ2Fu
Y2VsZWQoKSkgeworICAgICAgICAgICAgICAgIC8vIEV2YWx1YXRlLgorICAgICAgICAgICAgICAg
IGdsb2JhbFNjb3BlKCktPnNjcmlwdCgpLT5saW5rQW5kRXZhbHVhdGVNb2R1bGUoc2NyaXB0RmV0
Y2hlci5nZXQoKSwgc291cmNlQ29kZSwgJmV4Y2VwdGlvbk1lc3NhZ2UpOworICAgICAgICAgICAg
ICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQogCiAgICAgLy8gRnJlZSB0aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNlIGl0cyBtZW1i
ZXIgdmFyaWFibGUgZGVyZWYncyBoYXBwZW4gb24gdGhlIHdvcmtlcidzIHRocmVhZCAoc2luY2UK
ICAgICAvLyBhbGwgcmVmL2RlcmVmcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBwZW5pbmcgb24g
dGhlIHRocmVhZCBhdCB0aGlzIHBvaW50KS4gTm90ZSB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUaHJlYWQuaAppbmRleCA4ODkwNzkwOGU3YTliODA5ZThmMmE0ZTQ3M2Q3NTJkMTFkMjkz
N2MwLi45NTEyZWZkYjE4ZjMyYTUwZWNiN2ZiNTY5NTlkNjFlODg3MmZhMWQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKQEAgLTI2LDcgKzI2LDEwIEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgor
I2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JX
b3JrbGV0VGhyZWFkLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldv
cmtlclR5cGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNp
bmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtNjMsNiArNjYsOCBAQCBz
dHJ1Y3QgV29ya2VyUGFyYW1ldGVycyB7CiAgICAgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3k7CiAgICAgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luOwogICAg
IFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5OworICAgIFdvcmtlclR5cGUgd29ya2VyVHlw
ZTsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsKICAgICBTZXR0aW5n
czo6VmFsdWVzIHNldHRpbmdzVmFsdWVzOwogCiAgICAgV29ya2VyUGFyYW1ldGVycyBpc29sYXRl
ZENvcHkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKaW5kZXggMGIwZWQ4
NjBkOWM3MTQyMzhhMmE1YmI5ZmRmNDM4NDAyZDE2ZWJmMC4uMWMxYmI5NDQ4NjdhZGY0ZWQ1Nzhh
MjgxNGZhMzMyMzI2YWVkOGE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKQEAg
LTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFdvcmtl
clR5cGUgeworZW51bSBjbGFzcyBXb3JrZXJUeXBlIDogdWludDhfdCB7CiAgICAgQ2xhc3NpYywK
ICAgICBNb2R1bGUsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggZWJiZTk1ZTg5MjRjOGYxZDczNzUy
NWRlYTE2MzBiMWZhZDU2ZmIyNy4uNGM3ZGRmNGE0YzEzMWUwZGNkNmJhMDk1MDlhYjJkOTc1NzVm
MzBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIE5hdmlnYXRvckJh
c2U7CiBjbGFzcyBTZXJ2aWNlV29ya2VyOwogCiBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJVcGRh
dGVWaWFDYWNoZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7CitlbnVtIGNsYXNz
IFdvcmtlclR5cGUgOiB1aW50OF90OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFz
cyBET01Qcm9taXNlUHJveHk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcAppbmRleCBlYzM5YzBmODQ5YTU0ZTFiNmQwYmVlMzRh
OGQ3ZDE5Y2JhNDVlMjg4Li5mOTUxMGNiZjZmZGY3MDQ2ZjdkMWI5MjIzNjkxNzRkMDFmYTBiZTA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckpvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2IuY3BwCkBAIC0xMTAsNyArMTEwLDggQEAgdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpmZXRj
aFNjcmlwdFdpdGhDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEYKICAg
ICBvcHRpb25zLmNhY2hlID0gY2FjaGVQb2xpY3k7CiAgICAgb3B0aW9ucy5yZWRpcmVjdCA9IEZl
dGNoT3B0aW9uczo6UmVkaXJlY3Q6OkVycm9yOwogICAgIG9wdGlvbnMuZGVzdGluYXRpb24gPSBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTZXJ2aWNld29ya2VyOwotICAgIG1fc2NyaXB0TG9h
ZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShvcHRpb25zKSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3Jj
ZSwgU2VydmljZVdvcmtlcnNNb2RlOjpOb25lLCAqdGhpcyk7CisgICAgb3B0aW9ucy5jcmVkZW50
aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW47CisgICAgbV9zY3Jp
cHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBX
VEZNb3ZlKG9wdGlvbnMpLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RF
bmZvcmNlLCBTZXJ2aWNlV29ya2Vyc01vZGU6Ok5vbmUsICp0aGlzLCBXb3JrZXJSdW5Mb29wOjpk
ZWZhdWx0TW9kZSgpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBTZXJ2aWNlV29ya2VySm9iOjp2YWxp
ZGF0ZVNlcnZpY2VXb3JrZXJSZXNwb25zZShjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9i
RGF0YSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlv
bnMuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uT3B0aW9ucy5oCmluZGV4IDlkNTAwZjg1YWNiMTg4NDFjYzU1YmVhODIxMWRiMTRmYWRj
OTc0NzUuLjJlMzU1N2ZhN2RmNjdmMWJmOThjN2I3YTVkZTRiMGE1YTdiY2NjZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIDogdWlu
dDhfdDsKLWVudW0gY2xhc3MgV29ya2VyVHlwZTsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6IHVp
bnQ4X3Q7CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucyB7CiAgICAg
U3RyaW5nIHNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCBjOGE3YTk5NzJm
OWNjOGMxNmE3OTY3NTExNTUyZjU0OTNhNjg2Zjk4Li4zM2NhMGVjMjNiNThhNTUxMTg3Njg0NmJh
MDcxODM1MzJiNWM0N2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtNzMsOCAr
NzMsOSBAQCBjbGFzcyBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA6IHB1YmxpYyBXb3Jr
ZXJPYmplY3RQcm94eSB7CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkK
IC8vIEZJWE1FOiBVc2UgdmFsaWQgcnVudGltZSBmbGFncwogCisvLyBGSVhNRTogVXNlIGEgdmFs
aWQgV29ya2VyVHlwZSBhbmQgQ3JlZGVudGFpbHMgZm9yIG1vZHVsZSBzZXJ2aWNlIHdvcmtlcnMu
CiBTZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKGNvbnN0IFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBTZXR0aW5n
czo6VmFsdWVzJiBzZXR0aW5nc1ZhbHVlcywgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5
LCBXb3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJv
dmlkZXIpCi0gICAgOiBXb3JrZXJUaHJlYWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmco
KSwgInNlcnZpY2V3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVh
dGVJZGVudGlmaWVyKCksIFdURk1vdmUodXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PmxvYWRlclN0cmF0ZWd5KCktPmlzT25MaW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5
LCBmYWxzZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHsgfSwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0
YS5zY3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRh
LnJlZ2lzdHJhdGlvbi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRi
Q29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0
ZUFsbEVuYWJsZWQoKSkKKyAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0
eVN0cmluZygpLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rv
cnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJp
dHlQb2xpY3ksIGZhbHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9LCBXb3JrZXJUeXBlOjpD
bGFzc2ljLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFsczo6U2FtZU9yaWdpbiwgc2V0dGluZ3NWYWx1
ZXMgfSwgZGF0YS5zY3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9y
bWFsLCBkYXRhLnJlZ2lzdHJhdGlvbi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5n
ZXQoKSwgaWRiQ29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxh
Z3M6OmNyZWF0ZUFsbEVuYWJsZWQoKSkKICAgICAsIG1fZGF0YShkYXRhLmlzb2xhdGVkQ29weSgp
KQogICAgICwgbV93b3JrZXJPYmplY3RQcm94eShEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eTo6c2hhcmVkKCkpCiAgICAgLCBtX2hlYXJ0QmVhdFRpbWVvdXQoU1dDb250ZXh0TWFuYWdlcjo6
c2luZ2xldG9uKCkuY29ubmVjdGlvbigpLT5zaG91bGRVc2VTaG9ydFRpbWVvdXQoKSA/IGhlYXJ0
QmVhdFRpbWVvdXRGb3JUZXN0IDogaGVhcnRCZWF0VGltZW91dCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCAy
ZGRkYjNiNWI0MWVkODdiZDYxNGEwYjk0ZDA5Yjc2MTI5M2Q3NjA3Li4zNzhmYmE2NTdlOGJiZjQ4
NDFlNTZjYmY4NjU2MWY4ZWNjMzExMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCkBAIC01MCw3ICs1MCw3IEBA
IHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjsKIHN0cnVjdCBTZXJ2aWNlV29y
a2VyQ2xpZW50UXVlcnlPcHRpb25zOwogc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsK
IHN0cnVjdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI7Ci1lbnVtIGNsYXNzIFdvcmtl
clR5cGU7CitlbnVtIGNsYXNzIFdvcmtlclR5cGUgOiB1aW50OF90OwogCiBjbGFzcyBTV1NlcnZl
cldvcmtlciA6IHB1YmxpYyBSZWZDb3VudGVkPFNXU2VydmVyV29ya2VyPiB7CiBwdWJsaWM6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCBk
NzA0ODg2NjQ4YzBlZmFhNmI3ODA4NGM1Mzg3MjAxY2EyYjFjNTQzLi4yYWUwZTMzODkxZGJjODlm
MTQ2ODdkNDE0ODAyYWFhMTJkMGQ4NGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRz
L1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTE1OCw3MiArMTU4LDcgQEAgUmVmZXJyZXJQb2xp
Y3kgV29ya2xldEdsb2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiB2b2lkIFdvcmts
ZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQoY29uc3QgVVJMJiBtb2R1bGVVUkws
IEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9zY3JpcHRGZXRjaEpvYnMuYXBwZW5kKHsg
bW9kdWxlVVJMLCBjcmVkZW50aWFscywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikgfSk7Ci0g
ICAgcHJvY2Vzc05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKCk7Ci19Ci0KLXZvaWQgV29ya2xl
dEdsb2JhbFNjb3BlOjpwcm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQoKQotewotICAg
IGlmIChtX3NjcmlwdEZldGNoSm9icy5pc0VtcHR5KCkgfHwgbV9zY3JpcHRMb2FkZXIpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGF1dG8mIHNjcmlwdEZldGNoSm9iID0gbV9zY3JpcHRGZXRjaEpv
YnMuZmlyc3QoKTsKLQotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgc2NyaXB0RmV0Y2hK
b2IubW9kdWxlVVJMIH07Ci0KLSAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOwotICAgIGZl
dGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzOwotICAgIGZldGNoT3B0
aW9ucy5jYWNoZSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQ7Ci0gICAgZmV0Y2hPcHRp
b25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93OwotICAgIGZldGNo
T3B0aW9ucy5jcmVkZW50aWFscyA9IHNjcmlwdEZldGNoSm9iLmNyZWRlbnRpYWxzOwotI2lmIEVO
QUJMRShXRUJfQVVESU8pCi0gICAgaWYgKGlzQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoKSkKLSAg
ICAgICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
bjo6QXVkaW93b3JrbGV0OwotI2VuZGlmCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0g
ICAgaWYgKGlzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUoKSkKLSAgICAgICAgZmV0Y2hPcHRpb25z
LmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6UGFpbnR3b3JrbGV0Owot
I2VuZGlmCi0KLSAgICBhdXRvIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0gc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgPyBDb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5
RW5mb3JjZW1lbnQ6OkVuZm9yY2VDaGlsZFNyY0RpcmVjdGl2ZTsKLQotICAgIG1fc2NyaXB0TG9h
ZGVyID0gV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKTsKLSAgICBtX3NjcmlwdExvYWRlci0+
bG9hZEFzeW5jaHJvbm91c2x5KCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNo
T3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vy
c01vZGU6OkFsbCwgKnRoaXMpOwotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQotewot
fQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6bm90aWZ5RmluaXNoZWQoKQotewotICAgIGF1
dG8gY29tcGxldGVkSm9iID0gbV9zY3JpcHRGZXRjaEpvYnMudGFrZUZpcnN0KCk7Ci0KLSAgICBp
ZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKSB7Ci0gICAgICAgIGRpZENvbXBsZXRlU2NyaXB0
RmV0Y2hKb2IoV1RGTW92ZShjb21wbGV0ZWRKb2IpLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCBt
YWtlU3RyaW5nKCJGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogIiwgbV9zY3JpcHRMb2Fk
ZXItPmVycm9yKCkubG9jYWxpemVkRGVzY3JpcHRpb24oKSkgfSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJlIHJ1biBhcyBhIG1v
ZHVsZSBzY3JpcHQgYnV0IHdlIGRvbid0IHN1cHBvcnQgdGhpcyBpbiB3b3JrZXJzIHlldC4KLSAg
ICBVUkwgbW9kdWxlVVJMKG1fc2NyaXB0TG9hZGVyLT5yZXNwb25zZVVSTCgpKTsKLSAgICBhdXRv
IGFkZFJlc3VsdCA9IG1fZXZhbHVhdGVkTW9kdWxlcy5hZGQobW9kdWxlVVJMKTsKLSAgICBpZiAo
YWRkUmVzdWx0LmlzTmV3RW50cnkpIHsKLSAgICAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+
IGV4Y2VwdGlvbjsKLSAgICAgICAgc2NyaXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUo
bV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBXVEZNb3ZlKG1vZHVsZVVSTCkpLCBleGNlcHRpb24p
OwotICAgICAgICBpZiAoZXhjZXB0aW9uKQotICAgICAgICAgICAgc2NyaXB0KCktPnNldEV4Y2Vw
dGlvbihleGNlcHRpb24pOwotICAgIH0KLQotICAgIGRpZENvbXBsZXRlU2NyaXB0RmV0Y2hKb2Io
V1RGTW92ZShjb21wbGV0ZWRKb2IpLCB7IH0pOwotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29w
ZTo6ZGlkQ29tcGxldGVTY3JpcHRGZXRjaEpvYihTY3JpcHRGZXRjaEpvYiYmIGpvYiwgT3B0aW9u
YWw8RXhjZXB0aW9uPiByZXN1bHQpCi17Ci0gICAgbV9zY3JpcHRMb2FkZXIgPSBudWxscHRyOwot
Ci0gICAgam9iLmNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSk7Ci0KLSAgICBwcm9j
ZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQoKTsKKyAgICBzY3JpcHQoKS0+bG9hZEFuZEV2
YWx1YXRlTW9kdWxlKG1vZHVsZVVSTCwgY3JlZGVudGlhbHMsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAogTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXImIFdvcmtsZXRHbG9iYWxT
Y29wZTo6bWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
bGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCBmMjMyMGYwZDEzMDI1Y2VhYjNiYWM1NmE0
NWVjMmQxZGQzZmI2Y2MwLi5mZTU0Yjg1MzI1Njc5MjU4M2RlZGEwNTVhNDMzYTI1NjU0ZTg2NzUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAt
MzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFNj
cmlwdENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgpAQCAtNTQsNyArNTMsNyBAQCBzdHJ1Y3QgV29ya2xldFBhcmFtZXRlcnM7CiBlbnVt
IFdvcmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIFdvcmtsZXRHbG9i
YWxTY29wZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFdvcmtsZXRHbG9iYWxTY29wZUlk
ZW50aWZpZXJUeXBlPjsKIAotY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlLCBwdWJsaWMgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsK
K2NsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0R2xvYmFsU2NvcGUpOwog
cHVibGljOgogICAgIHZpcnR1YWwgfldvcmtsZXRHbG9iYWxTY29wZSgpOwpAQCAtMTExLDEwICsx
MTAsNiBAQCBjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0
R2xvYmFsU2NvcGUsIHB1YmxpYyBXb3JrZXJTY3JpcAogICAgIHZvaWQgYWRkTWVzc2FnZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIHVu
c2lnbmVkLCB1bnNpZ25lZCwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgbG9uZykgZmluYWw7CiAgICAgdm9pZCBhZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYs
IHVuc2lnbmVkIGxvbmcpIGZpbmFsOwogCi0gICAgLy8gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50
LgotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOwotICAgIHZvaWQgbm90aWZ5RmluaXNoZWQo
KSBmaW5hbDsKLQogICAgIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCkgZmluYWwgeyBy
ZXR1cm4gdGhpczsgfQogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCkBAIC0xMjUsMTUgKzEyMCw2
IEBAIGNsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZSwgcHVibGljIFdvcmtlclNjcmlwCiAgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBV
UkwmKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0aW5nc1Zh
bHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1ZXM7IH0KIAotICAgIHN0
cnVjdCBTY3JpcHRGZXRjaEpvYiB7Ci0gICAgICAgIFVSTCBtb2R1bGVVUkw7Ci0gICAgICAgIEZl
dGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwotICAgICAgICBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+IGNvbXBsZXRpb25IYW5kbGVyOwotICAg
IH07Ci0KLSAgICB2b2lkIHByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5lZWRlZCgpOwotICAg
IHZvaWQgZGlkQ29tcGxldGVTY3JpcHRGZXRjaEpvYihTY3JpcHRGZXRjaEpvYiYmLCBPcHRpb25h
bDxFeGNlcHRpb24+KTsKLQogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAKICAg
ICBSZWY8U2VjdXJpdHlPcmlnaW4+IG1fdG9wT3JpZ2luOwpAQCAtMTQ0LDkgKzEzMCw2IEBAIGNs
YXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSwgcHVibGljIFdvcmtlclNjcmlwCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXI+IG1fbWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI7CiAKLSAg
ICBSZWZQdHI8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKLSAgICBEZXF1ZTxT
Y3JpcHRGZXRjaEpvYj4gbV9zY3JpcHRGZXRjaEpvYnM7Ci0gICAgSGFzaFNldDxVUkw+IG1fZXZh
bHVhdGVkTW9kdWxlczsKICAgICBTZXR0aW5nczo6VmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7CiB9
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMWFkYzI4YTZkNzFlZDhhMzNmZmRmOWRhZDE3OGE1MmE3MDQ4NGQyYy4uNTE1
OTMwZjUzNWQ0YzU1NTc5YmU3NDljNDFkZDg5YTVmMTMwMTYxZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIxLTAyLTEyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSlMgTW9kdWxlcyBpbiBXb3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL21vZHVsZS1zY3JpcHRub25j
ZS1yZWRpcmVjdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zdWJyZXNvdXJj
ZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8v
YXVkaW93b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWJhdWRpby93b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wMi0xMSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjI3MjI5MykgV2ViR0wgMS4wLjIgdGVzdCBleHBlY3RhdGlvbnMgc2F5IEhUVFBTCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA1MWY5ZDZkMmM0YTAwY2ZmMzUzZTJlYWU1MGU2
NzM3NjZkY2Q1YjlhLi4zMDViODM3NWJmMzFiNzYzMmYzYTc1MTMxMzg5MDk2ZmE5YWVlNmRhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAyMS0wMi0x
MiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVs
ZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50
LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3Jr
ZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUv
ZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2Vy
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVy
LTEtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0
aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9kdWxl
d29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi1t
b2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9y
aWdpbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
aW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3Jr
ZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtl
ci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0
LW1ldGEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQt
cmVmZXJyZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3Jr
ZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1w
cm9wZXJ0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmts
ZXRzL2F1ZGlvLXdvcmtsZXQtY3JlZGVudGlhbHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNzcC5odHRwcy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlv
LXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1yZWZlcnJlci5odHRwcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1yZWRpcmVjdGVk
LXdvcmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAyLTExICBTYWlkIEFib3UtSGFs
bGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyBy
MjcwNTc4LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNzllOTBhOTZmMGNkYjZjZTkxMGYyYmNlNWM3
Nzg2MjM5ZGY5ZDkwYi4uNjFhZDFkNWJhNjNiNTZmNDI0NGU4ZGUzYmJhMTA1YjljMjZhNDk4MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC02NDAsNyArNjQwLDYgQEAgZmFzdC9kb20vY29ubmVjdGVk
LXN1YmZyYW1lLWNvdW50ZXItb3ZlcmZsb3cuaHRtbCBbIFNsb3cgXQogWyBEZWJ1ZyBdIGh0dHAv
dGVzdHMvd29ya2Vycy93b3JrZXItbWVzc2FnZXBvcnQtMi5odG1sIFsgU2xvdyBdCiAKICMgU2tp
cCB3b3JrZXJzIHRlc3RzIHRoYXQgYXJlIHRpbWluZyBvdXQgb3IgYXJlIFNoYXJlZFdvcmtlciBy
ZWxhdGVkIG9ubHkKLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25z
dHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9kYXRhLXVybC1zaGFyZWQuaHRtbCBbIFNraXAgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2V4YW1wbGVzL29uY29ubmVj
dC5hbnkuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL2V4YW1wbGVzL29uY29ubmVjdC5hbnkud29ya2VyLmh0bWwgWyBTa2lwIF0KQEAgLTY2Myw3
ICs2NjIsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVk
V29ya2VyLXJlcGxhY2UtRXZlbnRIYW5kbGVyLmFueS5odAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL1NoYXJlZFdvcmtlci1yZXBsYWNlLUV2ZW50SGFuZGxlci5hbnku
d29ya2VyLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9TaGFyZWRXb3JrZXItc2NyaXB0LWVycm9yLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9TaGFyZWRXb3JrZXItc2ltcGxlLmh0bWwgWyBT
a2lwIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2Rl
ZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0
aW9ucy1jcmVkZW50aWFscy5odG1sIFsgU2tpcCBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvU2hhcmVkV29ya2VyIFsgU2tpcCBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS8xLjEvbW9kdWxlLXNjcmlwdG5vbmNlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9tb2R1
bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CmluZGV4IDUwOTkxOWY3YmZkOGNm
OTRjNWQzMzQ3Zjg3YTY0NGQxNTg4NDU5MjEuLmUxNzJkZTRkMDRlMmE1NzQ3Yzc3ZjIyMjI0ZmQ0
NWFjMDUyNTA1ZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9tb2R1bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5LzEuMS9tb2R1bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0
CkBAIC0xLDMgKzEsMiBAQAogQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAu
MTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNP
TlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVk
IGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4KIFRoaXMgdGVzdHMgd2hl
dGhlciBhIGRlZmVycmVkIHNjcmlwdCBsb2FkIGNhdXNlZCBieSBhIHJlZGlyZWN0IGlzIHByb3Bl
cmx5IGFsbG93ZWQgYnkgYSBub25jZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3VicmVzb3VyY2UtaW50ZWdyaXR5L3NyaS1tb2R1bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBlY3Rl
ZC50eHQKaW5kZXggYTAxZDlmMDcyNmZmOTdjNTI1YTUwNDUwNzZiYWU1MTRjODJlZTJlYS4uOTBh
MjkxZWI4MjllZTk4YTc5OGVjMzc0ODUxODRlYTBlOTVhY2M4YiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkv
c3JpLW1vZHVsZS1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw2IEBAIENPTlNPTEUgTUVTU0FHRTog
VHlwZUVycm9yOiBDYW5ub3QgbG9hZCBzY3JpcHQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3N1YnJl
c291cmNlCiBDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogQ2Fubm90IGxvYWQgc2NyaXB0IGh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvcmVzb3VyY2VzL2Nyb3Nz
b3JpZ2luLWFub24tc2NyaXB0LW1vZHVsZS5qcy4gRmFpbGVkIGludGVncml0eSBtZXRhZGF0YSBj
aGVjay4gQ29udGVudCBsZW5ndGg6IDM3LCBFeHBlY3RlZCBjb250ZW50IGxlbmd0aDogMzcsIEV4
cGVjdGVkIG1ldGFkYXRhOiBzaGEyNTYtZGVhZGJlZWZjU0xsYkZaQ2oxT0FDTHhUeFZjazJUT3JC
VEVkVWJ3ejF5VT0KIENPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBDYW5ub3QgbG9hZCBzY3Jp
cHQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N1YnJlc291cmNlLWludGVncml0eS9yZXNvdXJjZXMv
Y3Jvc3NvcmlnaW4tY3JlZHMtc2NyaXB0LW1vZHVsZS5qcy4gRmFpbGVkIGludGVncml0eSBtZXRh
ZGF0YSBjaGVjay4gQ29udGVudCBsZW5ndGg6IDM4LCBFeHBlY3RlZCBjb250ZW50IGxlbmd0aDog
MzgsIEV4cGVjdGVkIG1ldGFkYXRhOiBzaGEyNTYtZGVhZGJlZWYyUytwVFJaZ2l3M0RXcmhDNkpM
RGx0MnpSeUdwd0g3dW5VOD0KIENPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1D
T05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmll
ZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuCiBDT05TT0xFIE1FU1NB
R0U6IFR5cGVFcnJvcjogQ2Fubm90IGxvYWQgc2NyaXB0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
dWJyZXNvdXJjZS1pbnRlZ3JpdHkvcmVzb3VyY2VzL21hdGNoaW5nLWRpZ2VzdC1tb2R1bGUuanMu
IEZhaWxlZCBpbnRlZ3JpdHkgbWV0YWRhdGEgY2hlY2suIENvbnRlbnQgbGVuZ3RoOiAyOSwgRXhw
ZWN0ZWQgY29udGVudCBsZW5ndGg6IDI5LCBFeHBlY3RlZCBtZXRhZGF0YTogc2hhMjU2LWNXaDlu
UGZtN19tUmJLaHphcm5SWWxzSld6NVhUTmNzcVBGektFeCt6U1U9CiBDT05TT0xFIE1FU1NBR0U6
IFR5cGVFcnJvcjogQ2Fubm90IGxvYWQgc2NyaXB0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zdWJy
ZXNvdXJjZS1pbnRlZ3JpdHkvcmVzb3VyY2VzL21hdGNoaW5nLWRpZ2VzdC1tb2R1bGUuanMuIEZh
aWxlZCBpbnRlZ3JpdHkgbWV0YWRhdGEgY2hlY2suIENvbnRlbnQgbGVuZ3RoOiAyOSwgRXhwZWN0
ZWQgY29udGVudCBsZW5ndGg6IDI5LCBFeHBlY3RlZCBtZXRhZGF0YTogc2hhMjU2LVU5V1lEdEJX
a2NIeDEzKzlVS2svM1E1ZW9xRGM0WUd4WWIwN0VQV3piOWU9P2Zvbz1iYXI/c3BhbT1lZ2dzCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxl
L25vbi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUu
YW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNDkyNjliM2I1MGI5MTc1Y2I2MmVjYTMxMmU1
ODZiM2IxNjYyYTI1OS4uMmNhZTVmN2UzNWEzMmZlY2ViMjY4ZjI5MDAwMGU0ZTU1NTZjNjg2MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUv
bm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRp
dmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKLUZBSUwgTm9uLW9i
amVjdDogbnVsbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL251bGwuanNvbicu
IgotRkFJTCBOb24tb2JqZWN0OiB0cnVlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUg
Jy4vdHJ1ZS5qc29uJy4iCi1GQUlMIE5vbi1vYmplY3Q6IGZhbHNlIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1w
b3J0IHRoZSBtb2R1bGUgJy4vZmFsc2UuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBzdHJpbmcg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJy
b3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9zdHJpbmcuanNvbicuIgotRkFJTCBO
b24tb2JqZWN0OiBhcnJheSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2FycmF5
Lmpzb24nLiIKK0ZBSUwgTm9uLW9iamVjdDogbnVsbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29u
JyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6
IHRydWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlw
dCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiBmYWxzZSBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlv
bi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1v
YmplY3Q6IHN0cmluZyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBK
YXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IGFycmF5IHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2Fw
cGxpY2F0aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9j
aGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2tw
b2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQK
aW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uZjY4Y2M3M2I0
ZDY3NGM1NGRmYWZlNTIyMTJiNjQzYzQwMzBmZDQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmds
b2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xv
YmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1I
YXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorRkFJTCBQcm9taXNlIHJl
c29sdmVkIGR1cmluZyAjcmVwb3J0LXRoZS1lcnJvciBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5n
dGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgWyJoYW5kbGVyIDEiLCAiaGFuZGxlciAyIiwgImhh
bmRsZXIgMSBwcm9taXNlIiwgImhhbmRsZXIgMiBwcm9taXNlIl0gbGVuZ3RoIDQsIGdvdCBbXSBs
ZW5ndGggMAorUEFTUyBQcm9taXNlIHJlc29sdmVkIGR1cmluZyBldmVudCBoYW5kbGVycyBvdGhl
ciB0aGFuIGVycm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2Ny
aXB0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlwdHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDUxZDYxMDBlNjEyMmE5N2MzNjRiM2NlYjFkN2ZkMDdlMGUxNTYxMTcu
LmE4MDUwYzA3OGNmOGI4OGQ1NjhhZmZlMGQ1NWNjMzE5MGMzNjU0N2EgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBo
YS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jh
c2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAK
IAotRkFJTCBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMo
KSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJF
cnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2ltcG9ydC5qcz9waXBlPWhlYWRl
cihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9cmVsYXRpdmUtY3Jvc3Mtb3Jp
Z2luIGltcG9ydFNjcmlwdHMoKScuIgotRkFJTCBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHNhbWUt
b3JpZ2luIGltcG9ydFNjcmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICdo
dHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlwZT1oZWFk
ZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLWNyb3NzLW9y
aWdpbiBpbXBvcnRTY3JpcHRzKCknLiIKLVBBU1MgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBjcm9z
cy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpCi1GQUlMIEFic29sdXRlIFVSTC1saWtlIGZyb20gY3Jv
c3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxl
ICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlwZT1o
ZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLWNyb3Nz
LW9yaWdpbiBpbXBvcnRTY3JpcHRzKCknLiIKK1BBU1MgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBz
YW1lLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSBz
YW1lLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKK0ZBSUwgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBj
cm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIGFzc2VydF9lcXVhbHM6IFJlbGF0aXZlIFVSTC1s
aWtlIHNwZWNpZmllciByZXNvbHV0aW9uIHNob3VsZCBmYWlsIGV4cGVjdGVkICIodW5yZWFjaGVk
KSIgYnV0IGdvdCAiZ2FtbWEvaW1wb3J0LmpzIgorUEFTUyBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9t
IGNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJs
LXdvcmtlci5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0
ZWQudHh0CmluZGV4IDg2NmViYjIyN2FkMjZhYWNlMWE1NzhiYWVhNmE4MWRjMGU2ZTc3ZjAuLjVl
NzA2MzQ5MGUyZGZmZWNlODVlYTc2NWFlYmRkZTRiMTZlYjBmYzMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9i
YXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2Vy
LnN1Yi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgUmVsYXRpdmUgVVJMLWxp
a2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUg
bW9kdWxlICcuL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1Pcmln
aW4sKikmbGFiZWw9cmVsYXRpdmUtd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQnLiIKLUZBSUwgQWJz
b2x1dGUgVVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdCBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90
IGltcG9ydCB0aGUgbW9kdWxlICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9nYW1t
YS9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxh
YmVsPWFic29sdXRlLXdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0Jy4iCitQQVNTIFJlbGF0aXZlIFVS
TC1saWtlIGZyb20gd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQKK1BBU1MgQWJzb2x1dGUgVVJMLWxp
a2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ct
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
ZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4
IDg5MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLjJmMTJhMjM0MmZhZDIy
NGUzYTE4YTZmYjVkODQ4MzI1ZWE2Nzc2ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsMyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorUEFT
UyBUZXN0IGV2YWx1YXRpb24gb3JkZXIgb2YgbW9kdWxlcwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUv
ZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZi
YThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uYjg2MWY3MDFmOTQ4ZmIxMzI3NjkzMjJjMzgz
NjZmMmQxMzhmMDRlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEt
d29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElN
RU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK0ZBSUwgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1v
ZHVsZXMgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5
IFsic3RlcC0xLTEiLCAic3RlcC0xLTIiLCAiZ2xvYmFsLWVycm9yIiwgImVycm9yIiwgIm1pY3Jv
dGFzayJdIGxlbmd0aCA1LCBnb3QgWyJzdGVwLTEtMSIsICJzdGVwLTEtMiIsICJtaWNyb3Rhc2si
XSBsZW5ndGggMwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXIt
Mi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQw
ZmFkZGQyMmU0YzFkY2IzYTVmLi5jMWQzOGJkZTUwYzU5ZTVkNTk0MTczZDk2ZjljZDE5ZWIxMDdj
OWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUv
ZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1w
b3J0LXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3Ig
KFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitGQUlMIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBv
ZiBtb2R1bGVzIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBh
cnJheSBbInN0ZXAtMi4yLTEiLCAic3RlcC0yLjItMiIsICJnbG9iYWwtZXJyb3IiLCAiZXJyb3Ii
LCAibWljcm90YXNrLTIuMiJdIGxlbmd0aCA1LCBnb3QgWyJzdGVwLTIuMi0xIiwgInN0ZXAtMi4y
LTIiLCAibWljcm90YXNrLTIuMiJdIGxlbmd0aCAzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXgg
ODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uMmYxMmEyMzQyZmFkMjI0
ZTNhMThhNmZiNWQ4NDgzMjVlYTY3NzZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitQQVNT
IFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDEyZDk0YTkxZWYxZjhhYjBhMTg3Yzc0OWIwZGRlYzY5NmQxMTg4ZTcuLmI0ZDY4YWYwNTZl
ZWY2MjJhMzNkNTRmMDc2ZjM4MWQ0ZTFiYjI5YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
Miw4ICsyLDggQEAKIEZBSUwgU3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJvcjogVW5l
eHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1l
bnQuIgogRkFJTCBOZXN0ZWQgc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJvcjogVW5l
eHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1l
bnQuIgogRkFJTCBTdGF0aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LiBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBl
eGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIER5bmFtaWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlf
ZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291
bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwg
ZXhwZWN0ZWQgYXJyYXkKLUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlf
ZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291
bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1keW5hbWljLWltcG9ydC1zY3Jp
cHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlMIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0
YXRpYyBpbXBvcnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8g
ZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhw
b3J0LW9uLXN0YXRpYy1pbXBvcnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBl
dmFsKGltcG9ydCgpKS4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBk
byBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9l
eHBvcnQtb24tbG9hZC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5CitQQVNTIER5bmFtaWMg
aW1wb3J0LgorUEFTUyBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMgaW1wb3J0
IGFuZCB0aGVuIHN0YXRpYyBpbXBvcnQuCitQQVNTIGV2YWwoaW1wb3J0KCkpLgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
YmFzZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2Fs
cGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGRkOWFmMzhmZjA5
ZmJlYzFmYWMwYjhmNWVhOWJhZDZlMzE2MzY0OWQuLjUxZWIzNjYzOGMxY2E3ZDA2MGI3Njc1OTI2
ZmNjNzBjNWJmMDc2ZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3Jr
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjog
VW5leHBlY3RlZCBpZGVudGlmaWVyICdyJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9u
ZSBhcmd1bWVudC4KIAotRkFJTCBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6
IGltcG9ydCBhc3NlcnRfdW5yZWFjaGVkOiBHb3QgZXJyb3IgZXZlbnQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCitQQVNTIEJhc2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2VyczogaW1w
b3J0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dApp
bmRleCBhYjVhN2ZiODkwMjBmMjlmZDg5M2E3NTY4MGZmZTE3ZDNkMzUwZjdjLi5hYjUzYjgwNTk5
YWUwMTk1NzgwODVlZTQ0YWFlZmE0Yzc5NTUyNjg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBv
cnRTY3JpcHRzLWluLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2Ny
aXB0cy1pbi13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIGltcG9y
dFNjcmlwdHMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImdhbW1hL3NjcmlwdC5qcyIgYnV0IGdv
dCAiYmV0YS9zY3JpcHQuanMiCitQQVNTIGltcG9ydFNjcmlwdHMKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwv
YWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4t
bW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4M2YzNjdmMmNmM2E2NmM2NGE2MjY0Mjk0
NjU2ZDVlODgxZDFjMTFjLi4yOGIwY2I0MDAxMzkyZDA4ODdhNGZlYmU2ODFjMWUxNTFkMGRmMThi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
YmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsx
LDMgQEAKIAotRkFJTCBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IFhIUiBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZ2FtbWFcbiIgYnV0IGdvdCAiYmV0YVxuIgorUEFTUyBC
YXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IFhIUgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVy
bC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3Jr
ZXItZXhwZWN0ZWQudHh0CmluZGV4IGQ2YjA4ZWVkYWU2ZjY5NmM3YTRiZmE2NTVlMTNiNWVkNDYw
N2VhMDEuLmVhMTQ1NGQ5YjNmMjBmODVkOTAxNmM1MDZhMTU0NmFmNjE3ODQyZDAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9i
YXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3ho
ci1pbi13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIHhoci13b3Jr
ZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImdhbW1hXG4iIGJ1dCBnb3QgImJldGFcbiIKK1BB
U1MgeGhyLXdvcmtlcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKaW5k
ZXggODMxZjBjNThjNjk0YzJkNGZlYmQ2ZDhkMGFmMzA3YjEwOTQ0MmE2ZS4uZDU1NWVlN2NmM2Zj
NzJlZmI4MmRmOWRiN2RhZDM2N2Y5YWI3ZmZiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIv
c2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2lu
LWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSwxMSBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VU
KSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyB1bnN1cHBvcnRlZF9zY2hlbWUKIEZBSUwgZGF0YV91
cmwgVGhlIG9wZXJhdGlvbiBpcyBpbnNlY3VyZS4KLVRJTUVPVVQgYWJvdXRfYmxhbmsgVGVzdCB0
aW1lZCBvdXQKLVRJTUVPVVQgZXhhbXBsZV9pbnZhbGlkIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VU
IHBvcnRfODEgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgaHR0cHNfcG9ydF84MCBUZXN0IHRpbWVk
IG91dAotVElNRU9VVCBodHRwc19wb3J0XzgwMDAgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgaHR0
cF9wb3N0XzgwMTIgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgamF2YXNjcmlwdF91cmwgVGVzdCB0
aW1lZCBvdXQKK1BBU1MgYWJvdXRfYmxhbmsKK1BBU1MgZXhhbXBsZV9pbnZhbGlkCitQQVNTIHBv
cnRfODEKK1BBU1MgaHR0cHNfcG9ydF84MAorUEFTUyBodHRwc19wb3J0XzgwMDAKK1BBU1MgaHR0
cF9wb3N0XzgwMTIKK1BBU1MgamF2YXNjcmlwdF91cmwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29y
a2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29y
a2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0CmluZGV4IGYxNzQx
ZjlkOGJmMDcwMzI3MGQyZTM3NjJkYmNiZTI2YzBiOTAwNTkuLjNiMGRmYjM1ZTUxY2QxYTg1NDU1
MzAxOWMwZTQwM2RiZTJmMWQzM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3Bl
L2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxT
Y29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZB
SUwgV29ya2VyTG9jYXRpb24gd2l0aCByZWRpcmVjdHM6IGNsYXNzaWMgZGVkaWNhdGVkIHdvcmtl
cnMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJz
L2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcG9zdC1sb2NhdGlvbi1tZW1i
ZXJzLmpzP2EiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2ludGVyZmFj
ZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vaGVscGVyLXJlZGlyZWN0LnB5P2ZhaWwiCitQ
QVNTIFdvcmtlckxvY2F0aW9uIHdpdGggcmVkaXJlY3RzOiBjbGFzc2ljIGRlZGljYXRlZCB3b3Jr
ZXJzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGly
ZWN0LW1vZHVsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlv
bi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0CmluZGV4IGRjMmUyZTIwN2RiMDAxZWU3MGU3
MzMwN2QyN2JiMzM1NzIwZmQ1NTkuLmIzYmY4MWVlODY4MWI5ZGMwODBmNTgwMjcxZThiOGYzOTA5
NjU0OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGly
ZWN0LW1vZHVsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9j
YXRpb24vcmVkaXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJ
TCBXb3JrZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJz
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9p
bnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3Bvc3QtbG9jYXRpb24tbWVtYmVy
cy5qcz9hIiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2Vz
L1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL2hlbHBlci1yZWRpcmVjdC5weT9mYWlsIgorUEFT
UyBXb3JrZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJz
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhw
ZWN0ZWQudHh0CmluZGV4IDIwYWMxN2Q1NjNjNGIzYTQ2MWYwY2FhZmJlYWVlYmQ3MTNmOTcwODEu
LmRjY2VkY2NkMzY4ZTFmZjE3YjFkZDEzNmU0NTNmZWM0ZmUxMGJjODMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVs
ZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dApAQCAt
MSwxOCArMSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0
cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291
cmNlcy9zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3Rs
eSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVk
IHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jl
c291cmNlcy9uZXN0ZWQtc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBl
Y3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjog
VW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMv
bW9kdWxlcy9yZXNvdXJjZXMvc3RhdGljLWltcG9ydC1hbmQtdGhlbi1keW5hbWljLWltcG9ydC13
b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09O
U09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0
cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBv
cnQtd29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4K
LUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwg
Imh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1k
eW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25l
IGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJp
bmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJj
ZXMvZHluYW1pYy1pbXBvcnQtYW5kLXRoZW4tc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBv
cnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBT
eW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4
ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXZhbC1keW5hbWljLWltcG9ydC13b3JrZXIu
anMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgogCi1IYXJuZXNz
IEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBs
aXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9k
eW5hbWljLWltcG9ydC1hbmQtdGhlbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBj
YWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi0KLUZBSUwgU3RhdGljIGltcG9ydC4g
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJv
cjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3Jr
ZXJzL21vZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBj
YWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBOZXN0ZWQgc3RhdGljIGlt
cG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50
YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgw
MC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1zdGF0aWMtaW1wb3J0LXdvcmtlci5q
c1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgU3Rh
dGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcg
bGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2Vz
L3N0YXRpYy1pbXBvcnQtYW5kLXRoZW4tZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9y
dCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGltcG9y
dC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhF
cnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93
b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBv
cnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVkIGR5bmFt
aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
IlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9z
dDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvbmVzdGVkLWR5bmFtaWMtaW1wb3J0LXdv
cmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZB
SUwgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBz
dHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL2R5bmFtaWMtaW1wb3J0LWFuZC10aGVuLXN0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIu
IGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBldmFsKGlt
cG9ydCgpKS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJT
eW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6
ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V2YWwtZHluYW1pYy1pbXBvcnQtd29ya2Vy
LmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgorUEFTUyBT
dGF0aWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BBU1MgU3RhdGljIGlt
cG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQuCitQQVNT
IE5lc3RlZCBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3Rh
dGljIGltcG9ydC4KK1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2Vy
LWltcG9ydC1jc3AtZXhwZWN0ZWQudHh0CmluZGV4IDFkYTQ2YjkyNmJlMDg5NmVlOGY3NWE3OGRj
YWU0ZjI2OWIwNTA5MmIuLjIzOWNjOWNlMTUzMDFmN2VlZDgzZDVlYjIyMzBhOWRlMjk0ZWEyZWQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dApAQCAtMSwx
MyArMSwyMiBAQAogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0
eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29n
bml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAor
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0
My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxv
Y2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93
b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3Jr
ZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBN
RVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3
b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3
MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2Fk
LXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0
eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3Vy
Y2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2Vz
L2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQg
Q29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3Jr
ZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogCiBQQVNTIHdv
cmtlci1zcmMgJ3NlbGYnIGRpcmVjdGl2ZSBzaG91bGQgZGlzYWxsb3cgY3Jvc3Mgb3JpZ2luIHN0
YXRpYyBpbXBvcnQuCiBGQUlMIHdvcmtlci1zcmMgKiBkaXJlY3RpdmUgc2hvdWxkIGFsbG93IGNy
b3NzIG9yaWdpbiBzdGF0aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBw
cm9wZXJ0eSAwIHRvIGJlICJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiIGJ1dCBnb3QgIkVSUk9S
IiAoZXhwZWN0ZWQgYXJyYXkgWyJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiXSBnb3QgWyJFUlJP
UiJdKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtZmFpbHVyZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4
dAppbmRleCA5NWM2ZDE1ZGY0NGUxOGEzNWRmZWIwZmEzOWM4ZDM4NDQyMGMyYzEzLi5lOTU1Nzhl
NzFiMWM1MGE0ZTA0NzFiMDM3MTU0YjM4NmIzN2FlZDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKLUNPTlNP
TEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgJy4vbm9u
LWV4aXN0ZW50LXNjcmlwdC5qcycuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJn
dW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVk
LgogCi1GQUlMIGltcG9ydFNjcmlwdHMoKSBvbiBtb2R1bGUgd29ya2VyIHNob3VsZCB0aHJvdyBh
biBleGNlcHRpb24uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJUeXBlRXJyb3IiIGJ1dCBnb3Qg
IkxPQURFRCIKK1BBU1MgaW1wb3J0U2NyaXB0cygpIG9uIG1vZHVsZSB3b3JrZXIgc2hvdWxkIHRo
cm93IGFuIGV4Y2VwdGlvbi4KIFBBU1MgV29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igbm9uLWV4aXN0
ZW50IHNjcmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KIFBBU1MgU3RhdGljIGlt
cG9ydCBmb3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVu
dC4KLUZBSUwgRHluYW1pYyBpbXBvcnQgZm9yIG5vbi1leGlzdGVudCBzY3JpcHQgc2hvdWxkIHRo
cm93IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlR5cGVFcnJvciIgYnV0
IGdvdCAiRXJyb3IiCitQQVNTIER5bmFtaWMgaW1wb3J0IGZvciBub24tZXhpc3RlbnQgc2NyaXB0
IHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rpb24gZm9y
IGFuIGludmFsaWQgVVJMIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBj
b25zdHJ1Y3Rpb24gZm9yIGEgZmlsZSBVUkwgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9k
dWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAppbmRleCBkNTgw
NjIwNDFjM2U2OTUxNWI4MTVlMDJkN2MzODY4NGQ3N2M3NmI3Li43NzI5MWJhYTFhNDE4NGJlYmU3
YWQ3YjVkOWYxMTljNzFhNzhkZTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWlt
cG9ydC1tZXRhLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1t
ZXRhLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDUgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4
RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCiAKLUhhcm5l
c3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9u
bHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCi0KLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24g
dGhlIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5IHZhbGlk
IGluc2lkZSBtb2R1bGVzLiIKLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9y
dGVkIG1vZHVsZSBzY3JpcHQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQot
RkFJTCBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3
aXRoIGEgZnJhZ21lbnQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQuCitQ
QVNTIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2NyaXB0Lgor
UEFTUyBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3
aXRoIGEgZnJhZ21lbnQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0
LW1ldGEuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRtbAppbmRleCBj
ZmY4ZTkxNDg4ZTgyMzlhYmUyMTM2MTlkMTJkNWE2MDMwNzJmYmVhLi5lZGUyNjkyZTFjNjM0MWJl
ZmZjOTAxMGM0MWI4ZjRjZmU0MzgzMjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2Vy
LWltcG9ydC1tZXRhLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS5o
dG1sCkBAIC01Myw3ICs1Myw3IEBACiAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgnLi8nICsg
c2NyaXB0X3VybCArICcjMScpOwogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB3b3JrZXIub25tZXNzYWdlID0gcmVzb2x2ZSk7CiAgICAgICB9KQotICAgICAgLnRoZW4obXNn
X2V2ZW50ID0+IGFzc2VydF90cnVlKG1zZ19ldmVudC5kYXRhLmVuZHNXaXRoKHNjcmlwdF91cmwp
KSk7CisgICAgICAudGhlbihtc2dfZXZlbnQgPT4gYXNzZXJ0X3RydWUobXNnX2V2ZW50LmRhdGEu
ZW5kc1dpdGgoc2NyaXB0X3VybCArICcjMScpKSk7CiB9LCAnVGVzdCBpbXBvcnQubWV0YS51cmwg
b24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQgd2l0aCBhIGZyYWdtZW50LicpOwogCiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4cGVjdGVk
LnR4dAppbmRleCA2ZGM0MmMxY2ZkMzM0OGFmZGQxZGZkM2IxMGE1MDQ3MDU1MzAxOTZhLi5mZTFi
OWQ5M2MwODAxMWI1MGU5NDFmNGUxMjM2MDY3YWJiZDNmMjNlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNh
dGVkLXdvcmtlci1pbXBvcnQtcmVmZXJyZXItZXhwZWN0ZWQudHh0CkBAIC0xLDE5ICsxLDIzIEBA
Ci0KLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2Vz
cyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9k
dWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNjZXNz
IHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1
bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxl
cy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNjZXNzIHRv
IGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVz
L3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQogCiBQQVNTIFNhbWUtb3JpZ2lu
IHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0IGxvYWRpbmcgd2l0aCAibm8tcmVmZXJyZXIiIHJlZmVy
cmVyIHBvbGljeQogUEFTUyBTYW1lLW9yaWdpbiB0b3AtbGV2ZWwgbW9kdWxlIHNjcmlwdCBsb2Fk
aW5nIHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5CiBQQVNTIFNhbWUtb3JpZ2luIHRvcC1s
ZXZlbCBtb2R1bGUgc2NyaXB0IGxvYWRpbmcgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBv
bGljeQotRkFJTCBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiBy
ZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLUZBSUwgU2FtZS1vcmlnaW4gc3Rh
dGljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVy
cm9yIgotRkFJTCBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiBy
ZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK1BBU1MgU2FtZS1vcmlnaW4gc3Rh
dGljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LgorUEFTUyBTYW1l
LW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgorUEFT
UyBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBw
b2xpY3kuCiBGQUlMIENyb3NzLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVy
IiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKIEZBSUwgQ3Jvc3Mtb3JpZ2lu
IHN0YXRpYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlw
ZSBlcnJvciIKIEZBSUwgQ3Jvc3Mtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAic2FtZS1vcmln
aW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotVElNRU9VVCBTYW1lLW9y
aWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LiBU
ZXN0IHRpbWVkIG91dAotTk9UUlVOIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9y
aWdpbiIgcmVmZXJyZXIgcG9saWN5LgotTk9UUlVOIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0
IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gQ3Jvc3Mtb3JpZ2lu
IGR5bmFtaWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuCi1OT1RS
VU4gQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9s
aWN5LgotTk9UUlVOIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdp
biIgcmVmZXJyZXIgcG9saWN5LgorRkFJTCBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRo
ICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
IiBidXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNl
cy9keW5hbWljLWltcG9ydC1zYW1lLW9yaWdpbi1yZWZlcnJlci1jaGVja2VyLXdvcmtlci5qcyIK
K0ZBSUwgU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBw
b2xpY3kuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvIiBi
dXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9k
eW5hbWljLWltcG9ydC1zYW1lLW9yaWdpbi1yZWZlcnJlci1jaGVja2VyLXdvcmtlci5qcyIKK1BB
U1MgU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVy
IHBvbGljeS4KK0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm5vLXJlZmVy
cmVyIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgQ3Jvc3Mtb3Jp
Z2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IFR5cGUgZXJyb3IiCitGQUlMIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJzYW1l
LW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGEyM2E1NTc1ZGI0Mjc0
MjdmODViZDZiNjM1NGRlODgzODMxZmUyYjQuLmRjY2VkY2NkMzY4ZTFmZjE3YjFkZDEzNmU0NTNm
ZWM0ZmUxMGJjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVk
LnR4dApAQCAtMSwxNCArMSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4
cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVu
dC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBp
bXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdF
OiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMg
ZXhhY3RseSBvbmUgYXJndW1lbnQuCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0g
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4
YWN0bHkgb25lIGFyZ3VtZW50LgotCi1GQUlMIFN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQg
dG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZB
SUwgTmVzdGVkIHN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQg
Y2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgU3RhdGljIGltcG9ydCBh
bmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBj
YWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGltcG9ydC4g
YXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9y
dDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tbG9hZC1z
Y3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlMIE5lc3RlZCBkeW5hbWljIGltcG9ydC4g
YXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9y
dDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tZHluYW1p
Yy1pbXBvcnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBEeW5hbWljIGltcG9y
dCBhbmQgdGhlbiBzdGF0aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAi
RmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUg
bW9kdWxlICcuL2V4cG9ydC1vbi1zdGF0aWMtaW1wb3J0LXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQg
YXJyYXkKLUZBSUwgZXZhbChpbXBvcnQoKSkuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlz
ICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRo
ZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQor
UEFTUyBTdGF0aWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BBU1MgU3Rh
dGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQu
CitQQVNTIE5lc3RlZCBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQgYW5kIHRo
ZW4gc3RhdGljIGltcG9ydC4KK1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRl
ZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dAppbmRleCBkYTBlNGViNjc1OGQxNGEz
N2EzOThkMGI2ZmM3MWFkMzg3NmJkMjZiLi4xZmMwYzY2ZmRmNzI0YzJhYTNiOTEwNjk4MGJmYmU3
ZTk4OGY5NzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0
ZWQudHh0CkBAIC0yLDExICsyLDYgQEAKIFBBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdp
dGggdGhlIGRlZmF1bHQgd29ya2VyIHR5cGUuCiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlv
biB3aXRoIHRoZSAiY2xhc3NpYyIgd29ya2VyIHR5cGUuCiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0
cnVjdGlvbiB3aXRoIHRoZSAibW9kdWxlIiB3b3JrZXIgdHlwZS4KLUZBSUwgVGVzdCB3b3JrZXIg
Y29uc3RydWN0aW9uIHdpdGggYW4gZW1wdHkgd29ya2VyIHR5cGUuIGFzc2VydF90aHJvd3NfanM6
IFdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiBlbXB0eSB0eXBlIHNob3VsZCB0aHJvdyBhbiBl
eGNlcHRpb24gZnVuY3Rpb24gIigpID0+IHsKLSAgICAgICAgbmV3IFdvcmtlcigncmVzb3VyY2Vz
L3Bvc3QtbWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcycsIHsgdHlwZTogJycgfSk7Ci0gICAgICB9
IiBkaWQgbm90IHRocm93Ci1GQUlMIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIHVu
a25vd24gd29ya2VyIHR5cGUuIGFzc2VydF90aHJvd3NfanM6IFdvcmtlciBjb25zdHJ1Y3Rpb24g
d2l0aCBhbiB1bmtub3duIHR5cGUgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiBmdW5jdGlvbiAi
KCkgPT4gewotICAgICAgICBuZXcgV29ya2VyKCdyZXNvdXJjZXMvcG9zdC1tZXNzYWdlLW9uLWxv
YWQtd29ya2VyLmpzJywKLSAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICd1bmtub3duJyB9KTsK
LSAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdp
dGggYW4gZW1wdHkgd29ya2VyIHR5cGUuCitQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3
aXRoIGFuIHVua25vd24gd29ya2VyIHR5cGUuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13
b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQudHh0CmluZGV4IGU4ZWI1NDBiZDMzOTI0
MDBhOGRiZmQ5Mzg2NDhhNjQ5MjM5YzBkOWUuLmQxYTUwZjdlYTNjZDZkYzI5OGVmNzU0MTQ3NzYy
YzY5YzU3ZDczYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3It
ZmFpbHVyZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1lcnJv
ci1mYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDE0IEBACi1DT05TT0xFIE1FU1NBR0U6
IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBl
eGFjdGx5IG9uZSBhcmd1bWVudC4KK0NPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gJzsnCitDT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVk
IHRva2VuICc7JwogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IEVycm9yOiBhc3Nl
cnRfaW1wbGVtZW50czogU3RhdGljIGltcG9ydCBtdXN0IGJlIHN1cHBvcnRlZCBvbiBtb2R1bGUg
ZGVkaWNhdGVkIHdvcmtlciB0byBydW4gdGhpcyB0ZXN0LiB1bmRlZmluZWQKLQotTk9UUlVOIE1v
ZHVsZSB3b3JrZXIgY29uc3RydWN0aW9uIGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJyb3Igc2hv
dWxkIGRpc3BhdGNoIGFuIGV2ZW50IG5hbWVkIGVycm9yLgotTk9UUlVOIFN0YXRpYyBpbXBvcnQg
b24gbW9kdWxlIHdvcmtlciBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNob3VsZCBkaXNw
YXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4KK0ZBSUwgTW9kdWxlIHdvcmtlciBjb25zdHJ1Y3Rp
b24gZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJvciBzaG91bGQgZGlzcGF0Y2ggYW4gZXZlbnQg
bmFtZWQgZXJyb3IuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZ1bmN0aW9uICJmdW5jdGlvbiBF
dmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiBidXQgZ290IGZ1bmN0aW9uICJmdW5jdGlv
biBFcnJvckV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iCitGQUlMIFN0YXRpYyBpbXBv
cnQgb24gbW9kdWxlIHdvcmtlciBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNob3VsZCBk
aXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZnVu
Y3Rpb24gImZ1bmN0aW9uIEV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iIGJ1dCBnb3Qg
ZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yRXZlbnQoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQu
dHh0CmluZGV4IDYzOTg0NzEyMTQ1OWE3YWIzN2I5ZjA5YTY4YmE2NGVhOGE5ZWQ1N2MuLmU5NDY5
NDdiMTRhZWYzZTUyOTlhMGFiYTNhZTRiMWNmOWZjZDk1NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw4IEBA
CiBDT05TT0xFIE1FU1NBR0U6IFVuaGFuZGxlZCBQcm9taXNlIFJlamVjdGlvbjogUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgogCi1GQUlMIFRlc3QgdGhl
IG5hbWUgcHJvcGVydHkgb2Ygc2hhcmVkIGFuZCBkZWRpY2F0ZWQgd29ya2VycyB2aWEgdGhlIG5h
bWUgY29uc3RydWN0b3Igb3B0aW9uIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgot
UEFTUyBEZWNsYXJpbmcgbmFtZSBhcyBhbiBhY2NpZGVudGFsIGdsb2JhbCBtdXN0IG5vdCBjYXVz
ZSBhIGhhcm5lc3MgZXJyb3IgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCitIYXJuZXNz
IEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IENhbid0IGZpbmQg
dmFyaWFibGU6IFNoYXJlZFdvcmtlcgorCiBQQVNTIG5hbWUgcHJvcGVydHkgdmFsdWUgZm9yIERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCiBQQVNTIG5hbWUgcHJvcGVydHkgaXMgcmVwbGFjZWFi
bGUgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCitQQVNTIERlY2xhcmluZyBuYW1lIGFz
IGFuIGFjY2lkZW50YWwgZ2xvYmFsIG11c3Qgbm90IGNhdXNlIGEgaGFybmVzcyBlcnJvciBmb3Ig
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNyZWRl
bnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jcmVkZW50aWFscy5odHRwcy1l
eHBlY3RlZC50eHQKaW5kZXggZjA2OTFhYTA5Y2M0OWNkZjdmMmE5NDM3NGM2ZTYyMjIwZjkzYjhl
Mi4uYTU3MGQ4ZDI5MmZhODU2MjEyYjA1NDc4ODIwZjEzMGY4MWQ5YmJmNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRp
by13b3JrbGV0LWNyZWRlbnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQt
Y3JlZGVudGlhbHMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDExIEBACiBDT05TT0xF
IE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5
IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIAotRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9y
aWdpbiBzY3JpcHQgd2l0aCB0aGUgZGVmYXVsdCBXb3JrbGV0T3B0aW9ucyBzaG91bGQgc2VuZCB0
aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFJl
c3BvbnNlIGlzIG5vdCAyeHgiCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3
aXRoIHRoZSBkZWZhdWx0IFdvcmtsZXRPcHRpb25zIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFs
cyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJB
Ym9ydEVycm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQQVNTIEltcG9y
dGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggdGhlIGRlZmF1bHQgV29ya2xldE9wdGlv
bnMgc2hvdWxkIG5vdCBzZW5kIHRoZSBjcmVkZW50aWFscwotRkFJTCBJbXBvcnRpbmcgYSBzYW1l
LW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1vbWl0IHNob3VsZCBub3Qgc2VuZCB0aGUg
Y3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFJlc3Bv
bnNlIGlzIG5vdCAyeHgiCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRo
IGNyZWRlbnRpYWxzPW9taXQgc2hvdWxkIG5vdCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9y
OiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQQVNTIEltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9b21pdCBzaG91bGQgbm90IHNlbmQg
dGhlIGNyZWRlbnRpYWxzCi1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRo
IGNyZWRlbnRpYWxzPXNhbWUtb3JpZ2luIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVy
cm9yOiBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogUmVzcG9uc2UgaXMgbm90IDJ4eCIK
K0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9c2Ft
ZS1vcmlnaW4gc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEltcG9ydGluZyBh
IG1vZHVsZSBzY3JpcHQgZmFpbGVkLiIKIFBBU1MgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBz
Y3JpcHQgd2l0aCBjcmVkZW50aWFscz1zYW1lLW9yaWdpbiBzaG91bGQgbm90IHNlbmQgdGhlIGNy
ZWRlbnRpYWxzCi1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRl
bnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEZhaWxl
ZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiBSZXNwb25zZSBpcyBub3QgMnh4IgotRkFJTCBJbXBv
cnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPWluY2x1ZGUgc2hv
dWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBtb2R1bGUs
IGVycm9yOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uIgorRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdp
biBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1pbmNsdWRlIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50
aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJBYm9ydEVycm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCitGQUlMIElt
cG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9aW5jbHVkZSBz
aG91bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBs
b2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1j
c3AuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGJmMzM1Y2YzMDU1ZTA2NWIzODk4OWI0MWFhMWUy
MzZmZWI0YWMyOWQuLjI3NWIzNDM3ZmFkOTc1M2E2ZWNlMjQyMDBlYWJmMjU3ZmZkNjI3MmEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2xldHMvYXVkaW8td29ya2xldC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xl
dC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQwICsxLDUyIEBACitCbG9ja2VkIGFjY2Vz
cyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jl
c291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9ja2Vk
IGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmts
ZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitC
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQz
L3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVy
LmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9z
dDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMt
aGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxv
Y2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRo
LWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93
d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlw
dC13aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250
ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCiBDT05TT0xFIE1F
U1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dv
cmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cx
LmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13
aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50
LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCiBDT05TT0xFIE1FU1NB
R0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtl
ci1zcmMnLgogCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5
LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9l
bXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6
IFtibG9ja2VkXSBUaGUgcGFnZSBhdCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jl
c291cmNlcy9hZGRtb2R1bGUtd2luZG93Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkg
aW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrbGV0cy9yZXNv
dXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcy4KIAogQ09OU09M
RSBNRVNTQUdFOiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My93
b3JrbGV0cy9yZXNvdXJjZXMvYWRkbW9kdWxlLXdpbmRvdy5odG1sIHdhcyBub3QgYWxsb3dlZCB0
byBkaXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29y
a2xldHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMu
CiAKK0NPTlNPTEUgTUVTU0FHRTogW2Jsb2NrZWRdIFRoZSBwYWdlIGF0IGh0dHBzOi8vbG9jYWxo
b3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2FkZG1vZHVsZS13aW5kb3cuaHRtbCB3YXMgbm90
IGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDovL2xvY2FsaG9z
dDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMt
aGVhZGVyLmpzLgorCitDT05TT0xFIE1FU1NBR0U6IFtibG9ja2VkXSBUaGUgcGFnZSBhdCBodHRw
czovL2xvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9hZGRtb2R1bGUtd2luZG93Lmh0
bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6
Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQt
d2l0aC1jb3JzLWhlYWRlci5qcy4KKwogCiBGQUlMIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNo
b3VsZCBiZSBibG9ja2VkIGJ5IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBkaXJlY3RpdmUuIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCi1GQUlMIEEg
c2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91
bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgorUEFTUyBBIHNh
bWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxk
IGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4KIEZBSUwgQSBy
ZW1vdGUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hv
dWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNPTFZFRCIKIEZBSUwgQSBy
ZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgYmUgYmxvY2tlZCBieSB0aGUg
c2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVK
RUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgotRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1w
b3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tl
ZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgorUEFTUyBBIHNhbWUtb3JpZ2luIHdv
cmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQg
YmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLgogUEFTUyBBIHJl
bW90ZS1vcmlnaW4gd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2Ny
aXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KLVBBU1Mg
QSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNo
b3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVj
aWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgorRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQg
aW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJl
Y2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxv
d3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNU
RUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmln
aW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRp
cmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgogUEFTUyBBIHJlbW90ZS1v
cmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRo
ZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0Lgot
UEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRp
cmVjdGVkIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNy
YyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1l
LW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3Jp
cHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZl
IHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3Jr
bGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0
aXZlIGFsbG93cyBpdC4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3Jp
cHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0
IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBi
ZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4gYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSByZW1vdGUt
b3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5v
dCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0
LgogUEFTUyBBIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBub3QgYmUg
YmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4KLVBB
U1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJl
Y3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMg
KiBkaXJlY3RpdmUgYWxsb3dzIGl0LgorRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0
aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2Nr
ZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVt
b3RlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNy
YyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2
ZS4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4g
c2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUg
YmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KK0ZBSUwgQSBz
YW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3Vs
ZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3Jr
bGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIlJFU09MVkVEIiBidXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSByZW1vdGUtb3JpZ2luIHdv
cmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9j
a2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdvcmtsZXRzIG9iZXkgdGhl
IHNjcmlwdC1zcmMgZGlyZWN0aXZlLgogUEFTUyBBIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCB3
b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUg
YmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KLVBBU1MgQSBz
YW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBz
Y3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBi
ZWNhdXNlIHdvcmtsZXRzIG9iZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLgorRkFJTCBBIHNh
bWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNj
cmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJl
Y2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEFuIGluc2Vj
dXJlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29u
dGVudHMuCiBQQVNTIEFuIGluc2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVkIHdvcmtsZXQgc2hvdWxk
IGJlIGJsb2NrZWQgYmVjYXVzZSBvZiBtaXhlZCBjb250ZW50cy4KLUZBSUwgQSBzYW1lLW9yaWdp
biB3b3JrbGV0IGltcG9ydGluZyBhbiBpbnNlY3VyZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBiZSBi
bG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCi1GQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xl
dCBpbXBvcnRpbmcgYW4gaW5zZWN1cmUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBi
ZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCitQQVNTIEEgc2FtZS1vcmlnaW4gd29y
a2xldCBpbXBvcnRpbmcgYW4gaW5zZWN1cmUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tl
ZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLgorUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQg
aW1wb3J0aW5nIGFuIGluc2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUg
YmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmts
ZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMtZXhw
ZWN0ZWQudHh0CmluZGV4IGZlODk2NWFlZjZjYWRhMjIxOWVmOGUzMDg4OGJhOTFlMjQwMTdhYzAu
LjY3NjQ3ZDQ2ODdiOWQzY2ZjODZlMGIyYzhmNTY4ZTIwZjViZWMzOTQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8t
d29ya2xldC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xNiw3ICsxNiw3IEBAIFBBU1MgSW1wb3J0aW5nIGEgY3Jv
c3Mgb3JpZ2luIHJlc291cmNlIHdpdGggdGhlIEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiBo
ZWFkCiBQQVNTIEltcG9ydGluZyBhIGNyb3NzIG9yaWdpbiByZXNvdXJjZSB3aXRob3V0IHRoZSBB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4gaGVhZGVyIHNob3VsZCByZWplY3QgdGhlIGdpdmVu
IHByb21pc2UKIFBBU1MgSW1wb3J0aW5nIGEgY3Jvc3Mtb3JpZ2luLXJlZGlyZWN0ZWQgcmVzb3Vy
Y2Ugd2l0aCB0aGUgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhlYWRlciBzaG91bGQgcmVz
b2x2ZSB0aGUgZ2l2ZW4gcHJvbWlzZQogUEFTUyBJbXBvcnRpbmcgYSBjcm9zcy1vcmlnaW4tcmVk
aXJlY3RlZCByZXNvdXJjZSB3aXRob3V0IHRoZSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4g
aGVhZGVyIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UKLUZBSUwgSW1wb3J0aW5nIGEg
c2NyaXB0IHRoYXQgaGFzIGEgc3ludGF4IGVycm9yIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHBy
b21pc2UuIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQg
UmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEltcG9ydGluZyBhIG5lc3RlZCBzY3JpcHQg
dGhhdCBoYXMgYSBzeW50YXggZXJyb3Igc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4g
YXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVk
IHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaW1wb3J0cyBh
biBpbnZhbGlkIGlkZW50aWZpZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4gYXNz
ZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVu
cmVhY2hhYmxlIGNvZGUKK1BBU1MgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaGFzIGEgc3ludGF4
IGVycm9yIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuCitQQVNTIEltcG9ydGluZyBh
IG5lc3RlZCBzY3JpcHQgdGhhdCBoYXMgYSBzeW50YXggZXJyb3Igc2hvdWxkIHJlamVjdCB0aGUg
Z2l2ZW4gcHJvbWlzZS4KK1BBU1MgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaW1wb3J0cyBhbiBp
bnZhbGlkIGlkZW50aWZpZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
bGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xl
dC1yZWZlcnJlci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMjRkNDk5YzE0MWNlZTZkYzliMmVi
ZTI0YmZiNGZmNGMwM2EwYTk3My4uOWY2ZDExMzA1OWQ5ZmFkNTBjNjMwMDdiN2ZjZDJjYmQ2NzI3
NzY1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRz
L2F1ZGlvLXdvcmtsZXQtcmVmZXJyZXIuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsOCBA
QAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6
OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvcmVmZXJyZXItY2hlY2tlci5weT9yZWZlcnJlcl9wb2xp
Y3k9bm8tcmVmZXJyZXImZXhwZWN0ZWRfcmVmZXJyZXI9CitCbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9y
ZWZlcnJlci1jaGVja2VyLnB5P3JlZmVycmVyX3BvbGljeT1vcmlnaW4mZXhwZWN0ZWRfcmVmZXJy
ZXI9aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My8KK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHBz
Oi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ct
T3JpZ2luLgorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2Nh
bGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvcmVmZXJyZXItY2hlY2tlci5weT9yZWZlcnJl
cl9wb2xpY3k9c2FtZS1vcmlnaW4mZXhwZWN0ZWRfcmVmZXJyZXI9CitDT05TT0xFIE1FU1NBR0U6
IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbi4KIAogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3Jp
cHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hv
dWxkIG5vdCBzZW5kIHJlZmVycmVyLgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNj
cmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBz
aG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCkBAIC02LDE1ICsxMSwxNSBAQCBQQVNTIEltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJvcmlnaW4iIHJl
ZmVycmVyIHBvbAogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHBh
Z2UgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVm
ZXJyZXIuCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdl
IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCBy
ZWZlcnJlci4KIFBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1l
LW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBv
bGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1v
cmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAi
bm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCitG
QUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3
b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91
bGQgbm90IHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIg
YnV0IGdvdCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4g
UmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBz
Y3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm5vLXJl
ZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgogUEFTUyBJ
bXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3Jr
bGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQg
bm90IHNlbmQgcmVmZXJyZXIuCiBQQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBm
cm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJy
ZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUt
b3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMg
Im9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBv
cnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBz
Y3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVy
cmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3Rl
LW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kg
c2hvdWxkIHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlw
dCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2lu
IiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBh
IHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0
aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVm
ZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3Rl
LW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBv
bGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1v
cmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFz
ICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgorRkFJ
TCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29y
a2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5k
IHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNy
b3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNo
YXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20g
YSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVy
IHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJF
U09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCitGQUlM
IEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdv
cmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2Vu
ZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJD
cm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBT
aGFyaW5nIHBvbGljeS4iCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9t
IGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZl
cnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJSRVNPTFZFRCIgYnV0IGdvdCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIgor
RkFJTCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4g
d29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hv
dWxkIG5vdCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQi
IGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2lu
IFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4g
c2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1l
LW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4gYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcgYSBtb2R1bGUg
c2NyaXB0IGZhaWxlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZy
b20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQg
YnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwt
cmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0ZWQtd29ya2Vy
LW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggMWUyZDM5OTJmNmQ1ZGYzMjIwN2E2YjBmNjE5YTZk
NzExODEyNDAwZC4uN2E3YTkxN2VhYTk4ZTkyZWUwM2VjMjhhMTFlNzgwODRkMjM0Yjg4NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIv
b3Blbi11cmwtcmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1yZWRp
cmVjdGVkLXdvcmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cyLmxvY2FsaG9zdDo4ODAwL3hoci9y
ZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5P2ZpbHRlcl9uYW1lPW9yaWdpbiZjb3JzCiAKLUZB
SUwgUmVmZXJlciBoZWFkZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJlZmVyZXI6IGh0dHA6
Ly9sb2NhbGhvc3Q6ODgwMC94aHIvcmVzb3VyY2VzL3dvcmtlcnhoci1vcmlnaW4tcmVmZXJyZXIu
anNcbiIgYnV0IGdvdCAiUmVmZXJlcjogaHR0cDovL2xvY2FsaG9zdDo4ODAwL3hoci9yZXNvdXJj
ZXMvcmVkaXJlY3QucHk/bG9jYXRpb249d29ya2VyeGhyLW9yaWdpbi1yZWZlcnJlci5qc1xuIgor
UEFTUyBSZWZlcmVyIGhlYWRlcgogRkFJTCBPcmlnaW4gaGVhZGVyIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJPcmlnaW46IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMFxuIiBidXQgZ290ICIiCiBQQVNT
IFJlcXVlc3QgVVJMIHRlc3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVk
aW93b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvd29ya2xldC1hZGRNb2R1bGUtZmFpbHVyZS1leHBlY3RlZC50eHQKaW5kZXgg
MDhhZjExNDM2MDU1MWJmNWE4MDc5YWYwYTM4MTVjNGUwOGViZDE0My4uZGVmMzNhZDg2OTFiNjk0
MzZlMGUxODFjNWJkMDA0ODM1NDgzNTFiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW93b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZhaWx1cmUtZXhwZWN0ZWQu
dHh0CkBAIC00LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgY29u
dGV4dC5hdWRpb1dvcmtsZXQuYWRkTW9kdWxlKGludmFsaWRVUkwpOyByZWplY3RlZCBwcm9taXNl
ICB3aXRoIFN5bnRheEVycm9yOiBNb2R1bGUgVVJMIGlzIGludmFsaWQuCi1QQVNTIGNvbnRleHQu
YXVkaW9Xb3JrbGV0LmFkZE1vZHVsZSgnZG9lc25vdEV4aXN0LmpzJyk7IHJlamVjdGVkIHByb21p
c2UgIHdpdGggQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFRoZSBy
ZXF1ZXN0ZWQgVVJMIHdhcyBub3QgZm91bmQgb24gdGhpcyBzZXJ2ZXIuLgorUEFTUyBjb250ZXh0
LmF1ZGlvV29ya2xldC5hZGRNb2R1bGUoJ2RvZXNub3RFeGlzdC5qcycpOyByZWplY3RlZCBwcm9t
aXNlICB3aXRoIEFib3J0RXJyb3I6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLi4K
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd29ya2xldC1jcmFzaC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby93b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dAppbmRleCA2NTRk
ZGY3ZjE3ZWZhYjU4ZTQyZmFiZTM4NTI1Nzk2NGFlMmM1ZDQxLi4xYTQzZTNmOTdjYjJmMDZiOWY3
Y2Q1ZjJiMTgyMzM4MTA1MTNlZWYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby93
b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby93b3Jr
bGV0LWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMSArMSwyIEBACitDT05TT0xFIE1FU1NBR0U6IFR5
cGVFcnJvcjogJ3RleHQvaHRtbCcgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUu
CiBUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420214</attachid>
            <date>2021-02-12 22:57:40 -0800</date>
            <delta_ts>2021-02-17 01:58:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210212225739.patch</filename>
            <type>text/plain</type>
            <size>238577</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
OGI3MmNmN2RkYzEyNWMyNzg2NmU1MDkzOGFmNDcyM2YzYjZjODdlLi45N2ZmNjdiNGVkYzg1NjY4
Zjg3M2M0YmVmMmEwOTQ2OTIzM2JjMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAyMS0wMi0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcDoK
KyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9yKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlRXJyb3IpOgorICAgICAg
ICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVSYW5nZUVycm9y
KToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVmZXJlbmNlRXJyb3IpOgorICAgICAgICAoSlNDOjpj
cmVhdGVTeW50YXhFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVR5cGVFcnJvcik6CisgICAg
ICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlR2V0dGVyVHlw
ZUVycm9yKToKKyAgICAgICAgKEpTQzo6dGhyb3dTeW50YXhFcnJvcik6CisgICAgICAgICogcnVu
dGltZS9FcnJvci5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6RXJyb3JJ
bnN0YW5jZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VTdHJpbmcpOgorICAgICAgICAo
SlNDOjpFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5nKToKKyAgICAgICAgKEpTQzo6
RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGUpOgorICAg
ICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjplcnJvclR5cGUgY29uc3QpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBl
Pjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8
ZXJyb3JUeXBlPjo6Y2FsbEltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6
SlNXZWJBc3NlbWJseUxpbmtFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
cjo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9y
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04p
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisKIDIwMjEtMDIt
MTIgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBgc2xv
dFZpc2l0b3JgIHZhcmlhYmxlcyB0byBgdmlzaXRvcmAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWRmZDJjZjM3
ZjgzZDU5ZjYyNzk4MzVhYjBkMmYyZWZjMWYxMDQ3NS4uZTY3ZmE2NGQzYTk4ZWRkNzYwZWZlNTBi
YmFiMzM4ZmI5MzI4MTU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMiBAQAorMjAyMS0wMi0x
MiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVs
ZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2Ny
aXB0RmV0Y2hlcjo6cmVxdWVzdFNjcmlwdFdpdGhDYWNoZSBjb25zdCk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpy
ZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZURPTUV4Y2VwdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5k
bGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpK
U0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRmV0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUltcG9y
dE1ldGFQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRl
ckV2YWx1YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6
bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpT
RE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclR5cGUuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRl
cjo6Y2xlYXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpz
Y3JpcHRGZXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6cGFy
YW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNj
cmlwdExvYWRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xp
ZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXJDbGllbnQuaC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3Jp
cHRNb2R1bGVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmll
cik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRTb3Vy
Y2VDb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpTY3JpcHRTb3Vy
Y2VDb2RlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6V29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNj
cmlwdExvYWRlcjo6fldvcmtlck1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdEZldGNoZXIuaDogQWRkZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKiBkb20vRXhjZXB0aW9uQ29kZS5oOgorICAgICAgICAqIGRvbS9Mb2FkYWJsZU1vZHVsZVNj
cmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZCk6
IERlbGV0ZWQuCisgICAgICAgICogZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0Lmg6CisgICAgICAg
ICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVu
dDo6cmVxdWVzdE1vZHVsZVNjcmlwdCk6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFibGVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6VGhy
ZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Oldvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKToK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmlk
bDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFs
U2NvcGU6OmNyZWRlbnRpYWxzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckds
b2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVM
b2FkZXIpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9h
ZE1vZHVsZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVs
ZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmg6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAg
ICAqIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJTY3JpcHRMb2FkZXI6OnJlc3BvbnNlU291cmNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclNjcmlwdExvYWRlcjo6aXNSZWRpcmVjdGVkIGNvbnN0KToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJQYXJhbWV0ZXJz
Ojppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpl
dmFsdWF0ZVNjcmlwdElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVh
ZC5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVHlwZS5oOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtl
ckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4dCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmg6CisgICAgICAgICogd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9i
YWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dEdsb2JhbFNjb3BlOjpwcm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpkaWRSZWNlaXZlUmVzcG9u
c2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpub3Rp
ZnlGaW5pc2hlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2Nv
cGU6OmRpZENvbXBsZXRlU2NyaXB0RmV0Y2hKb2IpOiBEZWxldGVkLgorICAgICAgICAqIHdvcmts
ZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oOgorCiAyMDIxLTAyLTEyICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFNvdW5kIGRvZXMgbm90IHBsYXkgb24g
WW91VHViZSBhZnRlciBzd2l0Y2hpbmcgYmFjayB0byBmb3JlZ3JvdW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAKaW5kZXggNzU5YTViMjRh
MGVkMDg2ODBjY2FhNjM0MGQyZTk1ZDQ1MGI4MGZkNi4uMjk2Yzg1Y2M5MGUwNWI1NDU0N2Y2NjJh
N2UyZjhhMWUxMzBhNDZkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQWdncmVnYXRlRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FnZ3JlZ2F0ZUVycm9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNv
bnN0IENsYXNzSW5mbyBBZ2dyZWdhdGVFcnJvcjo6c19pbmZvID0geyAiQWdncmVnYXRlRXJyb3Ii
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFn
Z3JlZ2F0ZUVycm9yKSB9OwogCiBBZ2dyZWdhdGVFcnJvcjo6QWdncmVnYXRlRXJyb3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6
IEJhc2Uodm0sIHN0cnVjdHVyZSwgRXJyb3JUeXBlOjpBZ2dyZWdhdGVFcnJvcikKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCmluZGV4IGY0NzNiODE4MWVjMmYw
MmEwY2M3OGEyNmMwYzIwZGM5NjMxZmRjNzQuLmZjYWNmMWUzMjJlYjI3Mjc4NzRmZjI1MjYyNDFl
ZDdiZTk4Y2U1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKQEAg
LTM1LDM3ICszNSwzNyBAQCBuYW1lc3BhY2UgSlNDIHsKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9y
SW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2Fn
ZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKSwg
bWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJ
bnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxP
YmplY3QtPmVycm9yU3RydWN0dXJlKCksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywg
RXJyb3JUeXBlOjpFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFdmFsRXJyb3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJv
ckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3Nh
Z2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVy
cm9yVHlwZTo6RXZhbEVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVl
KTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6RXZh
bEVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkV2YWxF
cnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVSYW5nZUVycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6
U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHko
KSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2Jh
bE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJh
bmdlRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJl
dHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZt
KCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpSYW5nZUVycm9yKSwg
bWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlJhbmdlRXJyb3IsIHRy
dWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlUmVmZXJlbmNlRXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3Vy
Y2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsK
LSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmVmZXJl
bmNlRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJl
dHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZt
KCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpSZWZlcmVuY2VFcnJv
ciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpSZWZlcmVuY2VF
cnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVTeW50YXhFcnJvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6
OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5
KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpT
eW50YXhFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAg
cmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+
dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlN5bnRheEVycm9y
KSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlN5bnRheEVycm9y
LCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJj
ZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlKQogewogICAgIEFTU0VSVCghbWVz
c2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUo
RXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwgdHJ1ZSk7Cisg
ICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJv
ciksIG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBlLCBFcnJvclR5cGU6OlR5cGVFcnJvciwgdHJ1ZSk7
CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRl
cikKQEAgLTc2LDcgKzc2LDcgQEAgSlNPYmplY3QqIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9ySW5zdGEKIEpTT2JqZWN0KiBj
cmVhdGVVUklFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAg
IEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJy
b3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpVUklFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBl
Tm90aGluZywgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OlVSSUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJv
clR5cGU6OlVSSUVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZUVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9yVHlwZSBlcnJvclR5cGUsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKQEAgLTExMyw3ICsxMTMsNyBAQCBKU09iamVjdCogY3JlYXRlRXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JUeXBlV2l0aEV4dGVuc2lvbiBlcnJvcgog
SlNPYmplY3QqIGNyZWF0ZUdldHRlclR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1w
dHkoKSk7Ci0gICAgYXV0byogZXJyb3IgPSBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJy
b3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdlKTsKKyAgICBhdXRvKiBlcnJvciA9IEVycm9ySW5z
dGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2Jq
ZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIG51bGxw
dHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlR5cGVFcnJvcik7CiAgICAgZXJyb3ItPnNldE5h
dGl2ZUdldHRlclR5cGVFcnJvcigpOwogICAgIHJldHVybiBlcnJvcjsKIH0KQEAgLTI3NCw3ICsy
NzQsNyBAQCBFeGNlcHRpb24qIHRocm93VHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRocm93U2NvcGUmIHNjb3BlLCBjb25zdAogCiBFeGNlcHRpb24qIHRocm93U3ludGF4
RXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUpCiB7
Ci0gICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVN5
bnRheEVycm9yKGdsb2JhbE9iamVjdCwgIlN5bnRheCBlcnJvciJfcykpOworICAgIHJldHVybiB0
aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVTeW50YXhFcnJvcihnbG9i
YWxPYmplY3QpKTsKIH0KIAogRXhjZXB0aW9uKiB0aHJvd1N5bnRheEVycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCkBAIC0zMTcsNiArMzE3LDExIEBAIEpTT2JqZWN0KiBjcmVhdGVTeW50YXhFcnJvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgcmV0
dXJuIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgbnVsbHB0cik7CiB9
CiAKK0pTT2JqZWN0KiBjcmVhdGVTeW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQoreworICAgIHJldHVybiBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsICJTeW50
YXggZXJyb3IiX3MsIG51bGxwdHIpOworfQorCiBKU09iamVjdCogY3JlYXRlVHlwZUVycm9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVR5cGVFcnJv
cihnbG9iYWxPYmplY3QsICJUeXBlIGVycm9yIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvci5oCmluZGV4IDZkYWExNTQyMTU2NjYxMGU0YWNlNmRlMzM1ZjM0ZDNiZjdjNzQ0NGQu
LmRjODI1MjgyYzM1NjQ4NzEzMjU0NTQ0YmM4ZDgxODg4NDAwZTQzOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3IuaApAQCAtNTUsNiArNTUsNyBAQCBKU19FWFBPUlRfUFJJVkFU
RSBKU09iamVjdCogY3JlYXRlRXZhbEVycm9yKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5n
Jik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlUmFuZ2VFcnJvcihKU0dsb2Jh
bE9iamVjdCosIGNvbnN0IFN0cmluZyYpOwogSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNy
ZWF0ZVJlZmVyZW5jZUVycm9yKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CiBKU19F
WFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlU3ludGF4RXJyb3IoSlNHbG9iYWxPYmplY3Qq
LCBjb25zdCBTdHJpbmcmKTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVTeW50
YXhFcnJvcihKU0dsb2JhbE9iamVjdCopOwogSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNy
ZWF0ZVR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCopOwogSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmpl
Y3QqIGNyZWF0ZVR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYpOwogSlNf
RVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKEpT
R2xvYmFsT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDBmMmY1YTMxODQwMmZiYjdjN2Q4ODAyYjZkNzg0MmVm
ZTQwNmM4NDYuLjliZTkzMGNmMWMzYzlhNDBlNjA4NTk4MzU1OGExYTU5YmM3OGI2MmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3Bw
CkBAIC02MCwxNCArNjAsMTQgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEVy
cm9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICAgICAgOiBJ
bnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5l
d1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFsbSh2bSwgbmV3VGFyZ2V0KS0+ZXJyb3JTdHJ1Y3R1cmUo
KSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAotICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShn
bG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGlu
ZywgZmFsc2UpKSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNv
ZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1l
c3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpKTsK
IH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxFcnJvckNvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJl
KiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3Qs
IGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJy
b3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKIH0KIAogYm9vbCBFcnJvckNvbnN0cnVjdG9yOjpwdXQo
SlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4IDJl
NGVjMzlmMTIwNThiMjUwODcyMmUwYjgyNTIyNDdiZWIwMzE5ZTYuLjBmODZlMjJiOTJkZGQ2ZDEz
OTg1OGI4NmU1NmNlYWRjYWVjZTBkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBAIC0zNCwxOCArMzQsMjMgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKIGNvbnN0IENsYXNzSW5mbyBFcnJvckluc3RhbmNlOjpzX2luZm8gPSB7ICJFcnJvciIs
ICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoRXJyb3JJbnN0YW5jZSkgfTsKIAotRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5j
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0
YW5jZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFcnJvclR5cGUgZXJyb3JUeXBlKQog
ICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgICwgbV9lcnJvclR5cGUoZXJyb3JUeXBlKQor
ICAgICwgbV9zdGFja092ZXJmbG93RXJyb3IoZmFsc2UpCisgICAgLCBtX291dE9mTWVtb3J5RXJy
b3IoZmFsc2UpCisgICAgLCBtX2Vycm9ySW5mb01hdGVyaWFsaXplZChmYWxzZSkKKyAgICAsIG1f
bmF0aXZlR2V0dGVyVHlwZUVycm9yKGZhbHNlKQogewogfQogCi1FcnJvckluc3RhbmNlKiBFcnJv
ckluc3RhbmNlOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1
bnRpbWVUeXBlIHR5cGUsIGJvb2wgdXNlQ3VycmVudEZyYW1lKQorRXJyb3JJbnN0YW5jZSogRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBS
dW50aW1lVHlwZSB0eXBlLCBFcnJvclR5cGUgZXJyb3JUeXBlLCBib29sIHVzZUN1cnJlbnRGcmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIFN0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVz
c2FnZS5pc1VuZGVmaW5lZCgpID8gU3RyaW5nKCkgOiBtZXNzYWdlLnRvV1RGU3RyaW5nKGdsb2Jh
bE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAg
cmV0dXJuIGNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2VTdHJpbmcs
IGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJyZW50RnJhbWUpOworICAgIHJldHVybiBjcmVhdGUoZ2xv
YmFsT2JqZWN0LCB2bSwgc3RydWN0dXJlLCBtZXNzYWdlU3RyaW5nLCBhcHBlbmRlciwgdHlwZSwg
ZXJyb3JUeXBlLCB1c2VDdXJyZW50RnJhbWUpOwogfQogCiBzdGF0aWMgU3RyaW5nIGFwcGVuZFNv
dXJjZVRvRXJyb3JNZXNzYWdlKENhbGxGcmFtZSogY2FsbEZyYW1lLCBFcnJvckluc3RhbmNlKiBl
eGNlcHRpb24sIEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQpAQCAtMTMxLDcgKzEzNiwyNSBAQCB2b2lkIEVycm9ySW5zdGFuY2U6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgUwogLy8gQmFz
ZWQgb24gRXJyb3JQcm90b3R5cGUncyBlcnJvclByb3RvRnVuY1RvU3RyaW5nKCksIGJ1dCBpcyBt
b2RpZmllZCB0bwogLy8gaGF2ZSBubyBvYnNlcnZhYmxlIHNpZGUgZWZmZWN0cyB0byB0aGUgdXNl
ciAoaS5lLiBkb2VzIG5vdCBjYWxsIHByb3hpZXMsCiAvLyBhbmQgZ2V0dGVycykuCi1TdHJpbmcg
RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKK1N0cmluZyBFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBJbnRl
Z3JpdHk6OmF1ZGl0U3RydWN0dXJlSUQodm0sIHN0cnVjdHVyZUlEKCkpOworCisgICAgSlNWYWx1
ZSBtZXNzYWdlVmFsdWU7CisgICAgYXV0byBtZXNzYWdlUHJvcGVydE5hbWUgPSB2bS5wcm9wZXJ0
eU5hbWVzLT5tZXNzYWdlOworICAgIFByb3BlcnR5U2xvdCBtZXNzYWdlU2xvdCh0aGlzLCBQcm9w
ZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5LCAmdm0pOworICAgIGlmIChK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBy
b3BlcnROYW1lLCBtZXNzYWdlU2xvdCkgJiYgbWVzc2FnZVNsb3QuaXNWYWx1ZSgpKQorICAgICAg
ICBtZXNzYWdlVmFsdWUgPSBtZXNzYWdlU2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIG1lc3Nh
Z2VQcm9wZXJ0TmFtZSk7CisgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKKworICAgIGlm
ICghbWVzc2FnZVZhbHVlKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBtZXNzYWdlVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KSk7
Cit9CisKK1N0cmluZyBFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1NywyOCAr
MTgwLDIyIEBAIFN0cmluZyBFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIH0KICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlv
bigpOwogCi0gICAgU3RyaW5nIG5hbWVTdHJpbmc7CiAgICAgaWYgKCFuYW1lVmFsdWUpCi0gICAg
ICAgIG5hbWVTdHJpbmcgPSAiRXJyb3IiX3M7Ci0gICAgZWxzZSB7Ci0gICAgICAgIG5hbWVTdHJp
bmcgPSBuYW1lVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgU3RyaW5nKCkpOwotICAgIH0KKyAgICAgICAgcmV0dXJuICJF
cnJvciJfczsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIG5hbWVWYWx1ZS50b1dURlN0
cmluZyhnbG9iYWxPYmplY3QpKTsKK30KIAotICAgIEpTVmFsdWUgbWVzc2FnZVZhbHVlOwotICAg
IGF1dG8gbWVzc2FnZVByb3BlcnROYW1lID0gdm0ucHJvcGVydHlOYW1lcy0+bWVzc2FnZTsKLSAg
ICBQcm9wZXJ0eVNsb3QgbWVzc2FnZVNsb3QodGhpcywgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1l
dGhvZFR5cGU6OlZNSW5xdWlyeSwgJnZtKTsKLSAgICBpZiAoSlNPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdCh0aGlzLCBnbG9iYWxPYmplY3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSwgbWVzc2FnZVNs
b3QpICYmIG1lc3NhZ2VTbG90LmlzVmFsdWUoKSkKLSAgICAgICAgbWVzc2FnZVZhbHVlID0gbWVz
c2FnZVNsb3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUHJvcGVydE5hbWUpOwotICAg
IHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CitTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRp
emVkVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOworICAgIEludGVncml0eTo6YXVkaXRTdHJ1Y3R1cmVJRCh2bSwgc3RydWN0dXJlSUQo
KSk7CiAKLSAgICBTdHJpbmcgbWVzc2FnZVN0cmluZzsKLSAgICBpZiAoIW1lc3NhZ2VWYWx1ZSkK
LSAgICAgICAgbWVzc2FnZVN0cmluZyA9IFN0cmluZygpOwotICAgIGVsc2UgewotICAgICAgICBt
ZXNzYWdlU3RyaW5nID0gbWVzc2FnZVZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0g
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmluZygpKTsKLSAgICB9CisgICAg
U3RyaW5nIG5hbWVTdHJpbmcgPSBzYW5pdGl6ZWROYW1lU3RyaW5nKGdsb2JhbE9iamVjdCk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgU3RyaW5nKCkpOworCisgICAgU3RyaW5nIG1l
c3NhZ2VTdHJpbmcgPSBzYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgU3RyaW5nKCkpOwogCiAgICAgaWYgKCFuYW1lU3Ry
aW5nLmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gbWVzc2FnZVN0cmluZzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaAppbmRleCBkYTY2ZWI3NmU3YWRl
OTBmZDQxYmIxNjI3MDcyNWE3ZDE0NzBhZDM4Li45ODcxMzU3MjFiMzA1NjYyMzBkMjYxYzgzM2Fk
OGRlY2E1NDYxNDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvckluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJ
bnN0YW5jZS5oCkBAIC0yMCw2ICsyMCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAi
RXJyb3JUeXBlLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJSdW50aW1lVHlw
ZS5oIgogI2luY2x1ZGUgIlN0YWNrRnJhbWUuaCIKQEAgLTUzLDE0ICs1NCwxNCBAQCBjbGFzcyBF
cnJvckluc3RhbmNlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhF
cnJvckluc3RhbmNlVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAg
IHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBT
b3VyY2VBcHBlbmRlciBhcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlIHR5cGUgPSBUeXBl
Tm90aGluZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKQorICAgIHN0YXRpYyBFcnJvcklu
c3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBh
cHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlIHR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JU
eXBlIGVycm9yVHlwZSA9IEVycm9yVHlwZTo6RXJyb3IsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0g
dHJ1ZSkKICAgICB7Ci0gICAgICAgIEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChOb3RO
dWxsLCBhbGxvY2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4odm0uaGVhcCkpIEVycm9ySW5zdGFuY2Uo
dm0sIHN0cnVjdHVyZSk7CisgICAgICAgIEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChO
b3ROdWxsLCBhbGxvY2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4odm0uaGVhcCkpIEVycm9ySW5zdGFu
Y2Uodm0sIHN0cnVjdHVyZSwgZXJyb3JUeXBlKTsKICAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENy
ZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QsIG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJy
ZW50RnJhbWUpOwogICAgICAgICByZXR1cm4gaW5zdGFuY2U7CiAgICAgfQogCi0gICAgc3RhdGlj
IEVycm9ySW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpTVmFs
dWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVO
b3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpOworICAgIHN0YXRpYyBFcnJvcklu
c3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBKU1ZhbHVlIG1lc3Nh
Z2UsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgPSBUeXBlTm90aGluZywg
RXJyb3JUeXBlID0gRXJyb3JUeXBlOjpFcnJvciwgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVl
KTsKIAogICAgIGJvb2wgaGFzU291cmNlQXBwZW5kZXIoKSBjb25zdCB7IHJldHVybiAhIW1fc291
cmNlQXBwZW5kZXI7IH0KICAgICBTb3VyY2VBcHBlbmRlciBzb3VyY2VBcHBlbmRlcigpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlQXBwZW5kZXI7IH0KQEAgLTcwLDYgKzcxLDcgQEAgY2xhc3MgRXJy
b3JJbnN0YW5jZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBSdW50aW1lVHlwZSBy
dW50aW1lVHlwZUZvckNhdXNlKCkgY29uc3QgeyByZXR1cm4gbV9ydW50aW1lVHlwZUZvckNhdXNl
OyB9CiAgICAgdm9pZCBjbGVhclJ1bnRpbWVUeXBlRm9yQ2F1c2UoKSB7IG1fcnVudGltZVR5cGVG
b3JDYXVzZSA9IFR5cGVOb3RoaW5nOyB9CiAKKyAgICBFcnJvclR5cGUgZXJyb3JUeXBlKCkgY29u
c3QgeyByZXR1cm4gbV9lcnJvclR5cGU7IH0KICAgICB2b2lkIHNldFN0YWNrT3ZlcmZsb3dFcnJv
cigpIHsgbV9zdGFja092ZXJmbG93RXJyb3IgPSB0cnVlOyB9CiAgICAgYm9vbCBpc1N0YWNrT3Zl
cmZsb3dFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2tPdmVyZmxvd0Vycm9yOyB9CiAgICAg
dm9pZCBzZXRPdXRPZk1lbW9yeUVycm9yKCkgeyBtX291dE9mTWVtb3J5RXJyb3IgPSB0cnVlOyB9
CkBAIC03OSw2ICs4MSw4IEBAIGNsYXNzIEVycm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5h
bE9iamVjdCB7CiAgICAgYm9vbCBpc05hdGl2ZUdldHRlclR5cGVFcnJvcigpIGNvbnN0IHsgcmV0
dXJuIG1fbmF0aXZlR2V0dGVyVHlwZUVycm9yOyB9CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBT
dHJpbmcgc2FuaXRpemVkVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqKTsKKyAgICBKU19FWFBPUlRf
UFJJVkFURSBTdHJpbmcgc2FuaXRpemVkTWVzc2FnZVN0cmluZyhKU0dsb2JhbE9iamVjdCopOwor
ICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyBzYW5pdGl6ZWROYW1lU3RyaW5nKEpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgCiAgICAgVmVjdG9yPFN0YWNrRnJhbWU+KiBzdGFja1RyYWNlKCkgeyBy
ZXR1cm4gbV9zdGFja1RyYWNlLmdldCgpOyB9CiAKQEAgLTg4LDcgKzkyLDcgQEAgY2xhc3MgRXJy
b3JJbnN0YW5jZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICB2b2lkIGZpbmFsaXpl
VW5jb25kaXRpb25hbGx5KFZNJik7CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBFcnJvcklu
c3RhbmNlKFZNJiwgU3RydWN0dXJlKik7CisgICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShWTSYs
IFN0cnVjdHVyZSosIEVycm9yVHlwZSk7CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwg
SlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIs
IFJ1bnRpbWVUeXBlID0gVHlwZU5vdGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7
CiAKQEAgLTEwOCwxMCArMTEyLDExIEBAIGNsYXNzIEVycm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNO
b25GaW5hbE9iamVjdCB7CiAgICAgU3RyaW5nIG1fc291cmNlVVJMOwogICAgIFN0cmluZyBtX3N0
YWNrU3RyaW5nOwogICAgIFJ1bnRpbWVUeXBlIG1fcnVudGltZVR5cGVGb3JDYXVzZSB7IFR5cGVO
b3RoaW5nIH07Ci0gICAgYm9vbCBtX3N0YWNrT3ZlcmZsb3dFcnJvciB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBtX291dE9mTWVtb3J5RXJyb3IgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9lcnJvckluZm9N
YXRlcmlhbGl6ZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3Ig
eyBmYWxzZSB9OworICAgIEVycm9yVHlwZSBtX2Vycm9yVHlwZSB7IEVycm9yVHlwZTo6RXJyb3Ig
fTsKKyAgICBib29sIG1fc3RhY2tPdmVyZmxvd0Vycm9yIDogMTsKKyAgICBib29sIG1fb3V0T2ZN
ZW1vcnlFcnJvciA6IDE7CisgICAgYm9vbCBtX2Vycm9ySW5mb01hdGVyaWFsaXplZCA6IDE7Cisg
ICAgYm9vbCBtX25hdGl2ZUdldHRlclR5cGVFcnJvciA6IDE7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCA0MDIxZmM3ZTBhZGFmN2EwYTllMGVmNmNmZDIy
NTgzOGI1YmY4NzgzLi5hZjcyNjI4MzFjYTFiYjc1YzZhZTU1NDExZGU0Y2Q4NWE4MTM3ZGE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwCkBAIC02OTQsNyArNjk0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckFyZ3VtZW50c0NhbGxlZUFuZENhbGxlciwg
KEpTR2wKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jTWFrZVR5cGVFcnJvciwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVj
dHVyZShFcnJvclR5cGU6OlR5cGVFcnJvcik7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShF
cnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgY2FsbEZy
YW1lLT5hcmd1bWVudCgwKSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBl
cnJvclN0cnVjdHVyZSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgbnVsbHB0ciwgVHlwZU5vdGhp
bmcsIEVycm9yVHlwZTo6VHlwZUVycm9yLCBmYWxzZSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZ2xvYmFsRnVuY1Byb3RvR2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCA3Y2MxMWI1
ZjVlMTI5NzIyMDE2Yjg2NzFmMTM3YzZiYjE3MjEzODQwLi5iNmU3ZWRlZmQ0MmVkYzYzNWQ5MGI3
ZTBlOGM3YjRmYzBjMjQzZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNTgsNyArNTgsNyBAQCBp
bmxpbmUgRW5jb2RlZEpTVmFsdWUgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxlcnJvclR5cGU+Ojpj
b25zdHJ1Y3RJbXBsKEpTR2xvYmFsTwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CiAgICAgQVNTRVJUKGVycm9yU3RydWN0dXJlKTsKIAotICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2Up
KSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJ
bnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51
bGxwdHIsIFR5cGVOb3RoaW5nLCBlcnJvclR5cGUsIGZhbHNlKSkpOwogfQogCiB0ZW1wbGF0ZTxF
cnJvclR5cGUgZXJyb3JUeXBlPgpAQCAtNjYsNyArNjYsNyBAQCBpbmxpbmUgRW5jb2RlZEpTVmFs
dWUgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxlcnJvclR5cGU+OjpjYWxsSW1wbChKU0dsb2JhbE9i
amVjdAogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAg
ICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1
cmUoZXJyb3JUeXBlKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6
OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBU
eXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5z
dGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxs
cHRyLCBUeXBlTm90aGluZywgZXJyb3JUeXBlLCBmYWxzZSkpOwogfQogCiBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY2FsbEV2YWxFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCmluZGV4IDI2ZjNiNmE4ZjlkYjY3OGNkOTRk
MDVhZTg4YjExYjg5ZTYxYzBlYmMuLjBkZGIyYzZhNTBmNDZiYzYzNjk5NWNhNDZkN2YxOGU1YjI2
ODYzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0
ZXJGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNl
dHRlckZ1bmN0aW9uLmNwcApAQCAtOTQsNyArOTQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY2FsbFRocm93RXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAvLyBUaGlz
IGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIGZyb20gSUMuIEFuZCB3ZSBkbyBub3Qgd2FudCB0byBp
bmNsdWRlIHRoaXMgZnJhbWUgaW4gRXJyb3IncyBzdGFjay4KICAgICBjb25zdGV4cHIgYm9vbCB1
c2VDdXJyZW50RnJhbWUgPSBmYWxzZTsKLSAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3Qs
IHNjb3BlLCBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2Jq
ZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVy
dHlXcml0ZUVycm9yLCBudWxscHRyLCBUeXBlTm90aGluZywgdXNlQ3VycmVudEZyYW1lKSk7Cisg
ICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JU
eXBlOjpUeXBlRXJyb3IpLCBSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvciwgbnVsbHB0ciwgVHlw
ZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yLCB1c2VDdXJyZW50RnJhbWUpKTsKICAgICBy
ZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCmluZGV4IDM4MzczYTc2MGQ1OWQw
ZWVkYjQ5NGRiODhkODUyNGZhYjlhNTE1NGUuLjllYmQzZDQ0NmE5ZGE5YWQxOWQ3YmE0MTk5MDA2
M2ZjNWE2MzI4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEpT
V2ViQXNzZW1ibHlDb21waWxlRXJyb3IqIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OmNyZWF0
ZShKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAKIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OkpT
V2ViQXNzZW1ibHlDb21waWxlRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAg
ICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgRXJyb3JU
eXBlOjpFcnJvcikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcAppbmRleCBlYWRlMDM0MTNlNGNlMzYw
YmEwODlmOGM1M2QxOGNmOGQ2ZDcwMjM1Li45YjIwMDU4ZWNmMzRhZjkxYjZiMThkMTVmNjUxNTc4
NWMyMTcyZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5TGlua0Vycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcApAQCAtNDEsNyArNDEsNyBAQCBKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yKiBKU1dlYkFzc2VtYmx5TGlua0Vycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iagogfQogCiBKU1dlYkFzc2VtYmx5TGlua0Vycm9yOjpKU1dlYkFzc2VtYmx5
TGlua0Vycm9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBz
dHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6RXJyb3IpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5jcHAKaW5kZXggYmUxZjkyODYwMzA0NWQ3Y2Y3MjkzMjRl
ZTRhNzdhZTgzZmNlOWNiZS4uMTkzM2E2ZTM4ODhmYmVhY2NmMDdhYzJiMzdjNzQ1MDQ4NGZhNTFm
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgSlNXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvciogSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6Y3JlYXRlKEpTR2xvYmFs
T2JqZWN0KiBnbG8KIH0KIAogSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6SlNXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2
bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5cGU6OkVycm9y
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDVj
ZDAwMzVhMDFmZGI3OGRkYzM1ZmM0N2I2Yjg1ODBiZTQ1ZDM1OTcuLmMzYTBkMzk3ZjUwNGUyNThm
MWQ3MGY4YjQ4MmI3OWExZDllNzI2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3Ry
dWN0b3IuY3BwCkBAIC02NSw3ICs2NSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxs
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiB7CiAg
ICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1
cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUNvbXBpbGVFcnJv
clN0cnVjdHVyZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6
Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5
cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxw
dHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBXZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0
cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2ViQXNzZW1ibHlD
b21waWxlRXJyb3JQcm90b3R5cGUqIHRoaXNQcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29u
c3RydWN0b3IuY3BwCmluZGV4IDk0NmRlZjRmMTE1MjI5YTIyNWJlOTMyYWM5ZTY0MzViNmM4YWIy
YTkuLjJjNWY2YTI5MzFmMTUyMTU4NWFhYTkzNWU1NmI0YmQyZjE5YzE2YjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCkBAIC02NSw3ICs2NSw3IEBAIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseUxpbmtFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgw
KTsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT53ZWJBc3Nl
bWJseUxpbmtFcnJvclN0cnVjdHVyZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2Us
IG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1l
c3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpOwog
fQogCiBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseUxpbmtFcnJv
ckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2ViQXNz
ZW1ibHlMaW5rRXJyb3JQcm90b3R5cGUqIHRoaXNQcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDNkZmQ5MTU2N2I2MGE1OGRkOWFhNjg0MmZmNjc5
MDIxZjVjYjkyNTIuLmE4NTY2OWM1MThiMWU5YWE2OGM5NWFkMDU2NmViZmQ2ZmMzZGZhOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGlt
ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC02Nyw3ICs2Nyw3IEBA
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZy
YW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFs
T2JqZWN0LT53ZWJBc3NlbWJseVJ1bnRpbWVFcnJvclN0cnVjdHVyZSgpOwotICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JT
dHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
ZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6
OkVycm9yLCBmYWxzZSkpOwogfQogCiBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9y
KiBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUqIHRoaXNQ
cm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBmODg1OTE1ZmU4YmU3OWU1MTI1OGZmZjhk
ODMxODJjOTVkN2QzMmNiLi45ZGI5N2VkNzEyMGYzN2IyZmJiZjVmYjdjMmRlYzQ0N2Q4OGZmNmJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTMwLDYgKzMwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1l
ci5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuaAorICAgIE1vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFk
ZXJzLmgKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoSWRlbnRpZmllci5oCiAgICAgTW9kdWxlcy9m
ZXRjaC9GZXRjaExvYWRlci5oCkBAIC0yODcsNiArMjg4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIGJpbmRpbmdzL2pzL1dlYkNvcmVKSVRPcGVyYXRpb25z
LmgKICAgICBiaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaAogICAgIGJp
bmRpbmdzL2pzL1dpbmRvd1Byb3h5LmgKKyAgICBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRGZXRj
aGVyLmgKIAogICAgIGJyaWRnZS9CcmlkZ2UuaAogICAgIGJyaWRnZS9JZGVudGlmaWVyUmVwLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKaW5kZXggMDQ1Y2YyNzA2YzAzNjdlNGNmOTBiMzJkZGQ3OTE0NmQ1ZmExMWRm
Zi4uNzgwZjczMTc3ZDU0NmNmOGJhNGYzNDVhMzkwZDc3MWZkNGY2NTM2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKQEAgLTYzOSw2ICs2MzksNyBAQCBiaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwCiBi
aW5kaW5ncy9qcy9XZWJDb3JlSklUT3BlcmF0aW9ucy5jcHAKIGJpbmRpbmdzL2pzL1dlYkNvcmVK
U0NsaWVudERhdGEuY3BwCiBiaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIu
Y3BwCitiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCiBiaW5kaW5ncy9q
cy9XaW5kb3dQcm94eS5jcHAKIGJpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmNwcAogYnJpZGdl
L0lkZW50aWZpZXJSZXAuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGMxNWViNjQ4MDM3MzA1ODA3YjcwM2QwYmRiYWIzZjNi
ZmE1NzE1Yi4uMjNlOTBiNWVlZTc2ODEyYjkzZDFjYzU3ZDZhNzc4ZDE2NTI3MGM1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NTA2OSwxNSArNTA2OSwxOCBAQAogCQlFMzA1OTI2NDFFMjdBM0FEMDBENTdDOTggLyogSW5saW5l
Q2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTMwNTkyNjIxRTI3QTM4QzAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzA1OTI2
ODFFMjdBM0QxMDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTkyNjYxRTI3QTNDNjAwRDU3Qzk4
IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFMzA3REVEMDFEODFFNEM3MDAxNDFDQUYgLyogQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
RTMwN0RFRDExRDgxRTRDQjAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RF
QzgxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDdERUQ1
MUQ4MUU0RjIwMDE0MUNBRiAvKiBMb2FkYWJsZU1vZHVsZVNjcmlwdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFRDMxRDgxRTRFRDAwMTQxQ0FG
IC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMxNTBFQTcxREE3MjE5MzAwMTk0MDEyIC8qIERPTUpJVEhl
bHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
MTUwRUE1MURBNzIxOEQwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggKi87IH07CiAJCUUzMjAx
QzFBMUY4RTgyMTMwMDc2QTAzMiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOEQwNjA5MUY4RTgxMTkwMDY0
OUNGMiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzIzQ0ZGQTFFNUFGNkFGMDBGMEI0QTAgLyogSlNE
T01Db252ZXJ0UHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTMyM0NGRjkxRTVBRjZBNTAwRjBCNEEwIC8qIEpTRE9NQ29udmVydFByb21pc2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzQz
MkRFNDI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzQzMkRFMDI1RDM3N0Uy
MDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggKi87IH07CisJCUUzNDdFNUZB
MjVENEYwMDAwMEYxN0E1QyAvKiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzQ3RTVGODI1RDRGMDAwMDBGMTdBNUMg
LyogV29ya2VyU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUUzNTE4OEI0MjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzNTE4OEIzMjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
MzU2NUI3QjFEQzJENkM5MDAyMTdEQkQgLyogSlNFdmVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQz
IC8qIEpTRXZlbnRDdXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlFMzU4MDJCNjFEQzg0MzVEMDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZp
bHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1
ODAyQjUxREM4NDM1ODAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU4MkMyODI1MjdGNjY5
MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTgyQzI2MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJD
b3JlSklUT3BlcmF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzNUI5MDdGMjNGNjBBNTAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VN
b2RlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1
QjkwN0MyM0Y2MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM2NDMyMUMyNUQzN0E2
NzAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1vZHVs
ZVNjcmlwdExvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURD
MDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RP
TVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzk2MjhCRjIzOTU3MjhGMDA2
NThFQ0QgLyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNE
IC8qIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTYxOTUsNyArMTYxOTgsNiBAQAogCQlF
MzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRTY3JpcHRGZXRjaGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDdERUM2MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTMwN0RFQzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTMwN0RFQzgxRDgxRTQ0ODAw
MTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFRDIxRDgxRTRFRDAwMTQxQ0FGIC8qIExv
YWRhYmxlTW9kdWxlU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IExvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTMwN0RFRDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvYWRhYmxlTW9kdWxlU2NyaXB0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMTUwRUE1MURBNzIxOEQwMDE5NDAxMiAvKiBE
T01KSVRIZWxwZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVEhl
bHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjA4LDEyICsxNjIxMCwx
NyBAQAogCQlFMzI5Mjc2MzIyNTQzRjU5MDAzMDhBOUEgLyogVHlwZWRPTUNTU1VuaXRWYWx1ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMyOTI3NjYyMjU0M0ZERTAwMzA4QTlBIC8qIERPTVJlY3RS
ZWFkT25seS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01SZWN0UmVhZE9ubHkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzM0ODI1RTFEQzkzQUEwMDA5Qzk1NDQgLyogRE9N
SklUQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBET01KSVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0RPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtl
ck1vZHVsZVNjcmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTM0MzJERTMyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzQ3RTVGODI1RDRGMDAw
MDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXb3JrZXJTY3JpcHRGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzNEVFNDlGMURDMkQ1NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3VzdG9tLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXZlbnRDdXN0b20uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTM1MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODAy
QjUxREM4NDM1ODAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSURMVHlwZUZpbHRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMzU4MkMyNDI1MjdGNjY4MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9w
ZXJhdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29y
ZUpJVE9wZXJhdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4MkMy
NjI1MjdGNjY4MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUpJVE9wZXJhdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM1QjkwN0MyM0Y2MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERl
dmljZU1vZGVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsaXplZERl
dmljZU1vZGVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUI5MDdFMjNGNjA2
NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsaXplZERldmljZU1vZGVsLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyogTW9kdWxlU2Ny
aXB0TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVNjcmlw
dExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzdDODY0RjFFQjYzRTJE
MDA4N0M2Q0EgLyogSlNET01Qcm9taXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTRE9NUHJvbWlzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5
NDFCQUQxNDVGMDBENjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRN
b2R1bGVMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9k
dWxlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzAwOSw3ICsyNzAx
Niw2IEBACiAJCQkJMkRGQTQ4OEUxREI1NDFDMjAwMzYyQjk5IC8qIEJ1ZmZlclNvdXJjZS5oICov
LAogCQkJCUUzMDdERUM2MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXIuY3BwICovLAogCQkJCUUzMDdERUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIuaCAqLywKLQkJCQlFMzA3REVDODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJRTMwNTkyNjUxRTI3QTNDNjAwRDU3
Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIuY3BwICovLAogCQkJCUUzMDU5MjY2MUUyN0EzQzYw
MEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4
OTAwODg3NDY4IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8sCkBAIC0yNzA4Myw2
ICsyNzA4OSw4IEBACiAJCQkJNEJERUEzMkQyMTgwMzQwNTAwNTJERkNEIC8qIEpTV29ya2xldEds
b2JhbFNjb3BlQmFzZS5jcHAgKi8sCiAJCQkJNEJERUEzMkIyMTgwMzNFQjAwNTJERkNEIC8qIEpT
V29ya2xldEdsb2JhbFNjb3BlQmFzZS5oICovLAogCQkJCTcwOUEwMUZEMUUzRDBCQ0MwMDZCMEQ0
QyAvKiBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggKi8sCisJCQkJRTM2NDMyMUEyNUQzN0E2NjAw
RjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oICovLAorCQkJCUUzNTE4OEIzMjVEMzg3Q0Yw
MEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLywKIAkJCQk0MUI0NTlFRDFG
NTVFQkM3MDAwMEY2RkQgLyogUmVhZGFibGVTdHJlYW0uY3BwICovLAogCQkJCTQxQjQ1OURBMUY0
Q0FEQjkwMDAwRjZGRCAvKiBSZWFkYWJsZVN0cmVhbS5oICovLAogCQkJCTQxOEMzOTVFMUM4RjBB
QUIwMDUxQzhBMyAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCAqLywKQEAg
LTI3MTE0LDYgKzI3MTIyLDkgQEAKIAkJCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2Vi
Q29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmggKi8sCiAJCQkJNDYzNTIxQUMyMDgxMDkwRTAwQzI4
OTIyIC8qIFdpbmRvd1Byb3h5LmNwcCAqLywKIAkJCQk0NjM1MjFBQTIwODEwOTBCMDBDMjg5MjIg
LyogV2luZG93UHJveHkuaCAqLywKKwkJCQlFMzQzMkRFMzI1RDM3N0UzMDA1OEU2MTIgLyogV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAqLywKKwkJCQlFMzQzMkRFMDI1RDM3N0UyMDA1OEU2
MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8sCisJCQkJRTM0N0U1RjgyNUQ0RjAw
MDAwRjE3QTVDIC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCAqLywKIAkJCQk0MTQxOEEwMzI1NjQz
RTEyMDAzNjM0MTcgLyogV3JpdGFibGVTdHJlYW0uY3BwICovLAogCQkJCTQxNDE4QTA0MjU2NDNF
MTMwMDM2MzQxNyAvKiBXcml0YWJsZVN0cmVhbS5oICovLAogCQkJKTsKQEAgLTMxMzg3LDcgKzMx
Mzk4LDYgQEAKIAkJCQlCQ0IxNkMxQzA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkSW1hZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTMxOUZCRDVGMTVEMkY0NjQwMDk2NDBBNiAvKiBDYWNoZWRJbWFn
ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMwN0RFRDAxRDgxRTRDNzAwMTQxQ0FGIC8q
IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTMwN0RFRDEx
RDgxRTRDQjAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTEwMTg0NjkwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCUQwRURBNzc1MTQzRTMwM0MwMDI4RTM4MyAvKiBDYWNoZWRSYXdS
ZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFCNTMzNDkxNzE3REVFMzAwRjIwNUY5IC8q
IENhY2hlZFJhd1Jlc291cmNlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMzODYyLDYgKzMz
ODcyLDggQEAKIAkJCQlDNkQ3NEFENTA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9u
TGlzdExldmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MDlBMDFGRTFFM0QwQkREMDA2QjBENEMg
LyogTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMyMDFDMUEx
RjhFODIxMzAwNzZBMDMyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTM2NDMyMUMyNUQzN0E2NzAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTM1MTg4QjQyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQzYxMjUxRjEyRDAwM0VG
MjY5IC8qIE1vbnRoSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzk2MjhDMTIzOTU3
NDMxMDA2NThFQ0QgLyogTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODUwMzFCNDYwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLApA
QCAtMzU1MTIsNiArMzU1MjQsNyBAQAogCQkJCTE4RjgzMUI4MEZENDhDNzgwMEQ4QzU2QiAvKiBX
b3JrZXJMb2FkZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NEQwRjU0NkE4MjAw
QjBGMUJBIC8qIFdvcmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MDBG
NTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUzNDMyREU0MjVEMzc3RTMwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjcxQTBCMEVFRUM3N0EwMEY2MTIxMyAvKiBXb3JrZXJO
YXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1Q0IwNTI1MUZCNTFGM0EwMDA4OUI5NyAv
KiBXb3JrZXJOZXR3b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUxMEY1NDZB
ODIwMEIwRjFCQSAvKiBXb3JrZXJPYmplY3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTUy
MSw2ICszNTUzNCw3IEBACiAJCQkJNDE2RTI5QTYxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJl
cG9ydGluZ1Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MzBGNTQ2QTgyMDBCMEYx
QkEgLyogV29ya2VyUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQ0YxRkFBNDRE
RTAwMzdEMUU2IC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM0
N0U1RkEyNUQ0RjAwMDAwRjE3QTVDIC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3RDZCMzQ5MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTJFQTc2ODA0MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJT
Y3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjU1MEY1NDZBODIw
MEIwRjFCQSAvKiBXb3JrZXJUaHJlYWQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKaW5k
ZXggMzUyZGNjNGFjZjc1MTc2ZDk4YWQzNDEwYmUxNTE2MDgwMTA4ODUyNC4uMjc3ZjYyYTdjMTMz
ZmUxNTZjNmNjZTk4NTUzNTUwZWRiMTM2ZDAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCkBAIC00MCwxNiAr
NDAsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8Q2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyPiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRT
Y3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJz
PiYmIHBhcmFtZXRlcnMpCitSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBDYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwg
RGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRj
aGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJv
bWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RGTW92ZShwYXJhbWV0ZXJzKSkpOwogfQogCi1DYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNo
ZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzPiYmIHBhcmFtZXRlcnMpCi0gICAgOiBtX2NsaWVudCgmY2xpZW50KQotICAgICwgbV9wcm9t
aXNlKCZwcm9taXNlKQotICAgICwgbV9zY3JpcHRGZXRjaGVyKHNjcmlwdEZldGNoZXIpCi0gICAg
LCBtX3BhcmFtZXRlcnMoV1RGTW92ZShwYXJhbWV0ZXJzKSkKK0NhY2hlZE1vZHVsZVNjcmlwdExv
YWRlcjo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYg
Y2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNj
cmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykK
KyAgICA6IE1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIs
IFdURk1vdmUocGFyYW1ldGVycykpCiB7CiB9CiAKQEAgLTYxLDE0ICs1OCwxNSBAQCBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI6On5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoKQogICAgIH0KIH0K
IAotYm9vbCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBVUkwmIHNvdXJjZVVSTCkKK2Jvb2wgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjps
b2FkKERvY3VtZW50JiBkb2N1bWVudCwgVVJMJiYgc291cmNlVVJMKQogeworICAgIEFTU0VSVCht
X3Byb21pc2UpOwogICAgIEFTU0VSVCghbV9jYWNoZWRTY3JpcHQpOwogICAgIFN0cmluZyBpbnRl
Z3JpdHkgPSBtX3BhcmFtZXRlcnMgPyBtX3BhcmFtZXRlcnMtPmludGVncml0eSgpIDogU3RyaW5n
IHsgfTsKLSAgICBtX2NhY2hlZFNjcmlwdCA9IG1fc2NyaXB0RmV0Y2hlci0+cmVxdWVzdE1vZHVs
ZVNjcmlwdChkb2N1bWVudCwgc291cmNlVVJMLCBXVEZNb3ZlKGludGVncml0eSkpOworICAgIG1f
Y2FjaGVkU2NyaXB0ID0gc2NyaXB0RmV0Y2hlcigpLnJlcXVlc3RNb2R1bGVTY3JpcHQoZG9jdW1l
bnQsIHNvdXJjZVVSTCwgV1RGTW92ZShpbnRlZ3JpdHkpKTsKICAgICBpZiAoIW1fY2FjaGVkU2Ny
aXB0KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgbV9zb3VyY2VVUkwgPSBzb3VyY2VVUkw7
CisgICAgbV9zb3VyY2VVUkwgPSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKICAgICAvLyBJZiB0aGUg
Y29udGVudCBpcyBhbHJlYWR5IGNhY2hlZCwgdGhpcyBpbW1lZGlhdGVseSBjYWxscyBub3RpZnlG
aW5pc2hlZC4KICAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KCp0aGlzKTsKQEAgLTgzLDcg
KzgxLDcgQEAgdm9pZCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENh
Y2hlZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgTmUKIAogICAgIFJlZjxDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogICAgIGlmIChtX2NsaWVudCkKLSAg
ICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVkKCp0aGlzLCBXVEZNb3ZlKG1fcHJvbWlzZSkp
OworICAgICAgICBtX2NsaWVudC0+bm90aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9zb3Vy
Y2VVUkwpLCBtX3Byb21pc2UucmVsZWFzZU5vbk51bGwoKSk7CiAKICAgICAvLyBSZW1vdmUgdGhl
IGNsaWVudCBhZnRlciBjYWxsaW5nIG5vdGlmeUZpbmlzaGVkIHRvIGtlZXAgdGhlIGRhdGEgYnVm
ZmVyIGluCiAgICAgLy8gQ2FjaGVkUmVzb3VyY2UgYWxpdmUgd2hpbGUgbm90aWZ5RmluaXNoZWQg
cHJvY2Vzc2VzIHRoZSByZXNvdXJjZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmgKaW5kZXggNDNhYmQ4NzViMjQzZmFmNWZj
ZDRkOThlYzNjNWQyNGU3OTBiNTcyZS4uYTQ4NzU1ZjkzZDA1ZWYzNTNkMmIzZTIyOGQ4MjE5ZmU4
OTFlNjc0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNp
bmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9h
ZGVyLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzQsNDIgKzM2LDI5IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OworY2xh
c3MgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OwogY2xhc3MgQ2FjaGVkU2NyaXB0OwotY2xhc3Mg
Q2FjaGVkU2NyaXB0RmV0Y2hlcjsKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CiBjbGFzcyBNb2R1bGVGZXRjaFBhcmFtZXRl
cnM7CiAKLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBSZWZD
b3VudGVkPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4sIHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VD
bGllbnQgeworY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1v
ZHVsZVNjcmlwdExvYWRlciwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+IGNyZWF0ZShDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRG
ZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisgICAgc3RhdGljIFJl
ZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+IGNyZWF0ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVs
ZUZldGNoUGFyYW1ldGVycz4mJik7CiAKICAgICB2aXJ0dWFsIH5DYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXIoKTsKIAotICAgIGJvb2wgbG9hZChEb2N1bWVudCYsIGNvbnN0IFVSTCYgc291cmNlVVJM
KTsKKyAgICBib29sIGxvYWQoRG9jdW1lbnQmLCBVUkwmJiBzb3VyY2VVUkwpOwogCi0gICAgQ2Fj
aGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlcigpIHsgcmV0dXJuIG1fc2NyaXB0RmV0Y2hl
ci5nZXQoKTsgfQogICAgIENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9j
YWNoZWRTY3JpcHQuZ2V0KCk7IH0KLSAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMqIHBhcmFtZXRl
cnMoKSB7IHJldHVybiBtX3BhcmFtZXRlcnMuZ2V0KCk7IH0KLSAgICBjb25zdCBVUkwmIHNvdXJj
ZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9Ci0KLSAgICB2b2lkIGNsZWFyQ2xp
ZW50KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2NsaWVudCk7Ci0gICAgICAgIG1fY2xpZW50
ID0gbnVsbHB0cjsKLSAgICB9CisgICAgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hl
cigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNjcmlwdEZldGNoZXImPihNb2R1bGVTY3Jp
cHRMb2FkZXI6OnNjcmlwdEZldGNoZXIoKSk7IH0KIAogcHJpdmF0ZToKLSAgICBDYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQ
cm9taXNlJiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRl
cnM+JiYpOworICAgIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1v
ZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hl
ZFJlc291cmNlJiwgY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CiAKLSAgICBDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwotICAgIFJl
ZlB0cjxEZWZlcnJlZFByb21pc2U+IG1fcHJvbWlzZTsKLSAgICBSZWY8Q2FjaGVkU2NyaXB0RmV0
Y2hlcj4gbV9zY3JpcHRGZXRjaGVyOwotICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+
IG1fcGFyYW1ldGVyczsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1f
Y2FjaGVkU2NyaXB0OwogICAgIFVSTCBtX3NvdXJjZVVSTDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Njg4YWQ5MGRhZTNlY2U5NDllYTA5
YjFlZmVlNWRhMjZmOTRjNzg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI7Ci1jbGFzcyBE
ZWZlcnJlZFByb21pc2U7Ci0KLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7
Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KCkg
PSBkZWZhdWx0OwotCi0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlciYsIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+KSA9IDA7Ci19OwotCi19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3Bw
CmluZGV4IGE0MzM3NTg2NWJiZjFlYzU5NzNiZjE3MmM5MWEzODUzMjM0ZTM3NGQuLmRmM2M2YjZl
YmI4NGFmNzJlZDI5NTVmOTkxMWQwN2E4N2FiMzUzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsNiArNDgsNyBAQCBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFNjcmlwdEZldGNoZXI6OnJl
cXVlc3RNb2R1bGVTY3JpcHQoRG9jdQogCiBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3Jp
cHQ+IENhY2hlZFNjcmlwdEZldGNoZXI6OnJlcXVlc3RTY3JpcHRXaXRoQ2FjaGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgY29uc3QgU3RyaW5nJiBjcm9zc09yaWdp
bk1vZGUsIFN0cmluZyYmIGludGVncml0eSwgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+
IHJlc291cmNlTG9hZFByaW9yaXR5KSBjb25zdAogeworICAgIC8vIFdpdGhvdXQgc2NyaXB0aW5n
LCB0aGVyZSBpcyBubyB3YXkgdG8gc3RhcnQgV29ya2Vycy4KICAgICBpZiAoIWRvY3VtZW50LnNl
dHRpbmdzKCkuaXNTY3JpcHRFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRs
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuY3BwCmluZGV4IGRmN2YzZDc0NmQ1ZTMyYWJhYjUxNDc2YzlkZGFjYTYzYTQzNTEzNmMuLmVl
ZjIxMDM4ODQ5ZmQ4OTg0OWFmY2VkNzAzMTg1ZmY4OTRjNDBjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCkBAIC01
Miw2ICs1MiwyNSBAQCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNWYWx1ZSBleGNlcHRpb25WYWx1ZQogICAgIHJlcG9ydEV4Y2VwdGlv
bihsZXhpY2FsR2xvYmFsT2JqZWN0LCBleGNlcHRpb24sIGNhY2hlZFNjcmlwdCk7CiB9CiAKK1N0
cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBWTSYgdm0sIEpTVmFsdWUgZXhjZXB0aW9uLCBDYXRjaFNjb3BlJiBj
YXRjaFNjb3BlKQoreworICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTUwODc+
IFdlYiBJbnNwZWN0b3I6IFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbiBzaG91bGQgbm90IGV2YWx1
YXRlIEphdmFTY3JpcHQgaGFuZGxpbmcgZXhjZXB0aW9ucworICAgIC8vIElmIHRoaXMgaXMgYSBj
dXN0b20gZXhjZXB0aW9uIG9iamVjdCwgY2FsbCB0b1N0cmluZyBvbiBpdCB0byB0cnkgYW5kIGdl
dCBhIG5pY2Ugc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgZXhjZXB0aW9uLgorICAgIFN0
cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKGF1dG8qIGVycm9yID0ganNEeW5hbWljQ2FzdDxF
cnJvckluc3RhbmNlKj4odm0sIGV4Y2VwdGlvbikpCisgICAgICAgIGVycm9yTWVzc2FnZSA9IGVy
cm9yLT5zYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBl
bHNlIGlmIChhdXRvKiBlcnJvciA9IGpzRHluYW1pY0Nhc3Q8SlNET01FeGNlcHRpb24qPih2bSwg
ZXhjZXB0aW9uKSkKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3ItPndyYXBwZWQoKS5tZXNz
YWdlKCk7CisgICAgZWxzZQorICAgICAgICBlcnJvck1lc3NhZ2UgPSBleGNlcHRpb24udG9XVEZT
dHJpbmcoJmxleGljYWxHbG9iYWxPYmplY3QpOworCisgICAgLy8gV2UgbmVlZCB0byBjbGVhciBh
bnkgbmV3IGV4Y2VwdGlvbiB0aGF0IG1heSBiZSB0aHJvd24gaW4gdGhlIHRvU3RyaW5nKCkgY2Fs
bCBhYm92ZS4KKyAgICAvLyByZXBvcnRFeGNlcHRpb24oKSBpcyBub3Qgc3VwcG9zZWQgdG8gYmUg
bWFraW5nIG5ldyBleGNlcHRpb25zLgorICAgIGNhdGNoU2NvcGUuY2xlYXJFeGNlcHRpb24oKTsK
KyAgICB2bS5jbGVhckxhc3RFeGNlcHRpb24oKTsKKyAgICByZXR1cm4gZXJyb3JNZXNzYWdlOwor
fQorCiBTdHJpbmcgcmV0cmlldmVFcnJvck1lc3NhZ2UoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIFZNJiB2bSwgSlNWYWx1ZSBleGNlcHRpb24sIENhdGNoU2NvcGUmIGNhdGNo
U2NvcGUpCiB7CiAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNTA4Nz4gV2Vi
IEluc3BlY3RvcjogV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9uIHNob3VsZCBub3QgZXZhbHVhdGUg
SmF2YVNjcmlwdCBoYW5kbGluZyBleGNlcHRpb25zCkBAIC0xMjEsMzYgKzE0MCw0NSBAQCB2b2lk
IHJlcG9ydEN1cnJlbnRFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QpCiAKIEpTVmFsdWUgY3JlYXRlRE9NRXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFeGNlcHRpb25Db2RlIGVjLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7
Ci0gICAgaWYgKGVjID09IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IpCisgICAgc3dpdGNoIChlYykg
eworICAgIGNhc2UgRXhpc3RpbmdFeGNlcHRpb25FcnJvcjoKICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAKICAgICAvLyBGSVhNRTogSGFuZGxlIG90aGVyIFdlYklETCBleGNlcHRpb24g
dHlwZXMuCi0gICAgaWYgKGVjID09IFR5cGVFcnJvcikgeworICAgIGNhc2UgVHlwZUVycm9yOgog
ICAgICAgICBpZiAobWVzc2FnZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gY3JlYXRl
VHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgICAgICByZXR1cm4gY3JlYXRlVHlw
ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIG1lc3NhZ2UpOwotICAgIH0KIAotICAgIGlmIChl
YyA9PSBSYW5nZUVycm9yKSB7CisgICAgY2FzZSBSYW5nZUVycm9yOgogICAgICAgICBpZiAobWVz
c2FnZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmFuZ2VFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAiQmFkIHZhbHVlIl9zKTsKICAgICAgICAgcmV0dXJuIGNyZWF0ZVJh
bmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgbWVzc2FnZSk7Ci0gICAgfQogCi0gICAgaWYg
KGVjID09IFN0YWNrT3ZlcmZsb3dFcnJvcikKKyAgICBjYXNlIEpTU3ludGF4RXJyb3I6CisgICAg
ICAgIGlmIChtZXNzYWdlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVTeW50
YXhFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVN5bnRh
eEVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIG1lc3NhZ2UpOworCisgICAgY2FzZSBTdGFja092
ZXJmbG93RXJyb3I6CiAgICAgICAgIHJldHVybiBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IobGV4
aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKGVjID09IE91dE9mTWVtb3J5RXJyb3IpCisKKyAg
ICBjYXNlIE91dE9mTWVtb3J5RXJyb3I6CiAgICAgICAgIHJldHVybiBjcmVhdGVPdXRPZk1lbW9y
eUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QpOwogCi0gICAgLy8gRklYTUU6IEFsbCBjYWxsZXJz
IHRvIGNyZWF0ZURPTUV4Y2VwdGlvbiBuZWVkIHRvIHBhc3MgaW4gdGhlIGNvcnJlY3QgZ2xvYmFs
IG9iamVjdC4KLSAgICAvLyBGb3Igbm93LCB3ZSdyZSBnb2luZyB0byBhc3N1bWUgdGhlIGxleGlj
YWxHbG9iYWxPYmplY3QuIFdoaWNoIGlzIHdyb25nIGluIGNhc2VzIGxpa2UgdGhpczoKLSAgICAv
LyBmcmFtZXNbMF0uZG9jdW1lbnQuY3JlYXRlRWxlbWVudChudWxsLCBudWxsKTsgLy8gdGhyb3dz
IGFuIGV4Y2VwdGlvbiB3aGljaCBzaG91bGQgaGF2ZSB0aGUgc3ViZnJhbWUncyBwcm90b3R5cGVz
LgotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBkZXByZWNhdGVkR2xvYmFs
T2JqZWN0Rm9yUHJvdG90eXBlKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIEpTVmFsdWUgZXJy
b3JPYmplY3QgPSB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgRE9NRXhj
ZXB0aW9uOjpjcmVhdGUoZWMsIG1lc3NhZ2UpKTsKLSAgICAKLSAgICBBU1NFUlQoZXJyb3JPYmpl
Y3QpOwotICAgIGFkZEVycm9ySW5mbyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBhc09iamVjdChlcnJv
ck9iamVjdCksIHRydWUpOwotICAgIHJldHVybiBlcnJvck9iamVjdDsKKyAgICBkZWZhdWx0OiB7
CisgICAgICAgIC8vIEZJWE1FOiBBbGwgY2FsbGVycyB0byBjcmVhdGVET01FeGNlcHRpb24gbmVl
ZCB0byBwYXNzIGluIHRoZSBjb3JyZWN0IGdsb2JhbCBvYmplY3QuCisgICAgICAgIC8vIEZvciBu
b3csIHdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0aGUgbGV4aWNhbEdsb2JhbE9iamVjdC4gV2hpY2gg
aXMgd3JvbmcgaW4gY2FzZXMgbGlrZSB0aGlzOgorICAgICAgICAvLyBmcmFtZXNbMF0uZG9jdW1l
bnQuY3JlYXRlRWxlbWVudChudWxsLCBudWxsKTsgLy8gdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGlj
aCBzaG91bGQgaGF2ZSB0aGUgc3ViZnJhbWUncyBwcm90b3R5cGVzLgorICAgICAgICBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3Rv
dHlwZShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICAgICAgSlNWYWx1ZSBlcnJvck9iamVjdCA9
IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBET01FeGNlcHRpb246OmNy
ZWF0ZShlYywgbWVzc2FnZSkpOworCisgICAgICAgIEFTU0VSVChlcnJvck9iamVjdCk7CisgICAg
ICAgIGFkZEVycm9ySW5mbyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBhc09iamVjdChlcnJvck9iamVj
dCksIHRydWUpOworICAgICAgICByZXR1cm4gZXJyb3JPYmplY3Q7CisgICAgfQorICAgIH0KKyAg
ICByZXR1cm4geyB9OwogfQogCiBKU1ZhbHVlIGNyZWF0ZURPTUV4Y2VwdGlvbihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCmlu
ZGV4IDJkM2UzMTFmNjFlZWI2ODVhYWMzNTU0NmFhZTE2MGRhOTc5MGVmNWYuLmQxZjZkZTkzNzQ3
MGNlNmRmMmNjYjY0NzIyODQ3NjZmZDAxOTU4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKQEAgLTY1LDYgKzY1LDcgQEAg
V0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSByZWplY3RQcm9taXNlV2l0aEdldHRl
clR5cGVFcnJvcihKU0M6OkpTR2xvYmEKIFdFQkNPUkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpTVmFs
dWUgcmVqZWN0UHJvbWlzZVdpdGhUaGlzVHlwZUVycm9yKERlZmVycmVkUHJvbWlzZSYsIGNvbnN0
IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIG9wZXJhdGlvbk5hbWUpOwogV0VCQ09S
RV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSByZWplY3RQcm9taXNlV2l0aFRoaXNUeXBlRXJy
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCYsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0
IGNoYXIqIG9wZXJhdGlvbk5hbWUpOwogCitTdHJpbmcgcmV0cmlldmVFcnJvck1lc3NhZ2VXaXRo
b3V0TmFtZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSBleGNl
cHRpb24sIEpTQzo6Q2F0Y2hTY29wZSYpOwogU3RyaW5nIHJldHJpZXZlRXJyb3JNZXNzYWdlKEpT
Qzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlIGV4Y2VwdGlvbiwgSlND
OjpDYXRjaFNjb3BlJik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU1ZhbHVlIGV4Y2VwdGlvbiwgQ2FjaGVkU2NyaXB0KiA9
IG51bGxwdHIpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBvcnRFeGNlcHRpb24oSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RXhjZXB0aW9uKiwgQ2FjaGVkU2NyaXB0KiA9IG51bGxwdHIsIEV4
Y2VwdGlvbkRldGFpbHMqID0gbnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggNThiN2RmNzYwYzAwYTMxZmYwOGVkMjJk
ZWUyMmE4Yzc0NDNhZThkZC4uOWQ2OTdkNDU5YjU2MzQ1Y2M4Mzk2MjAyNjY3NmUwMGE5OGJmNDlh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0
LmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIkpTV29ya2xldEdsb2JhbFNjb3BlLmgi
CiAjaW5jbHVkZSAiUmVqZWN0ZWRQcm9taXNlVHJhY2tlci5oIgogI2luY2x1ZGUgIlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJTY3JpcHRNb2R1bGVMb2FkZXIuaCIKICNpbmNs
dWRlICJTdHJ1Y3R1cmVkQ2xvbmUuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgi
CiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTQyMiw2ICs0MjMsNzkgQEAgSlND
OjpKU1Byb21pc2UqIEpTRE9NR2xvYmFsT2JqZWN0OjppbnN0YW50aWF0ZVN0cmVhbWluZyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KICNlbmRpZgogCitzdGF0aWMgU2NyaXB0TW9kdWxlTG9h
ZGVyKiBzY3JpcHRNb2R1bGVMb2FkZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
K3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgaWYgKGdsb2JhbE9iamVj
dC0+aW5oZXJpdHM8SlNET01XaW5kb3dCYXNlPih2bSkpIHsKKyAgICAgICAgaWYgKGF1dG8gZG9j
dW1lbnQgPSBqc0Nhc3Q8Y29uc3QgSlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3Jh
cHBlZCgpLmRvY3VtZW50KCkpCisgICAgICAgICAgICByZXR1cm4gJmRvY3VtZW50LT5tb2R1bGVM
b2FkZXIoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGlmIChnbG9iYWxP
YmplY3QtPmluaGVyaXRzPEpTUmVtb3RlRE9NV2luZG93QmFzZT4odm0pKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZT4odm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1dvcmtlckds
b2JhbFNjb3BlQmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBwZWQoKS5tb2R1bGVMb2FkZXIoKTsK
KyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U+
KHZtKSkKKyAgICAgICAgcmV0dXJuICZqc0Nhc3Q8Y29uc3QgSlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxvYWRlcigpOworI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQorICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTSURC
U2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdD4odm0pKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyNlbmRpZgorICAgIGRhdGFMb2coIlVuZXhwZWN0ZWQgZ2xvYmFsIG9iamVjdDogIiwgSlNWYWx1
ZShnbG9iYWxPYmplY3QpLCAiXG4iKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitKU0M6OklkZW50aWZpZXIgSlNET01HbG9iYWxP
YmplY3Q6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1
bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBzY3Jp
cHRGZXRjaGVyKQoreworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBs
b2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBs
b2FkZXItPnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIGlt
cG9ydGVyTW9kdWxlS2V5LCBzY3JpcHRGZXRjaGVyKTsKKyAgICByZXR1cm4geyB9OworfQorCitK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRmV0
Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVy
KiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBwYXJh
bWV0ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3Jp
cHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihz
Y29wZSwgbG9hZGVyLT5mZXRjaChnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5
LCBwYXJhbWV0ZXJzLCBzY3JpcHRGZXRjaGVyKSk7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlz
ZSogcHJvbWlzZSA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2U6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LT5pbnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUoKSk7CisgICAgc2NvcGUucmVsZWFzZSgpOwor
ICAgIHByb21pc2UtPnJlamVjdChnbG9iYWxPYmplY3QsIGpzVW5kZWZpbmVkKCkpOworICAgIHJl
dHVybiBwcm9taXNlOworfQorCitKU0M6OkpTVmFsdWUgSlNET01HbG9iYWxPYmplY3Q6Om1vZHVs
ZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpK
U01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6
OkpTVmFsdWUgbW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAg
ICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9k
dWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICByZXR1cm4gbG9hZGVyLT5ldmFsdWF0ZShn
bG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQsIHNjcmlw
dEZldGNoZXIpOworICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Cit9CisKK0pTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1
bGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVy
KiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNTdHJpbmcqIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBw
YXJhbWV0ZXJzLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luKQoreworICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6
OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8q
IGxvYWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBsb2FkZXItPmltcG9ydE1vZHVsZShnbG9iYWxPYmplY3QsIG1v
ZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgcGFyYW1ldGVycywgc291cmNlT3JpZ2luKSk7CisgICAg
SlNDOjpKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2U6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5pbnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUoKSk7Cisg
ICAgc2NvcGUucmVsZWFzZSgpOworICAgIHByb21pc2UtPnJlamVjdChnbG9iYWxPYmplY3QsIGpz
VW5kZWZpbmVkKCkpOworICAgIHJldHVybiBwcm9taXNlOworfQorCitKU0M6OkpTT2JqZWN0KiBK
U0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMo
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBt
b2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNNb2R1bGVSZWNvcmQq
IG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7CisgICAgSlNET01H
bG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+
KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlwdE1vZHVsZUxvYWRl
cih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxvYWRlci0+Y3JlYXRlSW1wb3J0TWV0YVBy
b3BlcnRpZXMoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgbW9kdWxlUmVj
b3JkLCBzY3JpcHRGZXRjaGVyKTsKKyAgICByZXR1cm4gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xv
YmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1
cmUoKSk7Cit9CisKIEpTRE9NR2xvYmFsT2JqZWN0JiBjYWxsZXJHbG9iYWxPYmplY3QoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSYgY2FsbEZyYW1lKQogewog
ICAgIGNsYXNzIEdldENhbGxlckdsb2JhbE9iamVjdEZ1bmN0b3IgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggYjg0MDcyZGRkNzQ2YjNk
NmM1MTA2MGQ5MDUwMWI1Y2VhMWI0OTliMS4uZjQ5YTRjZDI1NzE5NzExODkxN2E3ZDdhNGI2YzBl
MTFmYzc2YmE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2Jh
bE9iamVjdC5oCkBAIC0xMDUsNiArMTA1LDEyIEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTRE9N
R2xvYmFsT2JqZWN0IDogcHVibGljIEpTQzo6SlNHbG9iYWxPYmplY3QgewogICAgIHN0YXRpYyBK
U0M6OkpTUHJvbWlzZSogaW5zdGFudGlhdGVTdHJlYW1pbmcoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6SlNWYWx1ZSwgSlNDOjpKU09iamVjdCopOwogI2VuZGlmCiAKKyAgICBzdGF0aWMgSlND
OjpJZGVudGlmaWVyIG1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1Zh
bHVlKTsKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyRmV0
Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFs
dWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgSlNDOjpKU1ZhbHVl
IG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxl
TG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAg
c3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckltcG9ydE1vZHVsZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNTdHJpbmcq
LCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJik7CisgICAgc3RhdGljIEpT
Qzo6SlNPYmplY3QqIG1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTTW9kdWxlUmVjb3JkKiwgSlNDOjpKU1ZhbHVlKTsKKwogICAgIEpTRE9NU3RydWN0dXJlTWFw
IG1fc3RydWN0dXJlczsKICAgICBKU0RPTUNvbnN0cnVjdG9yTWFwIG1fY29uc3RydWN0b3JzOwog
ICAgIERPTUd1YXJkZWRPYmplY3RTZXQgbV9ndWFyZGVkT2JqZWN0czsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IDU2M2VmYTA1NzFiNWQ0
NjJkOWU2NDUwODlmMGJkOGY3N2QxOWE3NjguLjMxMmEwMTE1OGU4YzI4MDgzYzA3ZTQyZGI4NzI0
NWZlNGU1YzU3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmNwcApAQCAtMzM5LDU0ICszMzksNCBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6Zmly
ZUZyYW1lQ2xlYXJlZFdhdGNocG9pbnRzRm9yV2luZG93KERPTVdpbmRvdyogd2luZG93KQogICAg
IH0KIH0KIAotSlNDOjpJZGVudGlmaWVyIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyUmVz
b2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2Fk
ZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBp
bXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCi17Ci0gICAgSlNE
T01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4o
Z2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNP
YmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1v
ZHVsZUxvYWRlcigpLnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5h
bWUsIGltcG9ydGVyTW9kdWxlS2V5LCBzY3JpcHRGZXRjaGVyKTsKLSAgICByZXR1cm4geyB9Owot
fQotCi1KU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRl
ckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxv
YWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUg
cGFyYW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCi17Ci0gICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RP
TVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRv
Y3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmZldGNoKGdsb2Jh
bE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIHBhcmFtZXRlcnMsIHNjcmlwdEZldGNo
ZXIpKTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNDOjpKU0ludGVy
bmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVj
dHVyZSgpKTsKLSAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcHJvbWlzZS0+cmVqZWN0KGdsb2Jh
bE9iamVjdCwganNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIHByb21pc2U7Ci19Ci0KLUpTQzo6
SlNWYWx1ZSBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVy
LCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkLCBKU0M6
OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmpl
Y3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwotICAgIGlm
IChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3Vt
ZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuZXZhbHVhdGUo
Z2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkLCBzY3Jp
cHRGZXRjaGVyKTsKLSAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwotfQotCi1KU0M6OkpT
SW50ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVs
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1N0cmluZyogbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcnMsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCi17Ci0gICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6Ompz
Q2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9j
dW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAg
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmlt
cG9ydE1vZHVsZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgcGFyYW1l
dGVycywgc291cmNlT3JpZ2luKSk7Ci0gICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcHJvbWlz
ZSA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2U6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5pbnRl
cm5hbFByb21pc2VTdHJ1Y3R1cmUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgpOwotICAgIHByb21p
c2UtPnJlamVjdChnbG9iYWxPYmplY3QsIGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBwcm9t
aXNlOwotfQotCi1KU0M6OkpTT2JqZWN0KiBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlckNy
ZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxl
S2V5LCBKU0M6OkpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3Jp
cHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anND
YXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1
bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAg
ICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5jcmVhdGVJbXBvcnRNZXRhUHJvcGVy
dGllcyhnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQs
IHNjcmlwdEZldGNoZXIpOwotICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxP
YmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVyZSgp
KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCAzZWY5ODBkZDI3ZjZiMjEzOTg3MDA4YmE0NzZj
OGNhNjlmMmYwYjY0Li41MTQyYjFjN2RjMjVjMjJmZTk3ODk1ZTc1YWUyMmVmNGQxZTU4OWQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtOTks
MTIgKzk5LDYgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNET01XaW5kb3dCYXNlIDogcHVibGlj
IEpTRE9NR2xvYmFsT2JqZWN0IHsKIHByaXZhdGU6CiAgICAgdXNpbmcgUmVzcG9uc2VDYWxsYmFj
ayA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBjaGFyKiwgc2l6ZV90KT47CiAKLSAgICBzdGF0
aWMgSlNDOjpJZGVudGlmaWVyIG1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlND
OjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9h
ZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6
OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgSlNDOjpK
U1ZhbHVlIG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7
Ci0gICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckltcG9ydE1v
ZHVsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNT
dHJpbmcqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJik7Ci0gICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIG1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVl
LCBKU0M6OkpTTW9kdWxlUmVjb3JkKiwgSlNDOjpKU1ZhbHVlKTsKLQogICAgIFJlZlB0cjxET01X
aW5kb3c+IG1fd3JhcHBlZDsKICAgICBSZWZQdHI8RXZlbnQ+IG1fY3VycmVudEV2ZW50OwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2Nv
cGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2Nv
cGVCYXNlLmNwcAppbmRleCA0MmIyNmM5ZjRlYTIxNjIwN2RlNGM4NjgyMGI4YTgxYjYwMzViN2Vi
Li4yZDc5M2ZmZjIxODUzYThhMWE3ODgwNjY3MjUwZjU3ZTc1MmZlM2YzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3Bw
CkBAIC01OSwxMSArNTksMTEgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUKICAgICAmamF2YVNj
cmlwdFJ1bnRpbWVGbGFncywKICAgICAmcXVldWVNaWNyb3Rhc2tUb0V2ZW50TG9vcCwKICAgICAm
c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwKLSAgICBudWxscHRyLCAvLyBtb2R1
bGVMb2FkZXJJbXBvcnRNb2R1bGUKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJSZXNvbHZl
Ci0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyRmV0Y2gKLSAgICBudWxscHRyLCAvLyBtb2R1
bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcwotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckV2YWx1YXRlCisgICAgJm1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSwKKyAgICAmbW9k
dWxlTG9hZGVyUmVzb2x2ZSwKKyAgICAmbW9kdWxlTG9hZGVyRmV0Y2gsCisgICAgJm1vZHVsZUxv
YWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzLAorICAgICZtb2R1bGVMb2FkZXJFdmFsdWF0
ZSwKICAgICAmcHJvbWlzZVJlamVjdGlvblRyYWNrZXIsCiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhj
ZXB0aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29w
ZUJhc2UuY3BwCmluZGV4IDM1ZmE2ZTMyNzdmYjBkNGJlMGUwZTFlZGM0MzcyMmVkYWRmYzhhZjIu
LjlmYWVjOTU5YzM5ZDE3NDgxODFjOTg2NTAwM2Q1YTg2ZjE3ZjVlM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNw
cApAQCAtNDksMTEgKzQ5LDExIEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29y
a2xldEdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsCiAgICAgJmphdmFT
Y3JpcHRSdW50aW1lRmxhZ3MsCiAgICAgbnVsbHB0ciwgLy8gcXVldWVNaWNyb3Rhc2tUb0V2ZW50
TG9vcAogICAgICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LAotICAgIG51bGxw
dHIsIC8vIG1vZHVsZUxvYWRlckltcG9ydE1vZHVsZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxv
YWRlclJlc29sdmUKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJGZXRjaAotICAgIG51bGxw
dHIsIC8vIG1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVyRXZhbHVhdGUKKyAgICAmbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxl
LAorICAgICZtb2R1bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1bGVMb2FkZXJGZXRjaCwKKyAg
ICAmbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMsCisgICAgJm1vZHVsZUxv
YWRlckV2YWx1YXRlLAogICAgICZwcm9taXNlUmVqZWN0aW9uVHJhY2tlciwKICAgICAmcmVwb3J0
VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlv
bk93bmVyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlU2Ny
aXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2Fk
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mYTkxMGU5NDliN2FjMWEzOGVkZWVjYjAzZGViNmVlODk0Y2NlYjBk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlU2Ny
aXB0TG9hZGVyLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRj
aFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRGZXRjaGVyLmg+
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CisKK2NsYXNzIE1vZHVsZVNjcmlwdExvYWRl
ciA6IHB1YmxpYyBSZWZDb3VudGVkPE1vZHVsZVNjcmlwdExvYWRlcj4geworcHVibGljOgorICAg
IHZpcnR1YWwgfk1vZHVsZVNjcmlwdExvYWRlcigpID0gZGVmYXVsdDsKKworICAgIHZvaWQgY2xl
YXJDbGllbnQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fY2xpZW50KTsKKyAgICAgICAgbV9j
bGllbnQgPSBudWxscHRyOworICAgIH0KKworICAgIEpTQzo6U2NyaXB0RmV0Y2hlciYgc2NyaXB0
RmV0Y2hlcigpIHsgcmV0dXJuIG1fc2NyaXB0RmV0Y2hlci5nZXQoKTsgfQorICAgIE1vZHVsZUZl
dGNoUGFyYW1ldGVycyogcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVycy5nZXQoKTsg
fQorCitwcm90ZWN0ZWQ6CisgICAgTW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRl
ckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIEpTQzo6U2NyaXB0RmV0
Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJh
bWV0ZXJzKQorICAgICAgICA6IG1fY2xpZW50KCZjbGllbnQpCisgICAgICAgICwgbV9wcm9taXNl
KCZwcm9taXNlKQorICAgICAgICAsIG1fc2NyaXB0RmV0Y2hlcihzY3JpcHRGZXRjaGVyKQorICAg
ICAgICAsIG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQorICAgIHsKKyAgICB9CisK
KyAgICBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQqIG1fY2xpZW50OworICAgIFJlZlB0cjxEZWZl
cnJlZFByb21pc2U+IG1fcHJvbWlzZTsKKyAgICBSZWY8SlNDOjpTY3JpcHRGZXRjaGVyPiBtX3Nj
cmlwdEZldGNoZXI7CisgICAgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4gbV9wYXJhbWV0
ZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
OTk1ZjQ4ZWUzZDFlMDJjMWQ4YzljOWRhMmJkNTgyMzZmM2JhMDdkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgK
QEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSwgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNb2R1
bGVTY3JpcHRMb2FkZXI7CitjbGFzcyBEZWZlcnJlZFByb21pc2U7CisKK2NsYXNzIE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVk
KE1vZHVsZVNjcmlwdExvYWRlciYsIFVSTCYmLCBSZWY8RGVmZXJyZWRQcm9taXNlPikgPSAwOwor
fTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9k
dWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxv
YWRlci5jcHAKaW5kZXggYWE1YjgwYjU4NmI3OWUwZTU3NTAxY2Q1MTA3OGRmMjVhNjI1ZTVkOS4u
YjhiZTI1ZDcyNzFhZWM1OWQ2NTFhOGJmNmMxMTllY2UyMmI1ZDg5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCkBAIC0yOSw3ICsy
OSw2IEBACiAjaW5jbHVkZSAiQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0RmV0Y2hlci5oIgotI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgpAQCAtNDEsNiArNDAsOSBA
QAogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUlu
dGVncml0eS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKKyNpbmNsdWRlICJX
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJTY3JpcHRGZXRjaGVy
LmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTSW50ZXJuYWxQ
cm9taXNlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4KQEAg
LTUyLDggKzU0LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TY3JpcHRNb2R1bGVMb2Fk
ZXI6OlNjcmlwdE1vZHVsZUxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBtX2RvY3Vt
ZW50KGRvY3VtZW50KQorU2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgT3duZXJUeXBlIG93bmVyVHlwZSkKKyAgICA6
IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9vd25lclR5cGUob3duZXJUeXBlKQogewogfQog
CkBAIC02OCw3ICs3MSw3IEBAIHN0YXRpYyBib29sIGlzUm9vdE1vZHVsZShKU0M6OkpTVmFsdWUg
aW1wb3J0ZXJNb2R1bGVLZXkpCiAgICAgcmV0dXJuIGltcG9ydGVyTW9kdWxlS2V5LmlzU3ltYm9s
KCkgfHwgaW1wb3J0ZXJNb2R1bGVLZXkuaXNVbmRlZmluZWQoKTsKIH0KIAotc3RhdGljIEV4cGVj
dGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgU3RyaW5nJiBzcGVjaWZpZXIsIGNvbnN0IFVSTCYgYmFzZVVSTCkKK3N0YXRpYyBF
eHBlY3RlZDxVUkwsIFN0cmluZz4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93bmVyVHlwZSBvd25lclR5
cGUsIGNvbnN0IFN0cmluZyYgc3BlY2lmaWVyLCBjb25zdCBVUkwmIGJhc2VVUkwpCiB7CiAgICAg
Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1s
I3Jlc29sdmUtYS1tb2R1bGUtc3BlY2lmaWVyCiAKQEAgLTc5LDcgKzgyLDEyIEBAIHN0YXRpYyBF
eHBlY3RlZDxVUkwsIFN0cmluZz4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFN0CiAgICAgaWYgKCFzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpICYmICFz
cGVjaWZpZXIuc3RhcnRzV2l0aCgiLi8iKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4uLyIp
KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIHNwZWNp
ZmllciwgJyJfcywgc3BlY2lmaWVyLCAiJyBkb2VzIG5vdCBzdGFydCB3aXRoIFwiL1wiLCBcIi4v
XCIsIG9yIFwiLi4vXCIuIFJlZmVyZW5jZWQgZnJvbSAiX3MsIGJhc2VVUkwuc3RyaW5nKCkpKTsK
IAotICAgIGF1dG8gcmVzdWx0ID0gZG9jdW1lbnQuY29tcGxldGVVUkwoc3BlY2lmaWVyLCBiYXNl
VVJMKTsKKyAgICBVUkwgcmVzdWx0OworICAgIGlmIChvd25lclR5cGUgPT0gU2NyaXB0TW9kdWxl
TG9hZGVyOjpPd25lclR5cGU6OkRvY3VtZW50KQorICAgICAgICByZXN1bHQgPSBkb3duY2FzdDxE
b2N1bWVudD4oY29udGV4dCkuY29tcGxldGVVUkwoc3BlY2lmaWVyLCBiYXNlVVJMKTsKKyAgICBl
bHNlCisgICAgICAgIHJlc3VsdCA9IFVSTChiYXNlVVJMLCBzcGVjaWZpZXIpOworCiAgICAgaWYg
KCFyZXN1bHQuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0
cmluZygiTW9kdWxlIG5hbWUsICciX3MsIHJlc3VsdC5zdHJpbmcoKSwgIicgZG9lcyBub3QgcmVz
b2x2ZSB0byBhIHZhbGlkIFVSTC4iX3MpKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTA3LDcg
KzExNSw3IEBAIEpTQzo6SWRlbnRpZmllciBTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUoSlND
OjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsCiAgICAgVVJMIGJhc2VVUkwgPSByZXNw
b25zZVVSTEZyb21SZXF1ZXN0VVJMKCpqc0dsb2JhbE9iamVjdCwgaW1wb3J0ZXJNb2R1bGVLZXkp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAgICBhdXRvIHJlc3Vs
dCA9IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIobV9kb2N1bWVudCwgc3BlY2lmaWVyLCBiYXNlVVJM
KTsKKyAgICBhdXRvIHJlc3VsdCA9IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIobV9jb250ZXh0LCBt
X293bmVyVHlwZSwgc3BlY2lmaWVyLCBiYXNlVVJMKTsKICAgICBpZiAoIXJlc3VsdCkgewogICAg
ICAgICBKU0M6OnRocm93VHlwZUVycm9yKGpzR2xvYmFsT2JqZWN0LCBzY29wZSwgcmVzdWx0LmVy
cm9yKCkpOwogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTYxLDEzICsxNjksMTkgQEAgSlNDOjpK
U0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFs
T2JqZWN0KiBqc0dsb2JhbE8KICAgICBpZiAoYXV0byogc2NyaXB0RmV0Y2hQYXJhbWV0ZXJzID0g
SlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaFBhcmFtZXRlcnMqPih2bSwgcGFy
YW1ldGVycykpCiAgICAgICAgIHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzID0gc3RhdGljX2Nhc3Q8
TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzKj4oJnNjcmlwdEZldGNoUGFyYW1ldGVycy0+cGFyYW1ldGVy
cygpKTsKIAotICAgIGF1dG8gbG9hZGVyID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVh
dGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hl
cio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZl
dGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsKLSAgICBtX2xvYWRl
cnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOwotICAgIGlmICghbG9hZGVyLT5sb2FkKG1fZG9jdW1l
bnQsIGNvbXBsZXRlZFVSTCkpIHsKLSAgICAgICAgbG9hZGVyLT5jbGVhckNsaWVudCgpOwotICAg
ICAgICBtX2xvYWRlcnMucmVtb3ZlKFdURk1vdmUobG9hZGVyKSk7Ci0gICAgICAgIHJlamVjdFRv
UHJvcGFnYXRlTmV0d29ya0Vycm9yKGRlZmVycmVkLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVL
aW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsK
LSAgICAgICAgcmV0dXJuIGpzUHJvbWlzZTsKKyAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJU
eXBlOjpEb2N1bWVudCkgeworICAgICAgICBhdXRvIGxvYWRlciA9IENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19jYXN0PENhY2hl
ZFNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hlcio+KHNjcmlw
dEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzKSk7
CisgICAgICAgIG1fbG9hZGVycy5hZGQobG9hZGVyLmNvcHlSZWYoKSk7CisgICAgICAgIGlmICgh
bG9hZGVyLT5sb2FkKGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLCBXVEZNb3ZlKGNvbXBs
ZXRlZFVSTCkpKSB7CisgICAgICAgICAgICBsb2FkZXItPmNsZWFyQ2xpZW50KCk7CisgICAgICAg
ICAgICBtX2xvYWRlcnMucmVtb3ZlKFdURk1vdmUobG9hZGVyKSk7CisgICAgICAgICAgICByZWpl
Y3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihkZWZlcnJlZC5nZXQoKSwgTW9kdWxlRmV0Y2hGYWls
dXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJf
cyk7CisgICAgICAgICAgICByZXR1cm4ganNQcm9taXNlOworICAgICAgICB9CisgICAgfSBlbHNl
IHsKKyAgICAgICAgYXV0byBsb2FkZXIgPSBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0
ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNfY2FzdDxXb3JrZXJTY3JpcHRGZXRjaGVy
Kj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNoZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0
Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFyYW1ldGVycykpOworICAgICAgICBtX2xv
YWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOworICAgICAgICBsb2FkZXItPmxvYWQobV9jb250
ZXh0LCBXVEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0KIAogICAgIHJldHVybiBqc1Byb21p
c2U7CkBAIC0xNzYsNyArMTkwLDcgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9k
dWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE8KIFVSTCBTY3Jp
cHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9i
amVjdCwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlKQogewogICAgIGlmIChtb2R1bGVLZXlW
YWx1ZS5pc1N5bWJvbCgpKQotICAgICAgICByZXR1cm4gbV9kb2N1bWVudC51cmwoKTsKKyAgICAg
ICAgcmV0dXJuIG1fY29udGV4dC51cmwoKTsKIAogICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1ZS5p
c1N0cmluZygpKTsKICAgICByZXR1cm4gVVJMKFVSTCgpLCBhc1N0cmluZyhtb2R1bGVLZXlWYWx1
ZSktPnZhbHVlKCZqc0dsb2JhbE9iamVjdCkpOwpAQCAtMTg3LDggKzIwMSwxMSBAQCBVUkwgU2Ny
aXB0TW9kdWxlTG9hZGVyOjpyZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKEpTQzo6SlNHbG9iYWxP
YmplY3QmIGpzR2xvYmFsTwogICAgIEpTQzo6Vk0mIHZtID0ganNHbG9iYWxPYmplY3Qudm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBpZiAoaXNS
b290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkKLSAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnQuYmFz
ZVVSTCgpOworICAgIGlmIChpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKSB7CisgICAgICAg
IGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KQorICAgICAgICAgICAgcmV0
dXJuIGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmJhc2VVUkwoKTsKKyAgICAgICAgcmV0
dXJuIG1fY29udGV4dC51cmwoKTsKKyAgICB9CiAKICAgICBBU1NFUlQoIWlzUm9vdE1vZHVsZSht
b2R1bGVLZXlWYWx1ZSkpOwogICAgIEFTU0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsK
QEAgLTIxOSw4ICsyMzYsMTQgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZXZh
bHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsIEoKICAgICBpZiAoIXNv
dXJjZVVSTC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBKU0M6OnRocm93VHlwZUVycm9yKGpz
R2xvYmFsT2JqZWN0LCBzY29wZSwgIk1vZHVsZSBrZXkgaXMgYW4gaW52YWxpZCBVUkwuIl9zKTsK
IAotICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgcmV0
dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsICptb2R1bGVSZWNv
cmQpOworICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CisgICAg
ICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmZyYW1l
KCkpCisgICAgICAgICAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxlKHNv
dXJjZVVSTCwgKm1vZHVsZVJlY29yZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKGlz
PFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPihtX2NvbnRleHQpKTsKKyAgICAgICAgaWYgKGF1
dG8qIHNjcmlwdCA9IGRvd25jYXN0PFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPihtX2NvbnRl
eHQpLnNjcmlwdCgpKQorICAgICAgICAgICAgcmV0dXJuIHNjcmlwdC0+ZXZhbHVhdGVNb2R1bGUo
Km1vZHVsZVJlY29yZCk7CisgICAgfQogICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9
CiAKQEAgLTI0OCw4ICsyNzEsMTMgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9k
dWxlTG9hZGVyOjppbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganMKICAgICBVUkwg
YmFzZVVSTDsKICAgICBSZWZQdHI8SlNDOjpTY3JpcHRGZXRjaGVyPiBzY3JpcHRGZXRjaGVyOwog
ICAgIGlmIChzb3VyY2VPcmlnaW4uaXNOdWxsKCkpIHsKLSAgICAgICAgYmFzZVVSTCA9IG1fZG9j
dW1lbnQuYmFzZVVSTCgpOwotICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0
Y2hlcjo6Y3JlYXRlKG1fZG9jdW1lbnQuY2hhcnNldCgpKTsKKyAgICAgICAgaWYgKG1fb3duZXJU
eXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgICAgIGJhc2VVUkwgPSBkb3du
Y2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5iYXNlVVJMKCk7CisgICAgICAgICAgICBzY3JpcHRG
ZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Piht
X2NvbnRleHQpLmNoYXJzZXQoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBiYXNl
VVJMID0gbV9jb250ZXh0LnVybCgpOworICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IFdvcmtl
clNjcmlwdEZldGNoZXI6OmNyZWF0ZShGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3Jp
Z2luKTsKKyAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGJhc2VVUkwgPSBVUkwoVVJM
KCksIHNvdXJjZU9yaWdpbi5zdHJpbmcoKSk7CiAgICAgICAgIGlmICghYmFzZVVSTC5pc1ZhbGlk
KCkpCkBAIC0yNTcsMTQgKzI4NSwxOSBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRN
b2R1bGVMb2FkZXI6OmltcG9ydE1vZHVsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqcwogCiAgICAg
ICAgIGlmIChzb3VyY2VPcmlnaW4uZmV0Y2hlcigpKQogICAgICAgICAgICAgc2NyaXB0RmV0Y2hl
ciA9IHNvdXJjZU9yaWdpbi5mZXRjaGVyKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNj
cmlwdEZldGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9kb2N1bWVudC5jaGFy
c2V0KCkpOworCisgICAgICAgIGlmICghc2NyaXB0RmV0Y2hlcikgeworICAgICAgICAgICAgaWYg
KG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpCisgICAgICAgICAgICAgICAgc2Ny
aXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVu
dD4obV9jb250ZXh0KS5jaGFyc2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHNjcmlwdEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpjcmVhdGUoRmV0Y2hPcHRp
b25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbik7CisgICAgICAgIH0KICAgICB9CiAgICAgQVNT
RVJUKGJhc2VVUkwuaXNWYWxpZCgpKTsKICAgICBBU1NFUlQoc2NyaXB0RmV0Y2hlcik7CiAKICAg
ICBhdXRvIHNwZWNpZmllciA9IG1vZHVsZU5hbWUtPnZhbHVlKGpzR2xvYmFsT2JqZWN0KTsKLSAg
ICBhdXRvIHJlc3VsdCA9IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIobV9kb2N1bWVudCwgc3BlY2lm
aWVyLCBiYXNlVVJMKTsKKyAgICBhdXRvIHJlc3VsdCA9IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIo
bV9jb250ZXh0LCBtX293bmVyVHlwZSwgc3BlY2lmaWVyLCBiYXNlVVJMKTsKICAgICBpZiAoIXJl
c3VsdCkKICAgICAgICAgcmV0dXJuIHJlamVjdFByb21pc2UoZ2xvYmFsT2JqZWN0LCBUeXBlRXJy
b3IsIHJlc3VsdC5lcnJvcigpKTsKIApAQCAtMjg4LDYyICszMjEsMTA3IEBAIEpTQzo6SlNPYmpl
Y3QqIFNjcmlwdE1vZHVsZUxvYWRlcjo6Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpK
U0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIG1ldGFQcm9wZXJ0aWVzOwogfQogCi12b2lkIFNjcmlw
dE1vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiBs
b2FkZXIsIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IHByb21pc2UpCit2b2lkIFNjcmlwdE1vZHVs
ZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVyJiBtb2R1bGVTY3JpcHRM
b2FkZXIsIFVSTCYmIHNvdXJjZVVSTCwgUmVmPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZSkKIHsK
ICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlz
Lmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAogCi0gICAgVVJMIHNvdXJjZVVSTCA9
IGxvYWRlci5zb3VyY2VVUkwoKTsKLSAgICBpZiAoIW1fbG9hZGVycy5yZW1vdmUoJmxvYWRlcikp
CisgICAgaWYgKCFtX2xvYWRlcnMucmVtb3ZlKCZtb2R1bGVTY3JpcHRMb2FkZXIpKQogICAgICAg
ICByZXR1cm47Ci0gICAgbG9hZGVyLmNsZWFyQ2xpZW50KCk7CisgICAgbW9kdWxlU2NyaXB0TG9h
ZGVyLmNsZWFyQ2xpZW50KCk7CiAKLSAgICBhdXRvJiBjYWNoZWRTY3JpcHQgPSAqbG9hZGVyLmNh
Y2hlZFNjcmlwdCgpOworICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50
KSB7CisgICAgICAgIGF1dG8mIGxvYWRlciA9IHN0YXRpY19jYXN0PENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlciY+KG1vZHVsZVNjcmlwdExvYWRlcik7CisgICAgICAgIGF1dG8mIGNhY2hlZFNjcmlw
dCA9ICpsb2FkZXIuY2FjaGVkU2NyaXB0KCk7CiAKLSAgICBpZiAoY2FjaGVkU2NyaXB0LnJlc291
cmNlRXJyb3IoKS5pc0FjY2Vzc0NvbnRyb2woKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3Qo
VHlwZUVycm9yLCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1Pcmln
aW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
KyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC5yZXNvdXJjZUVycm9yKCkuaXNBY2Nlc3NDb250cm9s
KCkpIHsKKyAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2Uu
Z2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJDcm9zcy1vcmlnaW4g
c2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGlj
eS4iX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICBpZiAoY2FjaGVk
U2NyaXB0LmVycm9yT2NjdXJyZWQoKSkgewotICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdv
cmtFcnJvcigqcHJvbWlzZSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIklt
cG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQuZXJyb3JPY2N1cnJlZCgpKSB7CisgICAgICAg
ICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVG
ZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBm
YWlsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAgaWYgKGNh
Y2hlZFNjcmlwdC53YXNDYW5jZWxlZCgpKSB7Ci0gICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0
d29ya0Vycm9yKCpwcm9taXNlLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZCwg
IkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgaXMgY2FuY2VsZWQuIl9zKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC53YXNDYW5jZWxlZCgpKSB7Cisg
ICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBN
b2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBz
Y3JpcHQgaXMgY2FuY2VsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQog
Ci0gICAgaWYgKCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlw
ZShjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpKSkgewotICAgICAgICAvLyBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gt
YS1zaW5nbGUtbW9kdWxlLXNjcmlwdAotICAgICAgICAvLyBUaGUgcmVzdWx0IG9mIGV4dHJhY3Rp
bmcgYSBNSU1FIHR5cGUgZnJvbSByZXNwb25zZSdzIGhlYWRlciBsaXN0IChpZ25vcmluZyBwYXJh
bWV0ZXJzKSBpcyBub3QgYSBKYXZhU2NyaXB0IE1JTUUgdHlwZS4KLSAgICAgICAgLy8gRm9yIGhp
c3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBkb2VzIG5vdCBpbmNs
dWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBzY3JpcHRzIHdpbGwg
ZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlNRSB0eXBlLgotICAg
ICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2Ny
aXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuIikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoIU1JTUVU
eXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGNhY2hlZFNjcmlwdC5y
ZXNwb25zZSgpLm1pbWVUeXBlKCkpKSB7CisgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9k
dWxlLXNjcmlwdAorICAgICAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlN
RSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykg
aXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCisgICAgICAgICAgICAvLyBGb3IgaGlzdG9y
aWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUg
TUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWls
IHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCisgICAgICAg
ICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2Ny
aXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBN
SU1FIHR5cGUuIikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKGF1dG8qIHBhcmFtZXRlcnMgPSBsb2FkZXIucGFyYW1ldGVycygpKSB7CisgICAgICAgICAg
ICBpZiAoIW1hdGNoSW50ZWdyaXR5TWV0YWRhdGEoY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5p
bnRlZ3JpdHkoKSkpIHsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9y
LCBtYWtlU3RyaW5nKCJDYW5ub3QgbG9hZCBzY3JpcHQgIiwgaW50ZWdyaXR5TWlzbWF0Y2hEZXNj
cmlwdGlvbihjYWNoZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFVS
TCByZXNwb25zZVVSTCA9IGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpOworICAgICAgICAv
LyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3Vy
Y2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6
OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4K
KyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRp
cmVjdGlvbnMuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTg0MjAKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMDQ5MAorICAgICAgICBpZiAoIWNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlvbnMo
KSAmJiBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5zb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNl
OjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VVUkwuaGFz
RnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJh
Z21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7CisgICAgICAg
IH0KKworICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VVUkwu
c3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2
ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgewor
ICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmpl
Y3Qudm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VD
b2RlIHsgJmNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVs
ZSwgbG9hZGVyLnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOworICAgICAgICB9
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvJiBsb2FkZXIgPSBzdGF0aWNfY2FzdDxXb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXImPihtb2R1bGVTY3JpcHRMb2FkZXIpOworICAgICAgICBhdXRv
JiB3b3JrZXJTY3JpcHRMb2FkZXIgPSBsb2FkZXIuc2NyaXB0TG9hZGVyKCk7CiAKLSAgICBpZiAo
YXV0byogcGFyYW1ldGVycyA9IGxvYWRlci5wYXJhbWV0ZXJzKCkpIHsKLSAgICAgICAgaWYgKCFt
YXRjaEludGVncml0eU1ldGFkYXRhKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5
KCkpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5n
KCJDYW5ub3QgbG9hZCBzY3JpcHQgIiwgaW50ZWdyaXR5TWlzbWF0Y2hEZXNjcmlwdGlvbihjYWNo
ZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkpOworICAgICAgICBpZiAod29ya2Vy
U2NyaXB0TG9hZGVyLmZhaWxlZCgpKSB7CisgICAgICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9h
ZGVyLmVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkpIHsKKyAgICAgICAgICAgICAgICByZWplY3RU
b1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVL
aW5kOjpXYXNFcnJvcmVkLCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9z
cy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIl9zKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2Fk
ZXIuZXJyb3IoKS5pc0NhbmNlbGxhdGlvbigpKSB7CisgICAgICAgICAgICAgICAgcmVqZWN0VG9Q
cm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2lu
ZDo6V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJf
cyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRj
aEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWls
ZWQuIl9zKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH0KIAotICAgIFVS
TCByZXNwb25zZVVSTCA9IGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnVybCgpOwotICAgIC8vIElm
IHdlIGRvIG5vdCBoYXZlIHJlZGlyZWN0aW9uLCB3ZSBtdXN0IHJlc2VydmUgdGhlIHNvdXJjZSBV
UkwncyBmcmFnbWVudCBleHBsaWNpdGx5IGhlcmUgc2luY2UgUmVzb3VyY2VSZXNwb25zZTo6dXJs
KCkgaXMgdGhlIG9uZSB3aGVuIHdlIGZpcnN0IGNhY2hlIGl0IHRvIE1lbW9yeUNhY2hlLgotICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgdHJhY2sgZnJhZ21lbnRzIHRocm91Z2ggcmVkaXJlY3Rpb25z
LgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg0MjAK
LSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNDkwCi0g
ICAgaWYgKCFjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCkgJiYgY2FjaGVkU2NyaXB0LnJl
c3BvbnNlKCkuc291cmNlKCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29y
a2VyKSB7Ci0gICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCi0g
ICAgICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIoc291cmNlVVJMLmZy
YWdtZW50SWRlbnRpZmllcigpKTsKLSAgICB9CisgICAgICAgIGlmICghTUlNRVR5cGVSZWdpc3Ry
eTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUod29ya2VyU2NyaXB0TG9hZGVyLnJlc3Bv
bnNlTUlNRVR5cGUoKSkpIHsKKyAgICAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3
Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2Ny
aXB0CisgICAgICAgICAgICAvLyBUaGUgcmVzdWx0IG9mIGV4dHJhY3RpbmcgYSBNSU1FIHR5cGUg
ZnJvbSByZXNwb25zZSdzIGhlYWRlciBsaXN0IChpZ25vcmluZyBwYXJhbWV0ZXJzKSBpcyBub3Qg
YSBKYXZhU2NyaXB0IE1JTUUgdHlwZS4KKyAgICAgICAgICAgIC8vIEZvciBoaXN0b3JpY2FsIHJl
YXNvbnMsIGZldGNoaW5nIGEgY2xhc3NpYyBzY3JpcHQgZG9lcyBub3QgaW5jbHVkZSBNSU1FIHR5
cGUgY2hlY2tpbmcuIEluIGNvbnRyYXN0LCBtb2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwgdG8gbG9h
ZCBpZiB0aGV5IGFyZSBub3Qgb2YgYSBjb3JyZWN0IE1JTUUgdHlwZS4KKyAgICAgICAgICAgIHBy
b21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIiciLCB3b3JrZXJTY3JpcHRMb2Fk
ZXIucmVzcG9uc2VNSU1FVHlwZSgpLCAiJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUg
dHlwZS4iKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIG1fcmVxdWVz
dFVSTFRvUmVzcG9uc2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwgV1RGTW92ZShyZXNw
b25zZVVSTCkpOwotICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUds
b2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QpIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3Vy
Y2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAgICAgIEpTQzo6U291
cmNlQ29kZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyAmY2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3Vy
Y2VDb2RlKCkgfSk7Ci0gICAgfSk7CisgICAgICAgIFVSTCByZXNwb25zZVVSTCA9IHdvcmtlclNj
cmlwdExvYWRlci5yZXNwb25zZVVSTCgpOworCisgICAgICAgIC8vIElmIHdlIGRvIG5vdCBoYXZl
IHJlZGlyZWN0aW9uLCB3ZSBtdXN0IHJlc2VydmUgdGhlIHNvdXJjZSBVUkwncyBmcmFnbWVudCBl
eHBsaWNpdGx5IGhlcmUgc2luY2UgUmVzb3VyY2VSZXNwb25zZTo6dXJsKCkgaXMgdGhlIG9uZSB3
aGVuIHdlIGZpcnN0IGNhY2hlIGl0IHRvIE1lbW9yeUNhY2hlLgorICAgICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIHRyYWNrIGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4KKyAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODQyMAorICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNDkwCisgICAg
ICAgIGlmICghd29ya2VyU2NyaXB0TG9hZGVyLmlzUmVkaXJlY3RlZCgpICYmIHdvcmtlclNjcmlw
dExvYWRlci5yZXNwb25zZVNvdXJjZSgpICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2Vy
dmljZVdvcmtlcikgeworICAgICAgICAgICAgaWYgKHNvdXJjZVVSTC5oYXNGcmFnbWVudElkZW50
aWZpZXIoKSkKKyAgICAgICAgICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZp
ZXIoc291cmNlVVJMLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICAgICAgfQorCisgICAgICAg
IG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwgcmVz
cG9uc2VVUkwpOworICAgICAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNE
T01HbG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAgICByZXR1cm4gSlND
OjpKU1NvdXJjZUNvZGU6OmNyZWF0ZShqc0dsb2JhbE9iamVjdC52bSgpLAorICAgICAgICAgICAg
ICAgIEpTQzo6U291cmNlQ29kZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyB3b3JrZXJTY3JpcHRMb2Fk
ZXIuc2NyaXB0KCksIFdURk1vdmUocmVzcG9uc2VVUkwpLCB7IH0sIEpTQzo6U291cmNlUHJvdmlk
ZXJTb3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNv
ZGUoKSB9KTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCmluZGV4IGRlMjlkMmY0YmYwOTZiNjBj
MzY5OTgwMzE2YzE0ODZiMjgyYWJmMDkuLmRmMzRkNTUxYTExY2Q5OGY0ZTIzNmEyYWExZjQ4Mjc5
ZDk2NGM2ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1v
ZHVsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVs
ZUxvYWRlci5oCkBAIC0yNSw4ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5jbHVk
ZSAiTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNDSlNWYWx1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CkBAIC00NSwxNiArNDUsMTcgQEAgY2xhc3MgU291cmNlT3JpZ2luOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50OwogY2xhc3MgSlNET01HbG9iYWxP
YmplY3Q7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1jbGFzcyBTY3JpcHRNb2R1
bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7
CitjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NyaXB0TW9kdWxlTG9hZGVy
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU2NyaXB0
TW9kdWxlTG9hZGVyKERvY3VtZW50Jik7CisgICAgZW51bSBjbGFzcyBPd25lclR5cGUgOiB1aW50
OF90IHsgRG9jdW1lbnQsIFdvcmtlck9yV29ya2xldCB9OworICAgIGV4cGxpY2l0IFNjcmlwdE1v
ZHVsZUxvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgT3duZXJUeXBlKTsKICAgICB+U2Ny
aXB0TW9kdWxlTG9hZGVyKCk7CiAKLSAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSB7IHJldHVybiBt
X2RvY3VtZW50OyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCgpIHsgcmV0
dXJuIG1fY29udGV4dDsgfQogCiAgICAgSlNDOjpJZGVudGlmaWVyIHJlc29sdmUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFt
ZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0
Y2hlcik7CiAgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6
OkpTVmFsdWUgcGFyYW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwpAQCAtNjMs
MTMgKzY0LDE1IEBAIGNsYXNzIFNjcmlwdE1vZHVsZUxvYWRlciBmaW5hbCA6IHByaXZhdGUgQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKICAgICBKU0M6OkpTT2JqZWN0KiBjcmVhdGVJ
bXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxv
YWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7
CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXImLCBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPikgZmluYWw7CisgICAgdm9pZCBub3RpZnlG
aW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImLCBVUkwmJiwgUmVmPERlZmVycmVkUHJvbWlzZT4p
IGZpbmFsOworCiAgICAgVVJMIG1vZHVsZVVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpK
U1ZhbHVlKTsKICAgICBVUkwgcmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTChKU0M6OkpTR2xvYmFs
T2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsKIAotICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIG1fY29udGV4dDsKICAgICBIYXNoTWFwPFN0cmluZywg
VVJMPiBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOwotICAgIEhhc2hTZXQ8UmVmPENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcj4+IG1fbG9hZGVyczsKKyAgICBIYXNoU2V0PFJlZjxNb2R1bGVT
Y3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7CisgICAgT3duZXJUeXBlIG1fb3duZXJUeXBlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0U291cmNlQ29kZS5oCmluZGV4IGM3MDQ2MjZmYjczM2RiNDcyYmRhNTAyMzYyNDFhNmU3
NDBlMjc4MmIuLjEwZmE3ZThiNDQ5YzhiODQ5ZWIzN2NjMWYyYzg2NmZhODkzYWFkNmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKQEAgLTU3LDcg
KzU3LDcgQEAgY2xhc3MgU2NyaXB0U291cmNlQ29kZSB7CiAgICAgewogICAgIH0KIAotICAgIFNj
cmlwdFNvdXJjZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIFVSTCYmIHVybCwgY29uc3QgVGV4
dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBz
b3VyY2VUeXBlLCBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hlcj4mJiBzY3JpcHRGZXRjaGVyKQorICAg
IFNjcmlwdFNvdXJjZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIFVSTCYmIHVybCwgY29uc3Qg
VGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZSBzb3VyY2VUeXBlLCBSZWY8SlNDOjpTY3JpcHRGZXRjaGVyPiYmIHNjcmlwdEZldGNoZXIpCiAg
ICAgICAgIDogbV9wcm92aWRlcihKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291
cmNlLCBKU0M6OlNvdXJjZU9yaWdpbiB7IHVybCwgV1RGTW92ZShzY3JpcHRGZXRjaGVyKSB9LCB1
cmwuc3RyaW5nKCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpKQogICAgICAgICAsIG1fY29k
ZShtX3Byb3ZpZGVyLmNvcHlSZWYoKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQo
KSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKQogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZkMjc0OTNhNjAxN2Y4MDdkMDAxZGZmODM2ZjRmMjUxNzhhMTZlMjYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXIuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisKKyNp
bmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCisjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxk
LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNs
dWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1l
dGVycy5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgorI2luY2x1ZGUgIlNj
cmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRNb2R1bGVMb2FkZXIuaCIKKyNpbmNs
dWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0RmV0Y2hlci5o
IgorI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1JlZjxXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI+IFdvcmtlck1vZHVsZVNjcmlwdExvYWRl
cjo6Y3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21p
c2UmIHByb21pc2UsIFdvcmtlclNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxN
b2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoY2xpZW50LCBwcm9taXNlLCBzY3JpcHRG
ZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSk7Cit9CisKK1dvcmtlck1vZHVsZVNjcmlwdExv
YWRlcjo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYg
Y2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIFdvcmtlclNjcmlwdEZldGNoZXImIHNj
cmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykK
KyAgICA6IE1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIs
IFdURk1vdmUocGFyYW1ldGVycykpCisgICAgLCBtX3NjcmlwdExvYWRlcihXb3JrZXJTY3JpcHRM
b2FkZXI6OmNyZWF0ZSgpKQoreworfQorCitXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6On5Xb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIoKQoreworICAgIG1fc2NyaXB0TG9hZGVyLT5jYW5jZWwoKTsK
K30KKworYm9vbCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgVVJMJiYgc291cmNlVVJMKQoreworICAgIG1fc291cmNlVVJMID0g
V1RGTW92ZShzb3VyY2VVUkwpOworCisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBtX3Nv
dXJjZVVSTCB9OworCisgICAgRmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKKyAgICBmZXRjaE9w
dGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKKyAgICBmZXRjaE9wdGlvbnMu
Y2FjaGUgPSBGZXRjaE9wdGlvbnM6OkNhY2hlOjpEZWZhdWx0OworICAgIGZldGNoT3B0aW9ucy5y
ZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZvbGxvdzsKKyAgICBmZXRjaE9wdGlv
bnMuY3JlZGVudGlhbHMgPSBzdGF0aWNfY2FzdDxXb3JrZXJTY3JpcHRGZXRjaGVyJj4oc2NyaXB0
RmV0Y2hlcigpKS5jcmVkZW50aWFscygpOworICAgIGF1dG8gY29udGVudFNlY3VyaXR5UG9saWN5
RW5mb3JjZW1lbnQgPSBjb250ZXh0LnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3Jj
ZSA6IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ2hpbGRTcmNEaXJl
Y3RpdmU7CisKKyAgICBTdHJpbmcgdGFza01vZGUgPSAibG9hZE1vZHVsZXNJbldvcmtlck9yV29y
a2xldE1vZGUiX3M7CisgICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250
ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1
cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgKnRoaXMsIFdU
Rk1vdmUodGFza01vZGUpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKCkKK3sKKyAgICBBU1NFUlQobV9wcm9taXNl
KTsKKworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworICAgIGlmICht
X2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVkKCp0aGlzLCBXVEZNb3Zl
KG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkpOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYxMDA4MGVlOTMxYmZiMGIzM2E5ZjU0NzNiMjk3Y2EyZGMyZTQ3NTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJNb2R1bGVTY3JpcHRMb2FkZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJT
Y3JpcHRMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1VS
TC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsKK2Ns
YXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzOworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dDsKK2NsYXNzIFdvcmtlclNjcmlwdExvYWRlcjsKKworY2xhc3MgV29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJpdmF0ZSBXb3JrZXJT
Y3JpcHRMb2FkZXJDbGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyPiBjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQ
cm9taXNlJiwgV29ya2VyU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRl
cnM+JiYpOworCisgICAgdmlydHVhbCB+V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKCk7CisKKyAg
ICBib29sIGxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFVSTCYmIHNvdXJjZVVSTCk7CisK
KyAgICBXb3JrZXJTY3JpcHRMb2FkZXImIHNjcmlwdExvYWRlcigpIHsgcmV0dXJuIG1fc2NyaXB0
TG9hZGVyLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
KE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIFdvcmtlclNjcmlw
dEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKworICAgIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KSBmaW5hbCB7IH0KKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CisKKyAgICBSZWY8
V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKKyAgICBVUkwgbV9zb3VyY2VVUkw7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRGZXRjaGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRGZXRjaGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZiNTRlZjg5NGI1MzNl
YWZjZWJjMWExNGJmMjc2YTAzZWNiYTEwYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIuaApAQCAtMCwwICsxLDg0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJMb2FkYWJsZVNjcmlwdC5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEZldGNoZXIuaD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRTY3JpcHQ7CitjbGFzcyBEb2N1bWVudDsKKworY2xh
c3MgV29ya2VyU2NyaXB0RmV0Y2hlciBmaW5hbCA6IHB1YmxpYyBKU0M6OlNjcmlwdEZldGNoZXIg
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V29ya2VyU2NyaXB0RmV0Y2hlcj4gY3JlYXRlKEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJTY3JpcHRGZXRjaGVyKGNyZWRlbnRpYWxzKSk7CisgICAg
fQorCisgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFscygpIGNvbnN0IHsg
cmV0dXJuIG1fY3JlZGVudGlhbHM7IH0KKworICAgIHZvaWQgbm90aWZ5TG9hZENvbXBsZXRlZChV
bmlxdWVkU3RyaW5nSW1wbCYgbW9kdWxlS2V5KQorICAgIHsKKyAgICAgICAgbV9tb2R1bGVLZXkg
PSAmbW9kdWxlS2V5OworICAgICAgICBtX2lzTG9hZGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICB2
b2lkIG5vdGlmeUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yJiYgZXJyb3IpCisgICAg
eworICAgICAgICBtX2Vycm9yID0gV1RGTW92ZShlcnJvcik7CisgICAgICAgIG1faXNMb2FkZWQg
PSB0cnVlOworICAgIH0KKworICAgIHZvaWQgbm90aWZ5TG9hZFdhc0NhbmNlbGVkKCkKKyAgICB7
CisgICAgICAgIG1fd2FzQ2FuY2VsZWQgPSB0cnVlOworICAgICAgICBtX2lzTG9hZGVkID0gdHJ1
ZTsKKyAgICB9CisKKyAgICBib29sIGlzTG9hZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvYWRl
ZDsgfQorICAgIE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpFcnJvcj4gZXJyb3IoKSBjb25zdCB7
IHJldHVybiBtX2Vycm9yOyB9CisgICAgYm9vbCB3YXNDYW5jZWxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fd2FzQ2FuY2VsZWQ7IH0KKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KCkgY29u
c3QgeyByZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0KKworcHJvdGVjdGVkOgorICAgIFdvcmtl
clNjcmlwdEZldGNoZXIoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFscykKKyAg
ICAgICAgOiBtX2NyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKQorICAgIHsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzOworICAgIFJl
ZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gbV9tb2R1bGVLZXk7CisgICAgT3B0aW9uYWw8TG9hZGFi
bGVTY3JpcHQ6OkVycm9yPiBtX2Vycm9yOworICAgIGJvb2wgbV93YXNDYW5jZWxlZCB7IGZhbHNl
IH07CisgICAgYm9vbCBtX2lzTG9hZGVkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDM4ZWMxOGI5ZjRiNmI3MjI5ZDRl
MmZlZGM0MzQ3YmM2OGI2Y2EwMWQuLjhmM2ZjN2FiZWUwZmY5ODRhOTQ3MDIxOGZmNDY4MzMxNTlk
MzJiZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjE1LDcgKzYxNSw3IEBAIERvY3Vt
ZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywgY29u
c3QgVVJMJiB1cmwsIERvY3VtCiAgICAgLCBtX2RvY3VtZW50Q3JlYXRpb25UaW1lKE1vbm90b25p
Y1RpbWU6Om5vdygpKQogI2VuZGlmCiAgICAgLCBtX3NjcmlwdFJ1bm5lcihtYWtlVW5pcXVlPFNj
cmlwdFJ1bm5lcj4oKnRoaXMpKQotICAgICwgbV9tb2R1bGVMb2FkZXIobWFrZVVuaXF1ZTxTY3Jp
cHRNb2R1bGVMb2FkZXI+KCp0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8
U2NyaXB0TW9kdWxlTG9hZGVyPigqdGhpcywgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGU6
OkRvY3VtZW50KSkKICNpZiBFTkFCTEUoWFNMVCkKICAgICAsIG1fYXBwbHlQZW5kaW5nWFNMVHJh
bnNmb3Jtc1RpbWVyKCp0aGlzLCAmRG9jdW1lbnQ6OmFwcGx5UGVuZGluZ1hTTFRyYW5zZm9ybXNU
aW1lckZpcmVkKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0
aW9uQ29kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaAppbmRleCBmNmI1
NThlYTgyZDc5MzY4ZTYxYWRiMDYwY2YwYjRlYTFkYmVhMjBjLi4xN2RlNzQzNDcyZjc3MzFiMDNj
OThmZWNlN2IxZWIxYjk2MDFlNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXhj
ZXB0aW9uQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmgKQEAg
LTYxLDYgKzYxLDcgQEAgZW51bSBFeGNlcHRpb25Db2RlIHsKICAgICAvLyBTaW1wbGUgZXhjZXB0
aW9ucyAoaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jaWRsLWV4Y2VwdGlvbnMpLgog
ICAgIFJhbmdlRXJyb3IsCiAgICAgVHlwZUVycm9yLAorICAgIEpTU3ludGF4RXJyb3IsIC8vIERp
ZmZlcmVudCBmcm9tIERPTSBTWU5UQVhfRVJSLgogCiAgICAgLy8gTm9uLXN0YW5kYXJkIGVycm9y
LgogICAgIFN0YWNrT3ZlcmZsb3dFcnJvciwKQEAgLTExMSw2ICsxMTIsNyBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU+IHsKICAgICBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlOjpOb3RBbGxvd2VkRXJyb3IsCiAgICAgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZTo6UmFuZ2VFcnJvciwKICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpUeXBlRXJyb3Is
CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6SlNTeW50YXhFcnJvciwKICAgICBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlOjpTdGFja092ZXJmbG93RXJyb3IsCiAgICAgV2ViQ29yZTo6RXhjZXB0
aW9uQ29kZTo6RXhpc3RpbmdFeGNlcHRpb25FcnJvcgogICAgID47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcAppbmRleCA5YTI1YzE2NTg4ZWVjYWQ2NzhmYjkx
MWVjODYyMmY0MjQyNTkyYjVhLi40OGVjMDg1MWE0NTdkOWJhNDc0NzNmZWMyOGQ3YjQ5MzEyYjc4
OGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKQEAg
LTg4LDE2ICs4OCw0IEBAIHZvaWQgTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmV4ZWN1dGUoU2NyaXB0
RWxlbWVudCYgc2NyaXB0RWxlbWVudCkKICAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVNb2R1bGVT
Y3JpcHQoKnRoaXMpOwogfQogCi12b2lkIExvYWRhYmxlTW9kdWxlU2NyaXB0Ojpsb2FkKERvY3Vt
ZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiByb290VVJMKQotewotICAgIGlmIChhdXRvKiBmcmFt
ZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxl
U2NyaXB0KCp0aGlzLCByb290VVJMLnN0cmluZygpLCBtX3BhcmFtZXRlcnMuY29weVJlZigpKTsK
LX0KLQotdm9pZCBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCi17Ci0gICAgaWYgKGF1dG8qIGZy
YW1lID0gZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1
bGVTY3JpcHQoKnRoaXMsIHNvdXJjZUNvZGUpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9M
b2FkYWJsZU1vZHVsZVNjcmlwdC5oCmluZGV4IGJiNzk5NTRkN2I5OWIwZWQwNmJmZTU1ZWY4NTRl
Y2NlMjFmMzU4NzcuLmQyNTM1OTYzZjY0OGIwMmE4YTAxZmQ2M2JiMWUzODEzODZjZWU0MzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oCkBAIC01MCwxNSArNTAs
MTQgQEAgY2xhc3MgTG9hZGFibGVNb2R1bGVTY3JpcHQgZmluYWwgOiBwdWJsaWMgTG9hZGFibGVT
Y3JpcHQgewogCiAgICAgdm9pZCBzZXRFcnJvcihFcnJvciYmKTsKIAotICAgIHZvaWQgbG9hZChE
b2N1bWVudCYsIGNvbnN0IFVSTCYgcm9vdFVSTCk7Ci0gICAgdm9pZCBsb2FkKERvY3VtZW50Jiwg
Y29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwotCiAgICAgdm9pZCBub3RpZnlMb2FkQ29tcGxldGVk
KFVuaXF1ZWRTdHJpbmdJbXBsJik7CiAgICAgdm9pZCBub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxl
U2NyaXB0OjpFcnJvciYmKTsKICAgICB2b2lkIG5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpOwogCiAg
ICAgVW5pcXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxl
S2V5LmdldCgpOyB9CiAKKyAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMoKSB7
IHJldHVybiBtX3BhcmFtZXRlcnMuZ2V0KCk7IH0KKwogcHJpdmF0ZToKICAgICBMb2FkYWJsZU1v
ZHVsZVNjcmlwdChjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGludGVncml0eSwg
UmVmZXJyZXJQb2xpY3ksIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlLCBjb25zdCBTdHJp
bmcmIGNoYXJzZXQsIGNvbnN0IEF0b21TdHJpbmcmIGluaXRpYXRvck5hbWUsIGJvb2wgaXNJblVz
ZXJBZ2VudFNoYWRvd1RyZWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5k
ZXggMDU3NThiNjAwYzc1MjJiNDdmMzY0YmE2YTE4ZDM1ZjE3MzExMDdmOS4uNWU5OWYwZjU3Nzdi
M2IyMTU4ZGQwZmE0YmMzODI3NzZjZGIzNDgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkxvYWRhYmxlQ2xhc3NpY1Njcmlw
dC5oIgogI2luY2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0LmgiCiAjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIlBlbmRpbmdTY3JpcHQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
aCIKICNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCkBAIC0zNTEsOCArMzUyLDExIEBAIGJv
b2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVsZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24m
IHNjcmlwdFN0YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICBzY3JpcHRDaGFyc2V0KCksCiAgICAg
ICAgICAgICBtX2VsZW1lbnQubG9jYWxOYW1lKCksCiAgICAgICAgICAgICBtX2VsZW1lbnQuaXNJ
blVzZXJBZ2VudFNoYWRvd1RyZWUoKSk7Ci0gICAgICAgIHNjcmlwdC0+bG9hZChtX2VsZW1lbnQu
ZG9jdW1lbnQoKSwgbW9kdWxlU2NyaXB0Um9vdFVSTCk7CiAgICAgICAgIG1fbG9hZGFibGVTY3Jp
cHQgPSBXVEZNb3ZlKHNjcmlwdCk7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fZWxlbWVu
dC5kb2N1bWVudCgpLmZyYW1lKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHNjcmlwdCA9IGRvd25j
YXN0PExvYWRhYmxlTW9kdWxlU2NyaXB0PigqbV9sb2FkYWJsZVNjcmlwdC5nZXQoKSk7CisgICAg
ICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdChzY3JpcHQsIG1vZHVsZVNj
cmlwdFJvb3RVUkwuc3RyaW5nKCksIG1ha2VSZWYoc2NyaXB0LnBhcmFtZXRlcnMoKSkpOworICAg
ICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMzY3LDggKzM3MSw5IEBA
IGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVsZVNjcmlwdChjb25zdCBUZXh0UG9zaXRp
b24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiAgICAgaWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3ku
YWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LmRvY3VtZW50KCkudXJsKCkuc3RyaW5nKCksIG1f
c3RhcnRMaW5lTnVtYmVyLCBzb3VyY2VDb2RlLnNvdXJjZSgpLnRvU3RyaW5nV2l0aG91dENvcHlp
bmcoKSwgaGFzS25vd25Ob25jZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHNjcmlw
dC0+bG9hZChtX2VsZW1lbnQuZG9jdW1lbnQoKSwgc291cmNlQ29kZSk7CiAgICAgbV9sb2FkYWJs
ZVNjcmlwdCA9IFdURk1vdmUoc2NyaXB0KTsKKyAgICBpZiAoYXV0byogZnJhbWUgPSBtX2VsZW1l
bnQuZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVs
ZVNjcmlwdChkb3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4oKm1fbG9hZGFibGVTY3JpcHQu
Z2V0KCkpLCBzb3VyY2VDb2RlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IDI3MTdjODYxYzc0YjBmMmFlYmNk
ZTQwODcwMGUyYTlhMDM3Mzc1OTUuLjFiNjUzMmMzYjBlYWE4MGQ5YmQ0NmM2ZDQzMjEzNjk2MjFj
MDE5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKQEAg
LTEwMSwxMCArMTAxLDEwIEBAIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIFRocmVhZGFibGVMb2Fk
ZXJPcHRpb25zOjppc29sYXRlZENvcHkoKSBjb25zdAogfQogCiAKLVJlZlB0cjxUaHJlYWRhYmxl
TG9hZGVyPiBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgU3RyaW5n
JiYgcmVmZXJyZXIpCitSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gVGhyZWFkYWJsZUxvYWRlcjo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRocmVhZGFibGVMb2FkZXJD
bGllbnQmIGNsaWVudCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJs
ZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMsIFN0cmluZyYmIHJlZmVycmVyLCBTdHJpbmcmJiB0YXNr
TW9kZSkKIHsKICAgICBpZiAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpIHx8IChpczxX
b3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpICYmIGRvd25jYXN0PFdvcmtsZXRHbG9iYWxTY29w
ZT4oY29udGV4dCkud29ya2VyT3JXb3JrbGV0VGhyZWFkKCkpKQotICAgICAgICByZXR1cm4gV29y
a2VyVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlJj4oY29udGV4dCksIGNsaWVudCwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUo
KSwgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucywgV1RGTW92ZShyZWZlcnJlcikpOworICAgICAg
ICByZXR1cm4gV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlJj4oY29udGV4dCksIGNsaWVudCwgV1RGTW92ZSh0YXNrTW9k
ZSksIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMsIFdURk1vdmUocmVmZXJyZXIpKTsKIAogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IG51bGxwdHI7CiAgICAgaWYgKGlzPFdvcmtsZXRHbG9iYWxT
Y29wZT4oY29udGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFk
YWJsZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaApp
bmRleCBjMmIyNDVjM2ViYjhiYzkzMGVmNGQxNzJiYTE1MDlhMTc5ZjFkN2E2Li4xYWM3MDRiNGMz
YjUwYjBmZmRhMDM0MjhjM2NlN2RhMTQ5ODgyNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
aHJlYWRhYmxlTG9hZGVyLmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRhYmxlTG9hZGVyKTsKICAgICBwdWJs
aWM6CiAgICAgICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFJlc291cmNlUmVxdWVzdCYmLCBUaHJlYWRhYmxlTG9hZGVyQ2xp
ZW50JiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmKTsKLSAgICAgICAgc3RhdGljIFJl
ZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRo
cmVhZGFibGVMb2FkZXJDbGllbnQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVGhyZWFkYWJs
ZUxvYWRlck9wdGlvbnMmLCBTdHJpbmcmJiByZWZlcnJlciA9IFN0cmluZygpKTsKKyAgICAgICAg
c3RhdGljIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3Qg
VGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmLCBTdHJpbmcmJiByZWZlcnJlciA9IFN0cmluZygpLCBT
dHJpbmcmJiB0YXNrTW9kZSA9IHsgfSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJ
c0RvbmUoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlci5jcHAKaW5kZXggYmY2ZTI3NmEzOWMyMzE1Zjg4OTBjNjMzMDMyOWQ2NDRk
ZmNhZWFhNS4uMDRmZGY1ODI3NDNlYjk3M2I1MjVkNTRjOGE4ZDhmMzdkODI1MjBmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyLmNwcApAQCAtNzQsNiArNzQsOCBAQCBpbmxpbmUgV29ya2VyOjpX
b3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpSdW50aW1lRmxhZ3Mg
cnVudGltZQogICAgICwgbV9pZGVudGlmaWVyKCJ3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRp
ZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpCiAgICAgLCBtX2NvbnRleHRQcm94eShX
b3JrZXJHbG9iYWxTY29wZVByb3h5OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9ydW50aW1lRmxh
Z3MocnVudGltZUZsYWdzKQorICAgICwgbV90eXBlKG9wdGlvbnMudHlwZSkKKyAgICAsIG1fY3Jl
ZGVudGlhbHMob3B0aW9ucy5jcmVkZW50aWFscykKIHsKICAgICBzdGF0aWMgYm9vbCBhZGRlZExp
c3RlbmVyOwogICAgIGlmICghYWRkZWRMaXN0ZW5lcikgewpAQCAtMTE3LDEwICsxMTksMTUgQEAg
RXhjZXB0aW9uT3I8UmVmPFdvcmtlcj4+IFdvcmtlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIEpTQzo6UnUKIAogICAgIEZldGNoT3B0aW9ucyBmZXRjaE9wdGlvbnM7
CiAgICAgZmV0Y2hPcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW47
CisgICAgaWYgKHdvcmtlci0+bV90eXBlID09IFdvcmtlclR5cGU6Ok1vZHVsZSkKKyAgICAgICAg
ZmV0Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gd29ya2VyLT5tX2NyZWRlbnRpYWxzOworICAgIGVs
c2UKKyAgICAgICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVk
ZW50aWFsczo6U2FtZU9yaWdpbjsKICAgICBmZXRjaE9wdGlvbnMuY2FjaGUgPSBGZXRjaE9wdGlv
bnM6OkNhY2hlOjpEZWZhdWx0OwogICAgIGZldGNoT3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0
aW9uczo6UmVkaXJlY3Q6OkZvbGxvdzsKICAgICBmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPSBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpXb3JrZXI7Ci0gICAgd29ya2VyLT5tX3NjcmlwdExv
YWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUoZmV0Y2hPcHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZp
Y2VXb3JrZXJzTW9kZTo6QWxsLCB3b3JrZXIpOworICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXIt
PmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZl
dGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29y
a2Vyc01vZGU6OkFsbCwgd29ya2VyLmdldCgpLCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgp
KTsKKwogICAgIHJldHVybiB3b3JrZXI7CiB9CiAKQEAgLTIxOSw3ICsyMjYsMTMgQEAgdm9pZCBX
b3JrZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGlj
eSA9IFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZzsKICAgICBpZiAoYXV0byBwb2xpY3kgPSBw
YXJzZVJlZmVycmVyUG9saWN5KG1fc2NyaXB0TG9hZGVyLT5yZWZlcnJlclBvbGljeSgpLCBSZWZl
cnJlclBvbGljeVNvdXJjZTo6SFRUUEhlYWRlcikpCiAgICAgICAgIHJlZmVycmVyUG9saWN5ID0g
KnBvbGljeTsKLSAgICBtX2NvbnRleHRQcm94eS5zdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2Ny
aXB0TG9hZGVyLT51cmwoKSwgbV9uYW1lLCBjb250ZXh0LT51c2VyQWdlbnQobV9zY3JpcHRMb2Fk
ZXItPnVybCgpKSwgaXNPbmxpbmUsIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgY29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSwgbV93b3JrZXJDcmVhdGlvblRpbWUsIHJlZmVycmVyUG9saWN5LCBt
X3J1bnRpbWVGbGFncyk7CisKKyAgICBVUkwgcmVzcG9uc2VVUkwgPSBtX3NjcmlwdExvYWRlci0+
cmVzcG9uc2VVUkwoKTsKKyAgICBpZiAoIW1fc2NyaXB0TG9hZGVyLT5pc1JlZGlyZWN0ZWQoKSAm
JiBtX3NjcmlwdExvYWRlci0+cmVzcG9uc2VTb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpT
b3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKKyAgICAgICAgaWYgKG1fc2NyaXB0TG9hZGVyLT51cmwo
KS5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkKKyAgICAgICAgICAgIHJlc3BvbnNlVVJMLnNldEZy
YWdtZW50SWRlbnRpZmllcihtX3NjcmlwdExvYWRlci0+dXJsKCkuZnJhZ21lbnRJZGVudGlmaWVy
KCkpOworICAgIH0KKyAgICBtX2NvbnRleHRQcm94eS5zdGFydFdvcmtlckdsb2JhbFNjb3BlKHJl
c3BvbnNlVVJMLCBtX25hbWUsIGNvbnRleHQtPnVzZXJBZ2VudChyZXNwb25zZVVSTCksIGlzT25s
aW5lLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycywgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IG1fd29ya2VyQ3JlYXRpb25UaW1lLCByZWZlcnJlclBvbGljeSwgbV90eXBlLCBtX2NyZWRlbnRp
YWxzLCBtX3J1bnRpbWVGbGFncyk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3Jp
cHRJbXBvcnRlZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3Jp
cHRMb2FkZXItPnNjcmlwdCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXggNTNm
NWU2ZmZmMjdjOWZhM2U1YzBlMDFmMGY2YzQyYzZjYjZmOWQwZS4uMzhhNjIzYTk4ZGJhMzVmZjgw
MTNjZDZmYzhjODVjODEwMjA1MDIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0yOSw5
ICsyOSwxMSBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0
LmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJNZXNz
YWdlUG9ydC5oIgogI2luY2x1ZGUgIlBvc3RNZXNzYWdlT3B0aW9ucy5oIgogI2luY2x1ZGUgIldv
cmtlclNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3Rv
bmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNTUsNiArNTcsOCBAQCBj
bGFzcyBXb3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVE
T01PYmplY3QsIHByaXZhdGUgV29yawogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2Vy
KTsKIHB1YmxpYzoKICAgICBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgIFdvcmtlclR5cGUgdHlw
ZTsKKyAgICAgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7CiAgICAgICAg
IFN0cmluZyBuYW1lOwogICAgIH07CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgT3B0aW9ucyYpOwpAQCAtNzksNiArODMsOCBAQCBjbGFzcyBX
b3JrZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QsIHByaXZhdGUgV29yawogICAgIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1
bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKTsKICNlbmRpZgogCisgICAg
V29ya2VyVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVG
bGFncywgY29uc3QgT3B0aW9ucyYpOwogCkBAIC0xMTIsNiArMTE4LDggQEAgY2xhc3MgV29ya2Vy
IGZpbmFsIDogcHVibGljIEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBw
cml2YXRlIFdvcmsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBIYXNoU2V0PFN0cmluZz4gbV90
cmFuc2Zvcm1lcnM7CiAjZW5kaWYKKyAgICBXb3JrZXJUeXBlIG1fdHlwZSB7IFdvcmtlclR5cGU6
OkNsYXNzaWMgfTsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzIHsg
RmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4gfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAppbmRleCA0NWQ2YTA4Njc4NTRl
ZTQwNGRlN2U3ZDAxMjQ4Y2ViZjQ0ZGNhN2VkLi43MDIxNzk2ZGY1MDRhZGY4ZTZiOTU4OWFjZTlm
MTQ0ODIxZjI5NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCkBAIC0zOCw2ICszOCw4
IEBACiB9OwogCiBkaWN0aW9uYXJ5IFdvcmtlck9wdGlvbnMgeworICAgIFdvcmtlclR5cGUgdHlw
ZSA9ICJjbGFzc2ljIjsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscyA9
ICJzYW1lLW9yaWdpbiI7IC8vIGNyZWRlbnRpYWxzIGlzIG9ubHkgdXNlZCBpZiB0eXBlIGlzICJt
b2R1bGUiCiAgICAgRE9NU3RyaW5nIG5hbWUgPSAiIjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggZGJhYjM0OGU4MGM5ZGU1MGJkMjE1
Nzc3YTE0YTM5YTBmNzBlNDljNy4uY2NkZTkwOWM3Y2I1MmU5Nzc3NGM1YjgxNTgyM2ViY2JiYjA3
MGYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAK
QEAgLTc0LDYgKzc0LDggQEAgV29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckdsb2JhbFNjb3BlKFdv
cmtlclRocmVhZFR5cGUgdHlwZSwgY29uc3QgV29ya2VyUGFyYW1ldGUKICAgICAsIG1fcGVyZm9y
bWFuY2UoUGVyZm9ybWFuY2U6OmNyZWF0ZSh0aGlzLCBwYXJhbXMudGltZU9yaWdpbikpCiAgICAg
LCBtX3JlZmVycmVyUG9saWN5KHBhcmFtcy5yZWZlcnJlclBvbGljeSkKICAgICAsIG1fc2V0dGlu
Z3NWYWx1ZXMocGFyYW1zLnNldHRpbmdzVmFsdWVzKQorICAgICwgbV93b3JrZXJUeXBlKHBhcmFt
cy53b3JrZXJUeXBlKQorICAgICwgbV9jcmVkZW50aWFscyhwYXJhbXMuY3JlZGVudGlhbHMpCiB7
CiAjaWYgIUVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIFVOVVNFRF9QQVJBTShjb25uZWN0
aW9uUHJveHkpOwpAQCAtMjc0LDYgKzI3NiwxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXb3JrZXJH
bG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscykKIHsK
ICAgICBBU1NFUlQoY29udGVudFNlY3VyaXR5UG9saWN5KCkpOwogCisgICAgLy8gaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd29ya2Vycy5odG1sI2ltcG9ydGluZy1zY3Jp
cHRzLWFuZC1saWJyYXJpZXMKKyAgICAvLyAxLiBJZiB3b3JrZXIgZ2xvYmFsIHNjb3BlJ3MgdHlw
ZSBpcyAibW9kdWxlIiwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICAgIGlmIChtX3dv
cmtlclR5cGUgPT0gV29ya2VyVHlwZTo6TW9kdWxlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCAiaW1wb3J0U2NyaXB0cyBjYW5ub3QgYmUgdXNlZCBpZiB3b2Vya2VyIHR5
cGUgaXMgXCJtb2R1bGVcIiJfcyB9OworCiAgICAgVmVjdG9yPFVSTD4gY29tcGxldGVkVVJMczsK
ICAgICBjb21wbGV0ZWRVUkxzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodXJscy5zaXplKCkpOwog
ICAgIGZvciAoYXV0byYgZW50cnkgOiB1cmxzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckdsb2JhbFNjb3BlLmgKaW5kZXggNDZkNDlkOTRjNTIzOGU0Njg4ZDM5NWQ4N2MyMDYzZWI1
NzIwZDFiZi4uNzQ3OTVmNWMwZjlhMmEzNWQwMDkzMDEyYWQxOGY1N2UzMTdmODI3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMTIzLDYgKzEyMyw4
IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtl
ckdsb2JhbFNjb3BlPiwgcHVibGljIEJhc2U2CiAKICAgICBjb25zdCBTZXR0aW5nczo6VmFsdWVz
JiBzZXR0aW5nc1ZhbHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1ZXM7
IH0KIAorICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25zdCB7
IHJldHVybiBtX2NyZWRlbnRpYWxzOyB9CisKIHByb3RlY3RlZDoKICAgICBXb3JrZXJHbG9iYWxT
Y29wZShXb3JrZXJUaHJlYWRUeXBlLCBjb25zdCBXb3JrZXJQYXJhbWV0ZXJzJiwgUmVmPFNlY3Vy
aXR5T3JpZ2luPiYmLCBXb3JrZXJUaHJlYWQmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3Jp
Z2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKik7CiAK
QEAgLTE2Myw4ICsxNjUsNiBAQCBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBTdXBw
bGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBCYXNlNgogICAgIG11dGFibGUg
UmVmUHRyPFdvcmtlckxvY2F0aW9uPiBtX2xvY2F0aW9uOwogICAgIG11dGFibGUgUmVmUHRyPFdv
cmtlck5hdmlnYXRvcj4gbV9uYXZpZ2F0b3I7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4gbV9zY3JpcHQ7Ci0KICAgICBib29sIG1faXNPbmxp
bmU7CiAgICAgYm9vbCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eTsKIApAQCAtMTg3LDYgKzE4Nyw4IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGlj
IFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIEJhc2U2CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPENTU1ZhbHVlUG9vbD4gbV9jc3NWYWx1ZVBvb2w7CiAgICAgUmVmZXJyZXJQ
b2xpY3kgbV9yZWZlcnJlclBvbGljeTsKICAgICBTZXR0aW5nczo6VmFsdWVzIG1fc2V0dGluZ3NW
YWx1ZXM7CisgICAgV29ya2VyVHlwZSBtX3dvcmtlclR5cGU7CisgICAgRmV0Y2hPcHRpb25zOjpD
cmVkZW50aWFscyBtX2NyZWRlbnRpYWxzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaAppbmRl
eCA0MDAwM2MzZTAxMDk5OTYwZjY0Nzg2MWU3MDE2ODdkMGUzNzFkNzJkLi5lZDY3M2FjOGY3YzBl
ZTU0YzA2MGVjYjU5MjE2MzkwZWQ3MGZlMmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBXb3Jr
ZXJHbG9iYWxTY29wZVByb3h5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV29ya2VyR2xvYmFsU2Nv
cGVQcm94eSYgY3JlYXRlKFdvcmtlciYpOwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0V29ya2Vy
R2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNl
Q29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUg
dGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkws
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxp
bmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtl
clR5cGUsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2Jh
bFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4
IDE5ZDRiZTY0OTkyZjMwZDNjY2U3NjU0N2EzZDIyMThhOThjODQyYzMuLjc4ODM1ODdhN2FmNjIw
OWUzZWNjOGU3YjQxYmFkNDdhZGY2MjI0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFdvcmtlck1lc3Nh
Z2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8fCAoaXM8V29ya2Vy
R2xvYmFsU2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGRvd25jYXN0PFdvcmtl
ckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJlYWQoKS50aHJlYWQo
KSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpKTsKIH0KIAotdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94
eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9y
aWdpbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzIHJ1
bnRpbWVGbGFncykKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
Y29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5
IHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNoUmVxdWVzdENyZWRl
bnRpYWxzIGNyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCiB7CiAg
ICAgLy8gRklYTUU6IFRoaXMgbmVlZCB0byBiZSByZXZpc2l0ZWQgd2hlbiB3ZSBzdXBwb3J0IG5l
c3RlZCB3b3JrZXIgb25lIGRheQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
OwpAQCAtODksNyArODksNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogCiAgICAgU29ja2V0
UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyID0gZG9jdW1lbnQuc29ja2V0UHJvdmlkZXIoKTsKIAot
ICAgIFdvcmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZp
ZXIsIHVzZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3Jp
Z2luLCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMoKSB9OworICAgIFdv
cmtlclBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIsIHVz
ZXJBZ2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3JpZ2luLCBy
ZWZlcnJlclBvbGljeSwgd29ya2VyVHlwZSwgY3JlZGVudGlhbHMsIGRvY3VtZW50LnNldHRpbmdz
VmFsdWVzKCkgfTsKICAgICBhdXRvIHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3Jl
YXRlKHBhcmFtcywgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBk
b2N1bWVudC50b3BPcmlnaW4oKSwgcHJveHksIHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxhZ3Mp
OwogCiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGM1YjU3NWI5ZTYxNWIz
ZjNmNTk2YmZjM2RmNjgzYzg3N2NjNjJiYWIuLmQ5ZTgxZTE1N2EwZjQ4NTJlNDliNTlkMjU2NmE4
YTgwZjVmODE4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV29ya2VyTWVzc2FnaW5nUHJveHkgZmlu
YWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyTWVzc2FnaW5nUHIKIHByaXZh
dGU6CiAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNjb3BlUHJveHkuCiAg
ICAgLy8gKE9ubHkgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgd29ya2VyIG9iamVjdCB0aHJl
YWQuKQotICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVS
TCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09u
bGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgSlND
OjpSdW50aW1lRmxhZ3MpIGZpbmFsOworICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShj
b25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBS
ZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIEpTQzo6
UnVudGltZUZsYWdzKSBmaW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckdsb2JhbFNjb3Bl
KCkgZmluYWw7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFsU2NvcGUoTWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMmJikgZmluYWw7CiAgICAgdm9pZCBwb3N0VGFza1RvV29ya2VyR2xv
YmFsU2NvcGUoRnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+JiYpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlLmNwcAppbmRleCAyMzg0YTVhOGM3ZDJhMzAyZWVlNWNiNDA1ZTEwNWUwMjVjOTg0M2Nj
Li5mNGY0YjI3NDY2ZjlhMzBiMjhiOGIyMWY2ZjJiZWY4YmRlOTM4NTE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcApA
QCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlLmgiCiAKKyNpbmNsdWRlICJTY3JpcHRNb2R1bGVMb2FkZXIuaCIK
ICNpbmNsdWRlICJXb3JrZXJFdmVudExvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5o
IgpAQCAtMzksNiArNDAsNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV29ya2VyT3JX
b3JrbGV0R2xvYmFsU2NvcGUpOwogCiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2Vy
T3JXb3JrbGV0R2xvYmFsU2NvcGUoV29ya2VyVGhyZWFkVHlwZSB0eXBlLCBSZWY8SlNDOjpWTT4m
JiB2bSwgV29ya2VyT3JXb3JrbGV0VGhyZWFkKiB0aHJlYWQpCiAgICAgOiBtX3NjcmlwdChtYWtl
VW5pcXVlPFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+KHR5cGUsIFdURk1vdmUodm0p
LCB0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9h
ZGVyPigqdGhpcywgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGU6Oldvcmtlck9yV29ya2xl
dCkpCiAgICAgLCBtX3RocmVhZCh0aHJlYWQpCiAgICAgLCBtX2luc3BlY3RvckNvbnRyb2xsZXIo
bWFrZVVuaXF1ZTxXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyPigqdGhpcykpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKaW5k
ZXggNmMyNDRhMGM0MjdlZTFjOGM2NWZkY2M3NjU5NTJmODc3ZmQ5YjE2Yi4uNTQ0ZjA0N2FlYzI3
ODMyNzQ0ZDBhOGE3MGFmN2U5MzljMzMwOTkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMzIsNiArMzIsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFdmVudExvb3BUYXNrR3JvdXA7CitjbGFzcyBT
Y3JpcHRNb2R1bGVMb2FkZXI7CiBjbGFzcyBXb3JrZXJFdmVudExvb3A7CiBjbGFzcyBXb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cjsKQEAgLTU0LDYgKzU1LDggQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBw
dWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KIAogICAgIHVuc2ln
bmVkIGxvbmcgY3JlYXRlVW5pcXVlSWRlbnRpZmllcigpIHsgcmV0dXJuIG1fdW5pcXVlSWRlbnRp
ZmllcisrOyB9CiAKKyAgICBTY3JpcHRNb2R1bGVMb2FkZXImIG1vZHVsZUxvYWRlcigpIHsgcmV0
dXJuICptX21vZHVsZUxvYWRlcjsgfQorCiAgICAgLy8gU2NyaXB0RXhlY3V0aW9uQ29udGV4dC4K
ICAgICBFdmVudExvb3BUYXNrR3JvdXAmIGV2ZW50TG9vcCgpIGZpbmFsOwogICAgIGJvb2wgaXND
b250ZXh0VGhyZWFkKCkgY29uc3QgZmluYWw7CkBAIC04OCw2ICs5MSw3IEBAIGNsYXNzIFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1
YmxpYyBSZWZDb3VuCiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigp
OyB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cj4gbV9zY3JpcHQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gbV9t
b2R1bGVMb2FkZXI7CiAgICAgV29ya2VyT3JXb3JrbGV0VGhyZWFkKiBtX3RocmVhZDsKICAgICBS
ZWZQdHI8V29ya2VyRXZlbnRMb29wPiBtX2V2ZW50TG9vcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RXZlbnRMb29wVGFza0dyb3VwPiBtX2RlZmF1bHRUYXNrR3JvdXA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNw
cAppbmRleCBjZDRlYzI0NjgyNTI1YWFiYzY0MmQ4NzdhMGRhMDExZWJkZTExNDMxLi45MWE4YTg3
OTQ1NmUwNjc2MjI5YTg3MDhhODc1MDk5OTNhMmUyNDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAK
QEAgLTM1LDE1ICszNSwyMyBAQAogI2luY2x1ZGUgIkpTRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAi
SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oIgorI2luY2x1
ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUu
aCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29u
c29sZUNsaWVudC5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
RGVmZXJyZWRXb3JrVGltZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb24u
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb25IZWxwZXJzLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvR0NBY3Rpdml0eUNhbGxiYWNrLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U0xvY2suaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU01vZHVsZVJlY29yZC5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTmF0aXZlU3RkRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU1NjcmlwdEZldGNoUGFyYW1ldGVycy5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTU2NyaXB0RmV0Y2hlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0
cm9uZ0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjI4LDYgKzIzNiwyNDUg
QEAgdm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2QKICAgICB9CiB9CiAKK3N0YXRpYyBJZGVudGlmaWVy
IGpzVmFsdWVUb01vZHVsZUtleShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0
dXJuIElkZW50aWZpZXI6OmZyb21VaWQoanNDYXN0PFN5bWJvbCo+KHZhbHVlKS0+cHJpdmF0ZU5h
bWUoKSk7CisgICAgQVNTRVJUKHZhbHVlLmlzU3RyaW5nKCkpOworICAgIHJldHVybiBhc1N0cmlu
Zyh2YWx1ZSktPnRvSWRlbnRpZmllcihsZXhpY2FsR2xvYmFsT2JqZWN0KTsKK30KKworSlNDOjpK
U1ZhbHVlIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKEpT
Qzo6SlNNb2R1bGVSZWNvcmQmIG1vZHVsZVJlY29yZCkKK3sKKyAgICBhdXRvJiBnbG9iYWxPYmpl
Y3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworICAgIHJldHVybiBtb2R1
bGVSZWNvcmQuZXZhbHVhdGUoJmdsb2JhbE9iamVjdCk7Cit9CisKK01lc3NhZ2VRdWV1ZVdhaXRS
ZXN1bHQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZVN5bmNocm9u
b3VzbHkoV29ya2VyU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgY29uc3QgU2NyaXB0U291
cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkK
KyAgICAgICAgcmV0dXJuIE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQ7CisKKyAgICBpbml0U2NyaXB0
SWZOZWVkZWQoKTsKKworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3Jh
cHBlci5nZXQoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tI
b2xkZXIgbG9jayB7IHZtIH07CisKKyAgICBhdXRvIHByb3RlY3RvciA9IG1ha2VSZWYoc2NyaXB0
RmV0Y2hlcik7CisgICAgeworICAgICAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVjU3RhdGU6Omxv
YWRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgpLCBKU0M6OkpT
U2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKHZtLCB7ICZzY3JpcHRGZXRjaGVyIH0pKTsKKworICAgICAg
ICBhdXRvJiBmdWxmaWxsSGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0s
ICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbcHJvdGVjdG9yXShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgLT4gSlNDOjpFbmNvZGVkSlNWYWx1
ZSB7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAgICAg
ICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgICAgICAgICBJZGVudGlmaWVyIG1vZHVsZUtleSA9
IGpzVmFsdWVUb01vZHVsZUtleShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkp
OworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAg
ICAgIHByb3RlY3Rvci0+bm90aWZ5TG9hZENvbXBsZXRlZCgqbW9kdWxlS2V5LmltcGwoKSk7Cisg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAg
ICB9KTsKKworICAgICAgICBhdXRvJiByZWplY3RIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rp
b246OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFtwcm90ZWN0b3JdKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSB7CisgICAg
ICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAgICAgICBKU0xvY2tI
b2xkZXIgbG9jayB7IHZtIH07CisgICAgICAgICAgICBKU1ZhbHVlIGVycm9yVmFsdWUgPSBjYWxs
RnJhbWUtPmFyZ3VtZW50KDApOworICAgICAgICAgICAgaWYgKGVycm9yVmFsdWUuaXNPYmplY3Qo
KSkgeworICAgICAgICAgICAgICAgIGF1dG8qIG9iamVjdCA9IEpTQzo6YXNPYmplY3QoZXJyb3JW
YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgZmFpbHVyZUtpbmRWYWx1ZSA9IG9i
amVjdC0+Z2V0RGlyZWN0KHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSY+KCp2bS5jbGll
bnREYXRhKS5idWlsdGluTmFtZXMoKS5mYWlsdXJlS2luZFByaXZhdGVOYW1lKCkpKSB7CisgICAg
ICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgaG9zdCBwcm9wYWdhdGVkIGVycm9yIGluIHRoZSBt
b2R1bGUgbG9hZGVyIHBpcGVsaW5lLgorICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXRp
Y19jYXN0PE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ+KGZhaWx1cmVLaW5kVmFsdWUuYXNJbnQzMigp
KSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldh
c0Vycm9yZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0b3ItPm5vdGlmeUxvYWRG
YWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMb2FkYWJsZVNjcmlwdDo6RXJyb3JUeXBlOjpDYWNoZWRTY3JpcHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV1RGOjpudWxsb3B0CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNl
IE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkOgorICAgICAgICAgICAgICAgICAg
ICAgICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9D
QVRDSF9TQ09QRSh2bSk7CisgICAgICAgICAgICBwcm90ZWN0b3ItPm5vdGlmeUxvYWRGYWlsZWQo
TG9hZGFibGVTY3JpcHQ6OkVycm9yIHsKKyAgICAgICAgICAgICAgICBMb2FkYWJsZVNjcmlwdDo6
RXJyb3JUeXBlOjpDYWNoZWRTY3JpcHQsCisgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6
OkNvbnNvbGVNZXNzYWdlIHsKKyAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVNvdXJjZTo6SlMs
CisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VMZXZlbDo6RXJyb3IsCisgICAgICAgICAgICAg
ICAgICAgIHJldHJpZXZlRXJyb3JNZXNzYWdlKCpnbG9iYWxPYmplY3QsIHZtLCBlcnJvclZhbHVl
LCBzY29wZSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICB9KTsKKwor
ICAgICAgICBwcm9taXNlLnRoZW4oJmdsb2JhbE9iamVjdCwgJmZ1bGZpbGxIYW5kbGVyLCAmcmVq
ZWN0SGFuZGxlcik7CisgICAgfQorICAgIG1fZ2xvYmFsU2NvcGUtPmV2ZW50TG9vcCgpLnBlcmZv
cm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7CisKKyAgICAvLyBEcml2ZSBSdW5Mb29wIHVudGlsIHdl
IGdldCBlaXRoZXIgb2YgIldvcmtlciBpcyB0ZXJtaW5hdGVkIiwgIkxvYWRpbmcgaXMgZG9uZSIs
IG9yICJMb2FkaW5nIGlzIGZhaWxlZCIuCisgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IG1f
Z2xvYmFsU2NvcGUtPndvcmtlck9yV29ya2xldFRocmVhZCgpLT5ydW5Mb29wKCk7CisKKyAgICAv
LyBXZSBkbyBub3Qgd2FudCB0byByZWNlaXZlIG1lc3NhZ2VzIHRoYXQgYXJlIG5vdCByZWxhdGVk
IHRvIGFzeW5jaHJvbm91cyByZXNvdXJjZSBsb2FkaW5nLgorICAgIC8vIE90aGVyd2lzZSwgYSB3
b3JrZXIgZGlzY2FyZHMgc29tZSBtZXNzYWdlcyBmcm9tIHRoZSBtYWluIHRocmVhZCBoZXJlIGlu
IGEgcmFjeSB3YXkuCisgICAgLy8gRm9yIGV4YW1wbGUsIHRoZSBtYWluIHRocmVhZCBjYW4gcG9z
dE1lc3NhZ2UganVzdCBhZnRlciBjcmVhdGluZyBhIFdvcmtlci4gSW4gdGhhdCBjYXNlLCBwb3N0
TWVzc2FnZSdzCisgICAgLy8gdGFzayBpcyBxdWV1ZWQgaW4gV29ya2VyUnVuTG9vcCBiZWZvcmUg
c3RhcnQgcnVubmluZyBtb2R1bGUgc2NyaXB0cy4gVGhpcyB0YXNrIHNob3VsZCBub3QgYmUgZGlz
Y2FyZGVkCisgICAgLy8gaW4gdGhlIGZvbGxvd2luZyBkcml2aW5nIG9mIHRoZSBSdW5Mb29wIHdo
aWNoIG1haW5seSBhdHRlbXB0IHRvIGNvbGxlY3QgaW5pdGlhbCBsb2FkIG9mIG1vZHVsZSBzY3Jp
cHRzLgorICAgIFN0cmluZyB0YXNrTW9kZSA9ICJsb2FkTW9kdWxlc0luV29ya2VyT3JXb3JrbGV0
TW9kZSJfczsKKyAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9IE1lc3NhZ2VRdWV1
ZU1lc3NhZ2VSZWNlaXZlZDsKKyAgICB3aGlsZSAoKCFwcm90ZWN0b3ItPmlzTG9hZGVkKCkgJiYg
IXByb3RlY3Rvci0+d2FzQ2FuY2VsZWQoKSkgJiYgcmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1p
bmF0ZWQpIHsKKyAgICAgICAgcmVzdWx0ID0gcnVuTG9vcC5ydW5Jbk1vZGUobV9nbG9iYWxTY29w
ZSwgdGFza01vZGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0
ZWQpCisgICAgICAgICAgICBtX2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90
YXNrQ2hlY2twb2ludCgpOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQg
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKFdv
cmtlclNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUm
IHNvdXJjZUNvZGUsIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlKQoreworICAgIGlm
IChpc0V4ZWN1dGlvbkZvcmJpZGRlbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBpbml0U2Ny
aXB0SWZOZWVkZWQoKTsKKworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3Bl
V3JhcHBlci5nZXQoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xv
Y2tIb2xkZXIgbG9jayB7IHZtIH07CisKKyAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gcmV0
dXJuZWRFeGNlcHRpb247CisgICAgSlNFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShn
bG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21VaWQodm0sIHNjcmlwdEZldGNoZXIubW9kdWxl
S2V5KCkpLCBqc1VuZGVmaW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKChyZXR1
cm5lZEV4Y2VwdGlvbiAmJiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVy
bmVkRXhjZXB0aW9uKSkgfHwgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAgICAgIGZv
cmJpZEV4ZWN1dGlvbigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHJldHVy
bmVkRXhjZXB0aW9uKSB7CisgICAgICAgIGlmIChtX2dsb2JhbFNjb3BlLT5jYW5JbmNsdWRlRXJy
b3JEZXRhaWxzKHNvdXJjZUNvZGUuY2FjaGVkU2NyaXB0KCksIHNvdXJjZUNvZGUudXJsKCkuc3Ry
aW5nKCkpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlz
IGNhbiBydW4gYXJiaXRyYXJ5IGNvZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4
Y2VwdGlvbi4KKyAgICAgICAgICAgIC8vIERvIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgdG8gaGFu
ZGxlIHRoYXQgcHJvcGVybHksIGlmIGl0LCBzYXksIHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlvbj8K
KyAgICAgICAgICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAg
ICAgKnJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IHJldHVybmVkRXhjZXB0aW9uLT52YWx1ZSgp
LnRvV1RGU3RyaW5nKCZnbG9iYWxPYmplY3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgLy8gT3ZlcndyaXRlIHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBlcnJvci4K
KyAgICAgICAgICAgIFN0cmluZyBnZW5lcmljRXJyb3JNZXNzYWdlIHsgIlNjcmlwdCBlcnJvci4i
X3MgfTsKKyAgICAgICAgICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAg
ICAgICAgICAgKnJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IGdlbmVyaWNFcnJvck1lc3NhZ2U7
CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgbW9kdWxlVVJMLCBGZXRjaE9w
dGlvbnM6OkNyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGlz
RXhlY3V0aW9uRm9yYmlkZGVuKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0
aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9i
YWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7Cisg
ICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworCisgICAgYXV0byBzY3JpcHRGZXRjaGVyID0g
V29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKGNyZWRlbnRpYWxzKTsKKyAgICB7CisgICAgICAg
IGF1dG8mIHByb21pc2UgPSBKU0V4ZWNTdGF0ZTo6bG9hZE1vZHVsZShnbG9iYWxPYmplY3QsIG1v
ZHVsZVVSTC5zdHJpbmcoKSwganNVbmRlZmluZWQoKSwgSlNDOjpKU1NjcmlwdEZldGNoZXI6OmNy
ZWF0ZSh2bSwgeyBzY3JpcHRGZXRjaGVyLnB0cigpIH0pKTsKKworICAgICAgICBhdXRvIHRhc2sg
PSBjcmVhdGVTaGFyZWRUYXNrPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4oW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKE9wdGlvbmFsPEV4Y2VwdGlv
bj4mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
V1RGTW92ZShleGNlcHRpb24pKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgZnVsZmls
bEhhbmRsZXIgPSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0
LCAxLCBTdHJpbmcoKSwgW3Rhc2ssIHNjcmlwdEZldGNoZXJdKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSAtPiBKU0M6OkVuY29kZWRKU1ZhbHVlIHsK
KyAgICAgICAgICAgIC8vIHRhc2stPnJ1bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sg
eyB2bSB9OworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OworCisgICAgICAgICAgICBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGpzVmFsdWVUb01vZHVsZUtl
eShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOworICAgICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgICAgIHNjcmlwdEZldGNoZXIt
Pm5vdGlmeUxvYWRDb21wbGV0ZWQoKm1vZHVsZUtleS5pbXBsKCkpOworCisgICAgICAgICAgICBh
dXRvKiBjb250ZXh0ID0gZG93bmNhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KGpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSk7CisgICAgICAgICAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPnNjcmlwdCgpKSB7
CisgICAgICAgICAgICAgICAgdGFzay0+cnVuKFdURjo6bnVsbG9wdCk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9u
OworICAgICAgICAgICAgSlNFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSgqZ2xvYmFs
T2JqZWN0LCBtb2R1bGVLZXksIGpzVW5kZWZpbmVkKCksIHJldHVybmVkRXhjZXB0aW9uKTsKKyAg
ICAgICAgICAgIGlmICgocmV0dXJuZWRFeGNlcHRpb24gJiYgaXNUZXJtaW5hdGVkRXhlY3V0aW9u
RXhjZXB0aW9uKHZtLCByZXR1cm5lZEV4Y2VwdGlvbikpIHx8IGNvbnRleHQtPnNjcmlwdCgpLT5p
c1Rlcm1pbmF0aW5nRXhlY3V0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoY29udGV4dC0+
c2NyaXB0KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPnNjcmlwdCgpLT5mb3JiaWRF
eGVjdXRpb24oKTsKKyAgICAgICAgICAgICAgICB0YXNrLT5ydW4oV1RGOjpudWxsb3B0KTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocmV0dXJuZWRFeGNlcHRpb24pIHsKKyAgICAg
ICAgICAgICAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICAgICAgICAgICAgICBpZiAoY29udGV4dC0+
Y2FuSW5jbHVkZUVycm9yRGV0YWlscyhudWxscHRyLCBtb2R1bGVLZXkuc3RyaW5nKCkpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJdCdzIG5vdCBncmVhdCB0aGF0IHRoaXMgY2Fu
IHJ1biBhcmJpdHJhcnkgY29kZSB0byBzdHJpbmctaWZ5IHRoZSB2YWx1ZSBvZiB0aGUgZXhjZXB0
aW9uLgorICAgICAgICAgICAgICAgICAgICAvLyBEbyB3ZSBuZWVkIHRvIGRvIGFueXRoaW5nIHRv
IGhhbmRsZSB0aGF0IHByb3Blcmx5LCBpZiBpdCwgc2F5LCByYWlzZXMgYW5vdGhlciBleGNlcHRp
b24/CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSByZXR1cm5lZEV4Y2VwdGlvbi0+dmFs
dWUoKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgZGV0YWlsZWQgZXJyb3Igd2l0
aCBhIGdlbmVyaWMgZXJyb3IuCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiU2NyaXB0
IGVycm9yLiJfczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGV4dC0+
cmVwb3J0RXhjZXB0aW9uKG1lc3NhZ2UsIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9KTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgdGFzay0+cnVuKFdURjo6bnVsbG9wdCk7CisgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICB9KTsK
KworICAgICAgICBhdXRvJiByZWplY3RIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFt0YXNrXShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgeworICAgICAgICAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sg
eyB2bSB9OworICAgICAgICAgICAgSlNWYWx1ZSBlcnJvclZhbHVlID0gY2FsbEZyYW1lLT5hcmd1
bWVudCgwKTsKKyAgICAgICAgICAgIGlmIChlcnJvclZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAg
ICAgICAgICAgICBhdXRvKiBvYmplY3QgPSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOworICAg
ICAgICAgICAgICAgIGlmIChvYmplY3QtPmdldERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNs
aWVudERhdGEmPigqdm0uY2xpZW50RGF0YSkuYnVpbHRpbk5hbWVzKCkuZmFpbHVyZUtpbmRQcml2
YXRlTmFtZSgpKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNM
QVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2Ug
PSByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKCpnbG9iYWxPYmplY3QsIHZtLCBvYmpl
Y3QsIGNhdGNoU2NvcGUpOworICAgICAgICAgICAgICAgICAgICB0YXNrLT5ydW4oRXhjZXB0aW9u
IHsgQWJvcnRFcnJvciwgbWVzc2FnZSB9KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8RXJyb3JJbnN0YW5jZT4odm0pKSB7CisgICAg
ICAgICAgICAgICAgICAgIGF1dG8qIGVycm9yID0ganNDYXN0PEVycm9ySW5zdGFuY2UqPihvYmpl
Y3QpOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGVycm9yLT5lcnJvclR5cGUoKSkgewor
ICAgICAgICAgICAgICAgICAgICBjYXNlIEVycm9yVHlwZTo6VHlwZUVycm9yOiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZt
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gcmV0cmlldmVFcnJv
ck1lc3NhZ2VXaXRob3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3IsIGNhdGNoU2NvcGUp
OworICAgICAgICAgICAgICAgICAgICAgICAgdGFzay0+cnVuKEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgbWVzc2FnZSB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBFcnJvclR5cGU6OlN5bnRheEVycm9yOiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gcmV0cmlldmVFcnJvck1lc3NhZ2VX
aXRob3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3IsIGNhdGNoU2NvcGUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgdGFzay0+cnVuKEV4Y2VwdGlvbiB7IEpTU3ludGF4RXJyb3IsIG1l
c3NhZ2UgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgICAgICAg
ICBTdHJpbmcgbWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoKmdsb2Jh
bE9iamVjdCwgdm0sIGVycm9yVmFsdWUsIGNhdGNoU2NvcGUpOworICAgICAgICAgICAgdGFzay0+
cnVuKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsIG1lc3NhZ2UgfSk7CisgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICB9KTsKKworICAgICAg
ICBwcm9taXNlLnRoZW4oJmdsb2JhbE9iamVjdCwgJmZ1bGZpbGxIYW5kbGVyLCAmcmVqZWN0SGFu
ZGxlcik7CisgICAgfQorICAgIG1fZ2xvYmFsU2NvcGUtPmV2ZW50TG9vcCgpLnBlcmZvcm1NaWNy
b3Rhc2tDaGVja3BvaW50KCk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIEpTR2xvYmFsU2NvcGVQ
cm90b3R5cGUsIHR5cGVuYW1lIEpTR2xvYmFsU2NvcGUsIHR5cGVuYW1lIEdsb2JhbFNjb3BlPgog
dm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0V2l0aFN1YmNs
YXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggYzQ5MzAxYWVkM2RkMDg5ZGE3OTczMjc2MGNh
ZjJmN2I2NGRiMTFiNi4uOWYwMjNhNjJmODE0M2U3ZDk4MmZiZjdmNThlZWVhZGNhM2E1YjU2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRT
Y3JpcHRDb250cm9sbGVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU1J1bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+CiAjaW5jbHVkZSA8
d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDQsOSArNDUsMTEgQEAgY2xh
c3MgSlNHbG9iYWxPYmplY3Q7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEpTRE9NR2xv
YmFsT2JqZWN0OworY2xhc3MgTG9hZGFibGVNb2R1bGVTY3JpcHQ7CiBjbGFzcyBTY3JpcHRTb3Vy
Y2VDb2RlOwogY2xhc3MgV29ya2VyQ29uc29sZUNsaWVudDsKIGNsYXNzIFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlOworY2xhc3MgV29ya2VyU2NyaXB0RmV0Y2hlcjsKIAogY2xhc3MgV29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcik7CkBAIC05NCw2ICs5NywxMyBAQCBjbGFzcyBX
b3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0
IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51
bGxwdHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIE5ha2Vk
UHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0cmluZyogcmV0dXJuZWRF
eGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVN
b2R1bGUoSlNDOjpKU01vZHVsZVJlY29yZCYpOworCisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVN
b2R1bGUoV29ya2VyU2NyaXB0RmV0Y2hlciYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJp
bmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOworICAgIE1lc3NhZ2VRdWV1
ZVdhaXRSZXN1bHQgbG9hZE1vZHVsZVN5bmNocm9ub3VzbHkoV29ya2VyU2NyaXB0RmV0Y2hlciYs
IGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKworICAgIHZvaWQgbG9hZEFuZEV2YWx1YXRlTW9k
dWxlKGNvbnN0IFVSTCYgbW9kdWxlVVJMLCBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpOworCiBwcm90ZWN0
ZWQ6CiAgICAgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGdsb2JhbFNjb3BlKCkgY29uc3Qg
eyByZXR1cm4gbV9nbG9iYWxTY29wZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggM2E0ZGFlZmMzOTAyYmRiMmVhODRmYzU4ZDdlNDJm
ODNlNWYwN2UyZi4uOWYzMWQwZGZkNTlhODcwN2ZkNGViNTljYzNjOTJhMDY2NDgxZGUxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcApAQCAtMTA3
LDcgKzEwNyw3IEBAIE9wdGlvbmFsPEV4Y2VwdGlvbj4gV29ya2VyU2NyaXB0TG9hZGVyOjpsb2Fk
U3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0CiAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZXNvdXJjZVJl
cXVlc3QmJiBzY3JpcHRSZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBmZXRjaE9wdGlvbnMsIENvbnRl
bnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2Vt
ZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUgc2VydmljZVdvcmtlck1vZGUsIFdvcmtlclNjcmlwdExv
YWRlckNsaWVudCYgY2xpZW50KQordm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hy
b25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBS
ZXNvdXJjZVJlcXVlc3QmJiBzY3JpcHRSZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBmZXRjaE9wdGlv
bnMsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGlj
eUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUgc2VydmljZVdvcmtlck1vZGUsIFdvcmtl
clNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBTdHJpbmcmJiB0YXNrTW9kZSkKIHsKICAgICBt
X2NsaWVudCA9ICZjbGllbnQ7CiAgICAgbV91cmwgPSBzY3JpcHRSZXF1ZXN0LnVybCgpOwpAQCAt
MTIzLDggKzEyMyw2IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3Vz
bHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0CiAgICAgQVNTRVJUKGZldGNo
T3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbiB8fCAoZmV0Y2hP
cHRpb25zLmRlc3RpbmF0aW9uICE9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNlcnZpY2V3
b3JrZXIgJiYgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uICE9IEZldGNoT3B0aW9uczo6RGVzdGlu
YXRpb246OldvcmtlcikpOwogCiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9ucyB7
IFdURk1vdmUoZmV0Y2hPcHRpb25zKSB9OwotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIGFu
IG9wdGlvbiB0byBzZXQgY3JlZGVudGlhbCBtb2RlLgotICAgIG9wdGlvbnMuY3JlZGVudGlhbHMg
PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luOwogICAgIG9wdGlvbnMuc2Vu
ZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tQb2xpY3k6OlNlbmRDYWxsYmFja3M7CiAgICAg
b3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IGNvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50OwogICAgIGlmIChmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPT0g
RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2VydmljZXdvcmtlcikKQEAgLTE0Myw3ICsxNDEs
NyBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dAogCiAgICAgLy8gRHVyaW5nIGNyZWF0ZSwgY2Fs
bGJhY2tzIG1heSBoYXBwZW4gd2hpY2ggcmVtb3ZlIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGlz
IG9iamVjdC4KICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlz
KTsKLSAgICBtX3RocmVhZGFibGVMb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgKnRoaXMsIFdURk1vdmUoKnJlcXVlc3QpLCBvcHRpb25zKTsK
KyAgICBtX3RocmVhZGFibGVMb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgKnRoaXMsIFdURk1vdmUoKnJlcXVlc3QpLCBvcHRpb25zLCB7IH0s
IFdURk1vdmUodGFza01vZGUpKTsKIH0KIAogY29uc3QgVVJMJiBXb3JrZXJTY3JpcHRMb2FkZXI6
OnJlc3BvbnNlVVJMKCkgY29uc3QKQEAgLTE5MCw2ICsxODgsOCBAQCB2b2lkIFdvcmtlclNjcmlw
dExvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgUmVzbwogICAgIG1fY2VydGlmaWNhdGVJbmZvID0gcmVzcG9uc2UuY2VydGlmaWNhdGVJbmZv
KCkgPyAqcmVzcG9uc2UuY2VydGlmaWNhdGVJbmZvKCkgOiBDZXJ0aWZpY2F0ZUluZm8oKTsKICAg
ICBtX3Jlc3BvbnNlTUlNRVR5cGUgPSByZXNwb25zZS5taW1lVHlwZSgpOwogICAgIG1fcmVzcG9u
c2VFbmNvZGluZyA9IHJlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKTsKKyAgICBtX3Jlc3BvbnNl
U291cmNlID0gcmVzcG9uc2Uuc291cmNlKCk7CisgICAgbV9pc1JlZGlyZWN0ZWQgPSByZXNwb25z
ZS5pc1JlZGlyZWN0ZWQoKTsKICAgICBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSA9IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyB7IHJlc3BvbnNlIH07CiAgICAgbV9yZWZlcnJl
clBvbGljeSA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmVmZXJy
ZXJQb2xpY3kpOwogICAgIGlmIChtX2NsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5oCmluZGV4IDdmZGQwYjNmNmEwMWMyZGI1NzcyNGE5MGIzYmI5ODQw
ZjFlNjhlNWYuLmNmYTMxYTM1MzI1OWFlZWQxOThmOTM5MWZmYzE1MTFiNDA1MGI4NWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkZldGNoT3B0aW9ucy5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3Iu
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3Bv
bnNlLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUgIlRocmVhZGFi
bGVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlIDxtZW1vcnk+CkBAIC00Myw3ICs0NCw2IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV4Y2VwdGlvbjsKLWNsYXNzIFJlc291cmNlUmVz
cG9uc2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgVGV4dFJlc291cmNl
RGVjb2RlcjsKIGNsYXNzIFdvcmtlclNjcmlwdExvYWRlckNsaWVudDsKQEAgLTU4LDcgKzU4LDcg
QEAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyU2Ny
aXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGEKICAgICB9CiAKICAgICBPcHRpb25hbDxFeGNlcHRp
b24+IGxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBVUkwm
LCBGZXRjaE9wdGlvbnM6Ok1vZGUsIEZldGNoT3B0aW9uczo6Q2FjaGUsIENvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcklkZW50aWZpZXIpOwot
ICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNv
dXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9y
Y2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYpOwor
ICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNv
dXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9y
Y2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYsIFN0
cmluZyYmIHRhc2tNb2RlKTsKIAogICAgIHZvaWQgbm90aWZ5RXJyb3IoKTsKIApAQCAtNjcsNiAr
NjcsOCBAQCBjbGFzcyBXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3Jr
ZXJTY3JpcHRMb2FkZXI+LCBwdWJsaWMgVGhyZWFkYQogICAgIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXJQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3JlZmVycmVyUG9saWN5OyB9CiAgICAgY29uc3Qg
VVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAgIGNvbnN0IFVSTCYgcmVzcG9u
c2VVUkwoKSBjb25zdDsKKyAgICBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2UgcmVzcG9uc2VTb3Vy
Y2UoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlU291cmNlOyB9CisgICAgYm9vbCBpc1JlZGly
ZWN0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUmVkaXJlY3RlZDsgfQogICAgIGNvbnN0IENlcnRp
ZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0
ZUluZm87IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc3BvbnNlTUlNRVR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc3BvbnNlTUlNRVR5cGU7IH0KICAgICBib29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fZmFpbGVkOyB9CkBAIC0xMDcsNiArMTA5LDggQEAgY2xhc3MgV29ya2VyU2NyaXB0TG9h
ZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVh
ZGEKICAgICB1bnNpZ25lZCBsb25nIG1faWRlbnRpZmllciB7IDAgfTsKICAgICBib29sIG1fZmFp
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZmluaXNoaW5nIHsgZmFsc2UgfTsKKyAgICBib29s
IG1faXNSZWRpcmVjdGVkIHsgZmFsc2UgfTsKKyAgICBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2Ug
bV9yZXNwb25zZVNvdXJjZSB7IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6VW5rbm93biB9Owog
ICAgIFJlc291cmNlRXJyb3IgbV9lcnJvcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmNwcAppbmRleCA3Mjc5MGEwMzMyMjYxOWU2ZWU3ZTYxNmE4YmRlMThiZDU1MmE1
NzgzLi42M2VlOGM4ZDM2ZjNiZDcyNDYzNTNjNWJkZjg0MTdkZDgxMDdjNGEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgogI2luY2x1
ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0RmV0Y2hlci5o
IgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTUsNiArNTcsOCBA
QCBXb3JrZXJQYXJhbWV0ZXJzIFdvcmtlclBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0
CiAgICAgICAgIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwKICAg
ICAgICAgdGltZU9yaWdpbiwKICAgICAgICAgcmVmZXJyZXJQb2xpY3ksCisgICAgICAgIHdvcmtl
clR5cGUsCisgICAgICAgIGNyZWRlbnRpYWxzLAogICAgICAgICBzZXR0aW5nc1ZhbHVlcy5pc29s
YXRlZENvcHkoKQogICAgIH07CiB9CkBAIC0xMjMsOSArMTI3LDMxIEBAIGJvb2wgV29ya2VyVGhy
ZWFkOjpzaG91bGRXYWl0Rm9yV2ViSW5zcGVjdG9yT25TdGFydHVwKCkgY29uc3QKIAogdm9pZCBX
b3JrZXJUaHJlYWQ6OmV2YWx1YXRlU2NyaXB0SWZOZWNlc3NhcnkoU3RyaW5nJiBleGNlcHRpb25N
ZXNzYWdlKQogewotICAgIGdsb2JhbFNjb3BlKCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRT
b3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5w
YXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25NZXNzYWdlKTsKLQotICAgIGZpbmlzaGVkRXZh
bHVhdGluZ1NjcmlwdCgpOworICAgIC8vIFdlIGFyZSBjdXJyZW50bHkgaG9sZGluZyBvbmx5IHRo
ZSBpbml0aWFsIHNjcmlwdCBjb2RlLiBJZiB0aGUgV29ya2VyVHlwZSBpcyBNb2R1bGUsIHdlIHNo
b3VsZCBmZXRjaCB0aGUgZW50aXJlIGdyYXBoIGJlZm9yZSBleGVjdXRpbmcgdGhlIHJlc3Qgb2Yg
dGhpcy4KKyAgICAvLyBXZSBpbnZva2UgbW9kdWxlIGxvYWRlciBhcyBpZiB3ZSBhcmUgZXhlY3V0
aW5nIGlubGluZSBtb2R1bGUgc2NyaXB0IHRhZyBpbiBEb2N1bWVudC4KKworICAgIGlmIChtX3N0
YXJ0dXBEYXRhLT5wYXJhbXMud29ya2VyVHlwZSA9PSBXb3JrZXJUeXBlOjpDbGFzc2ljKSB7Cisg
ICAgICAgIGdsb2JhbFNjb3BlKCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2Rl
KG1fc3RhcnR1cERhdGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2Ny
aXB0VVJMKSksICZleGNlcHRpb25NZXNzYWdlKTsKKyAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5n
U2NyaXB0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRklYTUUgZml4IGluaXRpYXRvciBu
YW1lLgorICAgICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+
c291cmNlQ29kZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpLCB7IH0sIEpT
Qzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpOworICAgICAgICBhdXRvIHNjcmlw
dEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpjcmVhdGUoZ2xvYmFsU2NvcGUoKS0+Y3Jl
ZGVudGlhbHMoKSk7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcmVzdWx0ID0gZ2xv
YmFsU2NvcGUoKS0+c2NyaXB0KCktPmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KHNjcmlwdEZldGNo
ZXIuZ2V0KCksIHNvdXJjZUNvZGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1
ZVRlcm1pbmF0ZWQpIHsKKyAgICAgICAgICAgIGlmIChPcHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6
RXJyb3I+IGVycm9yID0gc2NyaXB0RmV0Y2hlci0+ZXJyb3IoKSkgeworICAgICAgICAgICAgICAg
IGlmIChPcHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6Q29uc29sZU1lc3NhZ2U+IG1lc3NhZ2UgPSBl
cnJvci0+Y29uc29sZU1lc3NhZ2UpCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbk1lc3Nh
Z2UgPSBtZXNzYWdlLT5tZXNzYWdlOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgZXhjZXB0aW9uTWVzc2FnZSA9ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZh
aWxlZC4iX3M7CisgICAgICAgICAgICAgICAgZ2xvYmFsU2NvcGUoKS0+cmVwb3J0RXhjZXB0aW9u
KGV4Y2VwdGlvbk1lc3NhZ2UsIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9KTsKKyAgICAgICAgICAg
IH0gZWxzZSBpZiAoIXNjcmlwdEZldGNoZXItPndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAg
ICAgICAvLyBFdmFsdWF0ZS4KKyAgICAgICAgICAgICAgICBnbG9iYWxTY29wZSgpLT5zY3JpcHQo
KS0+bGlua0FuZEV2YWx1YXRlTW9kdWxlKHNjcmlwdEZldGNoZXIuZ2V0KCksIHNvdXJjZUNvZGUs
ICZleGNlcHRpb25NZXNzYWdlKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hlZEV2YWx1YXRpbmdT
Y3JpcHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIAogICAgIC8vIEZyZWUg
dGhlIHN0YXJ0dXAgZGF0YSB0byBjYXVzZSBpdHMgbWVtYmVyIHZhcmlhYmxlIGRlcmVmJ3MgaGFw
cGVuIG9uIHRoZSB3b3JrZXIncyB0aHJlYWQgKHNpbmNlCiAgICAgLy8gYWxsIHJlZi9kZXJlZnMg
b2YgdGhlc2Ugb2JqZWN0cyBhcmUgaGFwcGVuaW5nIG9uIHRoZSB0aHJlYWQgYXQgdGhpcyBwb2lu
dCkuIE5vdGUgdGhhdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJU
aHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKaW5kZXggODg5
MDc5MDhlN2E5YjgwOWU4ZjJhNGU0NzNkNzUyZDExZDI5MzdjMC4uOTUxMmVmZGIxOGYzMmE1MGVj
YjdmYjU2OTU5ZDYxZTg4NzJmYTFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5oCkBAIC0yNiw3ICsyNiwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RD
cmVkZW50aWFscy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgorI2luY2x1
ZGUgIldvcmtlclJ1bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KQEAgLTYzLDYgKzY2LDggQEAgc3RydWN0IFdvcmtlclBhcmFtZXRlcnMg
ewogICAgIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5Owog
ICAgIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbjsKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJl
clBvbGljeTsKKyAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7CisgICAgRmV0Y2hSZXF1ZXN0Q3Jl
ZGVudGlhbHMgY3JlZGVudGlhbHM7CiAgICAgU2V0dGluZ3M6OlZhbHVlcyBzZXR0aW5nc1ZhbHVl
czsKIAogICAgIFdvcmtlclBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVHlwZS5oCmluZGV4IDBiMGVkODYwZDljNzE0MjM4YTJhNWJiOWZkZjQz
ODQwMmQxNmViZjAuLjFjMWJiOTQ0ODY3YWRmNGVkNTc4YTI4MTRmYTMzMjMyNmFlZDhhNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBXb3JrZXJUeXBlIHsKK2VudW0gY2xhc3MgV29y
a2VyVHlwZSA6IHVpbnQ4X3QgewogICAgIENsYXNzaWMsCiAgICAgTW9kdWxlLAogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRh
aW5lci5oCmluZGV4IGViYmU5NWU4OTI0YzhmMWQ3Mzc1MjVkZWExNjMwYjFmYWQ1NmZiMjcuLjRj
N2RkZjRhNGMxMzFlMGRjZDZiYTA5NTA5YWIyZDk3NTc1ZjMwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaApA
QCAtNDcsNyArNDcsNyBAQCBjbGFzcyBOYXZpZ2F0b3JCYXNlOwogY2xhc3MgU2VydmljZVdvcmtl
cjsKIAogZW51bSBjbGFzcyBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgOiB1aW50OF90Owot
ZW51bSBjbGFzcyBXb3JrZXJUeXBlOworZW51bSBjbGFzcyBXb3JrZXJUeXBlIDogdWludDhfdDsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZVByb3h5OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpv
Yi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5j
cHAKaW5kZXggZWMzOWMwZjg0OWE1NGUxYjZkMGJlZTM0YThkN2QxOWNiYTQ1ZTI4OC4uZjk1MTBj
YmY2ZmRmNzA0NmY3ZDFiOTIyMzY5MTc0ZDAxZmEwYmUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcApAQCAtMTEwLDcgKzEx
MCw4IEBAIHZvaWQgU2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4dChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBGCiAgICAgb3B0aW9ucy5jYWNoZSA9IGNhY2hl
UG9saWN5OwogICAgIG9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpF
cnJvcjsKICAgICBvcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
bjo6U2VydmljZXdvcmtlcjsKLSAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5
KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucyksIENvbnRlbnRTZWN1
cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UsIFNlcnZpY2VXb3JrZXJzTW9kZTo6
Tm9uZSwgKnRoaXMpOworICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNy
ZWRlbnRpYWxzOjpTYW1lT3JpZ2luOworICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9u
b3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgQ29udGVu
dFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSwgU2VydmljZVdvcmtlcnNN
b2RlOjpOb25lLCAqdGhpcywgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKIFJl
c291cmNlRXJyb3IgU2VydmljZVdvcmtlckpvYjo6dmFsaWRhdGVTZXJ2aWNlV29ya2VyUmVzcG9u
c2UoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaAppbmRleCA5
ZDUwMGY4NWFjYjE4ODQxY2M1NWJlYTgyMTFkYjE0ZmFkYzk3NDc1Li4yZTM1NTdmYTdkZjY3ZjFi
Zjk4YzdiN2E1ZGU0YjBhNWE3YmNjY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlv
bnMuaApAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNz
IFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFdvcmtl
clR5cGU7CitlbnVtIGNsYXNzIFdvcmtlclR5cGUgOiB1aW50OF90OwogCiBzdHJ1Y3QgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMgewogICAgIFN0cmluZyBzY29wZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5jcHAKaW5kZXggYzhhN2E5OTcyZjljYzhjMTZhNzk2NzUxMTU1MmY1NDkz
YTY4NmY5OC4uMzNjYTBlYzIzYjU4YTU1MTE4NzY4NDZiYTA3MTgzNTMyYjVjNDdkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTczLDggKzczLDkgQEAgY2xhc3MgRHVtbXlTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkgOiBwdWJsaWMgV29ya2VyT2JqZWN0UHJveHkgewogLy8gRklY
TUU6IFVzZSBhIHZhbGlkIFdvcmtlck9iamVjdFByb3h5CiAvLyBGSVhNRTogVXNlIHZhbGlkIHJ1
bnRpbWUgZmxhZ3MKIAorLy8gRklYTUU6IFVzZSBhIHZhbGlkIFdvcmtlclR5cGUgYW5kIENyZWRl
bnRhaWxzIGZvciBtb2R1bGUgc2VydmljZSB3b3JrZXJzLgogU2VydmljZVdvcmtlclRocmVhZDo6
U2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEs
IFN0cmluZyYmIHVzZXJBZ2VudCwgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1
ZXMsIFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2VyRGVidWdnZXJQcm94eSYg
ZGVidWdnZXJQcm94eSwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNvbm5lY3Rp
b25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKQotICAgIDogV29ya2VyVGhy
ZWFkKHsgZGF0YS5zY3JpcHRVUkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJ
bnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3Zl
KHVzZXJBZ2VudCksIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09u
TGluZSgpLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6
Om5vdygpLCB7IH0sIHNldHRpbmdzVmFsdWVzIH0sIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwg
ZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBX
b3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5yZWdpc3RyYXRpb24ua2V5LnRvcE9y
aWdpbigpLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0
UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCkpCisgICAgOiBX
b3JrZXJUaHJlYWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmcoKSwgInNlcnZpY2V3b3Jr
ZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCks
IFdURk1vdmUodXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5
KCktPmlzT25MaW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5LCBmYWxzZSwgTW9ub3Rv
bmljVGltZTo6bm93KCksIHsgfSwgV29ya2VyVHlwZTo6Q2xhc3NpYywgRmV0Y2hSZXF1ZXN0Q3Jl
ZGVudGlhbHM6OlNhbWVPcmlnaW4sIHNldHRpbmdzVmFsdWVzIH0sIGRhdGEuc2NyaXB0LCBsb2Fk
ZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNo
YXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5yZWdpc3RyYXRpb24u
a2V5LnRvcE9yaWdpbigpLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rpb25Qcm94
eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCkp
CiAgICAgLCBtX2RhdGEoZGF0YS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0
UHJveHkoRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpKQogICAgICwgbV9o
ZWFydEJlYXRUaW1lb3V0KFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb24o
KS0+c2hvdWxkVXNlU2hvcnRUaW1lb3V0KCkgPyBoZWFydEJlYXRUaW1lb3V0Rm9yVGVzdCA6IGhl
YXJ0QmVhdFRpbWVvdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKaW5kZXggMmRkZGIzYjViNDFlZDg3YmQ2MTRhMGI5
NGQwOWI3NjEyOTNkNzYwNy4uMzc4ZmJhNjU3ZThiYmY0ODQxZTU2Y2JmODY1NjFmOGVjYzMxMTAy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlcldvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJXb3JrZXIuaApAQCAtNTAsNyArNTAsNyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXI7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9uczsK
IHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckpv
YkRhdGFJZGVudGlmaWVyOwotZW51bSBjbGFzcyBXb3JrZXJUeXBlOworZW51bSBjbGFzcyBXb3Jr
ZXJUeXBlIDogdWludDhfdDsKIAogY2xhc3MgU1dTZXJ2ZXJXb3JrZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxTV1NlcnZlcldvcmtlcj4gewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmts
ZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggZDcwNDg4NjY0OGMwZWZhYTZiNzgwODRj
NTM4NzIwMWNhMmIxYzU0My4uMmFlMGUzMzg5MWRiYzg5ZjE0Njg3ZDQxNDgwMmFhYTEyZDBkODRm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3Bl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
CkBAIC0xNTgsNzIgKzE1OCw3IEBAIFJlZmVycmVyUG9saWN5IFdvcmtsZXRHbG9iYWxTY29wZTo6
cmVmZXJyZXJQb2xpY3koKSBjb25zdAogdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmZldGNoQW5k
SW52b2tlU2NyaXB0KGNvbnN0IFVSTCYgbW9kdWxlVVJMLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFs
cyBjcmVkZW50aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OwotICAgIG1fc2NyaXB0RmV0Y2hKb2JzLmFwcGVuZCh7IG1vZHVsZVVSTCwgY3JlZGVudGlhbHMs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpIH0pOwotICAgIHByb2Nlc3NOZXh0U2NyaXB0RmV0
Y2hKb2JJZk5lZWRlZCgpOwotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6cHJvY2Vzc05l
eHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKCkKLXsKLSAgICBpZiAobV9zY3JpcHRGZXRjaEpvYnMu
aXNFbXB0eSgpIHx8IG1fc2NyaXB0TG9hZGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRv
JiBzY3JpcHRGZXRjaEpvYiA9IG1fc2NyaXB0RmV0Y2hKb2JzLmZpcnN0KCk7Ci0KLSAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCB7IHNjcmlwdEZldGNoSm9iLm1vZHVsZVVSTCB9OwotCi0gICAg
RmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKLSAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNo
T3B0aW9uczo6TW9kZTo6Q29yczsKLSAgICBmZXRjaE9wdGlvbnMuY2FjaGUgPSBGZXRjaE9wdGlv
bnM6OkNhY2hlOjpEZWZhdWx0OwotICAgIGZldGNoT3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0
aW9uczo6UmVkaXJlY3Q6OkZvbGxvdzsKLSAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSBz
Y3JpcHRGZXRjaEpvYi5jcmVkZW50aWFsczsKLSNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIGlm
IChpc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCkpCi0gICAgICAgIGZldGNoT3B0aW9ucy5kZXN0
aW5hdGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkF1ZGlvd29ya2xldDsKLSNlbmRp
ZgotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotICAgIGlmIChpc1BhaW50V29ya2xldEds
b2JhbFNjb3BlKCkpCi0gICAgICAgIGZldGNoT3B0aW9ucy5kZXN0aW5hdGlvbiA9IEZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246OlBhaW50d29ya2xldDsKLSNlbmRpZgotCi0gICAgYXV0byBjb250
ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRl
bnRTZWN1cml0eVBvbGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRv
Tm90RW5mb3JjZSA6IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ2hp
bGRTcmNEaXJlY3RpdmU7Ci0KLSAgICBtX3NjcmlwdExvYWRlciA9IFdvcmtlclNjcmlwdExvYWRl
cjo6Y3JlYXRlKCk7Ci0gICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseSgqdGhp
cywgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsICp0aGlzKTsKLX0K
LQotdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBs
b25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKLXsKLX0KLQotdm9pZCBXb3JrbGV0R2xvYmFs
U2NvcGU6Om5vdGlmeUZpbmlzaGVkKCkKLXsKLSAgICBhdXRvIGNvbXBsZXRlZEpvYiA9IG1fc2Ny
aXB0RmV0Y2hKb2JzLnRha2VGaXJzdCgpOwotCi0gICAgaWYgKG1fc2NyaXB0TG9hZGVyLT5mYWls
ZWQoKSkgewotICAgICAgICBkaWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKFdURk1vdmUoY29tcGxl
dGVkSm9iKSwgRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgbWFrZVN0cmluZygiRmFpbGVkIHRvIGZl
dGNoIG1vZHVsZSwgZXJyb3I6ICIsIG1fc2NyaXB0TG9hZGVyLT5lcnJvcigpLmxvY2FsaXplZERl
c2NyaXB0aW9uKCkpIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIHJlYWxseSBiZSBydW4gYXMgYSBtb2R1bGUgc2NyaXB0IGJ1dCB3ZSBkb24n
dCBzdXBwb3J0IHRoaXMgaW4gd29ya2VycyB5ZXQuCi0gICAgVVJMIG1vZHVsZVVSTChtX3Njcmlw
dExvYWRlci0+cmVzcG9uc2VVUkwoKSk7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX2V2YWx1YXRl
ZE1vZHVsZXMuYWRkKG1vZHVsZVVSTCk7Ci0gICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KSB7
Ci0gICAgICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiBleGNlcHRpb247Ci0gICAgICAgIHNj
cmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQo
KSwgV1RGTW92ZShtb2R1bGVVUkwpKSwgZXhjZXB0aW9uKTsKLSAgICAgICAgaWYgKGV4Y2VwdGlv
bikKLSAgICAgICAgICAgIHNjcmlwdCgpLT5zZXRFeGNlcHRpb24oZXhjZXB0aW9uKTsKLSAgICB9
Ci0KLSAgICBkaWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKFdURk1vdmUoY29tcGxldGVkSm9iKSwg
eyB9KTsKLX0KLQotdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmRpZENvbXBsZXRlU2NyaXB0RmV0
Y2hKb2IoU2NyaXB0RmV0Y2hKb2ImJiBqb2IsIE9wdGlvbmFsPEV4Y2VwdGlvbj4gcmVzdWx0KQot
ewotICAgIG1fc2NyaXB0TG9hZGVyID0gbnVsbHB0cjsKLQotICAgIGpvYi5jb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwotCi0gICAgcHJvY2Vzc05leHRTY3JpcHRGZXRjaEpvYklm
TmVlZGVkKCk7CisgICAgc2NyaXB0KCktPmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShtb2R1bGVVUkws
IGNyZWRlbnRpYWxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIE1lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyJiBXb3JrbGV0R2xvYmFsU2NvcGU6Om1lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRH
bG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3Bl
LmgKaW5kZXggZjIzMjBmMGQxMzAyNWNlYWIzYmFjNTZhNDVlYzJkMWRkM2ZiNmNjMC4uZmU1NGI4
NTMyNTY3OTI1ODNkZWRhMDU1YTQzM2EyNTY1NGU4Njc1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRl
ICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCi0jaW5j
bHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxh
Z3MuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTU0LDcgKzUzLDcg
QEAgc3RydWN0IFdvcmtsZXRQYXJhbWV0ZXJzOwogZW51bSBXb3JrbGV0R2xvYmFsU2NvcGVJZGVu
dGlmaWVyVHlwZSB7IH07CiB1c2luZyBXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyID0gT2Jq
ZWN0SWRlbnRpZmllcjxXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyVHlwZT47CiAKLWNsYXNz
IFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSwg
cHVibGljIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCB7CitjbGFzcyBXb3JrbGV0R2xvYmFsU2Nv
cGUgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgewogICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoV29ya2xldEdsb2JhbFNjb3BlKTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5X
b3JrbGV0R2xvYmFsU2NvcGUoKTsKQEAgLTExMSwxMCArMTEwLDYgQEAgY2xhc3MgV29ya2xldEds
b2JhbFNjb3BlIDogcHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLCBwdWJsaWMgV29y
a2VyU2NyaXAKICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgdW5zaWduZWQsIFJlZlB0
cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwgSlNDOjpKU0dsb2JhbE9iamVjdCosIHVu
c2lnbmVkIGxvbmcpIGZpbmFsOwogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25nKSBmaW5hbDsK
IAotICAgIC8vIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC4KLSAgICB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KSBmaW5hbDsKLSAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7Ci0KICAgICBFdmVudFRh
cmdldCogZXJyb3JFdmVudFRhcmdldCgpIGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KIAogI2lmIEVO
QUJMRShXRUJfQ1JZUFRPKQpAQCAtMTI1LDE1ICsxMjAsNiBAQCBjbGFzcyBXb3JrbGV0R2xvYmFs
U2NvcGUgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUsIHB1YmxpYyBXb3JrZXJT
Y3JpcAogICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QgZmluYWw7CiAgICAg
Y29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3NldHRpbmdzVmFsdWVzOyB9CiAKLSAgICBzdHJ1Y3QgU2NyaXB0RmV0Y2hKb2Igewot
ICAgICAgICBVUkwgbW9kdWxlVVJMOwotICAgICAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBj
cmVkZW50aWFsczsKLSAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNl
cHRpb24+JiYpPiBjb21wbGV0aW9uSGFuZGxlcjsKLSAgICB9OwotCi0gICAgdm9pZCBwcm9jZXNz
TmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQoKTsKLSAgICB2b2lkIGRpZENvbXBsZXRlU2NyaXB0
RmV0Y2hKb2IoU2NyaXB0RmV0Y2hKb2ImJiwgT3B0aW9uYWw8RXhjZXB0aW9uPik7Ci0KICAgICBX
ZWFrUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OwogCiAgICAgUmVmPFNlY3VyaXR5T3JpZ2luPiBt
X3RvcE9yaWdpbjsKQEAgLTE0NCw5ICsxMzAsNiBAQCBjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUg
OiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUsIHB1YmxpYyBXb3JrZXJTY3JpcAog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyPiBt
X21lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwogCi0gICAgUmVmUHRyPFdvcmtlclNjcmlwdExv
YWRlcj4gbV9zY3JpcHRMb2FkZXI7Ci0gICAgRGVxdWU8U2NyaXB0RmV0Y2hKb2I+IG1fc2NyaXB0
RmV0Y2hKb2JzOwotICAgIEhhc2hTZXQ8VVJMPiBtX2V2YWx1YXRlZE1vZHVsZXM7CiAgICAgU2V0
dGluZ3M6OlZhbHVlcyBtX3NldHRpbmdzVmFsdWVzOwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY2ZjQxMTNjNjhk
ZTRlODkzN2Y0NzU3YmYyNGJmZjA1YzNmYmZmODMuLmM2YjJjZTBjYWI1ZGM1MGE2YzU0YTMyN2Fh
ZjkyMDNjZjNmMjg0MWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wMi0xMiAgWXVzdWtl
IFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29y
a2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0
ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5LzEuMS9tb2R1bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc3VicmVzb3VyY2UtaW50ZWdyaXR5L3NyaS1tb2R1bGUt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvd29ya2xldC1hZGRNb2R1bGUt
ZmFpbHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8vd29ya2xldC1jcmFzaC1l
eHBlY3RlZC50eHQ6CisKIDIwMjEtMDItMTIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW01hY10gU291bmQgZG9lcyBub3QgcGxheSBvbiBZb3VUdWJlIGFmdGVy
IHN3aXRjaGluZyBiYWNrIHRvIGZvcmVncm91bmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDBhNjBmZjE0NWRmMWRmZTgyODdmMGIzMDlkZDU0YjE4NTM3MDFhOWIuLjZkNjkwYjg3
NjgyM2FhMGQwZDcxZGU5YzNjZjJkNTU1ZmZkYWU0NmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTAyLTEyICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBXb3JrZXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ4NjAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1t
b2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2Nv
cGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9i
YXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29y
a2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9y
ZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3Jp
cHRzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0
U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94
aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2Jh
bFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9u
L3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnkt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVs
ZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0
LWZhaWx1cmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLWltcG9ydC1tZXRhLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jcmVk
ZW50aWFscy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRp
by13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0ZWQtd29ya2VyLW9yaWdpbi1leHBlY3Rl
ZC50eHQ6CisKIDIwMjEtMDItMTIgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW2Nzcy1mbGV4Ym94XSBBbm90aGVyIFdQVCB0ZXN0IGltcG9ydApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMzNkMzgwNDZhNTViNzM0MTczMGNlZmI2MGM3ZmI5ODkyNjFm
MzJlMS4uNTAxYWNlMGQ2MjIzODVkOGE5NDNjMzJhYTUzMjRhZjRiYTQxMTI3MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCkBAIC02NDAsNyArNjQwLDYgQEAgZmFzdC9kb20vY29ubmVjdGVkLXN1YmZyYW1l
LWNvdW50ZXItb3ZlcmZsb3cuaHRtbCBbIFNsb3cgXQogWyBEZWJ1ZyBdIGh0dHAvdGVzdHMvd29y
a2Vycy93b3JrZXItbWVzc2FnZXBvcnQtMi5odG1sIFsgU2xvdyBdCiAKICMgU2tpcCB3b3JrZXJz
IHRlc3RzIHRoYXQgYXJlIHRpbWluZyBvdXQgb3IgYXJlIFNoYXJlZFdvcmtlciByZWxhdGVkIG9u
bHkKLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMv
V29ya2VyL3NhbWUtb3JpZ2luLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9kYXRhLXVybC1zaGFyZWQuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2V4YW1wbGVzL29uY29ubmVjdC5hbnkuaHRt
bCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2V4YW1w
bGVzL29uY29ubmVjdC5hbnkud29ya2VyLmh0bWwgWyBTa2lwIF0KQEAgLTY2Myw3ICs2NjIsNiBA
QCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyLXJl
cGxhY2UtRXZlbnRIYW5kbGVyLmFueS5odAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL1NoYXJlZFdvcmtlci1yZXBsYWNlLUV2ZW50SGFuZGxlci5hbnkud29ya2VyLmh0
bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9TaGFy
ZWRXb3JrZXItc2NyaXB0LWVycm9yLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9TaGFyZWRXb3JrZXItc2ltcGxlLmh0bWwgWyBTa2lwIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13
b3JrZXItaW1wb3J0LXJlZmVycmVyLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy1jcmVk
ZW50aWFscy5odG1sIFsgU2tpcCBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9jb25zdHJ1Y3RvcnMvU2hhcmVkV29ya2VyIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEv
bW9kdWxlLXNjcmlwdG5vbmNlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9tb2R1bGUtc2NyaXB0
bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CmluZGV4IDUwOTkxOWY3YmZkOGNmOTRjNWQzMzQ3
Zjg3YTY0NGQxNTg4NDU5MjEuLmUxNzJkZTRkMDRlMmE1NzQ3Yzc3ZjIyMjI0ZmQ0NWFjMDUyNTA1
ZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5LzEuMS9tb2R1bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5LzEuMS9tb2R1bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0xLDMg
KzEsMiBAQAogQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlz
IG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVT
U0FHRTogVHlwZUVycm9yOiBDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3Nz
LU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4KIFRoaXMgdGVzdHMgd2hldGhlciBhIGRl
ZmVycmVkIHNjcmlwdCBsb2FkIGNhdXNlZCBieSBhIHJlZGlyZWN0IGlzIHByb3Blcmx5IGFsbG93
ZWQgYnkgYSBub25jZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3VicmVz
b3VyY2UtaW50ZWdyaXR5L3NyaS1tb2R1bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBlY3RlZC50eHQKaW5k
ZXggYTAxZDlmMDcyNmZmOTdjNTI1YTUwNDUwNzZiYWU1MTRjODJlZTJlYS4uOTBhMjkxZWI4Mjll
ZTk4YTc5OGVjMzc0ODUxODRlYTBlOTVhY2M4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVs
ZS1leHBlY3RlZC50eHQKQEAgLTMsNyArMyw2IEBAIENPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9y
OiBDYW5ub3QgbG9hZCBzY3JpcHQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3N1YnJlc291cmNlCiBD
T05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogQ2Fubm90IGxvYWQgc2NyaXB0IGh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvcmVzb3VyY2VzL2Nyb3Nzb3JpZ2luLWFu
b24tc2NyaXB0LW1vZHVsZS5qcy4gRmFpbGVkIGludGVncml0eSBtZXRhZGF0YSBjaGVjay4gQ29u
dGVudCBsZW5ndGg6IDM3LCBFeHBlY3RlZCBjb250ZW50IGxlbmd0aDogMzcsIEV4cGVjdGVkIG1l
dGFkYXRhOiBzaGEyNTYtZGVhZGJlZWZjU0xsYkZaQ2oxT0FDTHhUeFZjazJUT3JCVEVkVWJ3ejF5
VT0KIENPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBDYW5ub3QgbG9hZCBzY3JpcHQgaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3N1YnJlc291cmNlLWludGVncml0eS9yZXNvdXJjZXMvY3Jvc3Nvcmln
aW4tY3JlZHMtc2NyaXB0LW1vZHVsZS5qcy4gRmFpbGVkIGludGVncml0eSBtZXRhZGF0YSBjaGVj
ay4gQ29udGVudCBsZW5ndGg6IDM4LCBFeHBlY3RlZCBjb250ZW50IGxlbmd0aDogMzgsIEV4cGVj
dGVkIG1ldGFkYXRhOiBzaGEyNTYtZGVhZGJlZWYyUytwVFJaZ2l3M0RXcmhDNkpMRGx0MnpSeUdw
d0g3dW5VOD0KIENPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBp
cyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1F
U1NBR0U6IFR5cGVFcnJvcjogQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9z
cy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuCiBDT05TT0xFIE1FU1NBR0U6IFR5cGVF
cnJvcjogQ2Fubm90IGxvYWQgc2NyaXB0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zdWJyZXNvdXJj
ZS1pbnRlZ3JpdHkvcmVzb3VyY2VzL21hdGNoaW5nLWRpZ2VzdC1tb2R1bGUuanMuIEZhaWxlZCBp
bnRlZ3JpdHkgbWV0YWRhdGEgY2hlY2suIENvbnRlbnQgbGVuZ3RoOiAyOSwgRXhwZWN0ZWQgY29u
dGVudCBsZW5ndGg6IDI5LCBFeHBlY3RlZCBtZXRhZGF0YTogc2hhMjU2LWNXaDluUGZtN19tUmJL
aHphcm5SWWxzSld6NVhUTmNzcVBGektFeCt6U1U9CiBDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJv
cjogQ2Fubm90IGxvYWQgc2NyaXB0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zdWJyZXNvdXJjZS1p
bnRlZ3JpdHkvcmVzb3VyY2VzL21hdGNoaW5nLWRpZ2VzdC1tb2R1bGUuanMuIEZhaWxlZCBpbnRl
Z3JpdHkgbWV0YWRhdGEgY2hlY2suIENvbnRlbnQgbGVuZ3RoOiAyOSwgRXhwZWN0ZWQgY29udGVu
dCBsZW5ndGg6IDI5LCBFeHBlY3RlZCBtZXRhZGF0YTogc2hhMjU2LVU5V1lEdEJXa2NIeDEzKzlV
S2svM1E1ZW9xRGM0WUd4WWIwN0VQV3piOWU9P2Zvbz1iYXI/c3BhbT1lZ2dzCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmpl
Y3QudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKaW5kZXggNDkyNjliM2I1MGI5MTc1Y2I2MmVjYTMxMmU1ODZiM2IxNjYy
YTI1OS4uMmNhZTVmN2UzNWEzMmZlY2ViMjY4ZjI5MDAwMGU0ZTU1NTZjNjg2MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVj
dC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndv
cmtlci1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKLUZBSUwgTm9uLW9iamVjdDogbnVs
bCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJF
cnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL251bGwuanNvbicuIgotRkFJTCBO
b24tb2JqZWN0OiB0cnVlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vdHJ1ZS5q
c29uJy4iCi1GQUlMIE5vbi1vYmplY3Q6IGZhbHNlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBt
b2R1bGUgJy4vZmFsc2UuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBzdHJpbmcgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxk
IG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9zdHJpbmcuanNvbicuIgotRkFJTCBOb24tb2JqZWN0
OiBhcnJheSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2FycmF5Lmpzb24nLiIK
K0ZBSUwgTm9uLW9iamVjdDogbnVsbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3Qg
YSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IHRydWUgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5
cGUuIgorRkFJTCBOb24tb2JqZWN0OiBmYWxzZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBp
cyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IHN0
cmluZyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0
IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IGFycmF5IHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9u
L2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50
LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRl
ci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQKaW5kZXggODky
OGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uZjY4Y2M3M2I0ZDY3NGM1NGRm
YWZlNTIyMTJiNjQzYzQwMzBmZDQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3Bl
LW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3Jp
cHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUt
b25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1IYXJuZXNzIEVy
cm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorRkFJTCBQcm9taXNlIHJlc29sdmVkIGR1
cmluZyAjcmVwb3J0LXRoZS1lcnJvciBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZl
ciwgZXhwZWN0ZWQgYXJyYXkgWyJoYW5kbGVyIDEiLCAiaGFuZGxlciAyIiwgImhhbmRsZXIgMSBw
cm9taXNlIiwgImhhbmRsZXIgMiBwcm9taXNlIl0gbGVuZ3RoIDQsIGdvdCBbXSBsZW5ndGggMAor
UEFTUyBQcm9taXNlIHJlc29sdmVkIGR1cmluZyBldmVudCBoYW5kbGVycyBvdGhlciB0aGFuIGVy
cm9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1p
Yy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0
CmluZGV4IDUxZDYxMDBlNjEyMmE5N2MzNjRiM2NlYjFkN2ZkMDdlMGUxNTYxMTcuLmE4MDUwYzA3
OGNmOGI4OGQ1NjhhZmZlMGQ1NWNjMzE5MGMzNjU0N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVy
bC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdv
cmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBS
ZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKSBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291
bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3Mt
Q29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9cmVsYXRpdmUtY3Jvc3Mtb3JpZ2luIGltcG9y
dFNjcmlwdHMoKScuIgotRkFJTCBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGlt
cG9ydFNjcmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICdodHRwOi8vMTI3
LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNz
LUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLWNyb3NzLW9yaWdpbiBpbXBv
cnRTY3JpcHRzKCknLiIKLVBBU1MgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBjcm9zcy1vcmlnaW4g
aW1wb3J0U2NyaXB0cygpCi1GQUlMIEFic29sdXRlIFVSTC1saWtlIGZyb20gY3Jvc3Mtb3JpZ2lu
IGltcG9ydFNjcmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICdodHRwOi8v
MTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLWNyb3NzLW9yaWdpbiBp
bXBvcnRTY3JpcHRzKCknLiIKK1BBU1MgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBzYW1lLW9yaWdp
biBpbXBvcnRTY3JpcHRzKCkKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSBzYW1lLW9yaWdp
biBpbXBvcnRTY3JpcHRzKCkKK0ZBSUwgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBjcm9zcy1vcmln
aW4gaW1wb3J0U2NyaXB0cygpIGFzc2VydF9lcXVhbHM6IFJlbGF0aXZlIFVSTC1saWtlIHNwZWNp
ZmllciByZXNvbHV0aW9uIHNob3VsZCBmYWlsIGV4cGVjdGVkICIodW5yZWFjaGVkKSIgYnV0IGdv
dCAiZ2FtbWEvaW1wb3J0LmpzIgorUEFTUyBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIGNyb3NzLW9y
aWdpbiBpbXBvcnRTY3JpcHRzKCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5z
dWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0Cmlu
ZGV4IDg2NmViYjIyN2FkMjZhYWNlMWE1NzhiYWVhNmE4MWRjMGU2ZTc3ZjAuLjVlNzA2MzQ5MGUy
ZGZmZWNlODVlYTc2NWFlYmRkZTRiMTZlYjBmYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13
b3JrZXIuc3ViLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSB3
b3JrZXIgdG9wLWxldmVsIHNjcmlwdCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcu
L2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFi
ZWw9cmVsYXRpdmUtd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQnLiIKLUZBSUwgQWJzb2x1dGUgVVJM
LWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0
aGUgbW9kdWxlICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQu
anM/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29s
dXRlLXdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0Jy4iCitQQVNTIFJlbGF0aXZlIFVSTC1saWtlIGZy
b20gd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSB3
b3JrZXIgdG9wLWxldmVsIHNjcmlwdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFs
dWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1
ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLjJmMTJhMjM0MmZhZDIyNGUzYTE4YTZm
YjVkODQ4MzI1ZWE2Nzc2ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0
aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAog
Ci1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorUEFTUyBUZXN0IGV2
YWx1YXRpb24gb3JkZXIgb2YgbW9kdWxlcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlv
bi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlk
MGZhZGRkMjJlNGMxZGNiM2E1Zi4uYjg2MWY3MDFmOTQ4ZmIxMzI3NjkzMjJjMzgzNjZmMmQxMzhm
MDRlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1l
c3NhZ2UgPSBudWxsCi0KK0ZBSUwgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVsZXMgYXNz
ZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsic3RlcC0x
LTEiLCAic3RlcC0xLTIiLCAiZ2xvYmFsLWVycm9yIiwgImVycm9yIiwgIm1pY3JvdGFzayJdIGxl
bmd0aCA1LCBnb3QgWyJzdGVwLTEtMSIsICJzdGVwLTEtMiIsICJtaWNyb3Rhc2siXSBsZW5ndGgg
MwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUv
ZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQt
d29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0
YzFkY2IzYTVmLi5jMWQzOGJkZTUwYzU5ZTVkNTk0MTczZDk2ZjljZDE5ZWIxMDdjOWI0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlv
bi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQp
LCBtZXNzYWdlID0gbnVsbAotCitGQUlMIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVz
IGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBbInN0
ZXAtMi4yLTEiLCAic3RlcC0yLjItMiIsICJnbG9iYWwtZXJyb3IiLCAiZXJyb3IiLCAibWljcm90
YXNrLTIuMiJdIGxlbmd0aCA1LCBnb3QgWyJzdGVwLTIuMi0xIiwgInN0ZXAtMi4yLTIiLCAibWlj
cm90YXNrLTIuMiJdIGxlbmd0aCAzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1
YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVl
OGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uMmYxMmEyMzQyZmFkMjI0ZTNhMThhNmZi
NWQ4NDgzMjVlYTY3NzZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRp
b24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAK
LUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitQQVNTIFRlc3QgZXZh
bHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDEyZDk0
YTkxZWYxZjhhYjBhMTg3Yzc0OWIwZGRlYzY5NmQxMTg4ZTcuLmI0ZDY4YWYwNTZlZWY2MjJhMzNk
NTRmMDc2ZjM4MWQ0ZTFiYjI5YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9y
dC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsyLDgg
QEAKIEZBSUwgU3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0
b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgogRkFJ
TCBOZXN0ZWQgc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0
b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgogRkFJ
TCBTdGF0aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9u
ZSBhcmd1bWVudC4iCi1GQUlMIER5bmFtaWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2
YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGlt
cG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQg
YXJyYXkKLUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2
YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGlt
cG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1keW5hbWljLWltcG9ydC1zY3JpcHQuanMnLiIs
IGV4cGVjdGVkIGFycmF5Ci1GQUlMIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBpbXBv
cnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBp
bXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLXN0
YXRpYy1pbXBvcnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBldmFsKGltcG9y
dCgpKS4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWlj
IGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24t
bG9hZC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5CitQQVNTIER5bmFtaWMgaW1wb3J0Lgor
UEFTUyBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVu
IHN0YXRpYyBpbXBvcnQuCitQQVNTIGV2YWwoaW1wb3J0KCkpLgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9h
bHBoYS9pbXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9y
dC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGRkOWFmMzhmZjA5ZmJlYzFmYWMw
YjhmNWVhOWJhZDZlMzE2MzY0OWQuLjUxZWIzNjYzOGMxY2E3ZDA2MGI3Njc1OTI2ZmNjNzBjNWJm
MDc2ZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCBpZGVudGlmaWVyICdyJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVu
dC4KIAotRkFJTCBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IGltcG9ydCBh
c3NlcnRfdW5yZWFjaGVkOiBHb3QgZXJyb3IgZXZlbnQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2Rl
CitQQVNTIEJhc2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2VyczogaW1wb3J0CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNl
dXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBhYjVh
N2ZiODkwMjBmMjlmZDg5M2E3NTY4MGZmZTE3ZDNkMzUwZjdjLi5hYjUzYjgwNTk5YWUwMTk1Nzgw
ODVlZTQ0YWFlZmE0Yzc5NTUyNjg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnRTY3JpcHRz
LWluLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13
b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIGltcG9ydFNjcmlwdHMg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImdhbW1hL3NjcmlwdC5qcyIgYnV0IGdvdCAiYmV0YS9z
Y3JpcHQuanMiCitQQVNTIGltcG9ydFNjcmlwdHMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhy
LWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29y
a2VyLWV4cGVjdGVkLnR4dAppbmRleCA4M2YzNjdmMmNmM2E2NmM2NGE2MjY0Mjk0NjU2ZDVlODgx
ZDFjMTFjLi4yOGIwY2I0MDAxMzkyZDA4ODdhNGZlYmU2ODFjMWUxNTFkMGRmMThiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
YmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9h
bHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAot
RkFJTCBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IFhIUiBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAiZ2FtbWFcbiIgYnV0IGdvdCAiYmV0YVxuIgorUEFTUyBCYXNlIFVSTCBp
biBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IFhIUgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94
aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0
ZWQudHh0CmluZGV4IGQ2YjA4ZWVkYWU2ZjY5NmM3YTRiZmE2NTVlMTNiNWVkNDYwN2VhMDEuLmVh
MTQ1NGQ5YjNmMjBmODVkOTAxNmM1MDZhMTU0NmFmNjE3ODQyZDAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2Fs
cGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIHhoci13b3JrZXIgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgImdhbW1hXG4iIGJ1dCBnb3QgImJldGFcbiIKK1BBU1MgeGhyLXdv
cmtlcgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
Y29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggODMxZjBj
NThjNjk0YzJkNGZlYmQ2ZDhkMGFmMzA3YjEwOTQ0MmE2ZS4uZDU1NWVlN2NmM2ZjNzJlZmI4MmRm
OWRiN2RhZDM2N2Y5YWI3ZmZiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmln
aW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVk
LnR4dApAQCAtMSwxMyArMSwxMSBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2Fn
ZSA9IG51bGwKLQogUEFTUyB1bnN1cHBvcnRlZF9zY2hlbWUKIEZBSUwgZGF0YV91cmwgVGhlIG9w
ZXJhdGlvbiBpcyBpbnNlY3VyZS4KLVRJTUVPVVQgYWJvdXRfYmxhbmsgVGVzdCB0aW1lZCBvdXQK
LVRJTUVPVVQgZXhhbXBsZV9pbnZhbGlkIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIHBvcnRfODEg
VGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgaHR0cHNfcG9ydF84MCBUZXN0IHRpbWVkIG91dAotVElN
RU9VVCBodHRwc19wb3J0XzgwMDAgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgaHR0cF9wb3N0Xzgw
MTIgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgamF2YXNjcmlwdF91cmwgVGVzdCB0aW1lZCBvdXQK
K1BBU1MgYWJvdXRfYmxhbmsKK1BBU1MgZXhhbXBsZV9pbnZhbGlkCitQQVNTIHBvcnRfODEKK1BB
U1MgaHR0cHNfcG9ydF84MAorUEFTUyBodHRwc19wb3J0XzgwMDAKK1BBU1MgaHR0cF9wb3N0Xzgw
MTIKK1BBU1MgamF2YXNjcmlwdF91cmwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFs
U2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFs
U2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0CmluZGV4IGYxNzQxZjlkOGJmMDcw
MzI3MGQyZTM3NjJkYmNiZTI2YzBiOTAwNTkuLjNiMGRmYjM1ZTUxY2QxYTg1NDU1MzAxOWMwZTQw
M2RiZTJmMWQzM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9u
L3JlZGlyZWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2Nh
dGlvbi9yZWRpcmVjdC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgV29ya2Vy
TG9jYXRpb24gd2l0aCByZWRpcmVjdHM6IGNsYXNzaWMgZGVkaWNhdGVkIHdvcmtlcnMgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2ludGVyZmFj
ZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcG9zdC1sb2NhdGlvbi1tZW1iZXJzLmpzP2Ei
IGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2ludGVyZmFjZXMvV29ya2Vy
R2xvYmFsU2NvcGUvbG9jYXRpb24vaGVscGVyLXJlZGlyZWN0LnB5P2ZhaWwiCitQQVNTIFdvcmtl
ckxvY2F0aW9uIHdpdGggcmVkaXJlY3RzOiBjbGFzc2ljIGRlZGljYXRlZCB3b3JrZXJzCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVj
dC1tb2R1bGUtZXhwZWN0ZWQudHh0CmluZGV4IGRjMmUyZTIwN2RiMDAxZWU3MGU3MzMwN2QyN2Ji
MzM1NzIwZmQ1NTkuLmIzYmY4MWVlODY4MWI5ZGMwODBmNTgwMjcxZThiOGYzOTA5NjU0OTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVs
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVk
aXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBXb3JrZXJM
b2NhdGlvbiB3aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2Vz
L1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3Bvc3QtbG9jYXRpb24tbWVtYmVycy5qcz9hIiBi
dXQgZ290ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckds
b2JhbFNjb3BlL2xvY2F0aW9uL2hlbHBlci1yZWRpcmVjdC5weT9mYWlsIgorUEFTUyBXb3JrZXJM
b2NhdGlvbiB3aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
bW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0
CmluZGV4IDIwYWMxN2Q1NjNjNGIzYTQ2MWYwY2FhZmJlYWVlYmQ3MTNmOTcwODEuLmRjY2VkY2Nk
MzY4ZTFmZjE3YjFkZDEzNmU0NTNmZWM0ZmUxMGJjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRl
ZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNh
dGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxOCArMSw5
IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRl
cmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9zdGF0
aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJn
dW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBs
aXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9u
ZXN0ZWQtc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0
bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9y
ZXNvdXJjZXMvc3RhdGljLWltcG9ydC1hbmQtdGhlbi1keW5hbWljLWltcG9ydC13b3JrZXIuanMi
LiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNT
QUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2Fs
aG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtd29ya2Vy
LmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUg
TUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9s
b2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1keW5hbWljLWlt
cG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50
LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJh
bCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1p
Yy1pbXBvcnQtYW5kLXRoZW4tc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBl
eHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJv
cjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtl
cnMvbW9kdWxlcy9yZXNvdXJjZXMvZXZhbC1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBv
cnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgogCi1IYXJuZXNzIEVycm9yIChG
QUlMKSwgbWVzc2FnZSA9IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJo
dHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWlt
cG9ydC1hbmQtdGhlbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVj
dHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi0KLUZBSUwgU3RhdGljIGltcG9ydC4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL3N0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVj
dHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBOZXN0ZWQgc3RhdGljIGltcG9ydC4gcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjog
VW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJz
L21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1zdGF0aWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBv
cnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgU3RhdGljIGltcG9y
dCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBc
Imh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1p
bXBvcnQtYW5kLXRoZW4tZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4
cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGltcG9ydC4gcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5l
eHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBl
eHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1wb3J0
LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dv
cmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvbmVzdGVkLWR5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wi
LiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHluYW1p
YyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0
ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2R5
bmFtaWMtaW1wb3J0LWFuZC10aGVuLXN0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBj
YWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBldmFsKGltcG9ydCgpKS4g
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJv
cjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3Jr
ZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V2YWwtZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgorUEFTUyBTdGF0aWMgaW1w
b3J0LgorUEFTUyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BBU1MgU3RhdGljIGltcG9ydCBhbmQg
dGhlbiBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBk
eW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9y
dC4KK1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3Jr
ZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1j
c3AtZXhwZWN0ZWQudHh0CmluZGV4IDFkYTQ2YjkyNmJlMDg5NmVlOGY3NWE3OGRjYWU0ZjI2OWIw
NTA5MmIuLjIzOWNjOWNlMTUzMDFmN2VlZDgzZDVlYjIyMzBhOWRlMjk0ZWEyZWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMv
ZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSwyMiBA
QAogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kg
ZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4
cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29u
dGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBh
Y2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJz
L21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBV
bnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3Jj
Jy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhv
c3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5q
cwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kg
ZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4
cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9y
dC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1v
bi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1T
ZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogCiBQQVNTIHdvcmtlci1zcmMg
J3NlbGYnIGRpcmVjdGl2ZSBzaG91bGQgZGlzYWxsb3cgY3Jvc3Mgb3JpZ2luIHN0YXRpYyBpbXBv
cnQuCiBGQUlMIHdvcmtlci1zcmMgKiBkaXJlY3RpdmUgc2hvdWxkIGFsbG93IGNyb3NzIG9yaWdp
biBzdGF0aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAw
IHRvIGJlICJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiIGJ1dCBnb3QgIkVSUk9SIiAoZXhwZWN0
ZWQgYXJyYXkgWyJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiXSBnb3QgWyJFUlJPUiJdKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtZmFpbHVyZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9k
dWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dAppbmRleCA5
NWM2ZDE1ZGY0NGUxOGEzNWRmZWIwZmEzOWM4ZDM4NDQyMGMyYzEzLi5lOTU1NzhlNzFiMWM1MGE0
ZTA0NzFiMDM3MTU0YjM4NmIzN2FlZDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2Vy
LWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWlt
cG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FH
RTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgJy4vbm9uLWV4aXN0ZW50
LXNjcmlwdC5qcycuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCitD
T05TT0xFIE1FU1NBR0U6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLgogCi1GQUlM
IGltcG9ydFNjcmlwdHMoKSBvbiBtb2R1bGUgd29ya2VyIHNob3VsZCB0aHJvdyBhbiBleGNlcHRp
b24uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJUeXBlRXJyb3IiIGJ1dCBnb3QgIkxPQURFRCIK
K1BBU1MgaW1wb3J0U2NyaXB0cygpIG9uIG1vZHVsZSB3b3JrZXIgc2hvdWxkIHRocm93IGFuIGV4
Y2VwdGlvbi4KIFBBU1MgV29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igbm9uLWV4aXN0ZW50IHNjcmlw
dCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KIFBBU1MgU3RhdGljIGltcG9ydCBmb3Ig
bm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KLUZBSUwg
RHluYW1pYyBpbXBvcnQgZm9yIG5vbi1leGlzdGVudCBzY3JpcHQgc2hvdWxkIHRocm93IGFuIGV4
Y2VwdGlvbi4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlR5cGVFcnJvciIgYnV0IGdvdCAiRXJy
b3IiCitQQVNTIER5bmFtaWMgaW1wb3J0IGZvciBub24tZXhpc3RlbnQgc2NyaXB0IHNob3VsZCB0
aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIGFuIGludmFs
aWQgVVJMIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rp
b24gZm9yIGEgZmlsZSBVUkwgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21v
ZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAppbmRleCBkNTgwNjIwNDFjM2U2
OTUxNWI4MTVlMDJkN2MzODY4NGQ3N2M3NmI3Li43NzI5MWJhYTFhNDE4NGJlYmU3YWQ3YjVkOWYx
MTljNzFhNzhkZTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRh
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVj
dGVkLnR4dApAQCAtMSw4ICsxLDUgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IGlt
cG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCiAKLUhhcm5lc3MgRXJyb3Ig
KEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQg
aW5zaWRlIG1vZHVsZXMuCi0KLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIHRvcC1s
ZXZlbCBtb2R1bGUgc2NyaXB0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogIlN5bnRheEVycm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5IHZhbGlkIGluc2lkZSBt
b2R1bGVzLiIKLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVs
ZSBzY3JpcHQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBUZXN0
IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJh
Z21lbnQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBUZXN0IGlt
cG9ydC5tZXRhLnVybCBvbiB0aGUgdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQuCitQQVNTIFRlc3Qg
aW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2NyaXB0LgorUEFTUyBUZXN0
IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJh
Z21lbnQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRtbAppbmRleCBjZmY4ZTkxNDg4
ZTgyMzlhYmUyMTM2MTlkMTJkNWE2MDMwNzJmYmVhLi5lZGUyNjkyZTFjNjM0MWJlZmZjOTAxMGM0
MWI4ZjRjZmU0MzgzMjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1t
ZXRhLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS5odG1sCkBAIC01
Myw3ICs1Myw3IEBACiAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgnLi8nICsgc2NyaXB0X3Vy
bCArICcjMScpOwogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB3b3JrZXIu
b25tZXNzYWdlID0gcmVzb2x2ZSk7CiAgICAgICB9KQotICAgICAgLnRoZW4obXNnX2V2ZW50ID0+
IGFzc2VydF90cnVlKG1zZ19ldmVudC5kYXRhLmVuZHNXaXRoKHNjcmlwdF91cmwpKSk7CisgICAg
ICAudGhlbihtc2dfZXZlbnQgPT4gYXNzZXJ0X3RydWUobXNnX2V2ZW50LmRhdGEuZW5kc1dpdGgo
c2NyaXB0X3VybCArICcjMScpKSk7CiB9LCAnVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGlt
cG9ydGVkIG1vZHVsZSBzY3JpcHQgd2l0aCBhIGZyYWdtZW50LicpOwogCiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4cGVjdGVkLnR4dAppbmRl
eCA2ZGM0MmMxY2ZkMzM0OGFmZGQxZGZkM2IxMGE1MDQ3MDU1MzAxOTZhLi5mZTFiOWQ5M2MwODAx
MWI1MGU5NDFmNGUxMjM2MDY3YWJiZDNmMjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtl
ci1pbXBvcnQtcmVmZXJyZXItZXhwZWN0ZWQudHh0CkBAIC0xLDE5ICsxLDIzIEBACi0KLUhhcm5l
c3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNv
dXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVy
bmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291
cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3Vy
Y2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5h
bCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJj
ZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFs
IFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNl
cy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQogCiBQQVNTIFNhbWUtb3JpZ2luIHRvcC1sZXZl
bCBtb2R1bGUgc2NyaXB0IGxvYWRpbmcgd2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGlj
eQogUEFTUyBTYW1lLW9yaWdpbiB0b3AtbGV2ZWwgbW9kdWxlIHNjcmlwdCBsb2FkaW5nIHdpdGgg
Im9yaWdpbiIgcmVmZXJyZXIgcG9saWN5CiBQQVNTIFNhbWUtb3JpZ2luIHRvcC1sZXZlbCBtb2R1
bGUgc2NyaXB0IGxvYWRpbmcgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeQotRkFJ
TCBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBw
b2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLUZBSUwgU2FtZS1vcmlnaW4gc3RhdGljIGltcG9y
dCB3aXRoICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJ
TCBTYW1lLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBw
b2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK1BBU1MgU2FtZS1vcmlnaW4gc3RhdGljIGltcG9y
dCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LgorUEFTUyBTYW1lLW9yaWdpbiBz
dGF0aWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgorUEFTUyBTYW1lLW9y
aWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCiBG
QUlMIENyb3NzLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJl
ciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKIEZBSUwgQ3Jvc3Mtb3JpZ2luIHN0YXRpYyBp
bXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIK
IEZBSUwgQ3Jvc3Mtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVy
cmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotVElNRU9VVCBTYW1lLW9yaWdpbiBkeW5h
bWljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LiBUZXN0IHRpbWVk
IG91dAotTk9UUlVOIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVm
ZXJyZXIgcG9saWN5LgotTk9UUlVOIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggInNh
bWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMg
aW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gQ3Jvc3Mt
b3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgotTk9U
UlVOIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJy
ZXIgcG9saWN5LgorRkFJTCBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJuby1yZWZl
cnJlciIgcmVmZXJyZXIgcG9saWN5LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiIiBidXQgZ290
ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWlj
LWltcG9ydC1zYW1lLW9yaWdpbi1yZWZlcnJlci1jaGVja2VyLXdvcmtlci5qcyIKK0ZBSUwgU2Ft
ZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvIiBidXQgZ290ICJo
dHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWlt
cG9ydC1zYW1lLW9yaWdpbi1yZWZlcnJlci1jaGVja2VyLXdvcmtlci5qcyIKK1BBU1MgU2FtZS1v
cmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4K
K0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZl
cnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFt
aWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJy
b3IiCitGQUlMIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2Rl
ZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGEyM2E1NTc1ZGI0Mjc0MjdmODViZDZi
NjM1NGRlODgzODMxZmUyYjQuLmRjY2VkY2NkMzY4ZTFmZjE3YjFkZDEzNmU0NTNmZWM0ZmUxMGJj
ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dApAQCAt
MSwxNCArMSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRv
a2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNP
TEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2Fs
bCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhF
cnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBv
bmUgYXJndW1lbnQuCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJy
b3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25l
IGFyZ3VtZW50LgotCi1GQUlMIFN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyon
LiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVk
IHN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBl
Y3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBk
eW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVj
dHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGltcG9ydC4gYXNzZXJ0X2Fy
cmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6
IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMn
LiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlMIE5lc3RlZCBkeW5hbWljIGltcG9ydC4gYXNzZXJ0X2Fy
cmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6
IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tZHluYW1pYy1pbXBvcnQt
c2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBEeW5hbWljIGltcG9ydCBhbmQgdGhl
biBzdGF0aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRv
IGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcu
L2V4cG9ydC1vbi1zdGF0aWMtaW1wb3J0LXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZB
SUwgZXZhbChpbXBvcnQoKSkuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQg
dG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUg
Jy4vZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQorUEFTUyBTdGF0
aWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BBU1MgU3RhdGljIGltcG9y
dCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQuCitQQVNTIE5l
c3RlZCBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGlj
IGltcG9ydC4KK1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRl
ZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
b3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dAppbmRleCBkYTBlNGViNjc1OGQxNGEzN2EzOThkMGI2
ZmM3MWFkMzg3NmJkMjZiLi4xZmMwYzY2ZmRmNzI0YzJhYTNiOTEwNjk4MGJmYmU3ZTk4OGY5Nzcz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0CkBA
IC0yLDExICsyLDYgQEAKIFBBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggdGhlIGRl
ZmF1bHQgd29ya2VyIHR5cGUuCiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIHRo
ZSAiY2xhc3NpYyIgd29ya2VyIHR5cGUuCiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3
aXRoIHRoZSAibW9kdWxlIiB3b3JrZXIgdHlwZS4KLUZBSUwgVGVzdCB3b3JrZXIgY29uc3RydWN0
aW9uIHdpdGggYW4gZW1wdHkgd29ya2VyIHR5cGUuIGFzc2VydF90aHJvd3NfanM6IFdvcmtlciBj
b25zdHJ1Y3Rpb24gd2l0aCBhbiBlbXB0eSB0eXBlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24g
ZnVuY3Rpb24gIigpID0+IHsKLSAgICAgICAgbmV3IFdvcmtlcigncmVzb3VyY2VzL3Bvc3QtbWVz
c2FnZS1vbi1sb2FkLXdvcmtlci5qcycsIHsgdHlwZTogJycgfSk7Ci0gICAgICB9IiBkaWQgbm90
IHRocm93Ci1GQUlMIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIHVua25vd24gd29y
a2VyIHR5cGUuIGFzc2VydF90aHJvd3NfanM6IFdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1
bmtub3duIHR5cGUgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiBmdW5jdGlvbiAiKCkgPT4gewot
ICAgICAgICBuZXcgV29ya2VyKCdyZXNvdXJjZXMvcG9zdC1tZXNzYWdlLW9uLWxvYWQtd29ya2Vy
LmpzJywKLSAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICd1bmtub3duJyB9KTsKLSAgICAgIH0i
IGRpZCBub3QgdGhyb3cKK1BBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gZW1w
dHkgd29ya2VyIHR5cGUuCitQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIHVu
a25vd24gd29ya2VyIHR5cGUuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFy
c2UtZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLXBhcnNl
LWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQudHh0CmluZGV4IGU4ZWI1NDBiZDMzOTI0MDBhOGRiZmQ5
Mzg2NDhhNjQ5MjM5YzBkOWUuLmQxYTUwZjdlYTNjZDZkYzI5OGVmNzU0MTQ3NzYyYzY5YzU3ZDcz
YjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJl
LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDE0IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9u
ZSBhcmd1bWVudC4KK0NPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9r
ZW4gJzsnCitDT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICc7
JwogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IEVycm9yOiBhc3NlcnRfaW1wbGVt
ZW50czogU3RhdGljIGltcG9ydCBtdXN0IGJlIHN1cHBvcnRlZCBvbiBtb2R1bGUgZGVkaWNhdGVk
IHdvcmtlciB0byBydW4gdGhpcyB0ZXN0LiB1bmRlZmluZWQKLQotTk9UUlVOIE1vZHVsZSB3b3Jr
ZXIgY29uc3RydWN0aW9uIGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJyb3Igc2hvdWxkIGRpc3Bh
dGNoIGFuIGV2ZW50IG5hbWVkIGVycm9yLgotTk9UUlVOIFN0YXRpYyBpbXBvcnQgb24gbW9kdWxl
IHdvcmtlciBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNob3VsZCBkaXNwYXRjaCBhbiBl
dmVudCBuYW1lZCBlcnJvci4KK0ZBSUwgTW9kdWxlIHdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIHNj
cmlwdCB3aXRoIHN5bnRheCBlcnJvciBzaG91bGQgZGlzcGF0Y2ggYW4gZXZlbnQgbmFtZWQgZXJy
b3IuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIGZ1bmN0aW9uICJmdW5jdGlvbiBFdmVudCgpIHsK
KyAgICBbbmF0aXZlIGNvZGVdCit9IiBidXQgZ290IGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJvckV2
ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iCitGQUlMIFN0YXRpYyBpbXBvcnQgb24gbW9k
dWxlIHdvcmtlciBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNob3VsZCBkaXNwYXRjaCBh
biBldmVudCBuYW1lZCBlcnJvci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZnVuY3Rpb24gImZ1
bmN0aW9uIEV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iIGJ1dCBnb3QgZnVuY3Rpb24g
ImZ1bmN0aW9uIEVycm9yRXZlbnQoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0CmluZGV4
IDYzOTg0NzEyMTQ1OWE3YWIzN2I5ZjA5YTY4YmE2NGVhOGE5ZWQ1N2MuLmU5NDY5NDdiMTRhZWYz
ZTUyOTlhMGFiYTNhZTRiMWNmOWZjZDk1NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvbmFtZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw4IEBACiBDT05TT0xF
IE1FU1NBR0U6IFVuaGFuZGxlZCBQcm9taXNlIFJlamVjdGlvbjogUmVmZXJlbmNlRXJyb3I6IENh
bid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgogCi1GQUlMIFRlc3QgdGhlIG5hbWUgcHJv
cGVydHkgb2Ygc2hhcmVkIGFuZCBkZWRpY2F0ZWQgd29ya2VycyB2aWEgdGhlIG5hbWUgY29uc3Ry
dWN0b3Igb3B0aW9uIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgotUEFTUyBEZWNs
YXJpbmcgbmFtZSBhcyBhbiBhY2NpZGVudGFsIGdsb2JhbCBtdXN0IG5vdCBjYXVzZSBhIGhhcm5l
c3MgZXJyb3IgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCitIYXJuZXNzIEVycm9yIChG
QUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IENhbid0IGZpbmQgdmFyaWFibGU6
IFNoYXJlZFdvcmtlcgorCiBQQVNTIG5hbWUgcHJvcGVydHkgdmFsdWUgZm9yIERlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlCiBQQVNTIG5hbWUgcHJvcGVydHkgaXMgcmVwbGFjZWFibGUgZm9yIERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCitQQVNTIERlY2xhcmluZyBuYW1lIGFzIGFuIGFjY2lk
ZW50YWwgZ2xvYmFsIG11c3Qgbm90IGNhdXNlIGEgaGFybmVzcyBlcnJvciBmb3IgRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNyZWRlbnRpYWxzLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggZjA2OTFhYTA5Y2M0OWNkZjdmMmE5NDM3NGM2ZTYyMjIwZjkzYjhlMi4uYTU3MGQ4
ZDI5MmZhODU2MjEyYjA1NDc4ODIwZjEzMGY4MWQ5YmJmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0
LWNyZWRlbnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3JlZGVudGlh
bHMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDExIEBACiBDT05TT0xFIE1FU1NBR0U6
IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbi4KIAotRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3Jp
cHQgd2l0aCB0aGUgZGVmYXVsdCBXb3JrbGV0T3B0aW9ucyBzaG91bGQgc2VuZCB0aGUgY3JlZGVu
dGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFJlc3BvbnNlIGlz
IG5vdCAyeHgiCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIHRoZSBk
ZWZhdWx0IFdvcmtsZXRPcHRpb25zIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9y
OiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQQVNTIEltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggdGhlIGRlZmF1bHQgV29ya2xldE9wdGlvbnMgc2hvdWxk
IG5vdCBzZW5kIHRoZSBjcmVkZW50aWFscwotRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBz
Y3JpcHQgd2l0aCBjcmVkZW50aWFscz1vbWl0IHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVudGlh
bHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
QWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFJlc3BvbnNlIGlzIG5v
dCAyeHgiCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRp
YWxzPW9taXQgc2hvdWxkIG5vdCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBJbXBvcnRp
bmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmln
aW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9b21pdCBzaG91bGQgbm90IHNlbmQgdGhlIGNyZWRl
bnRpYWxzCi1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRp
YWxzPXNhbWUtb3JpZ2luIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBGYWls
ZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogUmVzcG9uc2UgaXMgbm90IDJ4eCIKK0ZBSUwgSW1w
b3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9c2FtZS1vcmlnaW4g
c2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEltcG9ydGluZyBhIG1vZHVsZSBz
Y3JpcHQgZmFpbGVkLiIKIFBBU1MgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgd2l0
aCBjcmVkZW50aWFscz1zYW1lLW9yaWdpbiBzaG91bGQgbm90IHNlbmQgdGhlIGNyZWRlbnRpYWxz
Ci1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPWlu
Y2x1ZGUgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRj
aCBtb2R1bGUsIGVycm9yOiBSZXNwb25zZSBpcyBub3QgMnh4IgotRkFJTCBJbXBvcnRpbmcgYSBy
ZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNlbmQg
dGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiBP
cmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4uIgorRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQg
d2l0aCBjcmVkZW50aWFscz1pbmNsdWRlIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVy
cm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCitGQUlMIEltcG9ydGluZyBh
IHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9aW5jbHVkZSBzaG91bGQgc2Vu
ZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmll
ZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1
ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jc3AuaHR0cHMt
ZXhwZWN0ZWQudHh0CmluZGV4IGJmMzM1Y2YzMDU1ZTA2NWIzODk4OWI0MWFhMWUyMzZmZWI0YWMy
OWQuLjI3NWIzNDM3ZmFkOTc1M2E2ZWNlMjQyMDBlYWJmMjU3ZmZkNjI3MmEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVk
aW8td29ya2xldC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jc3AuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQwICsxLDUyIEBACitCbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9l
bXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291
cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFj
Y2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRz
L3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9j
a2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dv
cmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpz
CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5
NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVh
ZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2Fs
aG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNv
cnMtaGVhZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3Vy
aXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCiBDT05TT0xFIE1FU1NBR0U6IFVu
cmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMn
LgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9z
dDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMt
aGVhZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5
LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCiBDT05TT0xFIE1FU1NBR0U6IFVucmVj
b2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgog
CiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBk
aXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3Jr
bGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6IFtibG9ja2Vk
XSBUaGUgcGFnZSBhdCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9h
ZGRtb2R1bGUtd2luZG93Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5zZWN1cmUg
Y29udGVudCBmcm9tIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrbGV0cy9yZXNvdXJjZXMvZW1w
dHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcy4KIAogQ09OU09MRSBNRVNTQUdF
OiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9y
ZXNvdXJjZXMvYWRkbW9kdWxlLXdpbmRvdy5odG1sIHdhcyBub3QgYWxsb3dlZCB0byBkaXNwbGF5
IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2xldHMvcmVz
b3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMuCiAKK0NPTlNP
TEUgTUVTU0FHRTogW2Jsb2NrZWRdIFRoZSBwYWdlIGF0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMv
d29ya2xldHMvcmVzb3VyY2VzL2FkZG1vZHVsZS13aW5kb3cuaHRtbCB3YXMgbm90IGFsbG93ZWQg
dG8gZGlzcGxheSBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDovL2xvY2FsaG9zdDo5NDQzL3dv
cmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpz
LgorCitDT05TT0xFIE1FU1NBR0U6IFtibG9ja2VkXSBUaGUgcGFnZSBhdCBodHRwczovL2xvY2Fs
aG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9hZGRtb2R1bGUtd2luZG93Lmh0bWwgd2FzIG5v
dCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly9sb2NhbGhv
c3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3Jz
LWhlYWRlci5qcy4KKwogCiBGQUlMIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBiZSBi
bG9ja2VkIGJ5IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCi1GQUlMIEEgc2FtZS1vcmln
aW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUgYmxv
Y2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgorUEFTUyBBIHNhbWUtb3JpZ2lu
IHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJsb2Nr
ZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4KIEZBSUwgQSByZW1vdGUtb3Jp
Z2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJs
b2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNPTFZFRCIKIEZBSUwgQSByZW1vdGUtb3Jp
Z2luLXJlZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNy
YyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1
dCBnb3QgIlJFU09MVkVEIgotRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEg
cmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBieSB0aGUg
c2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVK
RUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgorUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1w
b3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tl
ZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLgogUEFTUyBBIHJlbW90ZS1vcmln
aW4gd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBk
aXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KLVBBU1MgQSBzYW1lLW9y
aWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3Qg
YmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRo
ZSBvcmlnaW4gYWxsb3dzIGl0LgorRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5n
IGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhl
IHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNT
IEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0
IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBz
cGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgogUEFTUyBBIHJlbW90ZS1vcmlnaW4tcmVk
aXJlY3RlZCB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQt
c3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgotUEFTUyBBIHNh
bWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNj
cmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3Rp
dmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3
b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxk
IG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlp
bmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZF
RCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNob3Vs
ZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93
cyBpdC4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmln
aW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICog
ZGlyZWN0aXZlIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRo
ZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIlJFU09MVkVEIiBidXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSByZW1vdGUtb3JpZ2luIHdv
cmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9j
a2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0LgogUEFTUyBB
IHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBi
ZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4KLVBBU1MgQSBzYW1l
LW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3Jp
cHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3Rp
dmUgYWxsb3dzIGl0LgorRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVt
b3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVz
ZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdp
biB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3Rp
dmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KLVBBU1Mg
QSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNo
b3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3
b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KK0ZBSUwgQSBzYW1lLW9yaWdp
biB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUg
YmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5
IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09M
VkVEIiBidXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgaW1w
b3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJ5IHRo
ZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdvcmtsZXRzIG9iZXkgdGhlIHNjcmlwdC1z
cmMgZGlyZWN0aXZlLgogUEFTUyBBIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNo
b3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3
b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KLVBBU1MgQSBzYW1lLW9yaWdp
biB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hv
dWxkIG5vdCBiZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdv
cmtsZXRzIG9iZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLgorRkFJTCBBIHNhbWUtb3JpZ2lu
IHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91
bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29y
a2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEFuIGluc2VjdXJlLW9yaWdp
biB3b3JrbGV0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuCiBQ
QVNTIEFuIGluc2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVkIHdvcmtsZXQgc2hvdWxkIGJlIGJsb2Nr
ZWQgYmVjYXVzZSBvZiBtaXhlZCBjb250ZW50cy4KLUZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0
IGltcG9ydGluZyBhbiBpbnNlY3VyZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJl
Y2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RF
RCIgYnV0IGdvdCAiUkVTT0xWRUQiCi1GQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRp
bmcgYW4gaW5zZWN1cmUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBiZSBibG9ja2Vk
IGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpF
Q1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCitQQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBv
cnRpbmcgYW4gaW5zZWN1cmUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBiZWNhdXNl
IG9mIG1peGVkIGNvbnRlbnRzLgorUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5n
IGFuIGluc2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBi
ZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtaW1wb3J0
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IGZlODk2NWFlZjZjYWRhMjIxOWVmOGUzMDg4OGJhOTFlMjQwMTdhYzAuLjY3NjQ3ZDQ2
ODdiOWQzY2ZjODZlMGIyYzhmNTY4ZTIwZjViZWMzOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1p
bXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0xNiw3ICsxNiw3IEBAIFBBU1MgSW1wb3J0aW5nIGEgY3Jvc3Mgb3JpZ2lu
IHJlc291cmNlIHdpdGggdGhlIEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiBoZWFkCiBQQVNT
IEltcG9ydGluZyBhIGNyb3NzIG9yaWdpbiByZXNvdXJjZSB3aXRob3V0IHRoZSBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4gaGVhZGVyIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UK
IFBBU1MgSW1wb3J0aW5nIGEgY3Jvc3Mtb3JpZ2luLXJlZGlyZWN0ZWQgcmVzb3VyY2Ugd2l0aCB0
aGUgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhlYWRlciBzaG91bGQgcmVzb2x2ZSB0aGUg
Z2l2ZW4gcHJvbWlzZQogUEFTUyBJbXBvcnRpbmcgYSBjcm9zcy1vcmlnaW4tcmVkaXJlY3RlZCBy
ZXNvdXJjZSB3aXRob3V0IHRoZSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4gaGVhZGVyIHNo
b3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UKLUZBSUwgSW1wb3J0aW5nIGEgc2NyaXB0IHRo
YXQgaGFzIGEgc3ludGF4IGVycm9yIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuIGFz
c2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEltcG9ydGluZyBhIG5lc3RlZCBzY3JpcHQgdGhhdCBoYXMg
YSBzeW50YXggZXJyb3Igc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4gYXNzZXJ0X3Vu
cmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hh
YmxlIGNvZGUKLUZBSUwgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaW1wb3J0cyBhbiBpbnZhbGlk
IGlkZW50aWZpZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4gYXNzZXJ0X3VucmVh
Y2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKK1BBU1MgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaGFzIGEgc3ludGF4IGVycm9yIHNo
b3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuCitQQVNTIEltcG9ydGluZyBhIG5lc3RlZCBz
Y3JpcHQgdGhhdCBoYXMgYSBzeW50YXggZXJyb3Igc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJv
bWlzZS4KK1BBU1MgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaW1wb3J0cyBhbiBpbnZhbGlkIGlk
ZW50aWZpZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRp
by13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1yZWZlcnJl
ci5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMjRkNDk5YzE0MWNlZTZkYzliMmViZTI0YmZiNGZm
NGMwM2EwYTk3My4uOWY2ZDExMzA1OWQ5ZmFkNTBjNjMwMDdiN2ZjZDJjYmQ2NzI3NzY1MCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
bGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdv
cmtsZXQtcmVmZXJyZXIuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsOCBAQAorQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3Jr
bGV0cy9yZXNvdXJjZXMvcmVmZXJyZXItY2hlY2tlci5weT9yZWZlcnJlcl9wb2xpY3k9bm8tcmVm
ZXJyZXImZXhwZWN0ZWRfcmVmZXJyZXI9CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9yZWZlcnJlci1j
aGVja2VyLnB5P3JlZmVycmVyX3BvbGljeT1vcmlnaW4mZXhwZWN0ZWRfcmVmZXJyZXI9aHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0My8KK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxo
b3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgor
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0
My93b3JrbGV0cy9yZXNvdXJjZXMvcmVmZXJyZXItY2hlY2tlci5weT9yZWZlcnJlcl9wb2xpY3k9
c2FtZS1vcmlnaW4mZXhwZWN0ZWRfcmVmZXJyZXI9CitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBo
dHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFs
bG93LU9yaWdpbi4KIAogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBh
IHBhZ2UgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBz
ZW5kIHJlZmVycmVyLgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9t
IGEgcGFnZSB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90
IHNlbmQgcmVmZXJyZXIuCkBAIC02LDE1ICsxMSwxNSBAQCBQQVNTIEltcG9ydGluZyBhIHJlbW90
ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBv
bAogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBo
YXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCiBQ
QVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFz
ICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4K
IFBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3
b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91
bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJy
ZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCitGQUlMIEltcG9y
dGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNj
cmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNl
bmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAi
Q3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2Ug
U2hhcmluZyBwb2xpY3kuIgogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJv
bSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiBy
ZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgogUEFTUyBJbXBvcnRpbmcg
YSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlw
dCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQg
cmVmZXJyZXIuCiBQQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2Ft
ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNj
cmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSBz
YW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhh
dCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFT
UyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3
b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNl
bmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEg
c2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJl
ciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1v
cmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAi
c2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1Q
QVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3
b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91
bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9y
aWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgorRkFJTCBJbXBvcnRp
bmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3Jp
cHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVy
LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdp
biBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9s
aWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUt
b3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBz
aG91bGQgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBi
dXQgZ290ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCitGQUlMIEltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2Ny
aXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJl
ci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJDcm9zcy1vcmln
aW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBv
bGljeS4iCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1v
cmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xp
Y3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZF
RCIgYnV0IGdvdCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIgorRkFJTCBJbXBv
cnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBz
Y3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBz
ZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3Qg
IkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNl
IFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZy
b20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZh
aWxlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1v
dGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIg
cG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVT
T0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3Mt
T3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtcmVkaXJlY3Rl
ZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0ZWQtd29ya2VyLW9yaWdpbi1l
eHBlY3RlZC50eHQKaW5kZXggMWUyZDM5OTJmNmQ1ZGYzMjIwN2E2YjBmNjE5YTZkNzExODEyNDAw
ZC4uN2E3YTkxN2VhYTk4ZTkyZWUwM2VjMjhhMTFlNzgwODRkMjM0Yjg4NiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwt
cmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1yZWRpcmVjdGVkLXdv
cmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cyLmxvY2FsaG9zdDo4ODAwL3hoci9yZXNvdXJjZXMv
aW5zcGVjdC1oZWFkZXJzLnB5P2ZpbHRlcl9uYW1lPW9yaWdpbiZjb3JzCiAKLUZBSUwgUmVmZXJl
ciBoZWFkZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJlZmVyZXI6IGh0dHA6Ly9sb2NhbGhv
c3Q6ODgwMC94aHIvcmVzb3VyY2VzL3dvcmtlcnhoci1vcmlnaW4tcmVmZXJyZXIuanNcbiIgYnV0
IGdvdCAiUmVmZXJlcjogaHR0cDovL2xvY2FsaG9zdDo4ODAwL3hoci9yZXNvdXJjZXMvcmVkaXJl
Y3QucHk/bG9jYXRpb249d29ya2VyeGhyLW9yaWdpbi1yZWZlcnJlci5qc1xuIgorUEFTUyBSZWZl
cmVyIGhlYWRlcgogRkFJTCBPcmlnaW4gaGVhZGVyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJP
cmlnaW46IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMFxuIiBidXQgZ290ICIiCiBQQVNTIFJlcXVlc3Qg
VVJMIHRlc3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW93b3JrbGV0
LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvd29ya2xldC1hZGRNb2R1bGUtZmFpbHVyZS1leHBlY3RlZC50eHQKaW5kZXggMDhhZjExNDM2
MDU1MWJmNWE4MDc5YWYwYTM4MTVjNGUwOGViZDE0My4uZGVmMzNhZDg2OTFiNjk0MzZlMGUxODFj
NWJkMDA0ODM1NDgzNTFiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW93
b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZhaWx1cmUtZXhwZWN0ZWQudHh0CkBAIC00
LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgY29udGV4dC5hdWRp
b1dvcmtsZXQuYWRkTW9kdWxlKGludmFsaWRVUkwpOyByZWplY3RlZCBwcm9taXNlICB3aXRoIFN5
bnRheEVycm9yOiBNb2R1bGUgVVJMIGlzIGludmFsaWQuCi1QQVNTIGNvbnRleHQuYXVkaW9Xb3Jr
bGV0LmFkZE1vZHVsZSgnZG9lc25vdEV4aXN0LmpzJyk7IHJlamVjdGVkIHByb21pc2UgIHdpdGgg
QWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFRoZSByZXF1ZXN0ZWQg
VVJMIHdhcyBub3QgZm91bmQgb24gdGhpcyBzZXJ2ZXIuLgorUEFTUyBjb250ZXh0LmF1ZGlvV29y
a2xldC5hZGRNb2R1bGUoJ2RvZXNub3RFeGlzdC5qcycpOyByZWplY3RlZCBwcm9taXNlICB3aXRo
IEFib3J0RXJyb3I6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLi4KIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vd29ya2xldC1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby93b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dAppbmRleCA2NTRkZGY3ZjE3ZWZh
YjU4ZTQyZmFiZTM4NTI1Nzk2NGFlMmM1ZDQxLi4xYTQzZTNmOTdjYjJmMDZiOWY3Y2Q1ZjJiMTgy
MzM4MTA1MTNlZWYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby93b3JrbGV0LWNy
YXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby93b3JrbGV0LWNyYXNo
LWV4cGVjdGVkLnR4dApAQCAtMSArMSwyIEBACitDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjog
J3RleHQvaHRtbCcgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCiBUaGlzIHRl
c3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420618</attachid>
            <date>2021-02-17 01:58:07 -0800</date>
            <delta_ts>2021-02-18 23:02:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210217015806.patch</filename>
            <type>text/plain</type>
            <size>238970</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MjJkM2U1NmU1OGNhNjNiMGYwZDYyZWIzMDg4Yjc3MTI3ZGZkNGYxLi4yMGM5YTE5ZDBkZDQyMTM1
YWZiZTQ5ODZiNzUxYzdkZDk4YzA2YjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAyMS0wMi0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcDoK
KyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9yKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlRXJyb3IpOgorICAgICAg
ICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVSYW5nZUVycm9y
KToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVmZXJlbmNlRXJyb3IpOgorICAgICAgICAoSlNDOjpj
cmVhdGVTeW50YXhFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVR5cGVFcnJvcik6CisgICAg
ICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlR2V0dGVyVHlw
ZUVycm9yKToKKyAgICAgICAgKEpTQzo6dGhyb3dTeW50YXhFcnJvcik6CisgICAgICAgICogcnVu
dGltZS9FcnJvci5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6RXJyb3JJ
bnN0YW5jZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VTdHJpbmcpOgorICAgICAgICAo
SlNDOjpFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5nKToKKyAgICAgICAgKEpTQzo6
RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpjcmVhdGUpOgorICAg
ICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjplcnJvclR5cGUgY29uc3QpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBl
Pjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I8
ZXJyb3JUeXBlPjo6Y2FsbEltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvTnVsbFNldHRlckZ1bmN0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6
SlNXZWJBc3NlbWJseUxpbmtFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
cjo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3Nl
bWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9y
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04p
OgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisKIDIwMjEtMDIt
MTYgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgb3BlcmF0aW9u
TmV3QXJyYXlXaXRoU2l6ZSBzaG91bGQgY2FsbCB0cnlDcmVhdGUgaW5zdGVhZCBvZiBjcmVhdGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MDIyZGJiYzViMTBhMWQ3NmYyYjRhOTI1MjI2M2Q2ZWJmM2IwOTQ0Li5l
OGQzOGEwYmRjNDY1OTUyMzlhMzAxNWRmZTUwZmE2NWE2ZDlkMTJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMyIEBACisyMDIxLTAyLTE3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBXb3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OkNhY2hlZE1vZHVsZVNjcmlw
dExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6Omxv
YWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlG
aW5pc2hlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRTY3JpcHRGZXRjaGVyOjpyZXF1ZXN0U2NyaXB0V2l0aENhY2hl
IGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRE9NRXhjZXB0aW9uKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0TW9kdWxlTG9hZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNv
bHZlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJG
ZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVy
RXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxv
YWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6
bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxl
TG9hZGVyUmVzb2x2ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jh
c2U6Om1vZHVsZUxvYWRlckZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
V2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJDcmVhdGVJ
bXBvcnRNZXRhUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFz
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oLgorICAgICAgICAoV2Vi
Q29yZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpjbGVhckNsaWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2R1bGVTY3JpcHRMb2FkZXI6OnNjcmlwdEZldGNoZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TW9kdWxlU2NyaXB0TG9hZGVyOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVs
ZVNjcmlwdExvYWRlcjo6TW9kdWxlU2NyaXB0TG9hZGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oLgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRNb2R1bGVMb2FkZXI6OlNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpyZXNvbHZlTW9kdWxlU3BlY2lmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVs
ZUxvYWRlcjo6cmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6
OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6bW9kdWxlVVJM
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9t
UmVxdWVzdFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6aW1wb3J0TW9kdWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dFNvdXJjZUNvZGU6OlNjcmlwdFNvdXJjZUNvZGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
TW9kdWxlU2NyaXB0TG9hZGVyOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjp+V29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bG9hZCk6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlz
aGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmguCisgICAgICAg
ICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RmV0Y2hlci5oOiBBZGRlZC4KKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9FeGNlcHRpb25Db2RlLmg6CisgICAgICAg
ICogZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRh
YmxlTW9kdWxlU2NyaXB0Ojpsb2FkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTG9hZGFibGVN
b2R1bGVTY3JpcHQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KToKKyAgICAgICAg
KiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRh
YmxlTG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAq
IHdvcmtlcnMvV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6V29ya2VyKToK
KyAgICAgICAgKFdlYkNvcmU6Oldvcmtlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmg6CisgICAg
ICAgICogd29ya2Vycy9Xb3JrZXIuaWRsOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFs
U2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckds
b2JhbFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjppbXBvcnRT
Y3JpcHRzKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6Y3JlZGVudGlhbHMgY29uc3QpOgorICAgICAg
ICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyTWVzc2FnaW5nUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2Fn
aW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNj
b3BlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGU6Om1vZHVsZUxvYWRlcik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVmFsdWVU
b01vZHVsZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyOjpldmFsdWF0ZU1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyOjpsb2FkTW9kdWxlU3luY2hyb25vdXNseSk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsaW5rQW5kRXZhbHVhdGVN
b2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29y
a2xldFNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3lu
Y2hyb25vdXNseSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OmRpZFJl
Y2VpdmVSZXNwb25zZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6cmVzcG9uc2VTb3VyY2UgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjppc1JlZGlyZWN0ZWQg
Y29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlclBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OmV2YWx1YXRlU2NyaXB0SWZOZWNlc3NhcnkpOgorICAgICAg
ICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUeXBl
Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iOjpmZXRjaFNjcmlwdFdpdGhDb250ZXh0KToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMu
aDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3Jr
ZXJUaHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3Jr
ZXIuaDoKKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpmZXRjaEFuZEludm9rZVNjcmlwdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OnByb2Nlc3NOZXh0U2NyaXB0RmV0
Y2hKb2JJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFs
U2NvcGU6OmRpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpX
b3JrbGV0R2xvYmFsU2NvcGU6Om5vdGlmeUZpbmlzaGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZGlkQ29tcGxldGVTY3JpcHRGZXRjaEpvYik6IERl
bGV0ZWQuCisgICAgICAgICogd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmg6CisKIDIwMjEt
MDItMTYgIFBhdHJpY2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEltcGxlbWVudCBHcmlkIE92ZXJsYXkgIlNob3cgYXJlYSBuYW1lcyIgZHJhd2lu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJy
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3Bw
CmluZGV4IDc1OWE1YjI0YTBlZDA4NjgwY2NhYTYzNDBkMmU5NWQ0NTBiODBmZDYuLjI5NmM4NWNj
OTBlMDViNTQ1NDdmNjYyYTdlMmY4YTFlMTMwYTQ2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiBjb25zdCBDbGFzc0luZm8gQWdncmVnYXRlRXJyb3I6OnNfaW5mbyA9IHsg
IkFnZ3JlZ2F0ZUVycm9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShBZ2dyZWdhdGVFcnJvcikgfTsKIAogQWdncmVnYXRlRXJyb3I6OkFnZ3Jl
Z2F0ZUVycm9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBz
dHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6QWdncmVnYXRl
RXJyb3IpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAppbmRl
eCBmNDczYjgxODFlYzJmMDJhMGNjNzhhMjZjMGMyMGRjOTYzMWZkYzc0Li5mY2FjZjFlMzIyZWIy
NzI3ODc0ZmYyNTI2MjQxZWQ3YmU5OGNlNTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3IuY3BwCkBAIC0zNSwzNyArMzUsMzcgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09iamVj
dCogY3JlYXRlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAg
ICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6
Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVy
cm9yU3RydWN0dXJlKCksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7Cisg
ICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpLCBtZXNzYWdlLCBhcHBlbmRl
ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCog
Y3JlYXRlRXZhbEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAg
ICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6
OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5l
cnJvclN0cnVjdHVyZShFcnJvclR5cGU6OkV2YWxFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBU
eXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVy
ZShFcnJvclR5cGU6OkV2YWxFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywg
RXJyb3JUeXBlOjpFdmFsRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlUmFuZ2VF
cnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCgh
bWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1
cmUoRXJyb3JUeXBlOjpSYW5nZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5n
LCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlw
ZTo6UmFuZ2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBl
OjpSYW5nZUVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVJlZmVyZW5jZUVycm9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJy
b3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNz
YWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OlJlZmVyZW5jZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5n
LCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlw
ZTo6UmVmZXJlbmNlRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9y
VHlwZTo6UmVmZXJlbmNlRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlU3ludGF4
RXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQo
IW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0
dXJlKEVycm9yVHlwZTo6U3ludGF4RXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhp
bmcsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0
LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JU
eXBlOjpTeW50YXhFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JU
eXBlOjpTeW50YXhFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVUeXBlRXJyb3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJv
ckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlciwgUnVudGltZVR5cGUgdHlwZSkKIHsK
ICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5j
ZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3Qt
PmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIs
IHR5cGUsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJy
b3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwgRXJyb3JUeXBlOjpU
eXBlRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JJbnN0YW5jZTo6U291cmNl
QXBwZW5kZXIgYXBwZW5kZXIpCkBAIC03Niw3ICs3Niw3IEBAIEpTT2JqZWN0KiBjcmVhdGVOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvcklu
c3RhCiBKU09iamVjdCogY3JlYXRlVVJJRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBh
cHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4g
RXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBn
bG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VVJJRXJyb3IpLCBtZXNzYWdl
LCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNl
OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+
ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpVUklFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBU
eXBlTm90aGluZywgRXJyb3JUeXBlOjpVUklFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBj
cmVhdGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5cGUgZXJyb3JU
eXBlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0xMTMsNyArMTEzLDcgQEAgSlNPYmplY3Qq
IGNyZWF0ZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9yVHlwZVdpdGhF
eHRlbnNpb24gZXJyb3IKIEpTT2JqZWN0KiBjcmVhdGVHZXR0ZXJUeXBlRXJyb3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIEFTU0VS
VCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIGF1dG8qIGVycm9yID0gRXJyb3JJbnN0YW5jZTo6
Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVy
cm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSk7CisgICAgYXV0byog
ZXJyb3IgPSBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qt
PnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3Ip
LCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IpOwog
ICAgIGVycm9yLT5zZXROYXRpdmVHZXR0ZXJUeXBlRXJyb3IoKTsKICAgICByZXR1cm4gZXJyb3I7
CiB9CkBAIC0yNzQsNyArMjc0LDcgQEAgRXhjZXB0aW9uKiB0aHJvd1R5cGVFcnJvcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QKIAogRXhjZXB0
aW9uKiB0aHJvd1N5bnRheEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93
U2NvcGUmIHNjb3BlKQogewotICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3Qs
IHNjb3BlLCBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsICJTeW50YXggZXJyb3IiX3Mp
KTsKKyAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRl
U3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKIEV4Y2VwdGlvbiogdGhyb3dTeW50YXhF
cnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMzE3LDYgKzMxNywxMSBAQCBKU09iamVjdCogY3JlYXRl
U3ludGF4RXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogICAgIHJldHVybiBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsIG1lc3Nh
Z2UsIG51bGxwdHIpOwogfQogCitKU09iamVjdCogY3JlYXRlU3ludGF4RXJyb3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICByZXR1cm4gY3JlYXRlU3ludGF4RXJyb3IoZ2xv
YmFsT2JqZWN0LCAiU3ludGF4IGVycm9yIl9zLCBudWxscHRyKTsKK30KKwogSlNPYmplY3QqIGNy
ZWF0ZVR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVy
biBjcmVhdGVUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiVHlwZSBlcnJvciJfcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAppbmRleCA2ZGFhMTU0MjE1NjY2MTBlNGFjZTZkZTMz
NWYzNGQzYmY3Yzc0NDRkLi5kYzgyNTI4MmMzNTY0ODcxMzI1NDU0NGJjOGQ4MTg4ODQwMGU0Mzhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmgKQEAgLTU1LDYgKzU1LDcgQEAg
SlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZUV2YWxFcnJvcihKU0dsb2JhbE9iamVj
dCosIGNvbnN0IFN0cmluZyYpOwogSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZVJh
bmdlRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmKTsKIEpTX0VYUE9SVF9QUklW
QVRFIEpTT2JqZWN0KiBjcmVhdGVSZWZlcmVuY2VFcnJvcihKU0dsb2JhbE9iamVjdCosIGNvbnN0
IFN0cmluZyYpOwogSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9y
KEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CitKU19FWFBPUlRfUFJJVkFURSBKU09i
amVjdCogY3JlYXRlU3ludGF4RXJyb3IoSlNHbG9iYWxPYmplY3QqKTsKIEpTX0VYUE9SVF9QUklW
QVRFIEpTT2JqZWN0KiBjcmVhdGVUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqKTsKIEpTX0VYUE9S
VF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25z
dCBTdHJpbmcmKTsKIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihKU0dsb2JhbE9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCAwZjJmNWEzMTg0MDJmYmI3
YzdkODgwMmI2ZDc4NDJlZmU0MDZjODQ2Li45YmU5MzBjZjFjM2M5YTQwZTYwODU5ODM1NThhMWE1
OWJjNzhiNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ckNvbnN0cnVjdG9yLmNwcApAQCAtNjAsMTQgKzYwLDE0IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjb25zdHJ1Y3RFcnJvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjCiAgICAgICAgIDogSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUo
Z2xvYmFsT2JqZWN0LCBuZXdUYXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCkt
PmVycm9yU3RydWN0dXJlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
CiAKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvcklu
c3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVs
bHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVy
cm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpF
cnJvciwgZmFsc2UpKSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsRXJyb3JD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
OwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3Ry
dWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5v
dGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNl
OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwg
VHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9CiAKIGJvb2wgRXJyb3JD
b25zdHJ1Y3Rvcjo6cHV0KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3Rh
bmNlLmNwcAppbmRleCAyZTRlYzM5ZjEyMDU4YjI1MDg3MjJlMGI4MjUyMjQ3YmViMDMxOWU2Li4w
Zjg2ZTIyYjkyZGRkNmQxMzk4NThiODZlNTZjZWFkY2FlY2UwZDQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMzQsMTggKzM0LDIz
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gRXJyb3JJbnN0YW5jZTo6c19p
bmZvID0geyAiRXJyb3IiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEVycm9ySW5zdGFuY2UpIH07CiAKLUVycm9ySW5zdGFu
Y2U6OkVycm9ySW5zdGFuY2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK0Vycm9ySW5z
dGFuY2U6OkVycm9ySW5zdGFuY2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXJyb3JU
eXBlIGVycm9yVHlwZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICAsIG1fZXJyb3JU
eXBlKGVycm9yVHlwZSkKKyAgICAsIG1fc3RhY2tPdmVyZmxvd0Vycm9yKGZhbHNlKQorICAgICwg
bV9vdXRPZk1lbW9yeUVycm9yKGZhbHNlKQorICAgICwgbV9lcnJvckluZm9NYXRlcmlhbGl6ZWQo
ZmFsc2UpCisgICAgLCBtX25hdGl2ZUdldHRlclR5cGVFcnJvcihmYWxzZSkKIHsKIH0KIAotRXJy
b3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJjZUFwcGVu
ZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKK0Vy
cm9ySW5zdGFuY2UqIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNWYWx1ZSBtZXNzYWdlLCBTb3VyY2VBcHBl
bmRlciBhcHBlbmRlciwgUnVudGltZVR5cGUgdHlwZSwgRXJyb3JUeXBlIGVycm9yVHlwZSwgYm9v
bCB1c2VDdXJyZW50RnJhbWUpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBTdHJpbmcgbWVz
c2FnZVN0cmluZyA9IG1lc3NhZ2UuaXNVbmRlZmluZWQoKSA/IFN0cmluZygpIDogbWVzc2FnZS50
b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IG51bGxwdHIpOwotICAgIHJldHVybiBjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJl
LCBtZXNzYWdlU3RyaW5nLCBhcHBlbmRlciwgdHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKKyAgICBy
ZXR1cm4gY3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZVN0cmluZywg
YXBwZW5kZXIsIHR5cGUsIGVycm9yVHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKIH0KIAogc3RhdGlj
IFN0cmluZyBhcHBlbmRTb3VyY2VUb0Vycm9yTWVzc2FnZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
RXJyb3JJbnN0YW5jZSogZXhjZXB0aW9uLCBCeXRlY29kZUluZGV4IGJ5dGVjb2RlSW5kZXgsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTEzMSw3ICsxMzYsMjUgQEAgdm9pZCBFcnJvckluc3Rh
bmNlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGNvbnN0IFMKIC8vIEJhc2VkIG9uIEVycm9yUHJvdG90eXBlJ3MgZXJyb3JQcm90b0Z1bmNUb1N0
cmluZygpLCBidXQgaXMgbW9kaWZpZWQgdG8KIC8vIGhhdmUgbm8gb2JzZXJ2YWJsZSBzaWRlIGVm
ZmVjdHMgdG8gdGhlIHVzZXIgKGkuZS4gZG9lcyBub3QgY2FsbCBwcm94aWVzLAogLy8gYW5kIGdl
dHRlcnMpLgotU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCitTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkTWVz
c2FnZVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisgICAgSW50ZWdyaXR5OjphdWRpdFN0cnVjdHVyZUlEKHZtLCBzdHJ1Y3R1cmVJRCgp
KTsKKworICAgIEpTVmFsdWUgbWVzc2FnZVZhbHVlOworICAgIGF1dG8gbWVzc2FnZVByb3BlcnRO
YW1lID0gdm0ucHJvcGVydHlOYW1lcy0+bWVzc2FnZTsKKyAgICBQcm9wZXJ0eVNsb3QgbWVzc2Fn
ZVNsb3QodGhpcywgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSwg
JnZtKTsKKyAgICBpZiAoSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzLCBnbG9iYWxP
YmplY3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSwgbWVzc2FnZVNsb3QpICYmIG1lc3NhZ2VTbG90Lmlz
VmFsdWUoKSkKKyAgICAgICAgbWVzc2FnZVZhbHVlID0gbWVzc2FnZVNsb3QuZ2V0VmFsdWUoZ2xv
YmFsT2JqZWN0LCBtZXNzYWdlUHJvcGVydE5hbWUpOworICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0
aW9uKCk7CisKKyAgICBpZiAoIW1lc3NhZ2VWYWx1ZSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygp
OworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbWVzc2FnZVZhbHVlLnRvV1RGU3RyaW5n
KGdsb2JhbE9iamVjdCkpOworfQorCitTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkTmFt
ZVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0xNTcsMjggKzE4MCwyMiBAQCBTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVk
VG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB9CiAgICAgc2NvcGUu
YXNzZXJ0Tm9FeGNlcHRpb24oKTsKIAotICAgIFN0cmluZyBuYW1lU3RyaW5nOwogICAgIGlmICgh
bmFtZVZhbHVlKQotICAgICAgICBuYW1lU3RyaW5nID0gIkVycm9yIl9zOwotICAgIGVsc2Ugewot
ICAgICAgICBuYW1lU3RyaW5nID0gbmFtZVZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7
Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmluZygpKTsKLSAgICB9Cisg
ICAgICAgIHJldHVybiAiRXJyb3IiX3M7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBu
YW1lVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KSk7Cit9CiAKLSAgICBKU1ZhbHVlIG1l
c3NhZ2VWYWx1ZTsKLSAgICBhdXRvIG1lc3NhZ2VQcm9wZXJ0TmFtZSA9IHZtLnByb3BlcnR5TmFt
ZXMtPm1lc3NhZ2U7Ci0gICAgUHJvcGVydHlTbG90IG1lc3NhZ2VTbG90KHRoaXMsIFByb3BlcnR5
U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnksICZ2bSk7Ci0gICAgaWYgKEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUHJvcGVy
dE5hbWUsIG1lc3NhZ2VTbG90KSAmJiBtZXNzYWdlU2xvdC5pc1ZhbHVlKCkpCi0gICAgICAgIG1l
c3NhZ2VWYWx1ZSA9IG1lc3NhZ2VTbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgbWVzc2FnZVBy
b3BlcnROYW1lKTsKLSAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOworU3RyaW5nIEVycm9y
SW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
Cit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBJbnRlZ3JpdHk6OmF1ZGl0U3RydWN0dXJlSUQo
dm0sIHN0cnVjdHVyZUlEKCkpOwogCi0gICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmc7Ci0gICAgaWYg
KCFtZXNzYWdlVmFsdWUpCi0gICAgICAgIG1lc3NhZ2VTdHJpbmcgPSBTdHJpbmcoKTsKLSAgICBl
bHNlIHsKLSAgICAgICAgbWVzc2FnZVN0cmluZyA9IG1lc3NhZ2VWYWx1ZS50b1dURlN0cmluZyhn
bG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmco
KSk7Ci0gICAgfQorICAgIFN0cmluZyBuYW1lU3RyaW5nID0gc2FuaXRpemVkTmFtZVN0cmluZyhn
bG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmluZygpKTsK
KworICAgIFN0cmluZyBtZXNzYWdlU3RyaW5nID0gc2FuaXRpemVkTWVzc2FnZVN0cmluZyhnbG9i
YWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmluZygpKTsKIAog
ICAgIGlmICghbmFtZVN0cmluZy5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIG1lc3NhZ2VTdHJp
bmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3Rh
bmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKaW5k
ZXggZGE2NmViNzZlN2FkZTkwZmQ0MWJiMTYyNzA3MjVhN2QxNDcwYWQzOC4uOTg3MTM1NzIxYjMw
NTY2MjMwZDI2MWM4MzNhZDhkZWNhNTQ2MTQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaApAQCAtMjAsNiArMjAsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIkVycm9yVHlwZS5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5j
bHVkZSAiUnVudGltZVR5cGUuaCIKICNpbmNsdWRlICJTdGFja0ZyYW1lLmgiCkBAIC01MywxNCAr
NTQsMTQgQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsK
ICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oRXJyb3JJbnN0YW5jZVR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKICAgICB9CiAKLSAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1l
VHlwZSB0eXBlID0gVHlwZU5vdGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKKyAg
ICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
U291cmNlQXBwZW5kZXIgYXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSB0eXBlID0gVHlw
ZU5vdGhpbmcsIEVycm9yVHlwZSBlcnJvclR5cGUgPSBFcnJvclR5cGU6OkVycm9yLCBib29sIHVz
ZUN1cnJlbnRGcmFtZSA9IHRydWUpCiAgICAgewotICAgICAgICBFcnJvckluc3RhbmNlKiBpbnN0
YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+KHZtLmhlYXAp
KSBFcnJvckluc3RhbmNlKHZtLCBzdHJ1Y3R1cmUpOworICAgICAgICBFcnJvckluc3RhbmNlKiBp
bnN0YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+KHZtLmhl
YXApKSBFcnJvckluc3RhbmNlKHZtLCBzdHJ1Y3R1cmUsIGVycm9yVHlwZSk7CiAgICAgICAgIGlu
c3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBhcHBlbmRl
ciwgdHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwogICAg
IH0KIAotICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmUqLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVu
dGltZVR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKKyAg
ICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
KiwgSlNWYWx1ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBl
ID0gVHlwZU5vdGhpbmcsIEVycm9yVHlwZSA9IEVycm9yVHlwZTo6RXJyb3IsIGJvb2wgdXNlQ3Vy
cmVudEZyYW1lID0gdHJ1ZSk7CiAKICAgICBib29sIGhhc1NvdXJjZUFwcGVuZGVyKCkgY29uc3Qg
eyByZXR1cm4gISFtX3NvdXJjZUFwcGVuZGVyOyB9CiAgICAgU291cmNlQXBwZW5kZXIgc291cmNl
QXBwZW5kZXIoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUFwcGVuZGVyOyB9CkBAIC03MCw2ICs3
MSw3IEBAIGNsYXNzIEVycm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAg
ICAgUnVudGltZVR5cGUgcnVudGltZVR5cGVGb3JDYXVzZSgpIGNvbnN0IHsgcmV0dXJuIG1fcnVu
dGltZVR5cGVGb3JDYXVzZTsgfQogICAgIHZvaWQgY2xlYXJSdW50aW1lVHlwZUZvckNhdXNlKCkg
eyBtX3J1bnRpbWVUeXBlRm9yQ2F1c2UgPSBUeXBlTm90aGluZzsgfQogCisgICAgRXJyb3JUeXBl
IGVycm9yVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3JUeXBlOyB9CiAgICAgdm9pZCBzZXRT
dGFja092ZXJmbG93RXJyb3IoKSB7IG1fc3RhY2tPdmVyZmxvd0Vycm9yID0gdHJ1ZTsgfQogICAg
IGJvb2wgaXNTdGFja092ZXJmbG93RXJyb3IoKSBjb25zdCB7IHJldHVybiBtX3N0YWNrT3ZlcmZs
b3dFcnJvcjsgfQogICAgIHZvaWQgc2V0T3V0T2ZNZW1vcnlFcnJvcigpIHsgbV9vdXRPZk1lbW9y
eUVycm9yID0gdHJ1ZTsgfQpAQCAtNzksNiArODEsOCBAQCBjbGFzcyBFcnJvckluc3RhbmNlIDog
cHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIGJvb2wgaXNOYXRpdmVHZXR0ZXJUeXBlRXJy
b3IoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUdldHRlclR5cGVFcnJvcjsgfQogCiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgU3RyaW5nIHNhbml0aXplZFRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0Kik7
CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHNhbml0aXplZE1lc3NhZ2VTdHJpbmcoSlNH
bG9iYWxPYmplY3QqKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgc2FuaXRpemVkTmFt
ZVN0cmluZyhKU0dsb2JhbE9iamVjdCopOwogICAgIAogICAgIFZlY3RvcjxTdGFja0ZyYW1lPiog
c3RhY2tUcmFjZSgpIHsgcmV0dXJuIG1fc3RhY2tUcmFjZS5nZXQoKTsgfQogCkBAIC04OCw3ICs5
Miw3IEBAIGNsYXNzIEVycm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAg
ICAgdm9pZCBmaW5hbGl6ZVVuY29uZGl0aW9uYWxseShWTSYpOwogCiBwcm90ZWN0ZWQ6Ci0gICAg
ZXhwbGljaXQgRXJyb3JJbnN0YW5jZShWTSYsIFN0cnVjdHVyZSopOworICAgIGV4cGxpY2l0IEVy
cm9ySW5zdGFuY2UoVk0mLCBTdHJ1Y3R1cmUqLCBFcnJvclR5cGUpOwogCiAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBw
ZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJl
bnRGcmFtZSA9IHRydWUpOwogCkBAIC0xMDgsMTAgKzExMiwxMSBAQCBjbGFzcyBFcnJvckluc3Rh
bmNlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIFN0cmluZyBtX3NvdXJjZVVSTDsK
ICAgICBTdHJpbmcgbV9zdGFja1N0cmluZzsKICAgICBSdW50aW1lVHlwZSBtX3J1bnRpbWVUeXBl
Rm9yQ2F1c2UgeyBUeXBlTm90aGluZyB9OwotICAgIGJvb2wgbV9zdGFja092ZXJmbG93RXJyb3Ig
eyBmYWxzZSB9OwotICAgIGJvb2wgbV9vdXRPZk1lbW9yeUVycm9yIHsgZmFsc2UgfTsKLSAgICBi
b29sIG1fZXJyb3JJbmZvTWF0ZXJpYWxpemVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1fbmF0aXZl
R2V0dGVyVHlwZUVycm9yIHsgZmFsc2UgfTsKKyAgICBFcnJvclR5cGUgbV9lcnJvclR5cGUgeyBF
cnJvclR5cGU6OkVycm9yIH07CisgICAgYm9vbCBtX3N0YWNrT3ZlcmZsb3dFcnJvciA6IDE7Cisg
ICAgYm9vbCBtX291dE9mTWVtb3J5RXJyb3IgOiAxOworICAgIGJvb2wgbV9lcnJvckluZm9NYXRl
cmlhbGl6ZWQgOiAxOworICAgIGJvb2wgbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3IgOiAxOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5kZXggNDAyMWZjN2UwYWRh
ZjdhMGE5ZTBlZjZjZmQyMjU4MzhiNWJmODc4My4uYWY3MjYyODMxY2ExYmI3NWM2YWU1NTQxMWRl
NGNkODVhODEzN2RhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApAQCAtNjk0LDcgKzY5NCw3IEBAIEpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1bWVudHND
YWxsZWVBbmRDYWxsZXIsIChKU0dsCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVu
Y01ha2VUeXBlRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9i
amVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpOwotICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JT
dHJ1Y3R1cmUsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBm
YWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRl
KGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIG51
bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlR5cGVFcnJvciwgZmFsc2UpKTsKIH0KIAog
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQcm90b0dldHRlciwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggN2NjMTFiNWY1ZTEyOTcyMjAxNmI4NjcxZjEzN2M2YmIxNzIxMzg0MC4uYjZlN2Vk
ZWZkNDJlZGM2MzVkOTBiN2UwZThjN2I0ZmMwYzI0M2QxZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAg
LTU4LDcgKzU4LDcgQEAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIE5hdGl2ZUVycm9yQ29uc3RydWN0
b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0SW1wbChKU0dsb2JhbE8KICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwogICAgIEFTU0VSVChlcnJvclN0cnVjdHVyZSk7CiAKLSAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlw
ZU5vdGhpbmcsIGZhbHNlKSkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0
dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZXJyb3JUeXBlLCBmYWxzZSkpKTsK
IH0KIAogdGVtcGxhdGU8RXJyb3JUeXBlIGVycm9yVHlwZT4KQEAgLTY2LDcgKzY2LDcgQEAgaW5s
aW5lIEVuY29kZWRKU1ZhbHVlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y2Fs
bEltcGwoSlNHbG9iYWxPYmplY3QKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmpl
Y3QtPmVycm9yU3RydWN0dXJlKGVycm9yVHlwZSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVy
ZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGVycm9yVHlwZSwgZmFsc2UpKTsKIH0K
IAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxFdmFsRXJyb3IsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcAppbmRleCAyNmYz
YjZhOGY5ZGI2NzhjZDk0ZDA1YWU4OGIxMWI4OWU2MWMwZWJjLi4wZGRiMmM2YTUwZjQ2YmM2MzY5
OTVjYTQ2ZDdmMThlNWIyNjg2M2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNhbGxUaHJvd0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW0KICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBmcm9tIElDLiBBbmQgd2Ug
ZG8gbm90IHdhbnQgdG8gaW5jbHVkZSB0aGlzIGZyYW1lIGluIEVycm9yJ3Mgc3RhY2suCiAgICAg
Y29uc3RleHByIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gZmFsc2U7Ci0gICAgdGhyb3dFeGNlcHRp
b24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgdm0sIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3Ip
LCBSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvciwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIHVzZUN1
cnJlbnRGcmFtZSkpOworICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIEVy
cm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPmVycm9y
U3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJy
b3IsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlR5cGVFcnJvciwgdXNlQ3VycmVu
dEZyYW1lKSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcAppbmRl
eCAzODM3M2E3NjBkNTlkMGVlZGI0OTRkYjg4ZDg1MjRmYWI5YTUxNTRlLi45ZWJkM2Q0NDZhOWRh
OWFkMTlkN2JhNDE5OTAwNjNmYzVhNjMyOGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcApAQCAt
NDEsNyArNDEsNyBAQCBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKiBKU1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsbwogfQogCiBKU1dlYkFzc2VtYmx5
Q29tcGlsZUVycm9yOjpKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBz
dHJ1Y3R1cmUsIEVycm9yVHlwZTo6RXJyb3IpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAKaW5kZXgg
ZWFkZTAzNDEzZTRjZTM2MGJhMDg5ZjhjNTNkMThjZjhkNmQ3MDIzNS4uOWIyMDA1OGVjZjM0YWY5
MWI2YjE4ZDE1ZjY1MTU3ODVjMjE3MmUyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAKQEAgLTQxLDcgKzQx
LDcgQEAgSlNXZWJBc3NlbWJseUxpbmtFcnJvciogSlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6Y3Jl
YXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKIH0KIAogSlNXZWJBc3NlbWJseUxpbmtFcnJv
cjo6SlNXZWJBc3NlbWJseUxpbmtFcnJvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQot
ICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBFcnJv
clR5cGU6OkVycm9yKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuY3BwCmluZGV4IGJlMWY5Mjg2
MDMwNDVkN2NmNzI5MzI0ZWU0YTc3YWU4M2ZjZTljYmUuLjE5MzNhNmUzODg4ZmJlYWNjZjA3YWMy
YjM3Yzc0NTA0ODRmYTUxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuY3BwCkBAIC00MSw3ICs0MSw3
IEBAIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IqIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6
OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAKIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3I6OkpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwg
RXJyb3JUeXBlOjpFcnJvcikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yLmNwcAppbmRleCA1Y2QwMDM1YTAxZmRiNzhkZGMzNWZjNDdiNmI4NTgwYmU0NWQzNTk3Li5j
M2EwZDM5N2Y1MDRlMjU4ZjFkNzBmOGI0ODJiNzlhMWQ5ZTcyNjZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNv
bXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNjUsNyArNjUsNyBAQCBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsTwogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQo
MCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+d2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNz
YWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJl
LCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2Up
KTsKIH0KIAogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlD
b21waWxlRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlKiB0aGlzUHJvdG90eXBlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJy
b3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCA5NDZkZWY0ZjExNTIyOWEyMjViZTkz
MmFjOWU2NDM1YjZjOGFiMmE5Li4yYzVmNmEyOTMxZjE1MjE1ODVhYWE5MzVlNTZiNGJkMmYxOWMx
NmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNjUsNyArNjUsNyBA
QCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxG
cmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2Jh
bE9iamVjdC0+d2ViQXNzZW1ibHlMaW5rRXJyb3JTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3Ry
dWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVy
cm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpF
cnJvciwgZmFsc2UpKTsKIH0KIAogV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3RvciogV2Vi
QXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIFdlYkFzc2VtYmx5TGlua0Vycm9yUHJvdG90eXBlKiB0aGlzUHJvdG90eXBlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50
aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCAzZGZkOTE1NjdiNjBh
NThkZDlhYTY4NDJmZjY3OTAyMWY1Y2I5MjUyLi5hODU2NjljNTE4YjFlOWFhNjhjOTVhZDA1NjZl
YmZkNmZjM2RmYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcApA
QCAtNjcsNyArNjcsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1i
bHlSdW50aW1lRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogewogICAgIEpTVmFsdWUg
bWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0
cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlSdW50aW1lRXJyb3JTdHJ1Y3R1cmUo
KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9i
YWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywg
ZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0
ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90
aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKIH0KIAogV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFdlYkFzc2VtYmx5UnVudGltZUVycm9y
UHJvdG90eXBlKiB0aGlzUHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYjMzYTM2OTE3
YmEyMjRiZGRmNjJkNjA1NzUwNDBkMmQ3ZWM5NmM5OC4uNWJjMWQ2ZTcwM2RiNjRmNmY3ZWU1NmNj
Yjc1YmNhYjYyYjk4YTg5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0zMCw2ICszMCw3IEBAIHNl
dChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAgIE1vZHVsZXMvZmV0Y2gv
RmV0Y2hCb2R5Q29uc3VtZXIuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmgK
KyAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgKICAgICBNb2R1bGVz
L2ZldGNoL0ZldGNoSGVhZGVycy5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaElkZW50aWZpZXIu
aAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaApAQCAtMjg4LDYgKzI4OSw3IEBAIHNl
dChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBiaW5kaW5ncy9qcy9XZWJD
b3JlSklUT3BlcmF0aW9ucy5oCiAgICAgYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250
cm9sbGVyLmgKICAgICBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5oCisgICAgYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0RmV0Y2hlci5oCiAKICAgICBicmlkZ2UvQnJpZGdlLmgKICAgICBicmlkZ2Uv
SWRlbnRpZmllclJlcC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGMzNWMwNmYwMzA2N2YxZGMwMmI1NDU2
OTc1M2E0OTc1MDdhOWQ1MmUuLjk3OTc0YmM2ODkzNzIyYjZjZGNiODJmMzM1Mjg2MTFmMTJkYzg4
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC02MzksNiArNjM5LDcgQEAgYmluZGluZ3MvanMvU3RydWN0
dXJlZENsb25lLmNwcAogYmluZGluZ3MvanMvV2ViQ29yZUpJVE9wZXJhdGlvbnMuY3BwCiBiaW5k
aW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcAogYmluZGluZ3MvanMvV2ViQ29yZVR5cGVk
QXJyYXlDb250cm9sbGVyLmNwcAorYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
LmNwcAogYmluZGluZ3MvanMvV2luZG93UHJveHkuY3BwCiBiaW5kaW5ncy9qcy9Xcml0YWJsZVN0
cmVhbS5jcHAKIGJyaWRnZS9JZGVudGlmaWVyUmVwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcxYWE4YzU4MWI2NWQ5NGNi
OWY1NDMyNDczMzlmODA3NWJmMGE2ZjIuLmYxMDcwYWZlMDVkNDU4MmEwYWQ3N2RjNjQ5YTQ2NTI4
NzE3ZDFlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTUwNzMsMTUgKzUwNzMsMTggQEAKIAkJRTMwNTkyNjQxRTI3QTNBRDAw
RDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDU5MjYyMUUyN0EzOEMwMEQ1N0M5OCAvKiBJbmxpbmVD
bGFzc2ljU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTMwNTkyNjgxRTI3QTNEMTAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDU5MjY2
MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwN0RFRDAxRDgxRTRDNzAwMTQx
Q0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFQzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCUUzMDdERUQxMUQ4MUU0Q0IwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzMDdERUM4MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFMzA3REVENTFEODFFNEYyMDAxNDFDQUYgLyogTG9hZGFibGVNb2R1bGVTY3JpcHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDdERUQz
MUQ4MUU0RUQwMDE0MUNBRiAvKiBMb2FkYWJsZU1vZHVsZVNjcmlwdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMTUwRUE3MURBNzIxOTMwMDE5
NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzE1MEVBNTFEQTcyMThEMDAxOTQwMTIgLyogRE9NSklUSGVscGVycy5o
ICovOyB9OwogCQlFMzIwMUMxQTFGOEU4MjEzMDA3NkEwMzIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzhE
MDYwOTFGOEU4MTE5MDA2NDlDRjIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMyM0NGRkExRTVBRjZB
RjAwRjBCNEEwIC8qIEpTRE9NQ29udmVydFByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMjNDRkY5MUU1QUY2QTUwMEYwQjRBMCAvKiBKU0RP
TUNvbnZlcnRQcm9taXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJRTM0MzJERTQyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlw
dExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oICov
OyB9OworCQlFMzQ3RTVGQTI1RDRGMDAwMDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0N0U1Rjgy
NUQ0RjAwMDAwRjE3QTVDIC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzUxODhCNDI1RDM4N0NGMDBBNzdB
RjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxl
U2NyaXB0TG9hZGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRTM1NjVCN0IxREMyRDZDOTAwMjE3REJEIC8qIEpTRXZlbnRDdXN0b20u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNEVFNDlG
MURDMkQ1NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3VzdG9tLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1ODAyQjYxREM4NDM1RDAwQTk3NzNDIC8q
IERPTUpJVElETFR5cGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmls
dGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTM1ODJDMjgyNTI3RjY2OTAwRDFCNzkwIC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MkMyNjI1MjdGNjY4
MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzVCOTA3RjIzRjYwQTUwMDAwMDExRkYgLyog
TG9jYWxpemVkRGV2aWNlTW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzNUI5MDdDMjNGNjA2NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VN
b2RlbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUUzNjQzMjFDMjVEMzdBNjcwMEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNjQzMjFBMjVEMzdBNjYw
MEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzc3RkU0RDFEQURFMTY1MDBDREQwMjUgLyogTm9k
ZUNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTNEMDQ5OTMxREFEQzA0NTAwNzE4RjNDIC8qIE5vZGVDb25zdGFudHMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzdDODY1MDFFQjYzRTNG
MDA4N0M2Q0EgLyogSlNET01Qcm9taXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzdDODY0RjFFQjYzRTJEMDA4N0M2Q0EgLyogSlNET01Qcm9taXNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM5
NjI4QkYyMzk1NzI4RjAwNjU4RUNEIC8qIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEJE
MjM5NTcyOEUwMDY1OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE2MjA3LDcg
KzE2MjEwLDYgQEAKIAkJRTMwNTkyNjYxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZl
dGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkU2NyaXB0RmV0
Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVDNjFEODFFNDQ4MDAx
NDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDdERUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUz
MDdERUM4MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDdERUQyMUQ4MUU0
RUQwMDE0MUNBRiAvKiBMb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBMb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzMDdERUQzMUQ4MUU0RUQwMDE0MUNBRiAvKiBMb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzE1MEVBNTFEQTcy
MThEMDAxOTQwMTIgLyogRE9NSklUSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01KSVRIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NjIyMCwxMiArMTYyMjIsMTcgQEAKIAkJRTMyOTI3NjMyMjU0M0Y1OTAwMzA4QTlBIC8qIFR5cGVk
T01DU1NVbml0VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwZWRPTUNTU1VuaXRWYWx1
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMjkyNzY2MjI1NDNGREUwMDMw
OEE5QSAvKiBET01SZWN0UmVhZE9ubHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUmVjdFJl
YWRPbmx5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMzNDgyNUUxREM5M0FB
MDAwOUM5NTQ0IC8qIERPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gRE9NSklUQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01KSVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUUzNDMyREUwMjVEMzc3RTIw
MDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzNDMyREUzMjVEMzc3RTMwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTM0N0U1RjgyNUQ0RjAwMDAwRjE3QTVDIC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyU2NyaXB0RmV0Y2hlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzRFRTQ5RjFEQzJENTc1MDBFQUE5RDMgLyogSlNFdmVu
dEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2ZW50Q3VzdG9t
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNTE4OEIzMjVEMzg3Q0YwMEE3N0FG
MyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVElETFR5cGVGaWx0ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODJDMjQyNTI3RjY2ODAwRDFCNzkw
IC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkNvcmVKSVRPcGVyYXRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTM1ODJDMjYyNTI3RjY2ODAwRDFCNzkwIC8qIFdlYkNvcmVKSVRPcGVyYXRpb25z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVKSVRPcGVyYXRpb25z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUI5MDdDMjNGNjA2NzcwMDAwMTFG
RiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzVCOTA3RTIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbGl6ZWREZXZpY2VNb2Rl
bC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM2NDMyMUEyNUQzN0E2NjAwRjkw
RTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2R1bGVTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVByb21pc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2Fk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NTFCQUQxNDVGMDBE
NjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjcwMjIsNyArMjcwMjksNiBAQAogCQkJCTJERkE0ODhFMURCNTQxQzIwMDM2MkI5OSAvKiBC
dWZmZXJTb3VyY2UuaCAqLywKIAkJCQlFMzA3REVDNjFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAqLywKIAkJCQlFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYg
LyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8sCi0JCQkJRTMwN0RFQzgxRDgxRTQ0ODAw
MTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovLAogCQkJCUUzMDU5
MjY1MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmNwcCAqLywKIAkJCQlF
MzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovLAogCQkJ
CUJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5o
ICovLApAQCAtMjcwOTYsNiArMjcxMDIsOCBAQAogCQkJCTRCREVBMzJEMjE4MDM0MDUwMDUyREZD
RCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwICovLAogCQkJCTRCREVBMzJCMjE4MDMz
RUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCAqLywKIAkJCQk3MDlBMDFG
RDFFM0QwQkNDMDA2QjBENEMgLyogTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oICovLAorCQkJCUUz
NjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLywKKwkJCQlF
MzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8s
CiAJCQkJNDFCNDU5RUQxRjU1RUJDNzAwMDBGNkZEIC8qIFJlYWRhYmxlU3RyZWFtLmNwcCAqLywK
IAkJCQk0MUI0NTlEQTFGNENBREI5MDAwMEY2RkQgLyogUmVhZGFibGVTdHJlYW0uaCAqLywKIAkJ
CQk0MThDMzk1RTFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlci5jcHAgKi8sCkBAIC0yNzEyNyw2ICsyNzEzNSw5IEBACiAJCQkJMEYwOTlEMDcxN0I5NjhB
MTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oICovLAogCQkJCTQ2MzUy
MUFDMjA4MTA5MEUwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5jcHAgKi8sCiAJCQkJNDYzNTIxQUEy
MDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi8sCisJCQkJRTM0MzJERTMyNUQzNzdF
MzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8sCisJCQkJRTM0MzJE
RTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oICovLAorCQkJ
CUUzNDdFNUY4MjVENEYwMDAwMEYxN0E1QyAvKiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggKi8sCiAJ
CQkJNDE0MThBMDMyNTY0M0UxMjAwMzYzNDE3IC8qIFdyaXRhYmxlU3RyZWFtLmNwcCAqLywKIAkJ
CQk0MTQxOEEwNDI1NjQzRTEzMDAzNjM0MTcgLyogV3JpdGFibGVTdHJlYW0uaCAqLywKIAkJCSk7
CkBAIC0zMTQwNSw3ICszMTQxNiw2IEBACiAJCQkJQkNCMTZDMUMwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTlGQkQ1RjE1RDJGNDY0MDA5NjQw
QTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMDdERUQwMUQ4
MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICov
LAotCQkJCUUzMDdERUQxMUQ4MUU0Q0IwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMDE4NDY5MEIwODYwMkEwMDRBODI1RiAv
KiBDYWNoZWRQYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlEMEVEQTc3NTE0M0UzMDNDMDAyOEUz
ODMgLyogQ2FjaGVkUmF3UmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjUzMzQ5MTcx
N0RFRTMwMEYyMDVGOSAvKiBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMzg4MCw2ICszMzg5MCw4IEBACiAJCQkJQzZENzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8q
IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzA5QTAxRkUx
RTNEMEJERDAwNkIwRDRDIC8qIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAzMiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMu
aCBpbiBIZWFkZXJzICovLAorCQkJCUUzNjQzMjFDMjVEMzdBNjcwMEY5MEUyQSAvKiBNb2R1bGVT
Y3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNTE4OEI0MjVEMzg3Q0YwMEE3N0FG
MyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIz
REM2MTI1MUYxMkQwMDNFRjI2OSAvKiBNb250aElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTM5NjI4QzEyMzk1NzQzMTAwNjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1MDMxQjQ2MEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTM1NTMyLDYgKzM1NTQ0LDcgQEAKIAkJCQkxOEY4MzFCODBGRDQ4
Qzc4MDBEOEM1NkIgLyogV29ya2VyTG9hZGVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJF
NDM0NjREMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkU0MzQ2NTAwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlFMzQzMkRFNDI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MUEwQjBFRUVDNzdBMDBG
NjEyMTMgLyogV29ya2VyTmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUNCMDUyNTFG
QjUxRjNBMDAwODlCOTcgLyogV29ya2VyTmV0d29ya0FnZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyRTQzNDY1MTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzU1NDEsNiArMzU1NTQsNyBAQAogCQkJCTQxNkUyOUE2MTAyRkE5NjIwMDdG
QzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2
NTMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE1QjgxQ0NGMUZBQTQ0REUwMDM3RDFFNiAvKiBXb3JrZXJSdW50aW1lQWdlbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUUzNDdFNUZBMjVENEYwMDAwMEYxN0E1QyAvKiBXb3JrZXJTY3JpcHRGZXRj
aGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q2QjM0OTBGNjExMDQ1MDBCNzlGRDEgLyogV29y
a2VyU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUE3NjgwNDBGRTcxMjY0MDBB
QjlDOEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQky
RTQzNDY1NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlw
dExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIuY3BwCmluZGV4IDM1MmRjYzRhY2Y3NTE3NmQ5OGFkMzQxMGJlMTUxNjA4MDEwODg1
MjQuLjI3N2Y2MmE3YzEzM2ZlMTU2YzZjY2U5ODU1MzU1MGVkYjEzNmQwMDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
LmNwcApAQCAtNDAsMTYgKzQwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPENh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUo
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYg
cHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVs
ZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQorUmVmPENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlcj4gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0
Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJh
bWV0ZXJzKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1vdmUocGFyYW1ldGVycykp
KTsKIH0KIAotQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlz
ZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1v
ZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQotICAgIDogbV9jbGllbnQoJmNsaWVu
dCkKLSAgICAsIG1fcHJvbWlzZSgmcHJvbWlzZSkKLSAgICAsIG1fc2NyaXB0RmV0Y2hlcihzY3Jp
cHRGZXRjaGVyKQotICAgICwgbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCitDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXI6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRT
Y3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJz
PiYmIHBhcmFtZXRlcnMpCisgICAgOiBNb2R1bGVTY3JpcHRMb2FkZXIoY2xpZW50LCBwcm9taXNl
LCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKQogewogfQogCkBAIC02MSwxNCAr
NTgsMTUgQEAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjp+Q2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyKCkKICAgICB9CiB9CiAKLWJvb2wgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiBzb3VyY2VVUkwpCitib29sIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcjo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIFVSTCYmIHNvdXJjZVVSTCkK
IHsKKyAgICBBU1NFUlQobV9wcm9taXNlKTsKICAgICBBU1NFUlQoIW1fY2FjaGVkU2NyaXB0KTsK
ICAgICBTdHJpbmcgaW50ZWdyaXR5ID0gbV9wYXJhbWV0ZXJzID8gbV9wYXJhbWV0ZXJzLT5pbnRl
Z3JpdHkoKSA6IFN0cmluZyB7IH07Ci0gICAgbV9jYWNoZWRTY3JpcHQgPSBtX3NjcmlwdEZldGNo
ZXItPnJlcXVlc3RNb2R1bGVTY3JpcHQoZG9jdW1lbnQsIHNvdXJjZVVSTCwgV1RGTW92ZShpbnRl
Z3JpdHkpKTsKKyAgICBtX2NhY2hlZFNjcmlwdCA9IHNjcmlwdEZldGNoZXIoKS5yZXF1ZXN0TW9k
dWxlU2NyaXB0KGRvY3VtZW50LCBzb3VyY2VVUkwsIFdURk1vdmUoaW50ZWdyaXR5KSk7CiAgICAg
aWYgKCFtX2NhY2hlZFNjcmlwdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1fc291cmNl
VVJMID0gc291cmNlVVJMOworICAgIG1fc291cmNlVVJMID0gV1RGTW92ZShzb3VyY2VVUkwpOwog
CiAgICAgLy8gSWYgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQsIHRoaXMgaW1tZWRpYXRl
bHkgY2FsbHMgbm90aWZ5RmluaXNoZWQuCiAgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCgq
dGhpcyk7CkBAIC04Myw3ICs4MSw3IEBAIHZvaWQgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpu
b3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IE5lCiAKICAgICBS
ZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKICAgICBp
ZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RG
TW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVkKCp0aGlz
LCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkpOwogCiAg
ICAgLy8gUmVtb3ZlIHRoZSBjbGllbnQgYWZ0ZXIgY2FsbGluZyBub3RpZnlGaW5pc2hlZCB0byBr
ZWVwIHRoZSBkYXRhIGJ1ZmZlciBpbgogICAgIC8vIENhY2hlZFJlc291cmNlIGFsaXZlIHdoaWxl
IG5vdGlmeUZpbmlzaGVkIHByb2Nlc3NlcyB0aGUgcmVzb3VyY2UuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCmluZGV4IDQz
YWJkODc1YjI0M2ZhZjVmY2Q0ZDk4ZWMzYzVkMjRlNzkwYjU3MmUuLmE0ODc1NWY5M2QwNWVmMzUz
ZDJiM2UyMjhkODIxOWZlODkxZTY3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0yNyw2ICsyNyw4IEBACiAK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1ZGUg
Ik1vZHVsZVNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTM0LDQyICszNiwy
OSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudDsKK2NsYXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKIGNsYXNzIENhY2hl
ZFNjcmlwdDsKLWNsYXNzIENhY2hlZFNjcmlwdEZldGNoZXI7CiBjbGFzcyBEZWZlcnJlZFByb21p
c2U7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OwogY2xhc3MgTW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzOwogCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIgZmlu
YWwgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+LCBwcml2YXRl
IENhY2hlZFJlc291cmNlQ2xpZW50IHsKK2NsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciBm
aW5hbCA6IHB1YmxpYyBNb2R1bGVTY3JpcHRMb2FkZXIsIHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VD
bGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
PiBjcmVhdGUoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNl
JiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYp
OworICAgIHN0YXRpYyBSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBjcmVhdGUoTW9kdWxl
U2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2FjaGVkU2NyaXB0RmV0Y2hl
ciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOwogCiAgICAgdmlydHVhbCB+Q2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyKCk7CiAKLSAgICBib29sIGxvYWQoRG9jdW1lbnQmLCBjb25z
dCBVUkwmIHNvdXJjZVVSTCk7CisgICAgYm9vbCBsb2FkKERvY3VtZW50JiwgVVJMJiYgc291cmNl
VVJMKTsKIAotICAgIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIoKSB7IHJldHVy
biBtX3NjcmlwdEZldGNoZXIuZ2V0KCk7IH0KICAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlw
dCgpIHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LmdldCgpOyB9Ci0gICAgTW9kdWxlRmV0Y2hQYXJh
bWV0ZXJzKiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9Ci0gICAg
Y29uc3QgVVJMJiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfQotCi0g
ICAgdm9pZCBjbGVhckNsaWVudCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV9jbGllbnQpOwot
ICAgICAgICBtX2NsaWVudCA9IG51bGxwdHI7Ci0gICAgfQorICAgIENhY2hlZFNjcmlwdEZldGNo
ZXImIHNjcmlwdEZldGNoZXIoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRGZXRj
aGVyJj4oTW9kdWxlU2NyaXB0TG9hZGVyOjpzY3JpcHRGZXRjaGVyKCkpOyB9CiAKIHByaXZhdGU6
Ci0gICAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNs
aWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKyAgICBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2FjaGVkU2NyaXB0RmV0
Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOwogCiAgICAgdm9pZCBub3Rp
ZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYsIGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYpIGZp
bmFsOwogCi0gICAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KiBtX2NsaWVudCB7IG51
bGxwdHIgfTsKLSAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBtX3Byb21pc2U7Ci0gICAgUmVm
PENhY2hlZFNjcmlwdEZldGNoZXI+IG1fc2NyaXB0RmV0Y2hlcjsKLSAgICBSZWZQdHI8TW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzPiBtX3BhcmFtZXRlcnM7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdDsKICAgICBVUkwgbV9zb3VyY2VVUkw7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODY4OGFk
OTBkYWUzZWNlOTQ5ZWEwOWIxZWZlZTVkYTI2Zjk0Yzc4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyOwotY2xhc3MgRGVmZXJyZWRQcm9taXNlOwotCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwgfkNhY2hlZE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudCgpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5p
c2hlZChDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImLCBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPikg
PSAwOwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2Fj
aGVkU2NyaXB0RmV0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRT
Y3JpcHRGZXRjaGVyLmNwcAppbmRleCBhNDMzNzU4NjViYmYxZWM1OTczYmYxNzJjOTFhMzg1MzIz
NGUzNzRkLi5kZjNjNmI2ZWJiODRhZjcyZWQyOTU1Zjk5MTFkMDdhODdhYjM1MzEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQ3LDYgKzQ4LDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRT
Y3JpcHRGZXRjaGVyOjpyZXF1ZXN0TW9kdWxlU2NyaXB0KERvY3UKIAogQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRTY3JpcHRGZXRjaGVyOjpyZXF1ZXN0U2NyaXB0V2l0
aENhY2hlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIGNvbnN0IFN0
cmluZyYgY3Jvc3NPcmlnaW5Nb2RlLCBTdHJpbmcmJiBpbnRlZ3JpdHksIE9wdGlvbmFsPFJlc291
cmNlTG9hZFByaW9yaXR5PiByZXNvdXJjZUxvYWRQcmlvcml0eSkgY29uc3QKIHsKKyAgICAvLyBX
aXRob3V0IHNjcmlwdGluZywgdGhlcmUgaXMgbm8gd2F5IHRvIHN0YXJ0IFdvcmtlcnMuCiAgICAg
aWYgKCFkb2N1bWVudC5zZXR0aW5ncygpLmlzU2NyaXB0RW5hYmxlZCgpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01FeGNlcHRpb25IYW5kbGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAppbmRleCBkZjdmM2Q3NDZkNWUzMmFiYWI1MTQ3NmM5ZGRh
Y2E2M2E0MzUxMzZjLi5lZWYyMTAzODg0OWZkODk4NDlhZmNlZDcwMzE4NWZmODk0YzQwYzcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRs
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhh
bmRsaW5nLmNwcApAQCAtNTIsNiArNTIsMjUgQEAgdm9pZCByZXBvcnRFeGNlcHRpb24oSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUKICAg
ICByZXBvcnRFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgZXhjZXB0aW9uLCBjYWNoZWRT
Y3JpcHQpOwogfQogCitTdHJpbmcgcmV0cmlldmVFcnJvck1lc3NhZ2VXaXRob3V0TmFtZShKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgVk0mIHZtLCBKU1ZhbHVlIGV4Y2VwdGlv
biwgQ2F0Y2hTY29wZSYgY2F0Y2hTY29wZSkKK3sKKyAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJr
aXQub3JnL2IvMTE1MDg3PiBXZWIgSW5zcGVjdG9yOiBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24g
c2hvdWxkIG5vdCBldmFsdWF0ZSBKYXZhU2NyaXB0IGhhbmRsaW5nIGV4Y2VwdGlvbnMKKyAgICAv
LyBJZiB0aGlzIGlzIGEgY3VzdG9tIGV4Y2VwdGlvbiBvYmplY3QsIGNhbGwgdG9TdHJpbmcgb24g
aXQgdG8gdHJ5IGFuZCBnZXQgYSBuaWNlIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGV4
Y2VwdGlvbi4KKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmIChhdXRvKiBlcnJvciA9
IGpzRHluYW1pY0Nhc3Q8RXJyb3JJbnN0YW5jZSo+KHZtLCBleGNlcHRpb24pKQorICAgICAgICBl
cnJvck1lc3NhZ2UgPSBlcnJvci0+c2FuaXRpemVkTWVzc2FnZVN0cmluZygmbGV4aWNhbEdsb2Jh
bE9iamVjdCk7CisgICAgZWxzZSBpZiAoYXV0byogZXJyb3IgPSBqc0R5bmFtaWNDYXN0PEpTRE9N
RXhjZXB0aW9uKj4odm0sIGV4Y2VwdGlvbikpCisgICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9y
LT53cmFwcGVkKCkubWVzc2FnZSgpOworICAgIGVsc2UKKyAgICAgICAgZXJyb3JNZXNzYWdlID0g
ZXhjZXB0aW9uLnRvV1RGU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKworICAgIC8vIFdl
IG5lZWQgdG8gY2xlYXIgYW55IG5ldyBleGNlcHRpb24gdGhhdCBtYXkgYmUgdGhyb3duIGluIHRo
ZSB0b1N0cmluZygpIGNhbGwgYWJvdmUuCisgICAgLy8gcmVwb3J0RXhjZXB0aW9uKCkgaXMgbm90
IHN1cHBvc2VkIHRvIGJlIG1ha2luZyBuZXcgZXhjZXB0aW9ucy4KKyAgICBjYXRjaFNjb3BlLmNs
ZWFyRXhjZXB0aW9uKCk7CisgICAgdm0uY2xlYXJMYXN0RXhjZXB0aW9uKCk7CisgICAgcmV0dXJu
IGVycm9yTWVzc2FnZTsKK30KKwogU3RyaW5nIHJldHJpZXZlRXJyb3JNZXNzYWdlKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBWTSYgdm0sIEpTVmFsdWUgZXhjZXB0aW9uLCBD
YXRjaFNjb3BlJiBjYXRjaFNjb3BlKQogewogICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5v
cmcvYi8xMTUwODc+IFdlYiBJbnNwZWN0b3I6IFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbiBzaG91
bGQgbm90IGV2YWx1YXRlIEphdmFTY3JpcHQgaGFuZGxpbmcgZXhjZXB0aW9ucwpAQCAtMTIxLDM2
ICsxNDAsNDUgQEAgdm9pZCByZXBvcnRDdXJyZW50RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0KQogCiBKU1ZhbHVlIGNyZWF0ZURPTUV4Y2VwdGlvbihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRXhjZXB0aW9uQ29kZSBlYywgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQogewotICAgIGlmIChlYyA9PSBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yKQor
ICAgIHN3aXRjaCAoZWMpIHsKKyAgICBjYXNlIEV4aXN0aW5nRXhjZXB0aW9uRXJyb3I6CiAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgLy8gRklYTUU6IEhhbmRsZSBvdGhlciBX
ZWJJREwgZXhjZXB0aW9uIHR5cGVzLgotICAgIGlmIChlYyA9PSBUeXBlRXJyb3IpIHsKKyAgICBj
YXNlIFR5cGVFcnJvcjoKICAgICAgICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgcmV0dXJuIGNyZWF0ZVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAgICAg
cmV0dXJuIGNyZWF0ZVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBtZXNzYWdlKTsKLSAg
ICB9CiAKLSAgICBpZiAoZWMgPT0gUmFuZ2VFcnJvcikgeworICAgIGNhc2UgUmFuZ2VFcnJvcjoK
ICAgICAgICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIGNyZWF0
ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIkJhZCB2YWx1ZSJfcyk7CiAgICAgICAg
IHJldHVybiBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIG1lc3NhZ2UpOwot
ICAgIH0KIAotICAgIGlmIChlYyA9PSBTdGFja092ZXJmbG93RXJyb3IpCisgICAgY2FzZSBKU1N5
bnRheEVycm9yOgorICAgICAgICBpZiAobWVzc2FnZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBy
ZXR1cm4gY3JlYXRlU3ludGF4RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgICAgIHJl
dHVybiBjcmVhdGVTeW50YXhFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBtZXNzYWdlKTsKKwor
ICAgIGNhc2UgU3RhY2tPdmVyZmxvd0Vycm9yOgogICAgICAgICByZXR1cm4gY3JlYXRlU3RhY2tP
dmVyZmxvd0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGlmIChlYyA9PSBPdXRPZk1l
bW9yeUVycm9yKQorCisgICAgY2FzZSBPdXRPZk1lbW9yeUVycm9yOgogICAgICAgICByZXR1cm4g
Y3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KTsKIAotICAgIC8vIEZJ
WE1FOiBBbGwgY2FsbGVycyB0byBjcmVhdGVET01FeGNlcHRpb24gbmVlZCB0byBwYXNzIGluIHRo
ZSBjb3JyZWN0IGdsb2JhbCBvYmplY3QuCi0gICAgLy8gRm9yIG5vdywgd2UncmUgZ29pbmcgdG8g
YXNzdW1lIHRoZSBsZXhpY2FsR2xvYmFsT2JqZWN0LiBXaGljaCBpcyB3cm9uZyBpbiBjYXNlcyBs
aWtlIHRoaXM6Ci0gICAgLy8gZnJhbWVzWzBdLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobnVsbCwg
bnVsbCk7IC8vIHRocm93cyBhbiBleGNlcHRpb24gd2hpY2ggc2hvdWxkIGhhdmUgdGhlIHN1YmZy
YW1lJ3MgcHJvdG90eXBlcy4KLSAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0g
ZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
LSAgICBKU1ZhbHVlIGVycm9yT2JqZWN0ID0gdG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QsIERPTUV4Y2VwdGlvbjo6Y3JlYXRlKGVjLCBtZXNzYWdlKSk7Ci0gICAgCi0gICAg
QVNTRVJUKGVycm9yT2JqZWN0KTsKLSAgICBhZGRFcnJvckluZm8obGV4aWNhbEdsb2JhbE9iamVj
dCwgYXNPYmplY3QoZXJyb3JPYmplY3QpLCB0cnVlKTsKLSAgICByZXR1cm4gZXJyb3JPYmplY3Q7
CisgICAgZGVmYXVsdDogeworICAgICAgICAvLyBGSVhNRTogQWxsIGNhbGxlcnMgdG8gY3JlYXRl
RE9NRXhjZXB0aW9uIG5lZWQgdG8gcGFzcyBpbiB0aGUgY29ycmVjdCBnbG9iYWwgb2JqZWN0Lgor
ICAgICAgICAvLyBGb3Igbm93LCB3ZSdyZSBnb2luZyB0byBhc3N1bWUgdGhlIGxleGljYWxHbG9i
YWxPYmplY3QuIFdoaWNoIGlzIHdyb25nIGluIGNhc2VzIGxpa2UgdGhpczoKKyAgICAgICAgLy8g
ZnJhbWVzWzBdLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobnVsbCwgbnVsbCk7IC8vIHRocm93cyBh
biBleGNlcHRpb24gd2hpY2ggc2hvdWxkIGhhdmUgdGhlIHN1YmZyYW1lJ3MgcHJvdG90eXBlcy4K
KyAgICAgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGRlcHJlY2F0ZWRHbG9i
YWxPYmplY3RGb3JQcm90b3R5cGUobGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgICAgIEpTVmFs
dWUgZXJyb3JPYmplY3QgPSB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwg
RE9NRXhjZXB0aW9uOjpjcmVhdGUoZWMsIG1lc3NhZ2UpKTsKKworICAgICAgICBBU1NFUlQoZXJy
b3JPYmplY3QpOworICAgICAgICBhZGRFcnJvckluZm8obGV4aWNhbEdsb2JhbE9iamVjdCwgYXNP
YmplY3QoZXJyb3JPYmplY3QpLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIGVycm9yT2JqZWN0Owor
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHsgfTsKIH0KIAogSlNWYWx1ZSBjcmVhdGVET01FeGNl
cHRpb24oSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEV4Y2VwdGlvbiYmIGV4
Y2VwdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuaAppbmRleCAyZDNlMzExZjYxZWViNjg1YWFjMzU1NDZhYWUxNjBkYTk3OTBl
ZjVmLi5kMWY2ZGU5Mzc0NzBjZTZkZjJjY2I2NDcyMjg0NzY2ZmQwMTk1ODIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCkBA
IC02NSw2ICs2NSw3IEBAIFdFQkNPUkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUgcmVqZWN0
UHJvbWlzZVdpdGhHZXR0ZXJUeXBlRXJyb3IoSlNDOjpKU0dsb2JhCiBXRUJDT1JFX0VYUE9SVCBK
U0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoVGhpc1R5cGVFcnJvcihEZWZlcnJl
ZFByb21pc2UmLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBvcGVyYXRp
b25OYW1lKTsKIFdFQkNPUkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUgcmVqZWN0UHJvbWlz
ZVdpdGhUaGlzVHlwZUVycm9yKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBjb25zdCBjaGFyKiBpbnRl
cmZhY2VOYW1lLCBjb25zdCBjaGFyKiBvcGVyYXRpb25OYW1lKTsKIAorU3RyaW5nIHJldHJpZXZl
RXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Vk0mLCBK
U0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBKU0M6OkNhdGNoU2NvcGUmKTsKIFN0cmluZyByZXRyaWV2
ZUVycm9yTWVzc2FnZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpWTSYsIEpTQzo6SlNWYWx1
ZSBleGNlcHRpb24sIEpTQzo6Q2F0Y2hTY29wZSYpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBv
cnRFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNWYWx1ZSBleGNlcHRpb24s
IENhY2hlZFNjcmlwdCogPSBudWxscHRyKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwb3J0RXhj
ZXB0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4Y2VwdGlvbiosIENhY2hlZFNjcmlw
dCogPSBudWxscHRyLCBFeGNlcHRpb25EZXRhaWxzKiA9IG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4IDU4YjdkZjc2
MGMwMGEzMWZmMDhlZDIyZGVlMjJhOGM3NDQzYWU4ZGQuLjlkNjk3ZDQ1OWI1NjM0NWNjODM5NjIw
MjY2NzZlMDBhOThiZjQ5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJKU1dvcmts
ZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlJlamVjdGVkUHJvbWlzZVRyYWNrZXIuaCIKICNp
bmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxl
TG9hZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlZENsb25lLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC00MjIs
NiArNDIzLDc5IEBAIEpTQzo6SlNQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVjdDo6aW5zdGFudGlh
dGVTdHJlYW1pbmcoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAjZW5kaWYKIAorc3RhdGlj
IFNjcmlwdE1vZHVsZUxvYWRlciogc2NyaXB0TW9kdWxlTG9hZGVyKEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAg
IGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTRE9NV2luZG93QmFzZT4odm0pKSB7CisgICAg
ICAgIGlmIChhdXRvIGRvY3VtZW50ID0ganNDYXN0PGNvbnN0IEpTRE9NV2luZG93QmFzZSo+KGds
b2JhbE9iamVjdCktPndyYXBwZWQoKS5kb2N1bWVudCgpKQorICAgICAgICAgICAgcmV0dXJuICZk
b2N1bWVudC0+bW9kdWxlTG9hZGVyKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1JlbW90ZURPTVdpbmRvd0Jhc2U+KHZt
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJp
dHM8SlNXb3JrZXJHbG9iYWxTY29wZUJhc2U+KHZtKSkKKyAgICAgICAgcmV0dXJuICZqc0Nhc3Q8
Y29uc3QgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCku
bW9kdWxlTG9hZGVyKCk7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNXb3JrbGV0
R2xvYmFsU2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29y
a2xldEdsb2JhbFNjb3BlQmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBwZWQoKS5tb2R1bGVMb2Fk
ZXIoKTsKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5pbmhlcml0czxKU0lEQlNlcmlhbGl6YXRpb25HbG9iYWxPYmplY3Q+KHZtKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKyAgICBkYXRhTG9nKCJVbmV4cGVjdGVkIGdsb2JhbCBv
YmplY3Q6ICIsIEpTVmFsdWUoZ2xvYmFsT2JqZWN0KSwgIlxuIik7CisgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNDOjpJZGVudGlm
aWVyIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBK
U0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBK
U0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhp
c09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsK
KyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQor
ICAgICAgICByZXR1cm4gbG9hZGVyLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVy
LCBtb2R1bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0
dXJuIHsgfTsKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6
Om1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
OjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBK
U0M6OkpTVmFsdWUgcGFyYW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7Cisg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpT
Qzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0
byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+ZmV0Y2goZ2xvYmFsT2JqZWN0LCBtb2R1bGVM
b2FkZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hlcikpOworICAgIEpTQzo6
SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOworICAgIHNj
b3BlLnJlbGVhc2UoKTsKKyAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVm
aW5lZCgpKTsKKyAgICByZXR1cm4gcHJvbWlzZTsKK30KKworSlNDOjpKU1ZhbHVlIEpTRE9NR2xv
YmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVl
IG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6Ompz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxv
YWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxv
YWRlci0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgbW9k
dWxlUmVjb3JkLCBzY3JpcHRGZXRjaGVyKTsKKyAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgp
OworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVySW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
OjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1l
LCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJj
ZU9yaWdpbikKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0
aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3Qp
OworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkp
CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbG9hZGVyLT5pbXBvcnRNb2R1bGUo
Z2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBhcmFtZXRlcnMsIHNvdXJj
ZU9yaWdpbikpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNl
U3RydWN0dXJlKCkpOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBwcm9taXNlLT5yZWplY3Qo
Z2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gcHJvbWlzZTsKK30KKwor
SlNDOjpKU09iamVjdCogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUltcG9y
dE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpK
U01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6
OkpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVy
KQoreworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBz
Y3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmNy
ZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1
bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0dXJuIGNvbnN0cnVj
dEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90
eXBlT2JqZWN0U3RydWN0dXJlKCkpOworfQorCiBKU0RPTUdsb2JhbE9iamVjdCYgY2FsbGVyR2xv
YmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUm
IGNhbGxGcmFtZSkKIHsKICAgICBjbGFzcyBHZXRDYWxsZXJHbG9iYWxPYmplY3RGdW5jdG9yIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCmluZGV4
IGI4NDA3MmRkZDc0NmIzZDZjNTEwNjBkOTA1MDFiNWNlYTFiNDk5YjEuLmY0OWE0Y2QyNTcxOTcx
MTg5MTdhN2Q3YTRiNmMwZTExZmM3NmJhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtMTA1LDYgKzEwNSwxMiBAQCBjbGFzcyBXRUJD
T1JFX0VYUE9SVCBKU0RPTUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0M6OkpTR2xvYmFsT2JqZWN0
IHsKICAgICBzdGF0aWMgSlNDOjpKU1Byb21pc2UqIGluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNPYmplY3QqKTsKICNlbmRpZgog
CisgICAgc3RhdGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpT
VmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2Uq
IG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3Rh
dGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2Fk
ZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIq
LCBKU0M6OkpTU3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYp
OworICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRh
UHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7CisKICAgICBK
U0RPTVN0cnVjdHVyZU1hcCBtX3N0cnVjdHVyZXM7CiAgICAgSlNET01Db25zdHJ1Y3Rvck1hcCBt
X2NvbnN0cnVjdG9yczsKICAgICBET01HdWFyZGVkT2JqZWN0U2V0IG1fZ3VhcmRlZE9iamVjdHM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRl
eCA1NjNlZmEwNTcxYjVkNDYyZDllNjQ1MDg5ZjBiZDhmNzdkMTlhNzY4Li4zMTJhMDExNThlOGMy
ODA4M2MwN2U0MmRiODcyNDVmZTRlNWM1N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTMzOSw1NCArMzM5LDQgQEAgdm9pZCBKU0RP
TVdpbmRvd0Jhc2U6OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0ZvcldpbmRvdyhET01XaW5k
b3cqIHdpbmRvdykKICAgICB9CiB9CiAKLUpTQzo6SWRlbnRpZmllciBKU0RPTVdpbmRvd0Jhc2U6
Om1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1l
LCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRj
aGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpT
RE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4g
ZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0
dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5yZXNvbHZlKGdsb2JhbE9iamVjdCwgbW9kdWxl
TG9hZGVyLCBtb2R1bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hlcik7Ci0g
ICAgcmV0dXJuIHsgfTsKLX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dC
YXNlOjptb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtl
eSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQot
ewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0g
SlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVm
UHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgp
KQotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50LT5tb2R1bGVMb2Fk
ZXIoKS5mZXRjaChnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBwYXJhbWV0
ZXJzLCBzY3JpcHRGZXRjaGVyKSk7Ci0gICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcHJvbWlz
ZSA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2U6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5pbnRl
cm5hbFByb21pc2VTdHJ1Y3R1cmUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgpOwotICAgIHByb21p
c2UtPnJlamVjdChnbG9iYWxPYmplY3QsIGpzVW5kZWZpbmVkKCkpOwotICAgIHJldHVybiBwcm9t
aXNlOwotfQotCi1KU0M6OkpTVmFsdWUgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJFdmFs
dWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2Fk
ZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1v
ZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5k
b3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFs
T2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxv
YWRlcigpLmV2YWx1YXRlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1v
ZHVsZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQo
KTsKLX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dCYXNlOjptb2R1bGVM
b2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNTdHJpbmcqIG1vZHVsZU5hbWUs
IEpTQzo6SlNWYWx1ZSBwYXJhbWV0ZXJzLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYgc291cmNl
T3JpZ2luKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlz
T2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAg
ICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5k
b2N1bWVudCgpKQotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50LT5t
b2R1bGVMb2FkZXIoKS5pbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1v
ZHVsZU5hbWUsIHBhcmFtZXRlcnMsIHNvdXJjZU9yaWdpbikpOwotICAgIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOwotICAgIHNjb3BlLnJlbGVh
c2UoKTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsK
LSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpKU09iamVjdCogSlNET01XaW5kb3dCYXNl
Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlND
OjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkLCBK
U0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNP
YmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwotICAg
IGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRv
Y3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuY3JlYXRl
SW1wb3J0TWV0YVByb3BlcnRpZXMoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtl
eSwgbW9kdWxlUmVjb3JkLCBzY3JpcHRGZXRjaGVyKTsKLSAgICByZXR1cm4gY29uc3RydWN0RW1w
dHlPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPm51bGxQcm90b3R5cGVP
YmplY3RTdHJ1Y3R1cmUoKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggM2VmOTgwZGQyN2Y2
YjIxMzk4NzAwOGJhNDc2YzhjYTY5ZjJmMGI2NC4uNTE0MmIxYzdkYzI1YzIyZmU5Nzg5NWU3NWFl
MjJlZjRkMWU1ODlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmgKQEAgLTk5LDEyICs5OSw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2lu
ZG93QmFzZSA6IHB1YmxpYyBKU0RPTUdsb2JhbE9iamVjdCB7CiBwcml2YXRlOgogICAgIHVzaW5n
IFJlc3BvbnNlQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgY2hhciosIHNpemVf
dCk+OwogCi0gICAgc3RhdGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNvbHZlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBK
U0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9k
dWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7Ci0g
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVl
LCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1
bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVM
b2FkZXIqLCBKU0M6OkpTU3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNvdXJjZU9y
aWdpbiYpOwotICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVhdGVJbXBv
cnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRl
ciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7Ci0K
ICAgICBSZWZQdHI8RE9NV2luZG93PiBtX3dyYXBwZWQ7CiAgICAgUmVmUHRyPEV2ZW50PiBtX2N1
cnJlbnRFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDJiMjZjOWY0ZWEyMTYyMDdkZTRjODY4
MjBiOGE4MWI2MDM1YjdlYi4uMmQ3OTNmZmYyMTg1M2E4YTFhNzg4MDY2NzI1MGY1N2U3NTJmZTNm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmNwcApAQCAtNTksMTEgKzU5LDExIEBAIGNvbnN0IEdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRh
YmxlCiAgICAgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsCiAgICAgJnF1ZXVlTWljcm90YXNrVG9F
dmVudExvb3AsCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsCi0gICAg
bnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0ciwgLy8gbW9k
dWxlTG9hZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZldGNoCi0gICAg
bnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMKLSAgICBu
dWxscHRyLCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRN
b2R1bGUsCisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNo
LAorICAgICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9k
dWxlTG9hZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAogICAgICZy
ZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhl
Y3V0aW9uT3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCAzNWZhNmUzMjc3ZmIwZDRiZTBlMGUxZWRj
NDM3MjJlZGFkZmM4YWYyLi45ZmFlYzk1OWMzOWQxNzQ4MTgxYzk4NjUwMDNkNWE4NmYxN2Y1ZTNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxT
Y29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEds
b2JhbFNjb3BlQmFzZS5jcHAKQEAgLTQ5LDExICs0OSwxMSBAQCBjb25zdCBHbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9k
VGFibAogICAgICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLAogICAgIG51bGxwdHIsIC8vIHF1ZXVl
TWljcm90YXNrVG9FdmVudExvb3AKICAgICAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGlt
ZW91dCwKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUKLSAgICBudWxs
cHRyLCAvLyBtb2R1bGVMb2FkZXJSZXNvbHZlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVy
RmV0Y2gKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVy
dGllcwotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckV2YWx1YXRlCisgICAgJm1vZHVsZUxv
YWRlckltcG9ydE1vZHVsZSwKKyAgICAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwKKyAgICAmbW9kdWxl
TG9hZGVyRmV0Y2gsCisgICAgJm1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVz
LAorICAgICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwKICAgICAmcHJvbWlzZVJlamVjdGlvblRyYWNr
ZXIsCiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJl
bnRTY3JpcHRFeGVjdXRpb25Pd25lciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
TW9kdWxlU2NyaXB0TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE5MTBlOTQ5YjdhYzFhMzhlZGVlY2Iw
M2RlYjZlZTg5NGNjZWIwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5j
bHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
U2NyaXB0RmV0Y2hlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OworCitjbGFzcyBN
b2R1bGVTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVTY3JpcHRMb2FkZXI+
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3JpcHRMb2FkZXIoKSA9IGRlZmF1bHQ7
CisKKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2NsaWVu
dCk7CisgICAgICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBKU0M6OlNjcmlw
dEZldGNoZXImIHNjcmlwdEZldGNoZXIoKSB7IHJldHVybiBtX3NjcmlwdEZldGNoZXIuZ2V0KCk7
IH0KKyAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSB7IHJldHVybiBtX3Bh
cmFtZXRlcnMuZ2V0KCk7IH0KKworcHJvdGVjdGVkOgorICAgIE1vZHVsZVNjcmlwdExvYWRlcihN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNl
LCBKU0M6OlNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBh
cmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICAgICAgOiBtX2NsaWVudCgmY2xpZW50KQorICAg
ICAgICAsIG1fcHJvbWlzZSgmcHJvbWlzZSkKKyAgICAgICAgLCBtX3NjcmlwdEZldGNoZXIoc2Ny
aXB0RmV0Y2hlcikKKyAgICAgICAgLCBtX3BhcmFtZXRlcnMoV1RGTW92ZShwYXJhbWV0ZXJzKSkK
KyAgICB7CisgICAgfQorCisgICAgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KiBtX2NsaWVudDsK
KyAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBtX3Byb21pc2U7CisgICAgUmVmPEpTQzo6U2Ny
aXB0RmV0Y2hlcj4gbV9zY3JpcHRGZXRjaGVyOworICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFt
ZXRlcnM+IG1fcGFyYW1ldGVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjk5NWY0OGVlM2QxZTAyYzFkOGM5YzlkYTJiZDU4MjM2ZjNiYTA3ZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyOworY2xhc3MgRGVmZXJyZWRQcm9taXNlOwor
CitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwg
fk1vZHVsZVNjcmlwdExvYWRlckNsaWVudCgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImLCBVUkwmJiwgUmVmPERlZmVycmVk
UHJvbWlzZT4pID0gMDsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGFhNWI4MGI1ODZiNzllMGU1NzUwMWNkNTEw
NzhkZjI1YTYyNWU1ZDkuLmJhM2U0MzVlNDk0ZDJjYzRiYmExMmJkZTRiMzgzY2JjNjAxZmQ1ODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVy
LmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ci5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZl
dGNoZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
QEAgLTQxLDYgKzQwLDkgQEAKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVk
ZSAiU3VicmVzb3VyY2VJbnRlZ3JpdHkuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRh
LmgiCisjaW5jbHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiV29y
a2VyU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlci5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbXBsZXRpb24uaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTW9k
dWxlUmVjb3JkLmg+CkBAIC01Miw4ICs1NCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIoRG9jdW1lbnQmIGRvY3VtZW50
KQotICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK1NjcmlwdE1vZHVsZUxvYWRlcjo6U2NyaXB0
TW9kdWxlTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE93bmVyVHlwZSBv
d25lclR5cGUpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fb3duZXJUeXBlKG93
bmVyVHlwZSkKIHsKIH0KIApAQCAtNjgsNyArNzEsNyBAQCBzdGF0aWMgYm9vbCBpc1Jvb3RNb2R1
bGUoSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5KQogICAgIHJldHVybiBpbXBvcnRlck1v
ZHVsZUtleS5pc1N5bWJvbCgpIHx8IGltcG9ydGVyTW9kdWxlS2V5LmlzVW5kZWZpbmVkKCk7CiB9
CiAKLXN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgc3BlY2lmaWVyLCBjb25zdCBVUkwmIGJh
c2VVUkwpCitzdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZp
ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU2NyaXB0TW9kdWxlTG9hZGVyOjpP
d25lclR5cGUgb3duZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3QgVVJMJiBi
YXNlVVJMKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L3dlYmFwcGFwaXMuaHRtbCNyZXNvbHZlLWEtbW9kdWxlLXNwZWNpZmllcgogCkBAIC03OSw3ICs4
MiwxMiBAQCBzdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZp
ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdAogICAgIGlmICghc3BlY2lmaWVyLnN0YXJ0
c1dpdGgoJy8nKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4vIikgJiYgIXNwZWNpZmllci5z
dGFydHNXaXRoKCIuLi8iKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJp
bmcoIk1vZHVsZSBzcGVjaWZpZXIsICciX3MsIHNwZWNpZmllciwgIicgZG9lcyBub3Qgc3RhcnQg
d2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiBSZWZlcmVuY2VkIGZyb20gIl9zLCBiYXNl
VVJMLnN0cmluZygpKSk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IGRvY3VtZW50LmNvbXBsZXRlVVJM
KHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgVVJMIHJlc3VsdDsKKyAgICBpZiAob3duZXJUeXBl
ID09IFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlOjpEb2N1bWVudCkKKyAgICAgICAgcmVz
dWx0ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmNvbXBsZXRlVVJMKHNwZWNpZmllciwg
YmFzZVVSTCk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBVUkwoYmFzZVVSTCwgc3BlY2lm
aWVyKTsKKwogICAgIGlmICghcmVzdWx0LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1vZHVsZSBuYW1lLCAnIl9zLCByZXN1bHQuc3RyaW5nKCks
ICInIGRvZXMgbm90IHJlc29sdmUgdG8gYSB2YWxpZCBVUkwuIl9zKSk7CiAgICAgcmV0dXJuIHJl
c3VsdDsKQEAgLTEwNyw3ICsxMTUsNyBAQCBKU0M6OklkZW50aWZpZXIgU2NyaXB0TW9kdWxlTG9h
ZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LAogICAgIFVS
TCBiYXNlVVJMID0gcmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTCgqanNHbG9iYWxPYmplY3QsIGlt
cG9ydGVyTW9kdWxlS2V5KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwog
Ci0gICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNw
ZWNpZmllciwgYmFzZVVSTCk7CisgICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lm
aWVyKG1fY29udGV4dCwgbV9vd25lclR5cGUsIHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYg
KCFyZXN1bHQpIHsKICAgICAgICAgSlNDOjp0aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9iamVjdCwg
c2NvcGUsIHJlc3VsdC5lcnJvcigpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTE2MSwxMyAr
MTY5LDE5IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0
Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPCiAgICAgaWYgKGF1dG8qIHNjcmlwdEZl
dGNoUGFyYW1ldGVycyA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hQYXJh
bWV0ZXJzKj4odm0sIHBhcmFtZXRlcnMpKQogICAgICAgICB0b3BMZXZlbEZldGNoUGFyYW1ldGVy
cyA9IHN0YXRpY19jYXN0PE1vZHVsZUZldGNoUGFyYW1ldGVycyo+KCZzY3JpcHRGZXRjaFBhcmFt
ZXRlcnMtPnBhcmFtZXRlcnMoKSk7CiAKLSAgICBhdXRvIGxvYWRlciA9IENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19jYXN0PENh
Y2hlZFNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hlcio+KHNj
cmlwdEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJz
KSk7Ci0gICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKLSAgICBpZiAoIWxvYWRl
ci0+bG9hZChtX2RvY3VtZW50LCBjb21wbGV0ZWRVUkwpKSB7Ci0gICAgICAgIGxvYWRlci0+Y2xl
YXJDbGllbnQoKTsKLSAgICAgICAgbV9sb2FkZXJzLnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOwot
ICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihkZWZlcnJlZC5nZXQoKSwgTW9k
dWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3Jp
cHQgZmFpbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybiBqc1Byb21pc2U7CisgICAgaWYgKG1fb3du
ZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgYXV0byBsb2FkZXIgPSBD
YWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpz
dGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1Njcmlw
dEZldGNoZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZl
dGNoUGFyYW1ldGVycykpOworICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkp
OworICAgICAgICBpZiAoIWxvYWRlci0+bG9hZChkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0
KSwgV1RGTW92ZShjb21wbGV0ZWRVUkwpKSkgeworICAgICAgICAgICAgbG9hZGVyLT5jbGVhckNs
aWVudCgpOworICAgICAgICAgICAgbV9sb2FkZXJzLnJlbW92ZShXVEZNb3ZlKGxvYWRlcikpOwor
ICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoZGVmZXJyZWQuZ2V0KCks
IE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUg
c2NyaXB0IGZhaWxlZC4iX3MpOworICAgICAgICAgICAgcmV0dXJuIGpzUHJvbWlzZTsKKyAgICAg
ICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gbG9hZGVyID0gV29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8V29y
a2VyU2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2Ny
aXB0RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMp
KTsKKyAgICAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgbG9h
ZGVyLT5sb2FkKG1fY29udGV4dCwgV1RGTW92ZShjb21wbGV0ZWRVUkwpKTsKICAgICB9CiAKICAg
ICByZXR1cm4ganNQcm9taXNlOwpAQCAtMTc2LDcgKzE5MCw3IEBAIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNH
bG9iYWxPCiBVUkwgU2NyaXB0TW9kdWxlTG9hZGVyOjptb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9i
amVjdCYganNHbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlWYWx1ZSkKIHsKICAg
ICBpZiAobW9kdWxlS2V5VmFsdWUuaXNTeW1ib2woKSkKLSAgICAgICAgcmV0dXJuIG1fZG9jdW1l
bnQudXJsKCk7CisgICAgICAgIHJldHVybiBtX2NvbnRleHQudXJsKCk7CiAKICAgICBBU1NFUlQo
bW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CiAgICAgcmV0dXJuIFVSTChVUkwoKSwgYXNTdHJp
bmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZSgmanNHbG9iYWxPYmplY3QpKTsKQEAgLTE4Nyw4ICsy
MDEsMTEgQEAgVVJMIFNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVS
TChKU0M6OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE8KICAgICBKU0M6OlZNJiB2bSA9IGpzR2xv
YmFsT2JqZWN0LnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCi0gICAgaWYgKGlzUm9vdE1vZHVsZShtb2R1bGVLZXlWYWx1ZSkpCi0gICAgICAgIHJldHVy
biBtX2RvY3VtZW50LmJhc2VVUkwoKTsKKyAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVsZUtleVZh
bHVlKSkgeworICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkK
KyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5iYXNlVVJM
KCk7CisgICAgICAgIHJldHVybiBtX2NvbnRleHQudXJsKCk7CisgICAgfQogCiAgICAgQVNTRVJU
KCFpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKTsKICAgICBBU1NFUlQobW9kdWxlS2V5VmFs
dWUuaXNTdHJpbmcoKSk7CkBAIC0yMTksOCArMjM2LDE0IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRN
b2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0
LCBKCiAgICAgaWYgKCFzb3VyY2VVUkwuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gSlNDOjp0
aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9iamVjdCwgc2NvcGUsICJNb2R1bGUga2V5IGlzIGFuIGlu
dmFsaWQgVVJMLiJfcyk7CiAKLSAgICBpZiAoYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LmZyYW1l
KCkpCi0gICAgICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUoc291cmNl
VVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpE
b2N1bWVudCkgeworICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb3duY2FzdDxEb2N1bWVudD4o
bV9jb250ZXh0KS5mcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5l
dmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsICptb2R1bGVSZWNvcmQpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIEFTU0VSVChpczxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZT4obV9jb250ZXh0KSk7
CisgICAgICAgIGlmIChhdXRvKiBzY3JpcHQgPSBkb3duY2FzdDxXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZT4obV9jb250ZXh0KS5zY3JpcHQoKSkKKyAgICAgICAgICAgIHJldHVybiBzY3JpcHQt
PmV2YWx1YXRlTW9kdWxlKCptb2R1bGVSZWNvcmQpOworICAgIH0KICAgICByZXR1cm4gSlNDOjpq
c1VuZGVmaW5lZCgpOwogfQogCkBAIC0yNDgsOCArMjcxLDEzIEBAIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6aW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGpzCiAgICAgVVJMIGJhc2VVUkw7CiAgICAgUmVmUHRyPEpTQzo6U2NyaXB0RmV0Y2hlcj4g
c2NyaXB0RmV0Y2hlcjsKICAgICBpZiAoc291cmNlT3JpZ2luLmlzTnVsbCgpKSB7Ci0gICAgICAg
IGJhc2VVUkwgPSBtX2RvY3VtZW50LmJhc2VVUkwoKTsKLSAgICAgICAgc2NyaXB0RmV0Y2hlciA9
IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7CisgICAg
ICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CisgICAgICAgICAg
ICBiYXNlVVJMID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuYmFzZVVSTCgpOworICAg
ICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShkb3du
Y2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5jaGFyc2V0KCkpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgYmFzZVVSTCA9IG1fY29udGV4dC51cmwoKTsKKyAgICAgICAgICAgIHNjcmlw
dEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpjcmVhdGUoaXM8V29ya2VyR2xvYmFsU2Nv
cGU+KG1fY29udGV4dCkgPyBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4obV9jb250ZXh0KS5j
cmVkZW50aWFscygpIDogRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbik7Cisg
ICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBiYXNlVVJMID0gVVJMKFVSTCgpLCBzb3Vy
Y2VPcmlnaW4uc3RyaW5nKCkpOwogICAgICAgICBpZiAoIWJhc2VVUkwuaXNWYWxpZCgpKQpAQCAt
MjU3LDE0ICsyODUsMTkgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9h
ZGVyOjppbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganMKIAogICAgICAgICBpZiAo
c291cmNlT3JpZ2luLmZldGNoZXIoKSkKICAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBzb3Vy
Y2VPcmlnaW4uZmV0Y2hlcigpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzY3JpcHRGZXRj
aGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKG1fZG9jdW1lbnQuY2hhcnNldCgpKTsK
KworICAgICAgICBpZiAoIXNjcmlwdEZldGNoZXIpIHsKKyAgICAgICAgICAgIGlmIChtX293bmVy
VHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KQorICAgICAgICAgICAgICAgIHNjcmlwdEZldGNo
ZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29u
dGV4dCkuY2hhcnNldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzY3Jp
cHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKGlzPFdvcmtlckdsb2JhbFNj
b3BlPihtX2NvbnRleHQpID8gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KG1fY29udGV4dCku
Y3JlZGVudGlhbHMoKSA6IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4pOwor
ICAgICAgICB9CiAgICAgfQogICAgIEFTU0VSVChiYXNlVVJMLmlzVmFsaWQoKSk7CiAgICAgQVNT
RVJUKHNjcmlwdEZldGNoZXIpOwogCiAgICAgYXV0byBzcGVjaWZpZXIgPSBtb2R1bGVOYW1lLT52
YWx1ZShqc0dsb2JhbE9iamVjdCk7Ci0gICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3Bl
Y2lmaWVyKG1fZG9jdW1lbnQsIHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgYXV0byByZXN1bHQg
PSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fY29udGV4dCwgbV9vd25lclR5cGUsIHNwZWNpZmll
ciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiByZWplY3RQcm9t
aXNlKGdsb2JhbE9iamVjdCwgVHlwZUVycm9yLCByZXN1bHQuZXJyb3IoKSk7CiAKQEAgLTI4OCw2
MiArMzIxLDEwNyBAQCBKU0M6OkpTT2JqZWN0KiBTY3JpcHRNb2R1bGVMb2FkZXI6OmNyZWF0ZUlt
cG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplYwogICAgIHJldHVybiBtZXRhUHJv
cGVydGllczsKIH0KIAotdm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlciYgbG9hZGVyLCBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBw
cm9taXNlKQordm9pZCBTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNj
cmlwdExvYWRlciYgbW9kdWxlU2NyaXB0TG9hZGVyLCBVUkwmJiBzb3VyY2VVUkwsIFJlZjxEZWZl
cnJlZFByb21pc2U+IHByb21pc2UpCiB7CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3Jp
cHQKIAotICAgIFVSTCBzb3VyY2VVUkwgPSBsb2FkZXIuc291cmNlVVJMKCk7Ci0gICAgaWYgKCFt
X2xvYWRlcnMucmVtb3ZlKCZsb2FkZXIpKQorICAgIGlmICghbV9sb2FkZXJzLnJlbW92ZSgmbW9k
dWxlU2NyaXB0TG9hZGVyKSkKICAgICAgICAgcmV0dXJuOwotICAgIGxvYWRlci5jbGVhckNsaWVu
dCgpOworICAgIG1vZHVsZVNjcmlwdExvYWRlci5jbGVhckNsaWVudCgpOwogCi0gICAgYXV0byYg
Y2FjaGVkU2NyaXB0ID0gKmxvYWRlci5jYWNoZWRTY3JpcHQoKTsKKyAgICBpZiAobV9vd25lclR5
cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBhdXRvJiBsb2FkZXIgPSBzdGF0
aWNfY2FzdDxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImPihtb2R1bGVTY3JpcHRMb2FkZXIpOwor
ICAgICAgICBhdXRvJiBjYWNoZWRTY3JpcHQgPSAqbG9hZGVyLmNhY2hlZFNjcmlwdCgpOwogCi0g
ICAgaWYgKGNhY2hlZFNjcmlwdC5yZXNvdXJjZUVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkpIHsK
LSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgIkNyb3NzLW9yaWdpbiBzY3JpcHQg
bG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQucmVzb3Vy
Y2VFcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CisgICAgICAgICAgICByZWplY3RUb1Byb3Bh
Z2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpX
YXNFcnJvcmVkLCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1Pcmln
aW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQogCi0gICAgaWYgKGNhY2hlZFNjcmlwdC5lcnJvck9jY3VycmVkKCkpIHsKLSAgICAg
ICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoKnByb21pc2UsIE1vZHVsZUZldGNoRmFp
bHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4i
X3MpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LmVy
cm9yT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJy
b3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIklt
cG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KIAotICAgIGlmIChjYWNoZWRTY3JpcHQud2FzQ2FuY2VsZWQoKSkgewotICAg
ICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcigqcHJvbWlzZSwgTW9kdWxlRmV0Y2hG
YWlsdXJlS2luZDo6V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNh
bmNlbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNoZWRT
Y3JpcHQud2FzQ2FuY2VsZWQoKSkgeworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3
b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2Vs
ZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIGlmICghTUlNRVR5cGVSZWdpc3RyeTo6aXNT
dXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUoY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5
cGUoKSkpIHsKLSAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKLSAgICAgICAg
Ly8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBo
ZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1F
IHR5cGUuCi0gICAgICAgIC8vIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGZldGNoaW5nIGEgY2xh
c3NpYyBzY3JpcHQgZG9lcyBub3QgaW5jbHVkZSBNSU1FIHR5cGUgY2hlY2tpbmcuIEluIGNvbnRy
YXN0LCBtb2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwgdG8gbG9hZCBpZiB0aGV5IGFyZSBub3Qgb2Yg
YSBjb3JyZWN0IE1JTUUgdHlwZS4KLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwg
bWFrZVN0cmluZygiJyIsIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCksICInIGlz
IG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KKyAgICAgICAgaWYgKCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3Jp
cHRNSU1FVHlwZShjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpKSkgeworICAgICAg
ICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBp
cy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKKyAgICAgICAgICAgIC8vIFRoZSBy
ZXN1bHQgb2YgZXh0cmFjdGluZyBhIE1JTUUgdHlwZSBmcm9tIHJlc3BvbnNlJ3MgaGVhZGVyIGxp
c3QgKGlnbm9yaW5nIHBhcmFtZXRlcnMpIGlzIG5vdCBhIEphdmFTY3JpcHQgTUlNRSB0eXBlLgor
ICAgICAgICAgICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBjbGFzc2lj
IHNjcmlwdCBkb2VzIG5vdCBpbmNsdWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29udHJhc3Qs
IG1vZHVsZSBzY3JpcHRzIHdpbGwgZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNv
cnJlY3QgTUlNRSB0eXBlLgorICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwg
bWFrZVN0cmluZygiJyIsIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCksICInIGlz
IG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBh
cmFtZXRlcnMoKSkgeworICAgICAgICAgICAgaWYgKCFtYXRjaEludGVncml0eU1ldGFkYXRhKGNh
Y2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkpKSB7CisgICAgICAgICAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiQ2Fubm90IGxvYWQgc2NyaXB0
ICIsIGludGVncml0eU1pc21hdGNoRGVzY3JpcHRpb24oY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJz
LT5pbnRlZ3JpdHkoKSkpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICBVUkwgcmVzcG9uc2VVUkwgPSBjYWNoZWRTY3JpcHQucmVz
cG9uc2UoKS51cmwoKTsKKyAgICAgICAgLy8gSWYgd2UgZG8gbm90IGhhdmUgcmVkaXJlY3Rpb24s
IHdlIG11c3QgcmVzZXJ2ZSB0aGUgc291cmNlIFVSTCdzIGZyYWdtZW50IGV4cGxpY2l0bHkgaGVy
ZSBzaW5jZSBSZXNvdXJjZVJlc3BvbnNlOjp1cmwoKSBpcyB0aGUgb25lIHdoZW4gd2UgZmlyc3Qg
Y2FjaGUgaXQgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJh
Y2sgZnJhZ21lbnRzIHRocm91Z2ggcmVkaXJlY3Rpb25zLgorICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCisgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0OTAKKyAgICAgICAgaWYgKCFjYWNo
ZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCkgJiYgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291
cmNlKCkgIT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7CisgICAg
ICAgICAgICBpZiAoc291cmNlVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQorICAgICAgICAg
ICAgICAgIHJlc3BvbnNlVVJMLnNldEZyYWdtZW50SWRlbnRpZmllcihzb3VyY2VVUkwuZnJhZ21l
bnRJZGVudGlmaWVyKCkpOworICAgICAgICB9CisKKyAgICAgICAgbV9yZXF1ZXN0VVJMVG9SZXNw
b25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSk7
CisgICAgICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RPTUdsb2JhbE9i
amVjdCYganNHbG9iYWxPYmplY3QpIHsKKyAgICAgICAgICAgIHJldHVybiBKU0M6OkpTU291cmNl
Q29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCksCisgICAgICAgICAgICAgICAgSlNDOjpT
b3VyY2VDb2RlIHsgU2NyaXB0U291cmNlQ29kZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNl
UHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1Nv
dXJjZUNvZGUoKSB9KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byYg
bG9hZGVyID0gc3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyJj4obW9kdWxlU2Ny
aXB0TG9hZGVyKTsKKyAgICAgICAgYXV0byYgd29ya2VyU2NyaXB0TG9hZGVyID0gbG9hZGVyLnNj
cmlwdExvYWRlcigpOwogCi0gICAgaWYgKGF1dG8qIHBhcmFtZXRlcnMgPSBsb2FkZXIucGFyYW1l
dGVycygpKSB7Ci0gICAgICAgIGlmICghbWF0Y2hJbnRlZ3JpdHlNZXRhZGF0YShjYWNoZWRTY3Jp
cHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkgewotICAgICAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiQ2Fubm90IGxvYWQgc2NyaXB0ICIsIGludGVncml0
eU1pc21hdGNoRGVzY3JpcHRpb24oY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHko
KSkpKTsKKyAgICAgICAgaWYgKHdvcmtlclNjcmlwdExvYWRlci5mYWlsZWQoKSkgeworICAgICAg
ICAgICAgaWYgKHdvcmtlclNjcmlwdExvYWRlci5lcnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7
CisgICAgICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5n
ZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBz
Y3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5
LiJfcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmVycm9yKCkuaXNDYW5jZWxsYXRpb24oKSkgewor
ICAgICAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2UuZ2V0
KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkLCAiSW1wb3J0aW5nIGEgbW9k
dWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4iX3MpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3Io
cHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9y
dGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KLSAgICB9CiAKLSAgICBVUkwgcmVzcG9uc2VVUkwgPSBjYWNoZWRTY3JpcHQucmVz
cG9uc2UoKS51cmwoKTsKLSAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2Ug
bXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNp
bmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNo
ZSBpdCB0byBNZW1vcnlDYWNoZS4KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNrIGZyYWdt
ZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMDQ5MAotICAgIGlmICghY2FjaGVkU2NyaXB0Lmhhc1JlZGlyZWN0
aW9ucygpICYmIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJjZSgpICE9IFJlc291cmNlUmVz
cG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgewotICAgICAgICBpZiAoc291cmNlVVJMLmhh
c0ZyYWdtZW50SWRlbnRpZmllcigpKQotICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21l
bnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgfQorICAg
ICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBl
KHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25zZU1JTUVUeXBlKCkpKSB7CisgICAgICAgICAgICAv
LyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwj
ZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAorICAgICAgICAgICAgLy8gVGhlIHJlc3VsdCBv
ZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdu
b3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCisgICAgICAg
ICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNzaWMgc2NyaXB0
IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFzdCwgbW9kdWxl
IHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEgY29ycmVjdCBN
SU1FIHR5cGUuCisgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3Ry
aW5nKCInIiwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlNRVR5cGUoKSwgIicgaXMgbm90
IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CiAKLSAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VV
Ukwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsKLSAgICBwcm9taXNlLT5yZXNvbHZl
V2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7Ci0g
ICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZt
KCksCi0gICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNh
Y2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVy
LnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOwotICAgIH0pOworICAgICAgICBV
UkwgcmVzcG9uc2VVUkwgPSB3b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VVUkwoKTsKKworICAg
ICAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRo
ZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVz
cG9uc2U6OnVybCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlD
YWNoZS4KKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVudHMgdGhyb3Vn
aCByZWRpcmVjdGlvbnMuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTg0MjAKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMDQ5MAorICAgICAgICBpZiAoIXdvcmtlclNjcmlwdExvYWRlci5pc1Jl
ZGlyZWN0ZWQoKSAmJiB3b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VTb3VyY2UoKSAhPSBSZXNv
dXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKKyAgICAgICAgICAgIGlmIChz
b3VyY2VVUkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgcmVzcG9u
c2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIo
KSk7CisgICAgICAgIH0KKworICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFk
ZChzb3VyY2VVUkwuc3RyaW5nKCksIHJlc3BvbnNlVVJMKTsKKyAgICAgICAgcHJvbWlzZS0+cmVz
b2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkg
eworICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxP
YmplY3Qudm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3Vy
Y2VDb2RlIHsgd29ya2VyU2NyaXB0TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJM
KSwgeyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2Ny
aXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkgfSk7CisgICAgICAgIH0pOworICAgIH0KIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxl
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIu
aAppbmRleCBkZTI5ZDJmNGJmMDk2YjYwYzM2OTk4MDMxNmMxNDg2YjI4MmFiZjA5Li5kZjM0ZDU1
MWExMWNkOThmNGUyMzZhMmFhMWY0ODI3OWQ5NjRjNjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaApAQCAtMjUsOCArMjUsOCBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIgotI2lu
Y2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIk1vZHVs
ZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDUsMTYgKzQ1LDE3IEBA
IGNsYXNzIFNvdXJjZU9yaWdpbjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1
bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKIAotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZpbmFs
IDogcHJpdmF0ZSBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFNjcmlwdE1vZHVsZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRlcihEb2N1bWVudCYpOworICAgIGVu
dW0gY2xhc3MgT3duZXJUeXBlIDogdWludDhfdCB7IERvY3VtZW50LCBXb3JrZXJPcldvcmtsZXQg
fTsKKyAgICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIE93bmVyVHlwZSk7CiAgICAgflNjcmlwdE1vZHVsZUxvYWRlcigpOwogCi0gICAgRG9jdW1l
bnQmIGRvY3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsgfQorICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogICAgIEpTQzo6SWRl
bnRpZmllciByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVy
KiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtl
eSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwogICAgIEpTQzo6SlNJbnRlcm5hbFByb21p
c2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlND
OjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1
ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTYzLDEzICs2NCwxNSBAQCBjbGFzcyBTY3JpcHRNb2R1bGVM
b2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7CiAg
ICAgSlNDOjpKU09iamVjdCogY3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNNb2R1
bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwogCiBwcml2YXRlOgotICAgIHZvaWQgbm90aWZ5Rmlu
aXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4p
IGZpbmFsOworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJM
JiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSBmaW5hbDsKKwogICAgIFVSTCBtb2R1bGVVUkwoSlND
OjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAgICAgVVJMIHJlc3BvbnNlVVJMRnJv
bVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAKLSAgICBE
b2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBtX2NvbnRl
eHQ7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1h
cDsKLSAgICBIYXNoU2V0PFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7
CisgICAgSGFzaFNldDxSZWY8TW9kdWxlU2NyaXB0TG9hZGVyPj4gbV9sb2FkZXJzOworICAgIE93
bmVyVHlwZSBtX293bmVyVHlwZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaAppbmRleCBjNzA0NjI2
ZmI3MzNkYjQ3MmJkYTUwMjM2MjQxYTZlNzQwZTI3ODJiLi4xMGZhN2U4YjQ0OWM4Yjg0OWViMzdj
YzFmMmM4NjZmYTg5M2FhZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRTb3VyY2VDb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0U291cmNlQ29kZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGUg
ewogICAgIHsKICAgICB9CiAKLSAgICBTY3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYgc291
cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgSlNDOjpT
b3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwgUmVmPENhY2hlZFNjcmlwdEZldGNo
ZXI+JiYgc2NyaXB0RmV0Y2hlcikKKyAgICBTY3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYg
c291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwgUmVmPEpTQzo6U2NyaXB0RmV0
Y2hlcj4mJiBzY3JpcHRGZXRjaGVyKQogICAgICAgICA6IG1fcHJvdmlkZXIoSlNDOjpTdHJpbmdT
b3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgSlNDOjpTb3VyY2VPcmlnaW4geyB1cmwsIFdU
Rk1vdmUoc2NyaXB0RmV0Y2hlcikgfSwgdXJsLnN0cmluZygpLCBzdGFydFBvc2l0aW9uLCBzb3Vy
Y2VUeXBlKSkKICAgICAgICAgLCBtX2NvZGUobV9wcm92aWRlci5jb3B5UmVmKCksIHN0YXJ0UG9z
aXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFz
ZWRJbnQoKSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzdiNTQ1OGFiNzg5YmU1
MTZjOTUyZGI1NjhiNTU3OTU1Nzk4Yzk2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcApAQCAtMCwwICsxLDg5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldvcmtlck1v
ZHVsZVNjcmlwdExvYWRlci5oIgorCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0RmV0Y2hlci5oIgor
I2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNp
bmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRl
ck9wdGlvbnMuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2Ny
aXB0TW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorI2luY2x1
ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXIu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
PiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBXb3JrZXJTY3JpcHRGZXRjaGVy
JiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRl
cnMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
KGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RGTW92ZShwYXJhbWV0ZXJzKSkpOwor
fQorCitXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcihN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNl
LCBXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQ
YXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCisgICAgOiBNb2R1bGVTY3JpcHRMb2FkZXIoY2xpZW50
LCBwcm9taXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKQorICAgICwgbV9z
Y3JpcHRMb2FkZXIoV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKSkKK3sKK30KKworV29ya2Vy
TW9kdWxlU2NyaXB0TG9hZGVyOjp+V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKCkKK3sKKyAgICBt
X3NjcmlwdExvYWRlci0+Y2FuY2VsKCk7Cit9CisKK2Jvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyOjpsb2FkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjZVVS
TCkKK3sKKyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUoc291cmNlVVJMKTsKKworICAgIFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0IHsgbV9zb3VyY2VVUkwgfTsKKyAgICByZXF1ZXN0LnNldFJlcXVl
c3RlcihSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6SW1wb3J0U2NyaXB0cyk7CisKKyAgICBG
ZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOworICAgIGZldGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hP
cHRpb25zOjpNb2RlOjpDb3JzOworICAgIGZldGNoT3B0aW9ucy5jYWNoZSA9IEZldGNoT3B0aW9u
czo6Q2FjaGU6OkRlZmF1bHQ7CisgICAgZmV0Y2hPcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRp
b25zOjpSZWRpcmVjdDo6Rm9sbG93OworICAgIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9IHN0
YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihzY3JpcHRGZXRjaGVyKCkpLmNyZWRlbnRp
YWxzKCk7CisgICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0
aW5hdGlvbjo6U2NyaXB0OworICAgIGF1dG8gY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1l
bnQgPSBjb250ZXh0LnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgp
ID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSA6IENvbnRl
bnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ2hpbGRTcmNEaXJlY3RpdmU7CisK
KyAgICBTdHJpbmcgdGFza01vZGUgPSAibG9hZE1vZHVsZXNJbldvcmtlck9yV29ya2xldE1vZGUi
X3M7CisgICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZN
b3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGlj
eUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgKnRoaXMsIFdURk1vdmUodGFz
a01vZGUpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXI6Om5vdGlmeUZpbmlzaGVkKCkKK3sKKyAgICBBU1NFUlQobV9wcm9taXNlKTsKKworICAg
IGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworICAgIGlmIChtX2NsaWVudCkK
KyAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVkKCp0aGlzLCBXVEZNb3ZlKG1fc291cmNl
VVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkpOworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYxMDA4MGVlOTMxYmZiMGIzM2E5ZjU0NzNiMjk3Y2EyZGMyZTQ3NTgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJNb2R1bGVTY3JpcHRMb2FkZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2Fk
ZXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsKK2NsYXNzIEpTRE9N
R2xvYmFsT2JqZWN0OworY2xhc3MgTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzOworY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKK2NsYXNz
IFdvcmtlclNjcmlwdExvYWRlcjsKKworY2xhc3MgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyIGZp
bmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRlciwgcHJpdmF0ZSBXb3JrZXJTY3JpcHRMb2Fk
ZXJDbGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyPiBjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwg
V29ya2VyU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOwor
CisgICAgdmlydHVhbCB+V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKCk7CisKKyAgICBib29sIGxv
YWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFVSTCYmIHNvdXJjZVVSTCk7CisKKyAgICBXb3Jr
ZXJTY3JpcHRMb2FkZXImIHNjcmlwdExvYWRlcigpIHsgcmV0dXJuIG1fc2NyaXB0TG9hZGVyLmdl
dCgpOyB9CisKK3ByaXZhdGU6CisgICAgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIFdvcmtlclNjcmlwdEZldGNoZXIm
LCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKworICAgIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbCB7
IH0KKyAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7CisKKyAgICBSZWY8V29ya2VyU2Ny
aXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsKKyAgICBVUkwgbV9zb3VyY2VVUkw7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRGZXRjaGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRGZXRjaGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZiNTRlZjg5NGI1MzNlYWZjZWJjMWEx
NGJmMjc2YTAzZWNiYTEwYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJMb2FkYWJsZVNjcmlwdC5oIgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1NjcmlwdEZldGNoZXIuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBDYWNoZWRTY3JpcHQ7CitjbGFzcyBEb2N1bWVudDsKKworY2xhc3MgV29ya2Vy
U2NyaXB0RmV0Y2hlciBmaW5hbCA6IHB1YmxpYyBKU0M6OlNjcmlwdEZldGNoZXIgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8V29ya2VyU2NyaXB0RmV0Y2hlcj4gY3JlYXRlKEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXb3JrZXJTY3JpcHRGZXRjaGVyKGNyZWRlbnRpYWxzKSk7CisgICAgfQorCisgICAg
RmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFscygpIGNvbnN0IHsgcmV0dXJuIG1f
Y3JlZGVudGlhbHM7IH0KKworICAgIHZvaWQgbm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVkU3Ry
aW5nSW1wbCYgbW9kdWxlS2V5KQorICAgIHsKKyAgICAgICAgbV9tb2R1bGVLZXkgPSAmbW9kdWxl
S2V5OworICAgICAgICBtX2lzTG9hZGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIG5vdGlm
eUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yJiYgZXJyb3IpCisgICAgeworICAgICAg
ICBtX2Vycm9yID0gV1RGTW92ZShlcnJvcik7CisgICAgICAgIG1faXNMb2FkZWQgPSB0cnVlOwor
ICAgIH0KKworICAgIHZvaWQgbm90aWZ5TG9hZFdhc0NhbmNlbGVkKCkKKyAgICB7CisgICAgICAg
IG1fd2FzQ2FuY2VsZWQgPSB0cnVlOworICAgICAgICBtX2lzTG9hZGVkID0gdHJ1ZTsKKyAgICB9
CisKKyAgICBib29sIGlzTG9hZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvYWRlZDsgfQorICAg
IE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpFcnJvcj4gZXJyb3IoKSBjb25zdCB7IHJldHVybiBt
X2Vycm9yOyB9CisgICAgYm9vbCB3YXNDYW5jZWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzQ2Fu
Y2VsZWQ7IH0KKyAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KCkgY29uc3QgeyByZXR1
cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0KKworcHJvdGVjdGVkOgorICAgIFdvcmtlclNjcmlwdEZl
dGNoZXIoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFscykKKyAgICAgICAgOiBt
X2NyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
RmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzOworICAgIFJlZlB0cjxVbmlx
dWVkU3RyaW5nSW1wbD4gbV9tb2R1bGVLZXk7CisgICAgT3B0aW9uYWw8TG9hZGFibGVTY3JpcHQ6
OkVycm9yPiBtX2Vycm9yOworICAgIGJvb2wgbV93YXNDYW5jZWxlZCB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX2lzTG9hZGVkIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDFiOWY3MjY2MzkyMTA4NWM1OGQwOGI1YjA3OTk2
NTY5ZmVhNjYyYWEuLjUwODBlYTg1OTU4OGZlOTM5YzdhMmM3ZjY1YTg4MWI0YTdiNDhhMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjE1LDcgKzYxNSw3IEBAIERvY3VtZW50OjpEb2N1
bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJMJiB1
cmwsIERvY3VtCiAgICAgLCBtX2RvY3VtZW50Q3JlYXRpb25UaW1lKE1vbm90b25pY1RpbWU6Om5v
dygpKQogI2VuZGlmCiAgICAgLCBtX3NjcmlwdFJ1bm5lcihtYWtlVW5pcXVlPFNjcmlwdFJ1bm5l
cj4oKnRoaXMpKQotICAgICwgbV9tb2R1bGVMb2FkZXIobWFrZVVuaXF1ZTxTY3JpcHRNb2R1bGVM
b2FkZXI+KCp0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9k
dWxlTG9hZGVyPigqdGhpcywgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGU6OkRvY3VtZW50
KSkKICNpZiBFTkFCTEUoWFNMVCkKICAgICAsIG1fYXBwbHlQZW5kaW5nWFNMVHJhbnNmb3Jtc1Rp
bWVyKCp0aGlzLCAmRG9jdW1lbnQ6OmFwcGx5UGVuZGluZ1hTTFRyYW5zZm9ybXNUaW1lckZpcmVk
KQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaAppbmRleCBmNmI1NThlYTgyZDc5
MzY4ZTYxYWRiMDYwY2YwYjRlYTFkYmVhMjBjLi4xN2RlNzQzNDcyZjc3MzFiMDNjOThmZWNlN2Ix
ZWIxYjk2MDFlNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmgKQEAgLTYxLDYgKzYx
LDcgQEAgZW51bSBFeGNlcHRpb25Db2RlIHsKICAgICAvLyBTaW1wbGUgZXhjZXB0aW9ucyAoaHR0
cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jaWRsLWV4Y2VwdGlvbnMpLgogICAgIFJhbmdl
RXJyb3IsCiAgICAgVHlwZUVycm9yLAorICAgIEpTU3ludGF4RXJyb3IsIC8vIERpZmZlcmVudCBm
cm9tIERPTSBTWU5UQVhfRVJSLgogCiAgICAgLy8gTm9uLXN0YW5kYXJkIGVycm9yLgogICAgIFN0
YWNrT3ZlcmZsb3dFcnJvciwKQEAgLTExMSw2ICsxMTIsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU+IHsKICAgICBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlOjpOb3RBbGxvd2VkRXJyb3IsCiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6UmFu
Z2VFcnJvciwKICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpUeXBlRXJyb3IsCisgICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZTo6SlNTeW50YXhFcnJvciwKICAgICBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlOjpTdGFja092ZXJmbG93RXJyb3IsCiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6
RXhpc3RpbmdFeGNlcHRpb25FcnJvcgogICAgID47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRh
YmxlTW9kdWxlU2NyaXB0LmNwcAppbmRleCA5YTI1YzE2NTg4ZWVjYWQ2NzhmYjkxMWVjODYyMmY0
MjQyNTkyYjVhLi40OGVjMDg1MWE0NTdkOWJhNDc0NzNmZWMyOGQ3YjQ5MzEyYjc4OGIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKQEAgLTg4LDE2ICs4
OCw0IEBAIHZvaWQgTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmV4ZWN1dGUoU2NyaXB0RWxlbWVudCYg
c2NyaXB0RWxlbWVudCkKICAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVNb2R1bGVTY3JpcHQoKnRo
aXMpOwogfQogCi12b2lkIExvYWRhYmxlTW9kdWxlU2NyaXB0Ojpsb2FkKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgVVJMJiByb290VVJMKQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3Vt
ZW50LmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KCp0
aGlzLCByb290VVJMLnN0cmluZygpLCBtX3BhcmFtZXRlcnMuY29weVJlZigpKTsKLX0KLQotdm9p
ZCBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCi17Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gZG9j
dW1lbnQuZnJhbWUoKSkKLSAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQo
KnRoaXMsIHNvdXJjZUNvZGUpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oCmluZGV4IGJiNzk5NTRkN2I5OWIwZWQwNmJmZTU1ZWY4NTRlY2NlMjFmMzU4
NzcuLmQyNTM1OTYzZjY0OGIwMmE4YTAxZmQ2M2JiMWUzODEzODZjZWU0MzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oCkBAIC01MCwxNSArNTAsMTQgQEAgY2xh
c3MgTG9hZGFibGVNb2R1bGVTY3JpcHQgZmluYWwgOiBwdWJsaWMgTG9hZGFibGVTY3JpcHQgewog
CiAgICAgdm9pZCBzZXRFcnJvcihFcnJvciYmKTsKIAotICAgIHZvaWQgbG9hZChEb2N1bWVudCYs
IGNvbnN0IFVSTCYgcm9vdFVSTCk7Ci0gICAgdm9pZCBsb2FkKERvY3VtZW50JiwgY29uc3QgU2Ny
aXB0U291cmNlQ29kZSYpOwotCiAgICAgdm9pZCBub3RpZnlMb2FkQ29tcGxldGVkKFVuaXF1ZWRT
dHJpbmdJbXBsJik7CiAgICAgdm9pZCBub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpF
cnJvciYmKTsKICAgICB2b2lkIG5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpOwogCiAgICAgVW5pcXVl
ZFN0cmluZ0ltcGwqIG1vZHVsZUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlS2V5LmdldCgp
OyB9CiAKKyAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMoKSB7IHJldHVybiBt
X3BhcmFtZXRlcnMuZ2V0KCk7IH0KKwogcHJpdmF0ZToKICAgICBMb2FkYWJsZU1vZHVsZVNjcmlw
dChjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGludGVncml0eSwgUmVmZXJyZXJQ
b2xpY3ksIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlLCBjb25zdCBTdHJpbmcmIGNoYXJz
ZXQsIGNvbnN0IEF0b21TdHJpbmcmIGluaXRpYXRvck5hbWUsIGJvb2wgaXNJblVzZXJBZ2VudFNo
YWRvd1RyZWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggMDU3NThi
NjAwYzc1MjJiNDdmMzY0YmE2YTE4ZDM1ZjE3MzExMDdmOS4uNWU5OWYwZjU3NzdiM2IyMTU4ZGQw
ZmE0YmMzODI3NzZjZGIzNDgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApA
QCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkxvYWRhYmxlQ2xhc3NpY1NjcmlwdC5oIgogI2lu
Y2x1ZGUgIkxvYWRhYmxlTW9kdWxlU2NyaXB0LmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3Ry
eS5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBlbmRp
bmdTY3JpcHQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNs
dWRlICJTVkdTY3JpcHRFbGVtZW50LmgiCkBAIC0zNTEsOCArMzUyLDExIEBAIGJvb2wgU2NyaXB0
RWxlbWVudDo6cmVxdWVzdE1vZHVsZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0
YXJ0UG9zaXRpb24pCiAgICAgICAgICAgICBzY3JpcHRDaGFyc2V0KCksCiAgICAgICAgICAgICBt
X2VsZW1lbnQubG9jYWxOYW1lKCksCiAgICAgICAgICAgICBtX2VsZW1lbnQuaXNJblVzZXJBZ2Vu
dFNoYWRvd1RyZWUoKSk7Ci0gICAgICAgIHNjcmlwdC0+bG9hZChtX2VsZW1lbnQuZG9jdW1lbnQo
KSwgbW9kdWxlU2NyaXB0Um9vdFVSTCk7CiAgICAgICAgIG1fbG9hZGFibGVTY3JpcHQgPSBXVEZN
b3ZlKHNjcmlwdCk7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVu
dCgpLmZyYW1lKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHNjcmlwdCA9IGRvd25jYXN0PExvYWRh
YmxlTW9kdWxlU2NyaXB0PigqbV9sb2FkYWJsZVNjcmlwdC5nZXQoKSk7CisgICAgICAgICAgICBm
cmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdChzY3JpcHQsIG1vZHVsZVNjcmlwdFJvb3RV
Ukwuc3RyaW5nKCksIG1ha2VSZWYoc2NyaXB0LnBhcmFtZXRlcnMoKSkpOworICAgICAgICB9CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMzY3LDggKzM3MSw5IEBAIGJvb2wgU2Ny
aXB0RWxlbWVudDo6cmVxdWVzdE1vZHVsZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlw
dFN0YXJ0UG9zaXRpb24pCiAgICAgaWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dJbmxp
bmVTY3JpcHQobV9lbGVtZW50LmRvY3VtZW50KCkudXJsKCkuc3RyaW5nKCksIG1fc3RhcnRMaW5l
TnVtYmVyLCBzb3VyY2VDb2RlLnNvdXJjZSgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSwgaGFz
S25vd25Ob25jZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHNjcmlwdC0+bG9hZCht
X2VsZW1lbnQuZG9jdW1lbnQoKSwgc291cmNlQ29kZSk7CiAgICAgbV9sb2FkYWJsZVNjcmlwdCA9
IFdURk1vdmUoc2NyaXB0KTsKKyAgICBpZiAoYXV0byogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1l
bnQoKS5mcmFtZSgpKQorICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdChk
b3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4oKm1fbG9hZGFibGVTY3JpcHQuZ2V0KCkpLCBz
b3VyY2VDb2RlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1RocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4IDI3MTdjODYxYzc0YjBmMmFlYmNkZTQwODcwMGUy
YTlhMDM3Mzc1OTUuLjFiNjUzMmMzYjBlYWE4MGQ5YmQ0NmM2ZDQzMjEzNjk2MjFjMDE5YmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTEwMSwxMCAr
MTAxLDEwIEBAIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIFRocmVhZGFibGVMb2FkZXJPcHRpb25z
Ojppc29sYXRlZENvcHkoKSBjb25zdAogfQogCiAKLVJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBU
aHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
VGhyZWFkYWJsZUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgU3RyaW5nJiYgcmVmZXJy
ZXIpCitSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmIGNs
aWVudCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9w
dGlvbnMmIG9wdGlvbnMsIFN0cmluZyYmIHJlZmVycmVyLCBTdHJpbmcmJiB0YXNrTW9kZSkKIHsK
ICAgICBpZiAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpIHx8IChpczxXb3JrbGV0R2xv
YmFsU2NvcGU+KGNvbnRleHQpICYmIGRvd25jYXN0PFdvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4
dCkud29ya2VyT3JXb3JrbGV0VGhyZWFkKCkpKQotICAgICAgICByZXR1cm4gV29ya2VyVGhyZWFk
YWJsZUxvYWRlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
Jj4oY29udGV4dCksIGNsaWVudCwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSwgV1RGTW92
ZShyZXF1ZXN0KSwgb3B0aW9ucywgV1RGTW92ZShyZWZlcnJlcikpOworICAgICAgICByZXR1cm4g
V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlJj4oY29udGV4dCksIGNsaWVudCwgV1RGTW92ZSh0YXNrTW9kZSksIFdURk1v
dmUocmVxdWVzdCksIG9wdGlvbnMsIFdURk1vdmUocmVmZXJyZXIpKTsKIAogICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IG51bGxwdHI7CiAgICAgaWYgKGlzPFdvcmtsZXRHbG9iYWxTY29wZT4oY29u
dGV4dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaAppbmRleCBjMmIy
NDVjM2ViYjhiYzkzMGVmNGQxNzJiYTE1MDlhMTc5ZjFkN2E2Li4xYWM3MDRiNGMzYjUwYjBmZmRh
MDM0MjhjM2NlN2RhMTQ5ODgyNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGhyZWFkYWJsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxl
TG9hZGVyLmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRhYmxlTG9hZGVyKTsKICAgICBwdWJsaWM6CiAgICAg
ICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIFJlc291cmNlUmVxdWVzdCYmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgY29u
c3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmKTsKLSAgICAgICAgc3RhdGljIFJlZlB0cjxUaHJl
YWRhYmxlTG9hZGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRocmVhZGFibGVM
b2FkZXJDbGllbnQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9w
dGlvbnMmLCBTdHJpbmcmJiByZWZlcnJlciA9IFN0cmluZygpKTsKKyAgICAgICAgc3RhdGljIFJl
ZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRo
cmVhZGFibGVMb2FkZXJDbGllbnQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVGhyZWFkYWJs
ZUxvYWRlck9wdGlvbnMmLCBTdHJpbmcmJiByZWZlcnJlciA9IFN0cmluZygpLCBTdHJpbmcmJiB0
YXNrTW9kZSA9IHsgfSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJc0RvbmUoKSA9
IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5jcHAKaW5kZXggYmY2ZTI3NmEzOWMyMzE1Zjg4OTBjNjMzMDMyOWQ2NDRkZmNhZWFhNS4u
MDRmZGY1ODI3NDNlYjk3M2I1MjVkNTRjOGE4ZDhmMzdkODI1MjBmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyLmNwcApAQCAtNzQsNiArNzQsOCBAQCBpbmxpbmUgV29ya2VyOjpXb3JrZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZQog
ICAgICwgbV9pZGVudGlmaWVyKCJ3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0
b3J5OjpjcmVhdGVJZGVudGlmaWVyKCkpCiAgICAgLCBtX2NvbnRleHRQcm94eShXb3JrZXJHbG9i
YWxTY29wZVByb3h5OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9ydW50aW1lRmxhZ3MocnVudGlt
ZUZsYWdzKQorICAgICwgbV90eXBlKG9wdGlvbnMudHlwZSkKKyAgICAsIG1fY3JlZGVudGlhbHMo
b3B0aW9ucy5jcmVkZW50aWFscykKIHsKICAgICBzdGF0aWMgYm9vbCBhZGRlZExpc3RlbmVyOwog
ICAgIGlmICghYWRkZWRMaXN0ZW5lcikgewpAQCAtMTE3LDEwICsxMTksMTUgQEAgRXhjZXB0aW9u
T3I8UmVmPFdvcmtlcj4+IFdvcmtlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIEpTQzo6UnUKIAogICAgIEZldGNoT3B0aW9ucyBmZXRjaE9wdGlvbnM7CiAgICAgZmV0
Y2hPcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW47CisgICAgaWYg
KHdvcmtlci0+bV90eXBlID09IFdvcmtlclR5cGU6Ok1vZHVsZSkKKyAgICAgICAgZmV0Y2hPcHRp
b25zLmNyZWRlbnRpYWxzID0gd29ya2VyLT5tX2NyZWRlbnRpYWxzOworICAgIGVsc2UKKyAgICAg
ICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6
U2FtZU9yaWdpbjsKICAgICBmZXRjaE9wdGlvbnMuY2FjaGUgPSBGZXRjaE9wdGlvbnM6OkNhY2hl
OjpEZWZhdWx0OwogICAgIGZldGNoT3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVk
aXJlY3Q6OkZvbGxvdzsKICAgICBmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlv
bnM6OkRlc3RpbmF0aW9uOjpXb3JrZXI7Ci0gICAgd29ya2VyLT5tX3NjcmlwdExvYWRlci0+bG9h
ZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZmV0Y2hP
cHRpb25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJz
TW9kZTo6QWxsLCB3b3JrZXIpOworICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3lu
Y2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9u
cyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6
OkFsbCwgd29ya2VyLmdldCgpLCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKwogICAg
IHJldHVybiB3b3JrZXI7CiB9CiAKQEAgLTIxOSw3ICsyMjYsMTMgQEAgdm9pZCBXb3JrZXI6Om5v
dGlmeUZpbmlzaGVkKCkKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSA9IFJlZmVy
cmVyUG9saWN5OjpFbXB0eVN0cmluZzsKICAgICBpZiAoYXV0byBwb2xpY3kgPSBwYXJzZVJlZmVy
cmVyUG9saWN5KG1fc2NyaXB0TG9hZGVyLT5yZWZlcnJlclBvbGljeSgpLCBSZWZlcnJlclBvbGlj
eVNvdXJjZTo6SFRUUEhlYWRlcikpCiAgICAgICAgIHJlZmVycmVyUG9saWN5ID0gKnBvbGljeTsK
LSAgICBtX2NvbnRleHRQcm94eS5zdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0TG9hZGVy
LT51cmwoKSwgbV9uYW1lLCBjb250ZXh0LT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVybCgp
KSwgaXNPbmxpbmUsIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgY29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgbV93b3JrZXJDcmVhdGlvblRpbWUsIHJlZmVycmVyUG9saWN5LCBtX3J1bnRpbWVG
bGFncyk7CisKKyAgICBVUkwgcmVzcG9uc2VVUkwgPSBtX3NjcmlwdExvYWRlci0+cmVzcG9uc2VV
UkwoKTsKKyAgICBpZiAoIW1fc2NyaXB0TG9hZGVyLT5pc1JlZGlyZWN0ZWQoKSAmJiBtX3Njcmlw
dExvYWRlci0+cmVzcG9uc2VTb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNl
cnZpY2VXb3JrZXIpIHsKKyAgICAgICAgaWYgKG1fc2NyaXB0TG9hZGVyLT51cmwoKS5oYXNGcmFn
bWVudElkZW50aWZpZXIoKSkKKyAgICAgICAgICAgIHJlc3BvbnNlVVJMLnNldEZyYWdtZW50SWRl
bnRpZmllcihtX3NjcmlwdExvYWRlci0+dXJsKCkuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAg
IH0KKyAgICBtX2NvbnRleHRQcm94eS5zdGFydFdvcmtlckdsb2JhbFNjb3BlKHJlc3BvbnNlVVJM
LCBtX25hbWUsIGNvbnRleHQtPnVzZXJBZ2VudChyZXNwb25zZVVSTCksIGlzT25saW5lLCBtX3Nj
cmlwdExvYWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVy
cywgbV9zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2Vy
Q3JlYXRpb25UaW1lLCByZWZlcnJlclBvbGljeSwgbV90eXBlLCBtX2NyZWRlbnRpYWxzLCBtX3J1
bnRpbWVGbGFncyk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRl
ZCgqY29udGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXIt
PnNjcmlwdCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXggNTNmNWU2ZmZmMjdj
OWZhM2U1YzBlMDFmMGY2YzQyYzZjYjZmOWQwZS4uMzhhNjIzYTk4ZGJhMzVmZjgwMTNjZDZmYzhj
ODVjODEwMjA1MDIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0yOSw5ICsyOSwxMSBA
QAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5j
bHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5o
IgogI2luY2x1ZGUgIlBvc3RNZXNzYWdlT3B0aW9ucy5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlw
dExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUuaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5o
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNTUsNiArNTcsOCBAQCBjbGFzcyBXb3Jr
ZXIgZmluYWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qs
IHByaXZhdGUgV29yawogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2VyKTsKIHB1Ymxp
YzoKICAgICBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgIFdvcmtlclR5cGUgdHlwZTsKKyAgICAg
ICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7CiAgICAgICAgIFN0cmluZyBu
YW1lOwogICAgIH07CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgT3B0aW9ucyYpOwpAQCAtNzksNiArODMsOCBAQCBjbGFzcyBXb3JrZXIgZmlu
YWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZh
dGUgV29yawogICAgIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZv
aWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKTsKICNlbmRpZgogCisgICAgV29ya2VyVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29u
c3QgT3B0aW9ucyYpOwogCkBAIC0xMTIsNiArMTE4LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDog
cHVibGljIEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdv
cmsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBIYXNoU2V0PFN0cmluZz4gbV90cmFuc2Zvcm1l
cnM7CiAjZW5kaWYKKyAgICBXb3JrZXJUeXBlIG1fdHlwZSB7IFdvcmtlclR5cGU6OkNsYXNzaWMg
fTsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzIHsgRmV0Y2hSZXF1
ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAppbmRleCA0NWQ2YTA4Njc4NTRlZTQwNGRlN2U3
ZDAxMjQ4Y2ViZjQ0ZGNhN2VkLi43MDIxNzk2ZGY1MDRhZGY4ZTZiOTU4OWFjZTlmMTQ0ODIxZjI5
NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCkBAIC0zOCw2ICszOCw4IEBACiB9Owog
CiBkaWN0aW9uYXJ5IFdvcmtlck9wdGlvbnMgeworICAgIFdvcmtlclR5cGUgdHlwZSA9ICJjbGFz
c2ljIjsKKyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscyA9ICJzYW1lLW9y
aWdpbiI7IC8vIGNyZWRlbnRpYWxzIGlzIG9ubHkgdXNlZCBpZiB0eXBlIGlzICJtb2R1bGUiCiAg
ICAgRE9NU3RyaW5nIG5hbWUgPSAiIjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggZGJhYjM0OGU4MGM5ZGU1MGJkMjE1Nzc3YTE0YTM5
YTBmNzBlNDljNy4uY2NkZTkwOWM3Y2I1MmU5Nzc3NGM1YjgxNTgyM2ViY2JiYjA3MGYzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTc0LDYg
Kzc0LDggQEAgV29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckdsb2JhbFNjb3BlKFdvcmtlclRocmVh
ZFR5cGUgdHlwZSwgY29uc3QgV29ya2VyUGFyYW1ldGUKICAgICAsIG1fcGVyZm9ybWFuY2UoUGVy
Zm9ybWFuY2U6OmNyZWF0ZSh0aGlzLCBwYXJhbXMudGltZU9yaWdpbikpCiAgICAgLCBtX3JlZmVy
cmVyUG9saWN5KHBhcmFtcy5yZWZlcnJlclBvbGljeSkKICAgICAsIG1fc2V0dGluZ3NWYWx1ZXMo
cGFyYW1zLnNldHRpbmdzVmFsdWVzKQorICAgICwgbV93b3JrZXJUeXBlKHBhcmFtcy53b3JrZXJU
eXBlKQorICAgICwgbV9jcmVkZW50aWFscyhwYXJhbXMuY3JlZGVudGlhbHMpCiB7CiAjaWYgIUVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uUHJveHkp
OwpAQCAtMjc0LDYgKzI3NiwxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXb3JrZXJHbG9iYWxTY29w
ZTo6aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscykKIHsKICAgICBBU1NF
UlQoY29udGVudFNlY3VyaXR5UG9saWN5KCkpOwogCisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd29ya2Vycy5odG1sI2ltcG9ydGluZy1zY3JpcHRzLWFuZC1s
aWJyYXJpZXMKKyAgICAvLyAxLiBJZiB3b3JrZXIgZ2xvYmFsIHNjb3BlJ3MgdHlwZSBpcyAibW9k
dWxlIiwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICAgIGlmIChtX3dvcmtlclR5cGUg
PT0gV29ya2VyVHlwZTo6TW9kdWxlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCAiaW1wb3J0U2NyaXB0cyBjYW5ub3QgYmUgdXNlZCBpZiB3b2Vya2VyIHR5cGUgaXMgXCJt
b2R1bGVcIiJfcyB9OworCiAgICAgVmVjdG9yPFVSTD4gY29tcGxldGVkVVJMczsKICAgICBjb21w
bGV0ZWRVUkxzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodXJscy5zaXplKCkpOwogICAgIGZvciAo
YXV0byYgZW50cnkgOiB1cmxzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmgKaW5kZXggNDZkNDlkOTRjNTIzOGU0Njg4ZDM5NWQ4N2MyMDYzZWI1NzIwZDFiZi4u
NzQ3OTVmNWMwZjlhMmEzNWQwMDkzMDEyYWQxOGY1N2UzMTdmODI3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMTIzLDYgKzEyMyw4IEBAIGNsYXNz
IFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNj
b3BlPiwgcHVibGljIEJhc2U2CiAKICAgICBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0aW5n
c1ZhbHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1ZXM7IH0KIAorICAg
IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBt
X2NyZWRlbnRpYWxzOyB9CisKIHByb3RlY3RlZDoKICAgICBXb3JrZXJHbG9iYWxTY29wZShXb3Jr
ZXJUaHJlYWRUeXBlLCBjb25zdCBXb3JrZXJQYXJhbWV0ZXJzJiwgUmVmPFNlY3VyaXR5T3JpZ2lu
PiYmLCBXb3JrZXJUaHJlYWQmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBJREJD
bGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKik7CiAKQEAgLTE2Myw4
ICsxNjUsNiBAQCBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBTdXBwbGVtZW50YWJs
ZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBCYXNlNgogICAgIG11dGFibGUgUmVmUHRyPFdv
cmtlckxvY2F0aW9uPiBtX2xvY2F0aW9uOwogICAgIG11dGFibGUgUmVmUHRyPFdvcmtlck5hdmln
YXRvcj4gbV9uYXZpZ2F0b3I7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlcj4gbV9zY3JpcHQ7Ci0KICAgICBib29sIG1faXNPbmxpbmU7CiAgICAg
Ym9vbCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeTsKIApAQCAt
MTg3LDYgKzE4Nyw4IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFN1cHBsZW1l
bnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIEJhc2U2CiAgICAgc3RkOjp1bmlxdWVf
cHRyPENTU1ZhbHVlUG9vbD4gbV9jc3NWYWx1ZVBvb2w7CiAgICAgUmVmZXJyZXJQb2xpY3kgbV9y
ZWZlcnJlclBvbGljeTsKICAgICBTZXR0aW5nczo6VmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7Cisg
ICAgV29ya2VyVHlwZSBtX3dvcmtlclR5cGU7CisgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFs
cyBtX2NyZWRlbnRpYWxzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaAppbmRleCA0MDAwM2Mz
ZTAxMDk5OTYwZjY0Nzg2MWU3MDE2ODdkMGUzNzFkNzJkLi5lZDY3M2FjOGY3YzBlZTU0YzA2MGVj
YjU5MjE2MzkwZWQ3MGZlMmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckdsb2JhbFNjb3BlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlUHJveHkuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBXb3JrZXJHbG9iYWxT
Y29wZVByb3h5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV29ya2VyR2xvYmFsU2NvcGVQcm94eSYg
Y3JlYXRlKFdvcmtlciYpOwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2Nv
cGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29u
c3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdp
biwgUmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0
IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ks
IE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIEZl
dGNoUmVxdWVzdENyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcG9zdE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1
bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDE5ZDRiZTY0
OTkyZjMwZDNjY2U3NjU0N2EzZDIyMThhOThjODQyYzMuLjc4ODM1ODdhN2FmNjIwOWUzZWNjOGU3
YjQxYmFkNDdhZGY2MjI0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFdvcmtlck1lc3NhZ2luZ1Byb3h5
Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8fCAoaXM8V29ya2VyR2xvYmFsU2Nv
cGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGRvd25jYXN0PFdvcmtlckdsb2JhbFNj
b3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJlYWQoKS50aHJlYWQoKSA9PSAmVGhy
ZWFkOjpjdXJyZW50KCkpKTsKIH0KIAotdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRX
b3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBz
b3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVm
ZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFn
cykKK3ZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29u
c3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5IHJlZmVycmVy
UG9saWN5LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNy
ZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCiB7CiAgICAgLy8gRklY
TUU6IFRoaXMgbmVlZCB0byBiZSByZXZpc2l0ZWQgd2hlbiB3ZSBzdXBwb3J0IG5lc3RlZCB3b3Jr
ZXIgb25lIGRheQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwpAQCAtODks
NyArODksNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNj
b3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogCiAgICAgU29ja2V0UHJvdmlkZXIq
IHNvY2tldFByb3ZpZGVyID0gZG9jdW1lbnQuc29ja2V0UHJvdmlkZXIoKTsKIAotICAgIFdvcmtl
clBhcmFtZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIsIHVzZXJB
Z2VudCwgaXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3JpZ2luLCByZWZl
cnJlclBvbGljeSwgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMoKSB9OworICAgIFdvcmtlclBhcmFt
ZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwg
aXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3JpZ2luLCByZWZlcnJlclBv
bGljeSwgd29ya2VyVHlwZSwgY3JlZGVudGlhbHMsIGRvY3VtZW50LnNldHRpbmdzVmFsdWVzKCkg
fTsKICAgICBhdXRvIHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHBhcmFt
cywgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBkb2N1bWVudC50
b3BPcmlnaW4oKSwgcHJveHksIHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxhZ3MpOwogCiAgICAg
d29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGM1YjU3NWI5ZTYxNWIzZjNmNTk2YmZj
M2RmNjgzYzg3N2NjNjJiYWIuLmQ5ZTgxZTE1N2EwZjQ4NTJlNDliNTlkMjU2NmE4YTgwZjVmODE4
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgK
QEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV29ya2VyTWVzc2FnaW5nUHJveHkgZmluYWwgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyTWVzc2FnaW5nUHIKIHByaXZhdGU6CiAgICAg
Ly8gSW1wbGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNjb3BlUHJveHkuCiAgICAgLy8gKE9u
bHkgdXNlIHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgd29ya2VyIG9iamVjdCB0aHJlYWQuKQotICAg
IHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgSlNDOjpSdW50aW1l
RmxhZ3MpIGZpbmFsOworICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwm
IHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
Ym9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBv
bGljeSwgV29ya2VyVHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIEpTQzo6UnVudGltZUZs
YWdzKSBmaW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckdsb2JhbFNjb3BlKCkgZmluYWw7
CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFsU2NvcGUoTWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHMmJikgZmluYWw7CiAgICAgdm9pZCBwb3N0VGFza1RvV29ya2VyR2xvYmFsU2NvcGUo
RnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+JiYpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNw
cAppbmRleCAyMzg0YTVhOGM3ZDJhMzAyZWVlNWNiNDA1ZTEwNWUwMjVjOTg0M2NjLi5mNGY0YjI3
NDY2ZjlhMzBiMjhiOGIyMWY2ZjJiZWY4YmRlOTM4NTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmgiCiAKKyNpbmNsdWRlICJTY3JpcHRNb2R1bGVMb2FkZXIuaCIKICNpbmNsdWRl
ICJXb3JrZXJFdmVudExvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oIgpAQCAtMzks
NiArNDAsNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV29ya2VyT3JXb3JrbGV0R2xv
YmFsU2NvcGUpOwogCiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0
R2xvYmFsU2NvcGUoV29ya2VyVGhyZWFkVHlwZSB0eXBlLCBSZWY8SlNDOjpWTT4mJiB2bSwgV29y
a2VyT3JXb3JrbGV0VGhyZWFkKiB0aHJlYWQpCiAgICAgOiBtX3NjcmlwdChtYWtlVW5pcXVlPFdv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+KHR5cGUsIFdURk1vdmUodm0pLCB0aGlzKSkK
KyAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9hZGVyPigqdGhp
cywgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGU6Oldvcmtlck9yV29ya2xldCkpCiAgICAg
LCBtX3RocmVhZCh0aHJlYWQpCiAgICAgLCBtX2luc3BlY3RvckNvbnRyb2xsZXIobWFrZVVuaXF1
ZTxXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyPigqdGhpcykpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKaW5kZXggNmMyNDRh
MGM0MjdlZTFjOGM2NWZkY2M3NjU5NTJmODc3ZmQ5YjE2Yi4uNTQ0ZjA0N2FlYzI3ODMyNzQ0ZDBh
OGE3MGFmN2U5MzljMzMwOTkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApAQCAtMzIsNiArMzIsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBFdmVudExvb3BUYXNrR3JvdXA7CitjbGFzcyBTY3JpcHRNb2R1
bGVMb2FkZXI7CiBjbGFzcyBXb3JrZXJFdmVudExvb3A7CiBjbGFzcyBXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyOwogY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjsKQEAgLTU0
LDYgKzU1LDggQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KIAogICAgIHVuc2lnbmVkIGxvbmcg
Y3JlYXRlVW5pcXVlSWRlbnRpZmllcigpIHsgcmV0dXJuIG1fdW5pcXVlSWRlbnRpZmllcisrOyB9
CiAKKyAgICBTY3JpcHRNb2R1bGVMb2FkZXImIG1vZHVsZUxvYWRlcigpIHsgcmV0dXJuICptX21v
ZHVsZUxvYWRlcjsgfQorCiAgICAgLy8gU2NyaXB0RXhlY3V0aW9uQ29udGV4dC4KICAgICBFdmVu
dExvb3BUYXNrR3JvdXAmIGV2ZW50TG9vcCgpIGZpbmFsOwogICAgIGJvb2wgaXNDb250ZXh0VGhy
ZWFkKCkgY29uc3QgZmluYWw7CkBAIC04OCw2ICs5MSw3IEBAIGNsYXNzIFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBSZWZD
b3VuCiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4gbV9zY3Jp
cHQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gbV9tb2R1bGVMb2Fk
ZXI7CiAgICAgV29ya2VyT3JXb3JrbGV0VGhyZWFkKiBtX3RocmVhZDsKICAgICBSZWZQdHI8V29y
a2VyRXZlbnRMb29wPiBtX2V2ZW50TG9vcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29w
VGFza0dyb3VwPiBtX2RlZmF1bHRUYXNrR3JvdXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBj
ZDRlYzI0NjgyNTI1YWFiYzY0MmQ4NzdhMGRhMDExZWJkZTExNDMxLi45MWE4YTg3OTQ1NmUwNjc2
MjI5YTg3MDhhODc1MDk5OTNhMmUyNDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM1LDE1
ICszNSwyMyBAQAogI2luY2x1ZGUgIkpTRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNQYWludFdv
cmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oIgorI2luY2x1ZGUgIk1vZHVs
ZUZldGNoUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNs
dWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29uc29sZUNsaWVu
dC5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Db21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRGVmZXJyZWRX
b3JrVGltZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb24uaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb25IZWxwZXJzLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvR0NBY3Rpdml0eUNhbGxiYWNrLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4K
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU01vZHVsZVJlY29yZC5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTTmF0aXZlU3RkRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU1NjcmlwdEZldGNoUGFyYW1ldGVycy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTU2NyaXB0RmV0Y2hlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZ0lubGlu
ZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjI4LDYgKzIzNiwyNDUgQEAgdm9pZCBX
b3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJiBzb3VyY2VDb2QKICAgICB9CiB9CiAKK3N0YXRpYyBJZGVudGlmaWVyIGpzVmFsdWVU
b01vZHVsZUtleShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIElkZW50
aWZpZXI6OmZyb21VaWQoanNDYXN0PFN5bWJvbCo+KHZhbHVlKS0+cHJpdmF0ZU5hbWUoKSk7Cisg
ICAgQVNTRVJUKHZhbHVlLmlzU3RyaW5nKCkpOworICAgIHJldHVybiBhc1N0cmluZyh2YWx1ZSkt
PnRvSWRlbnRpZmllcihsZXhpY2FsR2xvYmFsT2JqZWN0KTsKK30KKworSlNDOjpKU1ZhbHVlIFdv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKEpTQzo6SlNNb2R1
bGVSZWNvcmQmIG1vZHVsZVJlY29yZCkKK3sKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9n
bG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7
CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworICAgIHJldHVybiBtb2R1bGVSZWNvcmQu
ZXZhbHVhdGUoJmdsb2JhbE9iamVjdCk7Cit9CisKK01lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgV29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZVN5bmNocm9ub3VzbHkoV29y
a2VyU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYg
c291cmNlQ29kZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkKKyAgICAgICAg
cmV0dXJuIE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQ7CisKKyAgICBpbml0U2NyaXB0SWZOZWVkZWQo
KTsKKworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBlci5nZXQo
KTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9j
ayB7IHZtIH07CisKKyAgICBhdXRvIHByb3RlY3RvciA9IG1ha2VSZWYoc2NyaXB0RmV0Y2hlcik7
CisgICAgeworICAgICAgICBhdXRvJiBwcm9taXNlID0gSlNFeGVjU3RhdGU6OmxvYWRNb2R1bGUo
Z2xvYmFsT2JqZWN0LCBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgpLCBKU0M6OkpTU2NyaXB0RmV0
Y2hlcjo6Y3JlYXRlKHZtLCB7ICZzY3JpcHRGZXRjaGVyIH0pKTsKKworICAgICAgICBhdXRvJiBm
dWxmaWxsSGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxP
YmplY3QsIDEsIFN0cmluZygpLCBbcHJvdGVjdG9yXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgLT4gSlNDOjpFbmNvZGVkSlNWYWx1ZSB7CisgICAg
ICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAgICAgICBKU0xvY2tI
b2xkZXIgbG9jayB7IHZtIH07CisgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisgICAgICAgICAgICBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGpzVmFsdWVU
b01vZHVsZUtleShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOworICAgICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgICAgIHByb3Rl
Y3Rvci0+bm90aWZ5TG9hZENvbXBsZXRlZCgqbW9kdWxlS2V5LmltcGwoKSk7CisgICAgICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICB9KTsKKwor
ICAgICAgICBhdXRvJiByZWplY3RIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0
ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFtwcm90ZWN0b3JdKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSB7CisgICAgICAgICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAgICAgICBKU0xvY2tIb2xkZXIgbG9j
ayB7IHZtIH07CisgICAgICAgICAgICBKU1ZhbHVlIGVycm9yVmFsdWUgPSBjYWxsRnJhbWUtPmFy
Z3VtZW50KDApOworICAgICAgICAgICAgaWYgKGVycm9yVmFsdWUuaXNPYmplY3QoKSkgeworICAg
ICAgICAgICAgICAgIGF1dG8qIG9iamVjdCA9IEpTQzo6YXNPYmplY3QoZXJyb3JWYWx1ZSk7Cisg
ICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgZmFpbHVyZUtpbmRWYWx1ZSA9IG9iamVjdC0+Z2V0
RGlyZWN0KHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSY+KCp2bS5jbGllbnREYXRhKS5i
dWlsdGluTmFtZXMoKS5mYWlsdXJlS2luZFByaXZhdGVOYW1lKCkpKSB7CisgICAgICAgICAgICAg
ICAgICAgIC8vIFRoaXMgaXMgaG9zdCBwcm9wYWdhdGVkIGVycm9yIGluIHRoZSBtb2R1bGUgbG9h
ZGVyIHBpcGVsaW5lLgorICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PE1v
ZHVsZUZldGNoRmFpbHVyZUtpbmQ+KGZhaWx1cmVLaW5kVmFsdWUuYXNJbnQzMigpKSkgeworICAg
ICAgICAgICAgICAgICAgICBjYXNlIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQ6
CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0b3ItPm5vdGlmeUxvYWRGYWlsZWQoTG9h
ZGFibGVTY3JpcHQ6OkVycm9yIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2FkYWJs
ZVNjcmlwdDo6RXJyb3JUeXBlOjpDYWNoZWRTY3JpcHQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV1RGOjpudWxsb3B0CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIE1vZHVsZUZl
dGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJv
dGVjdG9yLT5ub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09Q
RSh2bSk7CisgICAgICAgICAgICBwcm90ZWN0b3ItPm5vdGlmeUxvYWRGYWlsZWQoTG9hZGFibGVT
Y3JpcHQ6OkVycm9yIHsKKyAgICAgICAgICAgICAgICBMb2FkYWJsZVNjcmlwdDo6RXJyb3JUeXBl
OjpDYWNoZWRTY3JpcHQsCisgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkNvbnNvbGVN
ZXNzYWdlIHsKKyAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVNvdXJjZTo6SlMsCisgICAgICAg
ICAgICAgICAgICAgIE1lc3NhZ2VMZXZlbDo6RXJyb3IsCisgICAgICAgICAgICAgICAgICAgIHJl
dHJpZXZlRXJyb3JNZXNzYWdlKCpnbG9iYWxPYmplY3QsIHZtLCBlcnJvclZhbHVlLCBzY29wZSks
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICB9KTsKKworICAgICAgICBw
cm9taXNlLnRoZW4oJmdsb2JhbE9iamVjdCwgJmZ1bGZpbGxIYW5kbGVyLCAmcmVqZWN0SGFuZGxl
cik7CisgICAgfQorICAgIG1fZ2xvYmFsU2NvcGUtPmV2ZW50TG9vcCgpLnBlcmZvcm1NaWNyb3Rh
c2tDaGVja3BvaW50KCk7CisKKyAgICAvLyBEcml2ZSBSdW5Mb29wIHVudGlsIHdlIGdldCBlaXRo
ZXIgb2YgIldvcmtlciBpcyB0ZXJtaW5hdGVkIiwgIkxvYWRpbmcgaXMgZG9uZSIsIG9yICJMb2Fk
aW5nIGlzIGZhaWxlZCIuCisgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IG1fZ2xvYmFsU2Nv
cGUtPndvcmtlck9yV29ya2xldFRocmVhZCgpLT5ydW5Mb29wKCk7CisKKyAgICAvLyBXZSBkbyBu
b3Qgd2FudCB0byByZWNlaXZlIG1lc3NhZ2VzIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIGFzeW5j
aHJvbm91cyByZXNvdXJjZSBsb2FkaW5nLgorICAgIC8vIE90aGVyd2lzZSwgYSB3b3JrZXIgZGlz
Y2FyZHMgc29tZSBtZXNzYWdlcyBmcm9tIHRoZSBtYWluIHRocmVhZCBoZXJlIGluIGEgcmFjeSB3
YXkuCisgICAgLy8gRm9yIGV4YW1wbGUsIHRoZSBtYWluIHRocmVhZCBjYW4gcG9zdE1lc3NhZ2Ug
anVzdCBhZnRlciBjcmVhdGluZyBhIFdvcmtlci4gSW4gdGhhdCBjYXNlLCBwb3N0TWVzc2FnZSdz
CisgICAgLy8gdGFzayBpcyBxdWV1ZWQgaW4gV29ya2VyUnVuTG9vcCBiZWZvcmUgc3RhcnQgcnVu
bmluZyBtb2R1bGUgc2NyaXB0cy4gVGhpcyB0YXNrIHNob3VsZCBub3QgYmUgZGlzY2FyZGVkCisg
ICAgLy8gaW4gdGhlIGZvbGxvd2luZyBkcml2aW5nIG9mIHRoZSBSdW5Mb29wIHdoaWNoIG1haW5s
eSBhdHRlbXB0IHRvIGNvbGxlY3QgaW5pdGlhbCBsb2FkIG9mIG1vZHVsZSBzY3JpcHRzLgorICAg
IFN0cmluZyB0YXNrTW9kZSA9ICJsb2FkTW9kdWxlc0luV29ya2VyT3JXb3JrbGV0TW9kZSJfczsK
KyAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VS
ZWNlaXZlZDsKKyAgICB3aGlsZSAoKCFwcm90ZWN0b3ItPmlzTG9hZGVkKCkgJiYgIXByb3RlY3Rv
ci0+d2FzQ2FuY2VsZWQoKSkgJiYgcmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpIHsK
KyAgICAgICAgcmVzdWx0ID0gcnVuTG9vcC5ydW5Jbk1vZGUobV9nbG9iYWxTY29wZSwgdGFza01v
ZGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQpCisgICAg
ICAgICAgICBtX2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2tw
b2ludCgpOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgV29ya2VyT3JX
b3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKFdvcmtlclNjcmlw
dEZldGNoZXImIHNjcmlwdEZldGNoZXIsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNv
ZGUsIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlKQoreworICAgIGlmIChpc0V4ZWN1
dGlvbkZvcmJpZGRlbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBpbml0U2NyaXB0SWZOZWVk
ZWQoKTsKKworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBlci5n
ZXQoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIg
bG9jayB7IHZtIH07CisKKyAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNl
cHRpb247CisgICAgSlNFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShnbG9iYWxPYmpl
Y3QsIElkZW50aWZpZXI6OmZyb21VaWQodm0sIHNjcmlwdEZldGNoZXIubW9kdWxlS2V5KCkpLCBq
c1VuZGVmaW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKChyZXR1cm5lZEV4Y2Vw
dGlvbiAmJiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVybmVkRXhjZXB0
aW9uKSkgfHwgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAgICAgIGZvcmJpZEV4ZWN1
dGlvbigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHJldHVybmVkRXhjZXB0
aW9uKSB7CisgICAgICAgIGlmIChtX2dsb2JhbFNjb3BlLT5jYW5JbmNsdWRlRXJyb3JEZXRhaWxz
KHNvdXJjZUNvZGUuY2FjaGVkU2NyaXB0KCksIHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCkpKSB7
CisgICAgICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBydW4g
YXJiaXRyYXJ5IGNvZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlvbi4K
KyAgICAgICAgICAgIC8vIERvIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgdG8gaGFuZGxlIHRoYXQg
cHJvcGVybHksIGlmIGl0LCBzYXksIHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlvbj8KKyAgICAgICAg
ICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAgKnJldHVy
bmVkRXhjZXB0aW9uTWVzc2FnZSA9IHJldHVybmVkRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3Ry
aW5nKCZnbG9iYWxPYmplY3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gT3Zl
cndyaXRlIHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBlcnJvci4KKyAgICAgICAg
ICAgIFN0cmluZyBnZW5lcmljRXJyb3JNZXNzYWdlIHsgIlNjcmlwdCBlcnJvci4iX3MgfTsKKyAg
ICAgICAgICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisgICAgICAgICAgICAgICAg
KnJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IGdlbmVyaWNFcnJvck1lc3NhZ2U7CisgICAgICAg
IH0KKyAgICB9Cit9CisKK3ZvaWQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9h
ZEFuZEV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgbW9kdWxlVVJMLCBGZXRjaE9wdGlvbnM6OkNy
ZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4
Y2VwdGlvbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGlzRXhlY3V0aW9u
Rm9yYmlkZGVuKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgTm90
QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaW5pdFNjcmlw
dElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdy
YXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2Nr
SG9sZGVyIGxvY2sgeyB2bSB9OworCisgICAgYXV0byBzY3JpcHRGZXRjaGVyID0gV29ya2VyU2Ny
aXB0RmV0Y2hlcjo6Y3JlYXRlKGNyZWRlbnRpYWxzKTsKKyAgICB7CisgICAgICAgIGF1dG8mIHBy
b21pc2UgPSBKU0V4ZWNTdGF0ZTo6bG9hZE1vZHVsZShnbG9iYWxPYmplY3QsIG1vZHVsZVVSTC5z
dHJpbmcoKSwganNVbmRlZmluZWQoKSwgSlNDOjpKU1NjcmlwdEZldGNoZXI6OmNyZWF0ZSh2bSwg
eyBzY3JpcHRGZXRjaGVyLnB0cigpIH0pKTsKKworICAgICAgICBhdXRvIHRhc2sgPSBjcmVhdGVT
aGFyZWRUYXNrPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4oW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNl
cHRpb24pIG11dGFibGUgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShl
eGNlcHRpb24pKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgZnVsZmlsbEhhbmRsZXIg
PSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCAxLCBTdHJp
bmcoKSwgW3Rhc2ssIHNjcmlwdEZldGNoZXJdKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSAtPiBKU0M6OkVuY29kZWRKU1ZhbHVlIHsKKyAgICAgICAg
ICAgIC8vIHRhc2stPnJ1bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9Owor
ICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAg
ICAgICAgICBJZGVudGlmaWVyIG1vZHVsZUtleSA9IGpzVmFsdWVUb01vZHVsZUtleShnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgICAgIHNjcmlwdEZldGNoZXItPm5vdGlmeUxv
YWRDb21wbGV0ZWQoKm1vZHVsZUtleS5pbXBsKCkpOworCisgICAgICAgICAgICBhdXRvKiBjb250
ZXh0ID0gZG93bmNhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KGpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Cisg
ICAgICAgICAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPnNjcmlwdCgpKSB7CisgICAgICAg
ICAgICAgICAgdGFzay0+cnVuKFdURjo6bnVsbG9wdCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9uOworICAgICAg
ICAgICAgSlNFeGVjU3RhdGU6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSgqZ2xvYmFsT2JqZWN0LCBt
b2R1bGVLZXksIGpzVW5kZWZpbmVkKCksIHJldHVybmVkRXhjZXB0aW9uKTsKKyAgICAgICAgICAg
IGlmICgocmV0dXJuZWRFeGNlcHRpb24gJiYgaXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9u
KHZtLCByZXR1cm5lZEV4Y2VwdGlvbikpIHx8IGNvbnRleHQtPnNjcmlwdCgpLT5pc1Rlcm1pbmF0
aW5nRXhlY3V0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoY29udGV4dC0+c2NyaXB0KCkp
CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPnNjcmlwdCgpLT5mb3JiaWRFeGVjdXRpb24o
KTsKKyAgICAgICAgICAgICAgICB0YXNrLT5ydW4oV1RGOjpudWxsb3B0KTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAocmV0dXJuZWRFeGNlcHRpb24pIHsKKyAgICAgICAgICAgICAg
ICBTdHJpbmcgbWVzc2FnZTsKKyAgICAgICAgICAgICAgICBpZiAoY29udGV4dC0+Y2FuSW5jbHVk
ZUVycm9yRGV0YWlscyhudWxscHRyLCBtb2R1bGVLZXkuc3RyaW5nKCkpKSB7CisgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBJdCdzIG5vdCBncmVhdCB0aGF0IHRoaXMgY2FuIHJ1biBhcmJp
dHJhcnkgY29kZSB0byBzdHJpbmctaWZ5IHRoZSB2YWx1ZSBvZiB0aGUgZXhjZXB0aW9uLgorICAg
ICAgICAgICAgICAgICAgICAvLyBEbyB3ZSBuZWVkIHRvIGRvIGFueXRoaW5nIHRvIGhhbmRsZSB0
aGF0IHByb3Blcmx5LCBpZiBpdCwgc2F5LCByYWlzZXMgYW5vdGhlciBleGNlcHRpb24/CisgICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSByZXR1cm5lZEV4Y2VwdGlvbi0+dmFsdWUoKS50b1dU
RlN0cmluZyhnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgZGV0YWlsZWQgZXJyb3Igd2l0aCBhIGdlbmVy
aWMgZXJyb3IuCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiU2NyaXB0IGVycm9yLiJf
czsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGV4dC0+cmVwb3J0RXhj
ZXB0aW9uKG1lc3NhZ2UsIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9KTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgdGFzay0+cnVuKFdURjo6bnVsbG9wdCk7CisgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICB9KTsKKworICAgICAg
ICBhdXRvJiByZWplY3RIYW5kbGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZSh2bSwg
Jmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFt0YXNrXShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgeworICAgICAgICAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9Owor
ICAgICAgICAgICAgSlNWYWx1ZSBlcnJvclZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsK
KyAgICAgICAgICAgIGlmIChlcnJvclZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgICAg
ICBhdXRvKiBvYmplY3QgPSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOworICAgICAgICAgICAg
ICAgIGlmIChvYmplY3QtPmdldERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEm
Pigqdm0uY2xpZW50RGF0YSkuYnVpbHRpbk5hbWVzKCkuZmFpbHVyZUtpbmRQcml2YXRlTmFtZSgp
KSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJFX0NBVENI
X1NDT1BFKHZtKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSByZXRyaWV2
ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKCpnbG9iYWxPYmplY3QsIHZtLCBvYmplY3QsIGNhdGNo
U2NvcGUpOworICAgICAgICAgICAgICAgICAgICB0YXNrLT5ydW4oRXhjZXB0aW9uIHsgQWJvcnRF
cnJvciwgbWVzc2FnZSB9KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
aWYgKG9iamVjdC0+aW5oZXJpdHM8RXJyb3JJbnN0YW5jZT4odm0pKSB7CisgICAgICAgICAgICAg
ICAgICAgIGF1dG8qIGVycm9yID0ganNDYXN0PEVycm9ySW5zdGFuY2UqPihvYmplY3QpOworICAg
ICAgICAgICAgICAgICAgICBzd2l0Y2ggKGVycm9yLT5lcnJvclR5cGUoKSkgeworICAgICAgICAg
ICAgICAgICAgICBjYXNlIEVycm9yVHlwZTo6VHlwZUVycm9yOiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gcmV0cmlldmVFcnJvck1lc3NhZ2VX
aXRob3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3IsIGNhdGNoU2NvcGUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgdGFzay0+cnVuKEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgbWVzc2Fn
ZSB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBFcnJvclR5cGU6OlN5bnRheEVycm9yOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBh
dXRvIGNhdGNoU2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gcmV0cmlldmVFcnJvck1lc3NhZ2VXaXRob3V0TmFt
ZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3IsIGNhdGNoU2NvcGUpOworICAgICAgICAgICAgICAg
ICAgICAgICAgdGFzay0+cnVuKEV4Y2VwdGlvbiB7IEpTU3ludGF4RXJyb3IsIG1lc3NhZ2UgfSk7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBj
YXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgICAgICAgICBTdHJpbmcg
bWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoKmdsb2JhbE9iamVjdCwg
dm0sIGVycm9yVmFsdWUsIGNhdGNoU2NvcGUpOworICAgICAgICAgICAgdGFzay0+cnVuKEV4Y2Vw
dGlvbiB7IEFib3J0RXJyb3IsIG1lc3NhZ2UgfSk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICB9KTsKKworICAgICAgICBwcm9taXNl
LnRoZW4oJmdsb2JhbE9iamVjdCwgJmZ1bGZpbGxIYW5kbGVyLCAmcmVqZWN0SGFuZGxlcik7Cisg
ICAgfQorICAgIG1fZ2xvYmFsU2NvcGUtPmV2ZW50TG9vcCgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVj
a3BvaW50KCk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIEpTR2xvYmFsU2NvcGVQcm90b3R5cGUs
IHR5cGVuYW1lIEpTR2xvYmFsU2NvcGUsIHR5cGVuYW1lIEdsb2JhbFNjb3BlPgogdm9pZCBXb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0V2l0aFN1YmNsYXNzKCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3Jp
cHRDb250cm9sbGVyLmgKaW5kZXggYzQ5MzAxYWVkM2RkMDg5ZGE3OTczMjc2MGNhZjJmN2I2NGRi
MTFiNi4uOWYwMjNhNjJmODE0M2U3ZDk4MmZiZjdmNThlZWVhZGNhM2E1YjU2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250
cm9sbGVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1J1
bkxvb3BUaW1lci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xv
Y2suaD4KKyNpbmNsdWRlIDx3dGYvTWVzc2FnZVF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL05ha2Vk
UHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNDQsOSArNDUsMTEgQEAgY2xhc3MgSlNHbG9i
YWxPYmplY3Q7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0
OworY2xhc3MgTG9hZGFibGVNb2R1bGVTY3JpcHQ7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwog
Y2xhc3MgV29ya2VyQ29uc29sZUNsaWVudDsKIGNsYXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNj
b3BlOworY2xhc3MgV29ya2VyU2NyaXB0RmV0Y2hlcjsKIAogY2xhc3MgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlcik7CkBAIC05NCw2ICs5NywxMyBAQCBjbGFzcyBXb3JrZXJPcldv
cmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNv
dXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwog
ICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIE5ha2VkUHRyPEpTQzo6
RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25N
ZXNzYWdlID0gbnVsbHB0cik7CiAKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVNb2R1bGUoSlND
OjpKU01vZHVsZVJlY29yZCYpOworCisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoV29y
a2VyU2NyaXB0RmV0Y2hlciYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVy
bmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1
bHQgbG9hZE1vZHVsZVN5bmNocm9ub3VzbHkoV29ya2VyU2NyaXB0RmV0Y2hlciYsIGNvbnN0IFNj
cmlwdFNvdXJjZUNvZGUmKTsKKworICAgIHZvaWQgbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGNvbnN0
IFVSTCYgbW9kdWxlVVJMLCBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpOworCiBwcm90ZWN0ZWQ6CiAgICAg
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4g
bV9nbG9iYWxTY29wZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlci5jcHAKaW5kZXggM2E0ZGFlZmMzOTAyYmRiMmVhODRmYzU4ZDdlNDJmODNlNWYwN2Uy
Zi4uOWYzMWQwZGZkNTlhODcwN2ZkNGViNTljYzNjOTJhMDY2NDgxZGUxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcApAQCAtMTA3LDcgKzEwNyw3
IEBAIE9wdGlvbmFsPEV4Y2VwdGlvbj4gV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkU3luY2hyb25v
dXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0K
IAotdm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBz
Y3JpcHRSZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBmZXRjaE9wdGlvbnMsIENvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2
aWNlV29ya2Vyc01vZGUgc2VydmljZVdvcmtlck1vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVu
dCYgY2xpZW50KQordm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZXNvdXJjZVJl
cXVlc3QmJiBzY3JpcHRSZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBmZXRjaE9wdGlvbnMsIENvbnRl
bnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2Vt
ZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUgc2VydmljZVdvcmtlck1vZGUsIFdvcmtlclNjcmlwdExv
YWRlckNsaWVudCYgY2xpZW50LCBTdHJpbmcmJiB0YXNrTW9kZSkKIHsKICAgICBtX2NsaWVudCA9
ICZjbGllbnQ7CiAgICAgbV91cmwgPSBzY3JpcHRSZXF1ZXN0LnVybCgpOwpAQCAtMTIzLDggKzEy
Myw2IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0CiAgICAgQVNTRVJUKGZldGNoT3B0aW9ucy5t
b2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbiB8fCAoZmV0Y2hPcHRpb25zLmRl
c3RpbmF0aW9uICE9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNlcnZpY2V3b3JrZXIgJiYg
ZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uICE9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246Oldv
cmtlcikpOwogCiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9ucyB7IFdURk1vdmUo
ZmV0Y2hPcHRpb25zKSB9OwotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIGFuIG9wdGlvbiB0
byBzZXQgY3JlZGVudGlhbCBtb2RlLgotICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9w
dGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luOwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxs
YmFja3MgPSBTZW5kQ2FsbGJhY2tQb2xpY3k6OlNlbmRDYWxsYmFja3M7CiAgICAgb3B0aW9ucy5j
b250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IGNvbnRlbnRTZWN1cml0eVBvbGljeUVu
Zm9yY2VtZW50OwogICAgIGlmIChmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbjo6U2VydmljZXdvcmtlcikKQEAgLTE0Myw3ICsxNDEsNyBAQCB2b2lk
IFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIHNjcmlwdEV4ZWN1dAogCiAgICAgLy8gRHVyaW5nIGNyZWF0ZSwgY2FsbGJhY2tzIG1h
eSBoYXBwZW4gd2hpY2ggcmVtb3ZlIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdC4K
ICAgICBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBt
X3RocmVhZGFibGVMb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgKnRoaXMsIFdURk1vdmUoKnJlcXVlc3QpLCBvcHRpb25zKTsKKyAgICBtX3Ro
cmVhZGFibGVMb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgKnRoaXMsIFdURk1vdmUoKnJlcXVlc3QpLCBvcHRpb25zLCB7IH0sIFdURk1vdmUo
dGFza01vZGUpKTsKIH0KIAogY29uc3QgVVJMJiBXb3JrZXJTY3JpcHRMb2FkZXI6OnJlc3BvbnNl
VVJMKCkgY29uc3QKQEAgLTE5MCw2ICsxODgsOCBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzbwog
ICAgIG1fY2VydGlmaWNhdGVJbmZvID0gcmVzcG9uc2UuY2VydGlmaWNhdGVJbmZvKCkgPyAqcmVz
cG9uc2UuY2VydGlmaWNhdGVJbmZvKCkgOiBDZXJ0aWZpY2F0ZUluZm8oKTsKICAgICBtX3Jlc3Bv
bnNlTUlNRVR5cGUgPSByZXNwb25zZS5taW1lVHlwZSgpOwogICAgIG1fcmVzcG9uc2VFbmNvZGlu
ZyA9IHJlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKTsKKyAgICBtX3Jlc3BvbnNlU291cmNlID0g
cmVzcG9uc2Uuc291cmNlKCk7CisgICAgbV9pc1JlZGlyZWN0ZWQgPSByZXNwb25zZS5pc1JlZGly
ZWN0ZWQoKTsKICAgICBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSA9IENvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycyB7IHJlc3BvbnNlIH07CiAgICAgbV9yZWZlcnJlclBvbGljeSA9
IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmVmZXJyZXJQb2xpY3kp
OwogICAgIGlmIChtX2NsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlci5oCmluZGV4IDdmZGQwYjNmNmEwMWMyZGI1NzcyNGE5MGIzYmI5ODQwZjFlNjhlNWYu
LmNmYTMxYTM1MzI1OWFlZWQxOThmOTM5MWZmYzE1MTFiNDA1MGI4NWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkZldGNoT3B0aW9ucy5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAj
aW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJD
bGllbnQuaCIKICNpbmNsdWRlIDxtZW1vcnk+CkBAIC00Myw3ICs0NCw2IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEV4Y2VwdGlvbjsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsK
IGNsYXNzIFdvcmtlclNjcmlwdExvYWRlckNsaWVudDsKQEAgLTU4LDcgKzU4LDcgQEAgY2xhc3Mg
V29ya2VyU2NyaXB0TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVy
PiwgcHVibGljIFRocmVhZGEKICAgICB9CiAKICAgICBPcHRpb25hbDxFeGNlcHRpb24+IGxvYWRT
eW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBVUkwmLCBGZXRjaE9w
dGlvbnM6Ok1vZGUsIEZldGNoT3B0aW9uczo6Q2FjaGUsIENvbnRlbnRTZWN1cml0eVBvbGljeUVu
Zm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcklkZW50aWZpZXIpOwotICAgIHZvaWQg
bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJjZVJlcXVl
c3QmJiwgRmV0Y2hPcHRpb25zJiYsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBT
ZXJ2aWNlV29ya2Vyc01vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYpOworICAgIHZvaWQg
bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJjZVJlcXVl
c3QmJiwgRmV0Y2hPcHRpb25zJiYsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBT
ZXJ2aWNlV29ya2Vyc01vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYsIFN0cmluZyYmIHRh
c2tNb2RlKTsKIAogICAgIHZvaWQgbm90aWZ5RXJyb3IoKTsKIApAQCAtNjcsNiArNjcsOCBAQCBj
bGFzcyBXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJTY3JpcHRM
b2FkZXI+LCBwdWJsaWMgVGhyZWFkYQogICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3ko
KSBjb25zdCB7IHJldHVybiBtX3JlZmVycmVyUG9saWN5OyB9CiAgICAgY29uc3QgVVJMJiB1cmwo
KSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAgIGNvbnN0IFVSTCYgcmVzcG9uc2VVUkwoKSBj
b25zdDsKKyAgICBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2UgcmVzcG9uc2VTb3VyY2UoKSBjb25z
dCB7IHJldHVybiBtX3Jlc3BvbnNlU291cmNlOyB9CisgICAgYm9vbCBpc1JlZGlyZWN0ZWQoKSBj
b25zdCB7IHJldHVybiBtX2lzUmVkaXJlY3RlZDsgfQogICAgIGNvbnN0IENlcnRpZmljYXRlSW5m
byYgY2VydGlmaWNhdGVJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0ZUluZm87IH0K
ICAgICBjb25zdCBTdHJpbmcmIHJlc3BvbnNlTUlNRVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3Jl
c3BvbnNlTUlNRVR5cGU7IH0KICAgICBib29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmFp
bGVkOyB9CkBAIC0xMDcsNiArMTA5LDggQEAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGEKICAgICB1
bnNpZ25lZCBsb25nIG1faWRlbnRpZmllciB7IDAgfTsKICAgICBib29sIG1fZmFpbGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fZmluaXNoaW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZWRp
cmVjdGVkIHsgZmFsc2UgfTsKKyAgICBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2UgbV9yZXNwb25z
ZVNvdXJjZSB7IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6VW5rbm93biB9OwogICAgIFJlc291
cmNlRXJyb3IgbV9lcnJvcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcAppbmRleCA3Mjc5MGEwMzMyMjYxOWU2ZWU3ZTYxNmE4YmRlMThiZDU1MmE1NzgzLi42M2Vl
OGM4ZDM2ZjNiZDcyNDYzNTNjNWJkZjg0MTdkZDgxMDdjNGEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIldvcmtl
ckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTUsNiArNTcsOCBAQCBXb3JrZXJQ
YXJhbWV0ZXJzIFdvcmtlclBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgICAg
IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwKICAgICAgICAgdGlt
ZU9yaWdpbiwKICAgICAgICAgcmVmZXJyZXJQb2xpY3ksCisgICAgICAgIHdvcmtlclR5cGUsCisg
ICAgICAgIGNyZWRlbnRpYWxzLAogICAgICAgICBzZXR0aW5nc1ZhbHVlcy5pc29sYXRlZENvcHko
KQogICAgIH07CiB9CkBAIC0xMjMsOSArMTI3LDMxIEBAIGJvb2wgV29ya2VyVGhyZWFkOjpzaG91
bGRXYWl0Rm9yV2ViSW5zcGVjdG9yT25TdGFydHVwKCkgY29uc3QKIAogdm9pZCBXb3JrZXJUaHJl
YWQ6OmV2YWx1YXRlU2NyaXB0SWZOZWNlc3NhcnkoU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQog
ewotICAgIGdsb2JhbFNjb3BlKCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2Rl
KG1fc3RhcnR1cERhdGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2Ny
aXB0VVJMKSksICZleGNlcHRpb25NZXNzYWdlKTsKLQotICAgIGZpbmlzaGVkRXZhbHVhdGluZ1Nj
cmlwdCgpOworICAgIC8vIFdlIGFyZSBjdXJyZW50bHkgaG9sZGluZyBvbmx5IHRoZSBpbml0aWFs
IHNjcmlwdCBjb2RlLiBJZiB0aGUgV29ya2VyVHlwZSBpcyBNb2R1bGUsIHdlIHNob3VsZCBmZXRj
aCB0aGUgZW50aXJlIGdyYXBoIGJlZm9yZSBleGVjdXRpbmcgdGhlIHJlc3Qgb2YgdGhpcy4KKyAg
ICAvLyBXZSBpbnZva2UgbW9kdWxlIGxvYWRlciBhcyBpZiB3ZSBhcmUgZXhlY3V0aW5nIGlubGlu
ZSBtb2R1bGUgc2NyaXB0IHRhZyBpbiBEb2N1bWVudC4KKworICAgIGlmIChtX3N0YXJ0dXBEYXRh
LT5wYXJhbXMud29ya2VyVHlwZSA9PSBXb3JrZXJUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgIGds
b2JhbFNjb3BlKCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1
cERhdGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSks
ICZleGNlcHRpb25NZXNzYWdlKTsKKyAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRklYTUUgZml4IGluaXRpYXRvciBuYW1lLgorICAg
ICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29k
ZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpLCB7IH0sIEpTQzo6U291cmNl
UHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpOworICAgICAgICBhdXRvIHNjcmlwdEZldGNoZXIg
PSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpjcmVhdGUoZ2xvYmFsU2NvcGUoKS0+Y3JlZGVudGlhbHMo
KSk7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcmVzdWx0ID0gZ2xvYmFsU2NvcGUo
KS0+c2NyaXB0KCktPmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KHNjcmlwdEZldGNoZXIuZ2V0KCks
IHNvdXJjZUNvZGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1ZVRlcm1pbmF0
ZWQpIHsKKyAgICAgICAgICAgIGlmIChPcHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6RXJyb3I+IGVy
cm9yID0gc2NyaXB0RmV0Y2hlci0+ZXJyb3IoKSkgeworICAgICAgICAgICAgICAgIGlmIChPcHRp
b25hbDxMb2FkYWJsZVNjcmlwdDo6Q29uc29sZU1lc3NhZ2U+IG1lc3NhZ2UgPSBlcnJvci0+Y29u
c29sZU1lc3NhZ2UpCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbk1lc3NhZ2UgPSBtZXNz
YWdlLT5tZXNzYWdlOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ZXhjZXB0aW9uTWVzc2FnZSA9ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3M7
CisgICAgICAgICAgICAgICAgZ2xvYmFsU2NvcGUoKS0+cmVwb3J0RXhjZXB0aW9uKGV4Y2VwdGlv
bk1lc3NhZ2UsIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9KTsKKyAgICAgICAgICAgIH0gZWxzZSBp
ZiAoIXNjcmlwdEZldGNoZXItPndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBF
dmFsdWF0ZS4KKyAgICAgICAgICAgICAgICBnbG9iYWxTY29wZSgpLT5zY3JpcHQoKS0+bGlua0Fu
ZEV2YWx1YXRlTW9kdWxlKHNjcmlwdEZldGNoZXIuZ2V0KCksIHNvdXJjZUNvZGUsICZleGNlcHRp
b25NZXNzYWdlKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIAogICAgIC8vIEZyZWUgdGhlIHN0YXJ0
dXAgZGF0YSB0byBjYXVzZSBpdHMgbWVtYmVyIHZhcmlhYmxlIGRlcmVmJ3MgaGFwcGVuIG9uIHRo
ZSB3b3JrZXIncyB0aHJlYWQgKHNpbmNlCiAgICAgLy8gYWxsIHJlZi9kZXJlZnMgb2YgdGhlc2Ug
b2JqZWN0cyBhcmUgaGFwcGVuaW5nIG9uIHRoZSB0aHJlYWQgYXQgdGhpcyBwb2ludCkuIE5vdGUg
dGhhdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKaW5kZXggODg5MDc5MDhlN2E5
YjgwOWU4ZjJhNGU0NzNkNzUyZDExZDI5MzdjMC4uOTUxMmVmZGIxOGYzMmE1MGVjYjdmYjU2OTU5
ZDYxZTg4NzJmYTFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJU
aHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC0y
Niw3ICsyNiwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFs
cy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtl
clJ1bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvUnVudGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9V
UkwuaD4KQEAgLTYzLDYgKzY2LDggQEAgc3RydWN0IFdvcmtlclBhcmFtZXRlcnMgewogICAgIGJv
b2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OwogICAgIE1vbm90
b25pY1RpbWUgdGltZU9yaWdpbjsKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeTsK
KyAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7CisgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMg
Y3JlZGVudGlhbHM7CiAgICAgU2V0dGluZ3M6OlZhbHVlcyBzZXR0aW5nc1ZhbHVlczsKIAogICAg
IFdvcmtlclBhcmFtZXRlcnMgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyVHlwZS5oCmluZGV4IDBiMGVkODYwZDljNzE0MjM4YTJhNWJiOWZkZjQzODQwMmQxNmVi
ZjAuLjFjMWJiOTQ0ODY3YWRmNGVkNTc4YTI4MTRmYTMzMjMyNmFlZDhhNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyVHlwZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotZW51bSBjbGFzcyBXb3JrZXJUeXBlIHsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6
IHVpbnQ4X3QgewogICAgIENsYXNzaWMsCiAgICAgTW9kdWxlLAogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCmlu
ZGV4IGViYmU5NWU4OTI0YzhmMWQ3Mzc1MjVkZWExNjMwYjFmYWQ1NmZiMjcuLjRjN2RkZjRhNGMx
MzFlMGRjZDZiYTA5NTA5YWIyZDk3NTc1ZjMwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaApAQCAtNDcsNyAr
NDcsNyBAQCBjbGFzcyBOYXZpZ2F0b3JCYXNlOwogY2xhc3MgU2VydmljZVdvcmtlcjsKIAogZW51
bSBjbGFzcyBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgOiB1aW50OF90OwotZW51bSBjbGFz
cyBXb3JrZXJUeXBlOworZW51bSBjbGFzcyBXb3JrZXJUeXBlIDogdWludDhfdDsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZVByb3h5OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKaW5kZXgg
ZWMzOWMwZjg0OWE1NGUxYjZkMGJlZTM0YThkN2QxOWNiYTQ1ZTI4OC4uZjk1MTBjYmY2ZmRmNzA0
NmY3ZDFiOTIyMzY5MTc0ZDAxZmEwYmUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcApAQCAtMTEwLDcgKzExMCw4IEBAIHZv
aWQgU2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4dChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBGCiAgICAgb3B0aW9ucy5jYWNoZSA9IGNhY2hlUG9saWN5Owog
ICAgIG9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpFcnJvcjsKICAg
ICBvcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2Vydmlj
ZXdvcmtlcjsKLSAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQs
IFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucyksIENvbnRlbnRTZWN1cml0eVBvbGlj
eUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UsIFNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSwgKnRo
aXMpOworICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxz
OjpTYW1lT3JpZ2luOworICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29u
dGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgQ29udGVudFNlY3VyaXR5
UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSwgU2VydmljZVdvcmtlcnNNb2RlOjpOb25l
LCAqdGhpcywgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKIFJlc291cmNlRXJy
b3IgU2VydmljZVdvcmtlckpvYjo6dmFsaWRhdGVTZXJ2aWNlV29ya2VyUmVzcG9uc2UoY29uc3Qg
U2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaAppbmRleCA5ZDUwMGY4NWFj
YjE4ODQxY2M1NWJlYTgyMTFkYjE0ZmFkYzk3NDc1Li4yZTM1NTdmYTdkZjY3ZjFiZjk4YzdiN2E1
ZGU0YjBhNWE3YmNjY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaApAQCAt
MzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNzIFNlcnZpY2VX
b3JrZXJVcGRhdGVWaWFDYWNoZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7Citl
bnVtIGNsYXNzIFdvcmtlclR5cGUgOiB1aW50OF90OwogCiBzdHJ1Y3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbk9wdGlvbnMgewogICAgIFN0cmluZyBzY29wZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5jcHAKaW5kZXggYzhhN2E5OTcyZjljYzhjMTZhNzk2NzUxMTU1MmY1NDkzYTY4NmY5OC4u
MzNjYTBlYzIzYjU4YTU1MTE4NzY4NDZiYTA3MTgzNTMyYjVjNDdkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5jcHAKQEAgLTczLDggKzczLDkgQEAgY2xhc3MgRHVtbXlTZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkgOiBwdWJsaWMgV29ya2VyT2JqZWN0UHJveHkgewogLy8gRklYTUU6IFVzZSBh
IHZhbGlkIFdvcmtlck9iamVjdFByb3h5CiAvLyBGSVhNRTogVXNlIHZhbGlkIHJ1bnRpbWUgZmxh
Z3MKIAorLy8gRklYTUU6IFVzZSBhIHZhbGlkIFdvcmtlclR5cGUgYW5kIENyZWRlbnRhaWxzIGZv
ciBtb2R1bGUgc2VydmljZSB3b3JrZXJzLgogU2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdv
cmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFN0cmluZyYm
IHVzZXJBZ2VudCwgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMsIFdvcmtl
ckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2VyRGVidWdnZXJQcm94eSYgZGVidWdnZXJQ
cm94eSwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNvbm5lY3Rpb25Qcm94eSwg
U29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKQotICAgIDogV29ya2VyVGhyZWFkKHsgZGF0
YS5zY3JpcHRVUkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJbnNwZWN0b3I6
OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHVzZXJBZ2Vu
dCksIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09uTGluZSgpLCBk
YXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6Om5vdygpLCB7
IH0sIHNldHRpbmdzVmFsdWVzIH0sIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQ
cm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJl
YWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5yZWdpc3RyYXRpb24ua2V5LnRvcE9yaWdpbigpLnNl
Y3VyaXR5T3JpZ2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIs
IEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCkpCisgICAgOiBXb3JrZXJUaHJl
YWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmcoKSwgInNlcnZpY2V3b3JrZXI6IiArIElu
c3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCksIFdURk1vdmUo
dXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPmlzT25M
aW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5LCBmYWxzZSwgTW9ub3RvbmljVGltZTo6
bm93KCksIHsgfSwgV29ya2VyVHlwZTo6Q2xhc3NpYywgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHM6
OlNhbWVPcmlnaW4sIHNldHRpbmdzVmFsdWVzIH0sIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwg
ZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBX
b3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5yZWdpc3RyYXRpb24ua2V5LnRvcE9y
aWdpbigpLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0
UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCkpCiAgICAgLCBt
X2RhdGEoZGF0YS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0UHJveHkoRHVt
bXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpKQogICAgICwgbV9oZWFydEJlYXRU
aW1lb3V0KFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb24oKS0+c2hvdWxk
VXNlU2hvcnRUaW1lb3V0KCkgPyBoZWFydEJlYXRUaW1lb3V0Rm9yVGVzdCA6IGhlYXJ0QmVhdFRp
bWVvdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyV29ya2VyLmgKaW5kZXggMmRkZGIzYjViNDFlZDg3YmQ2MTRhMGI5NGQwOWI3NjEy
OTNkNzYwNy4uMzc4ZmJhNjU3ZThiYmY0ODQxZTU2Y2JmODY1NjFmOGVjYzMxMTAyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJX
b3JrZXIuaApAQCAtNTAsNyArNTAsNyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXI7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9uczsKIHN0cnVjdCBT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVu
dGlmaWVyOwotZW51bSBjbGFzcyBXb3JrZXJUeXBlOworZW51bSBjbGFzcyBXb3JrZXJUeXBlIDog
dWludDhfdDsKIAogY2xhc3MgU1dTZXJ2ZXJXb3JrZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTV1Nl
cnZlcldvcmtlcj4gewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggZDcwNDg4NjY0OGMwZWZhYTZiNzgwODRjNTM4NzIwMWNh
MmIxYzU0My4uMmFlMGUzMzg5MWRiYzg5ZjE0Njg3ZDQxNDgwMmFhYTEyZDBkODRmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0xNTgs
NzIgKzE1OCw3IEBAIFJlZmVycmVyUG9saWN5IFdvcmtsZXRHbG9iYWxTY29wZTo6cmVmZXJyZXJQ
b2xpY3koKSBjb25zdAogdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmZldGNoQW5kSW52b2tlU2Ny
aXB0KGNvbnN0IFVSTCYgbW9kdWxlVVJMLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50
aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIG1f
c2NyaXB0RmV0Y2hKb2JzLmFwcGVuZCh7IG1vZHVsZVVSTCwgY3JlZGVudGlhbHMsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpIH0pOwotICAgIHByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5l
ZWRlZCgpOwotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6cHJvY2Vzc05leHRTY3JpcHRG
ZXRjaEpvYklmTmVlZGVkKCkKLXsKLSAgICBpZiAobV9zY3JpcHRGZXRjaEpvYnMuaXNFbXB0eSgp
IHx8IG1fc2NyaXB0TG9hZGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvJiBzY3JpcHRG
ZXRjaEpvYiA9IG1fc2NyaXB0RmV0Y2hKb2JzLmZpcnN0KCk7Ci0KLSAgICBSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCB7IHNjcmlwdEZldGNoSm9iLm1vZHVsZVVSTCB9OwotCi0gICAgRmV0Y2hPcHRp
b25zIGZldGNoT3B0aW9uczsKLSAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6
TW9kZTo6Q29yczsKLSAgICBmZXRjaE9wdGlvbnMuY2FjaGUgPSBGZXRjaE9wdGlvbnM6OkNhY2hl
OjpEZWZhdWx0OwotICAgIGZldGNoT3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVk
aXJlY3Q6OkZvbGxvdzsKLSAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSBzY3JpcHRGZXRj
aEpvYi5jcmVkZW50aWFsczsKLSNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIGlmIChpc0F1ZGlv
V29ya2xldEdsb2JhbFNjb3BlKCkpCi0gICAgICAgIGZldGNoT3B0aW9ucy5kZXN0aW5hdGlvbiA9
IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkF1ZGlvd29ya2xldDsKLSNlbmRpZgotI2lmIEVO
QUJMRShDU1NfUEFJTlRJTkdfQVBJKQotICAgIGlmIChpc1BhaW50V29ya2xldEdsb2JhbFNjb3Bl
KCkpCi0gICAgICAgIGZldGNoT3B0aW9ucy5kZXN0aW5hdGlvbiA9IEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb246OlBhaW50d29ya2xldDsKLSNlbmRpZgotCi0gICAgYXV0byBjb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudCA9IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3Jj
ZSA6IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ2hpbGRTcmNEaXJl
Y3RpdmU7Ci0KLSAgICBtX3NjcmlwdExvYWRlciA9IFdvcmtlclNjcmlwdExvYWRlcjo6Y3JlYXRl
KCk7Ci0gICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseSgqdGhpcywgV1RGTW92
ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsICp0aGlzKTsKLX0KLQotdm9pZCBX
b3JrbGV0R2xvYmFsU2NvcGU6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikKLXsKLX0KLQotdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6Om5v
dGlmeUZpbmlzaGVkKCkKLXsKLSAgICBhdXRvIGNvbXBsZXRlZEpvYiA9IG1fc2NyaXB0RmV0Y2hK
b2JzLnRha2VGaXJzdCgpOwotCi0gICAgaWYgKG1fc2NyaXB0TG9hZGVyLT5mYWlsZWQoKSkgewot
ICAgICAgICBkaWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKFdURk1vdmUoY29tcGxldGVkSm9iKSwg
RXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgbWFrZVN0cmluZygiRmFpbGVkIHRvIGZldGNoIG1vZHVs
ZSwgZXJyb3I6ICIsIG1fc2NyaXB0TG9hZGVyLT5lcnJvcigpLmxvY2FsaXplZERlc2NyaXB0aW9u
KCkpIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIHJlYWxseSBiZSBydW4gYXMgYSBtb2R1bGUgc2NyaXB0IGJ1dCB3ZSBkb24ndCBzdXBwb3J0
IHRoaXMgaW4gd29ya2VycyB5ZXQuCi0gICAgVVJMIG1vZHVsZVVSTChtX3NjcmlwdExvYWRlci0+
cmVzcG9uc2VVUkwoKSk7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX2V2YWx1YXRlZE1vZHVsZXMu
YWRkKG1vZHVsZVVSTCk7Ci0gICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KSB7Ci0gICAgICAg
IE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiBleGNlcHRpb247Ci0gICAgICAgIHNjcmlwdCgpLT5l
dmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgV1RGTW92
ZShtb2R1bGVVUkwpKSwgZXhjZXB0aW9uKTsKLSAgICAgICAgaWYgKGV4Y2VwdGlvbikKLSAgICAg
ICAgICAgIHNjcmlwdCgpLT5zZXRFeGNlcHRpb24oZXhjZXB0aW9uKTsKLSAgICB9Ci0KLSAgICBk
aWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKFdURk1vdmUoY29tcGxldGVkSm9iKSwgeyB9KTsKLX0K
LQotdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmRpZENvbXBsZXRlU2NyaXB0RmV0Y2hKb2IoU2Ny
aXB0RmV0Y2hKb2ImJiBqb2IsIE9wdGlvbmFsPEV4Y2VwdGlvbj4gcmVzdWx0KQotewotICAgIG1f
c2NyaXB0TG9hZGVyID0gbnVsbHB0cjsKLQotICAgIGpvYi5jb21wbGV0aW9uSGFuZGxlcihXVEZN
b3ZlKHJlc3VsdCkpOwotCi0gICAgcHJvY2Vzc05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKCk7
CisgICAgc2NyaXB0KCktPmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShtb2R1bGVVUkwsIGNyZWRlbnRp
YWxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIE1lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyJiBXb3JrbGV0R2xvYmFsU2NvcGU6Om1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29w
ZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKaW5kZXgg
ZjIzMjBmMGQxMzAyNWNlYWIzYmFjNTZhNDVlYzJkMWRkM2ZiNmNjMC4uZmU1NGI4NTMyNTY3OTI1
ODNkZWRhMDU1YTQzM2EyNTY1NGU4Njc1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMv
V29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJTY3JpcHRT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNp
bmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiV29y
a2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29s
ZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTU0LDcgKzUzLDcgQEAgc3RydWN0
IFdvcmtsZXRQYXJhbWV0ZXJzOwogZW51bSBXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyVHlw
ZSB7IH07CiB1c2luZyBXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRp
ZmllcjxXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyVHlwZT47CiAKLWNsYXNzIFdvcmtsZXRH
bG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSwgcHVibGljIFdv
cmtlclNjcmlwdExvYWRlckNsaWVudCB7CitjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJs
aWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoV29ya2xldEdsb2JhbFNjb3BlKTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Xb3JrbGV0R2xv
YmFsU2NvcGUoKTsKQEAgLTExMSwxMCArMTEwLDYgQEAgY2xhc3MgV29ya2xldEdsb2JhbFNjb3Bl
IDogcHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLCBwdWJsaWMgV29ya2VyU2NyaXAK
ICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgdW5zaWduZWQsIFJlZlB0cjxJbnNwZWN0
b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwgSlNDOjpKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIGxv
bmcpIGZpbmFsOwogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25nKSBmaW5hbDsKIAotICAgIC8v
IFdvcmtlclNjcmlwdExvYWRlckNsaWVudC4KLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsK
LSAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7Ci0KICAgICBFdmVudFRhcmdldCogZXJy
b3JFdmVudFRhcmdldCgpIGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KIAogI2lmIEVOQUJMRShXRUJf
Q1JZUFRPKQpAQCAtMTI1LDE1ICsxMjAsNiBAQCBjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBw
dWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUsIHB1YmxpYyBXb3JrZXJTY3JpcAogICAg
IFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QgZmluYWw7CiAgICAgY29uc3QgU2V0
dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nl
dHRpbmdzVmFsdWVzOyB9CiAKLSAgICBzdHJ1Y3QgU2NyaXB0RmV0Y2hKb2IgewotICAgICAgICBV
UkwgbW9kdWxlVVJMOwotICAgICAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFs
czsKLSAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYp
PiBjb21wbGV0aW9uSGFuZGxlcjsKLSAgICB9OwotCi0gICAgdm9pZCBwcm9jZXNzTmV4dFNjcmlw
dEZldGNoSm9iSWZOZWVkZWQoKTsKLSAgICB2b2lkIGRpZENvbXBsZXRlU2NyaXB0RmV0Y2hKb2Io
U2NyaXB0RmV0Y2hKb2ImJiwgT3B0aW9uYWw8RXhjZXB0aW9uPik7Ci0KICAgICBXZWFrUHRyPERv
Y3VtZW50PiBtX2RvY3VtZW50OwogCiAgICAgUmVmPFNlY3VyaXR5T3JpZ2luPiBtX3RvcE9yaWdp
bjsKQEAgLTE0NCw5ICsxMzAsNiBAQCBjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMg
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUsIHB1YmxpYyBXb3JrZXJTY3JpcAogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyPiBtX21lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVyOwogCi0gICAgUmVmUHRyPFdvcmtlclNjcmlwdExvYWRlcj4gbV9z
Y3JpcHRMb2FkZXI7Ci0gICAgRGVxdWU8U2NyaXB0RmV0Y2hKb2I+IG1fc2NyaXB0RmV0Y2hKb2Jz
OwotICAgIEhhc2hTZXQ8VVJMPiBtX2V2YWx1YXRlZE1vZHVsZXM7CiAgICAgU2V0dGluZ3M6OlZh
bHVlcyBtX3NldHRpbmdzVmFsdWVzOwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI2MjBhOTZlNmViNzIzY2ZjNTk0
NjlkZTNhOTI3YTMzZGRiOWY4N2IuLjE5ZDczMzU2YTk2ZDc3NmM2NTM3MGRiMGM2M2JhNjU3ODk2
OWRmZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wMi0xNyAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5LzEuMS9tb2R1bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc3VicmVzb3VyY2UtaW50ZWdyaXR5L3NyaS1tb2R1bGUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvd29ya2xldC1hZGRNb2R1bGUtZmFpbHVyZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8vd29ya2xldC1jcmFzaC1leHBlY3RlZC50
eHQ6CisKIDIwMjEtMDItMTYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgRXZlbnRIYW5kbGVyOjp1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURvd25EaXNwYXRjaGlu
Z1NlbGVjdFN0YXJ0IHNob3VsZCBub3QgdXNlIGFuIG9ycGhhbmVkIHNlbGVjdGlvbgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYzEzMzI5NDVlZDgxYjM3MjQyMGQxYTcyZjA2NjU5
MjIyOWM4MGMwMS4uYTczYjk3ZjM2YmU5NTFkNDM1NWZiODgwN2JiMGNkN2EyMDhmZGRhZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMDItMTcg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBKUyBNb2R1bGVz
IGluIFdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NDg2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9ub24tb2JqZWN0LnRlbnRhdGl2ZS5hbnkud29ya2Vy
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1h
ZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2Vy
LWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5
bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtlci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0x
LXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlv
bi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0LWluLW1vZHVsZXdv
cmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
YmFzZXVybC9hbHBoYS9pbXBvcnRTY3JpcHRzLWluLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9k
dWxld29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmln
aW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2lu
dGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2Vy
R2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1jc3AtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1pbXBvcnQtZmFpbHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1t
ZXRhLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRtbDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJl
ZmVycmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2Vy
LW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJv
cGVydHktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0
cy9hdWRpby13b3JrbGV0LWNyZWRlbnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jc3AuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13
b3JrbGV0LWltcG9ydC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtcmVmZXJyZXIuaHR0cHMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtcmVkaXJlY3RlZC13
b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wMi0xNiAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFSZWNvcmRlci5zdG9wKCkgZG9lcyBu
b3Qgd29yayBjb3JyZWN0bHkgd2hlbiByZWNvcmRpbmcgaGFzIGJlZW4gcGF1c2VkLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggYjEwYmU4NjM5MGVkY2U2OThjZGMzZWNiMjlmZjFmOWJiMjNmNjdiYi4u
M2VhMmNiNzZlOGNhNzk1MWNjNjMxZDc1MmU3Y2EwMmMwZWU4MzE3ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCkBAIC02NDAsNyArNjQwLDYgQEAgZmFzdC9kb20vY29ubmVjdGVkLXN1YmZyYW1lLWNvdW50
ZXItb3ZlcmZsb3cuaHRtbCBbIFNsb3cgXQogWyBEZWJ1ZyBdIGh0dHAvdGVzdHMvd29ya2Vycy93
b3JrZXItbWVzc2FnZXBvcnQtMi5odG1sIFsgU2xvdyBdCiAKICMgU2tpcCB3b3JrZXJzIHRlc3Rz
IHRoYXQgYXJlIHRpbWluZyBvdXQgb3IgYXJlIFNoYXJlZFdvcmtlciByZWxhdGVkIG9ubHkKLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2Vy
L3NhbWUtb3JpZ2luLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9kYXRhLXVybC1zaGFyZWQuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2V4YW1wbGVzL29uY29ubmVjdC5hbnkuaHRtbCBbIFNr
aXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2V4YW1wbGVzL29u
Y29ubmVjdC5hbnkud29ya2VyLmh0bWwgWyBTa2lwIF0KQEAgLTY2Myw3ICs2NjIsNiBAQCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyLXJlcGxhY2Ut
RXZlbnRIYW5kbGVyLmFueS5odAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL1NoYXJlZFdvcmtlci1yZXBsYWNlLUV2ZW50SGFuZGxlci5hbnkud29ya2VyLmh0bWwgWyBT
a2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9TaGFyZWRXb3Jr
ZXItc2NyaXB0LWVycm9yLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9TaGFyZWRXb3JrZXItc2ltcGxlLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LXJlZmVycmVyLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy1jcmVkZW50aWFs
cy5odG1sIFsgU2tpcCBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9jb25zdHJ1Y3RvcnMvU2hhcmVkV29ya2VyIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvbW9kdWxl
LXNjcmlwdG5vbmNlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9tb2R1bGUtc2NyaXB0bm9uY2Ut
cmVkaXJlY3QtZXhwZWN0ZWQudHh0CmluZGV4IDUwOTkxOWY3YmZkOGNmOTRjNWQzMzQ3Zjg3YTY0
NGQxNTg4NDU5MjEuLmUxNzJkZTRkMDRlMmE1NzQ3Yzc3ZjIyMjI0ZmQ0NWFjMDUyNTA1ZjQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5LzEuMS9tb2R1bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEu
MS9tb2R1bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMiBA
QAogQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBh
bGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTog
VHlwZUVycm9yOiBDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdp
biBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4KIFRoaXMgdGVzdHMgd2hldGhlciBhIGRlZmVycmVk
IHNjcmlwdCBsb2FkIGNhdXNlZCBieSBhIHJlZGlyZWN0IGlzIHByb3Blcmx5IGFsbG93ZWQgYnkg
YSBub25jZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3VicmVzb3VyY2Ut
aW50ZWdyaXR5L3NyaS1tb2R1bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBlY3RlZC50eHQKaW5kZXggYTAx
ZDlmMDcyNmZmOTdjNTI1YTUwNDUwNzZiYWU1MTRjODJlZTJlYS4uOTBhMjkxZWI4MjllZTk4YTc5
OGVjMzc0ODUxODRlYTBlOTVhY2M4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBl
Y3RlZC50eHQKQEAgLTMsNyArMyw2IEBAIENPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBDYW5u
b3QgbG9hZCBzY3JpcHQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3N1YnJlc291cmNlCiBDT05TT0xF
IE1FU1NBR0U6IFR5cGVFcnJvcjogQ2Fubm90IGxvYWQgc2NyaXB0IGh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvcmVzb3VyY2VzL2Nyb3Nzb3JpZ2luLWFub24tc2Ny
aXB0LW1vZHVsZS5qcy4gRmFpbGVkIGludGVncml0eSBtZXRhZGF0YSBjaGVjay4gQ29udGVudCBs
ZW5ndGg6IDM3LCBFeHBlY3RlZCBjb250ZW50IGxlbmd0aDogMzcsIEV4cGVjdGVkIG1ldGFkYXRh
OiBzaGEyNTYtZGVhZGJlZWZjU0xsYkZaQ2oxT0FDTHhUeFZjazJUT3JCVEVkVWJ3ejF5VT0KIENP
TlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBDYW5ub3QgbG9hZCBzY3JpcHQgaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3N1YnJlc291cmNlLWludGVncml0eS9yZXNvdXJjZXMvY3Jvc3NvcmlnaW4tY3Jl
ZHMtc2NyaXB0LW1vZHVsZS5qcy4gRmFpbGVkIGludGVncml0eSBtZXRhZGF0YSBjaGVjay4gQ29u
dGVudCBsZW5ndGg6IDM4LCBFeHBlY3RlZCBjb250ZW50IGxlbmd0aDogMzgsIEV4cGVjdGVkIG1l
dGFkYXRhOiBzaGEyNTYtZGVhZGJlZWYyUytwVFJaZ2l3M0RXcmhDNkpMRGx0MnpSeUdwd0g3dW5V
OD0KIENPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3Qg
YWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6
IFR5cGVFcnJvcjogQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1Pcmln
aW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuCiBDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjog
Q2Fubm90IGxvYWQgc2NyaXB0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zdWJyZXNvdXJjZS1pbnRl
Z3JpdHkvcmVzb3VyY2VzL21hdGNoaW5nLWRpZ2VzdC1tb2R1bGUuanMuIEZhaWxlZCBpbnRlZ3Jp
dHkgbWV0YWRhdGEgY2hlY2suIENvbnRlbnQgbGVuZ3RoOiAyOSwgRXhwZWN0ZWQgY29udGVudCBs
ZW5ndGg6IDI5LCBFeHBlY3RlZCBtZXRhZGF0YTogc2hhMjU2LWNXaDluUGZtN19tUmJLaHphcm5S
WWxzSld6NVhUTmNzcVBGektFeCt6U1U9CiBDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogQ2Fu
bm90IGxvYWQgc2NyaXB0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zdWJyZXNvdXJjZS1pbnRlZ3Jp
dHkvcmVzb3VyY2VzL21hdGNoaW5nLWRpZ2VzdC1tb2R1bGUuanMuIEZhaWxlZCBpbnRlZ3JpdHkg
bWV0YWRhdGEgY2hlY2suIENvbnRlbnQgbGVuZ3RoOiAyOSwgRXhwZWN0ZWQgY29udGVudCBsZW5n
dGg6IDI5LCBFeHBlY3RlZCBtZXRhZGF0YTogc2hhMjU2LVU5V1lEdEJXa2NIeDEzKzlVS2svM1E1
ZW9xRGM0WUd4WWIwN0VQV3piOWU9P2Zvbz1iYXI/c3BhbT1lZ2dzCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVu
dGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQKaW5kZXggNDkyNjliM2I1MGI5MTc1Y2I2MmVjYTMxMmU1ODZiM2IxNjYyYTI1OS4u
MmNhZTVmN2UzNWEzMmZlY2ViMjY4ZjI5MDAwMGU0ZTU1NTZjNjg2MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50
YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKLUZBSUwgTm9uLW9iamVjdDogbnVsbCBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjog
Q291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL251bGwuanNvbicuIgotRkFJTCBOb24tb2Jq
ZWN0OiB0cnVlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vdHJ1ZS5qc29uJy4i
Ci1GQUlMIE5vbi1vYmplY3Q6IGZhbHNlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUg
Jy4vZmFsc2UuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBzdHJpbmcgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBp
bXBvcnQgdGhlIG1vZHVsZSAnLi9zdHJpbmcuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBhcnJh
eSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJF
cnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2FycmF5Lmpzb24nLiIKK0ZBSUwg
Tm9uLW9iamVjdDogbnVsbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxp
ZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IHRydWUgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAn
YXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgor
RkFJTCBOb24tb2JqZWN0OiBmYWxzZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3Qg
YSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IHN0cmluZyBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUg
dHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IGFycmF5IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9uL2pzb24n
IGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVy
LXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRlci13b3Jr
ZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVl
OGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uZjY4Y2M3M2I0ZDY3NGM1NGRmYWZlNTIy
MTJiNjQzYzQwMzBmZDQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJy
b3ItbW9kdWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJv
ci1tb2R1bGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1IYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorRkFJTCBQcm9taXNlIHJlc29sdmVkIGR1cmluZyAj
cmVwb3J0LXRoZS1lcnJvciBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhw
ZWN0ZWQgYXJyYXkgWyJoYW5kbGVyIDEiLCAiaGFuZGxlciAyIiwgImhhbmRsZXIgMSBwcm9taXNl
IiwgImhhbmRsZXIgMiBwcm9taXNlIl0gbGVuZ3RoIDQsIGdvdCBbXSBsZW5ndGggMAorUEFTUyBQ
cm9taXNlIHJlc29sdmVkIGR1cmluZyBldmVudCBoYW5kbGVycyBvdGhlciB0aGFuIGVycm9yCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5h
bWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBv
cnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0CmluZGV4
IDUxZDYxMDBlNjEyMmE5N2MzNjRiM2NlYjFkN2ZkMDdlMGUxNTYxMTcuLmE4MDUwYzA3OGNmOGI4
OGQ1NjhhZmZlMGQ1NWNjMzE5MGMzNjU0N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3Jr
ZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1p
bXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBSZWxhdGl2
ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKSBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90
IGltcG9ydCB0aGUgbW9kdWxlICcuL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJv
bC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9cmVsYXRpdmUtY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlw
dHMoKScuIgotRkFJTCBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNj
cmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICdodHRwOi8vMTI3LjAuMC4x
Ojg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRy
b2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLWNyb3NzLW9yaWdpbiBpbXBvcnRTY3Jp
cHRzKCknLiIKLVBBU1MgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBjcm9zcy1vcmlnaW4gaW1wb3J0
U2NyaXB0cygpCi1GQUlMIEFic29sdXRlIFVSTC1saWtlIGZyb20gY3Jvc3Mtb3JpZ2luIGltcG9y
dFNjcmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICdodHRwOi8vMTI3LjAu
MC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
ZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLWNyb3NzLW9yaWdpbiBpbXBvcnRT
Y3JpcHRzKCknLiIKK1BBU1MgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBzYW1lLW9yaWdpbiBpbXBv
cnRTY3JpcHRzKCkKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSBzYW1lLW9yaWdpbiBpbXBv
cnRTY3JpcHRzKCkKK0ZBSUwgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBjcm9zcy1vcmlnaW4gaW1w
b3J0U2NyaXB0cygpIGFzc2VydF9lcXVhbHM6IFJlbGF0aXZlIFVSTC1saWtlIHNwZWNpZmllciBy
ZXNvbHV0aW9uIHNob3VsZCBmYWlsIGV4cGVjdGVkICIodW5yZWFjaGVkKSIgYnV0IGdvdCAiZ2Ft
bWEvaW1wb3J0LmpzIgorUEFTUyBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIGNyb3NzLW9yaWdpbiBp
bXBvcnRTY3JpcHRzKCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFt
aWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0CmluZGV4IDg2
NmViYjIyN2FkMjZhYWNlMWE1NzhiYWVhNmE4MWRjMGU2ZTc3ZjAuLjVlNzA2MzQ5MGUyZGZmZWNl
ODVlYTc2NWFlYmRkZTRiMTZlYjBmYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIu
c3ViLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSB3b3JrZXIg
dG9wLWxldmVsIHNjcmlwdCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2ltcG9y
dC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9cmVs
YXRpdmUtd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQnLiIKLUZBSUwgQWJzb2x1dGUgVVJMLWxpa2Ug
ZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9k
dWxlICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlw
ZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLXdv
cmtlciB0b3AtbGV2ZWwgc2NyaXB0Jy4iCitQQVNTIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gd29y
a2VyIHRvcC1sZXZlbCBzY3JpcHQKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSB3b3JrZXIg
dG9wLWxldmVsIHNjcmlwdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9u
LW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThmYmE4
YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLjJmMTJhMjM0MmZhZDIyNGUzYTE4YTZmYjVkODQ4
MzI1ZWE2Nzc2ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9y
ZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCi1IYXJu
ZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorUEFTUyBUZXN0IGV2YWx1YXRp
b24gb3JkZXIgb2YgbW9kdWxlcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3Jp
cHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRl
ci0xLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRk
MjJlNGMxZGNiM2E1Zi4uYjg2MWY3MDFmOTQ4ZmIxMzI3NjkzMjJjMzgzNjZmMmQxMzhmMDRlMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1
YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2Ug
PSBudWxsCi0KK0ZBSUwgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVsZXMgYXNzZXJ0X2Fy
cmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsic3RlcC0xLTEiLCAi
c3RlcC0xLTIiLCAiZ2xvYmFsLWVycm9yIiwgImVycm9yIiwgIm1pY3JvdGFzayJdIGxlbmd0aCA1
LCBnb3QgWyJzdGVwLTEtMSIsICJzdGVwLTEtMiIsICJtaWNyb3Rhc2siXSBsZW5ndGggMwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVh
dGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29ya2Vy
LWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2Iz
YTVmLi5jMWQzOGJkZTUwYzU5ZTVkNTk0MTczZDk2ZjljZDE5ZWIxMDdjOWI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRl
ci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNz
YWdlID0gbnVsbAotCitGQUlMIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzIGFzc2Vy
dF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBbInN0ZXAtMi4y
LTEiLCAic3RlcC0yLjItMiIsICJnbG9iYWwtZXJyb3IiLCAiZXJyb3IiLCAibWljcm90YXNrLTIu
MiJdIGxlbmd0aCA1LCBnb3QgWyJzdGVwLTIuMi0xIiwgInN0ZXAtMi4yLTIiLCAibWljcm90YXNr
LTIuMiJdIGxlbmd0aCAzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24t
b3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThi
YmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uMmYxMmEyMzQyZmFkMjI0ZTNhMThhNmZiNWQ4NDgz
MjVlYTY3NzZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3Jk
ZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5l
c3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitQQVNTIFRlc3QgZXZhbHVhdGlv
biBvcmRlciBvZiBtb2R1bGVzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9y
dC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9p
bXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDEyZDk0YTkxZWYx
ZjhhYjBhMTg3Yzc0OWIwZGRlYzY5NmQxMTg4ZTcuLmI0ZDY4YWYwNTZlZWY2MjJhMzNkNTRmMDc2
ZjM4MWQ0ZTFiYjI5YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1
bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1w
b3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsyLDggQEAKIEZB
SUwgU3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAn
KicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgogRkFJTCBOZXN0
ZWQgc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAn
KicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgogRkFJTCBTdGF0
aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFN5bnRheEVycm9yOiBV
bmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1
bWVudC4iCi1GQUlMIER5bmFtaWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBp
cyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0
aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkK
LUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBp
cyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0
aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1keW5hbWljLWltcG9ydC1zY3JpcHQuanMnLiIsIGV4cGVj
dGVkIGFycmF5Ci1GQUlMIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBpbXBvcnQuIGFz
c2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6
IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLXN0YXRpYy1p
bXBvcnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBldmFsKGltcG9ydCgpKS4g
YXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9y
dDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tbG9hZC1z
Y3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5CitQQVNTIER5bmFtaWMgaW1wb3J0LgorUEFTUyBO
ZXN0ZWQgZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0YXRp
YyBpbXBvcnQuCitQQVNTIGV2YWwoaW1wb3J0KCkpLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9p
bXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1t
b2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGRkOWFmMzhmZjA5ZmJlYzFmYWMwYjhmNWVh
OWJhZDZlMzE2MzY0OWQuLjUxZWIzNjYzOGMxY2E3ZDA2MGI3Njc1OTI2ZmNjNzBjNWJmMDc2ZTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBpZGVu
dGlmaWVyICdyJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KIAot
RkFJTCBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IGltcG9ydCBhc3NlcnRf
dW5yZWFjaGVkOiBHb3QgZXJyb3IgZXZlbnQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNT
IEJhc2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2VyczogaW1wb3J0CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9i
YXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2Fs
cGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBhYjVhN2ZiODkw
MjBmMjlmZDg5M2E3NTY4MGZmZTE3ZDNkMzUwZjdjLi5hYjUzYjgwNTk5YWUwMTk1NzgwODVlZTQ0
YWFlZmE0Yzc5NTUyNjg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnRTY3JpcHRzLWluLXdv
cmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXIt
ZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIGltcG9ydFNjcmlwdHMgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgImdhbW1hL3NjcmlwdC5qcyIgYnV0IGdvdCAiYmV0YS9zY3JpcHQu
anMiCitQQVNTIGltcG9ydFNjcmlwdHMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1v
ZHVsZXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4
cGVjdGVkLnR4dAppbmRleCA4M2YzNjdmMmNmM2E2NmM2NGE2MjY0Mjk0NjU2ZDVlODgxZDFjMTFj
Li4yOGIwY2I0MDAxMzkyZDA4ODdhNGZlYmU2ODFjMWUxNTFkMGRmMThiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVy
bC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94
aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBC
YXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IFhIUiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiZ2FtbWFcbiIgYnV0IGdvdCAiYmV0YVxuIgorUEFTUyBCYXNlIFVSTCBpbiBtb2R1
bGUgZGVkaWNhdGVkIHdvcmtlcnM6IFhIUgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4t
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IGQ2YjA4ZWVkYWU2ZjY5NmM3YTRiZmE2NTVlMTNiNWVkNDYwN2VhMDEuLmVhMTQ1NGQ5
YjNmMjBmODVkOTAxNmM1MDZhMTU0NmFmNjE3ODQyZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3ho
ci1pbi13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIHhoci13b3JrZXIgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgImdhbW1hXG4iIGJ1dCBnb3QgImJldGFcbiIKK1BBU1MgeGhyLXdvcmtlcgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3Ry
dWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggODMxZjBjNThjNjk0
YzJkNGZlYmQ2ZDhkMGFmMzA3YjEwOTQ0MmE2ZS4uZDU1NWVlN2NmM2ZjNzJlZmI4MmRmOWRiN2Rh
ZDM2N2Y5YWI3ZmZiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmlnaW4tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dApA
QCAtMSwxMyArMSwxMSBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51
bGwKLQogUEFTUyB1bnN1cHBvcnRlZF9zY2hlbWUKIEZBSUwgZGF0YV91cmwgVGhlIG9wZXJhdGlv
biBpcyBpbnNlY3VyZS4KLVRJTUVPVVQgYWJvdXRfYmxhbmsgVGVzdCB0aW1lZCBvdXQKLVRJTUVP
VVQgZXhhbXBsZV9pbnZhbGlkIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIHBvcnRfODEgVGVzdCB0
aW1lZCBvdXQKLVRJTUVPVVQgaHR0cHNfcG9ydF84MCBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBo
dHRwc19wb3J0XzgwMDAgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgaHR0cF9wb3N0XzgwMTIgVGVz
dCB0aW1lZCBvdXQKLVRJTUVPVVQgamF2YXNjcmlwdF91cmwgVGVzdCB0aW1lZCBvdXQKK1BBU1Mg
YWJvdXRfYmxhbmsKK1BBU1MgZXhhbXBsZV9pbnZhbGlkCitQQVNTIHBvcnRfODEKK1BBU1MgaHR0
cHNfcG9ydF84MAorUEFTUyBodHRwc19wb3J0XzgwMDAKK1BBU1MgaHR0cF9wb3N0XzgwMTIKK1BB
U1MgamF2YXNjcmlwdF91cmwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUv
bG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUv
bG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0CmluZGV4IGYxNzQxZjlkOGJmMDcwMzI3MGQy
ZTM3NjJkYmNiZTI2YzBiOTAwNTkuLjNiMGRmYjM1ZTUxY2QxYTg1NDU1MzAxOWMwZTQwM2RiZTJm
MWQzM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGly
ZWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9y
ZWRpcmVjdC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgV29ya2VyTG9jYXRp
b24gd2l0aCByZWRpcmVjdHM6IGNsYXNzaWMgZGVkaWNhdGVkIHdvcmtlcnMgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2ludGVyZmFjZXMvV29y
a2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcG9zdC1sb2NhdGlvbi1tZW1iZXJzLmpzP2EiIGJ1dCBn
b3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFs
U2NvcGUvbG9jYXRpb24vaGVscGVyLXJlZGlyZWN0LnB5P2ZhaWwiCitQQVNTIFdvcmtlckxvY2F0
aW9uIHdpdGggcmVkaXJlY3RzOiBjbGFzc2ljIGRlZGljYXRlZCB3b3JrZXJzCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9p
bnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1tb2R1
bGUtZXhwZWN0ZWQudHh0CmluZGV4IGRjMmUyZTIwN2RiMDAxZWU3MGU3MzMwN2QyN2JiMzM1NzIw
ZmQ1NTkuLmIzYmY4MWVlODY4MWI5ZGMwODBmNTgwMjcxZThiOGYzOTA5NjU0OTUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9p
bnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3Qt
bW9kdWxlLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBXb3JrZXJMb2NhdGlv
biB3aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtl
ckdsb2JhbFNjb3BlL2xvY2F0aW9uL3Bvc3QtbG9jYXRpb24tbWVtYmVycy5qcz9hIiBidXQgZ290
ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNj
b3BlL2xvY2F0aW9uL2hlbHBlci1yZWRpcmVjdC5weT9mYWlsIgorUEFTUyBXb3JrZXJMb2NhdGlv
biB3aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1
bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxl
cy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0CmluZGV4
IDIwYWMxN2Q1NjNjNGIzYTQ2MWYwY2FhZmJlYWVlYmQ3MTNmOTcwODEuLmRjY2VkY2NkMzY4ZTFm
ZjE3YjFkZDEzNmU0NTNmZWM0ZmUxMGJjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3Jr
ZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxOCArMSw5IEBACi1D
T05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJo
dHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9zdGF0aWMtaW1w
b3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
Ci1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFs
ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9uZXN0ZWQt
c3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25l
IGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJp
bmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJj
ZXMvc3RhdGljLWltcG9ydC1hbmQtdGhlbi1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBv
cnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBT
eW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4
ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzIi4g
aW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FH
RTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhv
c3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1keW5hbWljLWltcG9ydC13
b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09O
U09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0
cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBv
cnQtYW5kLXRoZW4tc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3Rz
IGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5l
eHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9k
dWxlcy9yZXNvdXJjZXMvZXZhbC1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2Fs
bCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwg
bWVzc2FnZSA9IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8v
bG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWltcG9ydC1h
bmQtdGhlbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhh
Y3RseSBvbmUgYXJndW1lbnQuCi0KLUZBSUwgU3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBz
dHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL3N0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhh
Y3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBOZXN0ZWQgc3RhdGljIGltcG9ydC4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL25lc3RlZC1zdGF0aWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2Fs
bCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgU3RhdGljIGltcG9ydCBhbmQg
dGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6
Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1pbXBvcnQt
YW5kLXRoZW4tZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMg
ZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3Rz
IGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LiBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBV
bmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMv
bW9kdWxlcy9yZXNvdXJjZXMvbmVzdGVkLWR5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBv
cnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHluYW1pYyBpbXBv
cnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBc
Imh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMt
aW1wb3J0LWFuZC10aGVuLXN0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4
cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBldmFsKGltcG9ydCgpKS4gcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5l
eHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL2V2YWwtZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBj
YWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgorUEFTUyBTdGF0aWMgaW1wb3J0Lgor
UEFTUyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BBU1MgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBk
eW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBkeW5hbWlj
IGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4KK1BB
U1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1w
b3J0LWNzcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1jc3AtZXhw
ZWN0ZWQudHh0CmluZGV4IDFkYTQ2YjkyNmJlMDg5NmVlOGY3NWE3OGRjYWU0ZjI2OWIwNTA5MmIu
LjIzOWNjOWNlMTUzMDFmN2VlZDgzZDVlYjIyMzBhOWRlMjk0ZWEyZWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNh
dGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSwyMiBAQAogQ09O
U09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0
aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1v
bi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1T
ZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29n
bml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAor
QmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0
My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09O
U09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0
aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1v
bi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8v
d3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1s
b2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3
MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2Fk
LXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0
eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogCiBQQVNTIHdvcmtlci1zcmMgJ3NlbGYn
IGRpcmVjdGl2ZSBzaG91bGQgZGlzYWxsb3cgY3Jvc3Mgb3JpZ2luIHN0YXRpYyBpbXBvcnQuCiBG
QUlMIHdvcmtlci1zcmMgKiBkaXJlY3RpdmUgc2hvdWxkIGFsbG93IGNyb3NzIG9yaWdpbiBzdGF0
aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAwIHRvIGJl
ICJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiIGJ1dCBnb3QgIkVSUk9SIiAoZXhwZWN0ZWQgYXJy
YXkgWyJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiXSBnb3QgWyJFUlJPUiJdKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21v
ZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtZmFpbHVyZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dAppbmRleCA5NWM2ZDE1
ZGY0NGUxOGEzNWRmZWIwZmEzOWM4ZDM4NDQyMGMyYzEzLi5lOTU1NzhlNzFiMWM1MGE0ZTA0NzFi
MDM3MTU0YjM4NmIzN2FlZDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9y
dC1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1m
YWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3lu
dGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgJy4vbm9uLWV4aXN0ZW50LXNjcmlw
dC5qcycuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCitDT05TT0xF
IE1FU1NBR0U6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLgogCi1GQUlMIGltcG9y
dFNjcmlwdHMoKSBvbiBtb2R1bGUgd29ya2VyIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJUeXBlRXJyb3IiIGJ1dCBnb3QgIkxPQURFRCIKK1BBU1Mg
aW1wb3J0U2NyaXB0cygpIG9uIG1vZHVsZSB3b3JrZXIgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlv
bi4KIFBBU1MgV29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91
bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KIFBBU1MgU3RhdGljIGltcG9ydCBmb3Igbm9uLWV4
aXN0ZW50IHNjcmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KLUZBSUwgRHluYW1p
YyBpbXBvcnQgZm9yIG5vbi1leGlzdGVudCBzY3JpcHQgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlv
bi4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlR5cGVFcnJvciIgYnV0IGdvdCAiRXJyb3IiCitQ
QVNTIER5bmFtaWMgaW1wb3J0IGZvciBub24tZXhpc3RlbnQgc2NyaXB0IHNob3VsZCB0aHJvdyBh
biBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIGFuIGludmFsaWQgVVJM
IHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rpb24gZm9y
IGEgZmlsZSBVUkwgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMv
ZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAppbmRleCBkNTgwNjIwNDFjM2U2OTUxNWI4
MTVlMDJkN2MzODY4NGQ3N2M3NmI3Li43NzI5MWJhYTFhNDE4NGJlYmU3YWQ3YjVkOWYxMTljNzFh
NzhkZTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4
dApAQCAtMSw4ICsxLDUgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IGltcG9ydC5t
ZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwp
LCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRl
IG1vZHVsZXMuCi0KLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIHRvcC1sZXZlbCBt
b2R1bGUgc2NyaXB0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogIlN5bnRheEVycm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5IHZhbGlkIGluc2lkZSBtb2R1bGVz
LiIKLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3Jp
cHQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBUZXN0IGltcG9y
dC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJhZ21lbnQu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBUZXN0IGltcG9ydC5t
ZXRhLnVybCBvbiB0aGUgdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQuCitQQVNTIFRlc3QgaW1wb3J0
Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2NyaXB0LgorUEFTUyBUZXN0IGltcG9y
dC5tZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJhZ21lbnQu
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRtbAppbmRleCBjZmY4ZTkxNDg4ZTgyMzlh
YmUyMTM2MTlkMTJkNWE2MDMwNzJmYmVhLi5lZGUyNjkyZTFjNjM0MWJlZmZjOTAxMGM0MWI4ZjRj
ZmU0MzgzMjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS5odG1sCkBAIC01Myw3ICs1
Myw3IEBACiAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgnLi8nICsgc2NyaXB0X3VybCArICcj
MScpOwogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB3b3JrZXIub25tZXNz
YWdlID0gcmVzb2x2ZSk7CiAgICAgICB9KQotICAgICAgLnRoZW4obXNnX2V2ZW50ID0+IGFzc2Vy
dF90cnVlKG1zZ19ldmVudC5kYXRhLmVuZHNXaXRoKHNjcmlwdF91cmwpKSk7CisgICAgICAudGhl
bihtc2dfZXZlbnQgPT4gYXNzZXJ0X3RydWUobXNnX2V2ZW50LmRhdGEuZW5kc1dpdGgoc2NyaXB0
X3VybCArICcjMScpKSk7CiB9LCAnVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVk
IG1vZHVsZSBzY3JpcHQgd2l0aCBhIGZyYWdtZW50LicpOwogCiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4cGVjdGVkLnR4dAppbmRleCA2ZGM0
MmMxY2ZkMzM0OGFmZGQxZGZkM2IxMGE1MDQ3MDU1MzAxOTZhLi5mZTFiOWQ5M2MwODAxMWI1MGU5
NDFmNGUxMjM2MDY3YWJiZDNmMjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWlt
cG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBv
cnQtcmVmZXJyZXItZXhwZWN0ZWQudHh0CkBAIC0xLDE5ICsxLDIzIEBACi0KLUhhcm5lc3MgRXJy
b3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2Vz
L2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBV
UkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMv
ZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9l
eHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4
cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhw
b3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBo
dHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBv
cnQtcmVmZXJyZXItY2hlY2tlci5weQogCiBQQVNTIFNhbWUtb3JpZ2luIHRvcC1sZXZlbCBtb2R1
bGUgc2NyaXB0IGxvYWRpbmcgd2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeQogUEFT
UyBTYW1lLW9yaWdpbiB0b3AtbGV2ZWwgbW9kdWxlIHNjcmlwdCBsb2FkaW5nIHdpdGggIm9yaWdp
biIgcmVmZXJyZXIgcG9saWN5CiBQQVNTIFNhbWUtb3JpZ2luIHRvcC1sZXZlbCBtb2R1bGUgc2Ny
aXB0IGxvYWRpbmcgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeQotRkFJTCBTYW1l
LW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3ku
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogVHlwZSBlcnJvciIKLUZBSUwgU2FtZS1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRo
ICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBTYW1l
LW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3ku
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogVHlwZSBlcnJvciIKK1BBU1MgU2FtZS1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRo
ICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LgorUEFTUyBTYW1lLW9yaWdpbiBzdGF0aWMg
aW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgorUEFTUyBTYW1lLW9yaWdpbiBz
dGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCiBGQUlMIENy
b3NzLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xp
Y3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlR5cGVFcnJvcjogVHlwZSBlcnJvciIKIEZBSUwgQ3Jvc3Mtb3JpZ2luIHN0YXRpYyBpbXBvcnQg
d2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKIEZBSUwg
Q3Jvc3Mtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBv
bGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotVElNRU9VVCBTYW1lLW9yaWdpbiBkeW5hbWljIGlt
cG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LiBUZXN0IHRpbWVkIG91dAot
Tk9UUlVOIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIg
cG9saWN5LgotTk9UUlVOIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggInNhbWUtb3Jp
Z2luIiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0
IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gQ3Jvc3Mtb3JpZ2lu
IGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgotTk9UUlVOIENy
b3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9s
aWN5LgorRkFJTCBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIg
cmVmZXJyZXIgcG9saWN5LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiIiBidXQgZ290ICJodHRw
Oi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWltcG9y
dC1zYW1lLW9yaWdpbi1yZWZlcnJlci1jaGVja2VyLXdvcmtlci5qcyIKK0ZBSUwgU2FtZS1vcmln
aW4gZHluYW1pYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvIiBidXQgZ290ICJodHRwOi8v
bG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWltcG9ydC1z
YW1lLW9yaWdpbi1yZWZlcnJlci1jaGVja2VyLXdvcmtlci5qcyIKK1BBU1MgU2FtZS1vcmlnaW4g
ZHluYW1pYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4KK0ZBSUwg
Q3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBw
b2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1w
b3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCitG
QUlMIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJy
ZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRl
ZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWlt
cG9ydC5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGEyM2E1NTc1ZGI0Mjc0MjdmODViZDZiNjM1NGRl
ODgzODMxZmUyYjQuLmRjY2VkY2NkMzY4ZTFmZjE3YjFkZDEzNmU0NTNmZWM0ZmUxMGJjODMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21v
ZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxNCAr
MSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcq
Jy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVT
U0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBl
Y3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjog
VW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJn
dW1lbnQuCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IFVu
ZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3Vt
ZW50LgotCi1GQUlMIFN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBv
cnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVkIHN0YXRp
YyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAi
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4
YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWlj
IGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJT
eW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhh
Y3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2Vx
dWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxk
IG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMnLiIsIGV4
cGVjdGVkIGFycmF5Ci1GQUlMIE5lc3RlZCBkeW5hbWljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2Vx
dWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxk
IG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tZHluYW1pYy1pbXBvcnQtc2NyaXB0
LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBEeW5hbWljIGltcG9ydCBhbmQgdGhlbiBzdGF0
aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5
bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9y
dC1vbi1zdGF0aWMtaW1wb3J0LXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgZXZh
bChpbXBvcnQoKSkuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8g
ZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhw
b3J0LW9uLWxvYWQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQorUEFTUyBTdGF0aWMgaW1w
b3J0LgorUEFTUyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BBU1MgU3RhdGljIGltcG9ydCBhbmQg
dGhlbiBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBk
eW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9y
dC4KK1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3Jr
ZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9u
cy10eXBlLWV4cGVjdGVkLnR4dAppbmRleCBkYTBlNGViNjc1OGQxNGEzN2EzOThkMGI2ZmM3MWFk
Mzg3NmJkMjZiLi4xZmMwYzY2ZmRmNzI0YzJhYTNiOTEwNjk4MGJmYmU3ZTk4OGY5NzczIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21v
ZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0CkBAIC0yLDEx
ICsyLDYgQEAKIFBBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggdGhlIGRlZmF1bHQg
d29ya2VyIHR5cGUuCiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIHRoZSAiY2xh
c3NpYyIgd29ya2VyIHR5cGUuCiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIHRo
ZSAibW9kdWxlIiB3b3JrZXIgdHlwZS4KLUZBSUwgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdp
dGggYW4gZW1wdHkgd29ya2VyIHR5cGUuIGFzc2VydF90aHJvd3NfanM6IFdvcmtlciBjb25zdHJ1
Y3Rpb24gd2l0aCBhbiBlbXB0eSB0eXBlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gZnVuY3Rp
b24gIigpID0+IHsKLSAgICAgICAgbmV3IFdvcmtlcigncmVzb3VyY2VzL3Bvc3QtbWVzc2FnZS1v
bi1sb2FkLXdvcmtlci5qcycsIHsgdHlwZTogJycgfSk7Ci0gICAgICB9IiBkaWQgbm90IHRocm93
Ci1GQUlMIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIHVua25vd24gd29ya2VyIHR5
cGUuIGFzc2VydF90aHJvd3NfanM6IFdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1bmtub3du
IHR5cGUgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiBmdW5jdGlvbiAiKCkgPT4gewotICAgICAg
ICBuZXcgV29ya2VyKCdyZXNvdXJjZXMvcG9zdC1tZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzJywK
LSAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICd1bmtub3duJyB9KTsKLSAgICAgIH0iIGRpZCBu
b3QgdGhyb3cKK1BBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gZW1wdHkgd29y
a2VyIHR5cGUuCitQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIHVua25vd24g
d29ya2VyIHR5cGUuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJy
b3ItZmFpbHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLXBhcnNlLWVycm9y
LWZhaWx1cmUtZXhwZWN0ZWQudHh0CmluZGV4IGU4ZWI1NDBiZDMzOTI0MDBhOGRiZmQ5Mzg2NDhh
NjQ5MjM5YzBkOWUuLmQxYTUwZjdlYTNjZDZkYzI5OGVmNzU0MTQ3NzYyYzY5YzU3ZDczYjMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVj
dGVkLnR4dApAQCAtMSw3ICsxLDE0IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBV
bmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1
bWVudC4KK0NPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJzsn
CitDT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICc7JwogCi1I
YXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IEVycm9yOiBhc3NlcnRfaW1wbGVtZW50czog
U3RhdGljIGltcG9ydCBtdXN0IGJlIHN1cHBvcnRlZCBvbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtl
ciB0byBydW4gdGhpcyB0ZXN0LiB1bmRlZmluZWQKLQotTk9UUlVOIE1vZHVsZSB3b3JrZXIgY29u
c3RydWN0aW9uIGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJyb3Igc2hvdWxkIGRpc3BhdGNoIGFu
IGV2ZW50IG5hbWVkIGVycm9yLgotTk9UUlVOIFN0YXRpYyBpbXBvcnQgb24gbW9kdWxlIHdvcmtl
ciBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNob3VsZCBkaXNwYXRjaCBhbiBldmVudCBu
YW1lZCBlcnJvci4KK0ZBSUwgTW9kdWxlIHdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIHNjcmlwdCB3
aXRoIHN5bnRheCBlcnJvciBzaG91bGQgZGlzcGF0Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIGZ1bmN0aW9uICJmdW5jdGlvbiBFdmVudCgpIHsKKyAgICBb
bmF0aXZlIGNvZGVdCit9IiBidXQgZ290IGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJvckV2ZW50KCkg
eworICAgIFtuYXRpdmUgY29kZV0KK30iCitGQUlMIFN0YXRpYyBpbXBvcnQgb24gbW9kdWxlIHdv
cmtlciBmb3Igc2NyaXB0IHdpdGggc3ludGF4IGVycm9yIHNob3VsZCBkaXNwYXRjaCBhbiBldmVu
dCBuYW1lZCBlcnJvci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZnVuY3Rpb24gImZ1bmN0aW9u
IEV2ZW50KCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iIGJ1dCBnb3QgZnVuY3Rpb24gImZ1bmN0
aW9uIEVycm9yRXZlbnQoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUt
cHJvcGVydHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0CmluZGV4IDYzOTg0
NzEyMTQ1OWE3YWIzN2I5ZjA5YTY4YmE2NGVhOGE5ZWQ1N2MuLmU5NDY5NDdiMTRhZWYzZTUyOTlh
MGFiYTNhZTRiMWNmOWZjZDk1NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
bmFtZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw4IEBACiBDT05TT0xFIE1FU1NB
R0U6IFVuaGFuZGxlZCBQcm9taXNlIFJlamVjdGlvbjogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgogCi1GQUlMIFRlc3QgdGhlIG5hbWUgcHJvcGVydHkg
b2Ygc2hhcmVkIGFuZCBkZWRpY2F0ZWQgd29ya2VycyB2aWEgdGhlIG5hbWUgY29uc3RydWN0b3Ig
b3B0aW9uIENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgotUEFTUyBEZWNsYXJpbmcg
bmFtZSBhcyBhbiBhY2NpZGVudGFsIGdsb2JhbCBtdXN0IG5vdCBjYXVzZSBhIGhhcm5lc3MgZXJy
b3IgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCitIYXJuZXNzIEVycm9yIChGQUlMKSwg
bWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJl
ZFdvcmtlcgorCiBQQVNTIG5hbWUgcHJvcGVydHkgdmFsdWUgZm9yIERlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlCiBQQVNTIG5hbWUgcHJvcGVydHkgaXMgcmVwbGFjZWFibGUgZm9yIERlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlCitQQVNTIERlY2xhcmluZyBuYW1lIGFzIGFuIGFjY2lkZW50YWwg
Z2xvYmFsIG11c3Qgbm90IGNhdXNlIGEgaGFybmVzcyBlcnJvciBmb3IgRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNyZWRlbnRpYWxzLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2xldHMvYXVkaW8td29ya2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggZjA2OTFhYTA5Y2M0OWNkZjdmMmE5NDM3NGM2ZTYyMjIwZjkzYjhlMi4uYTU3MGQ4ZDI5MmZh
ODU2MjEyYjA1NDc4ODIwZjEzMGY4MWQ5YmJmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNyZWRl
bnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3JlZGVudGlhbHMuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDExICsxLDExIEBACiBDT05TT0xFIE1FU1NBR0U6IE9yaWdp
biBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9s
LUFsbG93LU9yaWdpbi4KIAotRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0
aCB0aGUgZGVmYXVsdCBXb3JrbGV0T3B0aW9ucyBzaG91bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJv
cnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFJlc3BvbnNlIGlzIG5vdCAy
eHgiCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIHRoZSBkZWZhdWx0
IFdvcmtsZXRPcHRpb25zIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBJbXBv
cnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1v
cmlnaW4gc2NyaXB0IHdpdGggdGhlIGRlZmF1bHQgV29ya2xldE9wdGlvbnMgc2hvdWxkIG5vdCBz
ZW5kIHRoZSBjcmVkZW50aWFscwotRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQg
d2l0aCBjcmVkZW50aWFscz1vbWl0IHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRF
cnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFJlc3BvbnNlIGlzIG5vdCAyeHgi
CitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPW9t
aXQgc2hvdWxkIG5vdCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBJbXBvcnRpbmcgYSBt
b2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IHdpdGggY3JlZGVudGlhbHM9b21pdCBzaG91bGQgbm90IHNlbmQgdGhlIGNyZWRlbnRpYWxz
Ci1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPXNh
bWUtb3JpZ2luIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBGYWlsZWQgdG8g
ZmV0Y2ggbW9kdWxlLCBlcnJvcjogUmVzcG9uc2UgaXMgbm90IDJ4eCIKK0ZBSUwgSW1wb3J0aW5n
IGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9c2FtZS1vcmlnaW4gc2hvdWxk
IHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQg
ZmFpbGVkLiIKIFBBU1MgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVk
ZW50aWFscz1zYW1lLW9yaWdpbiBzaG91bGQgbm90IHNlbmQgdGhlIGNyZWRlbnRpYWxzCi1GQUlM
IEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPWluY2x1ZGUg
c2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBtb2R1
bGUsIGVycm9yOiBSZXNwb25zZSBpcyBub3QgMnh4IgotRkFJTCBJbXBvcnRpbmcgYSByZW1vdGUt
b3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNlbmQgdGhlIGNy
ZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiBPcmlnaW4g
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1B
bGxvdy1PcmlnaW4uIgorRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0aCBj
cmVkZW50aWFscz1pbmNsdWRlIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBJ
bXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90
ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9aW5jbHVkZSBzaG91bGQgc2VuZCB0aGUg
Y3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiQWJvcnRFcnJvcjogQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBD
cm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdv
cmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jc3AuaHR0cHMtZXhwZWN0
ZWQudHh0CmluZGV4IGJmMzM1Y2YzMDU1ZTA2NWIzODk4OWI0MWFhMWUyMzZmZWI0YWMyOWQuLjI3
NWIzNDM3ZmFkOTc1M2E2ZWNlMjQyMDBlYWJmMjU3ZmZkNjI3MmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29y
a2xldC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jc3AuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDQwICsxLDUyIEBACitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBV
UkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13
b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9l
bXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291
cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFj
Y2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRz
L3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9j
a2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dv
cmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpz
CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5
NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVh
ZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBv
bGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2du
aXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitC
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQz
L3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVy
LmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGlj
eSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXpl
ZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCiBDT05T
T0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3Rp
dmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6
Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNj
cmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6IFtibG9ja2VkXSBUaGUg
cGFnZSBhdCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9hZGRtb2R1
bGUtd2luZG93Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5zZWN1cmUgY29udGVu
dCBmcm9tIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29y
a2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcy4KIAogQ09OU09MRSBNRVNTQUdFOiBbYmxv
Y2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJj
ZXMvYWRkbW9kdWxlLXdpbmRvdy5odG1sIHdhcyBub3QgYWxsb3dlZCB0byBkaXNwbGF5IGluc2Vj
dXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2xldHMvcmVzb3VyY2Vz
L2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMuCiAKK0NPTlNPTEUgTUVT
U0FHRTogW2Jsb2NrZWRdIFRoZSBwYWdlIGF0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvd29ya2xl
dHMvcmVzb3VyY2VzL2FkZG1vZHVsZS13aW5kb3cuaHRtbCB3YXMgbm90IGFsbG93ZWQgdG8gZGlz
cGxheSBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDovL2xvY2FsaG9zdDo5NDQzL3dvcmtsZXRz
L3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzLgorCitD
T05TT0xFIE1FU1NBR0U6IFtibG9ja2VkXSBUaGUgcGFnZSBhdCBodHRwczovL2xvY2FsaG9zdDo5
NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9hZGRtb2R1bGUtd2luZG93Lmh0bWwgd2FzIG5vdCBhbGxv
d2VkIHRvIGRpc3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly9sb2NhbGhvc3Q6OTQ0
My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRl
ci5qcy4KKwogCiBGQUlMIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBiZSBibG9ja2Vk
IGJ5IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCi1GQUlMIEEgc2FtZS1vcmlnaW4gd29y
a2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBi
eSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgorUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmts
ZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYnkg
dGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4KIEZBSUwgQSByZW1vdGUtb3JpZ2luIHdv
cmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQg
YnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNPTFZFRCIKIEZBSUwgQSByZW1vdGUtb3JpZ2luLXJl
ZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2Vs
ZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3Qg
IlJFU09MVkVEIgotRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3Rl
LW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0
LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQi
IGJ1dCBnb3QgIlJFU09MVkVEIgorUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5n
IGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBieSB0
aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLgogUEFTUyBBIHJlbW90ZS1vcmlnaW4gd29y
a2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3Rp
dmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3
b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxv
Y2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmln
aW4gYWxsb3dzIGl0LgorRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVt
b3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlw
dC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVt
b3RlLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3Vs
ZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5
aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgogUEFTUyBBIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3Rl
ZCB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRp
cmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgotUEFTUyBBIHNhbWUtb3Jp
Z2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBz
aG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUgc3Bl
Y2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0
IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBi
ZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhl
IG9yaWdpbiBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0
IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBub3Qg
YmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4K
LVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0
aXZlIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3Jp
cHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJF
U09MVkVEIiBidXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSByZW1vdGUtb3JpZ2luIHdvcmtsZXQg
aW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJl
Y2F1c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0LgogUEFTUyBBIHJlbW90
ZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNl
IHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4KLVBBU1MgQSBzYW1lLW9yaWdp
biB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hv
dWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxs
b3dzIGl0LgorRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9y
aWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUg
c2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3Jr
bGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVj
YXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KLVBBU1MgQSBzYW1l
LW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBu
b3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0
cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3Jr
bGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tl
ZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBz
Y3JpcHQtc3JjIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBi
dXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5n
IGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJ5IHRoZSB3b3Jr
ZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdvcmtsZXRzIG9iZXkgdGhlIHNjcmlwdC1zcmMgZGly
ZWN0aXZlLgogUEFTUyBBIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBu
b3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0
cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3Jr
bGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5v
dCBiZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdvcmtsZXRz
IG9iZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLgorRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmts
ZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgbm90
IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xldHMg
b2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJS
RVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEFuIGluc2VjdXJlLW9yaWdpbiB3b3Jr
bGV0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuCiBQQVNTIEFu
IGluc2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVkIHdvcmtsZXQgc2hvdWxkIGJlIGJsb2NrZWQgYmVj
YXVzZSBvZiBtaXhlZCBjb250ZW50cy4KLUZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9y
dGluZyBhbiBpbnNlY3VyZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ug
b2YgbWl4ZWQgY29udGVudHMuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0
IGdvdCAiUkVTT0xWRUQiCi1GQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYW4g
aW5zZWN1cmUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1
c2Ugb2YgbWl4ZWQgY29udGVudHMuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RFRCIg
YnV0IGdvdCAiUkVTT0xWRUQiCitQQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcg
YW4gaW5zZWN1cmUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBiZWNhdXNlIG9mIG1p
eGVkIGNvbnRlbnRzLgorUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGFuIGlu
c2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBiZWNhdXNl
IG9mIG1peGVkIGNvbnRlbnRzLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtaW1wb3J0Lmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IGZlODk2NWFlZjZjYWRhMjIxOWVmOGUzMDg4OGJhOTFlMjQwMTdhYzAuLjY3NjQ3ZDQ2ODdiOWQz
Y2ZjODZlMGIyYzhmNTY4ZTIwZjViZWMzOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQu
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0xNiw3ICsxNiw3IEBAIFBBU1MgSW1wb3J0aW5nIGEgY3Jvc3Mgb3JpZ2luIHJlc291
cmNlIHdpdGggdGhlIEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiBoZWFkCiBQQVNTIEltcG9y
dGluZyBhIGNyb3NzIG9yaWdpbiByZXNvdXJjZSB3aXRob3V0IHRoZSBBY2Nlc3MtQ29udHJvbC1B
bGxvdy1PcmlnaW4gaGVhZGVyIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UKIFBBU1Mg
SW1wb3J0aW5nIGEgY3Jvc3Mtb3JpZ2luLXJlZGlyZWN0ZWQgcmVzb3VyY2Ugd2l0aCB0aGUgQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhlYWRlciBzaG91bGQgcmVzb2x2ZSB0aGUgZ2l2ZW4g
cHJvbWlzZQogUEFTUyBJbXBvcnRpbmcgYSBjcm9zcy1vcmlnaW4tcmVkaXJlY3RlZCByZXNvdXJj
ZSB3aXRob3V0IHRoZSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4gaGVhZGVyIHNob3VsZCBy
ZWplY3QgdGhlIGdpdmVuIHByb21pc2UKLUZBSUwgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaGFz
IGEgc3ludGF4IGVycm9yIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuIGFzc2VydF91
bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCi1GQUlMIEltcG9ydGluZyBhIG5lc3RlZCBzY3JpcHQgdGhhdCBoYXMgYSBzeW50
YXggZXJyb3Igc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4gYXNzZXJ0X3VucmVhY2hl
ZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNv
ZGUKLUZBSUwgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaW1wb3J0cyBhbiBpbnZhbGlkIGlkZW50
aWZpZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4gYXNzZXJ0X3VucmVhY2hlZDog
U2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUK
K1BBU1MgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaGFzIGEgc3ludGF4IGVycm9yIHNob3VsZCBy
ZWplY3QgdGhlIGdpdmVuIHByb21pc2UuCitQQVNTIEltcG9ydGluZyBhIG5lc3RlZCBzY3JpcHQg
dGhhdCBoYXMgYSBzeW50YXggZXJyb3Igc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4K
K1BBU1MgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaW1wb3J0cyBhbiBpbnZhbGlkIGlkZW50aWZp
ZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3Jr
bGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1yZWZlcnJlci5odHRw
cy1leHBlY3RlZC50eHQKaW5kZXggMjRkNDk5YzE0MWNlZTZkYzliMmViZTI0YmZiNGZmNGMwM2Ew
YTk3My4uOWY2ZDExMzA1OWQ5ZmFkNTBjNjMwMDdiN2ZjZDJjYmQ2NzI3NzY1MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9h
dWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQt
cmVmZXJyZXIuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsOCBAQAorQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9y
ZXNvdXJjZXMvcmVmZXJyZXItY2hlY2tlci5weT9yZWZlcnJlcl9wb2xpY3k9bm8tcmVmZXJyZXIm
ZXhwZWN0ZWRfcmVmZXJyZXI9CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6
Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9yZWZlcnJlci1jaGVja2Vy
LnB5P3JlZmVycmVyX3BvbGljeT1vcmlnaW4mZXhwZWN0ZWRfcmVmZXJyZXI9aHR0cHM6Ly9sb2Nh
bGhvc3Q6OTQ0My8KK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0
NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3Jr
bGV0cy9yZXNvdXJjZXMvcmVmZXJyZXItY2hlY2tlci5weT9yZWZlcnJlcl9wb2xpY3k9c2FtZS1v
cmlnaW4mZXhwZWN0ZWRfcmVmZXJyZXI9CitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczov
L2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbi4KIAogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHBhZ2Ug
dGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJl
ZmVycmVyLgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcGFn
ZSB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQg
cmVmZXJyZXIuCkBAIC02LDE1ICsxMSwxNSBAQCBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmln
aW4gc2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbAogUEFT
UyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgInNh
bWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCiBQQVNTIElt
cG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJzYW1l
LW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4KIFBBU1Mg
SW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0
IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90
IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZy
b20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJl
ZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCitGQUlMIEltcG9ydGluZyBh
IHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0
aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVm
ZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiQ3Jvc3Mt
b3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmlu
ZyBwb2xpY3kuIgogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJl
bW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJl
ciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgogUEFTUyBJbXBvcnRpbmcgYSByZW1v
dGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0
IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJy
ZXIuCiBQQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmln
aW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3Vs
ZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBm
cm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJy
ZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9y
aWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMg
Im9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBv
cnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0
IHNjcmlwdCB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVm
ZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1v
cmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xp
Y3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4g
c2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1v
cmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIElt
cG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0
IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90
IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZy
b20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgorRkFJTCBJbXBvcnRpbmcgYSBy
ZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhh
dCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3Jp
cHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIK
K0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2lu
IHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQg
c2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290
ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCitGQUlMIEltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRo
YXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4gYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJDcm9zcy1vcmlnaW4gc2Ny
aXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4i
CitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4g
d29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hv
dWxkIHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0
IGdvdCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIgorRkFJTCBJbXBvcnRpbmcg
YSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQg
dGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJl
ZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3Nz
LW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJp
bmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBy
ZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJy
ZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4i
CitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3Jp
Z2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQi
IGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2lu
IFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtcmVkaXJlY3RlZC13b3Jr
ZXItb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0ZWQtd29ya2VyLW9yaWdpbi1leHBlY3Rl
ZC50eHQKaW5kZXggMWUyZDM5OTJmNmQ1ZGYzMjIwN2E2YjBmNjE5YTZkNzExODEyNDAwZC4uN2E3
YTkxN2VhYTk4ZTkyZWUwM2VjMjhhMTFlNzgwODRkMjM0Yjg4NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtcmVkaXJl
Y3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1yZWRpcmVjdGVkLXdvcmtlci1v
cmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHA6Ly93d3cyLmxvY2FsaG9zdDo4ODAwL3hoci9yZXNvdXJjZXMvaW5zcGVj
dC1oZWFkZXJzLnB5P2ZpbHRlcl9uYW1lPW9yaWdpbiZjb3JzCiAKLUZBSUwgUmVmZXJlciBoZWFk
ZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJlZmVyZXI6IGh0dHA6Ly9sb2NhbGhvc3Q6ODgw
MC94aHIvcmVzb3VyY2VzL3dvcmtlcnhoci1vcmlnaW4tcmVmZXJyZXIuanNcbiIgYnV0IGdvdCAi
UmVmZXJlcjogaHR0cDovL2xvY2FsaG9zdDo4ODAwL3hoci9yZXNvdXJjZXMvcmVkaXJlY3QucHk/
bG9jYXRpb249d29ya2VyeGhyLW9yaWdpbi1yZWZlcnJlci5qc1xuIgorUEFTUyBSZWZlcmVyIGhl
YWRlcgogRkFJTCBPcmlnaW4gaGVhZGVyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJPcmlnaW46
IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMFxuIiBidXQgZ290ICIiCiBQQVNTIFJlcXVlc3QgVVJMIHRl
c3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW93b3JrbGV0LWFkZE1v
ZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvd29y
a2xldC1hZGRNb2R1bGUtZmFpbHVyZS1leHBlY3RlZC50eHQKaW5kZXggMDhhZjExNDM2MDU1MWJm
NWE4MDc5YWYwYTM4MTVjNGUwOGViZDE0My4uZGVmMzNhZDg2OTFiNjk0MzZlMGUxODFjNWJkMDA0
ODM1NDgzNTFiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW93b3JrbGV0
LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZhaWx1cmUtZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQs
NyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgY29udGV4dC5hdWRpb1dvcmts
ZXQuYWRkTW9kdWxlKGludmFsaWRVUkwpOyByZWplY3RlZCBwcm9taXNlICB3aXRoIFN5bnRheEVy
cm9yOiBNb2R1bGUgVVJMIGlzIGludmFsaWQuCi1QQVNTIGNvbnRleHQuYXVkaW9Xb3JrbGV0LmFk
ZE1vZHVsZSgnZG9lc25vdEV4aXN0LmpzJyk7IHJlamVjdGVkIHByb21pc2UgIHdpdGggQWJvcnRF
cnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFRoZSByZXF1ZXN0ZWQgVVJMIHdh
cyBub3QgZm91bmQgb24gdGhpcyBzZXJ2ZXIuLgorUEFTUyBjb250ZXh0LmF1ZGlvV29ya2xldC5h
ZGRNb2R1bGUoJ2RvZXNub3RFeGlzdC5qcycpOyByZWplY3RlZCBwcm9taXNlICB3aXRoIEFib3J0
RXJyb3I6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLi4KIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vd29ya2xldC1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby93b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dAppbmRleCA2NTRkZGY3ZjE3ZWZhYjU4ZTQy
ZmFiZTM4NTI1Nzk2NGFlMmM1ZDQxLi4xYTQzZTNmOTdjYjJmMDZiOWY3Y2Q1ZjJiMTgyMzM4MTA1
MTNlZWYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby93b3JrbGV0LWNyYXNoLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby93b3JrbGV0LWNyYXNoLWV4cGVj
dGVkLnR4dApAQCAtMSArMSwyIEBACitDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogJ3RleHQv
aHRtbCcgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCiBUaGlzIHRlc3QgcGFz
c2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420925</attachid>
            <date>2021-02-18 23:02:39 -0800</date>
            <delta_ts>2021-02-18 23:36:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210218230238.patch</filename>
            <type>text/plain</type>
            <size>247336</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MjJkM2U1NmU1OGNhNjNiMGYwZDYyZWIzMDg4Yjc3MTI3ZGZkNGYxLi5lMjI1MDJmZDZhYzM5NzAy
NWNiOGNjOGYwNTExZWU5YmJhNGU3OWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MyBAQAorMjAyMS0wMi0xOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGVycm9yIGluZm9ybWF0aW9uIHRvIGV4dHJh
Y3QgdGhpcyBpbiBXZWJDb3JlJ3MgbW9kdWxlIGxvYWRlci4KKyAgICAgICAgQ3VycmVudGx5LCB3
ZSBhcmUgdXNpbmcgUHJvbWlzZSBwaXBlbGluZSwgYW5kIHRoaXMgbWFrZXMgaXQgYSBiaXQgZGlm
ZmljdWx0IHRvIGV4dHJhY3QgZXJyb3IgaW5mb3JtYXRpb24uCisgICAgICAgIFRoaXMgZXJyb3Ig
aW5mb3JtYXRpb24gYXR0YWNoZWQgaW4gdGhpcyBwYXRjaCBhbGxvd3MgdXMgdG8gZXh0cmFjdCBT
eW50YXhFcnJvciBpbiBXZWJDb3JlLCBhbmQgdGhyb3dpbmcKKyAgICAgICAgSlMgU3ludGF4RXJy
b3IgaW5zdGVhZCBvZiBBYm9ydEVycm9yLgorCisgICAgICAgIFdlIGFyZSBwbGFubmluZyB0byB1
cGRhdGUgb3VyIG1vZHVsZSBwaXBpZWxpbmUgbm90IHVzaW5nIFByb21pc2VzIGluIHRoZSBmdXR1
cmUuIFRoZSBjdXJyZW50IGRlc2lnbiBkZXJpdmVkCisgICAgICAgIGZyb20gdGhlIG9yaWdpbmFs
IG1vZHVsZSBsb2FkZXIgcGlwZWxpbmUgd2hlcmUgdXNpbmcgUHJvbWlzZXMgaXMgY3JpdGljYWwu
IEJ1dCBub3csIHRoYXQgcHJvcG9zYWwgd2FzIGFiYW5kb25lZCwKKyAgICAgICAgc28gd2UgY2Fu
IGp1c3Qgc2ltcGxpZnkgdGhlIG1vZHVsZSBsb2FkZXIuCisKKyAgICAgICAgKiBydW50aW1lL0Fn
Z3JlZ2F0ZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0
ZUVycm9yKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3Jl
YXRlRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgorICAgICAgICAoSlND
OjpjcmVhdGVSYW5nZUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVmZXJlbmNlRXJyb3Ip
OgorICAgICAgICAoSlNDOjpjcmVhdGVTeW50YXhFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0
ZVR5cGVFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToKKyAgICAgICAgKEpT
Qzo6Y3JlYXRlR2V0dGVyVHlwZUVycm9yKToKKyAgICAgICAgKEpTQzo6dGhyb3dTeW50YXhFcnJv
cik6CisgICAgICAgICogcnVudGltZS9FcnJvci5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgICogcnVudGltZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJy
b3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6
OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VT
dHJpbmcpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5n
KToKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAg
ICAgICAqIHJ1bnRpbWUvRXJyb3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3Rh
bmNlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjplcnJvclR5cGUgY29u
c3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUv
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29u
c3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAgIChKU0M6Ok5hdGl2
ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y2FsbEltcGwpOgorICAgICAgICAqIHJ1bnRp
bWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0
aW9uSW50ZXJuYWw6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9q
cy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3Nl
bWJseUNvbXBpbGVFcnJvcjo6SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6CisgICAgICAgICog
d2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJB
c3NlbWJseUxpbmtFcnJvcjo6SlNXZWJBc3NlbWJseUxpbmtFcnJvcik6CisgICAgICAgICogd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvcjo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcik6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6CisKIDIwMjEtMDItMTYgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgb3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSBzaG91bGQgY2FsbCB0cnlDcmVhdGUg
aW5zdGVhZCBvZiBjcmVhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MDIyZGJiYzViMTBhMWQ3NmYyYjRhOTI1
MjI2M2Q2ZWJmM2IwOTQ0Li4wODY0ODM5ZGRmZTc4ODFhOTVmNmRlMGZkZDFkMGM2ZmMwZjA4ZDNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTU2IEBACisyMDIxLTAyLTE4ICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBXb3JrZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ4NjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGltcGxlbWVudHMgSlMgbW9kdWxlcyBpbiBXb3JrZXJzIGFuZCBXb3JrbGV0cy4gV2UgYXJlIG5v
dCBzdXBwb3J0aW5nIG1vZHVsZXMgaW4gU2VydmljZVdvcmtlcnMnIGluaXRpYWxpemF0aW9uIHll
dC4KKyAgICAgICAgQnV0IHNlcnZpY2Utd29ya2VyIGNhbiBpbXBvcnQgbW9kdWxlcyB2aWEgSlMg
YGltcG9ydCgpYC4KKworICAgICAgICBUaGUgd29ya2VyIGNhbiBiZSBleGVjdXRlZCBhcyBhIG1v
ZHVsZSBpZiB3ZSBwYXNzLCBgdHlwZTogIm1vZHVsZSJgIHRvIHdvcmtlciBvcHRpb25zLiBXb3Jr
bGV0IGlzIGV4ZWN1dGVkIGFzIG1vZHVsZXMgYnkgZGVmYXVsdC4KKworICAgICAgICAxLiBJbiBX
b3JrZXIsIHdlIGZpcnN0IGZldGNoIHRoZSBpbml0aWFsIGNvZGUuIEFuZCB0aGVuLCBhbmFseXpl
IHRoZSBkZXBlbmRlbmNpZXMgYW5kIGxvYWQgc3Vic2VxdWVudCBtb2R1bGVzLgorICAgICAgICAg
ICBXZSBpdGVyYXRlIHJ1bi1sb29wIHRvIGxvYWQgYWxsIHRoZSBkZXBlbmRlbnQgbW9kdWxlcyBp
biB0aGUgbW9kdWxlIGxvYWRlci4gQXQgdGhhdCB0aW1lLCB3ZSBhbm5vdGF0ZSBydW4tbG9vcCB0
YXNrcyB3aXRoCisgICAgICAgICAgIHNwZWNpYWwgdGFza01vZGUgdG8gaXRlcmF0ZSB0YXNrcyB3
aXRoIHRoaXMgdGFza01vZGUuIFRoaXMgcHJldmVudHMgdXMgZnJvbSBkaXNjYXJkaW5nIGRpZmZl
cmVudCB0YXNrcyBpbiB0aGlzIHJ1bi1sb29wIGRyaXZpbmcKKyAgICAgICAgICAgcGhhc2UuIChl
LmcuIHBvc3RNZXNzYWdlIGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQgd2hpbGUg
bG9hZGluZyBtb2R1bGUgZ3JhcGgsIGluIHRoYXQgY2FzZSwgd2Ugc2hvdWxkIG5vdCBkaXNjYXJk
IHRoaXMKKyAgICAgICAgICAgdGFzay4pCisKKyAgICAgICAgMi4gSW4gV29ya2xldCwgd2UganVz
dCByZXF1ZXN0IG1vZHVsZSBsb2FkaW5nIHRvIFNjcmlwdE1vZHVsZUxvYWRlciwgYW5kIHJ1biBp
dCBhZnRlciBsb2FkaW5nIG1vZHVsZSBncmFwaC4gVGhpcyBpcyBPSyBzaW5jZSB3b3JrbGV0Cisg
ICAgICAgICAgIHRocmVhZCBpcyBhbHJlYWR5IHJ1bm5pbmcuIFNvIHdlIGNhbiBqdXN0IHJlcXVl
c3QgbW9kdWxlcyBhbmQgd29ya2xldCB0aHJlYWQgYXV0b21hdGljYWxseSBkcml2ZXMgbW9kdWxl
IGxvYWRpbmcgdmlhIHJ1bi1sb29wLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmg6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6Y3VycmVudEZyYW1lIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpzYW1w
bGVSYXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldEds
b2JhbFNjb3BlOjpjdXJyZW50VGltZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRl
cik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hl
ZCk6CisgICAgICAgICogYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmg6Cisg
ICAgICAgICogYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHA6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpyZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZURPTUV4Y2VwdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25I
YW5kbGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRmV0Y2gpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUlt
cG9ydE1ldGFQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRj
aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxv
YWRlckV2YWx1YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFz
ZTo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMp
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclR5cGUuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExv
YWRlcjo6Y2xlYXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlU2NyaXB0TG9hZGVy
OjpzY3JpcHRGZXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6
cGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVTY3JpcHRMb2FkZXI6Ok1vZHVs
ZVNjcmlwdExvYWRlcik6CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRN
b2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpT
Y3JpcHRNb2R1bGVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZU1vZHVsZVNwZWNp
Zmllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc29sdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaCk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVSTCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwpOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRT
b3VyY2VDb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpTY3JpcHRT
b3VyY2VDb2RlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2Fk
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVs
ZVNjcmlwdExvYWRlcjo6fldvcmtlck1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OnRhc2tNb2RlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmguCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0RmV0Y2hlci5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGRvbS9FeGNlcHRpb25Db2RlLmg6CisgICAgICAgICogZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvYWRhYmxlTW9kdWxlU2NyaXB0Ojpsb2Fk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaDoKKyAgICAg
ICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVt
ZW50OjpyZXF1ZXN0TW9kdWxlU2NyaXB0KToKKyAgICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUpOgor
ICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpU
aHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXI6Oldvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmlkbDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Oldvcmtlckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJHbG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyk6CisgICAgICAgICogd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6
OmNyZWRlbnRpYWxzIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
UHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNj
b3BlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAg
ICogd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVMb2FkZXIp
OgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpqc1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVs
ZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZSk6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmg6CisgICAg
ICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyU2NyaXB0TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3Jp
cHRMb2FkZXI6OnJlc3BvbnNlU291cmNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdExvYWRlcjo6aXNSZWRpcmVjdGVkIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dv
cmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJQYXJhbWV0ZXJzOjppc29s
YXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpldmFsdWF0
ZVNjcmlwdElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyVHlwZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VySm9iLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6OmZl
dGNoU2NyaXB0V2l0aENvbnRleHQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oOgorICAgICAgICAqIHdvcmtsZXRzL1BhaW50
V29ya2xldEdsb2JhbFNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXRHbG9i
YWxTY29wZTo6cGFpbnREZWZpbml0aW9uTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlBhaW50V29ya2xldEdsb2JhbFNjb3BlOjpwYWludERlZmluaXRpb25Mb2NrKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlBhaW50V29ya2xldEdsb2JhbFNjb3BlOjp+UGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGUpOiBEZWxldGVkLgorICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxT
Y29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmZldGNoQW5k
SW52b2tlU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6cHJv
Y2Vzc05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldvcmtsZXRHbG9iYWxTY29wZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6bm90aWZ5RmluaXNoZWQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2xldEdsb2JhbFNjb3BlOjpkaWRDb21wbGV0ZVNj
cmlwdEZldGNoSm9iKTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFs
U2NvcGUuaDoKKwogMjAyMS0wMi0xNiAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW1wbGVtZW50IEdyaWQgT3ZlcmxheSAiU2hvdyBh
cmVhIG5hbWVzIiBkcmF3aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BZ2dyZWdhdGVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
Z2dyZWdhdGVFcnJvci5jcHAKaW5kZXggNzU5YTViMjRhMGVkMDg2ODBjY2FhNjM0MGQyZTk1ZDQ1
MGI4MGZkNi4uMjk2Yzg1Y2M5MGUwNWI1NDU0N2Y2NjJhN2UyZjhhMWUxMzBhNDZkYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcApAQCAt
MzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNvbnN0IENsYXNzSW5mbyBBZ2dyZWdhdGVF
cnJvcjo6c19pbmZvID0geyAiQWdncmVnYXRlRXJyb3IiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFnZ3JlZ2F0ZUVycm9yKSB9OwogCiBBZ2dy
ZWdhdGVFcnJvcjo6QWdncmVnYXRlRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
LSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgRXJy
b3JUeXBlOjpBZ2dyZWdhdGVFcnJvcikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3IuY3BwCmluZGV4IGY0NzNiODE4MWVjMmYwMmEwY2M3OGEyNmMwYzIwZGM5NjMxZmRj
NzQuLmZjYWNmMWUzMjJlYjI3Mjc4NzRmZjI1MjYyNDFlZDdiZTk4Y2U1MzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKQEAgLTM1LDM3ICszNSwzNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVy
IGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVy
biBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCks
IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVO
b3RoaW5nLCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCks
IG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgdHJ1ZSk7
CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRl
ciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1
cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgp
LCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6RXZhbEVycm9yKSwgbWVz
c2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmpl
Y3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6RXZhbEVycm9yKSwgbWVzc2FnZSwgYXBwZW5k
ZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkV2YWxFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2Jq
ZWN0KiBjcmVhdGVSYW5nZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIp
CiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5z
dGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2Jq
ZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJhbmdlRXJyb3IpLCBtZXNzYWdlLCBhcHBl
bmRlciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JT
dHJ1Y3R1cmUoRXJyb3JUeXBlOjpSYW5nZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVO
b3RoaW5nLCBFcnJvclR5cGU6OlJhbmdlRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3Jl
YXRlUmVmZXJlbmNlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsK
ICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5j
ZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3Qt
PmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmVmZXJlbmNlRXJyb3IpLCBtZXNzYWdlLCBhcHBl
bmRlciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JT
dHJ1Y3R1cmUoRXJyb3JUeXBlOjpSZWZlcmVuY2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBU
eXBlTm90aGluZywgRXJyb3JUeXBlOjpSZWZlcmVuY2VFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2Jq
ZWN0KiBjcmVhdGVTeW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVy
KQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvcklu
c3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9i
amVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpTeW50YXhFcnJvciksIG1lc3NhZ2UsIGFw
cGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNy
ZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJv
clN0cnVjdHVyZShFcnJvclR5cGU6OlN5bnRheEVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5
cGVOb3RoaW5nLCBFcnJvclR5cGU6OlN5bnRheEVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3Qq
IGNyZWF0ZVR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50
aW1lVHlwZSB0eXBlKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJl
dHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZt
KCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBt
ZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6
OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5l
cnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCB0
eXBlLCBFcnJvclR5cGU6OlR5cGVFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJv
ckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKQEAgLTc2LDcgKzc2LDcgQEAgSlNP
YmplY3QqIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVycm9ySW5zdGEKIEpTT2JqZWN0KiBjcmVhdGVVUklFcnJvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6
OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5
KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpV
UklFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0
dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0o
KSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlVSSUVycm9yKSwgbWVz
c2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlVSSUVycm9yLCB0cnVlKTsK
IH0KIAogSlNPYmplY3QqIGNyZWF0ZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEVycm9yVHlwZSBlcnJvclR5cGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTExMyw3ICsx
MTMsNyBAQCBKU09iamVjdCogY3JlYXRlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRXJyb3JUeXBlV2l0aEV4dGVuc2lvbiBlcnJvcgogSlNPYmplY3QqIGNyZWF0ZUdldHRlclR5
cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgYXV0byogZXJyb3Ig
PSBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCks
IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNz
YWdlKTsKKyAgICBhdXRvKiBlcnJvciA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJv
clR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5
cGU6OlR5cGVFcnJvcik7CiAgICAgZXJyb3ItPnNldE5hdGl2ZUdldHRlclR5cGVFcnJvcigpOwog
ICAgIHJldHVybiBlcnJvcjsKIH0KQEAgLTI3NCw3ICsyNzQsNyBAQCBFeGNlcHRpb24qIHRocm93
VHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHNjb3Bl
LCBjb25zdAogCiBFeGNlcHRpb24qIHRocm93U3ludGF4RXJyb3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUpCiB7Ci0gICAgcmV0dXJuIHRocm93RXhjZXB0
aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwg
IlN5bnRheCBlcnJvciJfcykpOworICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QpKTsKIH0KIAogRXhjZXB0
aW9uKiB0aHJvd1N5bnRheEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93
U2NvcGUmIHNjb3BlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0zMTcsNiArMzE3LDExIEBA
IEpTT2JqZWN0KiBjcmVhdGVTeW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgcmV0dXJuIGNyZWF0ZVN5bnRheEVycm9yKGds
b2JhbE9iamVjdCwgbWVzc2FnZSwgbnVsbHB0cik7CiB9CiAKK0pTT2JqZWN0KiBjcmVhdGVTeW50
YXhFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIHJldHVybiBjcmVh
dGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsICJTeW50YXggZXJyb3IiX3MsIG51bGxwdHIpOwor
fQorCiBKU09iamVjdCogY3JlYXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsICJUeXBlIGVy
cm9yIl9zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oCmluZGV4IDZkYWExNTQy
MTU2NjYxMGU0YWNlNmRlMzM1ZjM0ZDNiZjdjNzQ0NGQuLmRjODI1MjgyYzM1NjQ4NzEzMjU0NTQ0
YmM4ZDgxODg4NDAwZTQzOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaApA
QCAtNTUsNiArNTUsNyBAQCBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlRXZhbEVy
cm9yKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CiBKU19FWFBPUlRfUFJJVkFURSBK
U09iamVjdCogY3JlYXRlUmFuZ2VFcnJvcihKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYp
OwogSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZVJlZmVyZW5jZUVycm9yKEpTR2xv
YmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCog
Y3JlYXRlU3ludGF4RXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmKTsKK0pTX0VY
UE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVTeW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCop
OwogSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZVR5cGVFcnJvcihKU0dsb2JhbE9i
amVjdCopOwogSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZVR5cGVFcnJvcihKU0ds
b2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYpOwogSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3Qq
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKEpTR2xvYmFsT2JqZWN0Kik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4
IDBmMmY1YTMxODQwMmZiYjdjN2Q4ODAyYjZkNzg0MmVmZTQwNmM4NDYuLjliZTkzMGNmMWMzYzlh
NDBlNjA4NTk4MzU1OGExYTU5YmM3OGI2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCkBAIC02MCwxNCArNjAsMTQgQEAgSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVT
dWJjbGFzc1N0cnVjdHVyZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgZ2V0RnVuY3Rpb25SZWFs
bSh2bSwgbmV3VGFyZ2V0KS0+ZXJyb3JTdHJ1Y3R1cmUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKIAotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0
dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKSk7CisgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRl
KGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3Ro
aW5nLCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNhbGxFcnJvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxG
cmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2Jh
bE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVy
cm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdl
LCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBt
ZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsK
IH0KIAogYm9vbCBFcnJvckNvbnN0cnVjdG9yOjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4IDJlNGVjMzlmMTIwNThiMjUwODcyMmUwYjgy
NTIyNDdiZWIwMzE5ZTYuLjBmODZlMjJiOTJkZGQ2ZDEzOTg1OGI4NmU1NmNlYWRjYWVjZTBkNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3Bw
CkBAIC0zNCwxOCArMzQsMjMgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBF
cnJvckluc3RhbmNlOjpzX2luZm8gPSB7ICJFcnJvciIsICZKU05vbkZpbmFsT2JqZWN0OjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoRXJyb3JJbnN0YW5jZSkg
fTsKIAotRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQorRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBFcnJvclR5cGUgZXJyb3JUeXBlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
KQorICAgICwgbV9lcnJvclR5cGUoZXJyb3JUeXBlKQorICAgICwgbV9zdGFja092ZXJmbG93RXJy
b3IoZmFsc2UpCisgICAgLCBtX291dE9mTWVtb3J5RXJyb3IoZmFsc2UpCisgICAgLCBtX2Vycm9y
SW5mb01hdGVyaWFsaXplZChmYWxzZSkKKyAgICAsIG1fbmF0aXZlR2V0dGVyVHlwZUVycm9yKGZh
bHNlKQogewogfQogCi1FcnJvckluc3RhbmNlKiBFcnJvckluc3RhbmNlOjpjcmVhdGUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVz
c2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUsIGJvb2wgdXNl
Q3VycmVudEZyYW1lKQorRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVlIG1l
c3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50aW1lVHlwZSB0eXBlLCBFcnJvclR5
cGUgZXJyb3JUeXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIFN0cmluZyBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS5pc1VuZGVmaW5lZCgpID8gU3Ry
aW5nKCkgOiBtZXNzYWdlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgcmV0dXJuIGNyZWF0ZShnbG9iYWxPYmpl
Y3QsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2VTdHJpbmcsIGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJy
ZW50RnJhbWUpOworICAgIHJldHVybiBjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJl
LCBtZXNzYWdlU3RyaW5nLCBhcHBlbmRlciwgdHlwZSwgZXJyb3JUeXBlLCB1c2VDdXJyZW50RnJh
bWUpOwogfQogCiBzdGF0aWMgU3RyaW5nIGFwcGVuZFNvdXJjZVRvRXJyb3JNZXNzYWdlKENhbGxG
cmFtZSogY2FsbEZyYW1lLCBFcnJvckluc3RhbmNlKiBleGNlcHRpb24sIEJ5dGVjb2RlSW5kZXgg
Ynl0ZWNvZGVJbmRleCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTMxLDcgKzEzNiwyNSBA
QCB2b2lkIEVycm9ySW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgUwogLy8gQmFzZWQgb24gRXJyb3JQcm90b3R5cGUncyBl
cnJvclByb3RvRnVuY1RvU3RyaW5nKCksIGJ1dCBpcyBtb2RpZmllZCB0bwogLy8gaGF2ZSBubyBv
YnNlcnZhYmxlIHNpZGUgZWZmZWN0cyB0byB0aGUgdXNlciAoaS5lLiBkb2VzIG5vdCBjYWxsIHBy
b3hpZXMsCiAvLyBhbmQgZ2V0dGVycykuCi1TdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVk
VG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK1N0cmluZyBFcnJvckluc3Rh
bmNlOjpzYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
Cit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBJbnRlZ3JpdHk6OmF1ZGl0U3RydWN0dXJlSUQo
dm0sIHN0cnVjdHVyZUlEKCkpOworCisgICAgSlNWYWx1ZSBtZXNzYWdlVmFsdWU7CisgICAgYXV0
byBtZXNzYWdlUHJvcGVydE5hbWUgPSB2bS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlOworICAgIFBy
b3BlcnR5U2xvdCBtZXNzYWdlU2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9k
VHlwZTo6Vk1JbnF1aXJ5LCAmdm0pOworICAgIGlmIChKU09iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVByb3BlcnROYW1lLCBtZXNzYWdlU2xvdCkg
JiYgbWVzc2FnZVNsb3QuaXNWYWx1ZSgpKQorICAgICAgICBtZXNzYWdlVmFsdWUgPSBtZXNzYWdl
U2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSk7CisgICAgc2Nv
cGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKKworICAgIGlmICghbWVzc2FnZVZhbHVlKQorICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBtZXNzYWdl
VmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KSk7Cit9CisKK1N0cmluZyBFcnJvckluc3Rh
bmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1NywyOCArMTgwLDIyIEBAIFN0cmluZyBFcnJvcklu
c3RhbmNlOjpzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQog
ICAgIH0KICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogCi0gICAgU3RyaW5nIG5hbWVT
dHJpbmc7CiAgICAgaWYgKCFuYW1lVmFsdWUpCi0gICAgICAgIG5hbWVTdHJpbmcgPSAiRXJyb3Ii
X3M7Ci0gICAgZWxzZSB7Ci0gICAgICAgIG5hbWVTdHJpbmcgPSBuYW1lVmFsdWUudG9XVEZTdHJp
bmcoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgU3Ry
aW5nKCkpOwotICAgIH0KKyAgICAgICAgcmV0dXJuICJFcnJvciJfczsKKyAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIG5hbWVWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpKTsKK30K
IAotICAgIEpTVmFsdWUgbWVzc2FnZVZhbHVlOwotICAgIGF1dG8gbWVzc2FnZVByb3BlcnROYW1l
ID0gdm0ucHJvcGVydHlOYW1lcy0+bWVzc2FnZTsKLSAgICBQcm9wZXJ0eVNsb3QgbWVzc2FnZVNs
b3QodGhpcywgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSwgJnZt
KTsKLSAgICBpZiAoSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzLCBnbG9iYWxPYmpl
Y3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSwgbWVzc2FnZVNsb3QpICYmIG1lc3NhZ2VTbG90LmlzVmFs
dWUoKSkKLSAgICAgICAgbWVzc2FnZVZhbHVlID0gbWVzc2FnZVNsb3QuZ2V0VmFsdWUoZ2xvYmFs
T2JqZWN0LCBtZXNzYWdlUHJvcGVydE5hbWUpOwotICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9u
KCk7CitTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Cisg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEludGVncml0eTo6
YXVkaXRTdHJ1Y3R1cmVJRCh2bSwgc3RydWN0dXJlSUQoKSk7CiAKLSAgICBTdHJpbmcgbWVzc2Fn
ZVN0cmluZzsKLSAgICBpZiAoIW1lc3NhZ2VWYWx1ZSkKLSAgICAgICAgbWVzc2FnZVN0cmluZyA9
IFN0cmluZygpOwotICAgIGVsc2UgewotICAgICAgICBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZVZh
bHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIFN0cmluZygpKTsKLSAgICB9CisgICAgU3RyaW5nIG5hbWVTdHJpbmcgPSBzYW5p
dGl6ZWROYW1lU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgU3RyaW5nKCkpOworCisgICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmcgPSBzYW5pdGl6ZWRN
ZXNzYWdlU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgU3RyaW5nKCkpOwogCiAgICAgaWYgKCFuYW1lU3RyaW5nLmxlbmd0aCgpKQogICAgICAgICBy
ZXR1cm4gbWVzc2FnZVN0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAppbmRleCBkYTY2ZWI3NmU3YWRlOTBmZDQxYmIxNjI3MDcyNWE3ZDE0NzBh
ZDM4Li45ODcxMzU3MjFiMzA1NjYyMzBkMjYxYzgzM2FkOGRlY2E1NDYxNDU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC0yMCw2ICsyMCw3
IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRXJyb3JUeXBlLmgiCiAjaW5jbHVkZSAi
SlNPYmplY3QuaCIKICNpbmNsdWRlICJSdW50aW1lVHlwZS5oIgogI2luY2x1ZGUgIlN0YWNrRnJh
bWUuaCIKQEAgLTUzLDE0ICs1NCwxNCBAQCBjbGFzcyBFcnJvckluc3RhbmNlIDogcHVibGljIEpT
Tm9uRmluYWxPYmplY3QgewogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhFcnJvckluc3RhbmNlVHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBj
cmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciA9
IG51bGxwdHIsIFJ1bnRpbWVUeXBlIHR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJyZW50
RnJhbWUgPSB0cnVlKQorICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRp
bWVUeXBlIHR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JUeXBlIGVycm9yVHlwZSA9IEVycm9yVHlw
ZTo6RXJyb3IsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKICAgICB7Ci0gICAgICAgIEVy
cm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8RXJyb3JJ
bnN0YW5jZT4odm0uaGVhcCkpIEVycm9ySW5zdGFuY2Uodm0sIHN0cnVjdHVyZSk7CisgICAgICAg
IEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8RXJy
b3JJbnN0YW5jZT4odm0uaGVhcCkpIEVycm9ySW5zdGFuY2Uodm0sIHN0cnVjdHVyZSwgZXJyb3JU
eXBlKTsKICAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3Qs
IG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBlLCB1c2VDdXJyZW50RnJhbWUpOwogICAgICAgICByZXR1
cm4gaW5zdGFuY2U7CiAgICAgfQogCi0gICAgc3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0ZShK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5k
ZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRG
cmFtZSA9IHRydWUpOworICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyID0gbnVs
bHB0ciwgUnVudGltZVR5cGUgPSBUeXBlTm90aGluZywgRXJyb3JUeXBlID0gRXJyb3JUeXBlOjpF
cnJvciwgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKIAogICAgIGJvb2wgaGFzU291cmNl
QXBwZW5kZXIoKSBjb25zdCB7IHJldHVybiAhIW1fc291cmNlQXBwZW5kZXI7IH0KICAgICBTb3Vy
Y2VBcHBlbmRlciBzb3VyY2VBcHBlbmRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlQXBwZW5k
ZXI7IH0KQEAgLTcwLDYgKzcxLDcgQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKICAgICBSdW50aW1lVHlwZSBydW50aW1lVHlwZUZvckNhdXNlKCkgY29u
c3QgeyByZXR1cm4gbV9ydW50aW1lVHlwZUZvckNhdXNlOyB9CiAgICAgdm9pZCBjbGVhclJ1bnRp
bWVUeXBlRm9yQ2F1c2UoKSB7IG1fcnVudGltZVR5cGVGb3JDYXVzZSA9IFR5cGVOb3RoaW5nOyB9
CiAKKyAgICBFcnJvclR5cGUgZXJyb3JUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvclR5cGU7
IH0KICAgICB2b2lkIHNldFN0YWNrT3ZlcmZsb3dFcnJvcigpIHsgbV9zdGFja092ZXJmbG93RXJy
b3IgPSB0cnVlOyB9CiAgICAgYm9vbCBpc1N0YWNrT3ZlcmZsb3dFcnJvcigpIGNvbnN0IHsgcmV0
dXJuIG1fc3RhY2tPdmVyZmxvd0Vycm9yOyB9CiAgICAgdm9pZCBzZXRPdXRPZk1lbW9yeUVycm9y
KCkgeyBtX291dE9mTWVtb3J5RXJyb3IgPSB0cnVlOyB9CkBAIC03OSw2ICs4MSw4IEBAIGNsYXNz
IEVycm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgYm9vbCBpc05h
dGl2ZUdldHRlclR5cGVFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlR2V0dGVyVHlwZUVy
cm9yOyB9CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgc2FuaXRpemVkVG9TdHJpbmco
SlNHbG9iYWxPYmplY3QqKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgc2FuaXRpemVk
TWVzc2FnZVN0cmluZyhKU0dsb2JhbE9iamVjdCopOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0
cmluZyBzYW5pdGl6ZWROYW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgCiAgICAgVmVj
dG9yPFN0YWNrRnJhbWU+KiBzdGFja1RyYWNlKCkgeyByZXR1cm4gbV9zdGFja1RyYWNlLmdldCgp
OyB9CiAKQEAgLTg4LDcgKzkyLDcgQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKICAgICB2b2lkIGZpbmFsaXplVW5jb25kaXRpb25hbGx5KFZNJik7CiAK
IHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKFZNJiwgU3RydWN0dXJlKik7
CisgICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShWTSYsIFN0cnVjdHVyZSosIEVycm9yVHlwZSk7
CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBT
dHJpbmcmLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5vdGhp
bmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7CiAKQEAgLTEwOCwxMCArMTEyLDExIEBA
IGNsYXNzIEVycm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgU3Ry
aW5nIG1fc291cmNlVVJMOwogICAgIFN0cmluZyBtX3N0YWNrU3RyaW5nOwogICAgIFJ1bnRpbWVU
eXBlIG1fcnVudGltZVR5cGVGb3JDYXVzZSB7IFR5cGVOb3RoaW5nIH07Ci0gICAgYm9vbCBtX3N0
YWNrT3ZlcmZsb3dFcnJvciB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX291dE9mTWVtb3J5RXJyb3Ig
eyBmYWxzZSB9OwotICAgIGJvb2wgbV9lcnJvckluZm9NYXRlcmlhbGl6ZWQgeyBmYWxzZSB9Owot
ICAgIGJvb2wgbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3IgeyBmYWxzZSB9OworICAgIEVycm9yVHlw
ZSBtX2Vycm9yVHlwZSB7IEVycm9yVHlwZTo6RXJyb3IgfTsKKyAgICBib29sIG1fc3RhY2tPdmVy
Zmxvd0Vycm9yIDogMTsKKyAgICBib29sIG1fb3V0T2ZNZW1vcnlFcnJvciA6IDE7CisgICAgYm9v
bCBtX2Vycm9ySW5mb01hdGVyaWFsaXplZCA6IDE7CisgICAgYm9vbCBtX25hdGl2ZUdldHRlclR5
cGVFcnJvciA6IDE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApp
bmRleCA0MDIxZmM3ZTBhZGFmN2EwYTllMGVmNmNmZDIyNTgzOGI1YmY4NzgzLi5hZjcyNjI4MzFj
YTFiYjc1YzZhZTU1NDExZGU0Y2Q4NWE4MTM3ZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC02
OTQsNyArNjk0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNUaHJvd1R5
cGVFcnJvckFyZ3VtZW50c0NhbGxlZUFuZENhbGxlciwgKEpTR2wKIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihnbG9iYWxGdW5jTWFrZVR5cGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3Ry
dWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlR5cGVFcnJv
cik7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xv
YmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJv
ckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgY2FsbEZyYW1l
LT5hcmd1bWVudCgwKSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9y
LCBmYWxzZSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Byb3Rv
R2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVF
cnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCA3Y2MxMWI1ZjVlMTI5NzIyMDE2Yjg2NzFmMTM3YzZi
YjE3MjEzODQwLi5iNmU3ZWRlZmQ0MmVkYzYzNWQ5MGI3ZTBlOGM3YjRmYzBjMjQzZDFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNv
bnN0cnVjdG9yLmNwcApAQCAtNTgsNyArNTgsNyBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgTmF0
aXZlRXJyb3JDb25zdHJ1Y3RvcjxlcnJvclR5cGU+Ojpjb25zdHJ1Y3RJbXBsKEpTR2xvYmFsTwog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgQVNTRVJUKGVycm9yU3Ry
dWN0dXJlKTsKIAotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNz
YWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKSk7CisgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBlcnJv
clR5cGUsIGZhbHNlKSkpOwogfQogCiB0ZW1wbGF0ZTxFcnJvclR5cGUgZXJyb3JUeXBlPgpAQCAt
NjYsNyArNjYsNyBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rv
cjxlcnJvclR5cGU+OjpjYWxsSW1wbChKU0dsb2JhbE9iamVjdAogewogICAgIEpTVmFsdWUgbWVz
c2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVj
dHVyZSA9IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoZXJyb3JUeXBlKTsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVy
cm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZXJyb3JU
eXBlLCBmYWxzZSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEV2YWxFcnJv
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rp
b24uY3BwCmluZGV4IDI2ZjNiNmE4ZjlkYjY3OGNkOTRkMDVhZTg4YjExYjg5ZTYxYzBlYmMuLjBk
ZGIyYzZhNTBmNDZiYzYzNjk5NWNhNDZkN2YxOGU1YjI2ODYzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcApAQCAtOTQs
NyArOTQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFRocm93RXJyb3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVk
IGZyb20gSUMuIEFuZCB3ZSBkbyBub3Qgd2FudCB0byBpbmNsdWRlIHRoaXMgZnJhbWUgaW4gRXJy
b3IncyBzdGFjay4KICAgICBjb25zdGV4cHIgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSBmYWxzZTsK
LSAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJv
clR5cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yLCBudWxscHRyLCBU
eXBlTm90aGluZywgdXNlQ3VycmVudEZyYW1lKSk7CisgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFs
T2JqZWN0LCBzY29wZSwgRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGds
b2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBSZWFkb25s
eVByb3BlcnR5V3JpdGVFcnJvciwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlw
ZUVycm9yLCB1c2VDdXJyZW50RnJhbWUpKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3IuY3BwCmluZGV4IDM4MzczYTc2MGQ1OWQwZWVkYjQ5NGRiODhkODUyNGZhYjlhNTE1
NGUuLjllYmQzZDQ0NmE5ZGE5YWQxOWQ3YmE0MTk5MDA2M2ZjNWE2MzI4ZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3Iq
IEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvCiB9
CiAKIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3I6OkpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3Io
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkK
KyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgRXJyb3JUeXBlOjpFcnJvcikKIHsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUxpbmtF
cnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlu
a0Vycm9yLmNwcAppbmRleCBlYWRlMDM0MTNlNGNlMzYwYmEwODlmOGM1M2QxOGNmOGQ2ZDcwMjM1
Li45YjIwMDU4ZWNmMzRhZjkxYjZiMThkMTVmNjUxNTc4NWMyMTcyZTJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9y
LmNwcApAQCAtNDEsNyArNDEsNyBAQCBKU1dlYkFzc2VtYmx5TGlua0Vycm9yKiBKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogfQogCiBKU1dl
YkFzc2VtYmx5TGlua0Vycm9yOjpKU1dlYkFzc2VtYmx5TGlua0Vycm9yKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6RXJyb3IpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5j
cHAKaW5kZXggYmUxZjkyODYwMzA0NWQ3Y2Y3MjkzMjRlZTRhNzdhZTgzZmNlOWNiZS4uMTkzM2E2
ZTM4ODhmYmVhY2NmMDdhYzJiMzdjNzQ1MDQ4NGZhNTFmMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5j
cHAKQEAgLTQxLDcgKzQxLDcgQEAgSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciogSlNXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvcjo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogSlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvcjo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFz
ZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5cGU6OkVycm9yKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDVjZDAwMzVhMDFmZGI3OGRkYzM1ZmM0N2I2
Yjg1ODBiZTQ1ZDM1OTcuLmMzYTBkMzk3ZjUwNGUyNThmMWQ3MGY4YjQ4MmI3OWExZDllNzI2NmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29t
cGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC02NSw3ICs2NSw3
IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJv
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2Fs
bEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xv
YmFsT2JqZWN0LT53ZWJBc3NlbWJseUNvbXBpbGVFcnJvclN0cnVjdHVyZSgpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJy
b3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5
cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yKiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUqIHRo
aXNQcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDk0NmRl
ZjRmMTE1MjI5YTIyNWJlOTMyYWM5ZTY0MzViNmM4YWIyYTkuLjJjNWY2YTI5MzFmMTUyMTU4NWFh
YTkzNWU1NmI0YmQyZjE5YzE2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3Bw
CkBAIC02NSw3ICs2NSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3Nl
bWJseUxpbmtFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiB7CiAgICAgSlNWYWx1
ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9y
U3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseUxpbmtFcnJvclN0cnVjdHVyZSgp
OwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBm
YWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRl
KGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3Ro
aW5nLCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBXZWJBc3NlbWJseUxpbmtFcnJv
ckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2ViQXNzZW1ibHlMaW5rRXJyb3JQcm90b3R5cGUq
IHRoaXNQcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IDNkZmQ5MTU2N2I2MGE1OGRkOWFhNjg0MmZmNjc5MDIxZjVjYjkyNTIuLmE4NTY2OWM1MThi
MWU5YWE2OGM5NWFkMDU2NmViZmQ2ZmMzZGZhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9y
Q29uc3RydWN0b3IuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihjYWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
CiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBT
dHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseVJ1bnRp
bWVFcnJvclN0cnVjdHVyZSgpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxw
dHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2Us
IG51bGxwdHIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yKiBXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
ckNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUqIHRoaXNQcm90b3R5cGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCBiMzNhMzY5MTdiYTIyNGJkZGY2MmQ2MDU3NTA0MGQyZDdlYzk2Yzk4Li41YmMxZDZl
NzAzZGI2NGY2ZjdlZTU2Y2NiNzViY2FiNjJiOThhODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTMwLDYgKzMwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiAg
ICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oCiAgICAgTW9kdWxlcy9mZXRjaC9G
ZXRjaEJvZHlTb3VyY2UuaAorICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0Q3JlZGVudGlh
bHMuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmgKICAgICBNb2R1bGVzL2ZldGNo
L0ZldGNoSWRlbnRpZmllci5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5oCkBAIC0y
ODgsNiArMjg5LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IGJpbmRpbmdzL2pzL1dlYkNvcmVKSVRPcGVyYXRpb25zLmgKICAgICBiaW5kaW5ncy9qcy9XZWJD
b3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaAogICAgIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmgK
KyAgICBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRGZXRjaGVyLmgKIAogICAgIGJyaWRnZS9Ccmlk
Z2UuaAogICAgIGJyaWRnZS9JZGVudGlmaWVyUmVwLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCBk
NDFiNzA4ZjI5YzhmNzU1NjkxNmY3ODEzMGY2NjQzM2NmZTcxMzNkLi4wMDIxOWYyZDAyOTE4MzA5
MTM0NDU4NDFhMGE0YzcwMWFkZDM3NTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC00Niw3ICs0
Niw3IEBAIGNsYXNzIEpTQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWN0b3I7CiAKIHN0cnVj
dCBXb3JrbGV0UGFyYW1ldGVyczsKIAotY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBw
dWJsaWMgV29ya2xldEdsb2JhbFNjb3BlIHsKK2NsYXNzIEF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
IGZpbmFsIDogcHVibGljIFdvcmtsZXRHbG9iYWxTY29wZSB7CiAgICAgV1RGX01BS0VfSVNPX0FM
TE9DQVRFRChBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZlB0cjxBdWRpb1dvcmtsZXRHbG9iYWxTY29wZT4gdHJ5Q3JlYXRlKEF1ZGlvV29ya2xldFRocmVh
ZCYsIGNvbnN0IFdvcmtsZXRQYXJhbWV0ZXJzJik7CkBAIC02OSw2ICs2OSw4IEBAIGNsYXNzIEF1
ZGlvV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtsZXRHbG9iYWxTY29wZSB7CiAgICAg
dm9pZCBoYW5kbGVQcmVSZW5kZXJUYXNrcygpOwogICAgIHZvaWQgaGFuZGxlUG9zdFJlbmRlclRh
c2tzKHNpemVfdCBjdXJyZW50RnJhbWUpOwogCisgICAgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
biBkZXN0aW5hdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEZldGNoT3B0aW9uczo6RGVzdGlu
YXRpb246OkF1ZGlvd29ya2xldDsgfQorCiBwcml2YXRlOgogICAgIEF1ZGlvV29ya2xldEdsb2Jh
bFNjb3BlKEF1ZGlvV29ya2xldFRocmVhZCYsIFJlZjxKU0M6OlZNPiYmLCBjb25zdCBXb3JrbGV0
UGFyYW1ldGVycyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGMzNWMwNmYwMzA2N2YxZGMwMmI1NDU2
OTc1M2E0OTc1MDdhOWQ1MmUuLjk3OTc0YmM2ODkzNzIyYjZjZGNiODJmMzM1Mjg2MTFmMTJkYzg4
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC02MzksNiArNjM5LDcgQEAgYmluZGluZ3MvanMvU3RydWN0
dXJlZENsb25lLmNwcAogYmluZGluZ3MvanMvV2ViQ29yZUpJVE9wZXJhdGlvbnMuY3BwCiBiaW5k
aW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmNwcAogYmluZGluZ3MvanMvV2ViQ29yZVR5cGVk
QXJyYXlDb250cm9sbGVyLmNwcAorYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
LmNwcAogYmluZGluZ3MvanMvV2luZG93UHJveHkuY3BwCiBiaW5kaW5ncy9qcy9Xcml0YWJsZVN0
cmVhbS5jcHAKIGJyaWRnZS9JZGVudGlmaWVyUmVwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcxYWE4YzU4MWI2NWQ5NGNi
OWY1NDMyNDczMzlmODA3NWJmMGE2ZjIuLmYxMDcwYWZlMDVkNDU4MmEwYWQ3N2RjNjQ5YTQ2NTI4
NzE3ZDFlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTUwNzMsMTUgKzUwNzMsMTggQEAKIAkJRTMwNTkyNjQxRTI3QTNBRDAw
RDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDU5MjYyMUUyN0EzOEMwMEQ1N0M5OCAvKiBJbmxpbmVD
bGFzc2ljU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTMwNTkyNjgxRTI3QTNEMTAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZldGNoZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDU5MjY2
MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwN0RFRDAxRDgxRTRDNzAwMTQx
Q0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFQzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCUUzMDdERUQxMUQ4MUU0Q0IwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzMDdERUM4MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFMzA3REVENTFEODFFNEYyMDAxNDFDQUYgLyogTG9hZGFibGVNb2R1bGVTY3JpcHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDdERUQz
MUQ4MUU0RUQwMDE0MUNBRiAvKiBMb2FkYWJsZU1vZHVsZVNjcmlwdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMTUwRUE3MURBNzIxOTMwMDE5
NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzE1MEVBNTFEQTcyMThEMDAxOTQwMTIgLyogRE9NSklUSGVscGVycy5o
ICovOyB9OwogCQlFMzIwMUMxQTFGOEU4MjEzMDA3NkEwMzIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzhE
MDYwOTFGOEU4MTE5MDA2NDlDRjIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMyM0NGRkExRTVBRjZB
RjAwRjBCNEEwIC8qIEpTRE9NQ29udmVydFByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMjNDRkY5MUU1QUY2QTUwMEYwQjRBMCAvKiBKU0RP
TUNvbnZlcnRQcm9taXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJRTM0MzJERTQyNUQzNzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlw
dExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oICov
OyB9OworCQlFMzQ3RTVGQTI1RDRGMDAwMDBGMTdBNUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0N0U1Rjgy
NUQ0RjAwMDAwRjE3QTVDIC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzUxODhCNDI1RDM4N0NGMDBBNzdB
RjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxl
U2NyaXB0TG9hZGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRTM1NjVCN0IxREMyRDZDOTAwMjE3REJEIC8qIEpTRXZlbnRDdXN0b20u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNEVFNDlG
MURDMkQ1NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3VzdG9tLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1ODAyQjYxREM4NDM1RDAwQTk3NzNDIC8q
IERPTUpJVElETFR5cGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmls
dGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTM1ODJDMjgyNTI3RjY2OTAwRDFCNzkwIC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MkMyNjI1MjdGNjY4
MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzVCOTA3RjIzRjYwQTUwMDAwMDExRkYgLyog
TG9jYWxpemVkRGV2aWNlTW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzNUI5MDdDMjNGNjA2NzcwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VN
b2RlbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUUzNjQzMjFDMjVEMzdBNjcwMEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNjQzMjFBMjVEMzdBNjYw
MEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzc3RkU0RDFEQURFMTY1MDBDREQwMjUgLyogTm9k
ZUNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTNEMDQ5OTMxREFEQzA0NTAwNzE4RjNDIC8qIE5vZGVDb25zdGFudHMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzdDODY1MDFFQjYzRTNG
MDA4N0M2Q0EgLyogSlNET01Qcm9taXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzdDODY0RjFFQjYzRTJEMDA4N0M2Q0EgLyogSlNET01Qcm9taXNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM5
NjI4QkYyMzk1NzI4RjAwNjU4RUNEIC8qIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEJE
MjM5NTcyOEUwMDY1OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE2MjA3LDcg
KzE2MjEwLDYgQEAKIAkJRTMwNTkyNjYxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNjcmlwdEZl
dGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkU2NyaXB0RmV0
Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVDNjFEODFFNDQ4MDAx
NDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDdERUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUz
MDdERUM4MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMDdERUQyMUQ4MUU0
RUQwMDE0MUNBRiAvKiBMb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBMb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzMDdERUQzMUQ4MUU0RUQwMDE0MUNBRiAvKiBMb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2FkYWJsZU1v
ZHVsZVNjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzE1MEVBNTFEQTcy
MThEMDAxOTQwMTIgLyogRE9NSklUSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01KSVRIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NjIyMCwxMiArMTYyMjIsMTcgQEAKIAkJRTMyOTI3NjMyMjU0M0Y1OTAwMzA4QTlBIC8qIFR5cGVk
T01DU1NVbml0VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlwZWRPTUNTU1VuaXRWYWx1
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMjkyNzY2MjI1NDNGREUwMDMw
OEE5QSAvKiBET01SZWN0UmVhZE9ubHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUmVjdFJl
YWRPbmx5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMzNDgyNUUxREM5M0FB
MDAwOUM5NTQ0IC8qIERPTUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gRE9NSklUQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01KSVRBYnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUUzNDMyREUwMjVEMzc3RTIw
MDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzNDMyREUzMjVEMzc3RTMwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTM0N0U1RjgyNUQ0RjAwMDAwRjE3QTVDIC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyU2NyaXB0RmV0Y2hlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzRFRTQ5RjFEQzJENTc1MDBFQUE5RDMgLyogSlNFdmVu
dEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2ZW50Q3VzdG9t
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNTE4OEIzMjVEMzg3Q0YwMEE3N0FG
MyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVElETFR5cGVGaWx0ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODJDMjQyNTI3RjY2ODAwRDFCNzkw
IC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkNvcmVKSVRPcGVyYXRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTM1ODJDMjYyNTI3RjY2ODAwRDFCNzkwIC8qIFdlYkNvcmVKSVRPcGVyYXRpb25z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVKSVRPcGVyYXRpb25z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUI5MDdDMjNGNjA2NzcwMDAwMTFG
RiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzVCOTA3RTIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbGl6ZWREZXZpY2VNb2Rl
bC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM2NDMyMUEyNUQzN0E2NjAwRjkw
RTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2R1bGVTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVByb21pc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2Fk
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NTFCQUQxNDVGMDBE
NjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjcwMjIsNyArMjcwMjksNiBAQAogCQkJCTJERkE0ODhFMURCNTQxQzIwMDM2MkI5OSAvKiBC
dWZmZXJTb3VyY2UuaCAqLywKIAkJCQlFMzA3REVDNjFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAqLywKIAkJCQlFMzA3REVDNzFEODFFNDQ4MDAxNDFDQUYg
LyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8sCi0JCQkJRTMwN0RFQzgxRDgxRTQ0ODAw
MTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovLAogCQkJCUUzMDU5
MjY1MUUyN0EzQzYwMEQ1N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmNwcCAqLywKIAkJCQlF
MzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovLAogCQkJ
CUJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5o
ICovLApAQCAtMjcwOTYsNiArMjcxMDIsOCBAQAogCQkJCTRCREVBMzJEMjE4MDM0MDUwMDUyREZD
RCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwICovLAogCQkJCTRCREVBMzJCMjE4MDMz
RUIwMDUyREZDRCAvKiBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuaCAqLywKIAkJCQk3MDlBMDFG
RDFFM0QwQkNDMDA2QjBENEMgLyogTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oICovLAorCQkJCUUz
NjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLywKKwkJCQlF
MzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8s
CiAJCQkJNDFCNDU5RUQxRjU1RUJDNzAwMDBGNkZEIC8qIFJlYWRhYmxlU3RyZWFtLmNwcCAqLywK
IAkJCQk0MUI0NTlEQTFGNENBREI5MDAwMEY2RkQgLyogUmVhZGFibGVTdHJlYW0uaCAqLywKIAkJ
CQk0MThDMzk1RTFDOEYwQUFCMDA1MUM4QTMgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJv
bGxlci5jcHAgKi8sCkBAIC0yNzEyNyw2ICsyNzEzNSw5IEBACiAJCQkJMEYwOTlEMDcxN0I5NjhB
MTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oICovLAogCQkJCTQ2MzUy
MUFDMjA4MTA5MEUwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5jcHAgKi8sCiAJCQkJNDYzNTIxQUEy
MDgxMDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi8sCisJCQkJRTM0MzJERTMyNUQzNzdF
MzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8sCisJCQkJRTM0MzJE
RTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oICovLAorCQkJ
CUUzNDdFNUY4MjVENEYwMDAwMEYxN0E1QyAvKiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggKi8sCiAJ
CQkJNDE0MThBMDMyNTY0M0UxMjAwMzYzNDE3IC8qIFdyaXRhYmxlU3RyZWFtLmNwcCAqLywKIAkJ
CQk0MTQxOEEwNDI1NjQzRTEzMDAzNjM0MTcgLyogV3JpdGFibGVTdHJlYW0uaCAqLywKIAkJCSk7
CkBAIC0zMTQwNSw3ICszMTQxNiw2IEBACiAJCQkJQkNCMTZDMUMwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTlGQkQ1RjE1RDJGNDY0MDA5NjQw
QTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMDdERUQwMUQ4
MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICov
LAotCQkJCUUzMDdERUQxMUQ4MUU0Q0IwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMDE4NDY5MEIwODYwMkEwMDRBODI1RiAv
KiBDYWNoZWRQYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlEMEVEQTc3NTE0M0UzMDNDMDAyOEUz
ODMgLyogQ2FjaGVkUmF3UmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjUzMzQ5MTcx
N0RFRTMwMEYyMDVGOSAvKiBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMzg4MCw2ICszMzg5MCw4IEBACiAJCQkJQzZENzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8q
IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzA5QTAxRkUx
RTNEMEJERDAwNkIwRDRDIC8qIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAzMiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMu
aCBpbiBIZWFkZXJzICovLAorCQkJCUUzNjQzMjFDMjVEMzdBNjcwMEY5MEUyQSAvKiBNb2R1bGVT
Y3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNTE4OEI0MjVEMzg3Q0YwMEE3N0FG
MyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIz
REM2MTI1MUYxMkQwMDNFRjI2OSAvKiBNb250aElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTM5NjI4QzEyMzk1NzQzMTAwNjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1MDMxQjQ2MEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTM1NTMyLDYgKzM1NTQ0LDcgQEAKIAkJCQkxOEY4MzFCODBGRDQ4
Qzc4MDBEOEM1NkIgLyogV29ya2VyTG9hZGVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJF
NDM0NjREMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkU0MzQ2NTAwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlFMzQzMkRFNDI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI3MUEwQjBFRUVDNzdBMDBG
NjEyMTMgLyogV29ya2VyTmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUNCMDUyNTFG
QjUxRjNBMDAwODlCOTcgLyogV29ya2VyTmV0d29ya0FnZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyRTQzNDY1MTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyT2JqZWN0UHJveHkuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzU1NDEsNiArMzU1NTQsNyBAQAogCQkJCTQxNkUyOUE2MTAyRkE5NjIwMDdG
QzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2
NTMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclJ1bkxvb3AuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE1QjgxQ0NGMUZBQTQ0REUwMDM3RDFFNiAvKiBXb3JrZXJSdW50aW1lQWdlbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUUzNDdFNUZBMjVENEYwMDAwMEYxN0E1QyAvKiBXb3JrZXJTY3JpcHRGZXRj
aGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q2QjM0OTBGNjExMDQ1MDBCNzlGRDEgLyogV29y
a2VyU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUE3NjgwNDBGRTcxMjY0MDBB
QjlDOEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQky
RTQzNDY1NTBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlw
dExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIuY3BwCmluZGV4IDM1MmRjYzRhY2Y3NTE3NmQ5OGFkMzQxMGJlMTUxNjA4MDEwODg1
MjQuLjI3N2Y2MmE3YzEzM2ZlMTU2YzZjY2U5ODU1MzU1MGVkYjEzNmQwMDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
LmNwcApAQCAtNDAsMTYgKzQwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPENh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUo
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYg
cHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVs
ZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQorUmVmPENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlcj4gQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0
Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJh
bWV0ZXJzKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1vdmUocGFyYW1ldGVycykp
KTsKIH0KIAotQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlz
ZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1v
ZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQotICAgIDogbV9jbGllbnQoJmNsaWVu
dCkKLSAgICAsIG1fcHJvbWlzZSgmcHJvbWlzZSkKLSAgICAsIG1fc2NyaXB0RmV0Y2hlcihzY3Jp
cHRGZXRjaGVyKQotICAgICwgbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCitDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXI6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRT
Y3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJz
PiYmIHBhcmFtZXRlcnMpCisgICAgOiBNb2R1bGVTY3JpcHRMb2FkZXIoY2xpZW50LCBwcm9taXNl
LCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKQogewogfQogCkBAIC02MSwxNCAr
NTgsMTUgQEAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjp+Q2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyKCkKICAgICB9CiB9CiAKLWJvb2wgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiBzb3VyY2VVUkwpCitib29sIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcjo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIFVSTCYmIHNvdXJjZVVSTCkK
IHsKKyAgICBBU1NFUlQobV9wcm9taXNlKTsKICAgICBBU1NFUlQoIW1fY2FjaGVkU2NyaXB0KTsK
ICAgICBTdHJpbmcgaW50ZWdyaXR5ID0gbV9wYXJhbWV0ZXJzID8gbV9wYXJhbWV0ZXJzLT5pbnRl
Z3JpdHkoKSA6IFN0cmluZyB7IH07Ci0gICAgbV9jYWNoZWRTY3JpcHQgPSBtX3NjcmlwdEZldGNo
ZXItPnJlcXVlc3RNb2R1bGVTY3JpcHQoZG9jdW1lbnQsIHNvdXJjZVVSTCwgV1RGTW92ZShpbnRl
Z3JpdHkpKTsKKyAgICBtX2NhY2hlZFNjcmlwdCA9IHNjcmlwdEZldGNoZXIoKS5yZXF1ZXN0TW9k
dWxlU2NyaXB0KGRvY3VtZW50LCBzb3VyY2VVUkwsIFdURk1vdmUoaW50ZWdyaXR5KSk7CiAgICAg
aWYgKCFtX2NhY2hlZFNjcmlwdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1fc291cmNl
VVJMID0gc291cmNlVVJMOworICAgIG1fc291cmNlVVJMID0gV1RGTW92ZShzb3VyY2VVUkwpOwog
CiAgICAgLy8gSWYgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQsIHRoaXMgaW1tZWRpYXRl
bHkgY2FsbHMgbm90aWZ5RmluaXNoZWQuCiAgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCgq
dGhpcyk7CkBAIC04Myw3ICs4MSw3IEBAIHZvaWQgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpu
b3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IE5lCiAKICAgICBS
ZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKICAgICBp
ZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RG
TW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZpbmlzaGVkKCp0aGlz
LCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9wcm9taXNlLnJlbGVhc2VOb25OdWxsKCkpOwogCiAg
ICAgLy8gUmVtb3ZlIHRoZSBjbGllbnQgYWZ0ZXIgY2FsbGluZyBub3RpZnlGaW5pc2hlZCB0byBr
ZWVwIHRoZSBkYXRhIGJ1ZmZlciBpbgogICAgIC8vIENhY2hlZFJlc291cmNlIGFsaXZlIHdoaWxl
IG5vdGlmeUZpbmlzaGVkIHByb2Nlc3NlcyB0aGUgcmVzb3VyY2UuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCmluZGV4IDQz
YWJkODc1YjI0M2ZhZjVmY2Q0ZDk4ZWMzYzVkMjRlNzkwYjU3MmUuLmE0ODc1NWY5M2QwNWVmMzUz
ZDJiM2UyMjhkODIxOWZlODkxZTY3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0yNyw2ICsyNyw4IEBACiAK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1ZGUg
Ik1vZHVsZVNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTM0LDQyICszNiwy
OSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudDsKK2NsYXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKIGNsYXNzIENhY2hl
ZFNjcmlwdDsKLWNsYXNzIENhY2hlZFNjcmlwdEZldGNoZXI7CiBjbGFzcyBEZWZlcnJlZFByb21p
c2U7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OwogY2xhc3MgTW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzOwogCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIgZmlu
YWwgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+LCBwcml2YXRl
IENhY2hlZFJlc291cmNlQ2xpZW50IHsKK2NsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciBm
aW5hbCA6IHB1YmxpYyBNb2R1bGVTY3JpcHRMb2FkZXIsIHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VD
bGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
PiBjcmVhdGUoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNl
JiwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYp
OworICAgIHN0YXRpYyBSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBjcmVhdGUoTW9kdWxl
U2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2FjaGVkU2NyaXB0RmV0Y2hl
ciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOwogCiAgICAgdmlydHVhbCB+Q2Fj
aGVkTW9kdWxlU2NyaXB0TG9hZGVyKCk7CiAKLSAgICBib29sIGxvYWQoRG9jdW1lbnQmLCBjb25z
dCBVUkwmIHNvdXJjZVVSTCk7CisgICAgYm9vbCBsb2FkKERvY3VtZW50JiwgVVJMJiYgc291cmNl
VVJMKTsKIAotICAgIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIoKSB7IHJldHVy
biBtX3NjcmlwdEZldGNoZXIuZ2V0KCk7IH0KICAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlw
dCgpIHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LmdldCgpOyB9Ci0gICAgTW9kdWxlRmV0Y2hQYXJh
bWV0ZXJzKiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9Ci0gICAg
Y29uc3QgVVJMJiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfQotCi0g
ICAgdm9pZCBjbGVhckNsaWVudCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV9jbGllbnQpOwot
ICAgICAgICBtX2NsaWVudCA9IG51bGxwdHI7Ci0gICAgfQorICAgIENhY2hlZFNjcmlwdEZldGNo
ZXImIHNjcmlwdEZldGNoZXIoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRGZXRj
aGVyJj4oTW9kdWxlU2NyaXB0TG9hZGVyOjpzY3JpcHRGZXRjaGVyKCkpOyB9CiAKIHByaXZhdGU6
Ci0gICAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNs
aWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKyAgICBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2FjaGVkU2NyaXB0RmV0
Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOwogCiAgICAgdm9pZCBub3Rp
ZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYsIGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYpIGZp
bmFsOwogCi0gICAgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KiBtX2NsaWVudCB7IG51
bGxwdHIgfTsKLSAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBtX3Byb21pc2U7Ci0gICAgUmVm
PENhY2hlZFNjcmlwdEZldGNoZXI+IG1fc2NyaXB0RmV0Y2hlcjsKLSAgICBSZWZQdHI8TW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzPiBtX3BhcmFtZXRlcnM7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkU2NyaXB0PiBtX2NhY2hlZFNjcmlwdDsKICAgICBVUkwgbV9zb3VyY2VVUkw7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODY4OGFk
OTBkYWUzZWNlOTQ5ZWEwOWIxZWZlZTVkYTI2Zjk0Yzc4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyOwotY2xhc3MgRGVmZXJyZWRQcm9taXNlOwotCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwgfkNhY2hlZE1vZHVsZVNjcmlw
dExvYWRlckNsaWVudCgpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5p
c2hlZChDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImLCBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPikg
PSAwOwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2Fj
aGVkU2NyaXB0RmV0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRT
Y3JpcHRGZXRjaGVyLmNwcAppbmRleCBhNDMzNzU4NjViYmYxZWM1OTczYmYxNzJjOTFhMzg1MzIz
NGUzNzRkLi5jMGZmYWRkNmYyNTI0MjZhYmE3MjJhNTA4NDRlNjM1NzJmNGQ1ZTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJX
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5jcHAKaW5kZXggZGY3ZjNkNzQ2ZDVlMzJhYmFiNTE0NzZjOWRkYWNhNjNhNDM1MTM2Yy4uZWVm
MjEwMzg4NDlmZDg5ODQ5YWZjZWQ3MDMxODVmZjg5NGM0MGM3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKQEAgLTUy
LDYgKzUyLDI1IEBAIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlCiAgICAgcmVwb3J0RXhjZXB0aW9u
KGxleGljYWxHbG9iYWxPYmplY3QsIGV4Y2VwdGlvbiwgY2FjaGVkU2NyaXB0KTsKIH0KIAorU3Ry
aW5nIHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIFZNJiB2bSwgSlNWYWx1ZSBleGNlcHRpb24sIENhdGNoU2NvcGUmIGNh
dGNoU2NvcGUpCit7CisgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzExNTA4Nz4g
V2ViIEluc3BlY3RvcjogV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9uIHNob3VsZCBub3QgZXZhbHVh
dGUgSmF2YVNjcmlwdCBoYW5kbGluZyBleGNlcHRpb25zCisgICAgLy8gSWYgdGhpcyBpcyBhIGN1
c3RvbSBleGNlcHRpb24gb2JqZWN0LCBjYWxsIHRvU3RyaW5nIG9uIGl0IHRvIHRyeSBhbmQgZ2V0
IGEgbmljZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBleGNlcHRpb24uCisgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoYXV0byogZXJyb3IgPSBqc0R5bmFtaWNDYXN0PEVy
cm9ySW5zdGFuY2UqPih2bSwgZXhjZXB0aW9uKSkKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJy
b3ItPnNhbml0aXplZE1lc3NhZ2VTdHJpbmcoJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGVs
c2UgaWYgKGF1dG8qIGVycm9yID0ganNEeW5hbWljQ2FzdDxKU0RPTUV4Y2VwdGlvbio+KHZtLCBl
eGNlcHRpb24pKQorICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci0+d3JhcHBlZCgpLm1lc3Nh
Z2UoKTsKKyAgICBlbHNlCisgICAgICAgIGVycm9yTWVzc2FnZSA9IGV4Y2VwdGlvbi50b1dURlN0
cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisKKyAgICAvLyBXZSBuZWVkIHRvIGNsZWFyIGFu
eSBuZXcgZXhjZXB0aW9uIHRoYXQgbWF5IGJlIHRocm93biBpbiB0aGUgdG9TdHJpbmcoKSBjYWxs
IGFib3ZlLgorICAgIC8vIHJlcG9ydEV4Y2VwdGlvbigpIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBt
YWtpbmcgbmV3IGV4Y2VwdGlvbnMuCisgICAgY2F0Y2hTY29wZS5jbGVhckV4Y2VwdGlvbigpOwor
ICAgIHZtLmNsZWFyTGFzdEV4Y2VwdGlvbigpOworICAgIHJldHVybiBlcnJvck1lc3NhZ2U7Cit9
CisKIFN0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgVk0mIHZtLCBKU1ZhbHVlIGV4Y2VwdGlvbiwgQ2F0Y2hTY29wZSYgY2F0Y2hT
Y29wZSkKIHsKICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE1MDg3PiBXZWIg
SW5zcGVjdG9yOiBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24gc2hvdWxkIG5vdCBldmFsdWF0ZSBK
YXZhU2NyaXB0IGhhbmRsaW5nIGV4Y2VwdGlvbnMKQEAgLTEyMSwzNiArMTQwLDQ1IEBAIHZvaWQg
cmVwb3J0Q3VycmVudEV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCkKIAogSlNWYWx1ZSBjcmVhdGVET01FeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEV4Y2VwdGlvbkNvZGUgZWMsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsK
LSAgICBpZiAoZWMgPT0gRXhpc3RpbmdFeGNlcHRpb25FcnJvcikKKyAgICBzd2l0Y2ggKGVjKSB7
CisgICAgY2FzZSBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yOgogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIAogICAgIC8vIEZJWE1FOiBIYW5kbGUgb3RoZXIgV2ViSURMIGV4Y2VwdGlvbiB0
eXBlcy4KLSAgICBpZiAoZWMgPT0gVHlwZUVycm9yKSB7CisgICAgY2FzZSBUeXBlRXJyb3I6CiAg
ICAgICAgIGlmIChtZXNzYWdlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVU
eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgICAgIHJldHVybiBjcmVhdGVUeXBl
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgbWVzc2FnZSk7Ci0gICAgfQogCi0gICAgaWYgKGVj
ID09IFJhbmdlRXJyb3IpIHsKKyAgICBjYXNlIFJhbmdlRXJyb3I6CiAgICAgICAgIGlmIChtZXNz
YWdlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSYW5nZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsICJCYWQgdmFsdWUiX3MpOwogICAgICAgICByZXR1cm4gY3JlYXRlUmFu
Z2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBtZXNzYWdlKTsKLSAgICB9CiAKLSAgICBpZiAo
ZWMgPT0gU3RhY2tPdmVyZmxvd0Vycm9yKQorICAgIGNhc2UgSlNTeW50YXhFcnJvcjoKKyAgICAg
ICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN5bnRh
eEVycm9yKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gY3JlYXRlU3ludGF4
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgbWVzc2FnZSk7CisKKyAgICBjYXNlIFN0YWNrT3Zl
cmZsb3dFcnJvcjoKICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoZWMgPT0gT3V0T2ZNZW1vcnlFcnJvcikKKworICAg
IGNhc2UgT3V0T2ZNZW1vcnlFcnJvcjoKICAgICAgICAgcmV0dXJuIGNyZWF0ZU91dE9mTWVtb3J5
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7CiAKLSAgICAvLyBGSVhNRTogQWxsIGNhbGxlcnMg
dG8gY3JlYXRlRE9NRXhjZXB0aW9uIG5lZWQgdG8gcGFzcyBpbiB0aGUgY29ycmVjdCBnbG9iYWwg
b2JqZWN0LgotICAgIC8vIEZvciBub3csIHdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0aGUgbGV4aWNh
bEdsb2JhbE9iamVjdC4gV2hpY2ggaXMgd3JvbmcgaW4gY2FzZXMgbGlrZSB0aGlzOgotICAgIC8v
IGZyYW1lc1swXS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KG51bGwsIG51bGwpOyAvLyB0aHJvd3Mg
YW4gZXhjZXB0aW9uIHdoaWNoIHNob3VsZCBoYXZlIHRoZSBzdWJmcmFtZSdzIHByb3RvdHlwZXMu
Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGRlcHJlY2F0ZWRHbG9iYWxP
YmplY3RGb3JQcm90b3R5cGUobGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgSlNWYWx1ZSBlcnJv
ck9iamVjdCA9IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBET01FeGNl
cHRpb246OmNyZWF0ZShlYywgbWVzc2FnZSkpOwotICAgIAotICAgIEFTU0VSVChlcnJvck9iamVj
dCk7Ci0gICAgYWRkRXJyb3JJbmZvKGxleGljYWxHbG9iYWxPYmplY3QsIGFzT2JqZWN0KGVycm9y
T2JqZWN0KSwgdHJ1ZSk7Ci0gICAgcmV0dXJuIGVycm9yT2JqZWN0OworICAgIGRlZmF1bHQ6IHsK
KyAgICAgICAgLy8gRklYTUU6IEFsbCBjYWxsZXJzIHRvIGNyZWF0ZURPTUV4Y2VwdGlvbiBuZWVk
IHRvIHBhc3MgaW4gdGhlIGNvcnJlY3QgZ2xvYmFsIG9iamVjdC4KKyAgICAgICAgLy8gRm9yIG5v
dywgd2UncmUgZ29pbmcgdG8gYXNzdW1lIHRoZSBsZXhpY2FsR2xvYmFsT2JqZWN0LiBXaGljaCBp
cyB3cm9uZyBpbiBjYXNlcyBsaWtlIHRoaXM6CisgICAgICAgIC8vIGZyYW1lc1swXS5kb2N1bWVu
dC5jcmVhdGVFbGVtZW50KG51bGwsIG51bGwpOyAvLyB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoaWNo
IHNob3VsZCBoYXZlIHRoZSBzdWJmcmFtZSdzIHByb3RvdHlwZXMuCisgICAgICAgIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90
eXBlKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAgICBKU1ZhbHVlIGVycm9yT2JqZWN0ID0g
dG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIERPTUV4Y2VwdGlvbjo6Y3Jl
YXRlKGVjLCBtZXNzYWdlKSk7CisKKyAgICAgICAgQVNTRVJUKGVycm9yT2JqZWN0KTsKKyAgICAg
ICAgYWRkRXJyb3JJbmZvKGxleGljYWxHbG9iYWxPYmplY3QsIGFzT2JqZWN0KGVycm9yT2JqZWN0
KSwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBlcnJvck9iamVjdDsKKyAgICB9CisgICAgfQorICAg
IHJldHVybiB7IH07CiB9CiAKIEpTVmFsdWUgY3JlYXRlRE9NRXhjZXB0aW9uKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFeGNlcHRpb24mJiBleGNlcHRpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKaW5k
ZXggMmQzZTMxMWY2MWVlYjY4NWFhYzM1NTQ2YWFlMTYwZGE5NzkwZWY1Zi4uZDFmNmRlOTM3NDcw
Y2U2ZGYyY2NiNjQ3MjI4NDc2NmZkMDE5NTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaApAQCAtNjUsNiArNjUsNyBAQCBX
RUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoR2V0dGVy
VHlwZUVycm9yKEpTQzo6SlNHbG9iYQogV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1
ZSByZWplY3RQcm9taXNlV2l0aFRoaXNUeXBlRXJyb3IoRGVmZXJyZWRQcm9taXNlJiwgY29uc3Qg
Y2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogb3BlcmF0aW9uTmFtZSk7CiBXRUJDT1JF
X0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoVGhpc1R5cGVFcnJv
cihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3Qg
Y2hhciogb3BlcmF0aW9uTmFtZSk7CiAKK1N0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhv
dXROYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlIGV4Y2Vw
dGlvbiwgSlNDOjpDYXRjaFNjb3BlJik7CiBTdHJpbmcgcmV0cmlldmVFcnJvck1lc3NhZ2UoSlND
OjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBKU0M6
OkNhdGNoU2NvcGUmKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqID0g
bnVsbHB0cik7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFeGNlcHRpb24qLCBDYWNoZWRTY3JpcHQqID0gbnVsbHB0ciwgRXhj
ZXB0aW9uRGV0YWlscyogPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCA1OGI3ZGY3NjBjMDBhMzFmZjA4ZWQyMmRl
ZTIyYThjNzQ0M2FlOGRkLi45ZDY5N2Q0NTliNTYzNDVjYzgzOTYyMDI2Njc2ZTAwYTk4YmY0OWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSlNXb3JrbGV0R2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlICJSZWplY3RlZFByb21pc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZWRDbG9uZS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIK
ICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtNDIyLDYgKzQyMyw3OSBAQCBKU0M6
OkpTUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Omluc3RhbnRpYXRlU3RyZWFtaW5nKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsbwogfQogI2VuZGlmCiAKK3N0YXRpYyBTY3JpcHRNb2R1bGVMb2Fk
ZXIqIHNjcmlwdE1vZHVsZUxvYWRlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0
LT5pbmhlcml0czxKU0RPTVdpbmRvd0Jhc2U+KHZtKSkgeworICAgICAgICBpZiAoYXV0byBkb2N1
bWVudCA9IGpzQ2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpLT53cmFw
cGVkKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIHJldHVybiAmZG9jdW1lbnQtPm1vZHVsZUxv
YWRlcigpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKGdsb2JhbE9i
amVjdC0+aW5oZXJpdHM8SlNSZW1vdGVET01XaW5kb3dCYXNlPih2bSkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2VyR2xvYmFs
U2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0PGNvbnN0IEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVsZUxvYWRlcigpOwor
ICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZT4o
dm0pKQorICAgICAgICByZXR1cm4gJmpzQ2FzdDxjb25zdCBKU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UqPihnbG9iYWxPYmplY3QpLT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNJREJT
ZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0Pih2bSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
I2VuZGlmCisgICAgZGF0YUxvZygiVW5leHBlY3RlZCBnbG9iYWwgb2JqZWN0OiAiLCBKU1ZhbHVl
KGdsb2JhbE9iamVjdCksICJcbiIpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTQzo6SWRlbnRpZmllciBKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6Ompz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxv
YWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxv
YWRlci0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgaW1w
b3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiB7IH07Cit9CisKK0pT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFt
ZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlw
dE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBsb2FkZXItPmZldGNoKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXks
IHBhcmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpKTsKKyAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7Cisg
ICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7CisgICAgcmV0
dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNWYWx1ZSBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
TW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6
SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAg
IEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1
bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPmV2YWx1YXRlKGds
b2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0
RmV0Y2hlcik7CisgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKK30KKworSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVs
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIq
IG1vZHVsZUxvYWRlciwgSlNDOjpKU1N0cmluZyogbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIHBh
cmFtZXRlcnMsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byog
bG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9k
dWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0ZXJzLCBzb3VyY2VPcmlnaW4pKTsKKyAgICBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKKyAg
ICBzY29wZS5yZWxlYXNlKCk7CisgICAgcHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNV
bmRlZmluZWQoKSk7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CisKK0pTQzo6SlNPYmplY3QqIEpT
RE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1v
ZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCog
bW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUds
b2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
Z2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVy
KHRoaXNPYmplY3QpKQorICAgICAgICByZXR1cm4gbG9hZGVyLT5jcmVhdGVJbXBvcnRNZXRhUHJv
cGVydGllcyhnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNv
cmQsIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3RvdHlwZU9iamVjdFN0cnVjdHVy
ZSgpKTsKK30KKwogSlNET01HbG9iYWxPYmplY3QmIGNhbGxlckdsb2JhbE9iamVjdChKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUpCiB7CiAg
ICAgY2xhc3MgR2V0Q2FsbGVyR2xvYmFsT2JqZWN0RnVuY3RvciB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCBiODQwNzJkZGQ3NDZiM2Q2
YzUxMDYwZDkwNTAxYjVjZWExYjQ5OWIxLi5mNDlhNGNkMjU3MTk3MTE4OTE3YTdkN2E0YjZjMGUx
MWZjNzZiYTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmgKQEAgLTEwNSw2ICsxMDUsMTIgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNET01H
bG9iYWxPYmplY3QgOiBwdWJsaWMgSlNDOjpKU0dsb2JhbE9iamVjdCB7CiAgICAgc3RhdGljIEpT
Qzo6SlNQcm9taXNlKiBpbnN0YW50aWF0ZVN0cmVhbWluZyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OkpTT2JqZWN0Kik7CiAjZW5kaWYKIAorICAgIHN0YXRpYyBKU0M6
OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFs
dWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUg
bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVM
b2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICBz
dGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0cmluZyos
IEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKKyAgICBzdGF0aWMgSlND
OjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOworCiAgICAgSlNET01TdHJ1Y3R1cmVNYXAg
bV9zdHJ1Y3R1cmVzOwogICAgIEpTRE9NQ29uc3RydWN0b3JNYXAgbV9jb25zdHJ1Y3RvcnM7CiAg
ICAgRE9NR3VhcmRlZE9iamVjdFNldCBtX2d1YXJkZWRPYmplY3RzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggNTYzZWZhMDU3MWI1ZDQ2
MmQ5ZTY0NTA4OWYwYmQ4Zjc3ZDE5YTc2OC4uMzEyYTAxMTU4ZThjMjgwODNjMDdlNDJkYjg3MjQ1
ZmU0ZTVjNTdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwCkBAIC0zMzksNTQgKzMzOSw0IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaXJl
RnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93KiB3aW5kb3cpCiAgICAg
fQogfQogCi1KU0M6OklkZW50aWZpZXIgSlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJSZXNv
bHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRl
ciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RP
TVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihn
bG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09i
amVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9k
dWxlTG9hZGVyKCkucmVzb2x2ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFt
ZSwgaW1wb3J0ZXJNb2R1bGVLZXksIHNjcmlwdEZldGNoZXIpOwotICAgIHJldHVybiB7IH07Ci19
Ci0KLUpTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVy
RmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9h
ZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBw
YXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9N
V2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9j
dW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuZmV0Y2goZ2xvYmFs
T2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hl
cikpOwotICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJu
YWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0
dXJlKCkpOwotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFs
T2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpK
U1ZhbHVlIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIs
IEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXksIEpTQzo6SlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpTQzo6
SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVj
dCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYg
KFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5ldmFsdWF0ZShn
bG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBtb2R1bGVSZWNvcmQsIHNjcmlw
dEZldGNoZXIpOwotICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTQzo6SlNJ
bnRlcm5hbFByb21pc2UqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxl
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciog
bW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5nKiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcGFy
YW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbikKLXsKLSAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpTQzo6anND
YXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0cjxEb2N1
bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKLSAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCkuaW1w
b3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBwYXJhbWV0
ZXJzLCBzb3VyY2VPcmlnaW4pKTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBwcm9taXNl
ID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmludGVy
bmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKLSAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAgcHJvbWlz
ZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJuIHByb21p
c2U7Ci19Ci0KLUpTQzo6SlNPYmplY3QqIEpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyQ3Jl
YXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVL
ZXksIEpTQzo6SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nh
c3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3Vt
ZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAg
ICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0
aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwg
c2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9i
amVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDNlZjk4MGRkMjdmNmIyMTM5ODcwMDhiYTQ3NmM4
Y2E2OWYyZjBiNjQuLjUxNDJiMWM3ZGMyNWMyMmZlOTc4OTVlNzVhZTIyZWY0ZDFlNTg5ZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC05OSwx
MiArOTksNiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvd0Jhc2UgOiBwdWJsaWMg
SlNET01HbG9iYWxPYmplY3QgewogcHJpdmF0ZToKICAgICB1c2luZyBSZXNwb25zZUNhbGxiYWNr
ID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IGNoYXIqLCBzaXplX3QpPjsKIAotICAgIHN0YXRp
YyBKU0M6OklkZW50aWZpZXIgbW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6
OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2Fk
ZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpT
VmFsdWUgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsK
LSAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogbW9kdWxlTG9hZGVySW1wb3J0TW9k
dWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1N0
cmluZyosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpTb3VyY2VPcmlnaW4mKTsKLSAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwotCiAgICAgUmVmUHRyPERPTVdp
bmRvdz4gbV93cmFwcGVkOwogICAgIFJlZlB0cjxFdmVudD4gbV9jdXJyZW50RXZlbnQ7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwCmluZGV4IDQyYjI2YzlmNGVhMjE2MjA3ZGU0Yzg2ODIwYjhhODFiNjAzNWI3ZWIu
LjJkNzkzZmZmMjE4NTNhOGExYTc4ODA2NjcyNTBmNTdlNzUyZmUzZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAK
QEAgLTU5LDExICs1OSwxMSBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZQogICAgICZqYXZhU2Ny
aXB0UnVudGltZUZsYWdzLAogICAgICZxdWV1ZU1pY3JvdGFza1RvRXZlbnRMb29wLAogICAgICZz
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckltcG9ydE1vZHVsZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlclJlc29sdmUK
LSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJGZXRjaAotICAgIG51bGxwdHIsIC8vIG1vZHVs
ZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxl
TG9hZGVyRXZhbHVhdGUKKyAgICAmbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlLAorICAgICZtb2R1
bGVMb2FkZXJSZXNvbHZlLAorICAgICZtb2R1bGVMb2FkZXJGZXRjaCwKKyAgICAmbW9kdWxlTG9h
ZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMsCisgICAgJm1vZHVsZUxvYWRlckV2YWx1YXRl
LAogICAgICZwcm9taXNlUmVqZWN0aW9uVHJhY2tlciwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNl
cHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5jcHAKaW5kZXggMzVmYTZlMzI3N2ZiMGQ0YmUwZTBlMWVkYzQzNzIyZWRhZGZjOGFmMi4u
OWZhZWM5NTljMzlkMTc0ODE4MWM5ODY1MDAzZDVhODZmMTdmNWUzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3Bw
CkBAIC00OSwxMSArNDksMTEgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICAmamF2YVNj
cmlwdFJ1bnRpbWVGbGFncywKICAgICBudWxscHRyLCAvLyBxdWV1ZU1pY3JvdGFza1RvRXZlbnRM
b29wCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9h
ZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckZldGNoCi0gICAgbnVsbHB0
ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMKLSAgICBudWxscHRy
LCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUs
CisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVsZUxvYWRlckZldGNoLAorICAg
ICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcywKKyAgICAmbW9kdWxlTG9h
ZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFja2VyLAogICAgICZyZXBvcnRV
bmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9u
T3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZhOTEwZTk0OWI3YWMxYTM4ZWRlZWNiMDNkZWI2ZWU4OTRjY2ViMGQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3Jp
cHRMb2FkZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNo
UGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdEZldGNoZXIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudDsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8TW9kdWxlU2NyaXB0TG9hZGVyPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+TW9kdWxlU2NyaXB0TG9hZGVyKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBjbGVh
ckNsaWVudCgpCisgICAgeworICAgICAgICBBU1NFUlQobV9jbGllbnQpOworICAgICAgICBtX2Ns
aWVudCA9IG51bGxwdHI7CisgICAgfQorCisgICAgSlNDOjpTY3JpcHRGZXRjaGVyJiBzY3JpcHRG
ZXRjaGVyKCkgeyByZXR1cm4gbV9zY3JpcHRGZXRjaGVyLmdldCgpOyB9CisgICAgTW9kdWxlRmV0
Y2hQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9
CisKK3Byb3RlY3RlZDoKKyAgICBNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgSlNDOjpTY3JpcHRGZXRj
aGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFt
ZXRlcnMpCisgICAgICAgIDogbV9jbGllbnQoJmNsaWVudCkKKyAgICAgICAgLCBtX3Byb21pc2Uo
JnByb21pc2UpCisgICAgICAgICwgbV9zY3JpcHRGZXRjaGVyKHNjcmlwdEZldGNoZXIpCisgICAg
ICAgICwgbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCisgICAgeworICAgIH0KKwor
ICAgIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCogbV9jbGllbnQ7CisgICAgUmVmUHRyPERlZmVy
cmVkUHJvbWlzZT4gbV9wcm9taXNlOworICAgIFJlZjxKU0M6OlNjcmlwdEZldGNoZXI+IG1fc2Ny
aXB0RmV0Y2hlcjsKKyAgICBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiBtX3BhcmFtZXRl
cnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5
OTVmNDhlZTNkMWUwMmMxZDhjOWM5ZGEyYmQ1ODIzNmYzYmEwN2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlLCBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1vZHVs
ZVNjcmlwdExvYWRlcjsKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsKKworY2xhc3MgTW9kdWxlU2Ny
aXB0TG9hZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQo
TW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSA9IDA7Cit9
OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9h
ZGVyLmNwcAppbmRleCBhYTViODBiNTg2Yjc5ZTBlNTc1MDFjZDUxMDc4ZGYyNWE2MjVlNWQ5Li5m
MzE1NTE3NmIzNDkzZTA2ZmFiODc4YmZiM2I0ZWU0ZWExNzM2ZTA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTI5LDcgKzI5
LDYgQEAKICNpbmNsdWRlICJDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlICJD
YWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHRGZXRjaGVyLmgiCi0jaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCkBAIC00MSw2ICs0MCw5IEBA
CiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlN1YnJlc291cmNlSW50
ZWdyaXR5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUgIldv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIu
aCIKKyNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Db21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5hbFBy
b21pc2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU01vZHVsZVJlY29yZC5oPgpAQCAt
NTIsOCArNTQsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNjcmlwdE1vZHVsZUxvYWRl
cjo6U2NyaXB0TW9kdWxlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IG1fZG9jdW1l
bnQoZG9jdW1lbnQpCitTY3JpcHRNb2R1bGVMb2FkZXI6OlNjcmlwdE1vZHVsZUxvYWRlcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBPd25lclR5cGUgb3duZXJUeXBlKQorICAgIDog
bV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX293bmVyVHlwZShvd25lclR5cGUpCiB7CiB9CiAK
QEAgLTY4LDcgKzcxLDcgQEAgc3RhdGljIGJvb2wgaXNSb290TW9kdWxlKEpTQzo6SlNWYWx1ZSBp
bXBvcnRlck1vZHVsZUtleSkKICAgICByZXR1cm4gaW1wb3J0ZXJNb2R1bGVLZXkuaXNTeW1ib2wo
KSB8fCBpbXBvcnRlck1vZHVsZUtleS5pc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgRXhwZWN0
ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3QgVVJMJiBiYXNlVVJMKQorc3RhdGljIEV4
cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlIG93bmVyVHlw
ZSwgY29uc3QgU3RyaW5nJiBzcGVjaWZpZXIsIGNvbnN0IFVSTCYgYmFzZVVSTCkKIHsKICAgICAv
LyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwj
cmVzb2x2ZS1hLW1vZHVsZS1zcGVjaWZpZXIKIApAQCAtNzksNyArODIsMTIgQEAgc3RhdGljIEV4
cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgU3QKICAgICBpZiAoIXNwZWNpZmllci5zdGFydHNXaXRoKCcvJykgJiYgIXNw
ZWNpZmllci5zdGFydHNXaXRoKCIuLyIpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi4vIikp
CiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lm
aWVyLCAnIl9zLCBzcGVjaWZpZXIsICInIGRvZXMgbm90IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9c
Iiwgb3IgXCIuLi9cIi4gUmVmZXJlbmNlZCBmcm9tICJfcywgYmFzZVVSTC5zdHJpbmcoKSkpOwog
Ci0gICAgYXV0byByZXN1bHQgPSBkb2N1bWVudC5jb21wbGV0ZVVSTChzcGVjaWZpZXIsIGJhc2VV
UkwpOworICAgIFVSTCByZXN1bHQ7CisgICAgaWYgKG93bmVyVHlwZSA9PSBTY3JpcHRNb2R1bGVM
b2FkZXI6Ok93bmVyVHlwZTo6RG9jdW1lbnQpCisgICAgICAgIHJlc3VsdCA9IGRvd25jYXN0PERv
Y3VtZW50Pihjb250ZXh0KS5jb21wbGV0ZVVSTChzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGVs
c2UKKyAgICAgICAgcmVzdWx0ID0gVVJMKGJhc2VVUkwsIHNwZWNpZmllcik7CisKICAgICBpZiAo
IXJlc3VsdC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtlU3Ry
aW5nKCJNb2R1bGUgbmFtZSwgJyJfcywgcmVzdWx0LnN0cmluZygpLCAiJyBkb2VzIG5vdCByZXNv
bHZlIHRvIGEgdmFsaWQgVVJMLiJfcykpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDcsNyAr
MTE1LDcgQEAgSlNDOjpJZGVudGlmaWVyIFNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzb2x2ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwKICAgICBVUkwgYmFzZVVSTCA9IHJlc3Bv
bnNlVVJMRnJvbVJlcXVlc3RVUkwoKmpzR2xvYmFsT2JqZWN0LCBpbXBvcnRlck1vZHVsZUtleSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAotICAgIGF1dG8gcmVzdWx0
ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2RvY3VtZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwp
OworICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2NvbnRleHQsIG1f
b3duZXJUeXBlLCBzcGVjaWZpZXIsIGJhc2VVUkwpOwogICAgIGlmICghcmVzdWx0KSB7CiAgICAg
ICAgIEpTQzo6dGhyb3dUeXBlRXJyb3IoanNHbG9iYWxPYmplY3QsIHNjb3BlLCByZXN1bHQuZXJy
b3IoKSk7CiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xNjEsMTMgKzE2OSwxOSBAQCBKU0M6OkpT
SW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxP
YmplY3QqIGpzR2xvYmFsTwogICAgIGlmIChhdXRvKiBzY3JpcHRGZXRjaFBhcmFtZXRlcnMgPSBK
U0M6OmpzRHluYW1pY0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNoUGFyYW1ldGVycyo+KHZtLCBwYXJh
bWV0ZXJzKSkKICAgICAgICAgdG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxN
b2R1bGVGZXRjaFBhcmFtZXRlcnMqPigmc2NyaXB0RmV0Y2hQYXJhbWV0ZXJzLT5wYXJhbWV0ZXJz
KCkpOwogCi0gICAgYXV0byBsb2FkZXIgPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0
ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVy
Kj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNoZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0
Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFyYW1ldGVycykpOwotICAgIG1fbG9hZGVy
cy5hZGQobG9hZGVyLmNvcHlSZWYoKSk7Ci0gICAgaWYgKCFsb2FkZXItPmxvYWQobV9kb2N1bWVu
dCwgY29tcGxldGVkVVJMKSkgewotICAgICAgICBsb2FkZXItPmNsZWFyQ2xpZW50KCk7Ci0gICAg
ICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2FkZXIpKTsKLSAgICAgICAgcmVqZWN0VG9Q
cm9wYWdhdGVOZXR3b3JrRXJyb3IoZGVmZXJyZWQuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtp
bmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwot
ICAgICAgICByZXR1cm4ganNQcm9taXNlOworICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5
cGU6OkRvY3VtZW50KSB7CisgICAgICAgIGF1dG8gbG9hZGVyID0gQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nhc3Q8Q2FjaGVk
U2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVyKj4oc2NyaXB0
RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFtZXRlcnMpKTsK
KyAgICAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKKyAgICAgICAgaWYgKCFs
b2FkZXItPmxvYWQoZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCksIFdURk1vdmUoY29tcGxl
dGVkVVJMKSkpIHsKKyAgICAgICAgICAgIGxvYWRlci0+Y2xlYXJDbGllbnQoKTsKKyAgICAgICAg
ICAgIG1fbG9hZGVycy5yZW1vdmUoV1RGTW92ZShsb2FkZXIpKTsKKyAgICAgICAgICAgIHJlamVj
dFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKGRlZmVycmVkLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1
cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9z
KTsKKyAgICAgICAgICAgIHJldHVybiBqc1Byb21pc2U7CisgICAgICAgIH0KKyAgICB9IGVsc2Ug
eworICAgICAgICBhdXRvIGxvYWRlciA9IFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRl
KCp0aGlzLCBkZWZlcnJlZC5nZXQoKSwgKnN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXIq
PihKU0M6OmpzQ2FzdDxKU0M6OkpTU2NyaXB0RmV0Y2hlcio+KHNjcmlwdEZldGNoZXIpLT5mZXRj
aGVyKCkpLCBXVEZNb3ZlKHRvcExldmVsRmV0Y2hQYXJhbWV0ZXJzKSk7CisgICAgICAgIG1fbG9h
ZGVycy5hZGQobG9hZGVyLmNvcHlSZWYoKSk7CisgICAgICAgIGxvYWRlci0+bG9hZChtX2NvbnRl
eHQsIFdURk1vdmUoY29tcGxldGVkVVJMKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGpzUHJvbWlz
ZTsKQEAgLTE3Niw3ICsxOTAsNyBAQCBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1
bGVMb2FkZXI6OmZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsTwogVVJMIFNjcmlw
dE1vZHVsZUxvYWRlcjo6bW9kdWxlVVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmIGpzR2xvYmFsT2Jq
ZWN0LCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5VmFsdWUpCiB7CiAgICAgaWYgKG1vZHVsZUtleVZh
bHVlLmlzU3ltYm9sKCkpCi0gICAgICAgIHJldHVybiBtX2RvY3VtZW50LnVybCgpOworICAgICAg
ICByZXR1cm4gbV9jb250ZXh0LnVybCgpOwogCiAgICAgQVNTRVJUKG1vZHVsZUtleVZhbHVlLmlz
U3RyaW5nKCkpOwogICAgIHJldHVybiBVUkwoVVJMKCksIGFzU3RyaW5nKG1vZHVsZUtleVZhbHVl
KS0+dmFsdWUoJmpzR2xvYmFsT2JqZWN0KSk7CkBAIC0xODcsOCArMjAxLDExIEBAIFVSTCBTY3Jp
cHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9i
amVjdCYganNHbG9iYWxPCiAgICAgSlNDOjpWTSYgdm0gPSBqc0dsb2JhbE9iamVjdC52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIGlmIChpc1Jv
b3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKQotICAgICAgICByZXR1cm4gbV9kb2N1bWVudC5iYXNl
VVJMKCk7CisgICAgaWYgKGlzUm9vdE1vZHVsZShtb2R1bGVLZXlWYWx1ZSkpIHsKKyAgICAgICAg
aWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpCisgICAgICAgICAgICByZXR1
cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuYmFzZVVSTCgpOworICAgICAgICByZXR1
cm4gbV9jb250ZXh0LnVybCgpOworICAgIH0KIAogICAgIEFTU0VSVCghaXNSb290TW9kdWxlKG1v
ZHVsZUtleVZhbHVlKSk7CiAgICAgQVNTRVJUKG1vZHVsZUtleVZhbHVlLmlzU3RyaW5nKCkpOwpA
QCAtMjE5LDggKzIzNiwxNCBAQCBKU0M6OkpTVmFsdWUgU2NyaXB0TW9kdWxlTG9hZGVyOjpldmFs
dWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwgSgogICAgIGlmICghc291
cmNlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEpTQzo6dGhyb3dUeXBlRXJyb3IoanNH
bG9iYWxPYmplY3QsIHNjb3BlLCAiTW9kdWxlIGtleSBpcyBhbiBpbnZhbGlkIFVSTC4iX3MpOwog
Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gbV9kb2N1bWVudC5mcmFtZSgpKQotICAgICAgICByZXR1
cm4gZnJhbWUtPnNjcmlwdCgpLmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgKm1vZHVsZVJlY29y
ZCk7CisgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICAg
ICAgaWYgKGF1dG8qIGZyYW1lID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuZnJhbWUo
KSkKKyAgICAgICAgICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCkuZXZhbHVhdGVNb2R1bGUoc291
cmNlVVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAgICB9IGVsc2UgeworICAgICAgICBBU1NFUlQoaXM8
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KG1fY29udGV4dCkpOworICAgICAgICBpZiAoYXV0
byogc2NyaXB0ID0gZG93bmNhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU+KG1fY29udGV4
dCkuc2NyaXB0KCkpCisgICAgICAgICAgICByZXR1cm4gc2NyaXB0LT5ldmFsdWF0ZU1vZHVsZSgq
bW9kdWxlUmVjb3JkKTsKKyAgICB9CiAgICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKIH0K
IApAQCAtMjQ4LDIzICsyNzEsNDEgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9k
dWxlTG9hZGVyOjppbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganMKICAgICBVUkwg
YmFzZVVSTDsKICAgICBSZWZQdHI8SlNDOjpTY3JpcHRGZXRjaGVyPiBzY3JpcHRGZXRjaGVyOwog
ICAgIGlmIChzb3VyY2VPcmlnaW4uaXNOdWxsKCkpIHsKLSAgICAgICAgYmFzZVVSTCA9IG1fZG9j
dW1lbnQuYmFzZVVSTCgpOwotICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0
Y2hlcjo6Y3JlYXRlKG1fZG9jdW1lbnQuY2hhcnNldCgpKTsKKyAgICAgICAgaWYgKG1fb3duZXJU
eXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgICAgIGJhc2VVUkwgPSBkb3du
Y2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5iYXNlVVJMKCk7CisgICAgICAgICAgICBzY3JpcHRG
ZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Piht
X2NvbnRleHQpLmNoYXJzZXQoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZGVm
YXVsdC1jbGFzc2ljLXNjcmlwdC1mZXRjaC1vcHRpb25zCisgICAgICAgICAgICBiYXNlVVJMID0g
bV9jb250ZXh0LnVybCgpOworICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlw
dEZldGNoZXI6OmNyZWF0ZShGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luLCBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTY3JpcHQsIFJlZmVycmVyUG9saWN5OjpFbXB0eVN0
cmluZyk7CisgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBiYXNlVVJMID0gVVJMKFVS
TCgpLCBzb3VyY2VPcmlnaW4uc3RyaW5nKCkpOwogICAgICAgICBpZiAoIWJhc2VVUkwuaXNWYWxp
ZCgpKQogICAgICAgICAgICAgcmV0dXJuIHJlamVjdFByb21pc2UoZ2xvYmFsT2JqZWN0LCBUeXBl
RXJyb3IsICJJbXBvcnRlciBtb2R1bGUga2V5IGlzIG5vdCBhIFN5bWJvbCBvciBhIFN0cmluZy4i
X3MpOwogCi0gICAgICAgIGlmIChzb3VyY2VPcmlnaW4uZmV0Y2hlcigpKQorICAgICAgICBpZiAo
c291cmNlT3JpZ2luLmZldGNoZXIoKSkgewogICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IHNv
dXJjZU9yaWdpbi5mZXRjaGVyKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNjcmlwdEZl
dGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9kb2N1bWVudC5jaGFyc2V0KCkp
OworICAgICAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
d2ViYXBwYXBpcy5odG1sI2ZldGNoLWFuLWltcG9ydCgpLW1vZHVsZS1zY3JpcHQtZ3JhcGgKKyAg
ICAgICAgICAgIC8vIERlc3RpbmF0aW9uIHNob3VsZCBiZSAic2NyaXB0IiBmb3IgZHluYW1pYy1p
bXBvcnQuCisgICAgICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpXb3JrZXJP
cldvcmtsZXQpIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBmZXRjaGVyID0gc3RhdGljX2Nhc3Q8
V29ya2VyU2NyaXB0RmV0Y2hlciY+KCpzY3JpcHRGZXRjaGVyKTsKKyAgICAgICAgICAgICAgICBz
Y3JpcHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKGZldGNoZXIuY3JlZGVu
dGlhbHMoKSwgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2NyaXB0LCBmZXRjaGVyLnJlZmVy
cmVyUG9saWN5KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCFz
Y3JpcHRGZXRjaGVyKSB7CisgICAgICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBl
OjpEb2N1bWVudCkKKyAgICAgICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0
RmV0Y2hlcjo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmNoYXJzZXQoKSk7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IFdvcmtl
clNjcmlwdEZldGNoZXI6OmNyZWF0ZShGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3Jp
Z2luLCBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTY3JpcHQsIFJlZmVycmVyUG9saWN5OjpF
bXB0eVN0cmluZyk7CisgICAgICAgIH0KICAgICB9CiAgICAgQVNTRVJUKGJhc2VVUkwuaXNWYWxp
ZCgpKTsKICAgICBBU1NFUlQoc2NyaXB0RmV0Y2hlcik7CiAKICAgICBhdXRvIHNwZWNpZmllciA9
IG1vZHVsZU5hbWUtPnZhbHVlKGpzR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHJlc3VsdCA9IHJl
c29sdmVNb2R1bGVTcGVjaWZpZXIobV9kb2N1bWVudCwgc3BlY2lmaWVyLCBiYXNlVVJMKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIobV9jb250ZXh0LCBtX293bmVy
VHlwZSwgc3BlY2lmaWVyLCBiYXNlVVJMKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0
dXJuIHJlamVjdFByb21pc2UoZ2xvYmFsT2JqZWN0LCBUeXBlRXJyb3IsIHJlc3VsdC5lcnJvcigp
KTsKIApAQCAtMjg4LDYyICszMjksMTAwIEBAIEpTQzo6SlNPYmplY3QqIFNjcmlwdE1vZHVsZUxv
YWRlcjo6Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjCiAgICAg
cmV0dXJuIG1ldGFQcm9wZXJ0aWVzOwogfQogCi12b2lkIFNjcmlwdE1vZHVsZUxvYWRlcjo6bm90
aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiBsb2FkZXIsIFJlZlB0cjxEZWZl
cnJlZFByb21pc2U+IHByb21pc2UpCit2b2lkIFNjcmlwdE1vZHVsZUxvYWRlcjo6bm90aWZ5Rmlu
aXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVyJiBtb2R1bGVTY3JpcHRMb2FkZXIsIFVSTCYmIHNvdXJj
ZVVSTCwgUmVmPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZSkKIHsKICAgICAvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5n
bGUtbW9kdWxlLXNjcmlwdAogCi0gICAgVVJMIHNvdXJjZVVSTCA9IGxvYWRlci5zb3VyY2VVUkwo
KTsKLSAgICBpZiAoIW1fbG9hZGVycy5yZW1vdmUoJmxvYWRlcikpCisgICAgaWYgKCFtX2xvYWRl
cnMucmVtb3ZlKCZtb2R1bGVTY3JpcHRMb2FkZXIpKQogICAgICAgICByZXR1cm47Ci0gICAgbG9h
ZGVyLmNsZWFyQ2xpZW50KCk7CisgICAgbW9kdWxlU2NyaXB0TG9hZGVyLmNsZWFyQ2xpZW50KCk7
CisKKyAgICBhdXRvIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVzcG9uc2VVUkwgPSBbJl0gKFVS
TCByZXNwb25zZVVSTCwgYm9vbCBoYXNSZWRpcmVjdGlvbnMsIFJlc291cmNlUmVzcG9uc2U6OlNv
dXJjZSBzb3VyY2UpIHsKKyAgICAgICAgLy8gSWYgd2UgZG8gbm90IGhhdmUgcmVkaXJlY3Rpb24s
IHdlIG11c3QgcmVzZXJ2ZSB0aGUgc291cmNlIFVSTCdzIGZyYWdtZW50IGV4cGxpY2l0bHkgaGVy
ZSBzaW5jZSBSZXNvdXJjZVJlc3BvbnNlOjp1cmwoKSBpcyB0aGUgb25lIHdoZW4gd2UgZmlyc3Qg
Y2FjaGUgaXQgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJh
Y2sgZnJhZ21lbnRzIHRocm91Z2ggcmVkaXJlY3Rpb25zLgorICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCisgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0OTAKKyAgICAgICAgaWYgKCFoYXNS
ZWRpcmVjdGlvbnMgJiYgc291cmNlICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2Vydmlj
ZVdvcmtlcikgeworICAgICAgICAgICAgaWYgKHNvdXJjZVVSTC5oYXNGcmFnbWVudElkZW50aWZp
ZXIoKSkKKyAgICAgICAgICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIo
c291cmNlVVJMLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICAgICAgfQogCi0gICAgYXV0byYg
Y2FjaGVkU2NyaXB0ID0gKmxvYWRlci5jYWNoZWRTY3JpcHQoKTsKKyAgICAgICAgbV9yZXF1ZXN0
VVJMVG9SZXNwb25zZVVSTE1hcC5hZGQoc291cmNlVVJMLnN0cmluZygpLCByZXNwb25zZVVSTCk7
CisgICAgICAgIHJldHVybiByZXNwb25zZVVSTDsKKyAgICB9OwogCi0gICAgaWYgKGNhY2hlZFNj
cmlwdC5yZXNvdXJjZUVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkpIHsKLSAgICAgICAgcHJvbWlz
ZS0+cmVqZWN0KFR5cGVFcnJvciwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkg
Q3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9CisgICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsK
KyAgICAgICAgYXV0byYgbG9hZGVyID0gc3RhdGljX2Nhc3Q8Q2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVyKTsKKyAgICAgICAgYXV0byYgY2FjaGVkU2NyaXB0ID0g
KmxvYWRlci5jYWNoZWRTY3JpcHQoKTsKIAotICAgIGlmIChjYWNoZWRTY3JpcHQuZXJyb3JPY2N1
cnJlZCgpKSB7Ci0gICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKCpwcm9taXNl
LCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxl
IHNjcmlwdCBmYWlsZWQuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYg
KGNhY2hlZFNjcmlwdC5yZXNvdXJjZUVycm9yKCkuaXNBY2Nlc3NDb250cm9sKCkpIHsKKyAgICAg
ICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVs
ZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQg
ZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iX3MpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICBpZiAoY2FjaGVkU2NyaXB0Lndhc0Nh
bmNlbGVkKCkpIHsKLSAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoKnByb21p
c2UsIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkLCAiSW1wb3J0aW5nIGEgbW9k
dWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4iX3MpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAg
ICAgICBpZiAoY2FjaGVkU2NyaXB0LmVycm9yT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgcmVq
ZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWls
dXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJf
cyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIGlmICghTUlNRVR5cGVS
ZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUoY2FjaGVkU2NyaXB0LnJlc3Bv
bnNlKCkubWltZVR5cGUoKSkpIHsKLSAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3Jp
cHQKLSAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20g
cmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2
YVNjcmlwdCBNSU1FIHR5cGUuCi0gICAgICAgIC8vIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGZl
dGNoaW5nIGEgY2xhc3NpYyBzY3JpcHQgZG9lcyBub3QgaW5jbHVkZSBNSU1FIHR5cGUgY2hlY2tp
bmcuIEluIGNvbnRyYXN0LCBtb2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwgdG8gbG9hZCBpZiB0aGV5
IGFyZSBub3Qgb2YgYSBjb3JyZWN0IE1JTUUgdHlwZS4KLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0
KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIsIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVU
eXBlKCksICInIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC53YXNDYW5jZWxlZCgp
KSB7CisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdl
dCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZCwgIkltcG9ydGluZyBhIG1v
ZHVsZSBzY3JpcHQgaXMgY2FuY2VsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQogCi0gICAgaWYgKGF1dG8qIHBhcmFtZXRlcnMgPSBsb2FkZXIucGFyYW1ldGVycygpKSB7
Ci0gICAgICAgIGlmICghbWF0Y2hJbnRlZ3JpdHlNZXRhZGF0YShjYWNoZWRTY3JpcHQsIHBhcmFt
ZXRlcnMtPmludGVncml0eSgpKSkgewotICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVF
cnJvciwgbWFrZVN0cmluZygiQ2Fubm90IGxvYWQgc2NyaXB0ICIsIGludGVncml0eU1pc21hdGNo
RGVzY3JpcHRpb24oY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpKTsKKyAg
ICAgICAgaWYgKCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlw
ZShjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpKSkgeworICAgICAgICAgICAgLy8g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2Zl
dGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKKyAgICAgICAgICAgIC8vIFRoZSByZXN1bHQgb2Yg
ZXh0cmFjdGluZyBhIE1JTUUgdHlwZSBmcm9tIHJlc3BvbnNlJ3MgaGVhZGVyIGxpc3QgKGlnbm9y
aW5nIHBhcmFtZXRlcnMpIGlzIG5vdCBhIEphdmFTY3JpcHQgTUlNRSB0eXBlLgorICAgICAgICAg
ICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBk
b2VzIG5vdCBpbmNsdWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBz
Y3JpcHRzIHdpbGwgZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlN
RSB0eXBlLgorICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmlu
ZygiJyIsIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCksICInIGlzIG5vdCBhIHZh
bGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQotICAgIH0KIAotICAgIFVSTCByZXNwb25zZVVSTCA9IGNhY2hlZFNjcmlwdC5yZXNwb25z
ZSgpLnVybCgpOwotICAgIC8vIElmIHdlIGRvIG5vdCBoYXZlIHJlZGlyZWN0aW9uLCB3ZSBtdXN0
IHJlc2VydmUgdGhlIHNvdXJjZSBVUkwncyBmcmFnbWVudCBleHBsaWNpdGx5IGhlcmUgc2luY2Ug
UmVzb3VyY2VSZXNwb25zZTo6dXJsKCkgaXMgdGhlIG9uZSB3aGVuIHdlIGZpcnN0IGNhY2hlIGl0
IHRvIE1lbW9yeUNhY2hlLgotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdHJhY2sgZnJhZ21lbnRz
IHRocm91Z2ggcmVkaXJlY3Rpb25zLgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTg0MjAKLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEwNDkwCi0gICAgaWYgKCFjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25z
KCkgJiYgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkgIT0gUmVzb3VyY2VSZXNwb25z
ZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7Ci0gICAgICAgIGlmIChzb3VyY2VVUkwuaGFzRnJh
Z21lbnRJZGVudGlmaWVyKCkpCi0gICAgICAgICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElk
ZW50aWZpZXIoc291cmNlVVJMLmZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICB9CisgICAgICAg
IGlmIChhdXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkgeworICAgICAgICAg
ICAgaWYgKCFtYXRjaEludGVncml0eU1ldGFkYXRhKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+
aW50ZWdyaXR5KCkpKSB7CisgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJv
ciwgbWFrZVN0cmluZygiQ2Fubm90IGxvYWQgc2NyaXB0ICIsIGludGVncml0eU1pc21hdGNoRGVz
Y3JpcHRpb24oY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KIAotICAgIG1fcmVx
dWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5zdHJpbmcoKSwgV1RGTW92ZShy
ZXNwb25zZVVSTCkpOwotICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2FsbGJhY2soWyZdIChKU0RP
TUdsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QpIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6SlNT
b3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKLSAgICAgICAgICAgIEpTQzo6
U291cmNlQ29kZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyAmY2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJj
ZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNT
b3VyY2VDb2RlKCkgfSk7Ci0gICAgfSk7CisgICAgICAgIGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVy
UmVzcG9uc2VVUkwoY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCksIGNhY2hlZFNjcmlwdC5o
YXNSZWRpcmVjdGlvbnMoKSwgY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkuc291cmNlKCkpOworICAg
ICAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3Qm
IGpzR2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpKU1NvdXJjZUNvZGU6
OmNyZWF0ZShqc0dsb2JhbE9iamVjdC52bSgpLAorICAgICAgICAgICAgICAgIEpTQzo6U291cmNl
Q29kZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyAmY2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJjZVByb3Zp
ZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VD
b2RlKCkgfSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8mIGxvYWRl
ciA9IHN0YXRpY19jYXN0PFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciY+KG1vZHVsZVNjcmlwdExv
YWRlcik7CisgICAgICAgIGF1dG8mIHdvcmtlclNjcmlwdExvYWRlciA9IGxvYWRlci5zY3JpcHRM
b2FkZXIoKTsKKworICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmZhaWxlZCgpKSB7Cisg
ICAgICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmVycm9yKCkuaXNBY2Nlc3NDb250cm9s
KCkpIHsKKyAgICAgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9t
aXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiQ3Jvc3Mtb3Jp
Z2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBw
b2xpY3kuIl9zKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmICh3b3JrZXJTY3JpcHRMb2FkZXIuZXJyb3IoKS5pc0NhbmNlbGxhdGlvbigp
KSB7CisgICAgICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlz
ZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcg
YSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtF
cnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAi
SW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0
ZWRKYXZhU2NyaXB0TUlNRVR5cGUod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlNRVR5cGUo
KSkpIHsKKyAgICAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL3dlYmFwcGFwaXMuaHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0CisgICAgICAg
ICAgICAvLyBUaGUgcmVzdWx0IG9mIGV4dHJhY3RpbmcgYSBNSU1FIHR5cGUgZnJvbSByZXNwb25z
ZSdzIGhlYWRlciBsaXN0IChpZ25vcmluZyBwYXJhbWV0ZXJzKSBpcyBub3QgYSBKYXZhU2NyaXB0
IE1JTUUgdHlwZS4KKyAgICAgICAgICAgIC8vIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGZldGNo
aW5nIGEgY2xhc3NpYyBzY3JpcHQgZG9lcyBub3QgaW5jbHVkZSBNSU1FIHR5cGUgY2hlY2tpbmcu
IEluIGNvbnRyYXN0LCBtb2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwgdG8gbG9hZCBpZiB0aGV5IGFy
ZSBub3Qgb2YgYSBjb3JyZWN0IE1JTUUgdHlwZS4KKyAgICAgICAgICAgIHByb21pc2UtPnJlamVj
dChUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIiciLCB3b3JrZXJTY3JpcHRMb2FkZXIucmVzcG9uc2VN
SU1FVHlwZSgpLCAiJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iKSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBVUkwgcmVzcG9uc2VVUkwg
PSBjYW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKHdvcmtlclNjcmlwdExvYWRlci5y
ZXNwb25zZVVSTCgpLCB3b3JrZXJTY3JpcHRMb2FkZXIuaXNSZWRpcmVjdGVkKCksIHdvcmtlclNj
cmlwdExvYWRlci5yZXNwb25zZVNvdXJjZSgpKTsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdp
dGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAg
ICAgICAgICAgcmV0dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qu
dm0oKSwKKyAgICAgICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2Rl
IHsgd29ya2VyU2NyaXB0TG9hZGVyLnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9
LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0
Y2hlcigpIH0uanNTb3VyY2VDb2RlKCkgfSk7CisgICAgICAgIH0pOworICAgIH0KIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAppbmRl
eCBkZTI5ZDJmNGJmMDk2YjYwYzM2OTk4MDMxNmMxNDg2YjI4MmFiZjA5Li5kZjM0ZDU1MWExMWNk
OThmNGUyMzZhMmFhMWY0ODI3OWQ5NjRjNjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaApAQCAtMjUsOCArMjUsOCBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIgotI2luY2x1ZGUg
IkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlw
dExvYWRlci5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDUsMTYgKzQ1LDE3IEBAIGNsYXNz
IFNvdXJjZU9yaWdpbjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsK
IGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
IAotY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQgeworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJp
dmF0ZSBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFNjcmlwdE1vZHVsZUxvYWRlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRlcihEb2N1bWVudCYpOworICAgIGVudW0gY2xh
c3MgT3duZXJUeXBlIDogdWludDhfdCB7IERvY3VtZW50LCBXb3JrZXJPcldvcmtsZXQgfTsKKyAg
ICBleHBsaWNpdCBTY3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE93
bmVyVHlwZSk7CiAgICAgflNjcmlwdE1vZHVsZUxvYWRlcigpOwogCi0gICAgRG9jdW1lbnQmIGRv
Y3VtZW50KCkgeyByZXR1cm4gbV9kb2N1bWVudDsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogICAgIEpTQzo6SWRlbnRpZmll
ciByZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlND
OjpKU1ZhbHVlIG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlND
OjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwogICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGZl
dGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1Zh
bHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3Jp
cHRGZXRjaGVyKTsKQEAgLTYzLDEzICs2NCwxNSBAQCBjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIg
ZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7CiAgICAgSlND
OjpKU09iamVjdCogY3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNNb2R1bGVSZWNv
cmQqLCBKU0M6OkpTVmFsdWUpOwogCiBwcml2YXRlOgotICAgIHZvaWQgbm90aWZ5RmluaXNoZWQo
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4pIGZpbmFs
OworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJl
ZjxEZWZlcnJlZFByb21pc2U+KSBmaW5hbDsKKwogICAgIFVSTCBtb2R1bGVVUkwoSlNDOjpKU0ds
b2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAgICAgVVJMIHJlc3BvbnNlVVJMRnJvbVJlcXVl
c3RVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAKLSAgICBEb2N1bWVu
dCYgbV9kb2N1bWVudDsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBtX2NvbnRleHQ7CiAg
ICAgSGFzaE1hcDxTdHJpbmcsIFVSTD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKLSAg
ICBIYXNoU2V0PFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7CisgICAg
SGFzaFNldDxSZWY8TW9kdWxlU2NyaXB0TG9hZGVyPj4gbV9sb2FkZXJzOworICAgIE93bmVyVHlw
ZSBtX293bmVyVHlwZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaAppbmRleCBjNzA0NjI2ZmI3MzNk
YjQ3MmJkYTUwMjM2MjQxYTZlNzQwZTI3ODJiLi4xMGZhN2U4YjQ0OWM4Yjg0OWViMzdjYzFmMmM4
NjZmYTg5M2FhZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRTb3VyY2VDb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291
cmNlQ29kZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGUgewogICAg
IHsKICAgICB9CiAKLSAgICBTY3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBV
UkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgSlNDOjpTb3VyY2VQ
cm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwgUmVmPENhY2hlZFNjcmlwdEZldGNoZXI+JiYg
c2NyaXB0RmV0Y2hlcikKKyAgICBTY3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYgc291cmNl
LCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgSlNDOjpTb3Vy
Y2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwgUmVmPEpTQzo6U2NyaXB0RmV0Y2hlcj4m
JiBzY3JpcHRGZXRjaGVyKQogICAgICAgICA6IG1fcHJvdmlkZXIoSlNDOjpTdHJpbmdTb3VyY2VQ
cm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgSlNDOjpTb3VyY2VPcmlnaW4geyB1cmwsIFdURk1vdmUo
c2NyaXB0RmV0Y2hlcikgfSwgdXJsLnN0cmluZygpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBl
KSkKICAgICAgICAgLCBtX2NvZGUobV9wcm92aWRlci5jb3B5UmVmKCksIHN0YXJ0UG9zaXRpb24u
bV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQo
KSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJN
b2R1bGVTY3JpcHRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2Vy
TW9kdWxlU2NyaXB0TG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDEzNDhjOTNkMTYwZWFlNWM0OGRm
ZDU3OWRkYzgwODE5MjFmNThkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcApAQCAtMCwwICsxLDkzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldvcmtlck1vZHVsZVNj
cmlwdExvYWRlci5oIgorCisjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1
ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNE
T01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRl
ICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlv
bnMuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9k
dWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgorI2luY2x1ZGUgIldv
cmtlclNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyPiBXb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNs
aWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3Jp
cHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVu
dCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RGTW92ZShwYXJhbWV0ZXJzKSkpOworfQorCitX
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVT
Y3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBXb3Jr
ZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzPiYmIHBhcmFtZXRlcnMpCisgICAgOiBNb2R1bGVTY3JpcHRMb2FkZXIoY2xpZW50LCBwcm9t
aXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKQorICAgICwgbV9zY3JpcHRM
b2FkZXIoV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKSkKK3sKK30KKworV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyOjp+V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKCkKK3sKKyAgICBtX3Njcmlw
dExvYWRlci0+Y2FuY2VsKCk7Cit9CisKK2Jvb2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjps
b2FkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVSTCYmIHNvdXJjZVVSTCkKK3sK
KyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUoc291cmNlVVJMKTsKKworICAgIFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0IHsgbV9zb3VyY2VVUkwgfTsKKworICAgIEZldGNoT3B0aW9ucyBmZXRjaE9w
dGlvbnM7CisgICAgZmV0Y2hPcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM7
CisgICAgZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsK
KyAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xs
b3c7CisgICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gc3RhdGljX2Nhc3Q8V29ya2VyU2Ny
aXB0RmV0Y2hlciY+KHNjcmlwdEZldGNoZXIoKSkuY3JlZGVudGlhbHMoKTsKKyAgICBmZXRjaE9w
dGlvbnMuZGVzdGluYXRpb24gPSBzdGF0aWNfY2FzdDxXb3JrZXJTY3JpcHRGZXRjaGVyJj4oc2Ny
aXB0RmV0Y2hlcigpKS5kZXN0aW5hdGlvbigpOworICAgIGZldGNoT3B0aW9ucy5yZWZlcnJlclBv
bGljeSA9IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihzY3JpcHRGZXRjaGVyKCkp
LnJlZmVycmVyUG9saWN5KCk7CisgICAgYXV0byBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNl
bWVudCA9IGNvbnRleHQuc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
KCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29u
dGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkVuZm9yY2VDaGlsZFNyY0RpcmVjdGl2ZTsK
KworICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92
ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsICp0aGlzLCB0YXNrTW9kZSgpKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5v
dGlmeUZpbmlzaGVkKCkKK3sKKyAgICBBU1NFUlQobV9wcm9taXNlKTsKKworICAgIGF1dG8gcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAg
bV9jbGllbnQtPm5vdGlmeUZpbmlzaGVkKCp0aGlzLCBXVEZNb3ZlKG1fc291cmNlVVJMKSwgbV9w
cm9taXNlLnJlbGVhc2VOb25OdWxsKCkpOworfQorCitTdHJpbmcgV29ya2VyTW9kdWxlU2NyaXB0
TG9hZGVyOjp0YXNrTW9kZSgpCit7CisgICAgcmV0dXJuICJsb2FkTW9kdWxlc0luV29ya2VyT3JX
b3JrbGV0TW9kZSJfczsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzliNjMzMDRkMWU3
ODkyNDBjNDQxOTNhN2RhZGE3NjhjZjEyYjgyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgKQEAgLTAsMCArMSw2
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0
TG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVk
ZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBEZWZlcnJlZFByb21pc2U7CitjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKK2NsYXNz
IE1vZHVsZUZldGNoUGFyYW1ldGVyczsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Citj
bGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFzcyBXb3JrZXJTY3JpcHRMb2FkZXI7
CisKK2NsYXNzIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBNb2R1bGVT
Y3JpcHRMb2FkZXIsIHByaXZhdGUgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlzZSYsIFdvcmtlclNjcmlwdEZldGNoZXIm
LCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKworICAgIHZpcnR1YWwgfldvcmtl
ck1vZHVsZVNjcmlwdExvYWRlcigpOworCisgICAgYm9vbCBsb2FkKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBVUkwmJiBzb3VyY2VVUkwpOworCisgICAgV29ya2VyU2NyaXB0TG9hZGVyJiBzY3Jp
cHRMb2FkZXIoKSB7IHJldHVybiBtX3NjcmlwdExvYWRlci5nZXQoKTsgfQorCisgICAgc3RhdGlj
IFN0cmluZyB0YXNrTW9kZSgpOworCitwcml2YXRlOgorICAgIFdvcmtlck1vZHVsZVNjcmlwdExv
YWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJT
Y3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisKKyAgICB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJikgZmluYWwgeyB9CisgICAgdm9pZCBub3RpZnlGaW5pc2hlZCgpIGZpbmFsOworCisgICAg
UmVmPFdvcmtlclNjcmlwdExvYWRlcj4gbV9zY3JpcHRMb2FkZXI7CisgICAgVVJMIG1fc291cmNl
VVJMOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RmV0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0RmV0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3MDkxNTJjZWQ1
ZjViMzQ0NDk2MjI5ODViOWUxOTE2YTcyMDJkZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRGZXRjaGVyLmgKQEAgLTAsMCArMSw5MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTG9hZGFibGVTY3JpcHQu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRGZXRjaGVyLmg+CisjaW5jbHVkZSA8
d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkU2NyaXB0OworY2xhc3MgRG9jdW1lbnQ7CisK
K2NsYXNzIFdvcmtlclNjcmlwdEZldGNoZXIgZmluYWwgOiBwdWJsaWMgSlNDOjpTY3JpcHRGZXRj
aGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdvcmtlclNjcmlwdEZldGNoZXI+IGNyZWF0
ZShGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtlclNjcmlwdEZldGNoZXIoY3Jl
ZGVudGlhbHMsIGRlc3RpbmF0aW9uLCByZWZlcnJlclBvbGljeSkpOworICAgIH0KKworICAgIEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBtX2Ny
ZWRlbnRpYWxzOyB9CisgICAgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH0KKyAgICBSZWZlcnJlclBvbGljeSByZWZl
cnJlclBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJyZXJQb2xpY3k7IH0KKworICAgIHZv
aWQgbm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYgbW9kdWxlS2V5KQorICAg
IHsKKyAgICAgICAgbV9tb2R1bGVLZXkgPSAmbW9kdWxlS2V5OworICAgICAgICBtX2lzTG9hZGVk
ID0gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIG5vdGlmeUxvYWRGYWlsZWQoTG9hZGFibGVTY3Jp
cHQ6OkVycm9yJiYgZXJyb3IpCisgICAgeworICAgICAgICBtX2Vycm9yID0gV1RGTW92ZShlcnJv
cik7CisgICAgICAgIG1faXNMb2FkZWQgPSB0cnVlOworICAgIH0KKworICAgIHZvaWQgbm90aWZ5
TG9hZFdhc0NhbmNlbGVkKCkKKyAgICB7CisgICAgICAgIG1fd2FzQ2FuY2VsZWQgPSB0cnVlOwor
ICAgICAgICBtX2lzTG9hZGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIGlzTG9hZGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9pc0xvYWRlZDsgfQorICAgIE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0
OjpFcnJvcj4gZXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yOyB9CisgICAgYm9vbCB3YXND
YW5jZWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzQ2FuY2VsZWQ7IH0KKyAgICBVbmlxdWVkU3Ry
aW5nSW1wbCogbW9kdWxlS2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0K
KworcHJvdGVjdGVkOgorICAgIFdvcmtlclNjcmlwdEZldGNoZXIoRmV0Y2hPcHRpb25zOjpDcmVk
ZW50aWFscyBjcmVkZW50aWFscywgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlv
biwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kpCisgICAgICAgIDogbV9jcmVkZW50aWFs
cyhjcmVkZW50aWFscykKKyAgICAgICAgLCBtX2Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uKQorICAg
ICAgICAsIG1fcmVmZXJyZXJQb2xpY3kocmVmZXJyZXJQb2xpY3kpCisgICAgeworICAgIH0KKwor
cHJpdmF0ZToKKyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIG1fY3JlZGVudGlhbHM7Cisg
ICAgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBtX2Rlc3RpbmF0aW9uOworICAgIFJlZmVycmVy
UG9saWN5IG1fcmVmZXJyZXJQb2xpY3kgeyBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcgfTsK
KyAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IG1fbW9kdWxlS2V5OworICAgIE9wdGlvbmFs
PExvYWRhYmxlU2NyaXB0OjpFcnJvcj4gbV9lcnJvcjsKKyAgICBib29sIG1fd2FzQ2FuY2VsZWQg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0xvYWRlZCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxYjlmNzI2NjM5MjEw
ODVjNThkMDhiNWIwNzk5NjU2OWZlYTY2MmFhLi41MDgwZWE4NTk1ODhmZTkzOWM3YTJjN2Y2NWE4
ODFiNGE3YjQ4YTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYxNSw3ICs2MTUsNyBA
QCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5ncyYgc2V0dGlu
Z3MsIGNvbnN0IFVSTCYgdXJsLCBEb2N1bQogICAgICwgbV9kb2N1bWVudENyZWF0aW9uVGltZShN
b25vdG9uaWNUaW1lOjpub3coKSkKICNlbmRpZgogICAgICwgbV9zY3JpcHRSdW5uZXIobWFrZVVu
aXF1ZTxTY3JpcHRSdW5uZXI+KCp0aGlzKSkKLSAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlx
dWU8U2NyaXB0TW9kdWxlTG9hZGVyPigqdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlcihtYWtl
VW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxvYWRlcjo6T3du
ZXJUeXBlOjpEb2N1bWVudCkpCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgLCBtX2FwcGx5UGVuZGlu
Z1hTTFRyYW5zZm9ybXNUaW1lcigqdGhpcywgJkRvY3VtZW50OjphcHBseVBlbmRpbmdYU0xUcmFu
c2Zvcm1zVGltZXJGaXJlZCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0V4Y2VwdGlvbkNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmgKaW5k
ZXggZjZiNTU4ZWE4MmQ3OTM2OGU2MWFkYjA2MGNmMGI0ZWExZGJlYTIwYy4uMTdkZTc0MzQ3MmY3
NzMxYjAzYzk4ZmVjZTdiMWViMWI5NjAxZTc3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V4Y2VwdGlvbkNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29k
ZS5oCkBAIC02MSw2ICs2MSw3IEBAIGVudW0gRXhjZXB0aW9uQ29kZSB7CiAgICAgLy8gU2ltcGxl
IGV4Y2VwdGlvbnMgKGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2lkbC1leGNlcHRp
b25zKS4KICAgICBSYW5nZUVycm9yLAogICAgIFR5cGVFcnJvciwKKyAgICBKU1N5bnRheEVycm9y
LCAvLyBEaWZmZXJlbnQgZnJvbSBET00gU1lOVEFYX0VSUi4KIAogICAgIC8vIE5vbi1zdGFuZGFy
ZCBlcnJvci4KICAgICBTdGFja092ZXJmbG93RXJyb3IsCkBAIC0xMTEsNiArMTEyLDcgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpFeGNlcHRpb25Db2RlPiB7CiAgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6Tm90QWxsb3dlZEVycm9yLAogICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGU6OlJhbmdlRXJyb3IsCiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6VHlw
ZUVycm9yLAorICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OkpTU3ludGF4RXJyb3IsCiAgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6U3RhY2tPdmVyZmxvd0Vycm9yLAogICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGU6OkV4aXN0aW5nRXhjZXB0aW9uRXJyb3IKICAgICA+OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKaW5kZXggOWEyNWMxNjU4OGVlY2Fk
Njc4ZmI5MTFlYzg2MjJmNDI0MjU5MmI1YS4uNDhlYzA4NTFhNDU3ZDliYTQ3NDczZmVjMjhkN2I0
OTMxMmI3ODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxl
U2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQu
Y3BwCkBAIC04OCwxNiArODgsNCBAQCB2b2lkIExvYWRhYmxlTW9kdWxlU2NyaXB0OjpleGVjdXRl
KFNjcmlwdEVsZW1lbnQmIHNjcmlwdEVsZW1lbnQpCiAgICAgc2NyaXB0RWxlbWVudC5leGVjdXRl
TW9kdWxlU2NyaXB0KCp0aGlzKTsKIH0KIAotdm9pZCBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9h
ZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgcm9vdFVSTCkKLXsKLSAgICBpZiAoYXV0
byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKQotICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9h
ZE1vZHVsZVNjcmlwdCgqdGhpcywgcm9vdFVSTC5zdHJpbmcoKSwgbV9wYXJhbWV0ZXJzLmNvcHlS
ZWYoKSk7Ci19Ci0KLXZvaWQgTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQotewotICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5zY3JpcHQoKS5s
b2FkTW9kdWxlU2NyaXB0KCp0aGlzLCBzb3VyY2VDb2RlKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaAppbmRleCBiYjc5OTU0ZDdiOTliMGVkMDZiZmU1
NWVmODU0ZWNjZTIxZjM1ODc3Li5kMjUzNTk2M2Y2NDhiMDJhOGEwMWZkNjNiYjFlMzgxMzg2Y2Vl
NDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuaApAQCAtNTAs
MTUgKzUwLDE0IEBAIGNsYXNzIExvYWRhYmxlTW9kdWxlU2NyaXB0IGZpbmFsIDogcHVibGljIExv
YWRhYmxlU2NyaXB0IHsKIAogICAgIHZvaWQgc2V0RXJyb3IoRXJyb3ImJik7CiAKLSAgICB2b2lk
IGxvYWQoRG9jdW1lbnQmLCBjb25zdCBVUkwmIHJvb3RVUkwpOwotICAgIHZvaWQgbG9hZChEb2N1
bWVudCYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKLQogICAgIHZvaWQgbm90aWZ5TG9hZENv
bXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYpOwogICAgIHZvaWQgbm90aWZ5TG9hZEZhaWxlZChM
b2FkYWJsZVNjcmlwdDo6RXJyb3ImJik7CiAgICAgdm9pZCBub3RpZnlMb2FkV2FzQ2FuY2VsZWQo
KTsKIAogICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBtb2R1bGVLZXkoKSBjb25zdCB7IHJldHVybiBt
X21vZHVsZUtleS5nZXQoKTsgfQogCisgICAgTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKCkgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgTG9h
ZGFibGVNb2R1bGVTY3JpcHQoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBpbnRl
Z3JpdHksIFJlZmVycmVyUG9saWN5LCBjb25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSwgY29u
c3QgU3RyaW5nJiBjaGFyc2V0LCBjb25zdCBBdG9tU3RyaW5nJiBpbml0aWF0b3JOYW1lLCBib29s
IGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQu
Y3BwCmluZGV4IDA1NzU4YjYwMGM3NTIyYjQ3ZjM2NGJhNmExOGQzNWYxNzMxMTA3ZjkuLjVlOTlm
MGY1Nzc3YjNiMjE1OGRkMGZhNGJjMzgyNzc2Y2RiMzQ4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJMb2FkYWJsZUNsYXNz
aWNTY3JpcHQuaCIKICNpbmNsdWRlICJMb2FkYWJsZU1vZHVsZVNjcmlwdC5oIgogI2luY2x1ZGUg
Ik1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIK
ICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmgiCiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmgiCiAjaW5jbHVkZSAiU1ZHU2NyaXB0RWxlbWVudC5oIgpAQCAtMzUxLDggKzM1Miwx
MSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3JpcHQoY29uc3QgVGV4dFBv
c2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAgc2NyaXB0Q2hhcnNldCgp
LAogICAgICAgICAgICAgbV9lbGVtZW50LmxvY2FsTmFtZSgpLAogICAgICAgICAgICAgbV9lbGVt
ZW50LmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkpOwotICAgICAgICBzY3JpcHQtPmxvYWQobV9l
bGVtZW50LmRvY3VtZW50KCksIG1vZHVsZVNjcmlwdFJvb3RVUkwpOwogICAgICAgICBtX2xvYWRh
YmxlU2NyaXB0ID0gV1RGTW92ZShzY3JpcHQpOworICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBt
X2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKSB7CisgICAgICAgICAgICBhdXRvJiBzY3JpcHQg
PSBkb3duY2FzdDxMb2FkYWJsZU1vZHVsZVNjcmlwdD4oKm1fbG9hZGFibGVTY3JpcHQuZ2V0KCkp
OworICAgICAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoc2NyaXB0LCBt
b2R1bGVTY3JpcHRSb290VVJMLnN0cmluZygpLCBtYWtlUmVmKHNjcmlwdC5wYXJhbWV0ZXJzKCkp
KTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTM2Nyw4ICsz
NzEsOSBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RNb2R1bGVTY3JpcHQoY29uc3QgVGV4
dFBvc2l0aW9uJiBzY3JpcHRTdGFydFBvc2l0aW9uKQogICAgIGlmICghY29udGVudFNlY3VyaXR5
UG9saWN5LmFsbG93SW5saW5lU2NyaXB0KG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpLnN0cmlu
ZygpLCBtX3N0YXJ0TGluZU51bWJlciwgc291cmNlQ29kZS5zb3VyY2UoKS50b1N0cmluZ1dpdGhv
dXRDb3B5aW5nKCksIGhhc0tub3duTm9uY2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBzY3JpcHQtPmxvYWQobV9lbGVtZW50LmRvY3VtZW50KCksIHNvdXJjZUNvZGUpOwogICAgIG1f
bG9hZGFibGVTY3JpcHQgPSBXVEZNb3ZlKHNjcmlwdCk7CisgICAgaWYgKGF1dG8qIGZyYW1lID0g
bV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxv
YWRNb2R1bGVTY3JpcHQoZG93bmNhc3Q8TG9hZGFibGVNb2R1bGVTY3JpcHQ+KCptX2xvYWRhYmxl
U2NyaXB0LmdldCgpKSwgc291cmNlQ29kZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCAyNzE3Yzg2MWM3NGIw
ZjJhZWJjZGU0MDg3MDBlMmE5YTAzNzM3NTk1Li4xYjY1MzJjM2IwZWFhODBkOWJkNDZjNmQ0MzIx
MzY5NjIxYzAxOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJs
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIu
Y3BwCkBAIC0xMDEsMTAgKzEwMSwxMCBAQCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBUaHJlYWRh
YmxlTG9hZGVyT3B0aW9uczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIH0KIAogCi1SZWZQdHI8VGhy
ZWFkYWJsZUxvYWRlcj4gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmIGNsaWVudCwgUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMs
IFN0cmluZyYmIHJlZmVycmVyKQorUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IFRocmVhZGFibGVM
b2FkZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUaHJlYWRhYmxl
TG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFRo
cmVhZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBTdHJpbmcmJiByZWZlcnJlciwgU3RyaW5n
JiYgdGFza01vZGUpCiB7CiAgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSB8
fCAoaXM8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBkb3duY2FzdDxXb3JrbGV0R2xv
YmFsU2NvcGU+KGNvbnRleHQpLndvcmtlck9yV29ya2xldFRocmVhZCgpKSkKLSAgICAgICAgcmV0
dXJuIFdvcmtlclRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDxXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZSY+KGNvbnRleHQpLCBjbGllbnQsIFdvcmtlclJ1bkxvb3A6OmRlZmF1
bHRNb2RlKCksIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMsIFdURk1vdmUocmVmZXJyZXIpKTsK
KyAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzdGF0aWNfY2Fz
dDxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSY+KGNvbnRleHQpLCBjbGllbnQsIFdURk1vdmUo
dGFza01vZGUpLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zLCBXVEZNb3ZlKHJlZmVycmVyKSk7
CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBudWxscHRyOwogICAgIGlmIChpczxXb3JrbGV0
R2xvYmFsU2NvcGU+KGNvbnRleHQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1RocmVhZGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9h
ZGVyLmgKaW5kZXggYzJiMjQ1YzNlYmI4YmM5MzBlZjRkMTcyYmExNTA5YTE3OWYxZDdhNi4uMWFj
NzA0YjRjM2I1MGIwZmZkYTAzNDI4YzNjZTdkYTE0OTg4MjYzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCkBAIC03NCw3ICs3NCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkYWJsZUxvYWRlcik7CiAg
ICAgcHVibGljOgogICAgICAgICBzdGF0aWMgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgVGhyZWFkYWJsZUxv
YWRlckNsaWVudCYsIGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJik7Ci0gICAgICAgIHN0
YXRpYyBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFRo
cmVhZGFibGVMb2FkZXJPcHRpb25zJiwgU3RyaW5nJiYgcmVmZXJyZXIgPSBTdHJpbmcoKSk7Cisg
ICAgICAgIHN0YXRpYyBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgUmVzb3VyY2VSZXF1ZXN0JiYs
IGNvbnN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zJiwgU3RyaW5nJiYgcmVmZXJyZXIgPSBTdHJp
bmcoKSwgU3RyaW5nJiYgdGFza01vZGUgPSB7IH0pOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlSXNEb25lKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKCkgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZS5oCmluZGV4IDBmY2I2MDlkMTFmMmM5MmU1NTQ1Y2Y3NzAwMWUwODIzZmE4NjViMjcuLjU3ZjQ1
MmM2ZWVhOWUwNjNmZDc1ODhkZTkxMzQyNzkwY2Q4OTljMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTgxLDYgKzgx
LDggQEAgY2xhc3MgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgZmluYWwgOiBwdWJsaWMgV29y
a2VyR2xvYmFsU2NvcGUgewogICAgIFJlZlB0cjxNZXNzYWdlUG9ydD4gdGFrZVBlbmRpbmdSVENU
cmFuc2ZvbWVyTWVzc2FnZVBvcnQoKSB7IHJldHVybiBXVEZNb3ZlKG1fcGVuZGluZ1JUQ1RyYW5z
Zm9tZXJNZXNzYWdlUG9ydCk7IH0KICNlbmRpZgogCisgICAgRmV0Y2hPcHRpb25zOjpEZXN0aW5h
dGlvbiBkZXN0aW5hdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb246OldvcmtlcjsgfQorCiBwcml2YXRlOgogICAgIHVzaW5nIEJhc2UgPSBXb3JrZXJH
bG9iYWxTY29wZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCmluZGV4IGJmNmUyNzZhMzlj
MjMxNWY4ODkwYzYzMzAzMjlkNjQ0ZGZjYWVhYTUuLjA0ZmRmNTgyNzQzZWI5NzNiNTI1ZDU0Yzhh
OGQ4ZjM3ZDgyNTIwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKQEAgLTc0LDYgKzc0
LDggQEAgaW5saW5lIFdvcmtlcjo6V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWUKICAgICAsIG1faWRlbnRpZmllcigid29ya2Vy
OiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpKQog
ICAgICwgbV9jb250ZXh0UHJveHkoV29ya2VyR2xvYmFsU2NvcGVQcm94eTo6Y3JlYXRlKCp0aGlz
KSkKICAgICAsIG1fcnVudGltZUZsYWdzKHJ1bnRpbWVGbGFncykKKyAgICAsIG1fdHlwZShvcHRp
b25zLnR5cGUpCisgICAgLCBtX2NyZWRlbnRpYWxzKG9wdGlvbnMuY3JlZGVudGlhbHMpCiB7CiAg
ICAgc3RhdGljIGJvb2wgYWRkZWRMaXN0ZW5lcjsKICAgICBpZiAoIWFkZGVkTGlzdGVuZXIpIHsK
QEAgLTExNywxMCArMTE5LDE1IEBAIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBXb3JrZXI6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OlJ1CiAKICAgICBGZXRj
aE9wdGlvbnMgZmV0Y2hPcHRpb25zOwogICAgIGZldGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRp
b25zOjpNb2RlOjpTYW1lT3JpZ2luOworICAgIGlmICh3b3JrZXItPm1fdHlwZSA9PSBXb3JrZXJU
eXBlOjpNb2R1bGUpCisgICAgICAgIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9IHdvcmtlci0+
bV9jcmVkZW50aWFsczsKKyAgICBlbHNlCisgICAgICAgIGZldGNoT3B0aW9ucy5jcmVkZW50aWFs
cyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW47CiAgICAgZmV0Y2hPcHRp
b25zLmNhY2hlID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKICAgICBmZXRjaE9wdGlv
bnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CiAgICAgZmV0Y2hP
cHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyOwot
ICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBX
VEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBv
bGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgd29ya2VyKTsKKyAgICB3
b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92
ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsIHdvcmtlci5nZXQoKSwgV29ya2Vy
UnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisKICAgICByZXR1cm4gd29ya2VyOwogfQogCkBAIC0y
MTksNyArMjI2LDEzIEBAIHZvaWQgV29ya2VyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgUmVmZXJy
ZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kgPSBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmc7CiAg
ICAgaWYgKGF1dG8gcG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShtX3NjcmlwdExvYWRlci0+
cmVmZXJyZXJQb2xpY3koKSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OkhUVFBIZWFkZXIpKQogICAg
ICAgICByZWZlcnJlclBvbGljeSA9ICpwb2xpY3k7Ci0gICAgbV9jb250ZXh0UHJveHkuc3RhcnRX
b3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdExvYWRlci0+dXJsKCksIG1fbmFtZSwgY29udGV4dC0+
dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIGlzT25saW5lLCBtX3NjcmlwdExvYWRl
ci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9zaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2VyQ3JlYXRpb25U
aW1lLCByZWZlcnJlclBvbGljeSwgbV9ydW50aW1lRmxhZ3MpOworCisgICAgVVJMIHJlc3BvbnNl
VVJMID0gbV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlVVJMKCk7CisgICAgaWYgKCFtX3NjcmlwdExv
YWRlci0+aXNSZWRpcmVjdGVkKCkgJiYgbV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlU291cmNlKCkg
IT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7CisgICAgICAgIGlm
IChtX3NjcmlwdExvYWRlci0+dXJsKCkuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAg
ICAgICByZXNwb25zZVVSTC5zZXRGcmFnbWVudElkZW50aWZpZXIobV9zY3JpcHRMb2FkZXItPnVy
bCgpLmZyYWdtZW50SWRlbnRpZmllcigpKTsKKyAgICB9CisgICAgbV9jb250ZXh0UHJveHkuc3Rh
cnRXb3JrZXJHbG9iYWxTY29wZShyZXNwb25zZVVSTCwgbV9uYW1lLCBjb250ZXh0LT51c2VyQWdl
bnQocmVzcG9uc2VVUkwpLCBpc09ubGluZSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBjb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5LCBtX3dvcmtlckNyZWF0aW9uVGltZSwgcmVmZXJyZXJQb2xp
Y3ksIG1fdHlwZSwgbV9jcmVkZW50aWFscywgbV9ydW50aW1lRmxhZ3MpOwogICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWQoKmNvbnRleHQsIG1fc2NyaXB0TG9hZGVy
LT5pZGVudGlmaWVyKCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlci5oCmluZGV4IDUzZjVlNmZmZjI3YzlmYTNlNWMwZTAxZjBmNmM0MmM2Y2I2Zjlk
MGUuLjM4YTYyM2E5OGRiYTM1ZmY4MDEzY2Q2ZmM4Yzg1YzgxMDIwNTAyMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXIuaApAQCAtMjksOSArMjksMTEgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmpl
Y3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENyZWRlbnRp
YWxzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJQb3N0TWVzc2FnZU9w
dGlvbnMuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRl
ICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+
CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KQEAgLTU1LDYgKzU3LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3RyYWN0
V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKFdvcmtlcik7CiBwdWJsaWM6CiAgICAgc3RydWN0IE9wdGlvbnMgewor
ICAgICAgICBXb3JrZXJUeXBlIHR5cGU7CisgICAgICAgIEZldGNoUmVxdWVzdENyZWRlbnRpYWxz
IGNyZWRlbnRpYWxzOwogICAgICAgICBTdHJpbmcgbmFtZTsKICAgICB9OwogICAgIHN0YXRpYyBF
eGNlcHRpb25PcjxSZWY8V29ya2VyPj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBK
U0M6OlJ1bnRpbWVGbGFncywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IE9wdGlvbnMmKTsKQEAg
LTc5LDYgKzgzLDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGljIEFic3RyYWN0V29ya2Vy
LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICAgICB2b2lkIHBvc3RUYXNr
VG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KT4mJik7CiAjZW5kaWYKIAorICAgIFdvcmtlclR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdvcmtlcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgSlNDOjpSdW50aW1lRmxhZ3MsIGNvbnN0IE9wdGlvbnMmKTsKIApAQCAtMTEyLDYg
KzExOCw4IEBAIGNsYXNzIFdvcmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwgcHVi
bGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBXb3JrCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAg
ICAgSGFzaFNldDxTdHJpbmc+IG1fdHJhbnNmb3JtZXJzOwogI2VuZGlmCisgICAgV29ya2VyVHlw
ZSBtX3R5cGUgeyBXb3JrZXJUeXBlOjpDbGFzc2ljIH07CisgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVu
dGlhbHMgbV9jcmVkZW50aWFscyB7IEZldGNoUmVxdWVzdENyZWRlbnRpYWxzOjpTYW1lT3JpZ2lu
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5p
ZGwKaW5kZXggNDVkNmEwODY3ODU0ZWU0MDRkZTdlN2QwMTI0OGNlYmY0NGRjYTdlZC4uNzAyMTc5
NmRmNTA0YWRmOGU2Yjk1ODlhY2U5ZjE0NDgyMWYyOTVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmlkbApAQCAtMzgsNiArMzgsOCBAQAogfTsKIAogZGljdGlvbmFyeSBXb3JrZXJPcHRpb25z
IHsKKyAgICBXb3JrZXJUeXBlIHR5cGUgPSAiY2xhc3NpYyI7CisgICAgRmV0Y2hSZXF1ZXN0Q3Jl
ZGVudGlhbHMgY3JlZGVudGlhbHMgPSAic2FtZS1vcmlnaW4iOyAvLyBjcmVkZW50aWFscyBpcyBv
bmx5IHVzZWQgaWYgdHlwZSBpcyAibW9kdWxlIgogICAgIERPTVN0cmluZyBuYW1lID0gIiI7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4
IGRiYWIzNDhlODBjOWRlNTBiZDIxNTc3N2ExNGEzOWEwZjcwZTQ5YzcuLmNjZGU5MDljN2NiNTJl
OTc3NzRjNWI4MTU4MjNlYmNiYmIwNzBmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC03NCw2ICs3NCw4IEBAIFdvcmtlckdsb2JhbFNjb3Bl
OjpXb3JrZXJHbG9iYWxTY29wZShXb3JrZXJUaHJlYWRUeXBlIHR5cGUsIGNvbnN0IFdvcmtlclBh
cmFtZXRlCiAgICAgLCBtX3BlcmZvcm1hbmNlKFBlcmZvcm1hbmNlOjpjcmVhdGUodGhpcywgcGFy
YW1zLnRpbWVPcmlnaW4pKQogICAgICwgbV9yZWZlcnJlclBvbGljeShwYXJhbXMucmVmZXJyZXJQ
b2xpY3kpCiAgICAgLCBtX3NldHRpbmdzVmFsdWVzKHBhcmFtcy5zZXR0aW5nc1ZhbHVlcykKKyAg
ICAsIG1fd29ya2VyVHlwZShwYXJhbXMud29ya2VyVHlwZSkKKyAgICAsIG1fY3JlZGVudGlhbHMo
cGFyYW1zLmNyZWRlbnRpYWxzKQogewogI2lmICFFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAg
ICBVTlVTRURfUEFSQU0oY29ubmVjdGlvblByb3h5KTsKQEAgLTI3NCw2ICsyNzYsMTEgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gV29ya2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwdHMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIHVybHMpCiB7CiAgICAgQVNTRVJUKGNvbnRlbnRTZWN1cml0eVBvbGljeSgp
KTsKIAorICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dvcmtl
cnMuaHRtbCNpbXBvcnRpbmctc2NyaXB0cy1hbmQtbGlicmFyaWVzCisgICAgLy8gMS4gSWYgd29y
a2VyIGdsb2JhbCBzY29wZSdzIHR5cGUgaXMgIm1vZHVsZSIsIHRocm93IGEgVHlwZUVycm9yIGV4
Y2VwdGlvbi4KKyAgICBpZiAobV93b3JrZXJUeXBlID09IFdvcmtlclR5cGU6Ok1vZHVsZSkKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImltcG9ydFNjcmlwdHMgY2Fubm90
IGJlIHVzZWQgaWYgd29lcmtlciB0eXBlIGlzIFwibW9kdWxlXCIiX3MgfTsKKwogICAgIFZlY3Rv
cjxVUkw+IGNvbXBsZXRlZFVSTHM7CiAgICAgY29tcGxldGVkVVJMcy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KHVybHMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGVudHJ5IDogdXJscykgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDQ2ZDQ5ZDk0YzUy
MzhlNDY4OGQzOTVkODdjMjA2M2ViNTcyMGQxYmYuLjc0Nzk1ZjVjMGY5YTJhMzVkMDA5MzAxMmFk
MThmNTdlMzE3ZjgyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmgKQEAgLTEyMyw2ICsxMjMsOCBAQCBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1Ymxp
YyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBCYXNlNgogCiAgICAg
Y29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3NldHRpbmdzVmFsdWVzOyB9CiAKKyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxz
IGNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gbV9jcmVkZW50aWFsczsgfQorCiBwcm90ZWN0
ZWQ6CiAgICAgV29ya2VyR2xvYmFsU2NvcGUoV29ya2VyVGhyZWFkVHlwZSwgY29uc3QgV29ya2Vy
UGFyYW1ldGVycyYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiwgV29ya2VyVGhyZWFkJiwgUmVmPFNl
Y3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkq
LCBTb2NrZXRQcm92aWRlciopOwogCkBAIC0xNjMsOCArMTY1LDYgQEAgY2xhc3MgV29ya2VyR2xv
YmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJs
aWMgQmFzZTYKICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJMb2NhdGlvbj4gbV9sb2NhdGlvbjsK
ICAgICBtdXRhYmxlIFJlZlB0cjxXb3JrZXJOYXZpZ2F0b3I+IG1fbmF2aWdhdG9yOwogCi0gICAg
c3RkOjp1bmlxdWVfcHRyPFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+IG1fc2NyaXB0
OwotCiAgICAgYm9vbCBtX2lzT25saW5lOwogICAgIGJvb2wgbV9zaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAKQEAgLTE4Nyw2ICsxODcsOCBAQCBjbGFzcyBXb3Jr
ZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBTdXBwbGVtZW50YWJsZTxXb3JrZXJHbG9iYWxTY29wZT4s
IHB1YmxpYyBCYXNlNgogICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NWYWx1ZVBvb2w+IG1fY3NzVmFs
dWVQb29sOwogICAgIFJlZmVycmVyUG9saWN5IG1fcmVmZXJyZXJQb2xpY3k7CiAgICAgU2V0dGlu
Z3M6OlZhbHVlcyBtX3NldHRpbmdzVmFsdWVzOworICAgIFdvcmtlclR5cGUgbV93b3JrZXJUeXBl
OworICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgbV9jcmVkZW50aWFsczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGVQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZVByb3h5LmgKaW5kZXggNDAwMDNjM2UwMTA5OTk2MGY2NDc4NjFlNzAxNjg3ZDBl
MzcxZDcyZC4uZWQ2NzNhYzhmN2MwZWU1NGMwNjBlY2I1OTIxNjM5MGVkNzBmZTJjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmgKQEAgLTQ4
LDcgKzQ4LDcgQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGVQcm94eSB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFdvcmtlckdsb2JhbFNjb3BlUHJveHkmIGNyZWF0ZShXb3JrZXImKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5l
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5
UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBKU0M6OlJ1
bnRpbWVGbGFncykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3Bl
KGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4s
IFJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywgSlND
OjpSdW50aW1lRmxhZ3MpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRlV29ya2VyR2xv
YmFsU2NvcGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9i
YWxTY29wZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29wZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKT4mJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmNwcAppbmRleCAxOWQ0YmU2NDk5MmYzMGQzY2NlNzY1NDdhM2QyMjE4YTk4
Yzg0MmMzLi43ODgzNTg3YTdhZjYyMDllM2VjYzhlN2I0MWJhZDQ3YWRmNjIyNDBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtNzMs
NyArNzMsNyBAQCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6fldvcmtlck1lc3NhZ2luZ1Byb3h5KCkK
ICAgICAgICAgfHwgKGlzPFdvcmtlckdsb2JhbFNjb3BlPigqbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KSAmJiBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCkudGhyZWFkKCkudGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKSk7CiB9CiAKLXZv
aWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJM
JiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5
LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCit2b2lkIFdvcmtlck1lc3NhZ2luZ1By
b3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25z
dCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1l
T3JpZ2luLCBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB3b3JrZXJU
eXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscywgSlNDOjpSdW50aW1lRmxh
Z3MgcnVudGltZUZsYWdzKQogewogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8gYmUgcmV2aXNp
dGVkIHdoZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBBU1NFUlQobV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KTsKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBXb3JrZXJNZXNz
YWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwg
Y29uc3QgU3QKIAogICAgIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciA9IGRvY3VtZW50
LnNvY2tldFByb3ZpZGVyKCk7CiAKLSAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsgc2Ny
aXB0VVJMLCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIGRvY3VtZW50LnNldHRp
bmdzVmFsdWVzKCkgfTsKKyAgICBXb3JrZXJQYXJhbWV0ZXJzIHBhcmFtcyA9IHsgc2NyaXB0VVJM
LCBuYW1lLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQsIGlzT25saW5lLCBjb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMsIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0
eVBvbGljeSwgdGltZU9yaWdpbiwgcmVmZXJyZXJQb2xpY3ksIHdvcmtlclR5cGUsIGNyZWRlbnRp
YWxzLCBkb2N1bWVudC5zZXR0aW5nc1ZhbHVlcygpIH07CiAgICAgYXV0byB0aHJlYWQgPSBEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShwYXJhbXMsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhp
cywgKnRoaXMsIHN0YXJ0TW9kZSwgZG9jdW1lbnQudG9wT3JpZ2luKCksIHByb3h5LCBzb2NrZXRQ
cm92aWRlciwgcnVudGltZUZsYWdzKTsKIAogICAgIHdvcmtlclRocmVhZENyZWF0ZWQodGhyZWFk
LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2Fn
aW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
aAppbmRleCBjNWI1NzViOWU2MTViM2YzZjU5NmJmYzNkZjY4M2M4NzdjYzYyYmFiLi5kOWU4MWUx
NTdhMGY0ODUyZTQ5YjU5ZDI1NjZhOGE4MGY1ZjgxOGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFdv
cmtlck1lc3NhZ2luZ1Byb3h5IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdv
cmtlck1lc3NhZ2luZ1ByCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBXb3Jr
ZXJHbG9iYWxTY29wZVByb3h5LgogICAgIC8vIChPbmx5IHVzZSB0aGVzZSBmdW5jdGlvbnMgaW4g
dGhlIHdvcmtlciBvYmplY3QgdGhyZWFkLikKLSAgICB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2Nv
cGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29u
c3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBh
c3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdp
biwgUmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzKSBmaW5hbDsKKyAgICB2b2lkIHN0
YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmlu
ZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
JiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90
b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIEZldGNoUmVx
dWVzdENyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgZmluYWw7CiAgICAgdm9pZCB0ZXJt
aW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1dv
cmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYpIGZpbmFsOwogICAgIHZv
aWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggMjM4NGE1YThjN2QyYTMwMmVl
ZTVjYjQwNWUxMDVlMDI1Yzk4NDNjYy4uMDhhYWQ5MGY0NWUwOWY5ZDE0OWNhMzk4NWE2MTMwMjA1
NDFmYWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTI2LDExICsyNiwxNCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgiCiAKKyNpbmNsdWRl
ICJTY3JpcHRNb2R1bGVMb2FkZXIuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUuaCIKICNpbmNsdWRlICJXb3JrZXJFdmVudExvb3AuaCIKICNpbmNsdWRlICJXb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldFRocmVhZC5oIgogI2luY2x1ZGUgIldv
cmtlclJ1bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw2
ICs0Miw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZSk7CiAKIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOjpXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZShXb3JrZXJUaHJlYWRUeXBlIHR5cGUsIFJlZjxKU0M6OlZNPiYmIHZtLCBXb3Jr
ZXJPcldvcmtsZXRUaHJlYWQqIHRocmVhZCkKICAgICA6IG1fc2NyaXB0KG1ha2VVbmlxdWU8V29y
a2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4odHlwZSwgV1RGTW92ZSh2bSksIHRoaXMpKQor
ICAgICwgbV9tb2R1bGVMb2FkZXIobWFrZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KCp0aGlz
LCBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93bmVyVHlwZTo6V29ya2VyT3JXb3JrbGV0KSkKICAgICAs
IG1fdGhyZWFkKHRocmVhZCkKICAgICAsIG1faW5zcGVjdG9yQ29udHJvbGxlcihtYWtlVW5pcXVl
PFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI+KCp0aGlzKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCA2YzI0NGEw
YzQyN2VlMWM4YzY1ZmRjYzc2NTk1MmY4NzdmZDliMTZiLi5lNDc5ZGRlYTA0ZWE1ZTFlMjY2ZTUx
NWFmOTJjZWQzZjk5NTdlYzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0yNiwxMiArMjYsMTQgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJGZXRjaE9wdGlvbnMu
aCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2Vy
VGhyZWFkVHlwZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV2ZW50TG9vcFRh
c2tHcm91cDsKK2NsYXNzIFNjcmlwdE1vZHVsZUxvYWRlcjsKIGNsYXNzIFdvcmtlckV2ZW50TG9v
cDsKIGNsYXNzIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBXb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyOwpAQCAtNTQsNiArNTYsOCBAQCBjbGFzcyBXb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMgUmVm
Q291bgogCiAgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJZGVudGlmaWVyKCkgeyByZXR1
cm4gbV91bmlxdWVJZGVudGlmaWVyKys7IH0KIAorICAgIFNjcmlwdE1vZHVsZUxvYWRlciYgbW9k
dWxlTG9hZGVyKCkgeyByZXR1cm4gKm1fbW9kdWxlTG9hZGVyOyB9CisKICAgICAvLyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0LgogICAgIEV2ZW50TG9vcFRhc2tHcm91cCYgZXZlbnRMb29wKCkgZmlu
YWw7CiAgICAgYm9vbCBpc0NvbnRleHRUaHJlYWQoKSBjb25zdCBmaW5hbDsKQEAgLTY3LDYgKzcx
LDggQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSB7IH0KIAorICAgIHZpcnR1YWwgRmV0Y2hP
cHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbigpIGNvbnN0ID0gMDsKKwogcHJvdGVjdGVk
OgogICAgIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFdvcmtlclRocmVhZFR5cGUsIFJlZjxK
U0M6OlZNPiYmLCBXb3JrZXJPcldvcmtsZXRUaHJlYWQqKTsKIApAQCAtODgsNiArOTQsNyBAQCBj
bGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBwdWJsaWMgUmVmQ291bgogICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFs
IHsgZGVyZWYoKTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXI+IG1fc2NyaXB0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRNb2R1bGVM
b2FkZXI+IG1fbW9kdWxlTG9hZGVyOwogICAgIFdvcmtlck9yV29ya2xldFRocmVhZCogbV90aHJl
YWQ7CiAgICAgUmVmUHRyPFdvcmtlckV2ZW50TG9vcD4gbV9ldmVudExvb3A7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2tHcm91cD4gbV9kZWZhdWx0VGFza0dyb3VwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlci5jcHAKaW5kZXggY2Q0ZWMyNDY4MjUyNWFhYmM2NDJkODc3YTBkYTAxMWViZGUxMTQz
MS4uNjAzOGIwYmQxOTJjZDE1MDI4OTZhZDg1ZWJiNDk2YTIzMmEzMjU3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXIuY3BwCkBAIC0zNSwxNSArMzUsMjQgQEAKICNpbmNsdWRlICJKU0V4ZWNTdGF0ZS5oIgog
I2luY2x1ZGUgIkpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJKU1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoRmFpbHVyZUtpbmQu
aCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJTY3JpcHRT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUg
IldvcmtlckNvbnNvbGVDbGllbnQuaCIKKyNpbmNsdWRlICJXb3JrZXJNb2R1bGVTY3JpcHRMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RlZmVycmVk
V29ya1RpbWVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRXhjZXB0aW9uSGVscGVycy5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0dDQWN0aXZpdHlDYWxsYmFjay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNNb2R1bGVSZWNvcmQuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNTY3JpcHRGZXRjaFBhcmFtZXRlcnMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU1NjcmlwdEZldGNoZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmdJbmxp
bmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIyOCw2ICsyMzcsMjQ1IEBAIHZvaWQg
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291
cmNlQ29kZSYgc291cmNlQ29kCiAgICAgfQogfQogCitzdGF0aWMgSWRlbnRpZmllciBqc1ZhbHVl
VG9Nb2R1bGVLZXkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUg
dmFsdWUpCit7CisgICAgaWYgKHZhbHVlLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBJZGVu
dGlmaWVyOjpmcm9tVWlkKGpzQ2FzdDxTeW1ib2wqPih2YWx1ZSktPnByaXZhdGVOYW1lKCkpOwor
ICAgIEFTU0VSVCh2YWx1ZS5pc1N0cmluZygpKTsKKyAgICByZXR1cm4gYXNTdHJpbmcodmFsdWUp
LT50b0lkZW50aWZpZXIobGV4aWNhbEdsb2JhbE9iamVjdCk7Cit9CisKK0pTQzo6SlNWYWx1ZSBX
b3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShKU0M6OkpTTW9k
dWxlUmVjb3JkJiBtb2R1bGVSZWNvcmQpCit7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1f
Z2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC52bSgp
OworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICByZXR1cm4gbW9kdWxlUmVjb3Jk
LmV2YWx1YXRlKCZnbG9iYWxPYmplY3QpOworfQorCitNZXNzYWdlUXVldWVXYWl0UmVzdWx0IFdv
cmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KFdv
cmtlclNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUm
IHNvdXJjZUNvZGUpCit7CisgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAg
IHJldHVybiBNZXNzYWdlUXVldWVUZXJtaW5hdGVkOworCisgICAgaW5pdFNjcmlwdElmTmVlZGVk
KCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0
KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxv
Y2sgeyB2bSB9OworCisgICAgYXV0byBwcm90ZWN0b3IgPSBtYWtlUmVmKHNjcmlwdEZldGNoZXIp
OworICAgIHsKKyAgICAgICAgYXV0byYgcHJvbWlzZSA9IEpTRXhlY1N0YXRlOjpsb2FkTW9kdWxl
KGdsb2JhbE9iamVjdCwgc291cmNlQ29kZS5qc1NvdXJjZUNvZGUoKSwgSlNDOjpKU1NjcmlwdEZl
dGNoZXI6OmNyZWF0ZSh2bSwgeyAmc2NyaXB0RmV0Y2hlciB9KSk7CisKKyAgICAgICAgYXV0byYg
ZnVsZmlsbEhhbmRsZXIgPSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFs
T2JqZWN0LCAxLCBTdHJpbmcoKSwgW3Byb3RlY3Rvcl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIC0+IEpTQzo6RW5jb2RlZEpTVmFsdWUgeworICAg
ICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgSlNMb2Nr
SG9sZGVyIGxvY2sgeyB2bSB9OworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOworICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVl
VG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKKyAgICAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgICAgICBwcm90
ZWN0b3ItPm5vdGlmeUxvYWRDb21wbGV0ZWQoKm1vZHVsZUtleS5pbXBsKCkpOworICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgYXV0byYgcmVqZWN0SGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVh
dGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbcHJvdGVjdG9yXShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgeworICAgICAgICAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgSlNMb2NrSG9sZGVyIGxv
Y2sgeyB2bSB9OworICAgICAgICAgICAgSlNWYWx1ZSBlcnJvclZhbHVlID0gY2FsbEZyYW1lLT5h
cmd1bWVudCgwKTsKKyAgICAgICAgICAgIGlmIChlcnJvclZhbHVlLmlzT2JqZWN0KCkpIHsKKyAg
ICAgICAgICAgICAgICBhdXRvKiBvYmplY3QgPSBKU0M6OmFzT2JqZWN0KGVycm9yVmFsdWUpOwor
ICAgICAgICAgICAgICAgIGlmIChKU1ZhbHVlIGZhaWx1cmVLaW5kVmFsdWUgPSBvYmplY3QtPmdl
dERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEmPigqdm0uY2xpZW50RGF0YSku
YnVpbHRpbk5hbWVzKCkuZmFpbHVyZUtpbmRQcml2YXRlTmFtZSgpKSkgeworICAgICAgICAgICAg
ICAgICAgICAvLyBUaGlzIGlzIGhvc3QgcHJvcGFnYXRlZCBlcnJvciBpbiB0aGUgbW9kdWxlIGxv
YWRlciBwaXBlbGluZS4KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0aWNfY2FzdDxN
b2R1bGVGZXRjaEZhaWx1cmVLaW5kPihmYWlsdXJlS2luZFZhbHVlLmFzSW50MzIoKSkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVk
OgorICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkRmFpbGVkKExv
YWRhYmxlU2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9hZGFi
bGVTY3JpcHQ6OkVycm9yVHlwZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdURjo6bnVsbG9wdAorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBNb2R1bGVG
ZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5jZWxlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHBy
b3RlY3Rvci0+bm90aWZ5TG9hZFdhc0NhbmNlbGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NP
UEUodm0pOworICAgICAgICAgICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxl
U2NyaXB0OjpFcnJvciB7CisgICAgICAgICAgICAgICAgTG9hZGFibGVTY3JpcHQ6OkVycm9yVHlw
ZTo6Q2FjaGVkU2NyaXB0LAorICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpDb25zb2xl
TWVzc2FnZSB7CisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VTb3VyY2U6OkpTLAorICAgICAg
ICAgICAgICAgICAgICBNZXNzYWdlTGV2ZWw6OkVycm9yLAorICAgICAgICAgICAgICAgICAgICBy
ZXRyaWV2ZUVycm9yTWVzc2FnZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1ZSwgc2NvcGUp
LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
cHJvbWlzZS50aGVuKCZnbG9iYWxPYmplY3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRs
ZXIpOworICAgIH0KKyAgICBtX2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90
YXNrQ2hlY2twb2ludCgpOworCisgICAgLy8gRHJpdmUgUnVuTG9vcCB1bnRpbCB3ZSBnZXQgZWl0
aGVyIG9mICJXb3JrZXIgaXMgdGVybWluYXRlZCIsICJMb2FkaW5nIGlzIGRvbmUiLCBvciAiTG9h
ZGluZyBpcyBmYWlsZWQiLgorICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSBtX2dsb2JhbFNj
b3BlLT53b3JrZXJPcldvcmtsZXRUaHJlYWQoKS0+cnVuTG9vcCgpOworCisgICAgLy8gV2UgZG8g
bm90IHdhbnQgdG8gcmVjZWl2ZSBtZXNzYWdlcyB0aGF0IGFyZSBub3QgcmVsYXRlZCB0byBhc3lu
Y2hyb25vdXMgcmVzb3VyY2UgbG9hZGluZy4KKyAgICAvLyBPdGhlcndpc2UsIGEgd29ya2VyIGRp
c2NhcmRzIHNvbWUgbWVzc2FnZXMgZnJvbSB0aGUgbWFpbiB0aHJlYWQgaGVyZSBpbiBhIHJhY3kg
d2F5LgorICAgIC8vIEZvciBleGFtcGxlLCB0aGUgbWFpbiB0aHJlYWQgY2FuIHBvc3RNZXNzYWdl
IGp1c3QgYWZ0ZXIgY3JlYXRpbmcgYSBXb3JrZXIuIEluIHRoYXQgY2FzZSwgcG9zdE1lc3NhZ2Un
cworICAgIC8vIHRhc2sgaXMgcXVldWVkIGluIFdvcmtlclJ1bkxvb3AgYmVmb3JlIHN0YXJ0IHJ1
bm5pbmcgbW9kdWxlIHNjcmlwdHMuIFRoaXMgdGFzayBzaG91bGQgbm90IGJlIGRpc2NhcmRlZAor
ICAgIC8vIGluIHRoZSBmb2xsb3dpbmcgZHJpdmluZyBvZiB0aGUgUnVuTG9vcCB3aGljaCBtYWlu
bHkgYXR0ZW1wdCB0byBjb2xsZWN0IGluaXRpYWwgbG9hZCBvZiBtb2R1bGUgc2NyaXB0cy4KKyAg
ICBTdHJpbmcgdGFza01vZGUgPSBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OnRhc2tNb2RlKCk7
CisgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQgPSBNZXNzYWdlUXVldWVNZXNzYWdl
UmVjZWl2ZWQ7CisgICAgd2hpbGUgKCghcHJvdGVjdG9yLT5pc0xvYWRlZCgpICYmICFwcm90ZWN0
b3ItPndhc0NhbmNlbGVkKCkpICYmIHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKSB7
CisgICAgICAgIHJlc3VsdCA9IHJ1bkxvb3AucnVuSW5Nb2RlKG1fZ2xvYmFsU2NvcGUsIHRhc2tN
b2RlKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKQorICAg
ICAgICAgICAgbV9nbG9iYWxTY29wZS0+ZXZlbnRMb29wKCkucGVyZm9ybU1pY3JvdGFza0NoZWNr
cG9pbnQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFdvcmtlck9y
V29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZShXb3JrZXJTY3Jp
cHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VD
b2RlLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSkKK3sKKyAgICBpZiAoaXNFeGVj
dXRpb25Gb3JiaWRkZW4oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdFNjcmlwdElmTmVl
ZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIu
Z2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVy
IGxvY2sgeyB2bSB9OworCisgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhj
ZXB0aW9uOworICAgIEpTRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBzY3JpcHRGZXRjaGVyLm1vZHVsZUtleSgpKSwg
anNVbmRlZmluZWQoKSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgIGlmICgocmV0dXJuZWRFeGNl
cHRpb24gJiYgaXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKHZtLCByZXR1cm5lZEV4Y2Vw
dGlvbikpIHx8IGlzVGVybWluYXRpbmdFeGVjdXRpb24oKSkgeworICAgICAgICBmb3JiaWRFeGVj
dXRpb24oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChyZXR1cm5lZEV4Y2Vw
dGlvbikgeworICAgICAgICBpZiAobV9nbG9iYWxTY29wZS0+Y2FuSW5jbHVkZUVycm9yRGV0YWls
cyhzb3VyY2VDb2RlLmNhY2hlZFNjcmlwdCgpLCBzb3VyY2VDb2RlLnVybCgpLnN0cmluZygpKSkg
eworICAgICAgICAgICAgLy8gRklYTUU6IEl0J3Mgbm90IGdyZWF0IHRoYXQgdGhpcyBjYW4gcnVu
IGFyYml0cmFyeSBjb2RlIHRvIHN0cmluZy1pZnkgdGhlIHZhbHVlIG9mIHRoZSBleGNlcHRpb24u
CisgICAgICAgICAgICAvLyBEbyB3ZSBuZWVkIHRvIGRvIGFueXRoaW5nIHRvIGhhbmRsZSB0aGF0
IHByb3Blcmx5LCBpZiBpdCwgc2F5LCByYWlzZXMgYW5vdGhlciBleGNlcHRpb24/CisgICAgICAg
ICAgICBpZiAocmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlKQorICAgICAgICAgICAgICAgICpyZXR1
cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSByZXR1cm5lZEV4Y2VwdGlvbi0+dmFsdWUoKS50b1dURlN0
cmluZygmZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIE92
ZXJ3cml0ZSB0aGUgZGV0YWlsZWQgZXJyb3Igd2l0aCBhIGdlbmVyaWMgZXJyb3IuCisgICAgICAg
ICAgICBTdHJpbmcgZ2VuZXJpY0Vycm9yTWVzc2FnZSB7ICJTY3JpcHQgZXJyb3IuIl9zIH07Cisg
ICAgICAgICAgICBpZiAocmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlKQorICAgICAgICAgICAgICAg
ICpyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBnZW5lcmljRXJyb3JNZXNzYWdlOworICAgICAg
ICB9CisgICAgfQorfQorCit2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6Omxv
YWRBbmRFdmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIG1vZHVsZVVSTCwgRmV0Y2hPcHRpb25zOjpD
cmVkZW50aWFscyBjcmVkZW50aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxF
eGNlcHRpb24+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChpc0V4ZWN1dGlv
bkZvcmJpZGRlbigpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IE5v
dEFsbG93ZWRFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGluaXRTY3Jp
cHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsU2NvcGVX
cmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOworICAgIEpTTG9j
a0hvbGRlciBsb2NrIHsgdm0gfTsKKworICAgIGF1dG8gc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNj
cmlwdEZldGNoZXI6OmNyZWF0ZShjcmVkZW50aWFscywgZ2xvYmFsU2NvcGUoKS0+ZGVzdGluYXRp
b24oKSwgZ2xvYmFsU2NvcGUoKS0+cmVmZXJyZXJQb2xpY3koKSk7CisgICAgeworICAgICAgICBh
dXRvJiBwcm9taXNlID0gSlNFeGVjU3RhdGU6OmxvYWRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1
bGVVUkwuc3RyaW5nKCksIGpzVW5kZWZpbmVkKCksIEpTQzo6SlNTY3JpcHRGZXRjaGVyOjpjcmVh
dGUodm0sIHsgc2NyaXB0RmV0Y2hlci5wdHIoKSB9KSk7CisKKyAgICAgICAgYXV0byB0YXNrID0g
Y3JlYXRlU2hhcmVkVGFzazx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+KFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShPcHRpb25hbDxFeGNlcHRpb24+
JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUoZXhjZXB0aW9uKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGF1dG8mIGZ1bGZpbGxI
YW5kbGVyID0gKkpTTmF0aXZlU3RkRnVuY3Rpb246OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwg
MSwgU3RyaW5nKCksIFt0YXNrLCBzY3JpcHRGZXRjaGVyXShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgLT4gSlNDOjpFbmNvZGVkSlNWYWx1ZSB7Cisg
ICAgICAgICAgICAvLyB0YXNrLT5ydW4oV1RGOjpudWxsb3B0KTsKKyAgICAgICAgICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsg
dm0gfTsKKyAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
KworICAgICAgICAgICAgSWRlbnRpZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXko
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgICAgICAgICBzY3JpcHRGZXRjaGVyLT5u
b3RpZnlMb2FkQ29tcGxldGVkKCptb2R1bGVLZXkuaW1wbCgpKTsKKworICAgICAgICAgICAgYXV0
byogY29udGV4dCA9IGRvd25jYXN0PFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPihqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOworICAgICAgICAgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LT5zY3JpcHQoKSkgewor
ICAgICAgICAgICAgICAgIHRhc2stPnJ1bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsK
KyAgICAgICAgICAgIEpTRXhlY1N0YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoKmdsb2JhbE9i
amVjdCwgbW9kdWxlS2V5LCBqc1VuZGVmaW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAg
ICAgICAgICBpZiAoKHJldHVybmVkRXhjZXB0aW9uICYmIGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4
Y2VwdGlvbih2bSwgcmV0dXJuZWRFeGNlcHRpb24pKSB8fCBjb250ZXh0LT5zY3JpcHQoKS0+aXNU
ZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7CisgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQtPnNj
cmlwdCgpKQorICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5zY3JpcHQoKS0+Zm9yYmlkRXhl
Y3V0aW9uKCk7CisgICAgICAgICAgICAgICAgdGFzay0+cnVuKFdURjo6bnVsbG9wdCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CisgICAgICAg
ICAgICAgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQtPmNh
bkluY2x1ZGVFcnJvckRldGFpbHMobnVsbHB0ciwgbW9kdWxlS2V5LnN0cmluZygpKSkgeworICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBy
dW4gYXJiaXRyYXJ5IGNvZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlv
bi4KKyAgICAgICAgICAgICAgICAgICAgLy8gRG8gd2UgbmVlZCB0byBkbyBhbnl0aGluZyB0byBo
YW5kbGUgdGhhdCBwcm9wZXJseSwgaWYgaXQsIHNheSwgcmFpc2VzIGFub3RoZXIgZXhjZXB0aW9u
PworICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gcmV0dXJuZWRFeGNlcHRpb24tPnZhbHVl
KCkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICAvLyBPdmVyd3JpdGUgdGhlIGRldGFpbGVkIGVycm9yIHdpdGgg
YSBnZW5lcmljIGVycm9yLgorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gIlNjcmlwdCBl
cnJvci4iX3M7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnRleHQtPnJl
cG9ydEV4Y2VwdGlvbihtZXNzYWdlLCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfSk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIHRhc2stPnJ1bihXVEY6Om51bGxvcHQpOworICAgICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgYXV0byYgcmVqZWN0SGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVh
dGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbdGFza10oSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIHsKKyAgICAgICAgICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsg
dm0gfTsKKyAgICAgICAgICAgIEpTVmFsdWUgZXJyb3JWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1l
bnQoMCk7CisgICAgICAgICAgICBpZiAoZXJyb3JWYWx1ZS5pc09iamVjdCgpKSB7CisgICAgICAg
ICAgICAgICAgYXV0byogb2JqZWN0ID0gSlNDOjphc09iamVjdChlcnJvclZhbHVlKTsKKyAgICAg
ICAgICAgICAgICBpZiAob2JqZWN0LT5nZXREaXJlY3Qodm0sIHN0YXRpY19jYXN0PEpTVk1DbGll
bnREYXRhJj4oKnZtLmNsaWVudERhdGEpLmJ1aWx0aW5OYW1lcygpLmZhaWx1cmVLaW5kUHJpdmF0
ZU5hbWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFS
RV9DQVRDSF9TQ09QRSh2bSk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0g
cmV0cmlldmVFcnJvck1lc3NhZ2VXaXRob3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2bSwgb2JqZWN0
LCBjYXRjaFNjb3BlKTsKKyAgICAgICAgICAgICAgICAgICAgdGFzay0+cnVuKEV4Y2VwdGlvbiB7
IEFib3J0RXJyb3IsIG1lc3NhZ2UgfSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGlmIChvYmplY3QtPmluaGVyaXRzPEVycm9ySW5zdGFuY2U+KHZtKSkgeworICAgICAg
ICAgICAgICAgICAgICBhdXRvKiBlcnJvciA9IGpzQ2FzdDxFcnJvckluc3RhbmNlKj4ob2JqZWN0
KTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChlcnJvci0+ZXJyb3JUeXBlKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBFcnJvclR5cGU6OlR5cGVFcnJvcjogeworICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IHJldHJpZXZlRXJyb3JN
ZXNzYWdlV2l0aG91dE5hbWUoKmdsb2JhbE9iamVjdCwgdm0sIGVycm9yLCBjYXRjaFNjb3BlKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRhc2stPnJ1bihFeGNlcHRpb24geyBUeXBlRXJyb3Is
IG1lc3NhZ2UgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgRXJyb3JUeXBlOjpTeW50YXhFcnJvcjogeworICAgICAgICAgICAgICAgICAg
ICAgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0
aG91dE5hbWUoKmdsb2JhbE9iamVjdCwgdm0sIGVycm9yLCBjYXRjaFNjb3BlKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRhc2stPnJ1bihFeGNlcHRpb24geyBKU1N5bnRheEVycm9yLCBtZXNz
YWdlIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAg
U3RyaW5nIG1lc3NhZ2UgPSByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKCpnbG9iYWxP
YmplY3QsIHZtLCBlcnJvclZhbHVlLCBjYXRjaFNjb3BlKTsKKyAgICAgICAgICAgIHRhc2stPnJ1
bihFeGNlcHRpb24geyBBYm9ydEVycm9yLCBtZXNzYWdlIH0pOworICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
cHJvbWlzZS50aGVuKCZnbG9iYWxPYmplY3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRs
ZXIpOworICAgIH0KKyAgICBtX2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90
YXNrQ2hlY2twb2ludCgpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBKU0dsb2JhbFNjb3BlUHJv
dG90eXBlLCB0eXBlbmFtZSBKU0dsb2JhbFNjb3BlLCB0eXBlbmFtZSBHbG9iYWxTY29wZT4KIHZv
aWQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdFdpdGhTdWJjbGFz
cygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3Jr
bGV0U2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGM0OTMwMWFlZDNkZDA4OWRhNzk3MzI3NjBjYWYy
ZjdiNjRkYjExYjYuLmU5ODA2MzkxMDI5OTU0OTI4NDY4MDVjMGMxN2YwMGM3OGI3MTQxYzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNSdW5Mb29wVGltZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgogI2luY2x1ZGUgPHd0
Zi9OYWtlZFB0ci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTQ3LDYgKzQ4LDcgQEAgY2xhc3Mg
SlNET01HbG9iYWxPYmplY3Q7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgV29ya2Vy
Q29uc29sZUNsaWVudDsKIGNsYXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOworY2xhc3Mg
V29ya2VyU2NyaXB0RmV0Y2hlcjsKIAogY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJv
bGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29u
dHJvbGxlcik7CkBAIC05NCw2ICs5NiwxMyBAQCBjbGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRD
b250cm9sbGVyIHsKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBT
dHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwogICAgIHZvaWQgZXZh
bHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYg
cmV0dXJuZWRFeGNlcHRpb24sIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVs
bHB0cik7CiAKKyAgICBKU0M6OkpTVmFsdWUgZXZhbHVhdGVNb2R1bGUoSlNDOjpKU01vZHVsZVJl
Y29yZCYpOworCisgICAgdm9pZCBsaW5rQW5kRXZhbHVhdGVNb2R1bGUoV29ya2VyU2NyaXB0RmV0
Y2hlciYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9u
TWVzc2FnZSA9IG51bGxwdHIpOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgbG9hZE1vZHVs
ZVN5bmNocm9ub3VzbHkoV29ya2VyU2NyaXB0RmV0Y2hlciYsIGNvbnN0IFNjcmlwdFNvdXJjZUNv
ZGUmKTsKKworICAgIHZvaWQgbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgbW9kdWxl
VVJMLCBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYpOworCiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyT3JXb3Jr
bGV0R2xvYmFsU2NvcGUqIGdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxTY29w
ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAK
aW5kZXggM2E0ZGFlZmMzOTAyYmRiMmVhODRmYzU4ZDdlNDJmODNlNWYwN2UyZi4uOWYzMWQwZGZk
NTlhODcwN2ZkNGViNTljYzNjOTJhMDY2NDgxZGUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIE9wdGlvbmFs
PEV4Y2VwdGlvbj4gV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkU3luY2hyb25vdXNseShTY3JpcHRF
eGVjdXRpb25Db250ZXh0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotdm9pZCBXb3Jr
ZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3JpcHRSZXF1ZXN0
LCBGZXRjaE9wdGlvbnMmJiBmZXRjaE9wdGlvbnMsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9y
Y2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01v
ZGUgc2VydmljZVdvcmtlck1vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50KQor
dm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3Jp
cHRSZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBmZXRjaE9wdGlvbnMsIENvbnRlbnRTZWN1cml0eVBv
bGljeUVuZm9yY2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNl
V29ya2Vyc01vZGUgc2VydmljZVdvcmtlck1vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYg
Y2xpZW50LCBTdHJpbmcmJiB0YXNrTW9kZSkKIHsKICAgICBtX2NsaWVudCA9ICZjbGllbnQ7CiAg
ICAgbV91cmwgPSBzY3JpcHRSZXF1ZXN0LnVybCgpOwpAQCAtMTIzLDggKzEyMyw2IEBAIHZvaWQg
V29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgc2NyaXB0RXhlY3V0CiAgICAgQVNTRVJUKGZldGNoT3B0aW9ucy5tb2RlID09IEZldGNo
T3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbiB8fCAoZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uICE9
IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNlcnZpY2V3b3JrZXIgJiYgZmV0Y2hPcHRpb25z
LmRlc3RpbmF0aW9uICE9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OldvcmtlcikpOwogCiAg
ICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9ucyB7IFdURk1vdmUoZmV0Y2hPcHRpb25z
KSB9OwotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIGFuIG9wdGlvbiB0byBzZXQgY3JlZGVu
dGlhbCBtb2RlLgotICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRl
bnRpYWxzOjpTYW1lT3JpZ2luOwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5k
Q2FsbGJhY2tQb2xpY3k6OlNlbmRDYWxsYmFja3M7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudCA9IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50Owog
ICAgIGlmIChmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5h
dGlvbjo6U2VydmljZXdvcmtlcikKQEAgLTE0Myw3ICsxNDEsNyBAQCB2b2lkIFdvcmtlclNjcmlw
dExvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlw
dEV4ZWN1dAogCiAgICAgLy8gRHVyaW5nIGNyZWF0ZSwgY2FsbGJhY2tzIG1heSBoYXBwZW4gd2hp
Y2ggcmVtb3ZlIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdC4KICAgICBSZWY8V29y
a2VyU2NyaXB0TG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKLSAgICBtX3RocmVhZGFibGVM
b2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
KnRoaXMsIFdURk1vdmUoKnJlcXVlc3QpLCBvcHRpb25zKTsKKyAgICBtX3RocmVhZGFibGVMb2Fk
ZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgKnRo
aXMsIFdURk1vdmUoKnJlcXVlc3QpLCBvcHRpb25zLCB7IH0sIFdURk1vdmUodGFza01vZGUpKTsK
IH0KIAogY29uc3QgVVJMJiBXb3JrZXJTY3JpcHRMb2FkZXI6OnJlc3BvbnNlVVJMKCkgY29uc3QK
QEAgLTE5MCw2ICsxODgsOCBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzbwogICAgIG1fY2VydGlm
aWNhdGVJbmZvID0gcmVzcG9uc2UuY2VydGlmaWNhdGVJbmZvKCkgPyAqcmVzcG9uc2UuY2VydGlm
aWNhdGVJbmZvKCkgOiBDZXJ0aWZpY2F0ZUluZm8oKTsKICAgICBtX3Jlc3BvbnNlTUlNRVR5cGUg
PSByZXNwb25zZS5taW1lVHlwZSgpOwogICAgIG1fcmVzcG9uc2VFbmNvZGluZyA9IHJlc3BvbnNl
LnRleHRFbmNvZGluZ05hbWUoKTsKKyAgICBtX3Jlc3BvbnNlU291cmNlID0gcmVzcG9uc2Uuc291
cmNlKCk7CisgICAgbV9pc1JlZGlyZWN0ZWQgPSByZXNwb25zZS5pc1JlZGlyZWN0ZWQoKTsKICAg
ICBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSA9IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyB7IHJlc3BvbnNlIH07CiAgICAgbV9yZWZlcnJlclBvbGljeSA9IHJlc3BvbnNlLmh0
dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UmVmZXJyZXJQb2xpY3kpOwogICAgIGlmICht
X2NsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCmlu
ZGV4IDdmZGQwYjNmNmEwMWMyZGI1NzcyNGE5MGIzYmI5ODQwZjFlNjhlNWYuLmNmYTMxYTM1MzI1
OWFlZWQxOThmOTM5MWZmYzE1MTFiNDA1MGI4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJTY3JpcHRMb2FkZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZldGNo
T3B0aW9ucy5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiVGhy
ZWFkYWJsZUxvYWRlci5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlIDxtZW1vcnk+CkBAIC00Myw3ICs0NCw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEV4Y2VwdGlvbjsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OwogY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsKIGNsYXNzIFdvcmtl
clNjcmlwdExvYWRlckNsaWVudDsKQEAgLTU4LDcgKzU4LDcgQEAgY2xhc3MgV29ya2VyU2NyaXB0
TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRo
cmVhZGEKICAgICB9CiAKICAgICBPcHRpb25hbDxFeGNlcHRpb24+IGxvYWRTeW5jaHJvbm91c2x5
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUs
IEZldGNoT3B0aW9uczo6Q2FjaGUsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBj
b25zdCBTdHJpbmcmIGluaXRpYXRvcklkZW50aWZpZXIpOwotICAgIHZvaWQgbG9hZEFzeW5jaHJv
bm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hP
cHRpb25zJiYsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vy
c01vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYpOworICAgIHZvaWQgbG9hZEFzeW5jaHJv
bm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hP
cHRpb25zJiYsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vy
c01vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYsIFN0cmluZyYmIHRhc2tNb2RlKTsKIAog
ICAgIHZvaWQgbm90aWZ5RXJyb3IoKTsKIApAQCAtNjcsNiArNjcsOCBAQCBjbGFzcyBXb3JrZXJT
Y3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJTY3JpcHRMb2FkZXI+LCBwdWJs
aWMgVGhyZWFkYQogICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3koKSBjb25zdCB7IHJl
dHVybiBtX3JlZmVycmVyUG9saWN5OyB9CiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJl
dHVybiBtX3VybDsgfQogICAgIGNvbnN0IFVSTCYgcmVzcG9uc2VVUkwoKSBjb25zdDsKKyAgICBS
ZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2UgcmVzcG9uc2VTb3VyY2UoKSBjb25zdCB7IHJldHVybiBt
X3Jlc3BvbnNlU291cmNlOyB9CisgICAgYm9vbCBpc1JlZGlyZWN0ZWQoKSBjb25zdCB7IHJldHVy
biBtX2lzUmVkaXJlY3RlZDsgfQogICAgIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNh
dGVJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0ZUluZm87IH0KICAgICBjb25zdCBT
dHJpbmcmIHJlc3BvbnNlTUlNRVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlTUlNRVR5
cGU7IH0KICAgICBib29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmFpbGVkOyB9CkBAIC0x
MDcsNiArMTA5LDggQEAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVibGljIFJlZkNvdW50
ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGEKICAgICB1bnNpZ25lZCBsb25n
IG1faWRlbnRpZmllciB7IDAgfTsKICAgICBib29sIG1fZmFpbGVkIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fZmluaXNoaW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZWRpcmVjdGVkIHsgZmFs
c2UgfTsKKyAgICBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2UgbV9yZXNwb25zZVNvdXJjZSB7IFJl
c291cmNlUmVzcG9uc2U6OlNvdXJjZTo6VW5rbm93biB9OwogICAgIFJlc291cmNlRXJyb3IgbV9l
cnJvcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA3
Mjc5MGEwMzMyMjYxOWU2ZWU3ZTYxNmE4YmRlMThiZDU1MmE1NzgzLi45YjZjM2U3ZTBlNzMxNDVi
NzViNjUzNzQxM2Q1ZmYwNWJjNTUxYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJU
aHJlYWQuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3Bl
LmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTUsNiArNTcsOCBAQCBXb3JrZXJQYXJhbWV0ZXJzIFdv
cmtlclBhcmFtZXRlcnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgICAgIHNob3VsZEJ5cGFz
c01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwKICAgICAgICAgdGltZU9yaWdpbiwKICAg
ICAgICAgcmVmZXJyZXJQb2xpY3ksCisgICAgICAgIHdvcmtlclR5cGUsCisgICAgICAgIGNyZWRl
bnRpYWxzLAogICAgICAgICBzZXR0aW5nc1ZhbHVlcy5pc29sYXRlZENvcHkoKQogICAgIH07CiB9
CkBAIC0xMjMsOSArMTI3LDI5IEBAIGJvb2wgV29ya2VyVGhyZWFkOjpzaG91bGRXYWl0Rm9yV2Vi
SW5zcGVjdG9yT25TdGFydHVwKCkgY29uc3QKIAogdm9pZCBXb3JrZXJUaHJlYWQ6OmV2YWx1YXRl
U2NyaXB0SWZOZWNlc3NhcnkoU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQogewotICAgIGdsb2Jh
bFNjb3BlKCktPnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERh
dGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZl
eGNlcHRpb25NZXNzYWdlKTsKLQotICAgIGZpbmlzaGVkRXZhbHVhdGluZ1NjcmlwdCgpOworICAg
IC8vIFdlIGFyZSBjdXJyZW50bHkgaG9sZGluZyBvbmx5IHRoZSBpbml0aWFsIHNjcmlwdCBjb2Rl
LiBJZiB0aGUgV29ya2VyVHlwZSBpcyBNb2R1bGUsIHdlIHNob3VsZCBmZXRjaCB0aGUgZW50aXJl
IGdyYXBoIGJlZm9yZSBleGVjdXRpbmcgdGhlIHJlc3Qgb2YgdGhpcy4KKyAgICAvLyBXZSBpbnZv
a2UgbW9kdWxlIGxvYWRlciBhcyBpZiB3ZSBhcmUgZXhlY3V0aW5nIGlubGluZSBtb2R1bGUgc2Ny
aXB0IHRhZyBpbiBEb2N1bWVudC4KKworICAgIGlmIChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMud29y
a2VyVHlwZSA9PSBXb3JrZXJUeXBlOjpDbGFzc2ljKSB7CisgICAgICAgIGdsb2JhbFNjb3BlKCkt
PnNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc3RhcnR1cERhdGEtPnNvdXJj
ZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSksICZleGNlcHRpb25N
ZXNzYWdlKTsKKyAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgYXV0byBzY3JpcHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3Jl
YXRlKGdsb2JhbFNjb3BlKCktPmNyZWRlbnRpYWxzKCksIGdsb2JhbFNjb3BlKCktPmRlc3RpbmF0
aW9uKCksIGdsb2JhbFNjb3BlKCktPnJlZmVycmVyUG9saWN5KCkpOworICAgICAgICBTY3JpcHRT
b3VyY2VDb2RlIHNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29kZSwgVVJMKG1fc3Rh
cnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpLCB7IH0sIEpTQzo6U291cmNlUHJvdmlkZXJTb3Vy
Y2VUeXBlOjpNb2R1bGUsIHNjcmlwdEZldGNoZXIuY29weVJlZigpKTsKKyAgICAgICAgTWVzc2Fn
ZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQgPSBnbG9iYWxTY29wZSgpLT5zY3JpcHQoKS0+bG9hZE1v
ZHVsZVN5bmNocm9ub3VzbHkoc2NyaXB0RmV0Y2hlci5nZXQoKSwgc291cmNlQ29kZSk7CisgICAg
ICAgIGlmIChyZXN1bHQgIT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgeworICAgICAgICAgICAg
aWYgKE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpFcnJvcj4gZXJyb3IgPSBzY3JpcHRGZXRjaGVy
LT5lcnJvcigpKSB7CisgICAgICAgICAgICAgICAgaWYgKE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0
OjpDb25zb2xlTWVzc2FnZT4gbWVzc2FnZSA9IGVycm9yLT5jb25zb2xlTWVzc2FnZSkKKyAgICAg
ICAgICAgICAgICAgICAgZXhjZXB0aW9uTWVzc2FnZSA9IG1lc3NhZ2UtPm1lc3NhZ2U7CisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25NZXNzYWdlID0g
IkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfczsKKyAgICAgICAgICAgICAgICBn
bG9iYWxTY29wZSgpLT5yZXBvcnRFeGNlcHRpb24oZXhjZXB0aW9uTWVzc2FnZSwgeyB9LCB7IH0s
IHsgfSwgeyB9LCB7IH0pOworICAgICAgICAgICAgfSBlbHNlIGlmICghc2NyaXB0RmV0Y2hlci0+
d2FzQ2FuY2VsZWQoKSkgeworICAgICAgICAgICAgICAgIGdsb2JhbFNjb3BlKCktPnNjcmlwdCgp
LT5saW5rQW5kRXZhbHVhdGVNb2R1bGUoc2NyaXB0RmV0Y2hlci5nZXQoKSwgc291cmNlQ29kZSwg
JmV4Y2VwdGlvbk1lc3NhZ2UpOworICAgICAgICAgICAgICAgIGZpbmlzaGVkRXZhbHVhdGluZ1Nj
cmlwdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogCiAgICAgLy8gRnJlZSB0
aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNlIGl0cyBtZW1iZXIgdmFyaWFibGUgZGVyZWYncyBoYXBw
ZW4gb24gdGhlIHdvcmtlcidzIHRocmVhZCAoc2luY2UKICAgICAvLyBhbGwgcmVmL2RlcmVmcyBv
ZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBwZW5pbmcgb24gdGhlIHRocmVhZCBhdCB0aGlzIHBvaW50
KS4gTm90ZSB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAppbmRleCA4ODkw
NzkwOGU3YTliODA5ZThmMmE0ZTQ3M2Q3NTJkMTFkMjkzN2MwLi45NTEyZWZkYjE4ZjMyYTUwZWNi
N2ZiNTY5NTlkNjFlODg3MmZhMWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmgKQEAgLTI2LDcgKzI2LDEwIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdENy
ZWRlbnRpYWxzLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0VGhyZWFkLmgiCisjaW5jbHVk
ZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL1VSTC5oPgpAQCAtNjMsNiArNjYsOCBAQCBzdHJ1Y3QgV29ya2VyUGFyYW1ldGVycyB7
CiAgICAgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAg
ICAgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luOwogICAgIFJlZmVycmVyUG9saWN5IHJlZmVycmVy
UG9saWN5OworICAgIFdvcmtlclR5cGUgd29ya2VyVHlwZTsKKyAgICBGZXRjaFJlcXVlc3RDcmVk
ZW50aWFscyBjcmVkZW50aWFsczsKICAgICBTZXR0aW5nczo6VmFsdWVzIHNldHRpbmdzVmFsdWVz
OwogCiAgICAgV29ya2VyUGFyYW1ldGVycyBpc29sYXRlZENvcHkoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUeXBlLmgKaW5kZXggMGIwZWQ4NjBkOWM3MTQyMzhhMmE1YmI5ZmRmNDM4
NDAyZDE2ZWJmMC4uMWMxYmI5NDQ4NjdhZGY0ZWQ1NzhhMjgxNGZhMzMyMzI2YWVkOGE1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFdvcmtlclR5cGUgeworZW51bSBjbGFzcyBXb3Jr
ZXJUeXBlIDogdWludDhfdCB7CiAgICAgQ2xhc3NpYywKICAgICBNb2R1bGUsCiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmgKaW5kZXggZWJiZTk1ZTg5MjRjOGYxZDczNzUyNWRlYTE2MzBiMWZhZDU2ZmIyNy4uNGM3
ZGRmNGE0YzEzMWUwZGNkNmJhMDk1MDlhYjJkOTc1NzVmMzBjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCkBA
IC00Nyw3ICs0Nyw3IEBAIGNsYXNzIE5hdmlnYXRvckJhc2U7CiBjbGFzcyBTZXJ2aWNlV29ya2Vy
OwogCiBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSA6IHVpbnQ4X3Q7Ci1l
bnVtIGNsYXNzIFdvcmtlclR5cGU7CitlbnVtIGNsYXNzIFdvcmtlclR5cGUgOiB1aW50OF90Owog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlUHJveHk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUuaAppbmRleCA2MDJkYTcyMzVkZmFmMGY3MjUwMzE2NzE3MDNmZWY3NmFmNjRm
MTdkLi5jZTA3YmY5MDQyYTEwZjVmYzJkNDU2Zjk4NTlmYjlmNmU1MWM1OTgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5oCkBAIC02OSw2ICs2OSw4IEBAIGNsYXNzIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZSBmaW5hbCA6IHB1YmxpYyBXb3JrZXJHbG9iYWxTY29wZSB7CiAgICAgdm9pZCBzZXRTY3JpcHRS
ZXNvdXJjZShjb25zdCBVUkwmLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2Ny
aXB0JiYpOwogCiAgICAgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8oKSBj
b25zdCB7IHJldHVybiBtX2NvbnRleHREYXRhLmNlcnRpZmljYXRlSW5mbzsgfQorCisgICAgRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNlcnZpY2V3b3JrZXI7IH0KICAgICAKIHByaXZh
dGU6CiAgICAgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YSYsIGNvbnN0IFdvcmtlclBhcmFtZXRlcnMmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYs
IFNlcnZpY2VXb3JrZXJUaHJlYWQmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBJ
REJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKaW5k
ZXggZWMzOWMwZjg0OWE1NGUxYjZkMGJlZTM0YThkN2QxOWNiYTQ1ZTI4OC4uZjk1MTBjYmY2ZmRm
NzA0NmY3ZDFiOTIyMzY5MTc0ZDAxZmEwYmUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcApAQCAtMTEwLDcgKzExMCw4IEBA
IHZvaWQgU2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4dChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBGCiAgICAgb3B0aW9ucy5jYWNoZSA9IGNhY2hlUG9saWN5
OwogICAgIG9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpFcnJvcjsK
ICAgICBvcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2Vy
dmljZXdvcmtlcjsKLSAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRl
eHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucyksIENvbnRlbnRTZWN1cml0eVBv
bGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UsIFNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSwg
KnRoaXMpOworICAgIG9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRp
YWxzOjpTYW1lT3JpZ2luOworICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHko
Y29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgQ29udGVudFNlY3Vy
aXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSwgU2VydmljZVdvcmtlcnNNb2RlOjpO
b25lLCAqdGhpcywgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKIFJlc291cmNl
RXJyb3IgU2VydmljZVdvcmtlckpvYjo6dmFsaWRhdGVTZXJ2aWNlV29ya2VyUmVzcG9uc2UoY29u
c3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaAppbmRleCA5ZDUwMGY4
NWFjYjE4ODQxY2M1NWJlYTgyMTFkYjE0ZmFkYzk3NDc1Li4yZTM1NTdmYTdkZjY3ZjFiZjk4Yzdi
N2E1ZGU0YjBhNWE3YmNjY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaApA
QCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNzIFNlcnZp
Y2VXb3JrZXJVcGRhdGVWaWFDYWNoZSA6IHVpbnQ4X3Q7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7
CitlbnVtIGNsYXNzIFdvcmtlclR5cGUgOiB1aW50OF90OwogCiBzdHJ1Y3QgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbk9wdGlvbnMgewogICAgIFN0cmluZyBzY29wZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5jcHAKaW5kZXggYzhhN2E5OTcyZjljYzhjMTZhNzk2NzUxMTU1MmY1NDkzYTY4NmY5
OC4uYTJkM2NkNDBiYzJhMGFhMjczYjE2MDgzYzVmNDg2NDRkMzc1ZTMzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5jcHAKQEAgLTczLDggKzczLDEwIEBAIGNsYXNzIER1bW15U2VydmljZVdv
cmtlclRocmVhZFByb3h5IDogcHVibGljIFdvcmtlck9iamVjdFByb3h5IHsKIC8vIEZJWE1FOiBV
c2UgYSB2YWxpZCBXb3JrZXJPYmplY3RQcm94eQogLy8gRklYTUU6IFVzZSB2YWxpZCBydW50aW1l
IGZsYWdzCiAKKy8vIEZJWE1FOiBTdXBwb3J0IG1vZHVsZXMgaW4gc2VydmljZS13b3JrZXJzLgor
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE1NQogU2Vydmlj
ZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEmIGRhdGEsIFN0cmluZyYmIHVzZXJBZ2VudCwgY29uc3QgU2V0dGluZ3M6OlZhbHVl
cyYgc2V0dGluZ3NWYWx1ZXMsIFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2Vy
RGVidWdnZXJQcm94eSYgZGVidWdnZXJQcm94eSwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJv
eHkqIGlkYkNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKQot
ICAgIDogV29ya2VyVGhyZWFkKHsgZGF0YS5zY3JpcHRVUkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2
aWNld29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRp
ZmllcigpLCBXVEZNb3ZlKHVzZXJBZ2VudCksIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJT
dHJhdGVneSgpLT5pc09uTGluZSgpLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZmFsc2Us
IE1vbm90b25pY1RpbWU6Om5vdygpLCB7IH0sIHNldHRpbmdzVmFsdWVzIH0sIGRhdGEuc2NyaXB0
LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5yZWdpc3Ry
YXRpb24ua2V5LnRvcE9yaWdpbigpLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIGlkYkNvbm5lY3Rp
b25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFi
bGVkKCkpCisgICAgOiBXb3JrZXJUaHJlYWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmco
KSwgInNlcnZpY2V3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVh
dGVJZGVudGlmaWVyKCksIFdURk1vdmUodXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PmxvYWRlclN0cmF0ZWd5KCktPmlzT25MaW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5
LCBmYWxzZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHsgfSwgV29ya2VyVHlwZTo6Q2xhc3NpYywg
RmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4sIHNldHRpbmdzVmFsdWVzIH0sIGRh
dGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0
YS5yZWdpc3RyYXRpb24ua2V5LnRvcE9yaWdpbigpLnNlY3VyaXR5T3JpZ2luKCkuZ2V0KCksIGlk
YkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVh
dGVBbGxFbmFibGVkKCkpCiAgICAgLCBtX2RhdGEoZGF0YS5pc29sYXRlZENvcHkoKSkKICAgICAs
IG1fd29ya2VyT2JqZWN0UHJveHkoRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJl
ZCgpKQogICAgICwgbV9oZWFydEJlYXRUaW1lb3V0KFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRv
bigpLmNvbm5lY3Rpb24oKS0+c2hvdWxkVXNlU2hvcnRUaW1lb3V0KCkgPyBoZWFydEJlYXRUaW1l
b3V0Rm9yVGVzdCA6IGhlYXJ0QmVhdFRpbWVvdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKaW5kZXggMmRkZGIzYjVi
NDFlZDg3YmQ2MTRhMGI5NGQwOWI3NjEyOTNkNzYwNy4uMzc4ZmJhNjU3ZThiYmY0ODQxZTU2Y2Jm
ODY1NjFmOGVjYzMxMTAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaApAQCAtNTAsNyArNTAsNyBAQCBzdHJ1Y3Qg
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVu
dFF1ZXJ5T3B0aW9uczsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7CiBzdHJ1Y3Qg
U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyOwotZW51bSBjbGFzcyBXb3JrZXJUeXBlOwor
ZW51bSBjbGFzcyBXb3JrZXJUeXBlIDogdWludDhfdDsKIAogY2xhc3MgU1dTZXJ2ZXJXb3JrZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxTV1NlcnZlcldvcmtlcj4gewogcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgKaW5kZXggNDJh
NzViNDU4MjQ3NmVlZGEyOGU5YTQyYjk2YjExY2RiYWM2ZTUzYS4uZDA3NmVlOWQzNWViN2Y3Mzk4
ZTBkNDA5ZTg4N2U2NTdmMjI2MDIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0
cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIFZNOwog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CiAKLWNsYXNzIFBh
aW50V29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtsZXRHbG9iYWxTY29wZSB7CitjbGFz
cyBQYWludFdvcmtsZXRHbG9iYWxTY29wZSBmaW5hbCA6IHB1YmxpYyBXb3JrbGV0R2xvYmFsU2Nv
cGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUp
OwogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU+IHRy
eUNyZWF0ZShEb2N1bWVudCYsIFNjcmlwdFNvdXJjZUNvZGUmJik7CkBAIC03Niw2ICs3Niw4IEBA
IGNsYXNzIFBhaW50V29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtsZXRHbG9iYWxTY29w
ZSB7CiAgICAgICAgIFdvcmtsZXRHbG9iYWxTY29wZTo6cHJlcGFyZUZvckRlc3RydWN0aW9uKCk7
CiAgICAgfQogCisgICAgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlBhaW50d29ya2xl
dDsgfQorCiBwcml2YXRlOgogICAgIFBhaW50V29ya2xldEdsb2JhbFNjb3BlKERvY3VtZW50Jiwg
UmVmPEpTQzo6Vk0+JiYsIFNjcmlwdFNvdXJjZUNvZGUmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IGQ3MDQ4ODY2NDhjMGVmYWE2
Yjc4MDg0YzUzODcyMDFjYTJiMWM1NDMuLjJhZTBlMzM4OTFkYmM4OWYxNDY4N2Q0MTQ4MDJhYWEx
MmQwZDg0ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9i
YWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNj
b3BlLmNwcApAQCAtMTU4LDcyICsxNTgsNyBAQCBSZWZlcnJlclBvbGljeSBXb3JrbGV0R2xvYmFs
U2NvcGU6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKIHZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpm
ZXRjaEFuZEludm9rZVNjcmlwdChjb25zdCBVUkwmIG1vZHVsZVVSTCwgRmV0Y2hSZXF1ZXN0Q3Jl
ZGVudGlhbHMgY3JlZGVudGlhbHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhj
ZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKLSAgICBtX3NjcmlwdEZldGNoSm9icy5hcHBlbmQoeyBtb2R1bGVVUkwsIGNyZWRl
bnRpYWxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSB9KTsKLSAgICBwcm9jZXNzTmV4dFNj
cmlwdEZldGNoSm9iSWZOZWVkZWQoKTsKLX0KLQotdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OnBy
b2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5lZWRlZCgpCi17Ci0gICAgaWYgKG1fc2NyaXB0RmV0
Y2hKb2JzLmlzRW1wdHkoKSB8fCBtX3NjcmlwdExvYWRlcikKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgYXV0byYgc2NyaXB0RmV0Y2hKb2IgPSBtX3NjcmlwdEZldGNoSm9icy5maXJzdCgpOwotCi0g
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBzY3JpcHRGZXRjaEpvYi5tb2R1bGVVUkwgfTsK
LQotICAgIEZldGNoT3B0aW9ucyBmZXRjaE9wdGlvbnM7Ci0gICAgZmV0Y2hPcHRpb25zLm1vZGUg
PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM7Ci0gICAgZmV0Y2hPcHRpb25zLmNhY2hlID0gRmV0
Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKLSAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3QgPSBG
ZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7Ci0gICAgZmV0Y2hPcHRpb25zLmNyZWRlbnRp
YWxzID0gc2NyaXB0RmV0Y2hKb2IuY3JlZGVudGlhbHM7Ci0jaWYgRU5BQkxFKFdFQl9BVURJTykK
LSAgICBpZiAoaXNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSgpKQotICAgICAgICBmZXRjaE9wdGlv
bnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpBdWRpb3dvcmtsZXQ7
Ci0jZW5kaWYKLSNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQSSkKLSAgICBpZiAoaXNQYWludFdv
cmtsZXRHbG9iYWxTY29wZSgpKQotICAgICAgICBmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPSBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpQYWludHdvcmtsZXQ7Ci0jZW5kaWYKLQotICAgIGF1
dG8gY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgPSBzaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2Vt
ZW50OjpEb05vdEVuZm9yY2UgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RW5m
b3JjZUNoaWxkU3JjRGlyZWN0aXZlOwotCi0gICAgbV9zY3JpcHRMb2FkZXIgPSBXb3JrZXJTY3Jp
cHRMb2FkZXI6OmNyZWF0ZSgpOwotICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3Vz
bHkoKnRoaXMsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZmV0Y2hPcHRpb25zKSwgY29udGVu
dFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZTo6QWxsLCAqdGhp
cyk7Ci19Ci0KLXZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5z
aWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpCi17Ci19Ci0KLXZvaWQgV29ya2xl
dEdsb2JhbFNjb3BlOjpub3RpZnlGaW5pc2hlZCgpCi17Ci0gICAgYXV0byBjb21wbGV0ZWRKb2Ig
PSBtX3NjcmlwdEZldGNoSm9icy50YWtlRmlyc3QoKTsKLQotICAgIGlmIChtX3NjcmlwdExvYWRl
ci0+ZmFpbGVkKCkpIHsKLSAgICAgICAgZGlkQ29tcGxldGVTY3JpcHRGZXRjaEpvYihXVEZNb3Zl
KGNvbXBsZXRlZEpvYiksIEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsIG1ha2VTdHJpbmcoIkZhaWxl
ZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiAiLCBtX3NjcmlwdExvYWRlci0+ZXJyb3IoKS5sb2Nh
bGl6ZWREZXNjcmlwdGlvbigpKSB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8v
IEZJWE1FOiBUaGlzIHNob3VsZCByZWFsbHkgYmUgcnVuIGFzIGEgbW9kdWxlIHNjcmlwdCBidXQg
d2UgZG9uJ3Qgc3VwcG9ydCB0aGlzIGluIHdvcmtlcnMgeWV0LgotICAgIFVSTCBtb2R1bGVVUkwo
bV9zY3JpcHRMb2FkZXItPnJlc3BvbnNlVVJMKCkpOwotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9l
dmFsdWF0ZWRNb2R1bGVzLmFkZChtb2R1bGVVUkwpOwotICAgIGlmIChhZGRSZXN1bHQuaXNOZXdF
bnRyeSkgewotICAgICAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gZXhjZXB0aW9uOwotICAg
ICAgICBzY3JpcHQoKS0+ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShtX3NjcmlwdExvYWRlci0+
c2NyaXB0KCksIFdURk1vdmUobW9kdWxlVVJMKSksIGV4Y2VwdGlvbik7Ci0gICAgICAgIGlmIChl
eGNlcHRpb24pCi0gICAgICAgICAgICBzY3JpcHQoKS0+c2V0RXhjZXB0aW9uKGV4Y2VwdGlvbik7
Ci0gICAgfQotCi0gICAgZGlkQ29tcGxldGVTY3JpcHRGZXRjaEpvYihXVEZNb3ZlKGNvbXBsZXRl
ZEpvYiksIHsgfSk7Ci19Ci0KLXZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpkaWRDb21wbGV0ZVNj
cmlwdEZldGNoSm9iKFNjcmlwdEZldGNoSm9iJiYgam9iLCBPcHRpb25hbDxFeGNlcHRpb24+IHJl
c3VsdCkKLXsKLSAgICBtX3NjcmlwdExvYWRlciA9IG51bGxwdHI7Ci0KLSAgICBqb2IuY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKLQotICAgIHByb2Nlc3NOZXh0U2NyaXB0RmV0
Y2hKb2JJZk5lZWRlZCgpOworICAgIHNjcmlwdCgpLT5sb2FkQW5kRXZhbHVhdGVNb2R1bGUobW9k
dWxlVVJMLCBjcmVkZW50aWFscywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiBN
ZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlciYgV29ya2xldEdsb2JhbFNjb3BlOjptZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9X
b3JrbGV0R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9i
YWxTY29wZS5oCmluZGV4IGYyMzIwZjBkMTMwMjVjZWFiM2JhYzU2YTQ1ZWMyZDFkZDNmYjZjYzAu
LmZlNTRiODUzMjU2NzkyNTgzZGVkYTA1NWE0MzNhMjU2NTRlODY3NTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC0zMyw3ICszMyw2IEBACiAj
aW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5o
IgotI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0NvbnNvbGVNZXNzYWdlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVu
dGltZUZsYWdzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC01NCw3
ICs1Myw3IEBAIHN0cnVjdCBXb3JrbGV0UGFyYW1ldGVyczsKIGVudW0gV29ya2xldEdsb2JhbFNj
b3BlSWRlbnRpZmllclR5cGUgeyB9OwogdXNpbmcgV29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8V29ya2xldEdsb2JhbFNjb3BlSWRlbnRpZmllclR5cGU+Owog
Ci1jbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUsIHB1YmxpYyBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQgeworY2xhc3MgV29ya2xldEds
b2JhbFNjb3BlIDogcHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKFdvcmtsZXRHbG9iYWxTY29wZSk7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+V29ya2xldEdsb2JhbFNjb3BlKCk7CkBAIC0xMTEsMTAgKzExMCw2IEBAIGNsYXNzIFdv
cmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZSwgcHVi
bGljIFdvcmtlclNjcmlwCiAgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIHVuc2lnbmVk
LCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCB1bnNpZ25lZCBsb25nKSBmaW5hbDsKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbG9uZykg
ZmluYWw7CiAKLSAgICAvLyBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuCi0gICAgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJikgZmluYWw7Ci0gICAgdm9pZCBub3RpZnlGaW5pc2hlZCgpIGZpbmFsOwotCiAgICAg
RXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9CiAK
ICNpZiBFTkFCTEUoV0VCX0NSWVBUTykKQEAgLTEyNSwxNSArMTIwLDYgQEAgY2xhc3MgV29ya2xl
dEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLCBwdWJsaWMg
V29ya2VyU2NyaXAKICAgICBTdHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0IGZpbmFs
OwogICAgIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQogCi0gICAgc3RydWN0IFNjcmlwdEZldGNo
Sm9iIHsKLSAgICAgICAgVVJMIG1vZHVsZVVSTDsKLSAgICAgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVu
dGlhbHMgY3JlZGVudGlhbHM7Ci0gICAgICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8RXhjZXB0aW9uPiYmKT4gY29tcGxldGlvbkhhbmRsZXI7Ci0gICAgfTsKLQotICAgIHZvaWQg
cHJvY2Vzc05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKCk7Ci0gICAgdm9pZCBkaWRDb21wbGV0
ZVNjcmlwdEZldGNoSm9iKFNjcmlwdEZldGNoSm9iJiYsIE9wdGlvbmFsPEV4Y2VwdGlvbj4pOwot
CiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKIAogICAgIFJlZjxTZWN1cml0eU9y
aWdpbj4gbV90b3BPcmlnaW47CkBAIC0xNDQsOSArMTMwLDYgQEAgY2xhc3MgV29ya2xldEdsb2Jh
bFNjb3BlIDogcHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLCBwdWJsaWMgV29ya2Vy
U2NyaXAKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJNZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlcj4gbV9tZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsKIAotICAgIFJlZlB0cjxXb3JrZXJT
Y3JpcHRMb2FkZXI+IG1fc2NyaXB0TG9hZGVyOwotICAgIERlcXVlPFNjcmlwdEZldGNoSm9iPiBt
X3NjcmlwdEZldGNoSm9iczsKLSAgICBIYXNoU2V0PFVSTD4gbV9ldmFsdWF0ZWRNb2R1bGVzOwog
ICAgIFNldHRpbmdzOjpWYWx1ZXMgbV9zZXR0aW5nc1ZhbHVlczsKIH07CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNjIw
YTk2ZTZlYjcyM2NmYzU5NDY5ZGUzYTkyN2EzM2RkYjlmODdiLi43MmMwZTc4ZWJkMGY5MmZiNjhm
ZTc0NDBkOGU1ZGMxNzk5OTFlODZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDItMTgg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBKUyBNb2R1bGVz
IGluIFdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NDg2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS8xLjEvbW9kdWxlLXNjcmlwdG5vbmNlLXJlZGlyZWN0LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3N1YnJlc291cmNlLWludGVncml0eS9zcmkt
bW9kdWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb3dvcmtsZXQtYWRk
TW9kdWxlLWZhaWx1cmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL3dvcmtsZXQt
Y3Jhc2gtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAyLTE2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEV2ZW50SGFuZGxlcjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91
c2VEb3duRGlzcGF0Y2hpbmdTZWxlY3RTdGFydCBzaG91bGQgbm90IHVzZSBhbiBvcnBoYW5lZCBz
ZWxlY3Rpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGMxMzMyOTQ1ZWQ4MWIz
NzI0MjBkMWE3MmYwNjY1OTIyMjljODBjMDEuLjNiNjFmOWFhMTE0NDk5NjY4M2JkMzMzYzdhYzAx
ZWEzZGZmMjljOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4
IEBACisyMDIxLTAyLTE4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSlMgTW9kdWxlcyBpbiBXb3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTb21lIG9mIHdvcmtsZXQgZmFpbHVyZXMgaW4gV1BUIGlzIGJl
Y2F1c2UsCisKKyAgICAgICAgICAgIDEuIFByZXZpb3VzbHksIHdvcmtsZXQgZG9lcyBub3Qgc3Vw
cG9ydCBtb2R1bGUuIFRoZXNlIHRlc3RzIGFyZSBwYXNzaW5nIGluY29ycmVjdGx5IHdoZW4gbW9k
dWxlcyBhcmUgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgICAgICAgIE5vdywgbW9kdWxlcyBhcmUg
c3VwcG9ydGVkLCBhbmQgc29tZSBlZGdlIGZlYXR1cmVzIGFyZSBtaXNzaW5nLCBzbyBzdGFydCBm
YWlsaW5nCisgICAgICAgICAgICAyLiBXUFQgaXMgdXNpbmcgd3d3MS5sb2NhbGhvc3QgaW4gc29t
ZSB0ZXN0cyAoQ1NQIHRlc3RzKSwgYW5kIHRoaXMgaXMgbm90IHN1cHBvcnRlZCBpbiBXZWJLaXQn
cyBXUFQgdGVzdGluZy4gU28gZmFpbGluZyBpbmNvcnJlY3RseS4KKworICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29ya2Vy
Z2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3Jp
cHRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9y
dC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmct
MS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1p
bXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFs
dWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LW1v
ZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxw
aGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVy
bC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dv
cmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3Bl
L2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9i
LXVybC5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3Jr
ZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRpb25zLXR5
cGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21v
ZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29y
a2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBv
cnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
bGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0ZWQtd29ya2VyLW9yaWdp
bi1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDItMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIE1lZGlhUmVjb3JkZXIuc3RvcCgpIGRvZXMgbm90IHdvcmsgY29y
cmVjdGx5IHdoZW4gcmVjb3JkaW5nIGhhcyBiZWVuIHBhdXNlZC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGIxMGJlODYzOTBlZGNlNjk4Y2RjM2VjYjI5ZmYxZjliYjIzZjY3YmIuLjNlYTJjYjc2ZThj
YTc5NTFjYzYzMWQ3NTJlN2NhMDJjMGVlODMxN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjQw
LDcgKzY0MCw2IEBAIGZhc3QvZG9tL2Nvbm5lY3RlZC1zdWJmcmFtZS1jb3VudGVyLW92ZXJmbG93
Lmh0bWwgWyBTbG93IF0KIFsgRGVidWcgXSBodHRwL3Rlc3RzL3dvcmtlcnMvd29ya2VyLW1lc3Nh
Z2Vwb3J0LTIuaHRtbCBbIFNsb3cgXQogCiAjIFNraXAgd29ya2VycyB0ZXN0cyB0aGF0IGFyZSB0
aW1pbmcgb3V0IG9yIGFyZSBTaGFyZWRXb3JrZXIgcmVsYXRlZCBvbmx5Ci1pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdp
bi5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
ZGF0YS11cmwtc2hhcmVkLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9leGFtcGxlcy9vbmNvbm5lY3QuYW55Lmh0bWwgWyBTa2lwIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9leGFtcGxlcy9vbmNvbm5lY3QuYW55
Lndvcmtlci5odG1sIFsgU2tpcCBdCkBAIC02NjMsNyArNjYyLDYgQEAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL1NoYXJlZFdvcmtlci1yZXBsYWNlLUV2ZW50SGFuZGxl
ci5hbnkuaHQKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9TaGFyZWRX
b3JrZXItcmVwbGFjZS1FdmVudEhhbmRsZXIuYW55Lndvcmtlci5odG1sIFsgU2tpcCBdCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyLXNjcmlwdC1l
cnJvci5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvU2hhcmVkV29ya2VyLXNpbXBsZS5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1yZWZl
cnJlci5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtY3JlZGVudGlhbHMuaHRtbCBbIFNr
aXAgXQogCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0
b3JzL1NoYXJlZFdvcmtlciBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL21vZHVsZS1zY3JpcHRub25j
ZS1yZWRpcmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvbW9kdWxlLXNjcmlwdG5vbmNlLXJlZGlyZWN0LWV4
cGVjdGVkLnR4dAppbmRleCA1MDk5MTlmN2JmZDhjZjk0YzVkMzM0N2Y4N2E2NDRkMTU4ODQ1OTIx
Li5lMTcyZGU0ZDA0ZTJhNTc0N2M3N2YyMjIyNGZkNDVhYzA1MjUwNWY0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEv
bW9kdWxlLXNjcmlwdG5vbmNlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvbW9kdWxlLXNj
cmlwdG5vbmNlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDIgQEAKIENPTlNPTEUg
TUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjog
Q3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2Ug
U2hhcmluZyBwb2xpY3kuCiBUaGlzIHRlc3RzIHdoZXRoZXIgYSBkZWZlcnJlZCBzY3JpcHQgbG9h
ZCBjYXVzZWQgYnkgYSByZWRpcmVjdCBpcyBwcm9wZXJseSBhbGxvd2VkIGJ5IGEgbm9uY2UuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N1YnJlc291cmNlLWludGVncml0eS9z
cmktbW9kdWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3VicmVzb3Vy
Y2UtaW50ZWdyaXR5L3NyaS1tb2R1bGUtZXhwZWN0ZWQudHh0CmluZGV4IGEwMWQ5ZjA3MjZmZjk3
YzUyNWE1MDQ1MDc2YmFlNTE0YzgyZWUyZWEuLjkwYTI5MWViODI5ZWU5OGE3OThlYzM3NDg1MTg0
ZWEwZTk1YWNjOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3VicmVzb3Vy
Y2UtaW50ZWdyaXR5L3NyaS1tb2R1bGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc3VicmVzb3VyY2UtaW50ZWdyaXR5L3NyaS1tb2R1bGUtZXhwZWN0ZWQudHh0CkBA
IC0zLDcgKzMsNiBAQCBDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogQ2Fubm90IGxvYWQgc2Ny
aXB0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zdWJyZXNvdXJjZQogQ09OU09MRSBNRVNTQUdFOiBU
eXBlRXJyb3I6IENhbm5vdCBsb2FkIHNjcmlwdCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc3VicmVz
b3VyY2UtaW50ZWdyaXR5L3Jlc291cmNlcy9jcm9zc29yaWdpbi1hbm9uLXNjcmlwdC1tb2R1bGUu
anMuIEZhaWxlZCBpbnRlZ3JpdHkgbWV0YWRhdGEgY2hlY2suIENvbnRlbnQgbGVuZ3RoOiAzNywg
RXhwZWN0ZWQgY29udGVudCBsZW5ndGg6IDM3LCBFeHBlY3RlZCBtZXRhZGF0YTogc2hhMjU2LWRl
YWRiZWVmY1NMbGJGWkNqMU9BQ0x4VHhWY2syVE9yQlRFZFVid3oxeVU9CiBDT05TT0xFIE1FU1NB
R0U6IFR5cGVFcnJvcjogQ2Fubm90IGxvYWQgc2NyaXB0IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
dWJyZXNvdXJjZS1pbnRlZ3JpdHkvcmVzb3VyY2VzL2Nyb3Nzb3JpZ2luLWNyZWRzLXNjcmlwdC1t
b2R1bGUuanMuIEZhaWxlZCBpbnRlZ3JpdHkgbWV0YWRhdGEgY2hlY2suIENvbnRlbnQgbGVuZ3Ro
OiAzOCwgRXhwZWN0ZWQgY29udGVudCBsZW5ndGg6IDM4LCBFeHBlY3RlZCBtZXRhZGF0YTogc2hh
MjU2LWRlYWRiZWVmMlMrcFRSWmdpdzNEV3JoQzZKTERsdDJ6UnlHcHdIN3VuVTg9CiBDT05TT0xF
IE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkg
QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6
IENyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNl
IFNoYXJpbmcgcG9saWN5LgogQ09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6IENhbm5vdCBsb2Fk
IHNjcmlwdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc3VicmVzb3VyY2UtaW50ZWdyaXR5L3Jlc291
cmNlcy9tYXRjaGluZy1kaWdlc3QtbW9kdWxlLmpzLiBGYWlsZWQgaW50ZWdyaXR5IG1ldGFkYXRh
IGNoZWNrLiBDb250ZW50IGxlbmd0aDogMjksIEV4cGVjdGVkIGNvbnRlbnQgbGVuZ3RoOiAyOSwg
RXhwZWN0ZWQgbWV0YWRhdGE6IHNoYTI1Ni1jV2g5blBmbTdfbVJiS2h6YXJuUllsc0pXejVYVE5j
c3FQRnpLRXgrelNVPQogQ09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6IENhbm5vdCBsb2FkIHNj
cmlwdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc3VicmVzb3VyY2UtaW50ZWdyaXR5L3Jlc291cmNl
cy9tYXRjaGluZy1kaWdlc3QtbW9kdWxlLmpzLiBGYWlsZWQgaW50ZWdyaXR5IG1ldGFkYXRhIGNo
ZWNrLiBDb250ZW50IGxlbmd0aDogMjksIEV4cGVjdGVkIGNvbnRlbnQgbGVuZ3RoOiAyOSwgRXhw
ZWN0ZWQgbWV0YWRhdGE6IHNoYTI1Ni1VOVdZRHRCV2tjSHgxMys5VUtrLzNRNWVvcURjNFlHeFli
MDdFUFd6YjllPT9mb289YmFyP3NwYW09ZWdncwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0x
L3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9ub24tb2JqZWN0LnRlbnRhdGl2ZS5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pz
b24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cmlu
ZGV4IDQ5MjY5YjNiNTBiOTE3NWNiNjJlY2EzMTJlNTg2YjNiMTY2MmEyNTkuLjJjYWU1ZjdlMzVh
MzJmZWNlYjI2OGYyOTAwMDBlNGU1NTU2YzY4NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CkBAIC0xLDcgKzEsNyBAQAogCi1GQUlMIE5vbi1vYmplY3Q6IG51bGwgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBp
bXBvcnQgdGhlIG1vZHVsZSAnLi9udWxsLmpzb24nLiIKLUZBSUwgTm9uLW9iamVjdDogdHJ1ZSBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJv
cjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL3RydWUuanNvbicuIgotRkFJTCBOb24t
b2JqZWN0OiBmYWxzZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2ZhbHNlLmpz
b24nLiIKLUZBSUwgTm9uLW9iamVjdDogc3RyaW5nIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBt
b2R1bGUgJy4vc3RyaW5nLmpzb24nLiIKLUZBSUwgTm9uLW9iamVjdDogYXJyYXkgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxk
IG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9hcnJheS5qc29uJy4iCitGQUlMIE5vbi1vYmplY3Q6
IG51bGwgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlw
dCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiB0cnVlIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9u
L2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKK0ZBSUwgTm9uLW9i
amVjdDogZmFsc2UgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiAnYXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2
YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJTCBOb24tb2JqZWN0OiBzdHJpbmcgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAnYXBw
bGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJ
TCBOb24tb2JqZWN0OiBhcnJheSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2
YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRlci13b3JrZXJnbG9i
YWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1z
Y3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2Nv
cGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThmYmE4YmJmOTU5
ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLmY2OGNjNzNiNGQ2NzRjNTRkZmFmZTUyMjEyYjY0M2M0MDMw
ZmQ0MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3Jv
dGFza3MvY2hlY2twb2ludC1hZnRlci13b3JrZXJnbG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90
YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1l
c3NhZ2UgPSBudWxsCi0KK0ZBSUwgUHJvbWlzZSByZXNvbHZlZCBkdXJpbmcgI3JlcG9ydC10aGUt
ZXJyb3IgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5
IFsiaGFuZGxlciAxIiwgImhhbmRsZXIgMiIsICJoYW5kbGVyIDEgcHJvbWlzZSIsICJoYW5kbGVy
IDIgcHJvbWlzZSJdIGxlbmd0aCA0LCBnb3QgW10gbGVuZ3RoIDAKK1BBU1MgUHJvbWlzZSByZXNv
bHZlZCBkdXJpbmcgZXZlbnQgaGFuZGxlcnMgb3RoZXIgdGhhbiBlcnJvcgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQv
YWxwaGEvYmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jh
c2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dAppbmRleCA1MWQ2MTAwZTYx
MjJhOTdjMzY0YjNjZWIxZDdmZDA3ZTBlMTU2MTE3Li5hODA1MGMwNzhjZjhiODhkNTY4YWZmZTBk
NTVjYzMxOTBjMzY1NDdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLWltcG9ydFNj
cmlwdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0
cy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKLUZBSUwgUmVsYXRpdmUgVVJMLWxpa2Ug
ZnJvbSBzYW1lLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhl
IG1vZHVsZSAnLi9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3Jp
Z2luLCopJmxhYmVsPXJlbGF0aXZlLWNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCknLiIKLUZB
SUwgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSBzYW1lLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6
IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnaHR0cDovLzEyNy4wLjAuMTo4ODAwL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1p
bXBvcnQvZ2FtbWEvaW1wb3J0LmpzP3BpcGU9aGVhZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbiwqKSZsYWJlbD1hYnNvbHV0ZS1jcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpJy4iCi1Q
QVNTIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQot
RkFJTCBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIGNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJy
b3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnaHR0cDovLzEyNy4wLjAuMTo4ODAwL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1p
Yy1pbXBvcnQvZ2FtbWEvaW1wb3J0LmpzP3BpcGU9aGVhZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbiwqKSZsYWJlbD1hYnNvbHV0ZS1jcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpJy4i
CitQQVNTIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gc2FtZS1vcmlnaW4gaW1wb3J0U2NyaXB0cygp
CitQQVNTIEFic29sdXRlIFVSTC1saWtlIGZyb20gc2FtZS1vcmlnaW4gaW1wb3J0U2NyaXB0cygp
CitGQUlMIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMo
KSBhc3NlcnRfZXF1YWxzOiBSZWxhdGl2ZSBVUkwtbGlrZSBzcGVjaWZpZXIgcmVzb2x1dGlvbiBz
aG91bGQgZmFpbCBleHBlY3RlZCAiKHVucmVhY2hlZCkiIGJ1dCBnb3QgImdhbW1hL2ltcG9ydC5q
cyIKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSBjcm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0
cygpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9h
bHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVkLnR4dAppbmRleCA4NjZlYmIyMjdhZDI2
YWFjZTFhNTc4YmFlYTZhODFkYzBlNmU3N2YwLi41ZTcwNjM0OTBlMmRmZmVjZTg1ZWE3NjVhZWJk
ZGU0YjE2ZWIwZmMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFt
aWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsNCBAQAogCi1GQUlMIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gd29ya2VyIHRvcC1sZXZlbCBz
Y3JpcHQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9pbXBvcnQuanM/cGlwZT1o
ZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPXJlbGF0aXZlLXdvcmtl
ciB0b3AtbGV2ZWwgc2NyaXB0Jy4iCi1GQUlMIEFic29sdXRlIFVSTC1saWtlIGZyb20gd29ya2Vy
IHRvcC1sZXZlbCBzY3JpcHQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnaHR0cDov
LzEyNy4wLjAuMTo4ODAwL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvZ2FtbWEvaW1wb3J0LmpzP3BpcGU9aGVhZGVyKEFj
Y2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJlbD1hYnNvbHV0ZS13b3JrZXIgdG9wLWxl
dmVsIHNjcmlwdCcuIgorUEFTUyBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2
ZWwgc2NyaXB0CitQQVNTIEFic29sdXRlIFVSTC1saWtlIGZyb20gd29ya2VyIHRvcC1sZXZlbCBz
Y3JpcHQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5v
dGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFk
ZGQyMmU0YzFkY2IzYTVmLi4yZjEyYTIzNDJmYWQyMjRlM2ExOGE2ZmI1ZDg0ODMyNWVhNjc3NmZl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZh
bHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhy
b3ctd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAo
VElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK1BBU1MgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9m
IG1vZHVsZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS13b3JrZXIt
ZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRkZDIyZTRjMWRjYjNh
NWYuLmI4NjFmNzAxZjk0OGZiMTMyNzY5MzIyYzM4MzY2ZjJkMTM4ZjA0ZTIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVy
LTEtd29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitG
QUlMIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzIGFzc2VydF9hcnJheV9lcXVhbHM6
IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBbInN0ZXAtMS0xIiwgInN0ZXAtMS0yIiwg
Imdsb2JhbC1lcnJvciIsICJlcnJvciIsICJtaWNyb3Rhc2siXSBsZW5ndGggNSwgZ290IFsic3Rl
cC0xLTEiLCAic3RlcC0xLTIiLCAibWljcm90YXNrIl0gbGVuZ3RoIDMKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXIt
Mi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1l
bGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50
eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uYzFkMzhi
ZGU1MGM1OWU1ZDU5NDE3M2Q5NmY5Y2QxOWViMTA3YzliNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQt
d29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC0xLDQgKzEsMyBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwK
LQorRkFJTCBUZXN0IGV2YWx1YXRpb24gb3JkZXIgb2YgbW9kdWxlcyBhc3NlcnRfYXJyYXlfZXF1
YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgWyJzdGVwLTIuMi0xIiwgInN0ZXAt
Mi4yLTIiLCAiZ2xvYmFsLWVycm9yIiwgImVycm9yIiwgIm1pY3JvdGFzay0yLjIiXSBsZW5ndGgg
NSwgZ290IFsic3RlcC0yLjItMSIsICJzdGVwLTIuMi0yIiwgIm1pY3JvdGFzay0yLjIiXSBsZW5n
dGggMwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHlu
YW1pYy13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThmYmE4YmJmOTU5ZDBmYWRk
ZDIyZTRjMWRjYjNhNWYuLjJmMTJhMjM0MmZhZDIyNGUzYTE4YTZmYjVkODQ4MzI1ZWE2Nzc2ZmUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFs
dWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1p
Yy13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCi1IYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorUEFTUyBUZXN0IGV2YWx1YXRpb24gb3JkZXIgb2Yg
bW9kdWxlcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNj
cmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LW1vZHVs
ZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxMmQ5NGE5MWVmMWY4YWIwYTE4N2M3
NDliMGRkZWM2OTZkMTE4OGU3Li5iNGQ2OGFmMDU2ZWVmNjIyYTMzZDU0ZjA3NmYzODFkNGUxYmIy
OWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMu
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUt
c2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTIsOCArMiw4IEBACiBGQUlMIFN0YXRpYyBp
bXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlR5cGVFcnJvcjogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQg
Y2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKIEZBSUwgTmVzdGVkIHN0YXRpYyBp
bXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlR5cGVFcnJvcjogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQg
Y2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKIEZBSUwgU3RhdGljIGltcG9ydCBh
bmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0
b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJ
TCBEeW5hbWljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0
byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAn
Li9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlMIE5lc3Rl
ZCBkeW5hbWljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0
byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAn
Li9leHBvcnQtb24tZHluYW1pYy1pbXBvcnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQot
RkFJTCBEeW5hbWljIGltcG9ydCBhbmQgdGhlbiBzdGF0aWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlf
ZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291
bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1zdGF0aWMtaW1wb3J0LXNjcmlw
dC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgZXZhbChpbXBvcnQoKSkuIGFzc2VydF9hcnJh
eV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBD
b3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzJy4i
LCBleHBlY3RlZCBhcnJheQorUEFTUyBEeW5hbWljIGltcG9ydC4KK1BBU1MgTmVzdGVkIGR5bmFt
aWMgaW1wb3J0LgorUEFTUyBEeW5hbWljIGltcG9ydCBhbmQgdGhlbiBzdGF0aWMgaW1wb3J0Lgor
UEFTUyBldmFsKGltcG9ydCgpKS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0LWluLW1v
ZHVsZXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9kdWxld29ya2Vy
LWV4cGVjdGVkLnR4dAppbmRleCBkZDlhZjM4ZmYwOWZiZWMxZmFjMGI4ZjVlYTliYWQ2ZTMxNjM2
NDlkLi41MWViMzY2MzhjMWNhN2QwNjBiNzY3NTkyNmZjYzcwYzViZjA3NmU3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFz
ZXVybC9hbHBoYS9pbXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9h
bHBoYS9pbXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAK
LUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgaWRlbnRpZmllciAncicu
IGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCiAKLUZBSUwgQmFzZSBV
UkwgaW4gbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzOiBpbXBvcnQgYXNzZXJ0X3VucmVhY2hlZDog
R290IGVycm9yIGV2ZW50IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBCYXNlIFVSTCBp
biBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IGltcG9ydAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBo
YS9pbXBvcnRTY3JpcHRzLWluLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnRT
Y3JpcHRzLWluLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYWI1YTdmYjg5MDIwZjI5ZmQ4OTNh
NzU2ODBmZmUxN2QzZDM1MGY3Yy4uYWI1M2I4MDU5OWFlMDE5NTc4MDg1ZWU0NGFhZWZhNGM3OTU1
MjY4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4
dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBpbXBvcnRTY3JpcHRzIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJnYW1tYS9zY3JpcHQuanMiIGJ1dCBnb3QgImJldGEvc2NyaXB0LmpzIgorUEFTUyBp
bXBvcnRTY3JpcHRzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi1tb2R1bGV3b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQK
aW5kZXggODNmMzY3ZjJjZjNhNjZjNjRhNjI2NDI5NDY1NmQ1ZTg4MWQxYzExYy4uMjhiMGNiNDAw
MTM5MmQwODg3YTRmZWJlNjgxYzFlMTUxZDBkZjE4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhy
LWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1vZHVs
ZXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQmFzZSBVUkwgaW4g
bW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzOiBYSFIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImdh
bW1hXG4iIGJ1dCBnb3QgImJldGFcbiIKK1BBU1MgQmFzZSBVUkwgaW4gbW9kdWxlIGRlZGljYXRl
ZCB3b3JrZXJzOiBYSFIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLXdvcmtlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBkNmIw
OGVlZGFlNmY2OTZjN2E0YmZhNjU1ZTEzYjVlZDQ2MDdlYTAxLi5lYTE0NTRkOWIzZjIwZjg1ZDkw
MTZjNTA2YTE1NDZhZjYxNzg0MmQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4td29ya2Vy
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dApA
QCAtMSwzICsxLDMgQEAKIAotRkFJTCB4aHItd29ya2VyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJnYW1tYVxuIiBidXQgZ290ICJiZXRhXG4iCitQQVNTIHhoci13b3JrZXIKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Nv
bnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3Jr
ZXIvc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0CmluZGV4IDgzMWYwYzU4YzY5NGMyZDRmZWJkNmQ4
ZDBhZjMwN2IxMDk0NDJhNmUuLmQ1NTVlZTdjZjNmYzcyZWZiODJkZjlkYjdkYWQzNjdmOWFiN2Zm
YmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
Y29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEs
MTEgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1Mg
dW5zdXBwb3J0ZWRfc2NoZW1lCiBGQUlMIGRhdGFfdXJsIFRoZSBvcGVyYXRpb24gaXMgaW5zZWN1
cmUuCi1USU1FT1VUIGFib3V0X2JsYW5rIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIGV4YW1wbGVf
aW52YWxpZCBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBwb3J0XzgxIFRlc3QgdGltZWQgb3V0Ci1U
SU1FT1VUIGh0dHBzX3BvcnRfODAgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgaHR0cHNfcG9ydF84
MDAwIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIGh0dHBfcG9zdF84MDEyIFRlc3QgdGltZWQgb3V0
Ci1USU1FT1VUIGphdmFzY3JpcHRfdXJsIFRlc3QgdGltZWQgb3V0CitQQVNTIGFib3V0X2JsYW5r
CitQQVNTIGV4YW1wbGVfaW52YWxpZAorUEFTUyBwb3J0XzgxCitQQVNTIGh0dHBzX3BvcnRfODAK
K1BBU1MgaHR0cHNfcG9ydF84MDAwCitQQVNTIGh0dHBfcG9zdF84MDEyCitQQVNTIGphdmFzY3Jp
cHRfdXJsCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3Jl
ZGlyZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3Jl
ZGlyZWN0LWV4cGVjdGVkLnR4dAppbmRleCBmMTc0MWY5ZDhiZjA3MDMyNzBkMmUzNzYyZGJjYmUy
NmMwYjkwMDU5Li4zYjBkZmIzNWU1MWNkMWE4NTQ1NTMwMTljMGU0MDNkYmUyZjFkMzNmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtZXhw
ZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFdvcmtlckxvY2F0aW9uIHdpdGggcmVk
aXJlY3RzOiBjbGFzc2ljIGRlZGljYXRlZCB3b3JrZXJzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNj
b3BlL2xvY2F0aW9uL3Bvc3QtbG9jYXRpb24tbWVtYmVycy5qcz9hIiBidXQgZ290ICJodHRwOi8v
bG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0
aW9uL2hlbHBlci1yZWRpcmVjdC5weT9mYWlsIgorUEFTUyBXb3JrZXJMb2NhdGlvbiB3aXRoIHJl
ZGlyZWN0czogY2xhc3NpYyBkZWRpY2F0ZWQgd29ya2VycwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9X
b3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVy
ZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtbW9kdWxlLWV4cGVjdGVk
LnR4dAppbmRleCBkYzJlMmUyMDdkYjAwMWVlNzBlNzMzMDdkMjdiYjMzNTcyMGZkNTU5Li5iM2Jm
ODFlZTg2ODFiOWRjMDgwZjU4MDI3MWU4YjhmMzkwOTY1NDk1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9X
b3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9p
bnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBl
Y3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgV29ya2VyTG9jYXRpb24gd2l0aCByZWRp
cmVjdHM6IG1vZHVsZSBkZWRpY2F0ZWQgd29ya2VycyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
aHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29w
ZS9sb2NhdGlvbi9wb3N0LWxvY2F0aW9uLW1lbWJlcnMuanM/YSIgYnV0IGdvdCAiaHR0cDovL2xv
Y2FsaG9zdDo4ODAwL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlv
bi9oZWxwZXItcmVkaXJlY3QucHk/ZmFpbCIKK1BBU1MgV29ya2VyTG9jYXRpb24gd2l0aCByZWRp
cmVjdHM6IG1vZHVsZSBkZWRpY2F0ZWQgd29ya2VycwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVk
LXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dAppbmRleCAyMGFjMTdkNTYz
YzRiM2E0NjFmMGNhYWZiZWFlZWJkNzEzZjk3MDgxLi5kY2NlZGNjZDM2OGUxZmYxN2IxZGQxMzZl
NDUzZmVjNGZlMTBiYzgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1i
bG9iLXVybC5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0
LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQKQEAgLTEsMTggKzEsOSBAQAotQ09OU09MRSBNRVNT
QUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2Fs
aG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvc3RhdGljLWltcG9ydC13b3JrZXIu
anMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBN
RVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xv
Y2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvbmVzdGVkLXN0YXRpYy1pbXBv
cnQtd29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4K
LUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwg
Imh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1p
bXBvcnQtYW5kLXRoZW4tZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhw
ZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6
IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJz
L21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxs
IGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29y
a2Vycy9tb2R1bGVzL3Jlc291cmNlcy9uZXN0ZWQtZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzIi4g
aW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FH
RTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhv
c3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1wb3J0LWFuZC10aGVu
LXN0YXRpYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9u
ZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3Ry
aW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3Vy
Y2VzL2V2YWwtZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBl
eGFjdGx5IG9uZSBhcmd1bWVudC4KIAotSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBT
eW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4
ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtYW5kLXRoZW4tc3Rh
dGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFy
Z3VtZW50LgotCi1GQUlMIFN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVy
YWwgXCJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9zdGF0
aWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFy
Z3VtZW50LiIKLUZBSUwgTmVzdGVkIHN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5n
IGxpdGVyYWwgXCJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNl
cy9uZXN0ZWQtc3RhdGljLWltcG9ydC13b3JrZXIuanNcIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBl
eGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIFN0YXRpYyBpbXBvcnQgYW5kIHRoZW4gZHluYW1p
YyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAi
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgXCJodHRwOi8vbG9jYWxob3N0
Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9zdGF0aWMtaW1wb3J0LWFuZC10aGVuLWR5
bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25l
IGFyZ3VtZW50LiIKLUZBSUwgRHluYW1pYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxp
dGVyYWwgXCJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9k
eW5hbWljLWltcG9ydC13b3JrZXIuanNcIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9u
ZSBhcmd1bWVudC4iCi1GQUlMIE5lc3RlZCBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBz
dHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL25lc3RlZC1keW5hbWljLWltcG9ydC13b3JrZXIuanNcIi4gaW1wb3J0IGNhbGwgZXhw
ZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVu
IHN0YXRpYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgXCJodHRwOi8vbG9j
YWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWltcG9ydC1hbmQt
dGhlbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0
bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgZXZhbChpbXBvcnQoKSkuIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3Ry
aW5nIGxpdGVyYWwgXCJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291
cmNlcy9ldmFsLWR5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3Rz
IGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKK1BBU1MgU3RhdGljIGltcG9ydC4KK1BBU1MgTmVzdGVk
IHN0YXRpYyBpbXBvcnQuCitQQVNTIFN0YXRpYyBpbXBvcnQgYW5kIHRoZW4gZHluYW1pYyBpbXBv
cnQuCitQQVNTIER5bmFtaWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuCitQ
QVNTIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBpbXBvcnQuCitQQVNTIGV2YWwoaW1w
b3J0KCkpLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1jc3AtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dApp
bmRleCAxZGE0NmI5MjZiZTA4OTZlZThmNzVhNzhkY2FlNGYyNjliMDUwOTJiLi4yMzljYzljZTE1
MzAxZjdlZWQ4M2Q1ZWIyMjMwYTlkZTI5NGVhMmVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC1jc3AtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LWNzcC1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsMjIgQEAKIENPTlNPTEUgTUVTU0FH
RTogVW5yZWNvZ25pemVkIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2ZSAnd29ya2Vy
LXNyYycuCiAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9j
YWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtb24tbG9hZC1zY3Jp
cHQuanMKIENPTlNPTEUgTUVTU0FHRTogVW5yZWNvZ25pemVkIENvbnRlbnQtU2VjdXJpdHktUG9s
aWN5IGRpcmVjdGl2ZSAnd29ya2VyLXNyYycuCiAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFs
IFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNl
cy9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVS
TCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9l
eHBvcnQtb24tbG9hZC1zY3JpcHQuanMKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBo
dHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBv
cnQtb24tbG9hZC1zY3JpcHQuanMKIENPTlNPTEUgTUVTU0FHRTogVW5yZWNvZ25pemVkIENvbnRl
bnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2ZSAnd29ya2VyLXNyYycuCiAKK0Jsb2NrZWQgYWNj
ZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9t
b2R1bGVzL3Jlc291cmNlcy9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMKIENPTlNPTEUgTUVTU0FH
RTogVW5yZWNvZ25pemVkIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2ZSAnd29ya2Vy
LXNyYycuCiAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9j
YWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtb24tbG9hZC1zY3Jp
cHQuanMKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxo
b3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtb24tbG9hZC1zY3JpcHQu
anMKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0
Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMK
IENPTlNPTEUgTUVTU0FHRTogVW5yZWNvZ25pemVkIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGRp
cmVjdGl2ZSAnd29ya2VyLXNyYycuCiAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBo
dHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBv
cnQtb24tbG9hZC1zY3JpcHQuanMKIAogUEFTUyB3b3JrZXItc3JjICdzZWxmJyBkaXJlY3RpdmUg
c2hvdWxkIGRpc2FsbG93IGNyb3NzIG9yaWdpbiBzdGF0aWMgaW1wb3J0LgogRkFJTCB3b3JrZXIt
c3JjICogZGlyZWN0aXZlIHNob3VsZCBhbGxvdyBjcm9zcyBvcmlnaW4gc3RhdGljIGltcG9ydC4g
YXNzZXJ0X2FycmF5X2VxdWFsczogZXhwZWN0ZWQgcHJvcGVydHkgMCB0byBiZSAiZXhwb3J0LW9u
LWxvYWQtc2NyaXB0LmpzIiBidXQgZ290ICJFUlJPUiIgKGV4cGVjdGVkIGFycmF5IFsiZXhwb3J0
LW9uLWxvYWQtc2NyaXB0LmpzIl0gZ290IFsiRVJST1IiXSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1pbXBvcnQtZmFpbHVyZS1leHBlY3RlZC50eHQKaW5kZXggOTVjNmQxNWRmNDRlMThhMzVk
ZmViMGZhMzljOGQzODQ0MjBjMmMxMy4uZTk1NTc4ZTcxYjFjNTBhNGUwNDcxYjAzNzE1NGIzODZi
MzdhZWQ3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtZmFpbHVyZS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtZmFpbHVyZS1leHBl
Y3RlZC50eHQKQEAgLTEsOSArMSw5IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBV
bmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICcuL25vbi1leGlzdGVudC1zY3JpcHQuanMnLiBpbXBv
cnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgorQ09OU09MRSBNRVNTQUdFOiBJ
bXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4KIAotRkFJTCBpbXBvcnRTY3JpcHRzKCkg
b24gbW9kdWxlIHdvcmtlciBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiVHlwZUVycm9yIiBidXQgZ290ICJMT0FERUQiCitQQVNTIGltcG9ydFNjcmlw
dHMoKSBvbiBtb2R1bGUgd29ya2VyIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdv
cmtlciBjb25zdHJ1Y3Rpb24gZm9yIG5vbi1leGlzdGVudCBzY3JpcHQgc2hvdWxkIGRpc3BhdGNo
IGFuIEVycm9yRXZlbnQuCiBQQVNTIFN0YXRpYyBpbXBvcnQgZm9yIG5vbi1leGlzdGVudCBzY3Jp
cHQgc2hvdWxkIGRpc3BhdGNoIGFuIEVycm9yRXZlbnQuCi1GQUlMIER5bmFtaWMgaW1wb3J0IGZv
ciBub24tZXhpc3RlbnQgc2NyaXB0IHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJUeXBlRXJyb3IiIGJ1dCBnb3QgIkVycm9yIgorUEFTUyBEeW5hbWlj
IGltcG9ydCBmb3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9u
LgogUEFTUyBXb3JrZXIgY29uc3RydWN0aW9uIGZvciBhbiBpbnZhbGlkIFVSTCBzaG91bGQgdGhy
b3cgYW4gZXhjZXB0aW9uLgogUEFTUyBXb3JrZXIgY29uc3RydWN0aW9uIGZvciBhIGZpbGUgVVJM
IHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13
b3JrZXItaW1wb3J0LW1ldGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBv
cnQtbWV0YS1leHBlY3RlZC50eHQKaW5kZXggZDU4MDYyMDQxYzNlNjk1MTViODE1ZTAyZDdjMzg2
ODRkNzdjNzZiNy4uNzcyOTFiYWExYTQxODRiZWJlN2FkN2I1ZDlmMTE5YzcxYTc4ZGU0ZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21v
ZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQKQEAgLTEsOCAr
MSw1IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5
IHZhbGlkIGluc2lkZSBtb2R1bGVzLgogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9
IFN5bnRheEVycm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5IHZhbGlkIGluc2lkZSBtb2R1bGVzLgot
Ci1GQUlMIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSB0b3AtbGV2ZWwgbW9kdWxlIHNjcmlw
dC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhF
cnJvcjogaW1wb3J0Lm1ldGEgaXMgb25seSB2YWxpZCBpbnNpZGUgbW9kdWxlcy4iCi1GQUlMIFRl
c3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2NyaXB0LiBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwg
b24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQgd2l0aCBhIGZyYWdtZW50LiBhc3NlcnRfdHJ1
ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgVGVzdCBpbXBvcnQubWV0YS51cmwgb24g
dGhlIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0LgorUEFTUyBUZXN0IGltcG9ydC5tZXRhLnVybCBv
biB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdC4KK1BBU1MgVGVzdCBpbXBvcnQubWV0YS51cmwg
b24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQgd2l0aCBhIGZyYWdtZW50LgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
bW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC1tZXRhLmh0bWwKaW5kZXggY2ZmOGU5MTQ4OGU4MjM5YWJlMjEzNjE5ZDEy
ZDVhNjAzMDcyZmJlYS4uZWRlMjY5MmUxYzYzNDFiZWZmYzkwMTBjNDFiOGY0Y2ZlNDM4MzI5YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRtbApAQCAtNTMsNyArNTMsNyBAQAogICAg
ICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJy4vJyArIHNjcmlwdF91cmwgKyAnIzEnKTsKICAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gd29ya2VyLm9ubWVzc2FnZSA9IHJlc29s
dmUpOwogICAgICAgfSkKLSAgICAgIC50aGVuKG1zZ19ldmVudCA9PiBhc3NlcnRfdHJ1ZShtc2df
ZXZlbnQuZGF0YS5lbmRzV2l0aChzY3JpcHRfdXJsKSkpOworICAgICAgLnRoZW4obXNnX2V2ZW50
ID0+IGFzc2VydF90cnVlKG1zZ19ldmVudC5kYXRhLmVuZHNXaXRoKHNjcmlwdF91cmwgKyAnIzEn
KSkpOwogfSwgJ1Rlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2Ny
aXB0IHdpdGggYSBmcmFnbWVudC4nKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQt
d29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQKaW5kZXggNmRjNDJjMWNmZDMzNDhh
ZmRkMWRmZDNiMTBhNTA0NzA1NTMwMTk2YS4uNzAxNjU4ZGE2ODA0Y2FlYjBkZWMyNTQ4NzAwOWVl
Njc2Y2VlYTlkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJy
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVy
LWV4cGVjdGVkLnR4dApAQCAtMSwxOSArMSwyMyBAQAotCi1IYXJuZXNzIEVycm9yIChUSU1FT1VU
KSwgbWVzc2FnZSA9IG51bGwKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczov
L3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVm
ZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8v
d3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZl
cnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93
d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVy
cmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3
dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJy
ZXItY2hlY2tlci5weQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3
MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJl
ci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cx
LmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVy
LWNoZWNrZXIucHkKIAogUEFTUyBTYW1lLW9yaWdpbiB0b3AtbGV2ZWwgbW9kdWxlIHNjcmlwdCBs
b2FkaW5nIHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kKIFBBU1MgU2FtZS1vcmln
aW4gdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQgbG9hZGluZyB3aXRoICJvcmlnaW4iIHJlZmVycmVy
IHBvbGljeQogUEFTUyBTYW1lLW9yaWdpbiB0b3AtbGV2ZWwgbW9kdWxlIHNjcmlwdCBsb2FkaW5n
IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kKLUZBSUwgU2FtZS1vcmlnaW4gc3Rh
dGljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5
cGUgZXJyb3IiCi1GQUlMIFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAib3JpZ2luIiBy
ZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLUZBSUwgU2FtZS1vcmlnaW4gc3Rh
dGljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5
cGUgZXJyb3IiCitQQVNTIFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAibm8tcmVmZXJy
ZXIiIHJlZmVycmVyIHBvbGljeS4KK1BBU1MgU2FtZS1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRo
ICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4KK1BBU1MgU2FtZS1vcmlnaW4gc3RhdGljIGltcG9y
dCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgogRkFJTCBDcm9zcy1vcmlnaW4g
c3RhdGljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IFR5cGUgZXJyb3IiCiBGQUlMIENyb3NzLW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm9yaWdp
biIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCiBGQUlMIENyb3NzLW9yaWdp
biBzdGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogVHlwZSBlcnJvciIKLVRJTUVPVVQgU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAi
bm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeS4gVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBTYW1l
LW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4KLU5P
VFJVTiBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJy
ZXIgcG9saWN5LgotTk9UUlVOIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJuby1y
ZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LgotTk9UUlVOIENyb3NzLW9yaWdpbiBkeW5hbWljIGlt
cG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4KLU5PVFJVTiBDcm9zcy1vcmlnaW4g
ZHluYW1pYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4KK1BBU1Mg
U2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBv
bGljeS4KK1BBU1MgU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZl
cnJlciBwb2xpY3kuCitQQVNTIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggInNhbWUt
b3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCitGQUlMIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9y
dCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3Ii
CitGQUlMIENyb3NzLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVy
IHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgorRkFJTCBDcm9zcy1vcmlnaW4gZHluYW1pYyBp
bXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVy
cm9yIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dAppbmRl
eCBhMjNhNTU3NWRiNDI3NDI3Zjg1YmQ2YjYzNTRkZTg4MzgzMWZlMmI0Li5kY2NlZGNjZDM2OGUx
ZmYxN2IxZGQxMzZlNDUzZmVjNGZlMTBiYzgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1w
b3J0LmFueS1leHBlY3RlZC50eHQKQEAgLTEsMTQgKzEsOSBAQAotQ09OU09MRSBNRVNTQUdFOiBT
eW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhh
Y3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4K
LUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBv
cnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgogCi1IYXJuZXNzIEVycm9yIChG
QUlMKSwgbWVzc2FnZSA9IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0
IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLQotRkFJTCBTdGF0aWMgaW1wb3J0
LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9u
ZSBhcmd1bWVudC4iCi1GQUlMIE5lc3RlZCBzdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRv
a2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlM
IFN0YXRpYyBpbXBvcnQgYW5kIHRoZW4gZHluYW1pYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9r
ZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwg
RHluYW1pYyBpbXBvcnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8g
ZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4v
ZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBOZXN0ZWQg
ZHluYW1pYyBpbXBvcnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8g
ZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4v
ZXhwb3J0LW9uLWR5bmFtaWMtaW1wb3J0LXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZB
SUwgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2Vx
dWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxk
IG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tc3RhdGljLWltcG9ydC1zY3JpcHQu
anMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlMIGV2YWwoaW1wb3J0KCkpLiBhc3NlcnRfYXJyYXlf
ZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291
bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwg
ZXhwZWN0ZWQgYXJyYXkKK1BBU1MgU3RhdGljIGltcG9ydC4KK1BBU1MgTmVzdGVkIHN0YXRpYyBp
bXBvcnQuCitQQVNTIFN0YXRpYyBpbXBvcnQgYW5kIHRoZW4gZHluYW1pYyBpbXBvcnQuCitQQVNT
IER5bmFtaWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFt
aWMgaW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBpbXBvcnQuCitQQVNTIGV2YWwoaW1wb3J0KCkpLgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
bW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQKaW5kZXgg
ZGEwZTRlYjY3NThkMTRhMzdhMzk4ZDBiNmZjNzFhZDM4NzZiZDI2Yi4uMWZjMGM2NmZkZjcyNGMy
YWEzYjkxMDY5ODBiZmJlN2U5ODhmOTc3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtl
ci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0
aW9ucy10eXBlLWV4cGVjdGVkLnR4dApAQCAtMiwxMSArMiw2IEBACiBQQVNTIFRlc3Qgd29ya2Vy
IGNvbnN0cnVjdGlvbiB3aXRoIHRoZSBkZWZhdWx0IHdvcmtlciB0eXBlLgogUEFTUyBUZXN0IHdv
cmtlciBjb25zdHJ1Y3Rpb24gd2l0aCB0aGUgImNsYXNzaWMiIHdvcmtlciB0eXBlLgogUEFTUyBU
ZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCB0aGUgIm1vZHVsZSIgd29ya2VyIHR5cGUuCi1G
QUlMIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIGVtcHR5IHdvcmtlciB0eXBlLiBh
c3NlcnRfdGhyb3dzX2pzOiBXb3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gZW1wdHkgdHlwZSBz
aG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIGZ1bmN0aW9uICIoKSA9PiB7Ci0gICAgICAgIG5ldyBX
b3JrZXIoJ3Jlc291cmNlcy9wb3N0LW1lc3NhZ2Utb24tbG9hZC13b3JrZXIuanMnLCB7IHR5cGU6
ICcnIH0pOwotICAgICAgfSIgZGlkIG5vdCB0aHJvdwotRkFJTCBUZXN0IHdvcmtlciBjb25zdHJ1
Y3Rpb24gd2l0aCBhbiB1bmtub3duIHdvcmtlciB0eXBlLiBhc3NlcnRfdGhyb3dzX2pzOiBXb3Jr
ZXIgY29uc3RydWN0aW9uIHdpdGggYW4gdW5rbm93biB0eXBlIHNob3VsZCB0aHJvdyBhbiBleGNl
cHRpb24gZnVuY3Rpb24gIigpID0+IHsKLSAgICAgICAgbmV3IFdvcmtlcigncmVzb3VyY2VzL3Bv
c3QtbWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcycsCi0gICAgICAgICAgICAgICAgICAgeyB0eXBl
OiAndW5rbm93bicgfSk7Ci0gICAgICB9IiBkaWQgbm90IHRocm93CitQQVNTIFRlc3Qgd29ya2Vy
IGNvbnN0cnVjdGlvbiB3aXRoIGFuIGVtcHR5IHdvcmtlciB0eXBlLgorUEFTUyBUZXN0IHdvcmtl
ciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1bmtub3duIHdvcmtlciB0eXBlLgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9k
dWxlcy9kZWRpY2F0ZWQtd29ya2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVs
ZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dAppbmRl
eCBlOGViNTQwYmQzMzkyNDAwYThkYmZkOTM4NjQ4YTY0OTIzOWMwZDllLi5kMWE1MGY3ZWEzY2Q2
ZGMyOThlZjc1NDE0Nzc2MmM2OWM1N2Q3M2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13
b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwxNCBAQAot
Q09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9y
dCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCitDT05TT0xFIE1FU1NBR0U6IFN5
bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICc7JworQ09OU09MRSBNRVNTQUdFOiBTeW50YXhF
cnJvcjogVW5leHBlY3RlZCB0b2tlbiAnOycKIAotSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3Nh
Z2UgPSBFcnJvcjogYXNzZXJ0X2ltcGxlbWVudHM6IFN0YXRpYyBpbXBvcnQgbXVzdCBiZSBzdXBw
b3J0ZWQgb24gbW9kdWxlIGRlZGljYXRlZCB3b3JrZXIgdG8gcnVuIHRoaXMgdGVzdC4gdW5kZWZp
bmVkCi0KLU5PVFJVTiBNb2R1bGUgd29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igc2NyaXB0IHdpdGgg
c3ludGF4IGVycm9yIHNob3VsZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4KLU5PVFJV
TiBTdGF0aWMgaW1wb3J0IG9uIG1vZHVsZSB3b3JrZXIgZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBl
cnJvciBzaG91bGQgZGlzcGF0Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuCitGQUlMIE1vZHVsZSB3
b3JrZXIgY29uc3RydWN0aW9uIGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJyb3Igc2hvdWxkIGRp
c3BhdGNoIGFuIGV2ZW50IG5hbWVkIGVycm9yLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmdW5j
dGlvbiAiZnVuY3Rpb24gRXZlbnQoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIgYnV0IGdvdCBm
dW5jdGlvbiAiZnVuY3Rpb24gRXJyb3JFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9Igor
RkFJTCBTdGF0aWMgaW1wb3J0IG9uIG1vZHVsZSB3b3JrZXIgZm9yIHNjcmlwdCB3aXRoIHN5bnRh
eCBlcnJvciBzaG91bGQgZGlzcGF0Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIGZ1bmN0aW9uICJmdW5jdGlvbiBFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNv
ZGVdCit9IiBidXQgZ290IGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJvckV2ZW50KCkgeworICAgIFtu
YXRpdmUgY29kZV0KK30iCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9uYW1lLXBy
b3BlcnR5LWV4cGVjdGVkLnR4dAppbmRleCA2Mzk4NDcxMjE0NTlhN2FiMzdiOWYwOWE2OGJhNjRl
YThhOWVkNTdjLi5lOTQ2OTQ3YjE0YWVmM2U1Mjk5YTBhYmEzYWU0YjFjZjlmY2Q5NTcwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbmFtZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0
CkBAIC0xLDcgKzEsOCBAQAogQ09OU09MRSBNRVNTQUdFOiBVbmhhbmRsZWQgUHJvbWlzZSBSZWpl
Y3Rpb246IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIK
IAotRkFJTCBUZXN0IHRoZSBuYW1lIHByb3BlcnR5IG9mIHNoYXJlZCBhbmQgZGVkaWNhdGVkIHdv
cmtlcnMgdmlhIHRoZSBuYW1lIGNvbnN0cnVjdG9yIG9wdGlvbiBDYW4ndCBmaW5kIHZhcmlhYmxl
OiBTaGFyZWRXb3JrZXIKLVBBU1MgRGVjbGFyaW5nIG5hbWUgYXMgYW4gYWNjaWRlbnRhbCBnbG9i
YWwgbXVzdCBub3QgY2F1c2UgYSBoYXJuZXNzIGVycm9yIGZvciBEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZQorSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBVbmhhbmRsZWQgcmVqZWN0
aW9uOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBTaGFyZWRXb3JrZXIKKwogUEFTUyBuYW1lIHByb3Bl
cnR5IHZhbHVlIGZvciBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZQogUEFTUyBuYW1lIHByb3Bl
cnR5IGlzIHJlcGxhY2VhYmxlIGZvciBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZQorUEFTUyBE
ZWNsYXJpbmcgbmFtZSBhcyBhbiBhY2NpZGVudGFsIGdsb2JhbCBtdXN0IG5vdCBjYXVzZSBhIGhh
cm5lc3MgZXJyb3IgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVk
aW8td29ya2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3Jl
ZGVudGlhbHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGYwNjkxYWEwOWNjNDljZGY3ZjJhOTQz
NzRjNmU2MjIyMGY5M2I4ZTIuLmE1NzBkOGQyOTJmYTg1NjIxMmIwNTQ3ODgyMGYxMzBmODFkOWJi
ZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0
cy9hdWRpby13b3JrbGV0LWNyZWRlbnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwxMSAr
MSwxMSBAQAogQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBp
cyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCiAKLUZBSUwgSW1w
b3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggdGhlIGRlZmF1bHQgV29ya2xldE9wdGlv
bnMgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBt
b2R1bGUsIGVycm9yOiBSZXNwb25zZSBpcyBub3QgMnh4IgorRkFJTCBJbXBvcnRpbmcgYSBzYW1l
LW9yaWdpbiBzY3JpcHQgd2l0aCB0aGUgZGVmYXVsdCBXb3JrbGV0T3B0aW9ucyBzaG91bGQgc2Vu
ZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWls
ZWQuIgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIHRoZSBkZWZh
dWx0IFdvcmtsZXRPcHRpb25zIHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVudGlhbHMKLUZBSUwg
SW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9b21pdCBzaG91
bGQgbm90IHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBtb2R1
bGUsIGVycm9yOiBSZXNwb25zZSBpcyBub3QgMnh4IgorRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9y
aWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1vbWl0IHNob3VsZCBub3Qgc2VuZCB0aGUgY3Jl
ZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiQWJvcnRFcnJvcjogSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIgogUEFT
UyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPW9taXQg
c2hvdWxkIG5vdCBzZW5kIHRoZSBjcmVkZW50aWFscwotRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9y
aWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1zYW1lLW9yaWdpbiBzaG91bGQgc2VuZCB0aGUg
Y3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFJlc3Bv
bnNlIGlzIG5vdCAyeHgiCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRo
IGNyZWRlbnRpYWxzPXNhbWUtb3JpZ2luIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVy
cm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQQVNTIEltcG9ydGluZyBh
IHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9c2FtZS1vcmlnaW4gc2hvdWxk
IG5vdCBzZW5kIHRoZSBjcmVkZW50aWFscwotRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBz
Y3JpcHQgd2l0aCBjcmVkZW50aWFscz1pbmNsdWRlIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFs
cyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJB
Ym9ydEVycm9yOiBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogUmVzcG9uc2UgaXMgbm90
IDJ4eCIKLUZBSUwgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50
aWFscz1pbmNsdWRlIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBGYWlsZWQg
dG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMg
bm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLiIKK0ZBSUwgSW1wb3J0
aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9aW5jbHVkZSBzaG91bGQg
c2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBm
YWlsZWQuIgorRkFJTCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRl
bnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDog
VW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IENyb3Nz
LW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJp
bmcgcG9saWN5LiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNzcC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRz
L2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBiZjMzNWNmMzA1NWUw
NjViMzg5ODliNDFhYTFlMjM2ZmViNGFjMjlkLi4yNzViMzQzN2ZhZDk3NTNhNmVjZTI0MjAwZWFi
ZjI1N2ZmZDYyNzJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmts
ZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0MCArMSw1MiBA
QAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6
OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhl
YWRlci5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2Nh
bGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1j
b3JzLWhlYWRlci5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3
MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQt
d2l0aC1jb3JzLWhlYWRlci5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBz
Oi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1z
Y3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29y
a2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1w
dHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcwogQ09OU09MRSBNRVNTQUdFOiBV
bnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3Jj
Jy4KIAogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xp
Y3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHkt
d29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJl
Y29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4K
IAogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kg
ZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQg
Q29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tl
ZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3Jr
bGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcwog
Q09OU09MRSBNRVNTQUdFOiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvYWRkbW9kdWxlLXdpbmRvdy5odG1sIHdhcyBub3QgYWxs
b3dlZCB0byBkaXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vbG9jYWxob3N0Ojg4
MDAvd29ya2xldHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFk
ZXIuanMuCiAKIENPTlNPTEUgTUVTU0FHRTogW2Jsb2NrZWRdIFRoZSBwYWdlIGF0IGh0dHBzOi8v
bG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2FkZG1vZHVsZS13aW5kb3cuaHRtbCB3
YXMgbm90IGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDovL2xv
Y2FsaG9zdDo4ODAwL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRo
LWNvcnMtaGVhZGVyLmpzLgogCitDT05TT0xFIE1FU1NBR0U6IFtibG9ja2VkXSBUaGUgcGFnZSBh
dCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9hZGRtb2R1bGUtd2lu
ZG93Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9t
IGh0dHA6Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1z
Y3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcy4KKworQ09OU09MRSBNRVNTQUdFOiBbYmxvY2tlZF0g
VGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvYWRk
bW9kdWxlLXdpbmRvdy5odG1sIHdhcyBub3QgYWxsb3dlZCB0byBkaXNwbGF5IGluc2VjdXJlIGNv
bnRlbnQgZnJvbSBodHRwOi8vbG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2VtcHR5
LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMuCisKIAogRkFJTCBBIHJlbW90ZS1v
cmlnaW4gd29ya2xldCBzaG91bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicg
ZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJF
U09MVkVEIgotRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9y
aWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRp
cmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNP
TFZFRCIKK1BBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmln
aW4gc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJ5IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBkaXJl
Y3RpdmUuCiBGQUlMIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1v
cmlnaW4gc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJ5IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBk
aXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVT
T0xWRUQiCiBGQUlMIEEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHdvcmtsZXQgc2hvdWxkIGJl
IGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNPTFZFRCIKLUZBSUwgQSBzYW1lLW9y
aWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQg
c2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNPTFZFRCIKK1BBU1Mg
QSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3Rl
ZCBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVj
dGl2ZS4KIFBBU1MgQSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2hvdWxkIG5vdCBiZSBibG9ja2Vk
IGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBh
bGxvd3MgaXQuCi1QQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUt
b3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNy
YyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1l
LW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBu
b3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5n
IHRoZSBvcmlnaW4gYWxsb3dzIGl0LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQi
IGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBpbXBvcnRp
bmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0
aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4K
IFBBU1MgQSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgbm90IGJlIGJs
b2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3Jp
Z2luIGFsbG93cyBpdC4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1
c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3Mg
aXQuCitGQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2lu
LXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3Jp
cHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LiBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBIHJl
bW90ZS1vcmlnaW4gd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2Ny
aXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuCi1QQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xl
dCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQg
YmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuCitGQUlMIEEgc2Ft
ZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQg
bm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3Mg
aXQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQi
CiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4g
c2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGly
ZWN0aXZlIGFsbG93cyBpdC4KIFBBU1MgQSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgd29ya2xl
dCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2
ZSBhbGxvd3MgaXQuCi1QQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1v
dGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNl
IHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdp
biB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hv
dWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxs
b3dzIGl0LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIlJFSkVD
VEVEIgogUEFTUyBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQg
YnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2Ny
aXB0LXNyYyBkaXJlY3RpdmUuCi1QQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcg
YSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtl
ci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJl
Y3RpdmUuCitGQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3Jp
Z2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0
aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEg
cmVtb3RlLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNo
b3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3
b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KIFBBU1MgQSByZW1vdGUtb3Jp
Z2luLXJlZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtl
ci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJl
Y3RpdmUuCi1QQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3Jp
Z2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2Vy
LXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVj
dGl2ZS4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmln
aW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXIt
c3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdvcmtsZXRzIG9iZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0
aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIlJFSkVDVEVE
IgogUEFTUyBBbiBpbnNlY3VyZS1vcmlnaW4gd29ya2xldCBzaG91bGQgYmUgYmxvY2tlZCBiZWNh
dXNlIG9mIG1peGVkIGNvbnRlbnRzLgogUEFTUyBBbiBpbnNlY3VyZS1vcmlnaW4tcmVkaXJlY3Rl
ZCB3b3JrbGV0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuCi1G
QUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYW4gaW5zZWN1cmUtb3JpZ2luIHNj
cmlwdCBzaG91bGQgYmUgYmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLiBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgotRkFJTCBBIHNh
bWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGFuIGluc2VjdXJlLW9yaWdpbi1yZWRpcmVjdGVk
IHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgorUEFTUyBB
IHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGFuIGluc2VjdXJlLW9yaWdpbiBzY3JpcHQg
c2hvdWxkIGJlIGJsb2NrZWQgYmVjYXVzZSBvZiBtaXhlZCBjb250ZW50cy4KK1BBU1MgQSBzYW1l
LW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhbiBpbnNlY3VyZS1vcmlnaW4tcmVkaXJlY3RlZCBz
Y3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYmVjYXVzZSBvZiBtaXhlZCBjb250ZW50cy4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
bGV0cy9hdWRpby13b3JrbGV0LWltcG9ydC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQt
aW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBmZTg5NjVhZWY2Y2FkYTIyMTllZjhlMzA4
ODhiYTkxZTI0MDE3YWMwLi42NzY0N2Q0Njg3YjlkM2NmYzg2ZTBiMmM4ZjU2OGUyMGY1YmVjMzk0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlv
LXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMTYsNyArMTYsNyBAQCBQQVNT
IEltcG9ydGluZyBhIGNyb3NzIG9yaWdpbiByZXNvdXJjZSB3aXRoIHRoZSBBY2Nlc3MtQ29udHJv
bC1BbGxvdy1PcmlnaW4gaGVhZAogUEFTUyBJbXBvcnRpbmcgYSBjcm9zcyBvcmlnaW4gcmVzb3Vy
Y2Ugd2l0aG91dCB0aGUgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhlYWRlciBzaG91bGQg
cmVqZWN0IHRoZSBnaXZlbiBwcm9taXNlCiBQQVNTIEltcG9ydGluZyBhIGNyb3NzLW9yaWdpbi1y
ZWRpcmVjdGVkIHJlc291cmNlIHdpdGggdGhlIEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiBo
ZWFkZXIgc2hvdWxkIHJlc29sdmUgdGhlIGdpdmVuIHByb21pc2UKIFBBU1MgSW1wb3J0aW5nIGEg
Y3Jvc3Mtb3JpZ2luLXJlZGlyZWN0ZWQgcmVzb3VyY2Ugd2l0aG91dCB0aGUgQWNjZXNzLUNvbnRy
b2wtQWxsb3ctT3JpZ2luIGhlYWRlciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9taXNlCi1G
QUlMIEltcG9ydGluZyBhIHNjcmlwdCB0aGF0IGhhcyBhIHN5bnRheCBlcnJvciBzaG91bGQgcmVq
ZWN0IHRoZSBnaXZlbiBwcm9taXNlLiBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWpl
Y3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBJbXBvcnRpbmcg
YSBuZXN0ZWQgc2NyaXB0IHRoYXQgaGFzIGEgc3ludGF4IGVycm9yIHNob3VsZCByZWplY3QgdGhl
IGdpdmVuIHByb21pc2UuIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1
bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIEltcG9ydGluZyBhIHNjcmlw
dCB0aGF0IGltcG9ydHMgYW4gaW52YWxpZCBpZGVudGlmaWVyIHNob3VsZCByZWplY3QgdGhlIGdp
dmVuIHByb21pc2UuIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRl
ZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNTIEltcG9ydGluZyBhIHNjcmlwdCB0
aGF0IGhhcyBhIHN5bnRheCBlcnJvciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9taXNlLgor
UEFTUyBJbXBvcnRpbmcgYSBuZXN0ZWQgc2NyaXB0IHRoYXQgaGFzIGEgc3ludGF4IGVycm9yIHNo
b3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuCitQQVNTIEltcG9ydGluZyBhIHNjcmlwdCB0
aGF0IGltcG9ydHMgYW4gaW52YWxpZCBpZGVudGlmaWVyIHNob3VsZCByZWplY3QgdGhlIGdpdmVu
IHByb21pc2UuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1yZWZlcnJlci5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmts
ZXRzL2F1ZGlvLXdvcmtsZXQtcmVmZXJyZXIuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDI0ZDQ5
OWMxNDFjZWU2ZGM5YjJlYmUyNGJmYjRmZjRjMDNhMGE5NzMuLjM3YjIzOWE0MGU3Y2YwZDAyNWZj
MDQxNWJkZTM0YzY4Y2FlYjY1NWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1yZWZlcnJlci5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMSwyMCArMSwyNiBAQAorQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2Nh
bGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4u
CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5
NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9yZWZlcnJlci1jaGVja2VyLnB5P3JlZmVycmVyX3BvbGlj
eT1uby1yZWZlcnJlciZleHBlY3RlZF9yZWZlcnJlcj0KK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVy
bmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL3Jl
ZmVycmVyLWNoZWNrZXIucHk/cmVmZXJyZXJfcG9saWN5PW9yaWdpbiZleHBlY3RlZF9yZWZlcnJl
cj1odHRwczovL2xvY2FsaG9zdDo5NDQzLworQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cHM6
Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1P
cmlnaW4uCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2Fs
aG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9yZWZlcnJlci1jaGVja2VyLnB5P3JlZmVycmVy
X3BvbGljeT1zYW1lLW9yaWdpbiZleHBlY3RlZF9yZWZlcnJlcj0KK0NPTlNPTEUgTUVTU0FHRTog
T3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luLgogCiBQQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlw
dCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91
bGQgbm90IHNlbmQgcmVmZXJyZXIuCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5IHNo
b3VsZCBub3Qgc2VuZCByZWZlcnJlci4KLVBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2Ny
aXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQg
c2VuZCBvbmx5IGFuIG9yaWdpbiBhcyByZWZlcnJlci4KLVBBU1MgSW1wb3J0aW5nIGEgcmVtb3Rl
LW9yaWdpbiBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9s
aWN5IHNob3VsZCBzZW5kIG9ubHkgYW4gb3JpZ2luIGFzIHJlZmVycmVyLgotUEFTUyBJbXBvcnRp
bmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgInNhbWUtb3JpZ2lu
IiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCitGQUlMIEltcG9ydGluZyBh
IHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJl
ciBwb2xpY3kgc2hvdWxkIHNlbmQgb25seSBhbiBvcmlnaW4gYXMgcmVmZXJyZXIuIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNj
cmlwdCBmYWlsZWQuIgorRkFJTCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9t
IGEgcGFnZSB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgb25s
eSBhbiBvcmlnaW4gYXMgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZF
RCIgYnV0IGdvdCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1Pcmln
aW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgorRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdp
biBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xp
Y3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZF
RCIgYnV0IGdvdCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIgogUEFTUyBJbXBv
cnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAic2FtZS1v
cmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCiBQQVNTIElt
cG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBz
Y3JpcHQgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBz
ZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9t
IGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZl
cnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgorRkFJTCBJbXBvcnRpbmcgYSBy
ZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhh
dCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVy
cmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9y
aWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcg
cG9saWN5LiIKIFBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1v
dGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJuby1yZWZlcnJlciIgcmVmZXJyZXIg
cG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4KIFBBU1MgSW1wb3J0aW5nIGEgcmVtb3Rl
LW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBo
YXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVy
LgotUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHNhbWUtb3JpZ2lu
IHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQg
c2VuZCByZWZlcnJlci4KLVBBU1MgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJv
bSBhIHNhbWUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVy
IHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4KLVBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmln
aW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJv
cmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4KLVBBU1MgSW1wb3J0
aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBz
Y3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVy
cmVyLgotUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHNhbWUtb3Jp
Z2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNj
cmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3Jp
Z2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgorRkFJTCBJbXBv
cnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHNhbWUtb3JpZ2luIHdvcmtsZXQgc2Ny
aXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJl
ci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcg
YSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4g
c2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAib3JpZ2lu
IiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmll
ZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgorRkFJTCBJbXBvcnRp
bmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3Jp
cHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVy
LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkltcG9ydGluZyBh
IG1vZHVsZSBzY3JpcHQgZmFpbGVkLiIKK0ZBSUwgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBz
Y3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdp
biIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5p
ZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0
aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlw
dCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZl
cnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRp
bmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmln
aW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2Ft
ZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiQ3Jvc3Mtb3JpZ2luIHNjcmlw
dCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgog
UEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4g
d29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hv
dWxkIG5vdCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNj
cmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1v
cmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4KK0ZBSUwgSW1wb3J0
aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBz
Y3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQg
cmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiQ3Jv
c3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hh
cmluZyBwb2xpY3kuIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1yZWRpcmVjdGVkLXdvcmtlci1vcmlnaW4tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94
aHIvb3Blbi11cmwtcmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dAppbmRleCAx
ZTJkMzk5MmY2ZDVkZjMyMjA3YTZiMGY2MTlhNmQ3MTE4MTI0MDBkLi43YTdhOTE3ZWFhOThlOTJl
ZTAzZWMyOGExMWU3ODA4NGQyMzRiODg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1yZWRpcmVjdGVkLXdvcmtlci1v
cmlnaW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0ZWQtd29ya2VyLW9yaWdpbi1leHBlY3Rl
ZC50eHQKQEAgLTEsNiArMSw2IEBACiBCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0
cDovL3d3dzIubG9jYWxob3N0Ojg4MDAveGhyL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHk/
ZmlsdGVyX25hbWU9b3JpZ2luJmNvcnMKIAotRkFJTCBSZWZlcmVyIGhlYWRlciBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAiUmVmZXJlcjogaHR0cDovL2xvY2FsaG9zdDo4ODAwL3hoci9yZXNvdXJj
ZXMvd29ya2VyeGhyLW9yaWdpbi1yZWZlcnJlci5qc1xuIiBidXQgZ290ICJSZWZlcmVyOiBodHRw
Oi8vbG9jYWxob3N0Ojg4MDAveGhyL3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj13b3Jr
ZXJ4aHItb3JpZ2luLXJlZmVycmVyLmpzXG4iCitQQVNTIFJlZmVyZXIgaGVhZGVyCiBGQUlMIE9y
aWdpbiBoZWFkZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIk9yaWdpbjogaHR0cDovL2xvY2Fs
aG9zdDo4ODAwXG4iIGJ1dCBnb3QgIiIKIFBBU1MgUmVxdWVzdCBVUkwgdGVzdAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZhaWx1cmUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW93b3JrbGV0LWFkZE1vZHVs
ZS1mYWlsdXJlLWV4cGVjdGVkLnR4dAppbmRleCAwOGFmMTE0MzYwNTUxYmY1YTgwNzlhZjBhMzgx
NWM0ZTA4ZWJkMTQzLi5kZWYzM2FkODY5MWI2OTQzNmUwZTE4MWM1YmQwMDQ4MzU0ODM1MWJiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZh
aWx1cmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvd29ya2xl
dC1hZGRNb2R1bGUtZmFpbHVyZS1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFCiAKIAogUEFTUyBjb250ZXh0LmF1ZGlvV29ya2xldC5hZGRNb2R1bGUo
aW52YWxpZFVSTCk7IHJlamVjdGVkIHByb21pc2UgIHdpdGggU3ludGF4RXJyb3I6IE1vZHVsZSBV
UkwgaXMgaW52YWxpZC4KLVBBU1MgY29udGV4dC5hdWRpb1dvcmtsZXQuYWRkTW9kdWxlKCdkb2Vz
bm90RXhpc3QuanMnKTsgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBBYm9ydEVycm9yOiBGYWlsZWQg
dG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogVGhlIHJlcXVlc3RlZCBVUkwgd2FzIG5vdCBmb3VuZCBv
biB0aGlzIHNlcnZlci4uCitQQVNTIGNvbnRleHQuYXVkaW9Xb3JrbGV0LmFkZE1vZHVsZSgnZG9l
c25vdEV4aXN0LmpzJyk7IHJlamVjdGVkIHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogSW1wb3J0
aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby93
b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dvcmtsZXQt
Y3Jhc2gtZXhwZWN0ZWQudHh0CmluZGV4IDY1NGRkZjdmMTdlZmFiNThlNDJmYWJlMzg1MjU3OTY0
YWUyYzVkNDEuLjFhNDNlM2Y5N2NiMmYwNmI5ZjdjZDVmMmIxODIzMzgxMDUxM2VlZjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dvcmtsZXQtY3Jhc2gtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dvcmtsZXQtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0x
ICsxLDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiAndGV4dC9odG1sJyBpcyBub3Qg
YSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4KIFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9l
cyBub3QgY3Jhc2guCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420927</attachid>
            <date>2021-02-18 23:36:33 -0800</date>
            <delta_ts>2021-02-19 11:26:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210218233632.patch</filename>
            <type>text/plain</type>
            <size>250567</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MjJkM2U1NmU1OGNhNjNiMGYwZDYyZWIzMDg4Yjc3MTI3ZGZkNGYxLi5lMjI1MDJmZDZhYzM5NzAy
NWNiOGNjOGYwNTExZWU5YmJhNGU3OWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MyBAQAorMjAyMS0wMi0xOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGVycm9yIGluZm9ybWF0aW9uIHRvIGV4dHJh
Y3QgdGhpcyBpbiBXZWJDb3JlJ3MgbW9kdWxlIGxvYWRlci4KKyAgICAgICAgQ3VycmVudGx5LCB3
ZSBhcmUgdXNpbmcgUHJvbWlzZSBwaXBlbGluZSwgYW5kIHRoaXMgbWFrZXMgaXQgYSBiaXQgZGlm
ZmljdWx0IHRvIGV4dHJhY3QgZXJyb3IgaW5mb3JtYXRpb24uCisgICAgICAgIFRoaXMgZXJyb3Ig
aW5mb3JtYXRpb24gYXR0YWNoZWQgaW4gdGhpcyBwYXRjaCBhbGxvd3MgdXMgdG8gZXh0cmFjdCBT
eW50YXhFcnJvciBpbiBXZWJDb3JlLCBhbmQgdGhyb3dpbmcKKyAgICAgICAgSlMgU3ludGF4RXJy
b3IgaW5zdGVhZCBvZiBBYm9ydEVycm9yLgorCisgICAgICAgIFdlIGFyZSBwbGFubmluZyB0byB1
cGRhdGUgb3VyIG1vZHVsZSBwaXBpZWxpbmUgbm90IHVzaW5nIFByb21pc2VzIGluIHRoZSBmdXR1
cmUuIFRoZSBjdXJyZW50IGRlc2lnbiBkZXJpdmVkCisgICAgICAgIGZyb20gdGhlIG9yaWdpbmFs
IG1vZHVsZSBsb2FkZXIgcGlwZWxpbmUgd2hlcmUgdXNpbmcgUHJvbWlzZXMgaXMgY3JpdGljYWwu
IEJ1dCBub3csIHRoYXQgcHJvcG9zYWwgd2FzIGFiYW5kb25lZCwKKyAgICAgICAgc28gd2UgY2Fu
IGp1c3Qgc2ltcGxpZnkgdGhlIG1vZHVsZSBsb2FkZXIuCisKKyAgICAgICAgKiBydW50aW1lL0Fn
Z3JlZ2F0ZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0
ZUVycm9yKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3Jl
YXRlRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgorICAgICAgICAoSlND
OjpjcmVhdGVSYW5nZUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVmZXJlbmNlRXJyb3Ip
OgorICAgICAgICAoSlNDOjpjcmVhdGVTeW50YXhFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0
ZVR5cGVFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToKKyAgICAgICAgKEpT
Qzo6Y3JlYXRlR2V0dGVyVHlwZUVycm9yKToKKyAgICAgICAgKEpTQzo6dGhyb3dTeW50YXhFcnJv
cik6CisgICAgICAgICogcnVudGltZS9FcnJvci5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgICogcnVudGltZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJy
b3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6
OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VT
dHJpbmcpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5n
KToKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAg
ICAgICAqIHJ1bnRpbWUvRXJyb3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3Rh
bmNlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjplcnJvclR5cGUgY29u
c3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUv
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29u
c3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAgIChKU0M6Ok5hdGl2
ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y2FsbEltcGwpOgorICAgICAgICAqIHJ1bnRp
bWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0
aW9uSW50ZXJuYWw6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9q
cy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3Nl
bWJseUNvbXBpbGVFcnJvcjo6SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6CisgICAgICAgICog
d2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJB
c3NlbWJseUxpbmtFcnJvcjo6SlNXZWJBc3NlbWJseUxpbmtFcnJvcik6CisgICAgICAgICogd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvcjo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcik6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6CisKIDIwMjEtMDItMTYgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgb3BlcmF0aW9uTmV3QXJyYXlXaXRoU2l6ZSBzaG91bGQgY2FsbCB0cnlDcmVhdGUg
aW5zdGVhZCBvZiBjcmVhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MDIyZGJiYzViMTBhMWQ3NmYyYjRhOTI1
MjI2M2Q2ZWJmM2IwOTQ0Li4xYWM4MDE0Yzg4ZTg5YjliODVhZTRmZmU1MmQ3NDU0MTk3NTNhNTRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYyIEBACisyMDIxLTAyLTE4ICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBXb3JrZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ4NjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGltcGxlbWVudHMgSlMgbW9kdWxlcyBpbiBXb3JrZXJzIGFuZCBXb3JrbGV0cy4gV2UgYXJlIG5v
dCBzdXBwb3J0aW5nIG1vZHVsZXMgaW4gU2VydmljZVdvcmtlcnMnIGluaXRpYWxpemF0aW9uIHll
dC4KKyAgICAgICAgQnV0IHNlcnZpY2Utd29ya2VyIGNhbiBpbXBvcnQgbW9kdWxlcyB2aWEgSlMg
YGltcG9ydCgpYC4KKworICAgICAgICBUaGUgd29ya2VyIGNhbiBiZSBleGVjdXRlZCBhcyBhIG1v
ZHVsZSBpZiB3ZSBwYXNzLCBgdHlwZTogIm1vZHVsZSJgIHRvIHdvcmtlciBvcHRpb25zLiBXb3Jr
bGV0IGlzIGV4ZWN1dGVkIGFzIG1vZHVsZXMgYnkgZGVmYXVsdC4KKworICAgICAgICAxLiBJbiBX
b3JrZXIsIHdlIGZpcnN0IGZldGNoIHRoZSBpbml0aWFsIGNvZGUuIEFuZCB0aGVuLCBhbmFseXpl
IHRoZSBkZXBlbmRlbmNpZXMgYW5kIGxvYWQgc3Vic2VxdWVudCBtb2R1bGVzLgorICAgICAgICAg
ICBXZSBpdGVyYXRlIHJ1bi1sb29wIHRvIGxvYWQgYWxsIHRoZSBkZXBlbmRlbnQgbW9kdWxlcyBp
biB0aGUgbW9kdWxlIGxvYWRlci4gQXQgdGhhdCB0aW1lLCB3ZSBhbm5vdGF0ZSBydW4tbG9vcCB0
YXNrcyB3aXRoCisgICAgICAgICAgIHNwZWNpYWwgdGFza01vZGUgdG8gaXRlcmF0ZSB0YXNrcyB3
aXRoIHRoaXMgdGFza01vZGUuIFRoaXMgcHJldmVudHMgdXMgZnJvbSBkaXNjYXJkaW5nIGRpZmZl
cmVudCB0YXNrcyBpbiB0aGlzIHJ1bi1sb29wIGRyaXZpbmcKKyAgICAgICAgICAgcGhhc2UuIChl
LmcuIHBvc3RNZXNzYWdlIGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQgd2hpbGUg
bG9hZGluZyBtb2R1bGUgZ3JhcGgsIGluIHRoYXQgY2FzZSwgd2Ugc2hvdWxkIG5vdCBkaXNjYXJk
IHRoaXMKKyAgICAgICAgICAgdGFzay4pCisKKyAgICAgICAgMi4gSW4gV29ya2xldCwgd2UganVz
dCByZXF1ZXN0IG1vZHVsZSBsb2FkaW5nIHRvIFNjcmlwdE1vZHVsZUxvYWRlciwgYW5kIHJ1biBp
dCBhZnRlciBsb2FkaW5nIG1vZHVsZSBncmFwaC4gVGhpcyBpcyBPSyBzaW5jZSB3b3JrbGV0Cisg
ICAgICAgICAgIHRocmVhZCBpcyBhbHJlYWR5IHJ1bm5pbmcuIFNvIHdlIGNhbiBqdXN0IHJlcXVl
c3QgbW9kdWxlcyBhbmQgd29ya2xldCB0aHJlYWQgYXV0b21hdGljYWxseSBkcml2ZXMgbW9kdWxl
IGxvYWRpbmcgdmlhIHJ1bi1sb29wLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmg6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6Y3VycmVudEZyYW1lIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpzYW1w
bGVSYXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldEds
b2JhbFNjb3BlOjpjdXJyZW50VGltZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogU291cmNl
cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRl
cik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hl
ZCk6CisgICAgICAgICogYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmg6Cisg
ICAgICAgICogYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHA6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpyZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZURPTUV4Y2VwdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25I
YW5kbGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNjcmlwdE1vZHVsZUxvYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZSk6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRmV0Y2gpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckV2YWx1YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWF0ZUlt
cG9ydE1ldGFQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRj
aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxv
YWRlckV2YWx1YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFz
ZTo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMp
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9kb20vTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmguCisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVT
Y3JpcHRMb2FkZXI6OmNsZWFyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZVNjcmlw
dExvYWRlcjo6c2NyaXB0RmV0Y2hlcik6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVTY3JpcHRM
b2FkZXI6OnBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlU2NyaXB0TG9hZGVy
OjpNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL01vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmguCisgICAgICAgICogYmluZGluZ3MvanMv
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxv
YWRlcjo6U2NyaXB0TW9kdWxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVNb2R1
bGVTcGVjaWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNv
bHZlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjptb2R1bGVVUkwpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjppbXBvcnRNb2R1bGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMv
U2NyaXB0U291cmNlQ29kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZTo6
U2NyaXB0U291cmNlQ29kZSk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVTY3Jp
cHRMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXI6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXI6On5Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKToKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6cmVmZXJyZXJQb2xpY3kpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OnRhc2tNb2RlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUZldGNoUGFyYW1ldGVycy5oLgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNoZXIuaDogQWRkZWQuCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBkb20vRXhjZXB0aW9uQ29kZS5oOgorICAgICAgICAq
IGRvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMb2FkYWJs
ZU1vZHVsZVNjcmlwdDo6TG9hZGFibGVNb2R1bGVTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6
TG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Mb2Fk
YWJsZU1vZHVsZVNjcmlwdC5oOgorICAgICAgICAqIGRvbS9Nb2R1bGVGZXRjaFBhcmFtZXRlcnMu
aDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoUGFyYW1ldGVyczo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoUGFyYW1ldGVyczo6aXNUb3BMZXZlbE1vZHVsZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1bGVGZXRjaFBhcmFtZXRlcnM6Ok1vZHVsZUZl
dGNoUGFyYW1ldGVycyk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVsZVNjcmlwdCk6CisgICAgICAg
ICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFk
YWJsZUxvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAg
KiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpXb3JrZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyOjpu
b3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuaDoKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlci5pZGw6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2Nv
cGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwdHMp
OgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlckdsb2JhbFNjb3BlOjpjcmVkZW50aWFscyBjb25zdCk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94
eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNz
YWdpbmdQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGU6Oldv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZTo6bW9kdWxlTG9hZGVyKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNWYWx1ZVRvTW9kdWxl
S2V5KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6
OmV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldFNjcmlw
dENvbnRyb2xsZXI6OmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6
Oldvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsb2Fk
QW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5jaHJvbm91
c2x5KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjpyZXNwb25zZVNvdXJjZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OmlzUmVkaXJlY3RlZCBjb25zdCk6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyUGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclRocmVhZDo6ZXZhbHVhdGVTY3JpcHRJZk5lY2Vzc2FyeSk6CisgICAgICAgICogd29y
a2Vycy9Xb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclR5cGUuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySm9iOjpmZXRjaFNjcmlwdFdpdGhDb250ZXh0KToKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaDoKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQp
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaDoKKyAg
ICAgICAgKiB3b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OnBhaW50RGVmaW5pdGlvbk1hcCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6cGFpbnREZWZp
bml0aW9uTG9jayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXRHbG9i
YWxTY29wZTo6flBhaW50V29ya2xldEdsb2JhbFNjb3BlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3
b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2xl
dEdsb2JhbFNjb3BlOjpmZXRjaEFuZEludm9rZVNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrbGV0R2xvYmFsU2NvcGU6OnByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5lZWRlZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmRpZFJlY2VpdmVS
ZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6
Om5vdGlmeUZpbmlzaGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9i
YWxTY29wZTo6ZGlkQ29tcGxldGVTY3JpcHRGZXRjaEpvYik6IERlbGV0ZWQuCisgICAgICAgICog
d29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmg6CisKIDIwMjEtMDItMTYgIFBhdHJpY2sgQW5n
bGUgIDxwYW5nbGVAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVu
dCBHcmlkIE92ZXJsYXkgIlNob3cgYXJlYSBuYW1lcyIgZHJhd2luZwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwCmluZGV4IDc1OWE1YjI0YTBl
ZDA4NjgwY2NhYTYzNDBkMmU5NWQ0NTBiODBmZDYuLjI5NmM4NWNjOTBlMDViNTQ1NDdmNjYyYTdl
MmY4YTFlMTMwYTQ2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FnZ3JlZ2F0ZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
Z2dyZWdhdGVFcnJvci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBjb25z
dCBDbGFzc0luZm8gQWdncmVnYXRlRXJyb3I6OnNfaW5mbyA9IHsgIkFnZ3JlZ2F0ZUVycm9yIiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBZ2dy
ZWdhdGVFcnJvcikgfTsKIAogQWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0ZUVycm9yKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBC
YXNlKHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6QWdncmVnYXRlRXJyb3IpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAppbmRleCBmNDczYjgxODFlYzJmMDJh
MGNjNzhhMjZjMGMyMGRjOTYzMWZkYzc0Li5mY2FjZjFlMzIyZWIyNzI3ODc0ZmYyNTI2MjQxZWQ3
YmU5OGNlNTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCkBAIC0z
NSwzNyArMzUsMzcgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09iamVjdCogY3JlYXRlRXJyb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvcklu
c3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2Uu
aXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCksIG1l
c3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7CisgICAgcmV0dXJuIEVycm9ySW5z
dGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2Jq
ZWN0LT5lcnJvclN0cnVjdHVyZSgpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVy
cm9yVHlwZTo6RXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlRXZhbEVycm9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJ
bnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdl
LmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJv
clR5cGU6OkV2YWxFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7
CisgICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9i
amVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OkV2YWxF
cnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFdmFsRXJy
b3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlUmFuZ2VFcnJvcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNv
dXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5KCkp
OwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpSYW5n
ZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsKKyAgICByZXR1
cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgp
LCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmFuZ2VFcnJvciksIG1l
c3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpSYW5nZUVycm9yLCB0cnVl
KTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVJlZmVyZW5jZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNl
QXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0g
ICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJlZmVyZW5j
ZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsKKyAgICByZXR1
cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgp
LCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6UmVmZXJlbmNlRXJyb3Ip
LCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6UmVmZXJlbmNlRXJy
b3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlU3ludGF4RXJyb3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpT
b3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgp
KTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6U3lu
dGF4RXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJl
dHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZt
KCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpTeW50YXhFcnJvciks
IG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpTeW50YXhFcnJvciwg
dHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VB
cHBlbmRlciBhcHBlbmRlciwgUnVudGltZVR5cGUgdHlwZSkKIHsKICAgICBBU1NFUlQoIW1lc3Nh
Z2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVy
cm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHRydWUpOworICAg
IHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qt
PnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3Ip
LCBtZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIHRydWUpOwog
fQogCiBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIp
CkBAIC03Niw3ICs3Niw3IEBAIEpTT2JqZWN0KiBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvckluc3RhCiBKU09iamVjdCogY3Jl
YXRlVVJJRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBB
U1NFUlQoIW1lc3NhZ2UuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9y
U3RydWN0dXJlKEVycm9yVHlwZTo6VVJJRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5v
dGhpbmcsIHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJy
b3JUeXBlOjpVUklFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgRXJyb3JU
eXBlOjpVUklFcnJvciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5cGUgZXJyb3JUeXBlLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCkBAIC0xMTMsNyArMTEzLDcgQEAgSlNPYmplY3QqIGNyZWF0ZUVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9yVHlwZVdpdGhFeHRlbnNpb24gZXJyb3IKIEpT
T2JqZWN0KiBjcmVhdGVHZXR0ZXJUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5
KCkpOwotICAgIGF1dG8qIGVycm9yID0gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9y
VHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSk7CisgICAgYXV0byogZXJyb3IgPSBFcnJvckluc3Rh
bmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVj
dC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBtZXNzYWdlLCBudWxscHRy
LCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IpOwogICAgIGVycm9yLT5zZXROYXRp
dmVHZXR0ZXJUeXBlRXJyb3IoKTsKICAgICByZXR1cm4gZXJyb3I7CiB9CkBAIC0yNzQsNyArMjc0
LDcgQEAgRXhjZXB0aW9uKiB0aHJvd1R5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QKIAogRXhjZXB0aW9uKiB0aHJvd1N5bnRheEVy
cm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHNjb3BlKQogewot
ICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVTeW50
YXhFcnJvcihnbG9iYWxPYmplY3QsICJTeW50YXggZXJyb3IiX3MpKTsKKyAgICByZXR1cm4gdGhy
b3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFs
T2JqZWN0KSk7CiB9CiAKIEV4Y2VwdGlvbiogdGhyb3dTeW50YXhFcnJvcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQpAQCAtMzE3LDYgKzMxNywxMSBAQCBKU09iamVjdCogY3JlYXRlU3ludGF4RXJyb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIHJldHVy
biBjcmVhdGVTeW50YXhFcnJvcihnbG9iYWxPYmplY3QsIG1lc3NhZ2UsIG51bGxwdHIpOwogfQog
CitKU09iamVjdCogY3JlYXRlU3ludGF4RXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKK3sKKyAgICByZXR1cm4gY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCAiU3ludGF4
IGVycm9yIl9zLCBudWxscHRyKTsKK30KKwogSlNPYmplY3QqIGNyZWF0ZVR5cGVFcnJvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVybiBjcmVhdGVUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCAiVHlwZSBlcnJvciJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3IuaAppbmRleCA2ZGFhMTU0MjE1NjY2MTBlNGFjZTZkZTMzNWYzNGQzYmY3Yzc0NDRkLi5k
YzgyNTI4MmMzNTY0ODcxMzI1NDU0NGJjOGQ4MTg4ODQwMGU0MzhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yLmgKQEAgLTU1LDYgKzU1LDcgQEAgSlNfRVhQT1JUX1BSSVZBVEUg
SlNPYmplY3QqIGNyZWF0ZUV2YWxFcnJvcihKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYp
OwogSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZVJhbmdlRXJyb3IoSlNHbG9iYWxP
YmplY3QqLCBjb25zdCBTdHJpbmcmKTsKIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVh
dGVSZWZlcmVuY2VFcnJvcihKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYpOwogSlNfRVhQ
T1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xvYmFsT2JqZWN0Kiwg
Y29uc3QgU3RyaW5nJik7CitKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlU3ludGF4
RXJyb3IoSlNHbG9iYWxPYmplY3QqKTsKIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVh
dGVUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqKTsKIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0
KiBjcmVhdGVUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmKTsKIEpTX0VY
UE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihKU0ds
b2JhbE9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ckNvbnN0cnVjdG9yLmNwcAppbmRleCAwZjJmNWEzMTg0MDJmYmI3YzdkODgwMmI2ZDc4NDJlZmU0
MDZjODQ2Li45YmU5MzBjZjFjM2M5YTQwZTYwODU5ODM1NThhMWE1OWJjNzhiNjJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcApA
QCAtNjAsMTQgKzYwLDE0IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RFcnJv
ckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgICAgIDogSW50
ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LCBuZXdU
YXJnZXQsIGdldEZ1bmN0aW9uUmVhbG0odm0sIG5ld1RhcmdldCktPmVycm9yU3RydWN0dXJlKCkp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xv
YmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcs
IGZhbHNlKSkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNz
YWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKSk7CiB9
CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsRXJyb3JDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBK
U1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVyZSog
ZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBl
cnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9y
VHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9CiAKIGJvb2wgRXJyb3JDb25zdHJ1Y3Rvcjo6cHV0KEpT
Q2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAppbmRleCAyZTRl
YzM5ZjEyMDU4YjI1MDg3MjJlMGI4MjUyMjQ3YmViMDMxOWU2Li4wZjg2ZTIyYjkyZGRkNmQxMzk4
NThiODZlNTZjZWFkY2FlY2UwZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMzQsMTggKzM0LDIzIEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiBjb25zdCBDbGFzc0luZm8gRXJyb3JJbnN0YW5jZTo6c19pbmZvID0geyAiRXJyb3IiLCAm
SlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEVycm9ySW5zdGFuY2UpIH07CiAKLUVycm9ySW5zdGFuY2U6OkVycm9ySW5zdGFuY2Uo
Vk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK0Vycm9ySW5zdGFuY2U6OkVycm9ySW5zdGFu
Y2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXJyb3JUeXBlIGVycm9yVHlwZSkKICAg
ICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICAsIG1fZXJyb3JUeXBlKGVycm9yVHlwZSkKKyAg
ICAsIG1fc3RhY2tPdmVyZmxvd0Vycm9yKGZhbHNlKQorICAgICwgbV9vdXRPZk1lbW9yeUVycm9y
KGZhbHNlKQorICAgICwgbV9lcnJvckluZm9NYXRlcmlhbGl6ZWQoZmFsc2UpCisgICAgLCBtX25h
dGl2ZUdldHRlclR5cGVFcnJvcihmYWxzZSkKIHsKIH0KIAotRXJyb3JJbnN0YW5jZSogRXJyb3JJ
bnN0YW5jZTo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBKU1ZhbHVlIG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyLCBSdW50
aW1lVHlwZSB0eXBlLCBib29sIHVzZUN1cnJlbnRGcmFtZSkKK0Vycm9ySW5zdGFuY2UqIEVycm9y
SW5zdGFuY2U6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNWYWx1ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRlciwgUnVu
dGltZVR5cGUgdHlwZSwgRXJyb3JUeXBlIGVycm9yVHlwZSwgYm9vbCB1c2VDdXJyZW50RnJhbWUp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBTdHJpbmcgbWVzc2FnZVN0cmluZyA9IG1lc3Nh
Z2UuaXNVbmRlZmluZWQoKSA/IFN0cmluZygpIDogbWVzc2FnZS50b1dURlN0cmluZyhnbG9iYWxP
YmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIHJl
dHVybiBjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJlLCBtZXNzYWdlU3RyaW5nLCBh
cHBlbmRlciwgdHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKKyAgICByZXR1cm4gY3JlYXRlKGdsb2Jh
bE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZVN0cmluZywgYXBwZW5kZXIsIHR5cGUsIGVy
cm9yVHlwZSwgdXNlQ3VycmVudEZyYW1lKTsKIH0KIAogc3RhdGljIFN0cmluZyBhcHBlbmRTb3Vy
Y2VUb0Vycm9yTWVzc2FnZShDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRXJyb3JJbnN0YW5jZSogZXhj
ZXB0aW9uLCBCeXRlY29kZUluZGV4IGJ5dGVjb2RlSW5kZXgsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKQEAgLTEzMSw3ICsxMzYsMjUgQEAgdm9pZCBFcnJvckluc3RhbmNlOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFMKIC8vIEJhc2Vk
IG9uIEVycm9yUHJvdG90eXBlJ3MgZXJyb3JQcm90b0Z1bmNUb1N0cmluZygpLCBidXQgaXMgbW9k
aWZpZWQgdG8KIC8vIGhhdmUgbm8gb2JzZXJ2YWJsZSBzaWRlIGVmZmVjdHMgdG8gdGhlIHVzZXIg
KGkuZS4gZG9lcyBub3QgY2FsbCBwcm94aWVzLAogLy8gYW5kIGdldHRlcnMpLgotU3RyaW5nIEVy
cm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCitTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkTWVzc2FnZVN0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSW50ZWdy
aXR5OjphdWRpdFN0cnVjdHVyZUlEKHZtLCBzdHJ1Y3R1cmVJRCgpKTsKKworICAgIEpTVmFsdWUg
bWVzc2FnZVZhbHVlOworICAgIGF1dG8gbWVzc2FnZVByb3BlcnROYW1lID0gdm0ucHJvcGVydHlO
YW1lcy0+bWVzc2FnZTsKKyAgICBQcm9wZXJ0eVNsb3QgbWVzc2FnZVNsb3QodGhpcywgUHJvcGVy
dHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSwgJnZtKTsKKyAgICBpZiAoSlNP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzLCBnbG9iYWxPYmplY3QsIG1lc3NhZ2VQcm9w
ZXJ0TmFtZSwgbWVzc2FnZVNsb3QpICYmIG1lc3NhZ2VTbG90LmlzVmFsdWUoKSkKKyAgICAgICAg
bWVzc2FnZVZhbHVlID0gbWVzc2FnZVNsb3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCBtZXNzYWdl
UHJvcGVydE5hbWUpOworICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CisKKyAgICBpZiAo
IW1lc3NhZ2VWYWx1ZSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgbWVzc2FnZVZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCkpOwor
fQorCitTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkTmFtZVN0cmluZyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTcsMjggKzE4
MCwyMiBAQCBTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB9CiAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24o
KTsKIAotICAgIFN0cmluZyBuYW1lU3RyaW5nOwogICAgIGlmICghbmFtZVZhbHVlKQotICAgICAg
ICBuYW1lU3RyaW5nID0gIkVycm9yIl9zOwotICAgIGVsc2UgewotICAgICAgICBuYW1lU3RyaW5n
ID0gbmFtZVZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIFN0cmluZygpKTsKLSAgICB9CisgICAgICAgIHJldHVybiAiRXJy
b3IiX3M7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBuYW1lVmFsdWUudG9XVEZTdHJp
bmcoZ2xvYmFsT2JqZWN0KSk7Cit9CiAKLSAgICBKU1ZhbHVlIG1lc3NhZ2VWYWx1ZTsKLSAgICBh
dXRvIG1lc3NhZ2VQcm9wZXJ0TmFtZSA9IHZtLnByb3BlcnR5TmFtZXMtPm1lc3NhZ2U7Ci0gICAg
UHJvcGVydHlTbG90IG1lc3NhZ2VTbG90KHRoaXMsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRo
b2RUeXBlOjpWTUlucXVpcnksICZ2bSk7Ci0gICAgaWYgKEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpcywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUHJvcGVydE5hbWUsIG1lc3NhZ2VTbG90
KSAmJiBtZXNzYWdlU2xvdC5pc1ZhbHVlKCkpCi0gICAgICAgIG1lc3NhZ2VWYWx1ZSA9IG1lc3Nh
Z2VTbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgbWVzc2FnZVByb3BlcnROYW1lKTsKLSAgICBz
Y29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOworU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXpl
ZFRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKKyAgICBJbnRlZ3JpdHk6OmF1ZGl0U3RydWN0dXJlSUQodm0sIHN0cnVjdHVyZUlEKCkp
OwogCi0gICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmc7Ci0gICAgaWYgKCFtZXNzYWdlVmFsdWUpCi0g
ICAgICAgIG1lc3NhZ2VTdHJpbmcgPSBTdHJpbmcoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgbWVz
c2FnZVN0cmluZyA9IG1lc3NhZ2VWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwotICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7Ci0gICAgfQorICAgIFN0
cmluZyBuYW1lU3RyaW5nID0gc2FuaXRpemVkTmFtZVN0cmluZyhnbG9iYWxPYmplY3QpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmluZygpKTsKKworICAgIFN0cmluZyBtZXNz
YWdlU3RyaW5nID0gc2FuaXRpemVkTWVzc2FnZVN0cmluZyhnbG9iYWxPYmplY3QpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmluZygpKTsKIAogICAgIGlmICghbmFtZVN0cmlu
Zy5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIG1lc3NhZ2VTdHJpbmc7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKaW5kZXggZGE2NmViNzZlN2FkZTkw
ZmQ0MWJiMTYyNzA3MjVhN2QxNDcwYWQzOC4uOTg3MTM1NzIxYjMwNTY2MjMwZDI2MWM4MzNhZDhk
ZWNhNTQ2MTQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5z
dGFuY2UuaApAQCAtMjAsNiArMjAsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkVy
cm9yVHlwZS5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiUnVudGltZVR5cGUu
aCIKICNpbmNsdWRlICJTdGFja0ZyYW1lLmgiCkBAIC01MywxNCArNTQsMTQgQEAgY2xhc3MgRXJy
b3JJbnN0YW5jZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oRXJy
b3JJbnN0YW5jZVR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU291
cmNlQXBwZW5kZXIgYXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSB0eXBlID0gVHlwZU5v
dGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSkKKyAgICBzdGF0aWMgRXJyb3JJbnN0
YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBw
ZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSB0eXBlID0gVHlwZU5vdGhpbmcsIEVycm9yVHlw
ZSBlcnJvclR5cGUgPSBFcnJvclR5cGU6OkVycm9yLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRy
dWUpCiAgICAgewotICAgICAgICBFcnJvckluc3RhbmNlKiBpbnN0YW5jZSA9IG5ldyAoTm90TnVs
bCwgYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+KHZtLmhlYXApKSBFcnJvckluc3RhbmNlKHZt
LCBzdHJ1Y3R1cmUpOworICAgICAgICBFcnJvckluc3RhbmNlKiBpbnN0YW5jZSA9IG5ldyAoTm90
TnVsbCwgYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+KHZtLmhlYXApKSBFcnJvckluc3RhbmNl
KHZtLCBzdHJ1Y3R1cmUsIGVycm9yVHlwZSk7CiAgICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVh
dGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBhcHBlbmRlciwgdHlwZSwgdXNlQ3VycmVu
dEZyYW1lKTsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwogICAgIH0KIAotICAgIHN0YXRpYyBF
cnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBKU1ZhbHVl
IG1lc3NhZ2UsIFNvdXJjZUFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgPSBUeXBlTm90
aGluZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0cnVlKTsKKyAgICBzdGF0aWMgRXJyb3JJbnN0
YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNWYWx1ZSBtZXNzYWdl
LCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0gVHlwZU5vdGhpbmcsIEVy
cm9yVHlwZSA9IEVycm9yVHlwZTo6RXJyb3IsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7
CiAKICAgICBib29sIGhhc1NvdXJjZUFwcGVuZGVyKCkgY29uc3QgeyByZXR1cm4gISFtX3NvdXJj
ZUFwcGVuZGVyOyB9CiAgICAgU291cmNlQXBwZW5kZXIgc291cmNlQXBwZW5kZXIoKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZUFwcGVuZGVyOyB9CkBAIC03MCw2ICs3MSw3IEBAIGNsYXNzIEVycm9y
SW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgUnVudGltZVR5cGUgcnVu
dGltZVR5cGVGb3JDYXVzZSgpIGNvbnN0IHsgcmV0dXJuIG1fcnVudGltZVR5cGVGb3JDYXVzZTsg
fQogICAgIHZvaWQgY2xlYXJSdW50aW1lVHlwZUZvckNhdXNlKCkgeyBtX3J1bnRpbWVUeXBlRm9y
Q2F1c2UgPSBUeXBlTm90aGluZzsgfQogCisgICAgRXJyb3JUeXBlIGVycm9yVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZXJyb3JUeXBlOyB9CiAgICAgdm9pZCBzZXRTdGFja092ZXJmbG93RXJyb3Io
KSB7IG1fc3RhY2tPdmVyZmxvd0Vycm9yID0gdHJ1ZTsgfQogICAgIGJvb2wgaXNTdGFja092ZXJm
bG93RXJyb3IoKSBjb25zdCB7IHJldHVybiBtX3N0YWNrT3ZlcmZsb3dFcnJvcjsgfQogICAgIHZv
aWQgc2V0T3V0T2ZNZW1vcnlFcnJvcigpIHsgbV9vdXRPZk1lbW9yeUVycm9yID0gdHJ1ZTsgfQpA
QCAtNzksNiArODEsOCBAQCBjbGFzcyBFcnJvckluc3RhbmNlIDogcHVibGljIEpTTm9uRmluYWxP
YmplY3QgewogICAgIGJvb2wgaXNOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoKSBjb25zdCB7IHJldHVy
biBtX25hdGl2ZUdldHRlclR5cGVFcnJvcjsgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nIHNhbml0aXplZFRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0Kik7CisgICAgSlNfRVhQT1JUX1BS
SVZBVEUgU3RyaW5nIHNhbml0aXplZE1lc3NhZ2VTdHJpbmcoSlNHbG9iYWxPYmplY3QqKTsKKyAg
ICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgc2FuaXRpemVkTmFtZVN0cmluZyhKU0dsb2JhbE9i
amVjdCopOwogICAgIAogICAgIFZlY3RvcjxTdGFja0ZyYW1lPiogc3RhY2tUcmFjZSgpIHsgcmV0
dXJuIG1fc3RhY2tUcmFjZS5nZXQoKTsgfQogCkBAIC04OCw3ICs5Miw3IEBAIGNsYXNzIEVycm9y
SW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdm9pZCBmaW5hbGl6ZVVu
Y29uZGl0aW9uYWxseShWTSYpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgRXJyb3JJbnN0
YW5jZShWTSYsIFN0cnVjdHVyZSopOworICAgIGV4cGxpY2l0IEVycm9ySW5zdGFuY2UoVk0mLCBT
dHJ1Y3R1cmUqLCBFcnJvclR5cGUpOwogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpT
R2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBS
dW50aW1lVHlwZSA9IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpOwog
CkBAIC0xMDgsMTAgKzExMiwxMSBAQCBjbGFzcyBFcnJvckluc3RhbmNlIDogcHVibGljIEpTTm9u
RmluYWxPYmplY3QgewogICAgIFN0cmluZyBtX3NvdXJjZVVSTDsKICAgICBTdHJpbmcgbV9zdGFj
a1N0cmluZzsKICAgICBSdW50aW1lVHlwZSBtX3J1bnRpbWVUeXBlRm9yQ2F1c2UgeyBUeXBlTm90
aGluZyB9OwotICAgIGJvb2wgbV9zdGFja092ZXJmbG93RXJyb3IgeyBmYWxzZSB9OwotICAgIGJv
b2wgbV9vdXRPZk1lbW9yeUVycm9yIHsgZmFsc2UgfTsKLSAgICBib29sIG1fZXJyb3JJbmZvTWF0
ZXJpYWxpemVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1fbmF0aXZlR2V0dGVyVHlwZUVycm9yIHsg
ZmFsc2UgfTsKKyAgICBFcnJvclR5cGUgbV9lcnJvclR5cGUgeyBFcnJvclR5cGU6OkVycm9yIH07
CisgICAgYm9vbCBtX3N0YWNrT3ZlcmZsb3dFcnJvciA6IDE7CisgICAgYm9vbCBtX291dE9mTWVt
b3J5RXJyb3IgOiAxOworICAgIGJvb2wgbV9lcnJvckluZm9NYXRlcmlhbGl6ZWQgOiAxOworICAg
IGJvb2wgbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3IgOiAxOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5kZXggNDAyMWZjN2UwYWRhZjdhMGE5ZTBlZjZjZmQyMjU4
MzhiNWJmODc4My4uYWY3MjYyODMxY2ExYmI3NWM2YWU1NTQxMWRlNGNkODVhODEzN2RhNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5j
dGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0RnVuY3Rpb25zLmNwcApAQCAtNjk0LDcgKzY5NCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3JBcmd1bWVudHNDYWxsZWVBbmRDYWxsZXIsIChK
U0dsCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY01ha2VUeXBlRXJyb3IsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1
cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIGNhbGxGcmFt
ZS0+YXJndW1lbnQoMCksIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJy
b3JTdHJ1Y3R1cmUsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIG51bGxwdHIsIFR5cGVOb3RoaW5n
LCBFcnJvclR5cGU6OlR5cGVFcnJvciwgZmFsc2UpKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGdsb2JhbEZ1bmNQcm90b0dldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggN2NjMTFiNWY1
ZTEyOTcyMjAxNmI4NjcxZjEzN2M2YmIxNzIxMzg0MC4uYjZlN2VkZWZkNDJlZGM2MzVkOTBiN2Uw
ZThjN2I0ZmMwYzI0M2QxZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgaW5s
aW5lIEVuY29kZWRKU1ZhbHVlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29u
c3RydWN0SW1wbChKU0dsb2JhbE8KICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OwogICAgIEFTU0VSVChlcnJvclN0cnVjdHVyZSk7CiAKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0
LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSkp
OworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5z
dGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxs
cHRyLCBUeXBlTm90aGluZywgZXJyb3JUeXBlLCBmYWxzZSkpKTsKIH0KIAogdGVtcGxhdGU8RXJy
b3JUeXBlIGVycm9yVHlwZT4KQEAgLTY2LDcgKzY2LDcgQEAgaW5saW5lIEVuY29kZWRKU1ZhbHVl
IE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y2FsbEltcGwoSlNHbG9iYWxPYmpl
Y3QKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAg
IFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJl
KGVycm9yVHlwZSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpj
cmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlw
ZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3Rh
bmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIGVycm9yVHlwZSwgZmFsc2UpKTsKIH0KIAogSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxFdmFsRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcAppbmRleCAyNmYzYjZhOGY5ZGI2NzhjZDk0ZDA1
YWU4OGIxMWI4OWU2MWMwZWJjLi4wZGRiMmM2YTUwZjQ2YmM2MzY5OTVjYTQ2ZDdmMThlNWIyNjg2
M2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVy
RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0
ZXJGdW5jdGlvbi5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGxUaHJvd0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0K
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgLy8gVGhpcyBm
dW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBmcm9tIElDLiBBbmQgd2UgZG8gbm90IHdhbnQgdG8gaW5j
bHVkZSB0aGlzIGZyYW1lIGluIEVycm9yJ3Mgc3RhY2suCiAgICAgY29uc3RleHByIGJvb2wgdXNl
Q3VycmVudEZyYW1lID0gZmFsc2U7Ci0gICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVj
dC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBlRXJyb3IpLCBSZWFkb25seVByb3BlcnR5
V3JpdGVFcnJvciwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIHVzZUN1cnJlbnRGcmFtZSkpOworICAg
IHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIEVycm9ySW5zdGFuY2U6OmNyZWF0
ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlw
ZTo6VHlwZUVycm9yKSwgUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IsIG51bGxwdHIsIFR5cGVO
b3RoaW5nLCBFcnJvclR5cGU6OlR5cGVFcnJvciwgdXNlQ3VycmVudEZyYW1lKSk7CiAgICAgcmV0
dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcAppbmRleCAzODM3M2E3NjBkNTlkMGVl
ZGI0OTRkYjg4ZDg1MjRmYWI5YTUxNTRlLi45ZWJkM2Q0NDZhOWRhOWFkMTlkN2JhNDE5OTAwNjNm
YzVhNjMyOGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dl
YkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcApAQCAtNDEsNyArNDEsNyBAQCBKU1dl
YkFzc2VtYmx5Q29tcGlsZUVycm9yKiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yOjpjcmVhdGUo
SlNHbG9iYWxPYmplY3QqIGdsbwogfQogCiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yOjpKU1dl
YkFzc2VtYmx5Q29tcGlsZUVycm9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAg
OiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlw
ZTo6RXJyb3IpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAKaW5kZXggZWFkZTAzNDEzZTRjZTM2MGJh
MDg5ZjhjNTNkMThjZjhkNmQ3MDIzNS4uOWIyMDA1OGVjZjM0YWY5MWI2YjE4ZDE1ZjY1MTU3ODVj
MjE3MmUyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseUxpbmtFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgSlNXZWJBc3NlbWJs
eUxpbmtFcnJvciogSlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6Y3JlYXRlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmoKIH0KIAogSlNXZWJBc3NlbWJseUxpbmtFcnJvcjo6SlNXZWJBc3NlbWJseUxp
bmtFcnJvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5cGU6OkVycm9yKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5UnVudGltZUVycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3IuY3BwCmluZGV4IGJlMWY5Mjg2MDMwNDVkN2NmNzI5MzI0ZWU0
YTc3YWU4M2ZjZTljYmUuLjE5MzNhNmUzODg4ZmJlYWNjZjA3YWMyYjM3Yzc0NTA0ODRmYTUxZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEpTV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3IqIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OmNyZWF0ZShKU0dsb2JhbE9i
amVjdCogZ2xvCiB9CiAKIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OkpTV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0s
IHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgRXJyb3JUeXBlOjpFcnJvcikK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCA1Y2Qw
MDM1YTAxZmRiNzhkZGMzNWZjNDdiNmI4NTgwYmU0NWQzNTk3Li5jM2EwZDM5N2Y1MDRlMjU4ZjFk
NzBmOGI0ODJiNzlhMWQ5ZTcyNjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVj
dG9yLmNwcApAQCAtNjUsNyArNjUsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpT
V2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogewogICAg
IEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJl
KiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlDb21waWxlRXJyb3JT
dHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNy
ZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBl
Tm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFu
Y2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRy
LCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKIH0KIAogV2ViQXNzZW1i
bHlDb21waWxlRXJyb3JDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1
Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFdlYkFzc2VtYmx5Q29t
cGlsZUVycm9yUHJvdG90eXBlKiB0aGlzUHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0
cnVjdG9yLmNwcAppbmRleCA5NDZkZWY0ZjExNTIyOWEyMjViZTkzMmFjOWU2NDM1YjZjOGFiMmE5
Li4yYzVmNmEyOTMxZjE1MjE1ODVhYWE5MzVlNTZiNGJkMmYxOWMxNmIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxp
bmtFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNjUsNyArNjUsNyBAQCBKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7
CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1i
bHlMaW5rRXJyb3JTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9y
SW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBu
dWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNz
YWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpFcnJvciwgZmFsc2UpKTsKIH0K
IAogV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3RvciogV2ViQXNzZW1ibHlMaW5rRXJyb3JD
b25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFdlYkFzc2Vt
Ymx5TGlua0Vycm9yUHJvdG90eXBlKiB0aGlzUHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVF
cnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCAzZGZkOTE1NjdiNjBhNThkZDlhYTY4NDJmZjY3OTAy
MWY1Y2I5MjUyLi5hODU2NjljNTE4YjFlOWFhNjhjOTVhZDA1NjZlYmZkNmZjM2RmYThhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVF
cnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtNjcsNyArNjcsNyBAQCBK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsTwogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFt
ZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9i
amVjdC0+d2ViQXNzZW1ibHlSdW50aW1lRXJyb3JTdHJ1Y3R1cmUoKTsKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3Ry
dWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVy
cm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpF
cnJvciwgZmFsc2UpKTsKIH0KIAogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvciog
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIFdlYkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlKiB0aGlzUHJv
dG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYjMzYTM2OTE3YmEyMjRiZGRmNjJkNjA1NzUw
NDBkMmQ3ZWM5NmM5OC4uNWJjMWQ2ZTcwM2RiNjRmNmY3ZWU1NmNjYjc1YmNhYjYyYjk4YTg5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCkBAIC0zMCw2ICszMCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKIAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIu
aAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmgKKyAgICBNb2R1bGVzL2ZldGNo
L0ZldGNoUmVxdWVzdENyZWRlbnRpYWxzLmgKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVy
cy5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaElkZW50aWZpZXIuaAogICAgIE1vZHVsZXMvZmV0
Y2gvRmV0Y2hMb2FkZXIuaApAQCAtMjg4LDYgKzI4OSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBiaW5kaW5ncy9qcy9XZWJDb3JlSklUT3BlcmF0aW9ucy5o
CiAgICAgYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKICAgICBiaW5k
aW5ncy9qcy9XaW5kb3dQcm94eS5oCisgICAgYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RmV0Y2hl
ci5oCiAKICAgICBicmlkZ2UvQnJpZGdlLmgKICAgICBicmlkZ2UvSWRlbnRpZmllclJlcC5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEds
b2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dEdsb2JhbFNjb3BlLmgKaW5kZXggZDQxYjcwOGYyOWM4Zjc1NTY5MTZmNzgxMzBmNjY0MzNjZmU3
MTMzZC4uMDAyMTlmMmQwMjkxODMwOTEzNDQ1ODQxYTBhNGM3MDFhZGQzNzUyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29w
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUuaApAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBKU0F1ZGlvV29ya2xldFByb2Nlc3Nv
ckNvbnN0cnVjdG9yOwogCiBzdHJ1Y3QgV29ya2xldFBhcmFtZXRlcnM7CiAKLWNsYXNzIEF1ZGlv
V29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtsZXRHbG9iYWxTY29wZSB7CitjbGFzcyBB
dWRpb1dvcmtsZXRHbG9iYWxTY29wZSBmaW5hbCA6IHB1YmxpYyBXb3JrbGV0R2xvYmFsU2NvcGUg
ewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUpOwog
cHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU+IHRyeUNy
ZWF0ZShBdWRpb1dvcmtsZXRUaHJlYWQmLCBjb25zdCBXb3JrbGV0UGFyYW1ldGVycyYpOwpAQCAt
NjksNiArNjksOCBAQCBjbGFzcyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3Jr
bGV0R2xvYmFsU2NvcGUgewogICAgIHZvaWQgaGFuZGxlUHJlUmVuZGVyVGFza3MoKTsKICAgICB2
b2lkIGhhbmRsZVBvc3RSZW5kZXJUYXNrcyhzaXplX3QgY3VycmVudEZyYW1lKTsKIAorICAgIEZl
dGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVy
biBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpBdWRpb3dvcmtsZXQ7IH0KKwogcHJpdmF0ZToK
ICAgICBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZShBdWRpb1dvcmtsZXRUaHJlYWQmLCBSZWY8SlND
OjpWTT4mJiwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBj
MzVjMDZmMDMwNjdmMWRjMDJiNTQ1Njk3NTNhNDk3NTA3YTlkNTJlLi45Nzk3NGJjNjg5MzcyMmI2
Y2RjYjgyZjMzNTI4NjExZjEyZGM4ODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjM5LDYgKzYzOSw3
IEBAIGJpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5jcHAKIGJpbmRpbmdzL2pzL1dlYkNvcmVK
SVRPcGVyYXRpb25zLmNwcAogYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHAKIGJp
bmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAKK2JpbmRpbmdzL2pzL1dv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAKIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmNwcAog
YmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uY3BwCiBicmlkZ2UvSWRlbnRpZmllclJlcC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA3MWFhOGM1ODFiNjVkOTRjYjlmNTQzMjQ3MzM5ZjgwNzViZjBhNmYyLi5mMTA3MGFmZTA1
ZDQ1ODJhMGFkNzdkYzY0OWE0NjUyODcxN2QxZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDczLDE1ICs1MDczLDE4IEBA
CiAJCUUzMDU5MjY0MUUyN0EzQUQwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2ljU2NyaXB0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA1OTI2MjFFMjdB
MzhDMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1NjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDU5MjY4MUUyN0EzRDEwMEQ1N0M5OCAv
KiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzA1OTI2NjFFMjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0
Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUzMDdERUQwMUQ4MUU0QzcwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMDdERUM3MUQ4
MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlFMzA3REVEMTFEODFFNENCMDAx
NDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3REVDODFEODFFNDQ4MDAxNDFDQUYg
LyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMwN0RFRDUxRDgxRTRGMjAwMTQxQ0FGIC8q
IExvYWRhYmxlTW9kdWxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzA3REVEMzFEODFFNEVEMDAxNDFDQUYgLyogTG9hZGFibGVNb2R1bGVT
Y3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFMzE1MEVBNzFEQTcyMTkzMDAxOTQwMTIgLyogRE9NSklUSGVscGVycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMxNTBFQTUxREE3MjE4RDAwMTk0
MDEyIC8qIERPTUpJVEhlbHBlcnMuaCAqLzsgfTsKIAkJRTMyMDFDMUExRjhFODIxMzAwNzZBMDMy
IC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM4RDA2MDkxRjhFODExOTAwNjQ5Q0YyIC8qIE1vZHVsZUZldGNo
UGFyYW1ldGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUUzMjNDRkZBMUU1QUY2QUYwMEYwQjRBMCAvKiBKU0RPTUNvbnZlcnRQcm9taXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzIzQ0ZGOTFF
NUFGNkE1MDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJvbWlzZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzNDMyREU0MjVEMzc3RTMwMDU4RTYx
MiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDMyREUwMjVEMzc3RTIwMDU4RTYxMiAvKiBXb3JrZXJN
b2R1bGVTY3JpcHRMb2FkZXIuaCAqLzsgfTsKKwkJRTM0N0U1RkEyNUQ0RjAwMDAwRjE3QTVDIC8q
IFdvcmtlclNjcmlwdEZldGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzNDdFNUY4MjVENEYwMDAwMEYxN0E1QyAvKiBXb3JrZXJTY3JpcHRGZXRj
aGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
RTM1MTg4QjQyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1MTg4QjMyNUQz
ODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNTY1QjdCMURDMkQ2QzkwMDIx
N0RCRCAvKiBKU0V2ZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzRFRTQ5RjFEQzJENTc1MDBFQUE5RDMgLyogSlNFdmVudEN1c3RvbS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNTgw
MkI2MURDODQzNUQwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MDJCNTFEQzg0MzU4MDBBOTc3
M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUUzNTgyQzI4MjUyN0Y2NjkwMEQxQjc5MCAvKiBXZWJDb3Jl
SklUT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTM1ODJDMjYyNTI3RjY2ODAwRDFCNzkwIC8qIFdlYkNvcmVKSVRPcGVyYXRpb25zLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1Qjkw
N0YyM0Y2MEE1MDAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVCOTA3QzIzRjYwNjc3MDAwMDEx
RkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlFMzY0MzIxQzI1RDM3QTY3MDBGOTBFMkEgLyogTW9kdWxl
U2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3N0ZFNEQx
REFERTE2NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0OTkzMURBREMwNDUwMDcxOEYzQyAvKiBOb2Rl
Q29uc3RhbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM3Qzg2NEYxRUI2M0UyRDAw
ODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUUzOTYyOEJGMjM5NTcyOEYwMDY1OEVDRCAvKiBEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzk2MjhCRDIzOTU3MjhFMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xNjIwNyw3ICsxNjIxMCw2IEBACiAJCUUzMDU5MjY2MUUyN0EzQzYwMEQ1
N0M5OCAvKiBDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENhY2hlZFNjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTMwN0RFQzYxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVDNzFEODFF
NDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlFMzA3REVDODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMzA3REVEMjFEODFFNEVEMDAxNDFDQUYgLyogTG9hZGFibGVNb2R1bGVTY3JpcHQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9hZGFibGVNb2R1bGVT
Y3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA3REVEMzFEODFFNEVE
MDAxNDFDQUYgLyogTG9hZGFibGVNb2R1bGVTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTG9hZGFibGVNb2R1bGVTY3JpcHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTMxNTBFQTUxREE3MjE4RDAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSGVscGVycy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTYyMjAsMTIgKzE2MjIyLDE3IEBACiAJCUUzMjkyNzYzMjI1
NDNGNTkwMDMwOEE5QSAvKiBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFR5cGVkT01DU1NVbml0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzI5Mjc2NjIyNTQzRkRFMDAzMDhBOUEgLyogRE9NUmVjdFJlYWRPbmx5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERPTVJlY3RSZWFkT25seS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzMzQ4MjVFMURDOTNBQTAwMDlDOTU0NCAvKiBET01KSVRBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERPTUpJVEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9NSklUQWJz
dHJhY3RIZWFwUmVwb3NpdG9yeS5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OworCQlFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlck1vZHVsZVNjcmlwdExv
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzQzMkRFMzI1RDM3N0UzMDA1
OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNDdFNUY4MjVENEYwMDAwMEYxN0E1QyAvKiBXb3JrZXJT
Y3JpcHRGZXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlclNj
cmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM0RUU0OUYxREMy
RDU3NTAwRUFBOUQzIC8qIEpTRXZlbnRDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNFdmVudEN1c3RvbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MzUxODhCMzI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0Mg
LyogRE9NSklUSURMVHlwZUZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBET01KSVRJRExUeXBlRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
NTgyQzI0MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0aW9ucy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlSklUT3BlcmF0aW9ucy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTgyQzI2MjUyN0Y2NjgwMEQxQjc5MCAv
KiBXZWJDb3JlSklUT3BlcmF0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJDb3JlSklUT3BlcmF0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MzVCOTA3QzIzRjYwNjc3MDAwMDExRkYgLyogTG9jYWxpemVkRGV2aWNlTW9kZWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemVkRGV2aWNlTW9kZWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1QjkwN0UyM0Y2MDY3NzAwMDAxMUZGIC8qIExvY2Fs
aXplZERldmljZU1vZGVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTG9jYWxpemVkRGV2aWNlTW9kZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUzNjQzMjFBMjVEMzdBNjYwMEY5MEUyQSAvKiBNb2R1bGVTY3JpcHRMb2FkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlU2NyaXB0TG9hZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVBy
b21pc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01Qcm9taXNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAv
KiBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3MDIyLDcgKzI3MDI5LDYgQEAKIAkJCQkyREZBNDg4
RTFEQjU0MUMyMDAzNjJCOTkgLyogQnVmZmVyU291cmNlLmggKi8sCiAJCQkJRTMwN0RFQzYxRDgx
RTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8sCiAJCQkJRTMw
N0RFQzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oICovLAot
CQkJCUUzMDdERUM4MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQuaCAqLywKIAkJCQlFMzA1OTI2NTFFMjdBM0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0
RmV0Y2hlci5jcHAgKi8sCiAJCQkJRTMwNTkyNjYxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNj
cmlwdEZldGNoZXIuaCAqLywKIAkJCQlCQ0Q1MzM2MzBFRDY4NDg5MDA4ODc0NjggLyogQ2FjaGVk
U2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLywKQEAgLTI3MDk2LDYgKzI3MTAyLDggQEAKIAkJCQk0
QkRFQTMyRDIxODAzNDA1MDA1MkRGQ0QgLyogSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcCAq
LywKIAkJCQk0QkRFQTMyQjIxODAzM0VCMDA1MkRGQ0QgLyogSlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlLmggKi8sCiAJCQkJNzA5QTAxRkQxRTNEMEJDQzAwNkIwRDRDIC8qIE1vZHVsZUZldGNoRmFp
bHVyZUtpbmQuaCAqLywKKwkJCQlFMzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyogTW9kdWxlU2Ny
aXB0TG9hZGVyLmggKi8sCisJCQkJRTM1MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNj
cmlwdExvYWRlckNsaWVudC5oICovLAogCQkJCTQxQjQ1OUVEMUY1NUVCQzcwMDAwRjZGRCAvKiBS
ZWFkYWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDFCNDU5REExRjRDQURCOTAwMDBGNkZEIC8qIFJl
YWRhYmxlU3RyZWFtLmggKi8sCiAJCQkJNDE4QzM5NUUxQzhGMEFBQjAwNTFDOEEzIC8qIFJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwICovLApAQCAtMjcxMjcsNiArMjcxMzUsOSBA
QAogCQkJCTBGMDk5RDA3MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRy
b2xsZXIuaCAqLywKIAkJCQk0NjM1MjFBQzIwODEwOTBFMDBDMjg5MjIgLyogV2luZG93UHJveHku
Y3BwICovLAogCQkJCTQ2MzUyMUFBMjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICov
LAorCQkJCUUzNDMyREUzMjVEMzc3RTMwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2Fk
ZXIuY3BwICovLAorCQkJCUUzNDMyREUwMjVEMzc3RTIwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuaCAqLywKKwkJCQlFMzQ3RTVGODI1RDRGMDAwMDBGMTdBNUMgLyogV29ya2Vy
U2NyaXB0RmV0Y2hlci5oICovLAogCQkJCTQxNDE4QTAzMjU2NDNFMTIwMDM2MzQxNyAvKiBXcml0
YWJsZVN0cmVhbS5jcHAgKi8sCiAJCQkJNDE0MThBMDQyNTY0M0UxMzAwMzYzNDE3IC8qIFdyaXRh
YmxlU3RyZWFtLmggKi8sCiAJCQkpOwpAQCAtMzE0MDUsNyArMzE0MTYsNiBAQAogCQkJCUJDQjE2
QzFDMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzE5RkJENUYxNUQyRjQ2NDAwOTY0MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMzA3REVEMDFEODFFNEM3MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMzA3REVEMTFEODFFNENCMDAxNDFDQUYgLyog
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTAx
ODQ2OTBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RDBFREE3NzUxNDNFMzAzQzAwMjhFMzgzIC8qIENhY2hlZFJhd1Jlc291cmNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUI1MzM0OTE3MTdERUUzMDBGMjA1RjkgLyogQ2FjaGVkUmF3UmVzb3VyY2VD
bGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzM4ODAsNiArMzM4OTAsOCBAQAogCQkJCUM2RDc0
QUQ1MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTcwOUEwMUZFMUUzRDBCREQwMDZCMEQ0QyAvKiBNb2R1bGVGZXRjaEZhaWx1
cmVLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzIwMUMxQTFGOEU4MjEzMDA3NkEwMzIgLyog
TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzY0MzIxQzI1RDM3
QTY3MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
MzUxODhCNDI1RDM4N0NGMDBBNzdBRjMgLyogTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlGNTVCM0RDNjEyNTFGMTJEMDAzRUYyNjkgLyogTW9udGhJbnB1dFR5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOTYyOEMxMjM5NTc0MzEwMDY1OEVDRCAvKiBNb3Rp
b25NYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0NjBBNDRFRkM3MDBG
OTkyRTAgLyogTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTUzMiw2ICszNTU0NCw3
IEBACiAJCQkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY0RDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyTG9j
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUwMEY1NDZBODIwMEIwRjFCQSAvKiBX
b3JrZXJNZXNzYWdpbmdQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM0MzJERTQyNUQzNzdF
MzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTEyNzFBMEIwRUVFQzc3QTAwRjYxMjEzIC8qIFdvcmtlck5hdmlnYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTVDQjA1MjUxRkI1MUYzQTAwMDg5Qjk3IC8qIFdvcmtlck5ldHdvcmtBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTEwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
ck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTM1NTQxLDYgKzM1NTU0LDcgQEAKIAkJ
CQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVwb3J0aW5nUHJveHkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJFNDM0NjUzMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXJSdW5Mb29w
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDRjFGQUE0NERFMDAzN0QxRTYgLyogV29ya2Vy
UnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzQ3RTVGQTI1RDRGMDAwMDBGMTdB
NUMgLyogV29ya2VyU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdENkIzNDkw
RjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkVBNzY4MDQwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NTUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlclRo
cmVhZC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcAppbmRleCAzNTJkY2M0YWNmNzUxNzZk
OThhZDM0MTBiZTE1MTYwODAxMDg4NTI0Li4yNzdmNjJhN2MxMzNmZTE1NmM2Y2NlOTg1NTM1NTBl
ZGIxMzZkMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0Nh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKQEAgLTQwLDE2ICs0MCwxMyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVJlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+IENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcjo6Y3JlYXRlKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xp
ZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlw
dEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKK1Jl
ZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3Jl
YXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHBy
b21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVG
ZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoY2xpZW50LCBwcm9taXNlLCBzY3JpcHRGZXRjaGVy
LCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSk7CiB9CiAKLUNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYg
Y2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNj
cmlwdEZldGNoZXIsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykK
LSAgICA6IG1fY2xpZW50KCZjbGllbnQpCi0gICAgLCBtX3Byb21pc2UoJnByb21pc2UpCi0gICAg
LCBtX3NjcmlwdEZldGNoZXIoc2NyaXB0RmV0Y2hlcikKLSAgICAsIG1fcGFyYW1ldGVycyhXVEZN
b3ZlKHBhcmFtZXRlcnMpKQorQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpDYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJv
bWlzZSYgcHJvbWlzZSwgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRy
PE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQorICAgIDogTW9kdWxlU2NyaXB0
TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwgV1RGTW92ZShwYXJhbWV0ZXJz
KSkKIHsKIH0KIApAQCAtNjEsMTQgKzU4LDE1IEBAIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6
fkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcigpCiAgICAgfQogfQogCi1ib29sIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlcjo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgc291cmNl
VVJMKQorYm9vbCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBVUkwmJiBzb3VyY2VVUkwpCiB7CisgICAgQVNTRVJUKG1fcHJvbWlzZSk7CiAgICAgQVNT
RVJUKCFtX2NhY2hlZFNjcmlwdCk7CiAgICAgU3RyaW5nIGludGVncml0eSA9IG1fcGFyYW1ldGVy
cyA/IG1fcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkgOiBTdHJpbmcgeyB9OwotICAgIG1fY2FjaGVk
U2NyaXB0ID0gbV9zY3JpcHRGZXRjaGVyLT5yZXF1ZXN0TW9kdWxlU2NyaXB0KGRvY3VtZW50LCBz
b3VyY2VVUkwsIFdURk1vdmUoaW50ZWdyaXR5KSk7CisgICAgbV9jYWNoZWRTY3JpcHQgPSBzY3Jp
cHRGZXRjaGVyKCkucmVxdWVzdE1vZHVsZVNjcmlwdChkb2N1bWVudCwgc291cmNlVVJMLCBXVEZN
b3ZlKGludGVncml0eSkpOwogICAgIGlmICghbV9jYWNoZWRTY3JpcHQpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBtX3NvdXJjZVVSTCA9IHNvdXJjZVVSTDsKKyAgICBtX3NvdXJjZVVSTCA9
IFdURk1vdmUoc291cmNlVVJMKTsKIAogICAgIC8vIElmIHRoZSBjb250ZW50IGlzIGFscmVhZHkg
Y2FjaGVkLCB0aGlzIGltbWVkaWF0ZWx5IGNhbGxzIG5vdGlmeUZpbmlzaGVkLgogICAgIG1fY2Fj
aGVkU2NyaXB0LT5hZGRDbGllbnQoKnRoaXMpOwpAQCAtODMsNyArODEsNyBAQCB2b2lkIENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291
cmNlLCBjb25zdCBOZQogCiAgICAgUmVmPENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gcHJvdGVj
dGVkVGhpcygqdGhpcyk7CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+bm90
aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9wcm9taXNlKSk7CisgICAgICAgIG1fY2xpZW50
LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJjZVVSTCksIG1fcHJvbWlzZS5y
ZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIC8vIFJlbW92ZSB0aGUgY2xpZW50IGFmdGVyIGNhbGxp
bmcgbm90aWZ5RmluaXNoZWQgdG8ga2VlcCB0aGUgZGF0YSBidWZmZXIgaW4KICAgICAvLyBDYWNo
ZWRSZXNvdXJjZSBhbGl2ZSB3aGlsZSBub3RpZnlGaW5pc2hlZCBwcm9jZXNzZXMgdGhlIHJlc291
cmNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVT
Y3JpcHRMb2FkZXIuaAppbmRleCA0M2FiZDg3NWIyNDNmYWY1ZmNkNGQ5OGVjM2M1ZDI0ZTc5MGI1
NzJlLi5hNDg3NTVmOTNkMDVlZjM1M2QyYjNlMjI4ZDgyMTlmZTg5MWU2NzQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIu
aApAQCAtMjcsNiArMjcsOCBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIkNhY2hlZFNjcmlw
dEZldGNoZXIuaCIKKyNpbmNsdWRlICJNb2R1bGVTY3JpcHRMb2FkZXIuaCIKICNpbmNsdWRlIDx3
dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CkBAIC0zNCw0MiArMzYsMjkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CitjbGFzcyBNb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQ7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7Ci1jbGFzcyBDYWNoZWRTY3JpcHRGZXRjaGVy
OwogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBKU0RPTUds
b2JhbE9iamVjdDsKIGNsYXNzIE1vZHVsZUZldGNoUGFyYW1ldGVyczsKIAotY2xhc3MgQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyPiwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CitjbGFzcyBDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxlU2NyaXB0TG9hZGVyLCBw
cml2YXRlIENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlcj4gY3JlYXRlKENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNs
aWVudCYsIERlZmVycmVkUHJvbWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzPiYmKTsKKyAgICBzdGF0aWMgUmVmPENhY2hlZE1vZHVsZVNjcmlw
dExvYWRlcj4gY3JlYXRlKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJvbWlz
ZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYm
KTsKIAogICAgIHZpcnR1YWwgfkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcigpOwogCi0gICAgYm9v
bCBsb2FkKERvY3VtZW50JiwgY29uc3QgVVJMJiBzb3VyY2VVUkwpOworICAgIGJvb2wgbG9hZChE
b2N1bWVudCYsIFVSTCYmIHNvdXJjZVVSTCk7CiAKLSAgICBDYWNoZWRTY3JpcHRGZXRjaGVyJiBz
Y3JpcHRGZXRjaGVyKCkgeyByZXR1cm4gbV9zY3JpcHRGZXRjaGVyLmdldCgpOyB9CiAgICAgQ2Fj
aGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsg
fQotICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyogcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFy
YW1ldGVycy5nZXQoKTsgfQotICAgIGNvbnN0IFVSTCYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1
cm4gbV9zb3VyY2VVUkw7IH0KLQotICAgIHZvaWQgY2xlYXJDbGllbnQoKQotICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fY2xpZW50KTsKLSAgICAgICAgbV9jbGllbnQgPSBudWxscHRyOwotICAgIH0K
KyAgICBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyKCkgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlciY+KE1vZHVsZVNjcmlwdExvYWRlcjo6c2NyaXB0RmV0
Y2hlcigpKTsgfQogCiBwcml2YXRlOgotICAgIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3Jp
cHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisgICAgQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYsIERlZmVycmVkUHJv
bWlzZSYsIENhY2hlZFNjcmlwdEZldGNoZXImLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJz
PiYmKTsKIAogICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UmLCBjb25zdCBO
ZXR3b3JrTG9hZE1ldHJpY3MmKSBmaW5hbDsKIAotICAgIENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07Ci0gICAgUmVmUHRyPERlZmVycmVkUHJvbWlz
ZT4gbV9wcm9taXNlOwotICAgIFJlZjxDYWNoZWRTY3JpcHRGZXRjaGVyPiBtX3NjcmlwdEZldGNo
ZXI7Ci0gICAgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4gbV9wYXJhbWV0ZXJzOwogICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gbV9jYWNoZWRTY3JpcHQ7CiAgICAg
VVJMIG1fc291cmNlVVJMOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDg2ODhhZDkwZGFlM2VjZTk0OWVhMDliMWVmZWU1ZGEyNmY5NGM3ODYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50LmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjsKLWNsYXNzIERlZmVycmVkUHJvbWlzZTsKLQot
Y2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0
dWFsIH5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQoKSA9IGRlZmF1bHQ7Ci0KLSAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyJiwgUmVm
UHRyPERlZmVycmVkUHJvbWlzZT4pID0gMDsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKaW5kZXggYTQzMzc1ODY1YmJm
MWVjNTk3M2JmMTcyYzkxYTM4NTMyMzRlMzc0ZC4uYzBmZmFkZDZmMjUyNDI2YWJhNzIyYTUwODQ0
ZTYzNTcyZjRkNWU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2Fj
aGVkU2NyaXB0RmV0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2Fj
aGVkU2NyaXB0RmV0Y2hlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDcm9zc09y
aWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCisjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCmluZGV4IGRmN2YzZDc0NmQ1ZTMyYWJhYjUxNDc2
YzlkZGFjYTYzYTQzNTEzNmMuLmVlZjIxMDM4ODQ5ZmQ4OTg0OWFmY2VkNzAzMTg1ZmY4OTRjNDBj
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9u
SGFuZGxpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuY3BwCkBAIC01Miw2ICs1MiwyNSBAQCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSBleGNlcHRpb25WYWx1
ZQogICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBleGNlcHRpb24sIGNh
Y2hlZFNjcmlwdCk7CiB9CiAKK1N0cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1l
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBWTSYgdm0sIEpTVmFsdWUgZXhj
ZXB0aW9uLCBDYXRjaFNjb3BlJiBjYXRjaFNjb3BlKQoreworICAgIC8vIEZJWE1FOiA8aHR0cDov
L3dlYmtpdC5vcmcvYi8xMTUwODc+IFdlYiBJbnNwZWN0b3I6IFdlYkNvcmU6OnJlcG9ydEV4Y2Vw
dGlvbiBzaG91bGQgbm90IGV2YWx1YXRlIEphdmFTY3JpcHQgaGFuZGxpbmcgZXhjZXB0aW9ucwor
ICAgIC8vIElmIHRoaXMgaXMgYSBjdXN0b20gZXhjZXB0aW9uIG9iamVjdCwgY2FsbCB0b1N0cmlu
ZyBvbiBpdCB0byB0cnkgYW5kIGdldCBhIG5pY2Ugc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZvciB0
aGUgZXhjZXB0aW9uLgorICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKGF1dG8qIGVy
cm9yID0ganNEeW5hbWljQ2FzdDxFcnJvckluc3RhbmNlKj4odm0sIGV4Y2VwdGlvbikpCisgICAg
ICAgIGVycm9yTWVzc2FnZSA9IGVycm9yLT5zYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKKyAgICBlbHNlIGlmIChhdXRvKiBlcnJvciA9IGpzRHluYW1pY0Nhc3Q8
SlNET01FeGNlcHRpb24qPih2bSwgZXhjZXB0aW9uKSkKKyAgICAgICAgZXJyb3JNZXNzYWdlID0g
ZXJyb3ItPndyYXBwZWQoKS5tZXNzYWdlKCk7CisgICAgZWxzZQorICAgICAgICBlcnJvck1lc3Nh
Z2UgPSBleGNlcHRpb24udG9XVEZTdHJpbmcoJmxleGljYWxHbG9iYWxPYmplY3QpOworCisgICAg
Ly8gV2UgbmVlZCB0byBjbGVhciBhbnkgbmV3IGV4Y2VwdGlvbiB0aGF0IG1heSBiZSB0aHJvd24g
aW4gdGhlIHRvU3RyaW5nKCkgY2FsbCBhYm92ZS4KKyAgICAvLyByZXBvcnRFeGNlcHRpb24oKSBp
cyBub3Qgc3VwcG9zZWQgdG8gYmUgbWFraW5nIG5ldyBleGNlcHRpb25zLgorICAgIGNhdGNoU2Nv
cGUuY2xlYXJFeGNlcHRpb24oKTsKKyAgICB2bS5jbGVhckxhc3RFeGNlcHRpb24oKTsKKyAgICBy
ZXR1cm4gZXJyb3JNZXNzYWdlOworfQorCiBTdHJpbmcgcmV0cmlldmVFcnJvck1lc3NhZ2UoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIFZNJiB2bSwgSlNWYWx1ZSBleGNlcHRp
b24sIENhdGNoU2NvcGUmIGNhdGNoU2NvcGUpCiB7CiAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Vi
a2l0Lm9yZy9iLzExNTA4Nz4gV2ViIEluc3BlY3RvcjogV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9u
IHNob3VsZCBub3QgZXZhbHVhdGUgSmF2YVNjcmlwdCBoYW5kbGluZyBleGNlcHRpb25zCkBAIC0x
MjEsMzYgKzE0MCw0NSBAQCB2b2lkIHJlcG9ydEN1cnJlbnRFeGNlcHRpb24oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QpCiAKIEpTVmFsdWUgY3JlYXRlRE9NRXhjZXB0aW9uKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFeGNlcHRpb25Db2RlIGVjLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgaWYgKGVjID09IEV4aXN0aW5nRXhjZXB0aW9uRXJy
b3IpCisgICAgc3dpdGNoIChlYykgeworICAgIGNhc2UgRXhpc3RpbmdFeGNlcHRpb25FcnJvcjoK
ICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKICAgICAvLyBGSVhNRTogSGFuZGxlIG90
aGVyIFdlYklETCBleGNlcHRpb24gdHlwZXMuCi0gICAgaWYgKGVjID09IFR5cGVFcnJvcikgewor
ICAgIGNhc2UgVHlwZUVycm9yOgogICAgICAgICBpZiAobWVzc2FnZS5pc0VtcHR5KCkpCiAgICAg
ICAgICAgICByZXR1cm4gY3JlYXRlVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
ICAgICByZXR1cm4gY3JlYXRlVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIG1lc3NhZ2Up
OwotICAgIH0KIAotICAgIGlmIChlYyA9PSBSYW5nZUVycm9yKSB7CisgICAgY2FzZSBSYW5nZUVy
cm9yOgogICAgICAgICBpZiAobWVzc2FnZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4g
Y3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiQmFkIHZhbHVlIl9zKTsKICAg
ICAgICAgcmV0dXJuIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgbWVzc2Fn
ZSk7Ci0gICAgfQogCi0gICAgaWYgKGVjID09IFN0YWNrT3ZlcmZsb3dFcnJvcikKKyAgICBjYXNl
IEpTU3ludGF4RXJyb3I6CisgICAgICAgIGlmIChtZXNzYWdlLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIHJldHVybiBjcmVhdGVTeW50YXhFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICAg
ICAgcmV0dXJuIGNyZWF0ZVN5bnRheEVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIG1lc3NhZ2Up
OworCisgICAgY2FzZSBTdGFja092ZXJmbG93RXJyb3I6CiAgICAgICAgIHJldHVybiBjcmVhdGVT
dGFja092ZXJmbG93RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKGVjID09IE91
dE9mTWVtb3J5RXJyb3IpCisKKyAgICBjYXNlIE91dE9mTWVtb3J5RXJyb3I6CiAgICAgICAgIHJl
dHVybiBjcmVhdGVPdXRPZk1lbW9yeUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QpOwogCi0gICAg
Ly8gRklYTUU6IEFsbCBjYWxsZXJzIHRvIGNyZWF0ZURPTUV4Y2VwdGlvbiBuZWVkIHRvIHBhc3Mg
aW4gdGhlIGNvcnJlY3QgZ2xvYmFsIG9iamVjdC4KLSAgICAvLyBGb3Igbm93LCB3ZSdyZSBnb2lu
ZyB0byBhc3N1bWUgdGhlIGxleGljYWxHbG9iYWxPYmplY3QuIFdoaWNoIGlzIHdyb25nIGluIGNh
c2VzIGxpa2UgdGhpczoKLSAgICAvLyBmcmFtZXNbMF0uZG9jdW1lbnQuY3JlYXRlRWxlbWVudChu
dWxsLCBudWxsKTsgLy8gdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGljaCBzaG91bGQgaGF2ZSB0aGUg
c3ViZnJhbWUncyBwcm90b3R5cGVzLgotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QgPSBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwotICAgIEpTVmFsdWUgZXJyb3JPYmplY3QgPSB0b0pTKGxleGljYWxHbG9iYWxPYmplY3Qs
IGdsb2JhbE9iamVjdCwgRE9NRXhjZXB0aW9uOjpjcmVhdGUoZWMsIG1lc3NhZ2UpKTsKLSAgICAK
LSAgICBBU1NFUlQoZXJyb3JPYmplY3QpOwotICAgIGFkZEVycm9ySW5mbyhsZXhpY2FsR2xvYmFs
T2JqZWN0LCBhc09iamVjdChlcnJvck9iamVjdCksIHRydWUpOwotICAgIHJldHVybiBlcnJvck9i
amVjdDsKKyAgICBkZWZhdWx0OiB7CisgICAgICAgIC8vIEZJWE1FOiBBbGwgY2FsbGVycyB0byBj
cmVhdGVET01FeGNlcHRpb24gbmVlZCB0byBwYXNzIGluIHRoZSBjb3JyZWN0IGdsb2JhbCBvYmpl
Y3QuCisgICAgICAgIC8vIEZvciBub3csIHdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0aGUgbGV4aWNh
bEdsb2JhbE9iamVjdC4gV2hpY2ggaXMgd3JvbmcgaW4gY2FzZXMgbGlrZSB0aGlzOgorICAgICAg
ICAvLyBmcmFtZXNbMF0uZG9jdW1lbnQuY3JlYXRlRWxlbWVudChudWxsLCBudWxsKTsgLy8gdGhy
b3dzIGFuIGV4Y2VwdGlvbiB3aGljaCBzaG91bGQgaGF2ZSB0aGUgc3ViZnJhbWUncyBwcm90b3R5
cGVzLgorICAgICAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gZGVwcmVjYXRl
ZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICAgICAg
SlNWYWx1ZSBlcnJvck9iamVjdCA9IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LCBET01FeGNlcHRpb246OmNyZWF0ZShlYywgbWVzc2FnZSkpOworCisgICAgICAgIEFTU0VS
VChlcnJvck9iamVjdCk7CisgICAgICAgIGFkZEVycm9ySW5mbyhsZXhpY2FsR2xvYmFsT2JqZWN0
LCBhc09iamVjdChlcnJvck9iamVjdCksIHRydWUpOworICAgICAgICByZXR1cm4gZXJyb3JPYmpl
Y3Q7CisgICAgfQorICAgIH0KKyAgICByZXR1cm4geyB9OwogfQogCiBKU1ZhbHVlIGNyZWF0ZURP
TUV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgRXhjZXB0aW9u
JiYgZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01FeGNlcHRpb25IYW5kbGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01F
eGNlcHRpb25IYW5kbGluZy5oCmluZGV4IDJkM2UzMTFmNjFlZWI2ODVhYWMzNTU0NmFhZTE2MGRh
OTc5MGVmNWYuLmQxZjZkZTkzNzQ3MGNlNmRmMmNjYjY0NzIyODQ3NjZmZDAxOTU4MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5n
LmgKQEAgLTY1LDYgKzY1LDcgQEAgV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSBy
ZWplY3RQcm9taXNlV2l0aEdldHRlclR5cGVFcnJvcihKU0M6OkpTR2xvYmEKIFdFQkNPUkVfRVhQ
T1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUgcmVqZWN0UHJvbWlzZVdpdGhUaGlzVHlwZUVycm9yKERl
ZmVycmVkUHJvbWlzZSYsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIG9w
ZXJhdGlvbk5hbWUpOwogV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSByZWplY3RQ
cm9taXNlV2l0aFRoaXNUeXBlRXJyb3IoSlNDOjpKU0dsb2JhbE9iamVjdCYsIGNvbnN0IGNoYXIq
IGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIG9wZXJhdGlvbk5hbWUpOwogCitTdHJpbmcgcmV0
cmlldmVFcnJvck1lc3NhZ2VXaXRob3V0TmFtZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpW
TSYsIEpTQzo6SlNWYWx1ZSBleGNlcHRpb24sIEpTQzo6Q2F0Y2hTY29wZSYpOwogU3RyaW5nIHJl
dHJpZXZlRXJyb3JNZXNzYWdlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OlZNJiwgSlNDOjpK
U1ZhbHVlIGV4Y2VwdGlvbiwgSlNDOjpDYXRjaFNjb3BlJik7CiBXRUJDT1JFX0VYUE9SVCB2b2lk
IHJlcG9ydEV4Y2VwdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU1ZhbHVlIGV4Y2Vw
dGlvbiwgQ2FjaGVkU2NyaXB0KiA9IG51bGxwdHIpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBv
cnRFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhjZXB0aW9uKiwgQ2FjaGVk
U2NyaXB0KiA9IG51bGxwdHIsIEV4Y2VwdGlvbkRldGFpbHMqID0gbnVsbHB0cik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggNThi
N2RmNzYwYzAwYTMxZmYwOGVkMjJkZWUyMmE4Yzc0NDNhZThkZC4uOWQ2OTdkNDU5YjU2MzQ1Y2M4
Mzk2MjAyNjY3NmUwMGE5OGJmNDlhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIkpT
V29ya2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiUmVqZWN0ZWRQcm9taXNlVHJhY2tlci5o
IgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJTY3JpcHRN
b2R1bGVMb2FkZXIuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVkQ2xvbmUuaCIKICNpbmNsdWRlICJX
ZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAg
LTQyMiw2ICs0MjMsNzkgQEAgSlNDOjpKU1Byb21pc2UqIEpTRE9NR2xvYmFsT2JqZWN0OjppbnN0
YW50aWF0ZVN0cmVhbWluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KICNlbmRpZgogCitz
dGF0aWMgU2NyaXB0TW9kdWxlTG9hZGVyKiBzY3JpcHRNb2R1bGVMb2FkZXIoSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJpdHM8SlNET01XaW5kb3dCYXNlPih2bSkpIHsK
KyAgICAgICAgaWYgKGF1dG8gZG9jdW1lbnQgPSBqc0Nhc3Q8Y29uc3QgSlNET01XaW5kb3dCYXNl
Kj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCisgICAgICAgICAgICByZXR1
cm4gJmRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTUmVtb3RlRE9NV2luZG93QmFz
ZT4odm0pKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5p
bmhlcml0czxKU1dvcmtlckdsb2JhbFNjb3BlQmFzZT4odm0pKQorICAgICAgICByZXR1cm4gJmpz
Q2FzdDxjb25zdCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBw
ZWQoKS5tb2R1bGVMb2FkZXIoKTsKKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2U+KHZtKSkKKyAgICAgICAgcmV0dXJuICZqc0Nhc3Q8Y29uc3Qg
SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlKj4oZ2xvYmFsT2JqZWN0KS0+d3JhcHBlZCgpLm1vZHVs
ZUxvYWRlcigpOworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIGlmIChnbG9iYWxP
YmplY3QtPmluaGVyaXRzPEpTSURCU2VyaWFsaXphdGlvbkdsb2JhbE9iamVjdD4odm0pKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorICAgIGRhdGFMb2coIlVuZXhwZWN0ZWQgZ2xv
YmFsIG9iamVjdDogIiwgSlNWYWx1ZShnbG9iYWxPYmplY3QpLCAiXG4iKTsKKyAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU0M6Oklk
ZW50aWZpZXIgSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2Fk
ZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVL
ZXksIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIEpTRE9NR2xvYmFsT2JqZWN0
KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmpl
Y3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVj
dCkpCisgICAgICAgIHJldHVybiBsb2FkZXItPnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVM
b2FkZXIsIG1vZHVsZU5hbWUsIGltcG9ydGVyTW9kdWxlS2V5LCBzY3JpcHRGZXRjaGVyKTsKKyAg
ICByZXR1cm4geyB9OworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVL
ZXksIEpTQzo6SlNWYWx1ZSBwYXJhbWV0ZXJzLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikK
K3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0
ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlm
IChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbG9hZGVyLT5mZXRjaChnbG9iYWxPYmplY3QsIG1v
ZHVsZUxvYWRlciwgbW9kdWxlS2V5LCBwYXJhbWV0ZXJzLCBzY3JpcHRGZXRjaGVyKSk7CisgICAg
SlNDOjpKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2U6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5pbnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUoKSk7Cisg
ICAgc2NvcGUucmVsZWFzZSgpOworICAgIHByb21pc2UtPnJlamVjdChnbG9iYWxPYmplY3QsIGpz
VW5kZWZpbmVkKCkpOworICAgIHJldHVybiBwcm9taXNlOworfQorCitKU0M6OkpTVmFsdWUgSlNE
T01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpT
VmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgbW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUg
c2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IEpT
Qzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0
byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQorICAgICAgICByZXR1
cm4gbG9hZGVyLT5ldmFsdWF0ZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlS2V5
LCBtb2R1bGVSZWNvcmQsIHNjcmlwdEZldGNoZXIpOworICAgIHJldHVybiBKU0M6OmpzVW5kZWZp
bmVkKCk7Cit9CisKK0pTQzo6SlNJbnRlcm5hbFByb21pc2UqIEpTRE9NR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNTdHJpbmcqIG1vZHVs
ZU5hbWUsIEpTQzo6SlNWYWx1ZSBwYXJhbWV0ZXJzLCBjb25zdCBKU0M6OlNvdXJjZU9yaWdpbiYg
c291cmNlT3JpZ2luKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNET01HbG9iYWxPYmpl
Y3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9i
amVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2Jq
ZWN0KSkKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBsb2FkZXItPmltcG9ydE1v
ZHVsZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxlTmFtZSwgcGFyYW1ldGVycywg
c291cmNlT3JpZ2luKSk7CisgICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcHJvbWlzZSA9IEpT
Qzo6SlNJbnRlcm5hbFByb21pc2U6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5pbnRlcm5hbFBy
b21pc2VTdHJ1Y3R1cmUoKSk7CisgICAgc2NvcGUucmVsZWFzZSgpOworICAgIHByb21pc2UtPnJl
amVjdChnbG9iYWxPYmplY3QsIGpzVW5kZWZpbmVkKCkpOworICAgIHJldHVybiBwcm9taXNlOwor
fQorCitKU0M6OkpTT2JqZWN0KiBKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYXRl
SW1wb3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXks
IEpTQzo6SlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZl
dGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAgaWYgKGF1dG8qIGxvYWRl
ciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGxvYWRl
ci0+Y3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIs
IG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkLCBzY3JpcHRGZXRjaGVyKTsKKyAgICByZXR1cm4gY29u
c3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPm51bGxQ
cm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKSk7Cit9CisKIEpTRE9NR2xvYmFsT2JqZWN0JiBjYWxs
ZXJHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSYgY2FsbEZyYW1lKQogewogICAgIGNsYXNzIEdldENhbGxlckdsb2JhbE9iamVjdEZ1bmN0
b3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxP
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgK
aW5kZXggYjg0MDcyZGRkNzQ2YjNkNmM1MTA2MGQ5MDUwMWI1Y2VhMWI0OTliMS4uZjQ5YTRjZDI1
NzE5NzExODkxN2E3ZDdhNGI2YzBlMTFmYzc2YmE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC0xMDUsNiArMTA1LDEyIEBAIGNsYXNz
IFdFQkNPUkVfRVhQT1JUIEpTRE9NR2xvYmFsT2JqZWN0IDogcHVibGljIEpTQzo6SlNHbG9iYWxP
YmplY3QgewogICAgIHN0YXRpYyBKU0M6OkpTUHJvbWlzZSogaW5zdGFudGlhdGVTdHJlYW1pbmco
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU09iamVjdCopOwogI2Vu
ZGlmCiAKKyAgICBzdGF0aWMgSlNDOjpJZGVudGlmaWVyIG1vZHVsZUxvYWRlclJlc29sdmUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJv
bWlzZSogbW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1
bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKKyAg
ICBzdGF0aWMgSlNDOjpKU1ZhbHVlIG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUs
IEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIG1vZHVs
ZUxvYWRlckltcG9ydE1vZHVsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxv
YWRlciosIEpTQzo6SlNTdHJpbmcqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6U291cmNlT3Jp
Z2luJik7CisgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIG1vZHVsZUxvYWRlckNyZWF0ZUltcG9y
dE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVy
KiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTTW9kdWxlUmVjb3JkKiwgSlNDOjpKU1ZhbHVlKTsKKwog
ICAgIEpTRE9NU3RydWN0dXJlTWFwIG1fc3RydWN0dXJlczsKICAgICBKU0RPTUNvbnN0cnVjdG9y
TWFwIG1fY29uc3RydWN0b3JzOwogICAgIERPTUd1YXJkZWRPYmplY3RTZXQgbV9ndWFyZGVkT2Jq
ZWN0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3Bw
CmluZGV4IDU2M2VmYTA1NzFiNWQ0NjJkOWU2NDUwODlmMGJkOGY3N2QxOWE3NjguLjMxMmEwMTE1
OGU4YzI4MDgzYzA3ZTQyZGI4NzI0NWZlNGU1YzU3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMzM5LDU0ICszMzksNCBAQCB2b2lk
IEpTRE9NV2luZG93QmFzZTo6ZmlyZUZyYW1lQ2xlYXJlZFdhdGNocG9pbnRzRm9yV2luZG93KERP
TVdpbmRvdyogd2luZG93KQogICAgIH0KIH0KIAotSlNDOjpJZGVudGlmaWVyIEpTRE9NV2luZG93
QmFzZTo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVs
ZU5hbWUsIEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlw
dEZldGNoZXIpCi17Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nh
c3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3Vt
ZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAg
ICByZXR1cm4gZG9jdW1lbnQtPm1vZHVsZUxvYWRlcigpLnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBt
b2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIGltcG9ydGVyTW9kdWxlS2V5LCBzY3JpcHRGZXRjaGVy
KTsKLSAgICByZXR1cm4geyB9OwotfQotCi1KU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdp
bmRvd0Jhc2U6Om1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9k
dWxlS2V5LCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNo
ZXIpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmpl
Y3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3QpOwotICAgIGlm
IChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3Vt
ZW50KCkpCi0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgZG9jdW1lbnQtPm1vZHVs
ZUxvYWRlcigpLmZldGNoKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVLZXksIHBh
cmFtZXRlcnMsIHNjcmlwdEZldGNoZXIpKTsKLSAgICBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBw
cm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qt
PmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKLSAgICBzY29wZS5yZWxlYXNlKCk7Ci0gICAg
cHJvbWlzZS0+cmVqZWN0KGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7Ci0gICAgcmV0dXJu
IHByb21pc2U7Ci19Ci0KLUpTQzo6SlNWYWx1ZSBKU0RPTVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRl
ckV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVs
ZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFs
dWUgbW9kdWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RP
TVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihn
bG9iYWxPYmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09i
amVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9k
dWxlTG9hZGVyKCkuZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtl
eSwgbW9kdWxlUmVjb3JkLCBzY3JpcHRGZXRjaGVyKTsKLSAgICByZXR1cm4gSlNDOjpqc1VuZGVm
aW5lZCgpOwotfQotCi1KU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTVdpbmRvd0Jhc2U6Om1v
ZHVsZUxvYWRlckltcG9ydE1vZHVsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1N0cmluZyogbW9kdWxl
TmFtZSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIGNvbnN0IEpTQzo6U291cmNlT3JpZ2luJiBz
b3VyY2VPcmlnaW4pCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBKU0RPTVdpbmRvd0Jhc2Uq
IHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxPYmplY3Qp
OwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBl
ZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgZG9jdW1l
bnQtPm1vZHVsZUxvYWRlcigpLmltcG9ydE1vZHVsZShnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRl
ciwgbW9kdWxlTmFtZSwgcGFyYW1ldGVycywgc291cmNlT3JpZ2luKSk7Ci0gICAgSlNDOjpKU0lu
dGVybmFsUHJvbWlzZSogcHJvbWlzZSA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2U6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LT5pbnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUoKSk7Ci0gICAgc2NvcGUu
cmVsZWFzZSgpOwotICAgIHByb21pc2UtPnJlamVjdChnbG9iYWxPYmplY3QsIGpzVW5kZWZpbmVk
KCkpOwotICAgIHJldHVybiBwcm9taXNlOwotfQotCi1KU0M6OkpTT2JqZWN0KiBKU0RPTVdpbmRv
d0Jhc2U6Om1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVy
LCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNv
cmQsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSog
dGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7
Ci0gICAgaWYgKFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVk
KCkuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5j
cmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9k
dWxlS2V5LCBtb2R1bGVSZWNvcmQsIHNjcmlwdEZldGNoZXIpOwotICAgIHJldHVybiBjb25zdHJ1
Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+bnVsbFByb3Rv
dHlwZU9iamVjdFN0cnVjdHVyZSgpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCAzZWY5ODBk
ZDI3ZjZiMjEzOTg3MDA4YmE0NzZjOGNhNjlmMmYwYjY0Li41MTQyYjFjN2RjMjVjMjJmZTk3ODk1
ZTc1YWUyMmVmNGQxZTU4OWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuaApAQCAtOTksMTIgKzk5LDYgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNE
T01XaW5kb3dCYXNlIDogcHVibGljIEpTRE9NR2xvYmFsT2JqZWN0IHsKIHByaXZhdGU6CiAgICAg
dXNpbmcgUmVzcG9uc2VDYWxsYmFjayA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBjaGFyKiwg
c2l6ZV90KT47CiAKLSAgICBzdGF0aWMgSlNDOjpJZGVudGlmaWVyIG1vZHVsZUxvYWRlclJlc29s
dmUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFs
dWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgSlNDOjpKU0ludGVy
bmFsUHJvbWlzZSogbW9kdWxlTG9hZGVyRmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1ZhbHVl
KTsKLSAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpT
VmFsdWUsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2Uq
IG1vZHVsZUxvYWRlckltcG9ydE1vZHVsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01v
ZHVsZUxvYWRlciosIEpTQzo6SlNTdHJpbmcqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6U291
cmNlT3JpZ2luJik7Ci0gICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIG1vZHVsZUxvYWRlckNyZWF0
ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxl
TG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTTW9kdWxlUmVjb3JkKiwgSlNDOjpKU1ZhbHVl
KTsKLQogICAgIFJlZlB0cjxET01XaW5kb3c+IG1fd3JhcHBlZDsKICAgICBSZWZQdHI8RXZlbnQ+
IG1fY3VycmVudEV2ZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCA0MmIyNmM5ZjRlYTIxNjIwN2Rl
NGM4NjgyMGI4YTgxYjYwMzViN2ViLi4yZDc5M2ZmZjIxODUzYThhMWE3ODgwNjY3MjUwZjU3ZTc1
MmZlM2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UuY3BwCkBAIC01OSwxMSArNTksMTEgQEAgY29uc3QgR2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUKICAgICAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywKICAgICAmcXVldWVNaWNyb3Rh
c2tUb0V2ZW50TG9vcCwKICAgICAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwK
LSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUKLSAgICBudWxscHRyLCAv
LyBtb2R1bGVMb2FkZXJSZXNvbHZlCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyRmV0Y2gK
LSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcwot
ICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckV2YWx1YXRlCisgICAgJm1vZHVsZUxvYWRlcklt
cG9ydE1vZHVsZSwKKyAgICAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwKKyAgICAmbW9kdWxlTG9hZGVy
RmV0Y2gsCisgICAgJm1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzLAorICAg
ICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwKICAgICAmcHJvbWlzZVJlamVjdGlvblRyYWNrZXIsCiAg
ICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJlbnRTY3Jp
cHRFeGVjdXRpb25Pd25lciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDM1ZmE2ZTMyNzdmYjBkNGJlMGUw
ZTFlZGM0MzcyMmVkYWRmYzhhZjIuLjlmYWVjOTU5YzM5ZDE3NDgxODFjOTg2NTAwM2Q1YTg2ZjE3
ZjVlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEds
b2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNDksMTEgKzQ5LDExIEBAIGNvbnN0IEdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RN
ZXRob2RUYWJsCiAgICAgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsCiAgICAgbnVsbHB0ciwgLy8g
cXVldWVNaWNyb3Rhc2tUb0V2ZW50TG9vcAogICAgICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZv
cmVUaW1lb3V0LAotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckltcG9ydE1vZHVsZQotICAg
IG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlclJlc29sdmUKLSAgICBudWxscHRyLCAvLyBtb2R1bGVM
b2FkZXJGZXRjaAotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQ
cm9wZXJ0aWVzCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyRXZhbHVhdGUKKyAgICAmbW9k
dWxlTG9hZGVySW1wb3J0TW9kdWxlLAorICAgICZtb2R1bGVMb2FkZXJSZXNvbHZlLAorICAgICZt
b2R1bGVMb2FkZXJGZXRjaCwKKyAgICAmbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3Bl
cnRpZXMsCisgICAgJm1vZHVsZUxvYWRlckV2YWx1YXRlLAogICAgICZwcm9taXNlUmVqZWN0aW9u
VHJhY2tlciwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAm
Y3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTkxMGU5NDliN2FjMWEzOGVk
ZWVjYjAzZGViNmVlODk0Y2NlYjBkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
KyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9TY3JpcHRGZXRjaGVyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQ7CisKK2Ns
YXNzIE1vZHVsZVNjcmlwdExvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPE1vZHVsZVNjcmlwdExv
YWRlcj4geworcHVibGljOgorICAgIHZpcnR1YWwgfk1vZHVsZVNjcmlwdExvYWRlcigpID0gZGVm
YXVsdDsKKworICAgIHZvaWQgY2xlYXJDbGllbnQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1f
Y2xpZW50KTsKKyAgICAgICAgbV9jbGllbnQgPSBudWxscHRyOworICAgIH0KKworICAgIEpTQzo6
U2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlcigpIHsgcmV0dXJuIG1fc2NyaXB0RmV0Y2hlci5n
ZXQoKTsgfQorICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyogcGFyYW1ldGVycygpIHsgcmV0dXJu
IG1fcGFyYW1ldGVycy5nZXQoKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgTW9kdWxlU2NyaXB0TG9h
ZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZlcnJlZFByb21pc2UmIHBy
b21pc2UsIEpTQzo6U2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZl
dGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQorICAgICAgICA6IG1fY2xpZW50KCZjbGllbnQp
CisgICAgICAgICwgbV9wcm9taXNlKCZwcm9taXNlKQorICAgICAgICAsIG1fc2NyaXB0RmV0Y2hl
cihzY3JpcHRGZXRjaGVyKQorICAgICAgICAsIG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRl
cnMpKQorICAgIHsKKyAgICB9CisKKyAgICBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQqIG1fY2xp
ZW50OworICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IG1fcHJvbWlzZTsKKyAgICBSZWY8SlND
OjpTY3JpcHRGZXRjaGVyPiBtX3NjcmlwdEZldGNoZXI7CisgICAgUmVmUHRyPE1vZHVsZUZldGNo
UGFyYW1ldGVycz4gbV9wYXJhbWV0ZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Nb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mOTk1ZjQ4ZWUzZDFlMDJjMWQ4YzljOWRhMmJkNTgyMzZmM2Jh
MDdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxl
U2NyaXB0TG9hZGVyQ2xpZW50LmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXI7CitjbGFzcyBEZWZlcnJlZFByb21p
c2U7CisKK2NsYXNzIE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+TW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYsIFVSTCYmLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPikgPSAwOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKaW5kZXggYWE1YjgwYjU4NmI3OWUwZTU3NTAx
Y2Q1MTA3OGRmMjVhNjI1ZTVkOS4uZDFlZTcxYjliNTVmMDU2YmMzNTZhNjk2ZjMwMWU4NGRhZGU3
N2NmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2Ny
aXB0RmV0Y2hlci5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJl
ZC5oIgpAQCAtNDEsNiArNDAsOSBAQAogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNp
bmNsdWRlICJTdWJyZXNvdXJjZUludGVncml0eS5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVu
dERhdGEuaCIKKyNpbmNsdWRlICJXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCIKKyNpbmNsdWRl
ICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTSW50ZXJuYWxQcm9taXNlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNNb2R1bGVSZWNvcmQuaD4KQEAgLTUyLDggKzU0LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1TY3JpcHRNb2R1bGVMb2FkZXI6OlNjcmlwdE1vZHVsZUxvYWRlcihEb2N1bWVudCYgZG9j
dW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorU2NyaXB0TW9kdWxlTG9hZGVyOjpT
Y3JpcHRNb2R1bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgT3duZXJU
eXBlIG93bmVyVHlwZSkKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9vd25lclR5
cGUob3duZXJUeXBlKQogewogfQogCkBAIC02OCw3ICs3MSw3IEBAIHN0YXRpYyBib29sIGlzUm9v
dE1vZHVsZShKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXkpCiAgICAgcmV0dXJuIGltcG9y
dGVyTW9kdWxlS2V5LmlzU3ltYm9sKCkgfHwgaW1wb3J0ZXJNb2R1bGVLZXkuaXNVbmRlZmluZWQo
KTsKIH0KIAotc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxlU3BlY2lm
aWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBzcGVjaWZpZXIsIGNvbnN0IFVS
TCYgYmFzZVVSTCkKK3N0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gcmVzb2x2ZU1vZHVsZVNw
ZWNpZmllcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTY3JpcHRNb2R1bGVMb2Fk
ZXI6Ok93bmVyVHlwZSBvd25lclR5cGUsIGNvbnN0IFN0cmluZyYgc3BlY2lmaWVyLCBjb25zdCBV
UkwmIGJhc2VVUkwpCiB7CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0
aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3Jlc29sdmUtYS1tb2R1bGUtc3BlY2lmaWVyCiAKQEAgLTc5
LDcgKzgyLDEyIEBAIHN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gcmVzb2x2ZU1vZHVsZVNw
ZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0CiAgICAgaWYgKCFzcGVjaWZpZXIu
c3RhcnRzV2l0aCgnLycpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi8iKSAmJiAhc3BlY2lm
aWVyLnN0YXJ0c1dpdGgoIi4uLyIpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFr
ZVN0cmluZygiTW9kdWxlIHNwZWNpZmllciwgJyJfcywgc3BlY2lmaWVyLCAiJyBkb2VzIG5vdCBz
dGFydCB3aXRoIFwiL1wiLCBcIi4vXCIsIG9yIFwiLi4vXCIuIFJlZmVyZW5jZWQgZnJvbSAiX3Ms
IGJhc2VVUkwuc3RyaW5nKCkpKTsKIAotICAgIGF1dG8gcmVzdWx0ID0gZG9jdW1lbnQuY29tcGxl
dGVVUkwoc3BlY2lmaWVyLCBiYXNlVVJMKTsKKyAgICBVUkwgcmVzdWx0OworICAgIGlmIChvd25l
clR5cGUgPT0gU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5cGU6OkRvY3VtZW50KQorICAgICAg
ICByZXN1bHQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuY29tcGxldGVVUkwoc3BlY2lm
aWVyLCBiYXNlVVJMKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IFVSTChiYXNlVVJMLCBz
cGVjaWZpZXIpOworCiAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIG5hbWUsICciX3MsIHJlc3VsdC5zdHJp
bmcoKSwgIicgZG9lcyBub3QgcmVzb2x2ZSB0byBhIHZhbGlkIFVSTC4iX3MpKTsKICAgICByZXR1
cm4gcmVzdWx0OwpAQCAtMTA3LDcgKzExNSw3IEBAIEpTQzo6SWRlbnRpZmllciBTY3JpcHRNb2R1
bGVMb2FkZXI6OnJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsCiAg
ICAgVVJMIGJhc2VVUkwgPSByZXNwb25zZVVSTEZyb21SZXF1ZXN0VVJMKCpqc0dsb2JhbE9iamVj
dCwgaW1wb3J0ZXJNb2R1bGVLZXkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIobV9kb2N1bWVu
dCwgc3BlY2lmaWVyLCBiYXNlVVJMKTsKKyAgICBhdXRvIHJlc3VsdCA9IHJlc29sdmVNb2R1bGVT
cGVjaWZpZXIobV9jb250ZXh0LCBtX293bmVyVHlwZSwgc3BlY2lmaWVyLCBiYXNlVVJMKTsKICAg
ICBpZiAoIXJlc3VsdCkgewogICAgICAgICBKU0M6OnRocm93VHlwZUVycm9yKGpzR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgcmVzdWx0LmVycm9yKCkpOwogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTYx
LDEzICsxNjksMTkgQEAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVy
OjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE8KICAgICBpZiAoYXV0byogc2Ny
aXB0RmV0Y2hQYXJhbWV0ZXJzID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTQzo6SlNTY3JpcHRGZXRj
aFBhcmFtZXRlcnMqPih2bSwgcGFyYW1ldGVycykpCiAgICAgICAgIHRvcExldmVsRmV0Y2hQYXJh
bWV0ZXJzID0gc3RhdGljX2Nhc3Q8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzKj4oJnNjcmlwdEZldGNo
UGFyYW1ldGVycy0+cGFyYW1ldGVycygpKTsKIAotICAgIGF1dG8gbG9hZGVyID0gQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3RhdGljX2Nh
c3Q8Q2FjaGVkU2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRGZXRjaGVy
Kj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRjaFBhcmFt
ZXRlcnMpKTsKLSAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOwotICAgIGlmICgh
bG9hZGVyLT5sb2FkKG1fZG9jdW1lbnQsIGNvbXBsZXRlZFVSTCkpIHsKLSAgICAgICAgbG9hZGVy
LT5jbGVhckNsaWVudCgpOwotICAgICAgICBtX2xvYWRlcnMucmVtb3ZlKFdURk1vdmUobG9hZGVy
KSk7Ci0gICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKGRlZmVycmVkLmdldCgp
LCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0aW5nIGEgbW9kdWxl
IHNjcmlwdCBmYWlsZWQuIl9zKTsKLSAgICAgICAgcmV0dXJuIGpzUHJvbWlzZTsKKyAgICBpZiAo
bV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBhdXRvIGxvYWRl
ciA9IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJlZC5nZXQo
KSwgKnN0YXRpY19jYXN0PENhY2hlZFNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxKU0M6OkpT
U2NyaXB0RmV0Y2hlcio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3ZlKHRvcExl
dmVsRmV0Y2hQYXJhbWV0ZXJzKSk7CisgICAgICAgIG1fbG9hZGVycy5hZGQobG9hZGVyLmNvcHlS
ZWYoKSk7CisgICAgICAgIGlmICghbG9hZGVyLT5sb2FkKGRvd25jYXN0PERvY3VtZW50PihtX2Nv
bnRleHQpLCBXVEZNb3ZlKGNvbXBsZXRlZFVSTCkpKSB7CisgICAgICAgICAgICBsb2FkZXItPmNs
ZWFyQ2xpZW50KCk7CisgICAgICAgICAgICBtX2xvYWRlcnMucmVtb3ZlKFdURk1vdmUobG9hZGVy
KSk7CisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihkZWZlcnJlZC5n
ZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1v
ZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm4ganNQcm9taXNlOwor
ICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBsb2FkZXIgPSBXb3JrZXJNb2R1
bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJyZWQuZ2V0KCksICpzdGF0aWNfY2Fz
dDxXb3JrZXJTY3JpcHRGZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8SlNDOjpKU1NjcmlwdEZldGNoZXIq
PihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hlcigpKSwgV1RGTW92ZSh0b3BMZXZlbEZldGNoUGFyYW1l
dGVycykpOworICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRlci5jb3B5UmVmKCkpOworICAgICAg
ICBsb2FkZXItPmxvYWQobV9jb250ZXh0LCBXVEZNb3ZlKGNvbXBsZXRlZFVSTCkpOwogICAgIH0K
IAogICAgIHJldHVybiBqc1Byb21pc2U7CkBAIC0xNzYsNyArMTkwLDcgQEAgSlNDOjpKU0ludGVy
bmFsUHJvbWlzZSogU2NyaXB0TW9kdWxlTG9hZGVyOjpmZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0
KiBqc0dsb2JhbE8KIFVSTCBTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVSTChKU0M6OkpTR2xv
YmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleVZhbHVlKQog
ewogICAgIGlmIChtb2R1bGVLZXlWYWx1ZS5pc1N5bWJvbCgpKQotICAgICAgICByZXR1cm4gbV9k
b2N1bWVudC51cmwoKTsKKyAgICAgICAgcmV0dXJuIG1fY29udGV4dC51cmwoKTsKIAogICAgIEFT
U0VSVChtb2R1bGVLZXlWYWx1ZS5pc1N0cmluZygpKTsKICAgICByZXR1cm4gVVJMKFVSTCgpLCBh
c1N0cmluZyhtb2R1bGVLZXlWYWx1ZSktPnZhbHVlKCZqc0dsb2JhbE9iamVjdCkpOwpAQCAtMTg3
LDggKzIwMSwxMSBAQCBVUkwgU2NyaXB0TW9kdWxlTG9hZGVyOjpyZXNwb25zZVVSTEZyb21SZXF1
ZXN0VVJMKEpTQzo6SlNHbG9iYWxPYmplY3QmIGpzR2xvYmFsTwogICAgIEpTQzo6Vk0mIHZtID0g
anNHbG9iYWxPYmplY3Qudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKLSAgICBpZiAoaXNSb290TW9kdWxlKG1vZHVsZUtleVZhbHVlKSkKLSAgICAgICAg
cmV0dXJuIG1fZG9jdW1lbnQuYmFzZVVSTCgpOworICAgIGlmIChpc1Jvb3RNb2R1bGUobW9kdWxl
S2V5VmFsdWUpKSB7CisgICAgICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3Vt
ZW50KQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmJh
c2VVUkwoKTsKKyAgICAgICAgcmV0dXJuIG1fY29udGV4dC51cmwoKTsKKyAgICB9CiAKICAgICBB
U1NFUlQoIWlzUm9vdE1vZHVsZShtb2R1bGVLZXlWYWx1ZSkpOwogICAgIEFTU0VSVChtb2R1bGVL
ZXlWYWx1ZS5pc1N0cmluZygpKTsKQEAgLTIxOSw4ICsyMzYsMTQgQEAgSlNDOjpKU1ZhbHVlIFNj
cmlwdE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxP
YmplY3QsIEoKICAgICBpZiAoIXNvdXJjZVVSTC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBK
U0M6OnRocm93VHlwZUVycm9yKGpzR2xvYmFsT2JqZWN0LCBzY29wZSwgIk1vZHVsZSBrZXkgaXMg
YW4gaW52YWxpZCBVUkwuIl9zKTsKIAotICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fZG9jdW1lbnQu
ZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShz
b3VyY2VVUkwsICptb2R1bGVSZWNvcmQpOworICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5
cGU6OkRvY3VtZW50KSB7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvd25jYXN0PERvY3Vt
ZW50PihtX2NvbnRleHQpLmZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm4gZnJhbWUtPnNjcmlw
dCgpLmV2YWx1YXRlTW9kdWxlKHNvdXJjZVVSTCwgKm1vZHVsZVJlY29yZCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgQVNTRVJUKGlzPFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPihtX2NvbnRl
eHQpKTsKKyAgICAgICAgaWYgKGF1dG8qIHNjcmlwdCA9IGRvd25jYXN0PFdvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlPihtX2NvbnRleHQpLnNjcmlwdCgpKQorICAgICAgICAgICAgcmV0dXJuIHNj
cmlwdC0+ZXZhbHVhdGVNb2R1bGUoKm1vZHVsZVJlY29yZCk7CisgICAgfQogICAgIHJldHVybiBK
U0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAKQEAgLTI0OCwyMyArMjcxLDQxIEBAIEpTQzo6SlNJbnRl
cm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6aW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGpzCiAgICAgVVJMIGJhc2VVUkw7CiAgICAgUmVmUHRyPEpTQzo6U2NyaXB0RmV0
Y2hlcj4gc2NyaXB0RmV0Y2hlcjsKICAgICBpZiAoc291cmNlT3JpZ2luLmlzTnVsbCgpKSB7Ci0g
ICAgICAgIGJhc2VVUkwgPSBtX2RvY3VtZW50LmJhc2VVUkwoKTsKLSAgICAgICAgc2NyaXB0RmV0
Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7
CisgICAgICAgIGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KSB7CisgICAg
ICAgICAgICBiYXNlVVJMID0gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuYmFzZVVSTCgp
OworICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0
ZShkb3duY2FzdDxEb2N1bWVudD4obV9jb250ZXh0KS5jaGFyc2V0KCkpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2Uvd2ViYXBwYXBpcy5odG1sI2RlZmF1bHQtY2xhc3NpYy1zY3JpcHQtZmV0Y2gtb3B0aW9ucwor
ICAgICAgICAgICAgYmFzZVVSTCA9IG1fY29udGV4dC51cmwoKTsKKyAgICAgICAgICAgIHNjcmlw
dEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpjcmVhdGUoRmV0Y2hPcHRpb25zOjpDcmVk
ZW50aWFsczo6U2FtZU9yaWdpbiwgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2NyaXB0LCBS
ZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcpOworICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgYmFzZVVSTCA9IFVSTChVUkwoKSwgc291cmNlT3JpZ2luLnN0cmluZygpKTsKICAgICAg
ICAgaWYgKCFiYXNlVVJMLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiByZWplY3RQcm9t
aXNlKGdsb2JhbE9iamVjdCwgVHlwZUVycm9yLCAiSW1wb3J0ZXIgbW9kdWxlIGtleSBpcyBub3Qg
YSBTeW1ib2wgb3IgYSBTdHJpbmcuIl9zKTsKIAotICAgICAgICBpZiAoc291cmNlT3JpZ2luLmZl
dGNoZXIoKSkKKyAgICAgICAgaWYgKHNvdXJjZU9yaWdpbi5mZXRjaGVyKCkpIHsKICAgICAgICAg
ICAgIHNjcmlwdEZldGNoZXIgPSBzb3VyY2VPcmlnaW4uZmV0Y2hlcigpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRl
KG1fZG9jdW1lbnQuY2hhcnNldCgpKTsKKyAgICAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVj
LndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNmZXRjaC1hbi1pbXBvcnQoKS1t
b2R1bGUtc2NyaXB0LWdyYXBoCisgICAgICAgICAgICAvLyBEZXN0aW5hdGlvbiBzaG91bGQgYmUg
InNjcmlwdCIgZm9yIGR5bmFtaWMtaW1wb3J0LgorICAgICAgICAgICAgaWYgKG1fb3duZXJUeXBl
ID09IE93bmVyVHlwZTo6V29ya2VyT3JXb3JrbGV0KSB7CisgICAgICAgICAgICAgICAgYXV0byYg
ZmV0Y2hlciA9IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPigqc2NyaXB0RmV0Y2hl
cik7CisgICAgICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IFdvcmtlclNjcmlwdEZldGNoZXI6
OmNyZWF0ZShmZXRjaGVyLmNyZWRlbnRpYWxzKCksIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246
OlNjcmlwdCwgZmV0Y2hlci5yZWZlcnJlclBvbGljeSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIGlmICghc2NyaXB0RmV0Y2hlcikgeworICAgICAgICAgICAgaWYgKG1f
b3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpCisgICAgICAgICAgICAgICAgc2NyaXB0
RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4o
bV9jb250ZXh0KS5jaGFyc2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHNjcmlwdEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpjcmVhdGUoRmV0Y2hPcHRpb25z
OjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbiwgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2Ny
aXB0LCBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcpOworICAgICAgICB9CiAgICAgfQogICAg
IEFTU0VSVChiYXNlVVJMLmlzVmFsaWQoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEZldGNoZXIpOwog
CiAgICAgYXV0byBzcGVjaWZpZXIgPSBtb2R1bGVOYW1lLT52YWx1ZShqc0dsb2JhbE9iamVjdCk7
Ci0gICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1fZG9jdW1lbnQsIHNw
ZWNpZmllciwgYmFzZVVSTCk7CisgICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lm
aWVyKG1fY29udGV4dCwgbV9vd25lclR5cGUsIHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYg
KCFyZXN1bHQpCiAgICAgICAgIHJldHVybiByZWplY3RQcm9taXNlKGdsb2JhbE9iamVjdCwgVHlw
ZUVycm9yLCByZXN1bHQuZXJyb3IoKSk7CiAKQEAgLTI4OCw2MiArMzI5LDEwNiBAQCBKU0M6OkpT
T2JqZWN0KiBTY3JpcHRNb2R1bGVMb2FkZXI6OmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpT
Qzo6SlNHbG9iYWxPYmplYwogICAgIHJldHVybiBtZXRhUHJvcGVydGllczsKIH0KIAotdm9pZCBT
Y3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ciYgbG9hZGVyLCBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBwcm9taXNlKQordm9pZCBTY3JpcHRN
b2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKE1vZHVsZVNjcmlwdExvYWRlciYgbW9kdWxlU2Ny
aXB0TG9hZGVyLCBVUkwmJiBzb3VyY2VVUkwsIFJlZjxEZWZlcnJlZFByb21pc2U+IHByb21pc2Up
CiB7CiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBw
YXBpcy5odG1sI2ZldGNoLWEtc2luZ2xlLW1vZHVsZS1zY3JpcHQKIAotICAgIFVSTCBzb3VyY2VV
UkwgPSBsb2FkZXIuc291cmNlVVJMKCk7Ci0gICAgaWYgKCFtX2xvYWRlcnMucmVtb3ZlKCZsb2Fk
ZXIpKQorICAgIGlmICghbV9sb2FkZXJzLnJlbW92ZSgmbW9kdWxlU2NyaXB0TG9hZGVyKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIGxvYWRlci5jbGVhckNsaWVudCgpOworICAgIG1vZHVsZVNjcmlw
dExvYWRlci5jbGVhckNsaWVudCgpOworCisgICAgYXV0byBjYW5vbmljYWxpemVBbmRSZWdpc3Rl
clJlc3BvbnNlVVJMID0gWyZdIChVUkwgcmVzcG9uc2VVUkwsIGJvb2wgaGFzUmVkaXJlY3Rpb25z
LCBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2Ugc291cmNlKSB7CisgICAgICAgIC8vIElmIHdlIGRv
IG5vdCBoYXZlIHJlZGlyZWN0aW9uLCB3ZSBtdXN0IHJlc2VydmUgdGhlIHNvdXJjZSBVUkwncyBm
cmFnbWVudCBleHBsaWNpdGx5IGhlcmUgc2luY2UgUmVzb3VyY2VSZXNwb25zZTo6dXJsKCkgaXMg
dGhlIG9uZSB3aGVuIHdlIGZpcnN0IGNhY2hlIGl0IHRvIE1lbW9yeUNhY2hlLgorICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIHRyYWNrIGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4K
KyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODQy
MAorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEw
NDkwCisgICAgICAgIGlmICghaGFzUmVkaXJlY3Rpb25zICYmIHNvdXJjZSAhPSBSZXNvdXJjZVJl
c3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VV
UkwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICAgICAgcmVzcG9uc2VVUkwu
c2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZpZXIoKSk7Cisg
ICAgICAgIH0KIAotICAgIGF1dG8mIGNhY2hlZFNjcmlwdCA9ICpsb2FkZXIuY2FjaGVkU2NyaXB0
KCk7CisgICAgICAgIG1fcmVxdWVzdFVSTFRvUmVzcG9uc2VVUkxNYXAuYWRkKHNvdXJjZVVSTC5z
dHJpbmcoKSwgcmVzcG9uc2VVUkwpOworICAgICAgICByZXR1cm4gcmVzcG9uc2VVUkw7CisgICAg
fTsKIAotICAgIGlmIChjYWNoZWRTY3JpcHQucmVzb3VyY2VFcnJvcigpLmlzQWNjZXNzQ29udHJv
bCgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsICJDcm9zcy1vcmlnaW4g
c2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGlj
eS4iX3MpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmIChtX293bmVyVHlwZSA9PSBP
d25lclR5cGU6OkRvY3VtZW50KSB7CisgICAgICAgIGF1dG8mIGxvYWRlciA9IHN0YXRpY19jYXN0
PENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciY+KG1vZHVsZVNjcmlwdExvYWRlcik7CisgICAgICAg
IGF1dG8mIGNhY2hlZFNjcmlwdCA9ICpsb2FkZXIuY2FjaGVkU2NyaXB0KCk7CiAKLSAgICBpZiAo
Y2FjaGVkU2NyaXB0LmVycm9yT2NjdXJyZWQoKSkgewotICAgICAgICByZWplY3RUb1Byb3BhZ2F0
ZU5ldHdvcmtFcnJvcigqcHJvbWlzZSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3Jl
ZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQucmVzb3VyY2VFcnJvcigpLmlzQWNj
ZXNzQ29udHJvbCgpKSB7CisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJv
cihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiQ3Jv
c3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hh
cmluZyBwb2xpY3kuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCi0gICAg
aWYgKGNhY2hlZFNjcmlwdC53YXNDYW5jZWxlZCgpKSB7Ci0gICAgICAgIHJlamVjdFRvUHJvcGFn
YXRlTmV0d29ya0Vycm9yKCpwcm9taXNlLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNDYW5j
ZWxlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgaXMgY2FuY2VsZWQuIl9zKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KKyAgICAgICAgaWYgKGNhY2hlZFNjcmlwdC5lcnJvck9jY3VycmVk
KCkpIHsKKyAgICAgICAgICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2Uu
Z2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBt
b2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CiAKLSAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVU
eXBlKGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1pbWVUeXBlKCkpKSB7Ci0gICAgICAgIC8vIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNmZXRj
aC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0Ci0gICAgICAgIC8vIFRoZSByZXN1bHQgb2YgZXh0cmFj
dGluZyBhIE1JTUUgdHlwZSBmcm9tIHJlc3BvbnNlJ3MgaGVhZGVyIGxpc3QgKGlnbm9yaW5nIHBh
cmFtZXRlcnMpIGlzIG5vdCBhIEphdmFTY3JpcHQgTUlNRSB0eXBlLgotICAgICAgICAvLyBGb3Ig
aGlzdG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGlu
Y2x1ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2ls
bCBmYWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCi0g
ICAgICAgIHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIiciLCBjYWNoZWRT
Y3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpLCAiJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0
IE1JTUUgdHlwZS4iKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNo
ZWRTY3JpcHQud2FzQ2FuY2VsZWQoKSkgeworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVO
ZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2Fu
Y2VsZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAotICAgIGlmIChhdXRvKiBwYXJhbWV0ZXJzID0g
bG9hZGVyLnBhcmFtZXRlcnMoKSkgewotICAgICAgICBpZiAoIW1hdGNoSW50ZWdyaXR5TWV0YWRh
dGEoY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpIHsKLSAgICAgICAgICAg
IHByb21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIkNhbm5vdCBsb2FkIHNjcmlw
dCAiLCBpbnRlZ3JpdHlNaXNtYXRjaERlc2NyaXB0aW9uKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVy
cy0+aW50ZWdyaXR5KCkpKSk7CisgICAgICAgIGlmICghTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBw
b3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUoY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5cGUo
KSkpIHsKKyAgICAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL3dlYmFwcGFwaXMuaHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0CisgICAgICAg
ICAgICAvLyBUaGUgcmVzdWx0IG9mIGV4dHJhY3RpbmcgYSBNSU1FIHR5cGUgZnJvbSByZXNwb25z
ZSdzIGhlYWRlciBsaXN0IChpZ25vcmluZyBwYXJhbWV0ZXJzKSBpcyBub3QgYSBKYXZhU2NyaXB0
IE1JTUUgdHlwZS4KKyAgICAgICAgICAgIC8vIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGZldGNo
aW5nIGEgY2xhc3NpYyBzY3JpcHQgZG9lcyBub3QgaW5jbHVkZSBNSU1FIHR5cGUgY2hlY2tpbmcu
IEluIGNvbnRyYXN0LCBtb2R1bGUgc2NyaXB0cyB3aWxsIGZhaWwgdG8gbG9hZCBpZiB0aGV5IGFy
ZSBub3Qgb2YgYSBjb3JyZWN0IE1JTUUgdHlwZS4KKyAgICAgICAgICAgIHByb21pc2UtPnJlamVj
dChUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIiciLCBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1l
VHlwZSgpLCAiJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9CiAKLSAgICBVUkwgcmVzcG9uc2VVUkwg
PSBjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS51cmwoKTsKLSAgICAvLyBJZiB3ZSBkbyBub3QgaGF2
ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2UgVVJMJ3MgZnJhZ21lbnQg
ZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVybCgpIGlzIHRoZSBvbmUg
d2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KLSAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIHRyYWNrIGZyYWdtZW50cyB0aHJvdWdoIHJlZGlyZWN0aW9ucy4KLSAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NDIwCi0gICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ5MAotICAgIGlmICghY2FjaGVk
U2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpICYmIGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLnNvdXJj
ZSgpICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgewotICAgICAg
ICBpZiAoc291cmNlVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQotICAgICAgICAgICAgcmVz
cG9uc2VVUkwuc2V0RnJhZ21lbnRJZGVudGlmaWVyKHNvdXJjZVVSTC5mcmFnbWVudElkZW50aWZp
ZXIoKSk7Ci0gICAgfQorICAgICAgICBpZiAoYXV0byogcGFyYW1ldGVycyA9IGxvYWRlci5wYXJh
bWV0ZXJzKCkpIHsKKyAgICAgICAgICAgIGlmICghbWF0Y2hJbnRlZ3JpdHlNZXRhZGF0YShjYWNo
ZWRTY3JpcHQsIHBhcmFtZXRlcnMtPmludGVncml0eSgpKSkgeworICAgICAgICAgICAgICAgIHBy
b21pc2UtPnJlamVjdChUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIkNhbm5vdCBsb2FkIHNjcmlwdCAi
LCBpbnRlZ3JpdHlNaXNtYXRjaERlc2NyaXB0aW9uKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+
aW50ZWdyaXR5KCkpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
ICAgICAgICB9CiAKLSAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3VyY2VV
Ukwuc3RyaW5nKCksIFdURk1vdmUocmVzcG9uc2VVUkwpKTsKLSAgICBwcm9taXNlLT5yZXNvbHZl
V2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxPYmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7Ci0g
ICAgICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZt
KCksCi0gICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNh
Y2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVy
LnNjcmlwdEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOwotICAgIH0pOworICAgICAgICBj
YW5vbmljYWxpemVBbmRSZWdpc3RlclJlc3BvbnNlVVJMKGNhY2hlZFNjcmlwdC5yZXNwb25zZSgp
LnVybCgpLCBjYWNoZWRTY3JpcHQuaGFzUmVkaXJlY3Rpb25zKCksIGNhY2hlZFNjcmlwdC5yZXNw
b25zZSgpLnNvdXJjZSgpKTsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhb
Jl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAgICAgICAgICAgcmV0
dXJuIEpTQzo6SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKKyAgICAg
ICAgICAgICAgICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgJmNhY2hlZFNj
cmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSwgbG9hZGVyLnNjcmlw
dEZldGNoZXIoKSB9LmpzU291cmNlQ29kZSgpIH0pOworICAgICAgICB9KTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBhdXRvJiBsb2FkZXIgPSBzdGF0aWNfY2FzdDxXb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXImPihtb2R1bGVTY3JpcHRMb2FkZXIpOworICAgICAgICBhdXRvJiB3b3JrZXJTY3JpcHRM
b2FkZXIgPSBsb2FkZXIuc2NyaXB0TG9hZGVyKCk7CisKKyAgICAgICAgaWYgKHdvcmtlclNjcmlw
dExvYWRlci5mYWlsZWQoKSkgeworICAgICAgICAgICAgaWYgKHdvcmtlclNjcmlwdExvYWRlci5l
cnJvcigpLmlzQWNjZXNzQ29udHJvbCgpKSB7CisgICAgICAgICAgICAgICAgcmVqZWN0VG9Qcm9w
YWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6
V2FzRXJyb3JlZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3Jp
Z2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod29ya2VyU2NyaXB0TG9hZGVyLmVy
cm9yKCkuaXNDYW5jZWxsYXRpb24oKSkgeworICAgICAgICAgICAgICAgIHJlamVjdFRvUHJvcGFn
YXRlTmV0d29ya0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldh
c0NhbmNlbGVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4iX3MpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVq
ZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWls
dXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJf
cyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoIU1JTUVU
eXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKHdvcmtlclNjcmlwdExv
YWRlci5yZXNwb25zZU1JTUVUeXBlKCkpKSB7CisgICAgICAgICAgICAvLyBodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUt
bW9kdWxlLXNjcmlwdAorICAgICAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEg
TUlNRSB0eXBlIGZyb20gcmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVy
cykgaXMgbm90IGEgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCisgICAgICAgICAgICAvLyBGb3IgaGlz
dG9yaWNhbCByZWFzb25zLCBmZXRjaGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1
ZGUgTUlNRSB0eXBlIGNoZWNraW5nLiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBm
YWlsIHRvIGxvYWQgaWYgdGhleSBhcmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCisgICAg
ICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgd29ya2Vy
U2NyaXB0TG9hZGVyLnJlc3BvbnNlTUlNRVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNj
cmlwdCBNSU1FIHR5cGUuIikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKGF1dG8qIHBhcmFtZXRlcnMgPSBsb2FkZXIucGFyYW1ldGVycygpKSB7CisgICAg
ICAgICAgICAvLyBJZiB0aGlzIGlzIHRvcC1sZXZlbC1tb2R1bGUsIHRoZW4gd2UgZXh0cmFjdCBy
ZWZlcnJlci1wb2xpY3kgYW5kIGFwcGx5IHRvIHRoZSBkZXBlbmRlbnQgbW9kdWxlcy4KKyAgICAg
ICAgICAgIGlmIChwYXJhbWV0ZXJzLT5pc1RvcExldmVsTW9kdWxlKCkpCisgICAgICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hlciY+KGxvYWRlci5zY3JpcHRGZXRjaGVy
KCkpLnNldFJlZmVycmVyUG9saWN5KGxvYWRlci5yZWZlcnJlclBvbGljeSgpKTsKKyAgICAgICAg
fQorCisgICAgICAgIFVSTCByZXNwb25zZVVSTCA9IGNhbm9uaWNhbGl6ZUFuZFJlZ2lzdGVyUmVz
cG9uc2VVUkwod29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlVVJMKCksIHdvcmtlclNjcmlwdExv
YWRlci5pc1JlZGlyZWN0ZWQoKSwgd29ya2VyU2NyaXB0TG9hZGVyLnJlc3BvbnNlU291cmNlKCkp
OworICAgICAgICBwcm9taXNlLT5yZXNvbHZlV2l0aENhbGxiYWNrKFsmXSAoSlNET01HbG9iYWxP
YmplY3QmIGpzR2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAgICByZXR1cm4gSlNDOjpKU1NvdXJj
ZUNvZGU6OmNyZWF0ZShqc0dsb2JhbE9iamVjdC52bSgpLAorICAgICAgICAgICAgICAgIEpTQzo6
U291cmNlQ29kZSB7IFNjcmlwdFNvdXJjZUNvZGUgeyB3b3JrZXJTY3JpcHRMb2FkZXIuc2NyaXB0
KCksIFdURk1vdmUocmVzcG9uc2VVUkwpLCB7IH0sIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VU
eXBlOjpNb2R1bGUsIGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUoKSB9KTsK
KyAgICAgICAgfSk7CisgICAgfQogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5oCmluZGV4IGRlMjlkMmY0YmYwOTZiNjBjMzY5OTgwMzE2
YzE0ODZiMjgyYWJmMDkuLmRmMzRkNTUxYTExY2Q5OGY0ZTIzNmEyYWExZjQ4Mjc5ZDk2NGM2ODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5o
CkBAIC0yNSw4ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xp
ZW50LmgiCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiTW9kdWxl
U2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CkBAIC00NSwxNiArNDUsMTcgQEAgY2xhc3MgU291cmNlT3JpZ2luOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50OwogY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7Citj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1jbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIg
ZmluYWwgOiBwcml2YXRlIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7CitjbGFzcyBT
Y3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NyaXB0TW9kdWxlTG9hZGVyKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU2NyaXB0TW9kdWxlTG9h
ZGVyKERvY3VtZW50Jik7CisgICAgZW51bSBjbGFzcyBPd25lclR5cGUgOiB1aW50OF90IHsgRG9j
dW1lbnQsIFdvcmtlck9yV29ya2xldCB9OworICAgIGV4cGxpY2l0IFNjcmlwdE1vZHVsZUxvYWRl
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgT3duZXJUeXBlKTsKICAgICB+U2NyaXB0TW9kdWxl
TG9hZGVyKCk7CiAKLSAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSB7IHJldHVybiBtX2RvY3VtZW50
OyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCgpIHsgcmV0dXJuIG1fY29u
dGV4dDsgfQogCiAgICAgSlNDOjpJZGVudGlmaWVyIHJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpK
U1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcik7CiAg
ICAgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTVmFsdWUgbW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUg
cGFyYW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpOwpAQCAtNjMsMTMgKzY0LDE1
IEBAIGNsYXNzIFNjcmlwdE1vZHVsZUxvYWRlciBmaW5hbCA6IHByaXZhdGUgQ2FjaGVkTW9kdWxl
U2NyaXB0TG9hZGVyQ2xpZW50IHsKICAgICBKU0M6OkpTT2JqZWN0KiBjcmVhdGVJbXBvcnRNZXRh
UHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1ZSk7CiAKIHByaXZh
dGU6Ci0gICAgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImLCBS
ZWZQdHI8RGVmZXJyZWRQcm9taXNlPikgZmluYWw7CisgICAgdm9pZCBub3RpZnlGaW5pc2hlZChN
b2R1bGVTY3JpcHRMb2FkZXImLCBVUkwmJiwgUmVmPERlZmVycmVkUHJvbWlzZT4pIGZpbmFsOwor
CiAgICAgVVJMIG1vZHVsZVVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsK
ICAgICBVUkwgcmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0Jiwg
SlNDOjpKU1ZhbHVlKTsKIAotICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIG1fY29udGV4dDsKICAgICBIYXNoTWFwPFN0cmluZywgVVJMPiBtX3Jl
cXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwOwotICAgIEhhc2hTZXQ8UmVmPENhY2hlZE1vZHVsZVNj
cmlwdExvYWRlcj4+IG1fbG9hZGVyczsKKyAgICBIYXNoU2V0PFJlZjxNb2R1bGVTY3JpcHRMb2Fk
ZXI+PiBtX2xvYWRlcnM7CisgICAgT3duZXJUeXBlIG1fb3duZXJUeXBlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0U291cmNlQ29kZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291
cmNlQ29kZS5oCmluZGV4IGM3MDQ2MjZmYjczM2RiNDcyYmRhNTAyMzYyNDFhNmU3NDBlMjc4MmIu
LjEwZmE3ZThiNDQ5YzhiODQ5ZWIzN2NjMWYyYzg2NmZhODkzYWFkNmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKQEAgLTU3LDcgKzU3LDcgQEAg
Y2xhc3MgU2NyaXB0U291cmNlQ29kZSB7CiAgICAgewogICAgIH0KIAotICAgIFNjcmlwdFNvdXJj
ZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIFVSTCYmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9u
JiBzdGFydFBvc2l0aW9uLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBl
LCBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hlcj4mJiBzY3JpcHRGZXRjaGVyKQorICAgIFNjcmlwdFNv
dXJjZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIFVSTCYmIHVybCwgY29uc3QgVGV4dFBvc2l0
aW9uJiBzdGFydFBvc2l0aW9uLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VU
eXBlLCBSZWY8SlNDOjpTY3JpcHRGZXRjaGVyPiYmIHNjcmlwdEZldGNoZXIpCiAgICAgICAgIDog
bV9wcm92aWRlcihKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBKU0M6
OlNvdXJjZU9yaWdpbiB7IHVybCwgV1RGTW92ZShzY3JpcHRGZXRjaGVyKSB9LCB1cmwuc3RyaW5n
KCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpKQogICAgICAgICAsIG1fY29kZShtX3Byb3Zp
ZGVyLmNvcHlSZWYoKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQ
b3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg0N2U5YWYzZDNmYWRhZDRjNzkyOTdkNGEzOTFhYWIzMDE2NTQyYTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRM
b2FkZXIuY3BwCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorCisjaW5jbHVkZSAi
Q2FjaGVkU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCIK
KyNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKKyNpbmNsdWRlICJTY3JpcHRDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2Ny
aXB0U291cmNlQ29kZS5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIuaCIKKyNpbmNs
dWRlICJXb3JrZXJTY3JpcHRMb2FkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyPiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0
ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9t
aXNlLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0
Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwg
V1RGTW92ZShwYXJhbWV0ZXJzKSkpOworfQorCitXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Oldv
cmtlck1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwg
RGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRj
aGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCisgICAgOiBN
b2R1bGVTY3JpcHRMb2FkZXIoY2xpZW50LCBwcm9taXNlLCBzY3JpcHRGZXRjaGVyLCBXVEZNb3Zl
KHBhcmFtZXRlcnMpKQorICAgICwgbV9zY3JpcHRMb2FkZXIoV29ya2VyU2NyaXB0TG9hZGVyOjpj
cmVhdGUoKSkKK3sKK30KKworV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjp+V29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyKCkKK3sKKyAgICBtX3NjcmlwdExvYWRlci0+Y2FuY2VsKCk7Cit9CisKK2Jv
b2wgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIFVSTCYmIHNvdXJjZVVSTCkKK3sKKyAgICBtX3NvdXJjZVVSTCA9IFdURk1vdmUo
c291cmNlVVJMKTsKKworICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsgbV9zb3VyY2VVUkwg
fTsKKworICAgIEZldGNoT3B0aW9ucyBmZXRjaE9wdGlvbnM7CisgICAgZmV0Y2hPcHRpb25zLm1v
ZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM7CisgICAgZmV0Y2hPcHRpb25zLmNhY2hlID0g
RmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdDsKKyAgICBmZXRjaE9wdGlvbnMucmVkaXJlY3Qg
PSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c7CisgICAgZmV0Y2hPcHRpb25zLmNyZWRl
bnRpYWxzID0gc3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hlciY+KHNjcmlwdEZldGNoZXIo
KSkuY3JlZGVudGlhbHMoKTsKKyAgICBmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPSBzdGF0aWNf
Y2FzdDxXb3JrZXJTY3JpcHRGZXRjaGVyJj4oc2NyaXB0RmV0Y2hlcigpKS5kZXN0aW5hdGlvbigp
OworICAgIGZldGNoT3B0aW9ucy5yZWZlcnJlclBvbGljeSA9IHN0YXRpY19jYXN0PFdvcmtlclNj
cmlwdEZldGNoZXImPihzY3JpcHRGZXRjaGVyKCkpLnJlZmVycmVyUG9saWN5KCk7CisgICAgYXV0
byBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IGNvbnRleHQuc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1l
bnQ6OkVuZm9yY2VDaGlsZFNyY0RpcmVjdGl2ZTsKKworICAgIG1fc2NyaXB0TG9hZGVyLT5sb2Fk
QXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9w
dGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNN
b2RlOjpBbGwsICp0aGlzLCB0YXNrTW9kZSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmVm
ZXJyZXJQb2xpY3kgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpyZWZlcnJlclBvbGljeSgpCit7
CisgICAgaWYgKGF1dG8gcG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShtX3NjcmlwdExvYWRl
ci0+cmVmZXJyZXJQb2xpY3koKSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OkhUVFBIZWFkZXIpKQor
ICAgICAgICByZXR1cm4gKnBvbGljeTsKKyAgICByZXR1cm4gUmVmZXJyZXJQb2xpY3k6OkVtcHR5
U3RyaW5nOworfQorCit2b2lkIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bm90aWZ5RmluaXNo
ZWQoKQoreworICAgIEFTU0VSVChtX3Byb21pc2UpOworCisgICAgYXV0byBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyk7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+
bm90aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9zb3VyY2VVUkwpLCBtX3Byb21pc2UucmVs
ZWFzZU5vbk51bGwoKSk7Cit9CisKK1N0cmluZyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OnRh
c2tNb2RlKCkKK3sKKyAgICByZXR1cm4gImxvYWRNb2R1bGVzSW5Xb3JrZXJPcldvcmtsZXRNb2Rl
Il9zOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtl
ck1vZHVsZVNjcmlwdExvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyOGI4YjE3NjE0NWMyNzBiYWI2NGYw
YzBmNGM3ODdlYjI0YTMwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaApAQCAtMCwwICsxLDY3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNb2R1bGVTY3JpcHRMb2FkZXIuaCIK
KyNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUmVm
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1VSTC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERl
ZmVycmVkUHJvbWlzZTsKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworY2xhc3MgTW9kdWxlRmV0
Y2hQYXJhbWV0ZXJzOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIE1vZHVs
ZVNjcmlwdExvYWRlckNsaWVudDsKK2NsYXNzIFdvcmtlclNjcmlwdExvYWRlcjsKKworY2xhc3Mg
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExvYWRl
ciwgcHJpdmF0ZSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyPiBjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVy
Q2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgV29ya2VyU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxN
b2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOworCisgICAgdmlydHVhbCB+V29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyKCk7CisKKyAgICBib29sIGxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFVS
TCYmIHNvdXJjZVVSTCk7CisKKyAgICBXb3JrZXJTY3JpcHRMb2FkZXImIHNjcmlwdExvYWRlcigp
IHsgcmV0dXJuIG1fc2NyaXB0TG9hZGVyLmdldCgpOyB9CisKKyAgICBzdGF0aWMgU3RyaW5nIHRh
c2tNb2RlKCk7CisgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKTsKKworcHJpdmF0
ZToKKyAgICBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
JiwgRGVmZXJyZWRQcm9taXNlJiwgV29ya2VyU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVG
ZXRjaFBhcmFtZXRlcnM+JiYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWdu
ZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgbm90
aWZ5RmluaXNoZWQoKSBmaW5hbDsKKworICAgIFJlZjxXb3JrZXJTY3JpcHRMb2FkZXI+IG1fc2Ny
aXB0TG9hZGVyOworICAgIFVSTCBtX3NvdXJjZVVSTDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlw
dEZldGNoZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdEZldGNo
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45OWUyZDI1ZDg4NTA0Zjc4NDQ3MWZlYzRkZWZhMjU2ZDZlNTdmOGZl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0RmV0Y2hlci5oCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkxvYWRhYmxlU2NyaXB0LmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJh
bWV0ZXJzLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0RmV0Y2hlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFNjcmlwdDsKK2NsYXNzIERvY3Vt
ZW50OworCitjbGFzcyBXb3JrZXJTY3JpcHRGZXRjaGVyIGZpbmFsIDogcHVibGljIEpTQzo6U2Ny
aXB0RmV0Y2hlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXb3JrZXJTY3JpcHRGZXRjaGVy
PiBjcmVhdGUoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFscywgRmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xp
Y3kpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJTY3JpcHRGZXRj
aGVyKGNyZWRlbnRpYWxzLCBkZXN0aW5hdGlvbiwgcmVmZXJyZXJQb2xpY3kpKTsKKyAgICB9CisK
KyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIGNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1
cm4gbV9jcmVkZW50aWFsczsgfQorICAgIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGlu
YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9CisgICAgUmVmZXJyZXJQb2xp
Y3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3JlZmVycmVyUG9saWN5OyB9CisK
KyAgICB2b2lkIG5vdGlmeUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmluZ0ltcGwmIG1vZHVsZUtl
eSkKKyAgICB7CisgICAgICAgIG1fbW9kdWxlS2V5ID0gJm1vZHVsZUtleTsKKyAgICAgICAgbV9p
c0xvYWRlZCA9IHRydWU7CisgICAgfQorCisgICAgdm9pZCBub3RpZnlMb2FkRmFpbGVkKExvYWRh
YmxlU2NyaXB0OjpFcnJvciYmIGVycm9yKQorICAgIHsKKyAgICAgICAgbV9lcnJvciA9IFdURk1v
dmUoZXJyb3IpOworICAgICAgICBtX2lzTG9hZGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lk
IG5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpCisgICAgeworICAgICAgICBtX3dhc0NhbmNlbGVkID0g
dHJ1ZTsKKyAgICAgICAgbV9pc0xvYWRlZCA9IHRydWU7CisgICAgfQorCisgICAgYm9vbCBpc0xv
YWRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb2FkZWQ7IH0KKyAgICBPcHRpb25hbDxMb2FkYWJs
ZVNjcmlwdDo6RXJyb3I+IGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQorICAgIGJv
b2wgd2FzQ2FuY2VsZWQoKSBjb25zdCB7IHJldHVybiBtX3dhc0NhbmNlbGVkOyB9CisgICAgVW5p
cXVlZFN0cmluZ0ltcGwqIG1vZHVsZUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlS2V5Lmdl
dCgpOyB9CisgICAgTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKCkgeyByZXR1cm4g
bV9wYXJhbWV0ZXJzLmdldCgpOyB9CisKKyAgICB2b2lkIHNldFJlZmVycmVyUG9saWN5KFJlZmVy
cmVyUG9saWN5IHJlZmVycmVyUG9saWN5KQorICAgIHsKKyAgICAgICAgbV9yZWZlcnJlclBvbGlj
eSA9IHJlZmVycmVyUG9saWN5OworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFdvcmtlclNjcmlw
dEZldGNoZXIoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFscywgRmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xp
Y3kpCisgICAgICAgIDogbV9jcmVkZW50aWFscyhjcmVkZW50aWFscykKKyAgICAgICAgLCBtX2Rl
c3RpbmF0aW9uKGRlc3RpbmF0aW9uKQorICAgICAgICAsIG1fcmVmZXJyZXJQb2xpY3kocmVmZXJy
ZXJQb2xpY3kpCisgICAgICAgICwgbV9wYXJhbWV0ZXJzKE1vZHVsZUZldGNoUGFyYW1ldGVyczo6
Y3JlYXRlKGVtcHR5U3RyaW5nKCksIC8qIGlzVG9wTGV2ZWxNb2R1bGUgKi8gdHJ1ZSkpCisgICAg
eworICAgIH0KKworcHJpdmF0ZToKKyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIG1fY3Jl
ZGVudGlhbHM7CisgICAgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBtX2Rlc3RpbmF0aW9uOwor
ICAgIFJlZmVycmVyUG9saWN5IG1fcmVmZXJyZXJQb2xpY3kgeyBSZWZlcnJlclBvbGljeTo6RW1w
dHlTdHJpbmcgfTsKKyAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IG1fbW9kdWxlS2V5Owor
ICAgIFJlZjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+IG1fcGFyYW1ldGVyczsKKyAgICBPcHRpb25h
bDxMb2FkYWJsZVNjcmlwdDo6RXJyb3I+IG1fZXJyb3I7CisgICAgYm9vbCBtX3dhc0NhbmNlbGVk
IHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNMb2FkZWQgeyBmYWxzZSB9OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMWI5ZjcyNjYzOTIx
MDg1YzU4ZDA4YjViMDc5OTY1NjlmZWE2NjJhYS4uNTA4MGVhODU5NTg4ZmU5MzljN2EyYzdmNjVh
ODgxYjRhN2I0OGEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02MTUsNyArNjE1LDcg
QEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgU2V0dGluZ3MmIHNldHRp
bmdzLCBjb25zdCBVUkwmIHVybCwgRG9jdW0KICAgICAsIG1fZG9jdW1lbnRDcmVhdGlvblRpbWUo
TW9ub3RvbmljVGltZTo6bm93KCkpCiAjZW5kaWYKICAgICAsIG1fc2NyaXB0UnVubmVyKG1ha2VV
bmlxdWU8U2NyaXB0UnVubmVyPigqdGhpcykpCi0gICAgLCBtX21vZHVsZUxvYWRlcihtYWtlVW5p
cXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMpKQorICAgICwgbV9tb2R1bGVMb2FkZXIobWFr
ZVVuaXF1ZTxTY3JpcHRNb2R1bGVMb2FkZXI+KCp0aGlzLCBTY3JpcHRNb2R1bGVMb2FkZXI6Ok93
bmVyVHlwZTo6RG9jdW1lbnQpKQogI2lmIEVOQUJMRShYU0xUKQogICAgICwgbV9hcHBseVBlbmRp
bmdYU0xUcmFuc2Zvcm1zVGltZXIoKnRoaXMsICZEb2N1bWVudDo6YXBwbHlQZW5kaW5nWFNMVHJh
bnNmb3Jtc1RpbWVyRmlyZWQpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FeGNlcHRpb25Db2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5oCmlu
ZGV4IGY2YjU1OGVhODJkNzkzNjhlNjFhZGIwNjBjZjBiNGVhMWRiZWEyMGMuLjE3ZGU3NDM0NzJm
NzczMWIwM2M5OGZlY2U3YjFlYjFiOTYwMWU3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FeGNlcHRpb25Db2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNv
ZGUuaApAQCAtNjEsNiArNjEsNyBAQCBlbnVtIEV4Y2VwdGlvbkNvZGUgewogICAgIC8vIFNpbXBs
ZSBleGNlcHRpb25zIChodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNpZGwtZXhjZXB0
aW9ucykuCiAgICAgUmFuZ2VFcnJvciwKICAgICBUeXBlRXJyb3IsCisgICAgSlNTeW50YXhFcnJv
ciwgLy8gRGlmZmVyZW50IGZyb20gRE9NIFNZTlRBWF9FUlIuCiAKICAgICAvLyBOb24tc3RhbmRh
cmQgZXJyb3IuCiAgICAgU3RhY2tPdmVyZmxvd0Vycm9yLApAQCAtMTExLDYgKzExMiw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RXhjZXB0aW9uQ29kZT4gewogICAg
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6Ok5vdEFsbG93ZWRFcnJvciwKICAgICBXZWJDb3JlOjpF
eGNlcHRpb25Db2RlOjpSYW5nZUVycm9yLAogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OlR5
cGVFcnJvciwKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlOjpKU1N5bnRheEVycm9yLAogICAg
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OlN0YWNrT3ZlcmZsb3dFcnJvciwKICAgICBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlOjpFeGlzdGluZ0V4Y2VwdGlvbkVycm9yCiAgICAgPjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTG9hZGFibGVNb2R1bGVTY3JpcHQuY3BwCmluZGV4IDlhMjVjMTY1ODhlZWNh
ZDY3OGZiOTExZWM4NjIyZjQyNDI1OTJiNWEuLmZmOTBhMjc5M2NhYjA2ODllZTA2YTI4ODJhYzY0
Y2ZhMmM2NWU5NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVs
ZVNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0
LmNwcApAQCAtNDEsNyArNDEsNyBAQCBSZWY8TG9hZGFibGVNb2R1bGVTY3JpcHQ+IExvYWRhYmxl
TW9kdWxlU2NyaXB0OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBub25jZSwgY29ucwogCiBMb2FkYWJs
ZU1vZHVsZVNjcmlwdDo6TG9hZGFibGVNb2R1bGVTY3JpcHQoY29uc3QgU3RyaW5nJiBub25jZSwg
Y29uc3QgU3RyaW5nJiBpbnRlZ3JpdHksIFJlZmVycmVyUG9saWN5IHBvbGljeSwgY29uc3QgU3Ry
aW5nJiBjcm9zc09yaWdpbk1vZGUsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQXRvbVN0
cmluZyYgaW5pdGlhdG9yTmFtZSwgYm9vbCBpc0luVXNlckFnZW50U2hhZG93VHJlZSkKICAgICA6
IExvYWRhYmxlU2NyaXB0KG5vbmNlLCBwb2xpY3ksIGNyb3NzT3JpZ2luTW9kZSwgY2hhcnNldCwg
aW5pdGlhdG9yTmFtZSwgaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUpCi0gICAgLCBtX3BhcmFtZXRl
cnMoTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzOjpjcmVhdGUoaW50ZWdyaXR5KSkKKyAgICAsIG1fcGFy
YW1ldGVycyhNb2R1bGVGZXRjaFBhcmFtZXRlcnM6OmNyZWF0ZShpbnRlZ3JpdHksIC8qIGlzVG9w
TGV2ZWxNb2R1bGUgKi8gdHJ1ZSkpCiB7CiB9CiAKQEAgLTg4LDE2ICs4OCw0IEBAIHZvaWQgTG9h
ZGFibGVNb2R1bGVTY3JpcHQ6OmV4ZWN1dGUoU2NyaXB0RWxlbWVudCYgc2NyaXB0RWxlbWVudCkK
ICAgICBzY3JpcHRFbGVtZW50LmV4ZWN1dGVNb2R1bGVTY3JpcHQoKnRoaXMpOwogfQogCi12b2lk
IExvYWRhYmxlTW9kdWxlU2NyaXB0Ojpsb2FkKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJM
JiByb290VVJMKQotewotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpCi0g
ICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KCp0aGlzLCByb290VVJMLnN0
cmluZygpLCBtX3BhcmFtZXRlcnMuY29weVJlZigpKTsKLX0KLQotdm9pZCBMb2FkYWJsZU1vZHVs
ZVNjcmlwdDo6bG9hZChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUm
IHNvdXJjZUNvZGUpCi17Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkK
LSAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoKnRoaXMsIHNvdXJjZUNv
ZGUpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1
bGVTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oCmlu
ZGV4IGJiNzk5NTRkN2I5OWIwZWQwNmJmZTU1ZWY4NTRlY2NlMjFmMzU4NzcuLmQyNTM1OTYzZjY0
OGIwMmE4YTAxZmQ2M2JiMWUzODEzODZjZWU0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2Fk
YWJsZU1vZHVsZVNjcmlwdC5oCkBAIC01MCwxNSArNTAsMTQgQEAgY2xhc3MgTG9hZGFibGVNb2R1
bGVTY3JpcHQgZmluYWwgOiBwdWJsaWMgTG9hZGFibGVTY3JpcHQgewogCiAgICAgdm9pZCBzZXRF
cnJvcihFcnJvciYmKTsKIAotICAgIHZvaWQgbG9hZChEb2N1bWVudCYsIGNvbnN0IFVSTCYgcm9v
dFVSTCk7Ci0gICAgdm9pZCBsb2FkKERvY3VtZW50JiwgY29uc3QgU2NyaXB0U291cmNlQ29kZSYp
OwotCiAgICAgdm9pZCBub3RpZnlMb2FkQ29tcGxldGVkKFVuaXF1ZWRTdHJpbmdJbXBsJik7CiAg
ICAgdm9pZCBub3RpZnlMb2FkRmFpbGVkKExvYWRhYmxlU2NyaXB0OjpFcnJvciYmKTsKICAgICB2
b2lkIG5vdGlmeUxvYWRXYXNDYW5jZWxlZCgpOwogCiAgICAgVW5pcXVlZFN0cmluZ0ltcGwqIG1v
ZHVsZUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kdWxlS2V5LmdldCgpOyB9CiAKKyAgICBNb2R1
bGVGZXRjaFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMoKSB7IHJldHVybiBtX3BhcmFtZXRlcnMuZ2V0
KCk7IH0KKwogcHJpdmF0ZToKICAgICBMb2FkYWJsZU1vZHVsZVNjcmlwdChjb25zdCBTdHJpbmcm
IG5vbmNlLCBjb25zdCBTdHJpbmcmIGludGVncml0eSwgUmVmZXJyZXJQb2xpY3ksIGNvbnN0IFN0
cmluZyYgY3Jvc3NPcmlnaW5Nb2RlLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIGNvbnN0IEF0b21T
dHJpbmcmIGluaXRpYXRvck5hbWUsIGJvb2wgaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgKaW5kZXggMjQ4NDliNmY2
N2IyYzAxZTJjOTFmYjlhNDczM2RlN2VlNGIwMzA0NC4uNjVkODAwMWUxYzJlYWEyODBmNGNmN2Vj
ZDQ5YTFmZDZhMTQ4MGI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUZl
dGNoUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVGZXRjaFBhcmFt
ZXRlcnMuaApAQCAtMzEsMjAgKzMxLDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzIDogcHVibGljIEpTQzo6U2NyaXB0RmV0Y2hQYXJhbWV0ZXJz
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE1vZHVsZUZldGNoUGFyYW1ldGVycz4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgaW50ZWdyaXR5KQorICAgIHN0YXRpYyBSZWY8TW9kdWxlRmV0Y2hQYXJh
bWV0ZXJzPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBpbnRlZ3JpdHksIGJvb2wgaXNUb3BMZXZlbE1v
ZHVsZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1vZHVsZUZldGNoUGFy
YW1ldGVycyhpbnRlZ3JpdHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzKGludGVncml0eSwgaXNUb3BMZXZlbE1vZHVsZSkpOwogICAgIH0KIAog
ICAgIGNvbnN0IFN0cmluZyYgaW50ZWdyaXR5KCkgY29uc3QgeyByZXR1cm4gbV9pbnRlZ3JpdHk7
IH0KKyAgICBib29sIGlzVG9wTGV2ZWxNb2R1bGUoKSBjb25zdCB7IHJldHVybiBtX2lzVG9wTGV2
ZWxNb2R1bGU7IH0KIAogcHJpdmF0ZToKLSAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMoY29uc3Qg
U3RyaW5nJiBpbnRlZ3JpdHkpCisgICAgTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzKGNvbnN0IFN0cmlu
ZyYgaW50ZWdyaXR5LCBib29sIGlzVG9wTGV2ZWxNb2R1bGUpCiAgICAgICAgIDogbV9pbnRlZ3Jp
dHkoaW50ZWdyaXR5KQorICAgICAgICAsIG1faXNUb3BMZXZlbE1vZHVsZShpc1RvcExldmVsTW9k
dWxlKQogICAgIHsKICAgICB9CiAKICAgICBTdHJpbmcgbV9pbnRlZ3JpdHk7CisgICAgYm9vbCBt
X2lzVG9wTGV2ZWxNb2R1bGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggMDU3NThiNjAwYzc1MjJiNDdmMzY0YmE2YTE4
ZDM1ZjE3MzExMDdmOS4uNWU5OWYwZjU3NzdiM2IyMTU4ZGQwZmE0YmMzODI3NzZjZGIzNDgxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2lu
Y2x1ZGUgIkxvYWRhYmxlQ2xhc3NpY1NjcmlwdC5oIgogI2luY2x1ZGUgIkxvYWRhYmxlTW9kdWxl
U2NyaXB0LmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1vZHVs
ZUZldGNoUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBlbmRpbmdTY3JpcHQuaCIKICNpbmNsdWRl
ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTVkdTY3JpcHRFbGVtZW50
LmgiCkBAIC0zNTEsOCArMzUyLDExIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdE1vZHVs
ZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiAgICAgICAg
ICAgICBzY3JpcHRDaGFyc2V0KCksCiAgICAgICAgICAgICBtX2VsZW1lbnQubG9jYWxOYW1lKCks
CiAgICAgICAgICAgICBtX2VsZW1lbnQuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSk7Ci0gICAg
ICAgIHNjcmlwdC0+bG9hZChtX2VsZW1lbnQuZG9jdW1lbnQoKSwgbW9kdWxlU2NyaXB0Um9vdFVS
TCk7CiAgICAgICAgIG1fbG9hZGFibGVTY3JpcHQgPSBXVEZNb3ZlKHNjcmlwdCk7CisgICAgICAg
IGlmIChhdXRvKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkpIHsKKyAgICAg
ICAgICAgIGF1dG8mIHNjcmlwdCA9IGRvd25jYXN0PExvYWRhYmxlTW9kdWxlU2NyaXB0PigqbV9s
b2FkYWJsZVNjcmlwdC5nZXQoKSk7CisgICAgICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1v
ZHVsZVNjcmlwdChzY3JpcHQsIG1vZHVsZVNjcmlwdFJvb3RVUkwuc3RyaW5nKCksIG1ha2VSZWYo
c2NyaXB0LnBhcmFtZXRlcnMoKSkpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIApAQCAtMzY3LDggKzM3MSw5IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdE1v
ZHVsZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24pCiAgICAg
aWYgKCFjb250ZW50U2VjdXJpdHlQb2xpY3kuYWxsb3dJbmxpbmVTY3JpcHQobV9lbGVtZW50LmRv
Y3VtZW50KCkudXJsKCkuc3RyaW5nKCksIG1fc3RhcnRMaW5lTnVtYmVyLCBzb3VyY2VDb2RlLnNv
dXJjZSgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSwgaGFzS25vd25Ob25jZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIHNjcmlwdC0+bG9hZChtX2VsZW1lbnQuZG9jdW1lbnQoKSwg
c291cmNlQ29kZSk7CiAgICAgbV9sb2FkYWJsZVNjcmlwdCA9IFdURk1vdmUoc2NyaXB0KTsKKyAg
ICBpZiAoYXV0byogZnJhbWUgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAg
ICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdChkb3duY2FzdDxMb2FkYWJsZU1vZHVs
ZVNjcmlwdD4oKm1fbG9hZGFibGVTY3JpcHQuZ2V0KCkpLCBzb3VyY2VDb2RlKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFi
bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3Bw
CmluZGV4IDI3MTdjODYxYzc0YjBmMmFlYmNkZTQwODcwMGUyYTlhMDM3Mzc1OTUuLjFiNjUzMmMz
YjBlYWE4MGQ5YmQ0NmM2ZDQzMjEzNjk2MjFjMDE5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTEwMSwxMCArMTAxLDEwIEBAIFRocmVhZGFibGVM
b2FkZXJPcHRpb25zIFRocmVhZGFibGVMb2FkZXJPcHRpb25zOjppc29sYXRlZENvcHkoKSBjb25z
dAogfQogCiAKLVJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBUaHJlYWRhYmxlTG9hZGVyOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVGhyZWFkYWJsZUxvYWRlckNsaWVu
dCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9h
ZGVyT3B0aW9ucyYgb3B0aW9ucywgU3RyaW5nJiYgcmVmZXJyZXIpCitSZWZQdHI8VGhyZWFkYWJs
ZUxvYWRlcj4gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmIGNsaWVudCwgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMsIFN0cmlu
ZyYmIHJlZmVycmVyLCBTdHJpbmcmJiB0YXNrTW9kZSkKIHsKICAgICBpZiAoaXM8V29ya2VyR2xv
YmFsU2NvcGU+KGNvbnRleHQpIHx8IChpczxXb3JrbGV0R2xvYmFsU2NvcGU+KGNvbnRleHQpICYm
IGRvd25jYXN0PFdvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkud29ya2VyT3JXb3JrbGV0VGhy
ZWFkKCkpKQotICAgICAgICByZXR1cm4gV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKHN0
YXRpY19jYXN0PFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlJj4oY29udGV4dCksIGNsaWVudCwg
V29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSwgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucywg
V1RGTW92ZShyZWZlcnJlcikpOworICAgICAgICByZXR1cm4gV29ya2VyVGhyZWFkYWJsZUxvYWRl
cjo6Y3JlYXRlKHN0YXRpY19jYXN0PFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlJj4oY29udGV4
dCksIGNsaWVudCwgV1RGTW92ZSh0YXNrTW9kZSksIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMs
IFdURk1vdmUocmVmZXJyZXIpKTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG51bGxwdHI7
CiAgICAgaWYgKGlzPFdvcmtsZXRHbG9iYWxTY29wZT4oY29udGV4dCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaAppbmRleCBjMmIyNDVjM2ViYjhiYzkzMGVmNGQxNzJi
YTE1MDlhMTc5ZjFkN2E2Li4xYWM3MDRiNGMzYjUwYjBmZmRhMDM0MjhjM2NlN2RhMTQ5ODgyNjM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmgKQEAgLTc0LDcgKzc0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShU
aHJlYWRhYmxlTG9hZGVyKTsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyB2b2lkIGxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlc291cmNlUmVx
dWVzdCYmLCBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50JiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9w
dGlvbnMmKTsKLSAgICAgICAgc3RhdGljIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBSZXNvdXJj
ZVJlcXVlc3QmJiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmLCBTdHJpbmcmJiByZWZl
cnJlciA9IFN0cmluZygpKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVy
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQm
LCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMmLCBTdHJp
bmcmJiByZWZlcnJlciA9IFN0cmluZygpLCBTdHJpbmcmJiB0YXNrTW9kZSA9IHsgfSk7CiAKICAg
ICAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJc0RvbmUoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWwoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggMGZjYjYwOWQxMWYyYzkyZTU1NDVjZjc3MDAx
ZTA4MjNmYTg2NWIyNy4uNTdmNDUyYzZlZWE5ZTA2M2ZkNzU4OGRlOTEzNDI3OTBjZDg5OWMxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUuaApAQCAtODEsNiArODEsOCBAQCBjbGFzcyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZSBmaW5hbCA6IHB1YmxpYyBXb3JrZXJHbG9iYWxTY29wZSB7CiAgICAgUmVmUHRyPE1lc3NhZ2VQ
b3J0PiB0YWtlUGVuZGluZ1JUQ1RyYW5zZm9tZXJNZXNzYWdlUG9ydCgpIHsgcmV0dXJuIFdURk1v
dmUobV9wZW5kaW5nUlRDVHJhbnNmb21lck1lc3NhZ2VQb3J0KTsgfQogI2VuZGlmCiAKKyAgICBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyOyB9CisKIHByaXZhdGU6CiAgICAg
dXNpbmcgQmFzZSA9IFdvcmtlckdsb2JhbFNjb3BlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5j
cHAKaW5kZXggYmY2ZTI3NmEzOWMyMzE1Zjg4OTBjNjMzMDMyOWQ2NDRkZmNhZWFhNS4uMDRmZGY1
ODI3NDNlYjk3M2I1MjVkNTRjOGE4ZDhmMzdkODI1MjBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyLmNwcApAQCAtNzQsNiArNzQsOCBAQCBpbmxpbmUgV29ya2VyOjpXb3JrZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZQogICAgICwg
bV9pZGVudGlmaWVyKCJ3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5Ojpj
cmVhdGVJZGVudGlmaWVyKCkpCiAgICAgLCBtX2NvbnRleHRQcm94eShXb3JrZXJHbG9iYWxTY29w
ZVByb3h5OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9ydW50aW1lRmxhZ3MocnVudGltZUZsYWdz
KQorICAgICwgbV90eXBlKG9wdGlvbnMudHlwZSkKKyAgICAsIG1fY3JlZGVudGlhbHMob3B0aW9u
cy5jcmVkZW50aWFscykKIHsKICAgICBzdGF0aWMgYm9vbCBhZGRlZExpc3RlbmVyOwogICAgIGlm
ICghYWRkZWRMaXN0ZW5lcikgewpAQCAtMTE3LDEwICsxMTksMTUgQEAgRXhjZXB0aW9uT3I8UmVm
PFdvcmtlcj4+IFdvcmtlcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IEpTQzo6UnUKIAogICAgIEZldGNoT3B0aW9ucyBmZXRjaE9wdGlvbnM7CiAgICAgZmV0Y2hPcHRp
b25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW47CisgICAgaWYgKHdvcmtl
ci0+bV90eXBlID09IFdvcmtlclR5cGU6Ok1vZHVsZSkKKyAgICAgICAgZmV0Y2hPcHRpb25zLmNy
ZWRlbnRpYWxzID0gd29ya2VyLT5tX2NyZWRlbnRpYWxzOworICAgIGVsc2UKKyAgICAgICAgZmV0
Y2hPcHRpb25zLmNyZWRlbnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9y
aWdpbjsKICAgICBmZXRjaE9wdGlvbnMuY2FjaGUgPSBGZXRjaE9wdGlvbnM6OkNhY2hlOjpEZWZh
dWx0OwogICAgIGZldGNoT3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6
OkZvbGxvdzsKICAgICBmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpXb3JrZXI7Ci0gICAgd29ya2VyLT5tX3NjcmlwdExvYWRlci0+bG9hZEFzeW5j
aHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZmV0Y2hPcHRpb25z
KSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9kZTo6
QWxsLCB3b3JrZXIpOworICAgIHdvcmtlci0+bV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25v
dXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZldGNoT3B0aW9ucyksIGNv
bnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwg
d29ya2VyLmdldCgpLCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKwogICAgIHJldHVy
biB3b3JrZXI7CiB9CiAKQEAgLTIxOSw3ICsyMjYsMTMgQEAgdm9pZCBXb3JrZXI6Om5vdGlmeUZp
bmlzaGVkKCkKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSA9IFJlZmVycmVyUG9s
aWN5OjpFbXB0eVN0cmluZzsKICAgICBpZiAoYXV0byBwb2xpY3kgPSBwYXJzZVJlZmVycmVyUG9s
aWN5KG1fc2NyaXB0TG9hZGVyLT5yZWZlcnJlclBvbGljeSgpLCBSZWZlcnJlclBvbGljeVNvdXJj
ZTo6SFRUUEhlYWRlcikpCiAgICAgICAgIHJlZmVycmVyUG9saWN5ID0gKnBvbGljeTsKLSAgICBt
X2NvbnRleHRQcm94eS5zdGFydFdvcmtlckdsb2JhbFNjb3BlKG1fc2NyaXB0TG9hZGVyLT51cmwo
KSwgbV9uYW1lLCBjb250ZXh0LT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVybCgpKSwgaXNP
bmxpbmUsIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgbV93b3JrZXJDcmVhdGlvblRpbWUsIHJlZmVycmVyUG9saWN5LCBtX3J1bnRpbWVGbGFncyk7
CisKKyAgICBVUkwgcmVzcG9uc2VVUkwgPSBtX3NjcmlwdExvYWRlci0+cmVzcG9uc2VVUkwoKTsK
KyAgICBpZiAoIW1fc2NyaXB0TG9hZGVyLT5pc1JlZGlyZWN0ZWQoKSAmJiBtX3NjcmlwdExvYWRl
ci0+cmVzcG9uc2VTb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VX
b3JrZXIpIHsKKyAgICAgICAgaWYgKG1fc2NyaXB0TG9hZGVyLT51cmwoKS5oYXNGcmFnbWVudElk
ZW50aWZpZXIoKSkKKyAgICAgICAgICAgIHJlc3BvbnNlVVJMLnNldEZyYWdtZW50SWRlbnRpZmll
cihtX3NjcmlwdExvYWRlci0+dXJsKCkuZnJhZ21lbnRJZGVudGlmaWVyKCkpOworICAgIH0KKyAg
ICBtX2NvbnRleHRQcm94eS5zdGFydFdvcmtlckdsb2JhbFNjb3BlKHJlc3BvbnNlVVJMLCBtX25h
bWUsIGNvbnRleHQtPnVzZXJBZ2VudChyZXNwb25zZVVSTCksIGlzT25saW5lLCBtX3NjcmlwdExv
YWRlci0+c2NyaXB0KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgbV9z
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fd29ya2VyQ3JlYXRp
b25UaW1lLCByZWZlcnJlclBvbGljeSwgbV90eXBlLCBtX2NyZWRlbnRpYWxzLCBtX3J1bnRpbWVG
bGFncyk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZCgqY29u
dGV4dCwgbV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlw
dCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKaW5kZXggNTNmNWU2ZmZmMjdjOWZhM2U1
YzBlMDFmMGY2YzQyYzZjYjZmOWQwZS4uMzhhNjIzYTk4ZGJhMzVmZjgwMTNjZDZmYzhjODVjODEw
MjA1MDIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5oCkBAIC0yOSw5ICsyOSwxMSBAQAogI2lu
Y2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAi
RmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2lu
Y2x1ZGUgIlBvc3RNZXNzYWdlT3B0aW9ucy5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRl
ckNsaWVudC5oIgorI2luY2x1ZGUgIldvcmtlclR5cGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtNTUsNiArNTcsOCBAQCBjbGFzcyBXb3JrZXIgZmlu
YWwgOiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZh
dGUgV29yawogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV29ya2VyKTsKIHB1YmxpYzoKICAg
ICBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgIFdvcmtlclR5cGUgdHlwZTsKKyAgICAgICAgRmV0
Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7CiAgICAgICAgIFN0cmluZyBuYW1lOwog
ICAgIH07CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXb3JrZXI+PiBjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgT3B0aW9ucyYpOwpAQCAtNzksNiArODMsOCBAQCBjbGFzcyBXb3JrZXIgZmluYWwgOiBw
dWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV29y
awogICAgIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9uPHZvaWQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKTsKICNlbmRpZgogCisgICAgV29ya2VyVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV29y
a2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OlJ1bnRpbWVGbGFncywgY29uc3QgT3B0
aW9ucyYpOwogCkBAIC0xMTIsNiArMTE4LDggQEAgY2xhc3MgV29ya2VyIGZpbmFsIDogcHVibGlj
IEFic3RyYWN0V29ya2VyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmsKICNp
ZiBFTkFCTEUoV0VCX1JUQykKICAgICBIYXNoU2V0PFN0cmluZz4gbV90cmFuc2Zvcm1lcnM7CiAj
ZW5kaWYKKyAgICBXb3JrZXJUeXBlIG1fdHlwZSB7IFdvcmtlclR5cGU6OkNsYXNzaWMgfTsKKyAg
ICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzIHsgRmV0Y2hSZXF1ZXN0Q3Jl
ZGVudGlhbHM6OlNhbWVPcmlnaW4gfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyLmlkbAppbmRleCA0NWQ2YTA4Njc4NTRlZTQwNGRlN2U3ZDAxMjQ4
Y2ViZjQ0ZGNhN2VkLi43MDIxNzk2ZGY1MDRhZGY4ZTZiOTU4OWFjZTlmMTQ0ODIxZjI5NWYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCkBAIC0zOCw2ICszOCw4IEBACiB9OwogCiBkaWN0
aW9uYXJ5IFdvcmtlck9wdGlvbnMgeworICAgIFdvcmtlclR5cGUgdHlwZSA9ICJjbGFzc2ljIjsK
KyAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFscyA9ICJzYW1lLW9yaWdpbiI7
IC8vIGNyZWRlbnRpYWxzIGlzIG9ubHkgdXNlZCBpZiB0eXBlIGlzICJtb2R1bGUiCiAgICAgRE9N
U3RyaW5nIG5hbWUgPSAiIjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5jcHAKaW5kZXggZGJhYjM0OGU4MGM5ZGU1MGJkMjE1Nzc3YTE0YTM5YTBmNzBl
NDljNy4uY2NkZTkwOWM3Y2I1MmU5Nzc3NGM1YjgxNTgyM2ViY2JiYjA3MGYzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTc0LDYgKzc0LDgg
QEAgV29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckdsb2JhbFNjb3BlKFdvcmtlclRocmVhZFR5cGUg
dHlwZSwgY29uc3QgV29ya2VyUGFyYW1ldGUKICAgICAsIG1fcGVyZm9ybWFuY2UoUGVyZm9ybWFu
Y2U6OmNyZWF0ZSh0aGlzLCBwYXJhbXMudGltZU9yaWdpbikpCiAgICAgLCBtX3JlZmVycmVyUG9s
aWN5KHBhcmFtcy5yZWZlcnJlclBvbGljeSkKICAgICAsIG1fc2V0dGluZ3NWYWx1ZXMocGFyYW1z
LnNldHRpbmdzVmFsdWVzKQorICAgICwgbV93b3JrZXJUeXBlKHBhcmFtcy53b3JrZXJUeXBlKQor
ICAgICwgbV9jcmVkZW50aWFscyhwYXJhbXMuY3JlZGVudGlhbHMpCiB7CiAjaWYgIUVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQogICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uUHJveHkpOwpAQCAt
Mjc0LDYgKzI3NiwxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXb3JrZXJHbG9iYWxTY29wZTo6aW1w
b3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscykKIHsKICAgICBBU1NFUlQoY29u
dGVudFNlY3VyaXR5UG9saWN5KCkpOwogCisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2Uvd29ya2Vycy5odG1sI2ltcG9ydGluZy1zY3JpcHRzLWFuZC1saWJyYXJp
ZXMKKyAgICAvLyAxLiBJZiB3b3JrZXIgZ2xvYmFsIHNjb3BlJ3MgdHlwZSBpcyAibW9kdWxlIiwg
dGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICAgIGlmIChtX3dvcmtlclR5cGUgPT0gV29y
a2VyVHlwZTo6TW9kdWxlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
aW1wb3J0U2NyaXB0cyBjYW5ub3QgYmUgdXNlZCBpZiB3b2Vya2VyIHR5cGUgaXMgXCJtb2R1bGVc
IiJfcyB9OworCiAgICAgVmVjdG9yPFVSTD4gY29tcGxldGVkVVJMczsKICAgICBjb21wbGV0ZWRV
UkxzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodXJscy5zaXplKCkpOwogICAgIGZvciAoYXV0byYg
ZW50cnkgOiB1cmxzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmgKaW5kZXggNDZkNDlkOTRjNTIzOGU0Njg4ZDM5NWQ4N2MyMDYzZWI1NzIwZDFiZi4uNzQ3OTVm
NWMwZjlhMmEzNWQwMDkzMDEyYWQxOGY1N2UzMTdmODI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMTIzLDYgKzEyMyw4IEBAIGNsYXNzIFdvcmtl
ckdsb2JhbFNjb3BlIDogcHVibGljIFN1cHBsZW1lbnRhYmxlPFdvcmtlckdsb2JhbFNjb3BlPiwg
cHVibGljIEJhc2U2CiAKICAgICBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBzZXR0aW5nc1ZhbHVl
cygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1ZXM7IH0KIAorICAgIEZldGNo
T3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBtX2NyZWRl
bnRpYWxzOyB9CisKIHByb3RlY3RlZDoKICAgICBXb3JrZXJHbG9iYWxTY29wZShXb3JrZXJUaHJl
YWRUeXBlLCBjb25zdCBXb3JrZXJQYXJhbWV0ZXJzJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmLCBX
b3JrZXJUaHJlYWQmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBJREJDbGllbnQ6
OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKik7CiAKQEAgLTE2Myw4ICsxNjUs
NiBAQCBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBTdXBwbGVtZW50YWJsZTxXb3Jr
ZXJHbG9iYWxTY29wZT4sIHB1YmxpYyBCYXNlNgogICAgIG11dGFibGUgUmVmUHRyPFdvcmtlckxv
Y2F0aW9uPiBtX2xvY2F0aW9uOwogICAgIG11dGFibGUgUmVmUHRyPFdvcmtlck5hdmlnYXRvcj4g
bV9uYXZpZ2F0b3I7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyT3JXb3JrbGV0U2NyaXB0
Q29udHJvbGxlcj4gbV9zY3JpcHQ7Ci0KICAgICBib29sIG1faXNPbmxpbmU7CiAgICAgYm9vbCBt
X3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeTsKIApAQCAtMTg3LDYg
KzE4Nyw4IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFN1cHBsZW1lbnRhYmxl
PFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIEJhc2U2CiAgICAgc3RkOjp1bmlxdWVfcHRyPENT
U1ZhbHVlUG9vbD4gbV9jc3NWYWx1ZVBvb2w7CiAgICAgUmVmZXJyZXJQb2xpY3kgbV9yZWZlcnJl
clBvbGljeTsKICAgICBTZXR0aW5nczo6VmFsdWVzIG1fc2V0dGluZ3NWYWx1ZXM7CisgICAgV29y
a2VyVHlwZSBtX3dvcmtlclR5cGU7CisgICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBtX2Ny
ZWRlbnRpYWxzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZVByb3h5LmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaAppbmRleCA0MDAwM2MzZTAxMDk5
OTYwZjY0Nzg2MWU3MDE2ODdkMGUzNzFkNzJkLi5lZDY3M2FjOGY3YzBlZTU0YzA2MGVjYjU5MjE2
MzkwZWQ3MGZlMmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlUHJveHkuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZVBy
b3h5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgV29ya2VyR2xvYmFsU2NvcGVQcm94eSYgY3JlYXRl
KFdvcmtlciYpOwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29u
c3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWlu
V29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVm
ZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0
YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmlu
ZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
JiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90
b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIEZldGNoUmVx
dWVzdENyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCB0ZXJtaW5hdGVXb3JrZXJHbG9iYWxTY29wZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcG9z
dE1lc3NhZ2VUb1dvcmtlckdsb2JhbFNjb3BlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb1dvcmtlckdsb2JhbFNjb3BlKEZ1bmN0aW9u
PHZvaWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpPiYmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDE5ZDRiZTY0OTkyZjMw
ZDNjY2U3NjU0N2EzZDIyMThhOThjODQyYzMuLjc4ODM1ODdhN2FmNjIwOWUzZWNjOGU3YjQxYmFk
NDdhZGY2MjI0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2Fn
aW5nUHJveHkuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp+V29y
a2VyTWVzc2FnaW5nUHJveHkoKQogICAgICAgICB8fCAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KCpt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpICYmIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigq
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KS50aHJlYWQoKS50aHJlYWQoKSA9PSAmVGhyZWFkOjpj
dXJyZW50KCkpKTsKIH0KIAotdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJH
bG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQ
b2xpY3kgcmVmZXJyZXJQb2xpY3ksIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncykKK3Zv
aWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJM
JiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGJvb2wgaXNPbmxpbmUsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgY29uc3QgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5
LCBXb3JrZXJUeXBlIHdvcmtlclR5cGUsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRp
YWxzLCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1lRmxhZ3MpCiB7CiAgICAgLy8gRklYTUU6IFRo
aXMgbmVlZCB0byBiZSByZXZpc2l0ZWQgd2hlbiB3ZSBzdXBwb3J0IG5lc3RlZCB3b3JrZXIgb25l
IGRheQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwpAQCAtODksNyArODks
NyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNv
bnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdAogCiAgICAgU29ja2V0UHJvdmlkZXIqIHNvY2tl
dFByb3ZpZGVyID0gZG9jdW1lbnQuc29ja2V0UHJvdmlkZXIoKTsKIAotICAgIFdvcmtlclBhcmFt
ZXRlcnMgcGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwg
aXNPbmxpbmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3JpZ2luLCByZWZlcnJlclBv
bGljeSwgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMoKSB9OworICAgIFdvcmtlclBhcmFtZXRlcnMg
cGFyYW1zID0geyBzY3JpcHRVUkwsIG5hbWUsIGlkZW50aWZpZXIsIHVzZXJBZ2VudCwgaXNPbmxp
bmUsIGNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycywgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCB0aW1lT3JpZ2luLCByZWZlcnJlclBvbGljeSwg
d29ya2VyVHlwZSwgY3JlZGVudGlhbHMsIGRvY3VtZW50LnNldHRpbmdzVmFsdWVzKCkgfTsKICAg
ICBhdXRvIHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHBhcmFtcywgc291
cmNlQ29kZSwgKnRoaXMsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBkb2N1bWVudC50b3BPcmln
aW4oKSwgcHJveHksIHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxhZ3MpOwogCiAgICAgd29ya2Vy
VGhyZWFkQ3JlYXRlZCh0aHJlYWQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IGM1YjU3NWI5ZTYxNWIzZjNmNTk2YmZjM2RmNjgz
Yzg3N2NjNjJiYWIuLmQ5ZTgxZTE1N2EwZjQ4NTJlNDliNTlkMjU2NmE4YTgwZjVmODE4YWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTUw
LDcgKzUwLDcgQEAgY2xhc3MgV29ya2VyTWVzc2FnaW5nUHJveHkgZmluYWwgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8V29ya2VyTWVzc2FnaW5nUHIKIHByaXZhdGU6CiAgICAgLy8gSW1w
bGVtZW50YXRpb25zIG9mIFdvcmtlckdsb2JhbFNjb3BlUHJveHkuCiAgICAgLy8gKE9ubHkgdXNl
IHRoZXNlIGZ1bmN0aW9ucyBpbiB0aGUgd29ya2VyIG9iamVjdCB0aHJlYWQuKQotICAgIHZvaWQg
c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9u
b3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgSlNDOjpSdW50aW1lRmxhZ3Mp
IGZpbmFsOworICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlw
dFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBp
c09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwg
V29ya2VyVHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIEpTQzo6UnVudGltZUZsYWdzKSBm
aW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckdsb2JhbFNjb3BlKCkgZmluYWw7CiAgICAg
dm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFsU2NvcGUoTWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHMmJikgZmluYWw7CiAgICAgdm9pZCBwb3N0VGFza1RvV29ya2VyR2xvYmFsU2NvcGUoRnVuY3Rp
b248dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+JiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRl
eCAyMzg0YTVhOGM3ZDJhMzAyZWVlNWNiNDA1ZTEwNWUwMjVjOTg0M2NjLi4wOGFhZDkwZjQ1ZTA5
ZjlkMTQ5Y2EzOTg1YTYxMzAyMDU0MWZhYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMjYsMTEgKzI2LDE0
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUuaCIKIAorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgorI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlckV2ZW50TG9vcC5oIgog
I2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0VGhy
ZWFkLmgiCiAjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtsZXRHbG9i
YWxTY29wZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTM5LDYgKzQyLDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKTsKIAogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGU6Oldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFdvcmtlclRocmVhZFR5cGUgdHlwZSwgUmVm
PEpTQzo6Vk0+JiYgdm0sIFdvcmtlck9yV29ya2xldFRocmVhZCogdGhyZWFkKQogICAgIDogbV9z
Y3JpcHQobWFrZVVuaXF1ZTxXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyPih0eXBlLCBX
VEZNb3ZlKHZtKSwgdGhpcykpCisgICAgLCBtX21vZHVsZUxvYWRlcihtYWtlVW5pcXVlPFNjcmlw
dE1vZHVsZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlOjpXb3Jr
ZXJPcldvcmtsZXQpKQogICAgICwgbV90aHJlYWQodGhyZWFkKQogICAgICwgbV9pbnNwZWN0b3JD
b250cm9sbGVyKG1ha2VVbmlxdWU8V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcj4oKnRoaXMpKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9i
YWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZS5oCmluZGV4IDZjMjQ0YTBjNDI3ZWUxYzhjNjVmZGNjNzY1OTUyZjg3N2ZkOWIxNmIuLmU0
NzlkZGVhMDRlYTVlMWUyNjZlNTE1YWY5MmNlZDNmOTk1N2VjNTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTI2LDEy
ICsyNiwxNCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2lu
Y2x1ZGUgIkZldGNoT3B0aW9ucy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWRUeXBlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgRXZlbnRMb29wVGFza0dyb3VwOworY2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyOwog
Y2xhc3MgV29ya2VyRXZlbnRMb29wOwogY2xhc3MgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjsK
IGNsYXNzIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI7CkBAIC01NCw2ICs1Niw4IEBA
IGNsYXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIHB1YmxpYyBSZWZDb3VuCiAKICAgICB1bnNpZ25lZCBsb25nIGNyZWF0ZVVuaXF1
ZUlkZW50aWZpZXIoKSB7IHJldHVybiBtX3VuaXF1ZUlkZW50aWZpZXIrKzsgfQogCisgICAgU2Ny
aXB0TW9kdWxlTG9hZGVyJiBtb2R1bGVMb2FkZXIoKSB7IHJldHVybiAqbV9tb2R1bGVMb2FkZXI7
IH0KKwogICAgIC8vIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCiAgICAgRXZlbnRMb29wVGFza0dy
b3VwJiBldmVudExvb3AoKSBmaW5hbDsKICAgICBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0
IGZpbmFsOwpAQCAtNjcsNiArNzEsOCBAQCBjbGFzcyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSA6IHB1YmxpYyBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBwdWJsaWMgUmVmQ291bgogICAgIHZp
cnR1YWwgdm9pZCBzdXNwZW5kKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIHsgfQog
CisgICAgdmlydHVhbCBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKCkgY29u
c3QgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoV29y
a2VyVGhyZWFkVHlwZSwgUmVmPEpTQzo6Vk0+JiYsIFdvcmtlck9yV29ya2xldFRocmVhZCopOwog
CkBAIC04OCw2ICs5NCw3IEBAIGNsYXNzIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlIDogcHVi
bGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBSZWZDb3VuCiAgICAgdm9pZCBkZXJl
ZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcj4gbV9zY3JpcHQ7CisgICAgc3RkOjp1bmlx
dWVfcHRyPFNjcmlwdE1vZHVsZUxvYWRlcj4gbV9tb2R1bGVMb2FkZXI7CiAgICAgV29ya2VyT3JX
b3JrbGV0VGhyZWFkKiBtX3RocmVhZDsKICAgICBSZWZQdHI8V29ya2VyRXZlbnRMb29wPiBtX2V2
ZW50TG9vcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRMb29wVGFza0dyb3VwPiBtX2RlZmF1
bHRUYXNrR3JvdXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9y
V29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBjZDRlYzI0NjgyNTI1YWFiYzY0
MmQ4NzdhMGRhMDExZWJkZTExNDMxLi4xODg3MzVjNGI4NzM1MDkwMjNlNGRmMWJjZTJjODJhZDcx
MmJkM2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xl
dFNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM1LDE1ICszNSwyNCBAQAogI2luY2x1
ZGUgIkpTRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5o
IgogI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiTW9k
dWxlRmV0Y2hGYWlsdXJlS2luZC5oIgorI2luY2x1ZGUgIk1vZHVsZUZldGNoUGFyYW1ldGVycy5o
IgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGll
bnREYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29uc29sZUNsaWVudC5oIgorI2luY2x1ZGUgIldv
cmtlck1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZldGNoZXIu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvRGVmZXJyZWRXb3JrVGltZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9FeGNlcHRpb24uaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRpb25IZWxwZXJz
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvR0NBY3Rpdml0eUNhbGxiYWNrLmg+CisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNJbnRlcm5hbFByb21pc2UuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU01vZHVsZVJl
Y29yZC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTmF0aXZlU3RkRnVuY3Rpb24uaD4K
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1NjcmlwdEZldGNoUGFyYW1ldGVycy5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2NyaXB0RmV0Y2hlci5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1N0cm9uZ0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjI4
LDYgKzIzNywyNDUgQEAgdm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpldmFs
dWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2QKICAgICB9CiB9CiAKK3N0YXRp
YyBJZGVudGlmaWVyIGpzVmFsdWVUb01vZHVsZUtleShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUuaXNTeW1ib2woKSkK
KyAgICAgICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21VaWQoanNDYXN0PFN5bWJvbCo+KHZhbHVl
KS0+cHJpdmF0ZU5hbWUoKSk7CisgICAgQVNTRVJUKHZhbHVlLmlzU3RyaW5nKCkpOworICAgIHJl
dHVybiBhc1N0cmluZyh2YWx1ZSktPnRvSWRlbnRpZmllcihsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
K30KKworSlNDOjpKU1ZhbHVlIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlTW9kdWxlKEpTQzo6SlNNb2R1bGVSZWNvcmQmIG1vZHVsZVJlY29yZCkKK3sKKyAgICBhdXRv
JiBnbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworICAg
IHJldHVybiBtb2R1bGVSZWNvcmQuZXZhbHVhdGUoJmdsb2JhbE9iamVjdCk7Cit9CisKK01lc3Nh
Z2VRdWV1ZVdhaXRSZXN1bHQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1v
ZHVsZVN5bmNocm9ub3VzbHkoV29ya2VyU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgY29u
c3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25G
b3JiaWRkZW4oKSkKKyAgICAgICAgcmV0dXJuIE1lc3NhZ2VRdWV1ZVRlcm1pbmF0ZWQ7CisKKyAg
ICBpbml0U2NyaXB0SWZOZWVkZWQoKTsKKworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2ds
b2JhbFNjb3BlV3JhcHBlci5nZXQoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsK
KyAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisKKyAgICBhdXRvIHByb3RlY3RvciA9IG1h
a2VSZWYoc2NyaXB0RmV0Y2hlcik7CisgICAgeworICAgICAgICBhdXRvJiBwcm9taXNlID0gSlNF
eGVjU3RhdGU6OmxvYWRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBzb3VyY2VDb2RlLmpzU291cmNlQ29k
ZSgpLCBKU0M6OkpTU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKHZtLCB7ICZzY3JpcHRGZXRjaGVyIH0p
KTsKKworICAgICAgICBhdXRvJiBmdWxmaWxsSGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9u
OjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbcHJvdGVjdG9yXShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgLT4gSlNDOjpF
bmNvZGVkSlNWYWx1ZSB7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisgICAgICAgICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgICAgICAgICBJZGVudGlmaWVy
IG1vZHVsZUtleSA9IGpzVmFsdWVUb01vZHVsZUtleShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+
YXJndW1lbnQoMCkpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKKyAgICAgICAgICAgIHByb3RlY3Rvci0+bm90aWZ5TG9hZENvbXBsZXRlZCgqbW9kdWxlS2V5
LmltcGwoKSk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOworICAgICAgICB9KTsKKworICAgICAgICBhdXRvJiByZWplY3RIYW5kbGVyID0gKkpTTmF0
aXZlU3RkRnVuY3Rpb246OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFtw
cm90ZWN0b3JdKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSB7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAg
ICAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisgICAgICAgICAgICBKU1ZhbHVlIGVycm9y
VmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOworICAgICAgICAgICAgaWYgKGVycm9yVmFs
dWUuaXNPYmplY3QoKSkgeworICAgICAgICAgICAgICAgIGF1dG8qIG9iamVjdCA9IEpTQzo6YXNP
YmplY3QoZXJyb3JWYWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgZmFpbHVyZUtp
bmRWYWx1ZSA9IG9iamVjdC0+Z2V0RGlyZWN0KHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0
YSY+KCp2bS5jbGllbnREYXRhKS5idWlsdGluTmFtZXMoKS5mYWlsdXJlS2luZFByaXZhdGVOYW1l
KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgaG9zdCBwcm9wYWdhdGVkIGVy
cm9yIGluIHRoZSBtb2R1bGUgbG9hZGVyIHBpcGVsaW5lLgorICAgICAgICAgICAgICAgICAgICBz
d2l0Y2ggKHN0YXRpY19jYXN0PE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ+KGZhaWx1cmVLaW5kVmFs
dWUuYXNJbnQzMigpKSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIE1vZHVsZUZldGNoRmFp
bHVyZUtpbmQ6Oldhc0Vycm9yZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0b3It
Pm5vdGlmeUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBMb2FkYWJsZVNjcmlwdDo6RXJyb3JUeXBlOjpDYWNoZWRTY3JpcHQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpudWxsb3B0CisgICAgICAgICAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICBjYXNlIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0NhbmNlbGVkOgorICAgICAg
ICAgICAgICAgICAgICAgICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkV2FzQ2FuY2VsZWQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgICAgICAgICBwcm90ZWN0b3ItPm5vdGlm
eUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yIHsKKyAgICAgICAgICAgICAgICBMb2Fk
YWJsZVNjcmlwdDo6RXJyb3JUeXBlOjpDYWNoZWRTY3JpcHQsCisgICAgICAgICAgICAgICAgTG9h
ZGFibGVTY3JpcHQ6OkNvbnNvbGVNZXNzYWdlIHsKKyAgICAgICAgICAgICAgICAgICAgTWVzc2Fn
ZVNvdXJjZTo6SlMsCisgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VMZXZlbDo6RXJyb3IsCisg
ICAgICAgICAgICAgICAgICAgIHJldHJpZXZlRXJyb3JNZXNzYWdlKCpnbG9iYWxPYmplY3QsIHZt
LCBlcnJvclZhbHVlLCBzY29wZSksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAg
ICAgICB9KTsKKworICAgICAgICBwcm9taXNlLnRoZW4oJmdsb2JhbE9iamVjdCwgJmZ1bGZpbGxI
YW5kbGVyLCAmcmVqZWN0SGFuZGxlcik7CisgICAgfQorICAgIG1fZ2xvYmFsU2NvcGUtPmV2ZW50
TG9vcCgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7CisKKyAgICAvLyBEcml2ZSBSdW5M
b29wIHVudGlsIHdlIGdldCBlaXRoZXIgb2YgIldvcmtlciBpcyB0ZXJtaW5hdGVkIiwgIkxvYWRp
bmcgaXMgZG9uZSIsIG9yICJMb2FkaW5nIGlzIGZhaWxlZCIuCisgICAgV29ya2VyUnVuTG9vcCYg
cnVuTG9vcCA9IG1fZ2xvYmFsU2NvcGUtPndvcmtlck9yV29ya2xldFRocmVhZCgpLT5ydW5Mb29w
KCk7CisKKyAgICAvLyBXZSBkbyBub3Qgd2FudCB0byByZWNlaXZlIG1lc3NhZ2VzIHRoYXQgYXJl
IG5vdCByZWxhdGVkIHRvIGFzeW5jaHJvbm91cyByZXNvdXJjZSBsb2FkaW5nLgorICAgIC8vIE90
aGVyd2lzZSwgYSB3b3JrZXIgZGlzY2FyZHMgc29tZSBtZXNzYWdlcyBmcm9tIHRoZSBtYWluIHRo
cmVhZCBoZXJlIGluIGEgcmFjeSB3YXkuCisgICAgLy8gRm9yIGV4YW1wbGUsIHRoZSBtYWluIHRo
cmVhZCBjYW4gcG9zdE1lc3NhZ2UganVzdCBhZnRlciBjcmVhdGluZyBhIFdvcmtlci4gSW4gdGhh
dCBjYXNlLCBwb3N0TWVzc2FnZSdzCisgICAgLy8gdGFzayBpcyBxdWV1ZWQgaW4gV29ya2VyUnVu
TG9vcCBiZWZvcmUgc3RhcnQgcnVubmluZyBtb2R1bGUgc2NyaXB0cy4gVGhpcyB0YXNrIHNob3Vs
ZCBub3QgYmUgZGlzY2FyZGVkCisgICAgLy8gaW4gdGhlIGZvbGxvd2luZyBkcml2aW5nIG9mIHRo
ZSBSdW5Mb29wIHdoaWNoIG1haW5seSBhdHRlbXB0IHRvIGNvbGxlY3QgaW5pdGlhbCBsb2FkIG9m
IG1vZHVsZSBzY3JpcHRzLgorICAgIFN0cmluZyB0YXNrTW9kZSA9IFdvcmtlck1vZHVsZVNjcmlw
dExvYWRlcjo6dGFza01vZGUoKTsKKyAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdCA9
IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZDsKKyAgICB3aGlsZSAoKCFwcm90ZWN0b3ItPmlz
TG9hZGVkKCkgJiYgIXByb3RlY3Rvci0+d2FzQ2FuY2VsZWQoKSkgJiYgcmVzdWx0ICE9IE1lc3Nh
Z2VRdWV1ZVRlcm1pbmF0ZWQpIHsKKyAgICAgICAgcmVzdWx0ID0gcnVuTG9vcC5ydW5Jbk1vZGUo
bV9nbG9iYWxTY29wZSwgdGFza01vZGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IE1lc3NhZ2VR
dWV1ZVRlcm1pbmF0ZWQpCisgICAgICAgICAgICBtX2dsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5w
ZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK3ZvaWQgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2YWx1
YXRlTW9kdWxlKFdvcmtlclNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIGNvbnN0IFNjcmlw
dFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIFN0cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdl
KQoreworICAgIGlmIChpc0V4ZWN1dGlvbkZvcmJpZGRlbigpKQorICAgICAgICByZXR1cm47CisK
KyAgICBpbml0U2NyaXB0SWZOZWVkZWQoKTsKKworICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpt
X2dsb2JhbFNjb3BlV3JhcHBlci5nZXQoKTsKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0o
KTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisKKyAgICBOYWtlZFB0cjxKU0M6OkV4
Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247CisgICAgSlNFeGVjU3RhdGU6OmxpbmtBbmRFdmFs
dWF0ZU1vZHVsZShnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21VaWQodm0sIHNjcmlwdEZl
dGNoZXIubW9kdWxlS2V5KCkpLCBqc1VuZGVmaW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7Cisg
ICAgaWYgKChyZXR1cm5lZEV4Y2VwdGlvbiAmJiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRp
b24odm0sIHJldHVybmVkRXhjZXB0aW9uKSkgfHwgaXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpKSB7
CisgICAgICAgIGZvcmJpZEV4ZWN1dGlvbigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CisgICAgICAgIGlmIChtX2dsb2JhbFNjb3BlLT5j
YW5JbmNsdWRlRXJyb3JEZXRhaWxzKHNvdXJjZUNvZGUuY2FjaGVkU2NyaXB0KCksIHNvdXJjZUNv
ZGUudXJsKCkuc3RyaW5nKCkpKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZ3Jl
YXQgdGhhdCB0aGlzIGNhbiBydW4gYXJiaXRyYXJ5IGNvZGUgdG8gc3RyaW5nLWlmeSB0aGUgdmFs
dWUgb2YgdGhlIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgIC8vIERvIHdlIG5lZWQgdG8gZG8gYW55
dGhpbmcgdG8gaGFuZGxlIHRoYXQgcHJvcGVybHksIGlmIGl0LCBzYXksIHJhaXNlcyBhbm90aGVy
IGV4Y2VwdGlvbj8KKyAgICAgICAgICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UpCisg
ICAgICAgICAgICAgICAgKnJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IHJldHVybmVkRXhjZXB0
aW9uLT52YWx1ZSgpLnRvV1RGU3RyaW5nKCZnbG9iYWxPYmplY3QpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgLy8gT3ZlcndyaXRlIHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2Vu
ZXJpYyBlcnJvci4KKyAgICAgICAgICAgIFN0cmluZyBnZW5lcmljRXJyb3JNZXNzYWdlIHsgIlNj
cmlwdCBlcnJvci4iX3MgfTsKKyAgICAgICAgICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbk1lc3Nh
Z2UpCisgICAgICAgICAgICAgICAgKnJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IGdlbmVyaWNF
cnJvck1lc3NhZ2U7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgV29ya2VyT3JXb3JrbGV0
U2NyaXB0Q29udHJvbGxlcjo6bG9hZEFuZEV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgbW9kdWxl
VVJMLCBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yIH0pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBnbG9iYWxPYmpl
Y3QgPSAqbV9nbG9iYWxTY29wZVdyYXBwZXIuZ2V0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LnZtKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sgeyB2bSB9OworCisgICAgYXV0byBzY3Jp
cHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKGNyZWRlbnRpYWxzLCBnbG9i
YWxTY29wZSgpLT5kZXN0aW5hdGlvbigpLCBnbG9iYWxTY29wZSgpLT5yZWZlcnJlclBvbGljeSgp
KTsKKyAgICB7CisgICAgICAgIGF1dG8mIHByb21pc2UgPSBKU0V4ZWNTdGF0ZTo6bG9hZE1vZHVs
ZShnbG9iYWxPYmplY3QsIG1vZHVsZVVSTC5zdHJpbmcoKSwgSlNDOjpKU1NjcmlwdEZldGNoUGFy
YW1ldGVyczo6Y3JlYXRlKHZtLCBtYWtlUmVmKHNjcmlwdEZldGNoZXItPnBhcmFtZXRlcnMoKSkp
LCBKU0M6OkpTU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKHZtLCB7IHNjcmlwdEZldGNoZXIucHRyKCkg
fSkpOworCisgICAgICAgIGF1dG8gdGFzayA9IGNyZWF0ZVNoYXJlZFRhc2s8dm9pZChPcHRpb25h
bDxFeGNlcHRpb24+JiYpPihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICB9
KTsKKworICAgICAgICBhdXRvJiBmdWxmaWxsSGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9u
OjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIDEsIFN0cmluZygpLCBbdGFzaywgc2NyaXB0RmV0
Y2hlcl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
IC0+IEpTQzo6RW5jb2RlZEpTVmFsdWUgeworICAgICAgICAgICAgLy8gdGFzay0+cnVuKFdURjo6
bnVsbG9wdCk7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAg
ICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisgICAgICAgICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICAgICAgICAgIElkZW50aWZpZXIgbW9k
dWxlS2V5ID0ganNWYWx1ZVRvTW9kdWxlS2V5KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1
bWVudCgwKSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwor
ICAgICAgICAgICAgc2NyaXB0RmV0Y2hlci0+bm90aWZ5TG9hZENvbXBsZXRlZCgqbW9kdWxlS2V5
LmltcGwoKSk7CisKKyAgICAgICAgICAgIGF1dG8qIGNvbnRleHQgPSBkb3duY2FzdDxXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZT4oanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2Jq
ZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICAgICAgICAgIGlmICghY29udGV4
dCB8fCAhY29udGV4dC0+c2NyaXB0KCkpIHsKKyAgICAgICAgICAgICAgICB0YXNrLT5ydW4oV1RG
OjpudWxsb3B0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBOYWtlZFB0cjxKU0M6OkV4
Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247CisgICAgICAgICAgICBKU0V4ZWNTdGF0ZTo6bGlu
a0FuZEV2YWx1YXRlTW9kdWxlKCpnbG9iYWxPYmplY3QsIG1vZHVsZUtleSwganNVbmRlZmluZWQo
KSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgICAgICAgICAgaWYgKChyZXR1cm5lZEV4Y2VwdGlv
biAmJiBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0sIHJldHVybmVkRXhjZXB0aW9u
KSkgfHwgY29udGV4dC0+c2NyaXB0KCktPmlzVGVybWluYXRpbmdFeGVjdXRpb24oKSkgeworICAg
ICAgICAgICAgICAgIGlmIChjb250ZXh0LT5zY3JpcHQoKSkKKyAgICAgICAgICAgICAgICAgICAg
Y29udGV4dC0+c2NyaXB0KCktPmZvcmJpZEV4ZWN1dGlvbigpOworICAgICAgICAgICAgICAgIHRh
c2stPnJ1bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChy
ZXR1cm5lZEV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAg
ICAgICAgICAgICAgIGlmIChjb250ZXh0LT5jYW5JbmNsdWRlRXJyb3JEZXRhaWxzKG51bGxwdHIs
IG1vZHVsZUtleS5zdHJpbmcoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEl0
J3Mgbm90IGdyZWF0IHRoYXQgdGhpcyBjYW4gcnVuIGFyYml0cmFyeSBjb2RlIHRvIHN0cmluZy1p
ZnkgdGhlIHZhbHVlIG9mIHRoZSBleGNlcHRpb24uCisgICAgICAgICAgICAgICAgICAgIC8vIERv
IHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgdG8gaGFuZGxlIHRoYXQgcHJvcGVybHksIGlmIGl0LCBz
YXksIHJhaXNlcyBhbm90aGVyIGV4Y2VwdGlvbj8KKyAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZSA9IHJldHVybmVkRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7
CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gT3Zlcndy
aXRlIHRoZSBkZXRhaWxlZCBlcnJvciB3aXRoIGEgZ2VuZXJpYyBlcnJvci4KKyAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZSA9ICJTY3JpcHQgZXJyb3IuIl9zOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBjb250ZXh0LT5yZXBvcnRFeGNlcHRpb24obWVzc2FnZSwgeyB9LCB7
IH0sIHsgfSwgeyB9LCB7IH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0YXNrLT5y
dW4oV1RGOjpudWxsb3B0KTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGF1dG8mIHJlamVjdEhhbmRsZXIg
PSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCAxLCBTdHJp
bmcoKSwgW3Rhc2tdKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSB7CisgICAgICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAg
ICAgICAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisgICAgICAgICAgICBKU1ZhbHVlIGVy
cm9yVmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOworICAgICAgICAgICAgaWYgKGVycm9y
VmFsdWUuaXNPYmplY3QoKSkgeworICAgICAgICAgICAgICAgIGF1dG8qIG9iamVjdCA9IEpTQzo6
YXNPYmplY3QoZXJyb3JWYWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+Z2V0RGly
ZWN0KHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSY+KCp2bS5jbGllbnREYXRhKS5idWls
dGluTmFtZXMoKS5mYWlsdXJlS2luZFByaXZhdGVOYW1lKCkpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAg
ICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5h
bWUoKmdsb2JhbE9iamVjdCwgdm0sIG9iamVjdCwgY2F0Y2hTY29wZSk7CisgICAgICAgICAgICAg
ICAgICAgIHRhc2stPnJ1bihFeGNlcHRpb24geyBBYm9ydEVycm9yLCBtZXNzYWdlIH0pOworICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT5pbmhlcml0czxF
cnJvckluc3RhbmNlPih2bSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byogZXJyb3IgPSBq
c0Nhc3Q8RXJyb3JJbnN0YW5jZSo+KG9iamVjdCk7CisgICAgICAgICAgICAgICAgICAgIHN3aXRj
aCAoZXJyb3ItPmVycm9yVHlwZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JU
eXBlOjpUeXBlRXJyb3I6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gY2F0Y2hTY29w
ZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgICAgICAgICAgICAgU3Ry
aW5nIG1lc3NhZ2UgPSByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKCpnbG9iYWxPYmpl
Y3QsIHZtLCBlcnJvciwgY2F0Y2hTY29wZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXNr
LT5ydW4oRXhjZXB0aW9uIHsgVHlwZUVycm9yLCBtZXNzYWdlIH0pOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXNlIEVycm9yVHlwZTo6U3ludGF4
RXJyb3I6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xB
UkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3Nh
Z2UgPSByZXRyaWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKCpnbG9iYWxPYmplY3QsIHZtLCBl
cnJvciwgY2F0Y2hTY29wZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXNrLT5ydW4oRXhj
ZXB0aW9uIHsgSlNTeW50YXhFcnJvciwgbWVzc2FnZSB9KTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJFX0NB
VENIX1NDT1BFKHZtKTsKKyAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gcmV0cmlldmVFcnJv
ck1lc3NhZ2VXaXRob3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JWYWx1ZSwgY2F0Y2hT
Y29wZSk7CisgICAgICAgICAgICB0YXNrLT5ydW4oRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgbWVz
c2FnZSB9KTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CisgICAgICAgIH0pOworCisgICAgICAgIHByb21pc2UudGhlbigmZ2xvYmFsT2JqZWN0LCAm
ZnVsZmlsbEhhbmRsZXIsICZyZWplY3RIYW5kbGVyKTsKKyAgICB9CisgICAgbV9nbG9iYWxTY29w
ZS0+ZXZlbnRMb29wKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKK30KKwogdGVtcGxh
dGU8dHlwZW5hbWUgSlNHbG9iYWxTY29wZVByb3RvdHlwZSwgdHlwZW5hbWUgSlNHbG9iYWxTY29w
ZSwgdHlwZW5hbWUgR2xvYmFsU2NvcGU+CiB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRy
b2xsZXI6OmluaXRTY3JpcHRXaXRoU3ViY2xhc3MoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBj
NDkzMDFhZWQzZGQwODlkYTc5NzMyNzYwY2FmMmY3YjY0ZGIxMWI2Li5lOTgwNjM5MTAyOTk1NDky
ODQ2ODA1YzBjMTdmMDBjNzhiNzE0MWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUnVuTG9vcFRpbWVyLmg+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9N
ZXNzYWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvTmFrZWRQdHIuaD4KIAogbmFtZXNwYWNlIEpT
QyB7CkBAIC00Nyw2ICs0OCw3IEBAIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OwogY2xhc3MgU2Ny
aXB0U291cmNlQ29kZTsKIGNsYXNzIFdvcmtlckNvbnNvbGVDbGllbnQ7CiBjbGFzcyBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZTsKK2NsYXNzIFdvcmtlclNjcmlwdEZldGNoZXI7CiAKIGNsYXNz
IFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIpOwpAQCAtOTQsNiArOTYsMTMgQEAg
Y2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgdm9pZCBldmFsdWF0
ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3Nh
Z2UgPSBudWxscHRyKTsKICAgICB2b2lkIGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUm
LCBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0aW9uLCBTdHJpbmcqIHJl
dHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwogCisgICAgSlNDOjpKU1ZhbHVlIGV2
YWx1YXRlTW9kdWxlKEpTQzo6SlNNb2R1bGVSZWNvcmQmKTsKKworICAgIHZvaWQgbGlua0FuZEV2
YWx1YXRlTW9kdWxlKFdvcmtlclNjcmlwdEZldGNoZXImLCBjb25zdCBTY3JpcHRTb3VyY2VDb2Rl
JiwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlvbk1lc3NhZ2UgPSBudWxscHRyKTsKKyAgICBNZXNz
YWdlUXVldWVXYWl0UmVzdWx0IGxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KFdvcmtlclNjcmlwdEZl
dGNoZXImLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJik7CisKKyAgICB2b2lkIGxvYWRBbmRFdmFs
dWF0ZU1vZHVsZShjb25zdCBVUkwmIG1vZHVsZVVSTCwgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFs
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRpb24+JiYpPiYmKTsKKwog
cHJvdGVjdGVkOgogICAgIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKiBnbG9iYWxTY29wZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsU2NvcGU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCmluZGV4IDNhNGRhZWZjMzkwMmJkYjJlYTg0ZmM1
OGQ3ZTQyZjgzZTVmMDdlMmYuLjlmMzFkMGRmZDU5YTg3MDdmZDRlYjU5Y2MzYzkyYTA2NjQ4MWRl
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAK
QEAgLTEwNyw3ICsxMDcsNyBAQCBPcHRpb25hbDxFeGNlcHRpb24+IFdvcmtlclNjcmlwdExvYWRl
cjo6bG9hZFN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dAogICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiB9CiAKLXZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkQXN5bmNocm9u
b3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgUmVz
b3VyY2VSZXF1ZXN0JiYgc2NyaXB0UmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgZmV0Y2hPcHRpb25z
LCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCBjb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlIHNlcnZpY2VXb3JrZXJNb2RlLCBXb3JrZXJT
Y3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCkKK3ZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpsb2Fk
QXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgUmVzb3VyY2VSZXF1ZXN0JiYgc2NyaXB0UmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgZmV0
Y2hPcHRpb25zLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCBjb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlIHNlcnZpY2VXb3JrZXJNb2Rl
LCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgU3RyaW5nJiYgdGFza01vZGUpCiB7
CiAgICAgbV9jbGllbnQgPSAmY2xpZW50OwogICAgIG1fdXJsID0gc2NyaXB0UmVxdWVzdC51cmwo
KTsKQEAgLTEyMyw4ICsxMjMsNiBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZEFzeW5j
aHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dAogICAgIEFTU0VS
VChmZXRjaE9wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW4gfHwg
KGZldGNoT3B0aW9ucy5kZXN0aW5hdGlvbiAhPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpT
ZXJ2aWNld29ya2VyICYmIGZldGNoT3B0aW9ucy5kZXN0aW5hdGlvbiAhPSBGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uOjpXb3JrZXIpKTsKIAogICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9w
dGlvbnMgeyBXVEZNb3ZlKGZldGNoT3B0aW9ucykgfTsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGFkZCBhbiBvcHRpb24gdG8gc2V0IGNyZWRlbnRpYWwgbW9kZS4KLSAgICBvcHRpb25zLmNyZWRl
bnRpYWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbjsKICAgICBvcHRp
b25zLnNlbmRMb2FkQ2FsbGJhY2tzID0gU2VuZENhbGxiYWNrUG9saWN5OjpTZW5kQ2FsbGJhY2tz
OwogICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgPSBjb250ZW50
U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDsKICAgICBpZiAoZmV0Y2hPcHRpb25zLmRlc3RpbmF0
aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNlcnZpY2V3b3JrZXIpCkBAIC0xNDMs
NyArMTQxLDcgQEAgdm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXQKIAogICAgIC8vIER1cmluZyBjcmVh
dGUsIGNhbGxiYWNrcyBtYXkgaGFwcGVuIHdoaWNoIHJlbW92ZSB0aGUgbGFzdCByZWZlcmVuY2Ug
dG8gdGhpcyBvYmplY3QuCiAgICAgUmVmPFdvcmtlclNjcmlwdExvYWRlcj4gcHJvdGVjdGVkVGhp
cygqdGhpcyk7Ci0gICAgbV90aHJlYWRhYmxlTG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3Jl
YXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsICp0aGlzLCBXVEZNb3ZlKCpyZXF1ZXN0KSwgb3B0
aW9ucyk7CisgICAgbV90aHJlYWRhYmxlTG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRl
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsICp0aGlzLCBXVEZNb3ZlKCpyZXF1ZXN0KSwgb3B0aW9u
cywgeyB9LCBXVEZNb3ZlKHRhc2tNb2RlKSk7CiB9CiAKIGNvbnN0IFVSTCYgV29ya2VyU2NyaXB0
TG9hZGVyOjpyZXNwb25zZVVSTCgpIGNvbnN0CkBAIC0xOTAsNiArMTg4LDggQEAgdm9pZCBXb3Jr
ZXJTY3JpcHRMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFJlc28KICAgICBtX2NlcnRpZmljYXRlSW5mbyA9IHJlc3BvbnNlLmNlcnRpZmlj
YXRlSW5mbygpID8gKnJlc3BvbnNlLmNlcnRpZmljYXRlSW5mbygpIDogQ2VydGlmaWNhdGVJbmZv
KCk7CiAgICAgbV9yZXNwb25zZU1JTUVUeXBlID0gcmVzcG9uc2UubWltZVR5cGUoKTsKICAgICBt
X3Jlc3BvbnNlRW5jb2RpbmcgPSByZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCk7CisgICAgbV9y
ZXNwb25zZVNvdXJjZSA9IHJlc3BvbnNlLnNvdXJjZSgpOworICAgIG1faXNSZWRpcmVjdGVkID0g
cmVzcG9uc2UuaXNSZWRpcmVjdGVkKCk7CiAgICAgbV9jb250ZW50U2VjdXJpdHlQb2xpY3kgPSBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgeyByZXNwb25zZSB9OwogICAgIG1f
cmVmZXJyZXJQb2xpY3kgPSByZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6
OlJlZmVycmVyUG9saWN5KTsKICAgICBpZiAobV9jbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaAppbmRleCA3ZmRkMGIzZjZhMDFjMmRiNTc3MjRhOTBi
M2JiOTg0MGYxZTY4ZTVmLi5jZmEzMWEzNTMyNTlhZWVkMTk4ZjkzOTFmZmMxNTExYjQwNTBiODVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJGZXRjaE9wdGlvbnMuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKICNpbmNsdWRlICJU
aHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8bWVtb3J5PgpAQCAtNDMsNyArNDQs
NiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFeGNlcHRpb247Ci1jbGFzcyBSZXNv
dXJjZVJlc3BvbnNlOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFRleHRS
ZXNvdXJjZURlY29kZXI7CiBjbGFzcyBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQ7CkBAIC01OCw3
ICs1OCw3IEBAIGNsYXNzIFdvcmtlclNjcmlwdExvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdv
cmtlclNjcmlwdExvYWRlcj4sIHB1YmxpYyBUaHJlYWRhCiAgICAgfQogCiAgICAgT3B0aW9uYWw8
RXhjZXB0aW9uPiBsb2FkU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgVVJMJiwgRmV0Y2hPcHRpb25zOjpNb2RlLCBGZXRjaE9wdGlvbnM6OkNhY2hlLCBDb250ZW50
U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgY29uc3QgU3RyaW5nJiBpbml0aWF0b3JJZGVudGlm
aWVyKTsKLSAgICB2b2lkIGxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmLCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlLCBXb3JrZXJTY3JpcHRMb2FkZXJDbGll
bnQmKTsKKyAgICB2b2lkIGxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmLCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlLCBXb3JrZXJTY3JpcHRMb2FkZXJDbGll
bnQmLCBTdHJpbmcmJiB0YXNrTW9kZSk7CiAKICAgICB2b2lkIG5vdGlmeUVycm9yKCk7CiAKQEAg
LTY3LDYgKzY3LDggQEAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVibGljIFJlZkNvdW50
ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGEKICAgICBjb25zdCBTdHJpbmcm
IHJlZmVycmVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9yZWZlcnJlclBvbGljeTsgfQogICAg
IGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KICAgICBjb25zdCBVUkwm
IHJlc3BvbnNlVVJMKCkgY29uc3Q7CisgICAgUmVzb3VyY2VSZXNwb25zZTo6U291cmNlIHJlc3Bv
bnNlU291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZVNvdXJjZTsgfQorICAgIGJvb2wg
aXNSZWRpcmVjdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1JlZGlyZWN0ZWQ7IH0KICAgICBjb25z
dCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1fY2Vy
dGlmaWNhdGVJbmZvOyB9CiAgICAgY29uc3QgU3RyaW5nJiByZXNwb25zZU1JTUVUeXBlKCkgY29u
c3QgeyByZXR1cm4gbV9yZXNwb25zZU1JTUVUeXBlOyB9CiAgICAgYm9vbCBmYWlsZWQoKSBjb25z
dCB7IHJldHVybiBtX2ZhaWxlZDsgfQpAQCAtMTA3LDYgKzEwOSw4IEBAIGNsYXNzIFdvcmtlclNj
cmlwdExvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj4sIHB1Ymxp
YyBUaHJlYWRhCiAgICAgdW5zaWduZWQgbG9uZyBtX2lkZW50aWZpZXIgeyAwIH07CiAgICAgYm9v
bCBtX2ZhaWxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2ZpbmlzaGluZyB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX2lzUmVkaXJlY3RlZCB7IGZhbHNlIH07CisgICAgUmVzb3VyY2VSZXNwb25zZTo6
U291cmNlIG1fcmVzcG9uc2VTb3VyY2UgeyBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlVua25v
d24gfTsKICAgICBSZXNvdXJjZUVycm9yIG1fZXJyb3I7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggNzI3OTBhMDMzMjI2MTllNmVlN2U2MTZhOGJkZTE4
YmQ1NTJhNTc4My4uOWI2YzNlN2UwZTczMTQ1Yjc1YjY1Mzc0MTNkNWZmMDViYzU1MWI0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMzIsNiArMzIsOCBAQAog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIK
ICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdEZl
dGNoZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU1LDYg
KzU3LDggQEAgV29ya2VyUGFyYW1ldGVycyBXb3JrZXJQYXJhbWV0ZXJzOjppc29sYXRlZENvcHko
KSBjb25zdAogICAgICAgICBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3ksCiAgICAgICAgIHRpbWVPcmlnaW4sCiAgICAgICAgIHJlZmVycmVyUG9saWN5LAorICAgICAg
ICB3b3JrZXJUeXBlLAorICAgICAgICBjcmVkZW50aWFscywKICAgICAgICAgc2V0dGluZ3NWYWx1
ZXMuaXNvbGF0ZWRDb3B5KCkKICAgICB9OwogfQpAQCAtMTIzLDkgKzEyNywyOSBAQCBib29sIFdv
cmtlclRocmVhZDo6c2hvdWxkV2FpdEZvcldlYkluc3BlY3Rvck9uU3RhcnR1cCgpIGNvbnN0CiAK
IHZvaWQgV29ya2VyVGhyZWFkOjpldmFsdWF0ZVNjcmlwdElmTmVjZXNzYXJ5KFN0cmluZyYgZXhj
ZXB0aW9uTWVzc2FnZSkKIHsKLSAgICBnbG9iYWxTY29wZSgpLT5zY3JpcHQoKS0+ZXZhbHVhdGUo
U2NyaXB0U291cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVw
RGF0YS0+cGFyYW1zLnNjcmlwdFVSTCkpLCAmZXhjZXB0aW9uTWVzc2FnZSk7Ci0KLSAgICBmaW5p
c2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAgICAvLyBXZSBhcmUgY3VycmVudGx5IGhvbGRpbmcg
b25seSB0aGUgaW5pdGlhbCBzY3JpcHQgY29kZS4gSWYgdGhlIFdvcmtlclR5cGUgaXMgTW9kdWxl
LCB3ZSBzaG91bGQgZmV0Y2ggdGhlIGVudGlyZSBncmFwaCBiZWZvcmUgZXhlY3V0aW5nIHRoZSBy
ZXN0IG9mIHRoaXMuCisgICAgLy8gV2UgaW52b2tlIG1vZHVsZSBsb2FkZXIgYXMgaWYgd2UgYXJl
IGV4ZWN1dGluZyBpbmxpbmUgbW9kdWxlIHNjcmlwdCB0YWcgaW4gRG9jdW1lbnQuCisKKyAgICBp
ZiAobV9zdGFydHVwRGF0YS0+cGFyYW1zLndvcmtlclR5cGUgPT0gV29ya2VyVHlwZTo6Q2xhc3Np
YykgeworICAgICAgICBnbG9iYWxTY29wZSgpLT5zY3JpcHQoKS0+ZXZhbHVhdGUoU2NyaXB0U291
cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVwRGF0YS0+cGFy
YW1zLnNjcmlwdFVSTCkpLCAmZXhjZXB0aW9uTWVzc2FnZSk7CisgICAgICAgIGZpbmlzaGVkRXZh
bHVhdGluZ1NjcmlwdCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gc2NyaXB0RmV0Y2hl
ciA9IFdvcmtlclNjcmlwdEZldGNoZXI6OmNyZWF0ZShnbG9iYWxTY29wZSgpLT5jcmVkZW50aWFs
cygpLCBnbG9iYWxTY29wZSgpLT5kZXN0aW5hdGlvbigpLCBnbG9iYWxTY29wZSgpLT5yZWZlcnJl
clBvbGljeSgpKTsKKyAgICAgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2RlKG1fc3RhcnR1
cERhdGEtPnNvdXJjZUNvZGUsIFVSTChtX3N0YXJ0dXBEYXRhLT5wYXJhbXMuc2NyaXB0VVJMKSwg
eyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlLCBzY3JpcHRGZXRjaGVy
LmNvcHlSZWYoKSk7CisgICAgICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcmVzdWx0ID0gZ2xv
YmFsU2NvcGUoKS0+c2NyaXB0KCktPmxvYWRNb2R1bGVTeW5jaHJvbm91c2x5KHNjcmlwdEZldGNo
ZXIuZ2V0KCksIHNvdXJjZUNvZGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IE1lc3NhZ2VRdWV1
ZVRlcm1pbmF0ZWQpIHsKKyAgICAgICAgICAgIGlmIChPcHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6
RXJyb3I+IGVycm9yID0gc2NyaXB0RmV0Y2hlci0+ZXJyb3IoKSkgeworICAgICAgICAgICAgICAg
IGlmIChPcHRpb25hbDxMb2FkYWJsZVNjcmlwdDo6Q29uc29sZU1lc3NhZ2U+IG1lc3NhZ2UgPSBl
cnJvci0+Y29uc29sZU1lc3NhZ2UpCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbk1lc3Nh
Z2UgPSBtZXNzYWdlLT5tZXNzYWdlOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgZXhjZXB0aW9uTWVzc2FnZSA9ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZh
aWxlZC4iX3M7CisgICAgICAgICAgICAgICAgZ2xvYmFsU2NvcGUoKS0+cmVwb3J0RXhjZXB0aW9u
KGV4Y2VwdGlvbk1lc3NhZ2UsIHsgfSwgeyB9LCB7IH0sIHsgfSwgeyB9KTsKKyAgICAgICAgICAg
IH0gZWxzZSBpZiAoIXNjcmlwdEZldGNoZXItPndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAg
ICAgICBnbG9iYWxTY29wZSgpLT5zY3JpcHQoKS0+bGlua0FuZEV2YWx1YXRlTW9kdWxlKHNjcmlw
dEZldGNoZXIuZ2V0KCksIHNvdXJjZUNvZGUsICZleGNlcHRpb25NZXNzYWdlKTsKKyAgICAgICAg
ICAgICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KIAogICAgIC8vIEZyZWUgdGhlIHN0YXJ0dXAgZGF0YSB0byBjYXVzZSBpdHMg
bWVtYmVyIHZhcmlhYmxlIGRlcmVmJ3MgaGFwcGVuIG9uIHRoZSB3b3JrZXIncyB0aHJlYWQgKHNp
bmNlCiAgICAgLy8gYWxsIHJlZi9kZXJlZnMgb2YgdGhlc2Ugb2JqZWN0cyBhcmUgaGFwcGVuaW5n
IG9uIHRoZSB0aHJlYWQgYXQgdGhpcyBwb2ludCkuIE5vdGUgdGhhdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVGhyZWFkLmgKaW5kZXggODg5MDc5MDhlN2E5YjgwOWU4ZjJhNGU0NzNkNzUyZDEx
ZDI5MzdjMC4uOTUxMmVmZGIxOGYzMmE1MGVjYjdmYjU2OTU5ZDYxZTg4NzJmYTFkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC0yNiw3ICsyNiwxMCBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMu
aCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oIgogI2luY2x1ZGUgIldvcmtl
ck9yV29ya2xldFRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKKyNpbmNsdWRl
ICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUnVudGltZUZsYWdzLmg+
CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTYzLDYgKzY2LDgg
QEAgc3RydWN0IFdvcmtlclBhcmFtZXRlcnMgewogICAgIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5OwogICAgIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbjsK
ICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeTsKKyAgICBXb3JrZXJUeXBlIHdvcmtl
clR5cGU7CisgICAgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7CiAgICAgU2V0
dGluZ3M6OlZhbHVlcyBzZXR0aW5nc1ZhbHVlczsKIAogICAgIFdvcmtlclBhcmFtZXRlcnMgaXNv
bGF0ZWRDb3B5KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5oCmluZGV4IDBi
MGVkODYwZDljNzE0MjM4YTJhNWJiOWZkZjQzODQwMmQxNmViZjAuLjFjMWJiOTQ0ODY3YWRmNGVk
NTc4YTI4MTRmYTMzMjMyNmFlZDhhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVHlwZS5o
CkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBjbGFzcyBX
b3JrZXJUeXBlIHsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6IHVpbnQ4X3QgewogICAgIENsYXNz
aWMsCiAgICAgTW9kdWxlLAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCmluZGV4IGViYmU5NWU4OTI0YzhmMWQ3
Mzc1MjVkZWExNjMwYjFmYWQ1NmZiMjcuLjRjN2RkZjRhNGMxMzFlMGRjZDZiYTA5NTA5YWIyZDk3
NTc1ZjMwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuaApAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBOYXZpZ2F0
b3JCYXNlOwogY2xhc3MgU2VydmljZVdvcmtlcjsKIAogZW51bSBjbGFzcyBTZXJ2aWNlV29ya2Vy
VXBkYXRlVmlhQ2FjaGUgOiB1aW50OF90OwotZW51bSBjbGFzcyBXb3JrZXJUeXBlOworZW51bSBj
bGFzcyBXb3JrZXJUeXBlIDogdWludDhfdDsKIAogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4g
Y2xhc3MgRE9NUHJvbWlzZVByb3h5OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggNjAyZGE3MjM1
ZGZhZjBmNzI1MDMxNjcxNzAzZmVmNzZhZjY0ZjE3ZC4uY2UwN2JmOTA0MmExMGY1ZmMyZDQ1NmY5
ODU5ZmI5ZjZlNTFjNTk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtNjksNiArNjksOCBAQCBj
bGFzcyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgZmluYWwgOiBwdWJsaWMgV29ya2VyR2xvYmFs
U2NvcGUgewogICAgIHZvaWQgc2V0U2NyaXB0UmVzb3VyY2UoY29uc3QgVVJMJiwgU2VydmljZVdv
cmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCYmKTsKIAogICAgIGNvbnN0IENlcnRpZmlj
YXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0RGF0YS5j
ZXJ0aWZpY2F0ZUluZm87IH0KKworICAgIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGlu
YXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpT
ZXJ2aWNld29ya2VyOyB9CiAgICAgCiBwcml2YXRlOgogICAgIFNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZShjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBjb25zdCBXb3JrZXJQYXJhbWV0
ZXJzJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmLCBTZXJ2aWNlV29ya2VyVGhyZWFkJiwgUmVmPFNl
Y3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkq
LCBTb2NrZXRQcm92aWRlciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCmluZGV4IGVjMzljMGY4NDlhNTRlMWI2ZDBiZWUzNGE4
ZDdkMTljYmE0NWUyODguLmY5NTEwY2JmNmZkZjcwNDZmN2QxYjkyMjM2OTE3NGQwMWZhMGJlMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Sm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckpvYi5jcHAKQEAgLTExMCw3ICsxMTAsOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OmZldGNo
U2NyaXB0V2l0aENvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRgogICAg
IG9wdGlvbnMuY2FjaGUgPSBjYWNoZVBvbGljeTsKICAgICBvcHRpb25zLnJlZGlyZWN0ID0gRmV0
Y2hPcHRpb25zOjpSZWRpcmVjdDo6RXJyb3I7CiAgICAgb3B0aW9ucy5kZXN0aW5hdGlvbiA9IEZl
dGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNlcnZpY2V3b3JrZXI7Ci0gICAgbV9zY3JpcHRMb2Fk
ZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KG9wdGlvbnMpLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNl
LCBTZXJ2aWNlV29ya2Vyc01vZGU6Ok5vbmUsICp0aGlzKTsKKyAgICBvcHRpb25zLmNyZWRlbnRp
YWxzID0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbjsKKyAgICBtX3Njcmlw
dExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdU
Rk1vdmUob3B0aW9ucyksIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVu
Zm9yY2UsIFNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSwgKnRoaXMsIFdvcmtlclJ1bkxvb3A6OmRl
ZmF1bHRNb2RlKCkpOwogfQogCiBSZXNvdXJjZUVycm9yIFNlcnZpY2VXb3JrZXJKb2I6OnZhbGlk
YXRlU2VydmljZVdvcmtlclJlc3BvbnNlKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JE
YXRhLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9u
cy5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25PcHRpb25zLmgKaW5kZXggOWQ1MDBmODVhY2IxODg0MWNjNTViZWE4MjExZGIxNGZhZGM5
NzQ3NS4uMmUzNTU3ZmE3ZGY2N2YxYmY5OGM3YjdhNWRlNGIwYTVhN2JjY2NmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25PcHRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmgKQEAgLTMyLDcgKzMyLDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogZW51bSBjbGFzcyBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgOiB1aW50
OF90OwotZW51bSBjbGFzcyBXb3JrZXJUeXBlOworZW51bSBjbGFzcyBXb3JrZXJUeXBlIDogdWlu
dDhfdDsKIAogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zIHsKICAgICBT
dHJpbmcgc2NvcGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IGM4YTdhOTk3MmY5
Y2M4YzE2YTc5Njc1MTE1NTJmNTQ5M2E2ODZmOTguLmEyZDNjZDQwYmMyYTBhYTI3M2IxNjA4M2M1
ZjQ4NjQ0ZDM3NWUzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC03Myw4ICs3
MywxMCBAQCBjbGFzcyBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA6IHB1YmxpYyBXb3Jr
ZXJPYmplY3RQcm94eSB7CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkK
IC8vIEZJWE1FOiBVc2UgdmFsaWQgcnVudGltZSBmbGFncwogCisvLyBGSVhNRTogU3VwcG9ydCBt
b2R1bGVzIGluIHNlcnZpY2Utd29ya2Vycy4KKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjIxNTUKIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJU
aHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBTdHJpbmcmJiB1c2Vy
QWdlbnQsIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRpbmdzVmFsdWVzLCBXb3JrZXJMb2Fk
ZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2VyUHJveHks
IElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHksIFNvY2tl
dFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcikKLSAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEuc2Ny
aXB0VVJMLCBlbXB0eVN0cmluZygpLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVu
dGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0YS5j
b250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9LCBz
ZXR0aW5nc1ZhbHVlcyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRlYnVnZ2VyUHJveHks
IER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29ya2VyVGhyZWFkU3Rh
cnRNb2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4oKS5zZWN1cml0
eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBKU0M6
OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQorICAgIDogV29ya2VyVGhyZWFkKHsg
ZGF0YS5zY3JpcHRVUkwsIGVtcHR5U3RyaW5nKCksICJzZXJ2aWNld29ya2VyOiIgKyBJbnNwZWN0
b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHVzZXJB
Z2VudCksIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5pc09uTGluZSgp
LCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZmFsc2UsIE1vbm90b25pY1RpbWU6Om5vdygp
LCB7IH0sIFdvcmtlclR5cGU6OkNsYXNzaWMsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzOjpTYW1l
T3JpZ2luLCBzZXR0aW5nc1ZhbHVlcyB9LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIGRlYnVn
Z2VyUHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSwgV29ya2Vy
VGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIGRhdGEucmVnaXN0cmF0aW9uLmtleS50b3BPcmlnaW4o
KS5zZWN1cml0eU9yaWdpbigpLmdldCgpLCBpZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3Zp
ZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpKQogICAgICwgbV9kYXRh
KGRhdGEuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1bW15U2Vy
dmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSkKICAgICAsIG1faGVhcnRCZWF0VGltZW91
dChTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCktPnNob3VsZFVzZVNo
b3J0VGltZW91dCgpID8gaGVhcnRCZWF0VGltZW91dEZvclRlc3QgOiBoZWFydEJlYXRUaW1lb3V0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlcldvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlcldvcmtlci5oCmluZGV4IDJkZGRiM2I1YjQxZWQ4N2JkNjE0YTBiOTRkMDliNzYxMjkzZDc2
MDcuLjM3OGZiYTY1N2U4YmJmNDg0MWU1NmNiZjg2NTYxZjhlY2MzMTEwMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2Vy
LmgKQEAgLTUwLDcgKzUwLDcgQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
Owogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnM7CiBzdHJ1Y3QgU2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhOwogc3RydWN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmll
cjsKLWVudW0gY2xhc3MgV29ya2VyVHlwZTsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6IHVpbnQ4
X3Q7CiAKIGNsYXNzIFNXU2VydmVyV29ya2VyIDogcHVibGljIFJlZkNvdW50ZWQ8U1dTZXJ2ZXJX
b3JrZXI+IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9QYWludFdv
cmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IDQyYTc1YjQ1ODI0NzZlZWRhMjhlOWE0MmI5NmIxMWNk
YmFjNmU1M2EuLmQwNzZlZTlkMzVlYjdmNzM5OGUwZDQwOWU4ODdlNjU3ZjIyNjAyMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaApA
QCAtNDAsNyArNDAsNyBAQCBjbGFzcyBWTTsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEpT
RE9NR2xvYmFsT2JqZWN0OwogCi1jbGFzcyBQYWludFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1Ymxp
YyBXb3JrbGV0R2xvYmFsU2NvcGUgeworY2xhc3MgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUgZmlu
YWwgOiBwdWJsaWMgV29ya2xldEdsb2JhbFNjb3BlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKFBhaW50V29ya2xldEdsb2JhbFNjb3BlKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRy
PFBhaW50V29ya2xldEdsb2JhbFNjb3BlPiB0cnlDcmVhdGUoRG9jdW1lbnQmLCBTY3JpcHRTb3Vy
Y2VDb2RlJiYpOwpAQCAtNzYsNiArNzYsOCBAQCBjbGFzcyBQYWludFdvcmtsZXRHbG9iYWxTY29w
ZSA6IHB1YmxpYyBXb3JrbGV0R2xvYmFsU2NvcGUgewogICAgICAgICBXb3JrbGV0R2xvYmFsU2Nv
cGU6OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpOwogICAgIH0KIAorICAgIEZldGNoT3B0aW9uczo6
RGVzdGluYXRpb24gZGVzdGluYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBGZXRjaE9wdGlv
bnM6OkRlc3RpbmF0aW9uOjpQYWludHdvcmtsZXQ7IH0KKwogcHJpdmF0ZToKICAgICBQYWludFdv
cmtsZXRHbG9iYWxTY29wZShEb2N1bWVudCYsIFJlZjxKU0M6OlZNPiYmLCBTY3JpcHRTb3VyY2VD
b2RlJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xv
YmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3Bl
LmNwcAppbmRleCBkNzA0ODg2NjQ4YzBlZmFhNmI3ODA4NGM1Mzg3MjAxY2EyYjFjNTQzLi4yYWUw
ZTMzODkxZGJjODlmMTQ2ODdkNDE0ODAyYWFhMTJkMGQ4NGZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTE1OCw3MiArMTU4LDcgQEAg
UmVmZXJyZXJQb2xpY3kgV29ya2xldEdsb2JhbFNjb3BlOjpyZWZlcnJlclBvbGljeSgpIGNvbnN0
CiB2b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6ZmV0Y2hBbmRJbnZva2VTY3JpcHQoY29uc3QgVVJM
JiBtb2R1bGVVUkwsIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9zY3JpcHRGZXRjaEpv
YnMuYXBwZW5kKHsgbW9kdWxlVVJMLCBjcmVkZW50aWFscywgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikgfSk7Ci0gICAgcHJvY2Vzc05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKCk7Ci19Ci0K
LXZvaWQgV29ya2xldEdsb2JhbFNjb3BlOjpwcm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVk
ZWQoKQotewotICAgIGlmIChtX3NjcmlwdEZldGNoSm9icy5pc0VtcHR5KCkgfHwgbV9zY3JpcHRM
b2FkZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8mIHNjcmlwdEZldGNoSm9iID0gbV9z
Y3JpcHRGZXRjaEpvYnMuZmlyc3QoKTsKLQotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0IHsg
c2NyaXB0RmV0Y2hKb2IubW9kdWxlVVJMIH07Ci0KLSAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRp
b25zOwotICAgIGZldGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzOwot
ICAgIGZldGNoT3B0aW9ucy5jYWNoZSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQ7Ci0g
ICAgZmV0Y2hPcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93
OwotICAgIGZldGNoT3B0aW9ucy5jcmVkZW50aWFscyA9IHNjcmlwdEZldGNoSm9iLmNyZWRlbnRp
YWxzOwotI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgaWYgKGlzQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGUoKSkKLSAgICAgICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25z
OjpEZXN0aW5hdGlvbjo6QXVkaW93b3JrbGV0OwotI2VuZGlmCi0jaWYgRU5BQkxFKENTU19QQUlO
VElOR19BUEkpCi0gICAgaWYgKGlzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUoKSkKLSAgICAgICAg
ZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6UGFp
bnR3b3JrbGV0OwotI2VuZGlmCi0KLSAgICBhdXRvIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9y
Y2VtZW50ID0gc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgPyBD
b250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29udGVudFNl
Y3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkVuZm9yY2VDaGlsZFNyY0RpcmVjdGl2ZTsKLQotICAg
IG1fc2NyaXB0TG9hZGVyID0gV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKTsKLSAgICBtX3Nj
cmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBX
VEZNb3ZlKGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBT
ZXJ2aWNlV29ya2Vyc01vZGU6OkFsbCwgKnRoaXMpOwotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxT
Y29wZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKQotewotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6bm90aWZ5RmluaXNoZWQo
KQotewotICAgIGF1dG8gY29tcGxldGVkSm9iID0gbV9zY3JpcHRGZXRjaEpvYnMudGFrZUZpcnN0
KCk7Ci0KLSAgICBpZiAobV9zY3JpcHRMb2FkZXItPmZhaWxlZCgpKSB7Ci0gICAgICAgIGRpZENv
bXBsZXRlU2NyaXB0RmV0Y2hKb2IoV1RGTW92ZShjb21wbGV0ZWRKb2IpLCBFeGNlcHRpb24geyBB
Ym9ydEVycm9yLCBtYWtlU3RyaW5nKCJGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogIiwg
bV9zY3JpcHRMb2FkZXItPmVycm9yKCkubG9jYWxpemVkRGVzY3JpcHRpb24oKSkgfSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJl
IHJ1biBhcyBhIG1vZHVsZSBzY3JpcHQgYnV0IHdlIGRvbid0IHN1cHBvcnQgdGhpcyBpbiB3b3Jr
ZXJzIHlldC4KLSAgICBVUkwgbW9kdWxlVVJMKG1fc2NyaXB0TG9hZGVyLT5yZXNwb25zZVVSTCgp
KTsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fZXZhbHVhdGVkTW9kdWxlcy5hZGQobW9kdWxlVVJM
KTsKLSAgICBpZiAoYWRkUmVzdWx0LmlzTmV3RW50cnkpIHsKLSAgICAgICAgTmFrZWRQdHI8SlND
OjpFeGNlcHRpb24+IGV4Y2VwdGlvbjsKLSAgICAgICAgc2NyaXB0KCktPmV2YWx1YXRlKFNjcmlw
dFNvdXJjZUNvZGUobV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBXVEZNb3ZlKG1vZHVsZVVSTCkp
LCBleGNlcHRpb24pOwotICAgICAgICBpZiAoZXhjZXB0aW9uKQotICAgICAgICAgICAgc2NyaXB0
KCktPnNldEV4Y2VwdGlvbihleGNlcHRpb24pOwotICAgIH0KLQotICAgIGRpZENvbXBsZXRlU2Ny
aXB0RmV0Y2hKb2IoV1RGTW92ZShjb21wbGV0ZWRKb2IpLCB7IH0pOwotfQotCi12b2lkIFdvcmts
ZXRHbG9iYWxTY29wZTo6ZGlkQ29tcGxldGVTY3JpcHRGZXRjaEpvYihTY3JpcHRGZXRjaEpvYiYm
IGpvYiwgT3B0aW9uYWw8RXhjZXB0aW9uPiByZXN1bHQpCi17Ci0gICAgbV9zY3JpcHRMb2FkZXIg
PSBudWxscHRyOwotCi0gICAgam9iLmNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSk7
Ci0KLSAgICBwcm9jZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQoKTsKKyAgICBzY3JpcHQo
KS0+bG9hZEFuZEV2YWx1YXRlTW9kdWxlKG1vZHVsZVVSTCwgY3JlZGVudGlhbHMsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXImIFdv
cmtsZXRHbG9iYWxTY29wZTo6bWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCBmMjMyMGYwZDEzMDI1
Y2VhYjNiYWM1NmE0NWVjMmQxZGQzZmI2Y2MwLi5mZTU0Yjg1MzI1Njc5MjU4M2RlZGEwNTVhNDMz
YTI1NjU0ZTg2NzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0
R2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFs
U2NvcGUuaApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIK
ICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtl
ck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2Fk
ZXJDbGllbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgogI2luY2x1ZGUgPHd0Zi9D
b21wbGV0aW9uSGFuZGxlci5oPgpAQCAtNTQsNyArNTMsNyBAQCBzdHJ1Y3QgV29ya2xldFBhcmFt
ZXRlcnM7CiBlbnVtIFdvcmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5n
IFdvcmtsZXRHbG9iYWxTY29wZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFdvcmtsZXRH
bG9iYWxTY29wZUlkZW50aWZpZXJUeXBlPjsKIAotY2xhc3MgV29ya2xldEdsb2JhbFNjb3BlIDog
cHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLCBwdWJsaWMgV29ya2VyU2NyaXB0TG9h
ZGVyQ2xpZW50IHsKK2NsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZSB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrbGV0R2xv
YmFsU2NvcGUpOwogcHVibGljOgogICAgIHZpcnR1YWwgfldvcmtsZXRHbG9iYWxTY29wZSgpOwpA
QCAtMTExLDEwICsxMTAsNiBAQCBjbGFzcyBXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgV29y
a2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUsIHB1YmxpYyBXb3JrZXJTY3JpcAogICAgIHZvaWQgYWRk
TWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2Fs
bFN0YWNrPiYmLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgbG9uZykgZmluYWw7CiAg
ICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYsIHVuc2lnbmVkIGxvbmcpIGZpbmFsOwogCi0gICAgLy8gV29ya2VyU2NyaXB0
TG9hZGVyQ2xpZW50LgotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOwotICAgIHZvaWQgbm90
aWZ5RmluaXNoZWQoKSBmaW5hbDsKLQogICAgIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0
KCkgZmluYWwgeyByZXR1cm4gdGhpczsgfQogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCkBAIC0x
MjUsMTUgKzEyMCw2IEBAIGNsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZSwgcHVibGljIFdvcmtlclNjcmlwCiAgICAgU3RyaW5nIHVzZXJB
Z2VudChjb25zdCBVUkwmKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBTZXR0aW5nczo6VmFsdWVz
JiBzZXR0aW5nc1ZhbHVlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3NWYWx1ZXM7
IH0KIAotICAgIHN0cnVjdCBTY3JpcHRGZXRjaEpvYiB7Ci0gICAgICAgIFVSTCBtb2R1bGVVUkw7
Ci0gICAgICAgIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzOwotICAgICAgICBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+IGNvbXBsZXRpb25I
YW5kbGVyOwotICAgIH07Ci0KLSAgICB2b2lkIHByb2Nlc3NOZXh0U2NyaXB0RmV0Y2hKb2JJZk5l
ZWRlZCgpOwotICAgIHZvaWQgZGlkQ29tcGxldGVTY3JpcHRGZXRjaEpvYihTY3JpcHRGZXRjaEpv
YiYmLCBPcHRpb25hbDxFeGNlcHRpb24+KTsKLQogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9j
dW1lbnQ7CiAKICAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IG1fdG9wT3JpZ2luOwpAQCAtMTQ0LDkg
KzEzMCw2IEBAIGNsYXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZSwgcHVibGljIFdvcmtlclNjcmlwCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V29ya2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI+IG1fbWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXI7CiAKLSAgICBSZWZQdHI8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExvYWRlcjsK
LSAgICBEZXF1ZTxTY3JpcHRGZXRjaEpvYj4gbV9zY3JpcHRGZXRjaEpvYnM7Ci0gICAgSGFzaFNl
dDxVUkw+IG1fZXZhbHVhdGVkTW9kdWxlczsKICAgICBTZXR0aW5nczo6VmFsdWVzIG1fc2V0dGlu
Z3NWYWx1ZXM7CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjYyMGE5NmU2ZWI3MjNjZmM1OTQ2OWRlM2E5MjdhMzNk
ZGI5Zjg3Yi4uNzJjMGU3OGViZDBmOTJmYjY4ZmU3NDQwZDhlNWRjMTc5OTkxZTg2YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDIxLTAyLTE4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBXb3JrZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ4NjAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL21vZHVs
ZS1zY3JpcHRub25jZS1yZWRpcmVjdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0
cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViYXVkaW8vYXVkaW93b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWJhdWRpby93b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0w
Mi0xNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBFdmVudEhh
bmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRG93bkRpc3BhdGNoaW5nU2VsZWN0U3RhcnQg
c2hvdWxkIG5vdCB1c2UgYW4gb3JwaGFuZWQgc2VsZWN0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwppbmRleCBjMTMzMjk0NWVkODFiMzcyNDIwZDFhNzJmMDY2NTkyMjI5YzgwYzAxLi4z
YjYxZjlhYTExNDQ5OTY2ODNiZDMzM2M3YWMwMWVhM2RmZjI5YzhjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAyMS0wMi0xOCAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2Vycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBvZiB3
b3JrbGV0IGZhaWx1cmVzIGluIFdQVCBpcyBiZWNhdXNlLAorCisgICAgICAgICAgICAxLiBQcmV2
aW91c2x5LCB3b3JrbGV0IGRvZXMgbm90IHN1cHBvcnQgbW9kdWxlLiBUaGVzZSB0ZXN0cyBhcmUg
cGFzc2luZyBpbmNvcnJlY3RseSB3aGVuIG1vZHVsZXMgYXJlIG5vdCBzdXBwb3J0ZWQuCisgICAg
ICAgICAgICAgICBOb3csIG1vZHVsZXMgYXJlIHN1cHBvcnRlZCwgYW5kIHNvbWUgZWRnZSBmZWF0
dXJlcyBhcmUgbWlzc2luZywgc28gc3RhcnQgZmFpbGluZworICAgICAgICAgICAgMi4gV1BUIGlz
IHVzaW5nIHd3dzEubG9jYWxob3N0IGluIHNvbWUgdGVzdHMgKENTUCB0ZXN0cyksIGFuZCB0aGlz
IGlzIG5vdCBzdXBwb3J0ZWQgaW4gV2ViS2l0J3MgV1BUIHRlc3RpbmcuIFNvIGZhaWxpbmcgaW5j
b3JyZWN0bHkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVu
dGF0aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90
YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
c2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBo
YS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0x
LW5vdGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9l
dmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2Vy
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9p
bXBvcnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJs
L2FscGhhL3hoci1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLXdvcmtlci1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3Jz
L1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRp
cmVjdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
aW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMv
ZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LWNzcC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRl
ZC13b3JrZXItaW1wb3J0LW1ldGEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS5odG1s
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVk
LXdvcmtlci1pbXBvcnQtcmVmZXJyZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2Ut
ZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3JlZGVudGlhbHMuaHR0cHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3Jr
bGV0LWNzcC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1yZWZlcnJlci5o
dHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVu
LXVybC1yZWRpcmVjdGVkLXdvcmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAyLTE2
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYVJlY29y
ZGVyLnN0b3AoKSBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseSB3aGVuIHJlY29yZGluZyBoYXMgYmVl
biBwYXVzZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiMTBiZTg2MzkwZWRjZTY5OGNkYzNlY2Iy
OWZmMWY5YmIyM2Y2N2JiLi4zZWEyY2I3NmU4Y2E3OTUxY2M2MzFkNzUyZTdjYTAyYzBlZTgzMTdm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY0MCw3ICs2NDAsNiBAQCBmYXN0L2RvbS9jb25uZWN0
ZWQtc3ViZnJhbWUtY291bnRlci1vdmVyZmxvdy5odG1sIFsgU2xvdyBdCiBbIERlYnVnIF0gaHR0
cC90ZXN0cy93b3JrZXJzL3dvcmtlci1tZXNzYWdlcG9ydC0yLmh0bWwgWyBTbG93IF0KIAogIyBT
a2lwIHdvcmtlcnMgdGVzdHMgdGhhdCBhcmUgdGltaW5nIG91dCBvciBhcmUgU2hhcmVkV29ya2Vy
IHJlbGF0ZWQgb25seQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Nv
bnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmlnaW4uaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2RhdGEtdXJsLXNoYXJlZC5odG1sIFsgU2tpcCBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvZXhhbXBsZXMvb25jb25u
ZWN0LmFueS5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvZXhhbXBsZXMvb25jb25uZWN0LmFueS53b3JrZXIuaHRtbCBbIFNraXAgXQpAQCAtNjYz
LDcgKzY2Miw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9TaGFy
ZWRXb3JrZXItcmVwbGFjZS1FdmVudEhhbmRsZXIuYW55Lmh0CiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyLXJlcGxhY2UtRXZlbnRIYW5kbGVyLmFu
eS53b3JrZXIuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL1NoYXJlZFdvcmtlci1zY3JpcHQtZXJyb3IuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL1NoYXJlZFdvcmtlci1zaW1wbGUuaHRtbCBb
IFNraXAgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMv
ZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJyZXIuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1v
cHRpb25zLWNyZWRlbnRpYWxzLmh0bWwgWyBTa2lwIF0KIAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9TaGFyZWRXb3JrZXIgWyBTa2lwIF0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5LzEuMS9tb2R1bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL21v
ZHVsZS1zY3JpcHRub25jZS1yZWRpcmVjdC1leHBlY3RlZC50eHQKaW5kZXggNTA5OTE5ZjdiZmQ4
Y2Y5NGM1ZDMzNDdmODdhNjQ0ZDE1ODg0NTkyMS4uZTE3MmRlNGQwNGUyYTU3NDdjNzdmMjIyMjRm
ZDQ1YWMwNTI1MDVmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL21vZHVsZS1zY3JpcHRub25jZS1yZWRpcmVjdC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvMS4xL21vZHVsZS1zY3JpcHRub25jZS1yZWRpcmVjdC1leHBlY3RlZC50
eHQKQEAgLTEsMyArMSwyIEBACiBDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vMTI3LjAu
MC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgot
Q09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6IENyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5p
ZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LgogVGhpcyB0ZXN0cyB3
aGV0aGVyIGEgZGVmZXJyZWQgc2NyaXB0IGxvYWQgY2F1c2VkIGJ5IGEgcmVkaXJlY3QgaXMgcHJv
cGVybHkgYWxsb3dlZCBieSBhIG5vbmNlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N1YnJlc291cmNlLWludGVncml0eS9zcmktbW9kdWxlLWV4cGVj
dGVkLnR4dAppbmRleCBhMDFkOWYwNzI2ZmY5N2M1MjVhNTA0NTA3NmJhZTUxNGM4MmVlMmVhLi45
MGEyOTFlYjgyOWVlOThhNzk4ZWMzNzQ4NTE4NGVhMGU5NWFjYzhiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N1YnJlc291cmNlLWludGVncml0eS9zcmktbW9kdWxlLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N1YnJlc291cmNlLWludGVncml0
eS9zcmktbW9kdWxlLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDYgQEAgQ09OU09MRSBNRVNTQUdF
OiBUeXBlRXJyb3I6IENhbm5vdCBsb2FkIHNjcmlwdCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc3Vi
cmVzb3VyY2UKIENPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBDYW5ub3QgbG9hZCBzY3JpcHQg
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3N1YnJlc291cmNlLWludGVncml0eS9yZXNvdXJjZXMvY3Jv
c3NvcmlnaW4tYW5vbi1zY3JpcHQtbW9kdWxlLmpzLiBGYWlsZWQgaW50ZWdyaXR5IG1ldGFkYXRh
IGNoZWNrLiBDb250ZW50IGxlbmd0aDogMzcsIEV4cGVjdGVkIGNvbnRlbnQgbGVuZ3RoOiAzNywg
RXhwZWN0ZWQgbWV0YWRhdGE6IHNoYTI1Ni1kZWFkYmVlZmNTTGxiRlpDajFPQUNMeFR4VmNrMlRP
ckJURWRVYnd6MXlVPQogQ09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6IENhbm5vdCBsb2FkIHNj
cmlwdCBodHRwOi8vbG9jYWxob3N0OjgwMDAvc3VicmVzb3VyY2UtaW50ZWdyaXR5L3Jlc291cmNl
cy9jcm9zc29yaWdpbi1jcmVkcy1zY3JpcHQtbW9kdWxlLmpzLiBGYWlsZWQgaW50ZWdyaXR5IG1l
dGFkYXRhIGNoZWNrLiBDb250ZW50IGxlbmd0aDogMzgsIEV4cGVjdGVkIGNvbnRlbnQgbGVuZ3Ro
OiAzOCwgRXhwZWN0ZWQgbWV0YWRhdGE6IHNoYTI1Ni1kZWFkYmVlZjJTK3BUUlpnaXczRFdyaEM2
SkxEbHQyelJ5R3B3SDd1blU4PQogQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4w
LjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4K
LUNPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVu
aWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4KIENPTlNPTEUgTUVT
U0FHRTogVHlwZUVycm9yOiBDYW5ub3QgbG9hZCBzY3JpcHQgaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3N1YnJlc291cmNlLWludGVncml0eS9yZXNvdXJjZXMvbWF0Y2hpbmctZGlnZXN0LW1vZHVsZS5q
cy4gRmFpbGVkIGludGVncml0eSBtZXRhZGF0YSBjaGVjay4gQ29udGVudCBsZW5ndGg6IDI5LCBF
eHBlY3RlZCBjb250ZW50IGxlbmd0aDogMjksIEV4cGVjdGVkIG1ldGFkYXRhOiBzaGEyNTYtY1do
OW5QZm03X21SYktoemFyblJZbHNKV3o1WFROY3NxUEZ6S0V4K3pTVT0KIENPTlNPTEUgTUVTU0FH
RTogVHlwZUVycm9yOiBDYW5ub3QgbG9hZCBzY3JpcHQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3N1
YnJlc291cmNlLWludGVncml0eS9yZXNvdXJjZXMvbWF0Y2hpbmctZGlnZXN0LW1vZHVsZS5qcy4g
RmFpbGVkIGludGVncml0eSBtZXRhZGF0YSBjaGVjay4gQ29udGVudCBsZW5ndGg6IDI5LCBFeHBl
Y3RlZCBjb250ZW50IGxlbmd0aDogMjksIEV4cGVjdGVkIG1ldGFkYXRhOiBzaGEyNTYtVTlXWUR0
QldrY0h4MTMrOVVLay8zUTVlb3FEYzRZR3hZYjA3RVBXemI5ZT0/Zm9vPWJhcj9zcGFtPWVnZ3MK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1
bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9ub24tb2JqZWN0LnRlbnRhdGl2
ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA0OTI2OWIzYjUwYjkxNzVjYjYyZWNhMzEy
ZTU4NmIzYjE2NjJhMjU5Li4yY2FlNWY3ZTM1YTMyZmVjZWIyNjhmMjkwMDAwZTRlNTU1NmM2ODYw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVs
ZS9ub24tb2JqZWN0LnRlbnRhdGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9qc29uLW1vZHVsZS9ub24tb2JqZWN0LnRlbnRh
dGl2ZS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAotRkFJTCBOb24t
b2JqZWN0OiBudWxsIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vbnVsbC5qc29u
Jy4iCi1GQUlMIE5vbi1vYmplY3Q6IHRydWUgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVs
ZSAnLi90cnVlLmpzb24nLiIKLUZBSUwgTm9uLW9iamVjdDogZmFsc2UgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBp
bXBvcnQgdGhlIG1vZHVsZSAnLi9mYWxzZS5qc29uJy4iCi1GQUlMIE5vbi1vYmplY3Q6IHN0cmlu
ZyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJF
cnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL3N0cmluZy5qc29uJy4iCi1GQUlM
IE5vbi1vYmplY3Q6IGFycmF5IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vYXJy
YXkuanNvbicuIgorRkFJTCBOb24tb2JqZWN0OiBudWxsIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9uL2pz
b24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKK0ZBSUwgTm9uLW9iamVj
dDogdHJ1ZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2Ny
aXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IGZhbHNlIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0
aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKK0ZBSUwgTm9u
LW9iamVjdDogc3RyaW5nIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9uL2pzb24nIGlzIG5vdCBhIHZhbGlk
IEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKK0ZBSUwgTm9uLW9iamVjdDogYXJyYXkgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAn
YXBwbGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tz
L2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVj
a3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4
dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi5mNjhjYzcz
YjRkNjc0YzU0ZGZhZmU1MjIxMmI2NDNjNDAzMGZkNDJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29ya2Vy
Z2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRlci13b3JrZXJn
bG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAK
LUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitGQUlMIFByb21pc2Ug
cmVzb2x2ZWQgZHVyaW5nICNyZXBvcnQtdGhlLWVycm9yIGFzc2VydF9hcnJheV9lcXVhbHM6IGxl
bmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBbImhhbmRsZXIgMSIsICJoYW5kbGVyIDIiLCAi
aGFuZGxlciAxIHByb21pc2UiLCAiaGFuZGxlciAyIHByb21pc2UiXSBsZW5ndGggNCwgZ290IFtd
IGxlbmd0aCAwCitQQVNTIFByb21pc2UgcmVzb2x2ZWQgZHVyaW5nIGV2ZW50IGhhbmRsZXJzIG90
aGVyIHRoYW4gZXJyb3IKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRT
Y3JpcHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
ZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1l
eHBlY3RlZC50eHQKaW5kZXggNTFkNjEwMGU2MTIyYTk3YzM2NGIzY2ViMWQ3ZmQwN2UwZTE1NjEx
Ny4uYTgwNTBjMDc4Y2Y4Yjg4ZDU2OGFmZmUwZDU1Y2MzMTkwYzM2NTQ3YSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2Fs
cGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEv
YmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBA
QAogCi1GQUlMIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gc2FtZS1vcmlnaW4gaW1wb3J0U2NyaXB0
cygpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vaW1wb3J0LmpzP3BpcGU9aGVh
ZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiwqKSZsYWJlbD1yZWxhdGl2ZS1jcm9zcy1v
cmlnaW4gaW1wb3J0U2NyaXB0cygpJy4iCi1GQUlMIEFic29sdXRlIFVSTC1saWtlIGZyb20gc2Ft
ZS1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUg
J2h0dHA6Ly8xMjcuMC4wLjE6ODgwMC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2Ny
aXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2dhbW1hL2ltcG9ydC5qcz9waXBlPWhl
YWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9YWJzb2x1dGUtY3Jvc3Mt
b3JpZ2luIGltcG9ydFNjcmlwdHMoKScuIgotUEFTUyBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9tIGNy
b3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkKLUZBSUwgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSBj
cm9zcy1vcmlnaW4gaW1wb3J0U2NyaXB0cygpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1
bGUgJ2h0dHA6Ly8xMjcuMC4wLjE6ODgwMC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2dhbW1hL2ltcG9ydC5qcz9waXBl
PWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9YWJzb2x1dGUtY3Jv
c3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKScuIgorUEFTUyBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9t
IHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQorUEFTUyBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9t
IHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQorRkFJTCBSZWxhdGl2ZSBVUkwtbGlrZSBmcm9t
IGNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRzKCkgYXNzZXJ0X2VxdWFsczogUmVsYXRpdmUgVVJM
LWxpa2Ugc3BlY2lmaWVyIHJlc29sdXRpb24gc2hvdWxkIGZhaWwgZXhwZWN0ZWQgIih1bnJlYWNo
ZWQpIiBidXQgZ290ICJnYW1tYS9pbXBvcnQuanMiCitQQVNTIEFic29sdXRlIFVSTC1saWtlIGZy
b20gY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMoKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11
cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1leHBl
Y3RlZC50eHQKaW5kZXggODY2ZWJiMjI3YWQyNmFhY2UxYTU3OGJhZWE2YTgxZGMwZTZlNzdmMC4u
NWU3MDYzNDkwZTJkZmZlY2U4NWVhNzY1YWViZGRlNGIxNmViMGZjMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhh
L2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3Jr
ZXIuc3ViLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBSZWxhdGl2ZSBVUkwt
bGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0IHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRo
ZSBtb2R1bGUgJy4vaW1wb3J0LmpzP3BpcGU9aGVhZGVyKEFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbiwqKSZsYWJlbD1yZWxhdGl2ZS13b3JrZXIgdG9wLWxldmVsIHNjcmlwdCcuIgotRkFJTCBB
YnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0IHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBu
b3QgaW1wb3J0IHRoZSBtb2R1bGUgJ2h0dHA6Ly8xMjcuMC4wLjE6ODgwMC9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2dh
bW1hL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikm
bGFiZWw9YWJzb2x1dGUtd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQnLiIKK1BBU1MgUmVsYXRpdmUg
VVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdAorUEFTUyBBYnNvbHV0ZSBVUkwt
bGlrZSBmcm9tIHdvcmtlciB0b3AtbGV2ZWwgc2NyaXB0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJv
dy13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQv
bW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtlci1leHBlY3RlZC50eHQKaW5k
ZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uMmYxMmEyMzQyZmFk
MjI0ZTNhMThhNmZiNWQ4NDgzMjVlYTY3NzZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90
aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL2V2YWx1YXRpb24tb3JkZXItMS1ub3Rocm93LXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitQ
QVNTIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29y
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4
ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi5iODYxZjcwMWY5NDhmYjEzMjc2OTMyMmMz
ODM2NmYyZDEzOGYwNGUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXIt
MS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCi1IYXJuZXNzIEVycm9yIChU
SU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorRkFJTCBUZXN0IGV2YWx1YXRpb24gb3JkZXIgb2Yg
bW9kdWxlcyBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJy
YXkgWyJzdGVwLTEtMSIsICJzdGVwLTEtMiIsICJnbG9iYWwtZXJyb3IiLCAiZXJyb3IiLCAibWlj
cm90YXNrIl0gbGVuZ3RoIDUsIGdvdCBbInN0ZXAtMS0xIiwgInN0ZXAtMS0yIiwgIm1pY3JvdGFz
ayJdIGxlbmd0aCAzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRl
ci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThmYmE4YmJmOTU5
ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLmMxZDM4YmRlNTBjNTllNWQ1OTQxNzNkOTZmOWNkMTllYjEw
N2M5YjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1p
bXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJv
ciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK0ZBSUwgVGVzdCBldmFsdWF0aW9uIG9yZGVy
IG9mIG1vZHVsZXMgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVk
IGFycmF5IFsic3RlcC0yLjItMSIsICJzdGVwLTIuMi0yIiwgImdsb2JhbC1lcnJvciIsICJlcnJv
ciIsICJtaWNyb3Rhc2stMi4yIl0gbGVuZ3RoIDUsIGdvdCBbInN0ZXAtMi4yLTEiLCAic3RlcC0y
LjItMiIsICJtaWNyb3Rhc2stMi4yIl0gbGVuZ3RoIDMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWlj
LXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRl
eCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVmLi4yZjEyYTIzNDJmYWQy
MjRlM2ExOGE2ZmI1ZDg0ODMyNWVhNjc3NmZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2Vy
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZXZhbHVhdGlvbi1vcmRlci0zLWR5bmFtaWMtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KK1BB
U1MgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVsZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggMTJkOTRhOTFlZjFmOGFiMGExODdjNzQ5YjBkZGVjNjk2ZDExODhlNy4uYjRkNjhhZjA1
NmVlZjYyMmEzM2Q1NGYwNzZmMzgxZDRlMWJiMjlhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9pbXBvcnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0yLDggKzIsOCBAQAogRkFJTCBTdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFN5bnRheEVycm9yOiBV
bmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1
bWVudC4iCiBGQUlMIE5lc3RlZCBzdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFN5bnRheEVycm9yOiBV
bmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1
bWVudC4iCiBGQUlMIFN0YXRpYyBpbXBvcnQgYW5kIHRoZW4gZHluYW1pYyBpbXBvcnQuIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3Rz
IGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHluYW1pYyBpbXBvcnQuIGFzc2VydF9hcnJh
eV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBD
b3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzJy4i
LCBleHBlY3RlZCBhcnJheQotRkFJTCBOZXN0ZWQgZHluYW1pYyBpbXBvcnQuIGFzc2VydF9hcnJh
eV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBD
b3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWR5bmFtaWMtaW1wb3J0LXNj
cmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4g
c3RhdGljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBk
byBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9l
eHBvcnQtb24tc3RhdGljLWltcG9ydC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlM
IGV2YWwoaW1wb3J0KCkpLiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRv
IGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcu
L2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKK1BBU1MgRHluYW1p
YyBpbXBvcnQuCitQQVNTIE5lc3RlZCBkeW5hbWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBv
cnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4KK1BBU1MgZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwv
YWxwaGEvaW1wb3J0LWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZGQ5YWYzOGZm
MDlmYmVjMWZhYzBiOGY1ZWE5YmFkNmUzMTYzNjQ5ZC4uNTFlYjM2NjM4YzFjYTdkMDYwYjc2NzU5
MjZmY2M3MGM1YmYwNzZlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0LWluLW1vZHVsZXdv
cmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0LWluLW1vZHVsZXdvcmtlci1l
eHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIGlkZW50aWZpZXIgJ3InLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkg
b25lIGFyZ3VtZW50LgogCi1GQUlMIEJhc2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2Vy
czogaW1wb3J0IGFzc2VydF91bnJlYWNoZWQ6IEdvdCBlcnJvciBldmVudCBSZWFjaGVkIHVucmVh
Y2hhYmxlIGNvZGUKK1BBU1MgQmFzZSBVUkwgaW4gbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzOiBp
bXBvcnQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IGFiNWE3ZmI4OTAyMGYyOWZkODkzYTc1NjgwZmZlMTdkM2QzNTBmN2MuLmFiNTNiODA1
OTlhZTAxOTU3ODA4NWVlNDRhYWVmYTRjNzk1NTI2ODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2lt
cG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnRT
Y3JpcHRzLWluLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgaW1w
b3J0U2NyaXB0cyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZ2FtbWEvc2NyaXB0LmpzIiBidXQg
Z290ICJiZXRhL3NjcmlwdC5qcyIKK1BBU1MgaW1wb3J0U2NyaXB0cwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVy
bC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1p
bi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDgzZjM2N2YyY2YzYTY2YzY0YTYyNjQy
OTQ2NTZkNWU4ODFkMWMxMWMuLjI4YjBjYjQwMDEzOTJkMDg4N2E0ZmViZTY4MWMxZTE1MWQwZGYx
OGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9iYXNldXJsL2FscGhhL3hoci1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMg
KzEsMyBAQAogCi1GQUlMIEJhc2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2VyczogWEhS
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJnYW1tYVxuIiBidXQgZ290ICJiZXRhXG4iCitQQVNT
IEJhc2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2VyczogWEhSCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNl
dXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLXdv
cmtlci1leHBlY3RlZC50eHQKaW5kZXggZDZiMDhlZWRhZTZmNjk2YzdhNGJmYTY1NWUxM2I1ZWQ0
NjA3ZWEwMS4uZWExNDU0ZDliM2YyMGY4NWQ5MDE2YzUwNmExNTQ2YWY2MTc4NDJkMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L2Jhc2V1cmwvYWxwaGEveGhyLWluLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEv
eGhyLWluLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgeGhyLXdv
cmtlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiZ2FtbWFcbiIgYnV0IGdvdCAiYmV0YVxuIgor
UEFTUyB4aHItd29ya2VyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2lu
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dApp
bmRleCA4MzFmMGM1OGM2OTRjMmQ0ZmViZDZkOGQwYWYzMDdiMTA5NDQyYTZlLi5kNTU1ZWU3Y2Yz
ZmM3MmVmYjgyZGY5ZGI3ZGFkMzY3ZjlhYjdmZmJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0b3JzL1dvcmtl
ci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmln
aW4tZXhwZWN0ZWQudHh0CkBAIC0xLDEzICsxLDExIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTIHVuc3VwcG9ydGVkX3NjaGVtZQogRkFJTCBkYXRh
X3VybCBUaGUgb3BlcmF0aW9uIGlzIGluc2VjdXJlLgotVElNRU9VVCBhYm91dF9ibGFuayBUZXN0
IHRpbWVkIG91dAotVElNRU9VVCBleGFtcGxlX2ludmFsaWQgVGVzdCB0aW1lZCBvdXQKLVRJTUVP
VVQgcG9ydF84MSBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBodHRwc19wb3J0XzgwIFRlc3QgdGlt
ZWQgb3V0Ci1USU1FT1VUIGh0dHBzX3BvcnRfODAwMCBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBo
dHRwX3Bvc3RfODAxMiBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBqYXZhc2NyaXB0X3VybCBUZXN0
IHRpbWVkIG91dAorUEFTUyBhYm91dF9ibGFuaworUEFTUyBleGFtcGxlX2ludmFsaWQKK1BBU1Mg
cG9ydF84MQorUEFTUyBodHRwc19wb3J0XzgwCitQQVNTIGh0dHBzX3BvcnRfODAwMAorUEFTUyBo
dHRwX3Bvc3RfODAxMgorUEFTUyBqYXZhc2NyaXB0X3VybAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9X
b3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9X
b3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1leHBlY3RlZC50eHQKaW5kZXggZjE3
NDFmOWQ4YmYwNzAzMjcwZDJlMzc2MmRiY2JlMjZjMGI5MDA1OS4uM2IwZGZiMzVlNTFjZDFhODU0
NTUzMDE5YzBlNDAzZGJlMmYxZDMzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2Nv
cGUvbG9jYXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2Jh
bFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAot
RkFJTCBXb3JrZXJMb2NhdGlvbiB3aXRoIHJlZGlyZWN0czogY2xhc3NpYyBkZWRpY2F0ZWQgd29y
a2VycyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtl
cnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9wb3N0LWxvY2F0aW9uLW1l
bWJlcnMuanM/YSIgYnV0IGdvdCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvaW50ZXJm
YWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9oZWxwZXItcmVkaXJlY3QucHk/ZmFpbCIK
K1BBU1MgV29ya2VyTG9jYXRpb24gd2l0aCByZWRpcmVjdHM6IGNsYXNzaWMgZGVkaWNhdGVkIHdv
cmtlcnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVk
aXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0
aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50eHQKaW5kZXggZGMyZTJlMjA3ZGIwMDFlZTcw
ZTczMzA3ZDI3YmIzMzU3MjBmZDU1OS4uYjNiZjgxZWU4NjgxYjlkYzA4MGY1ODAyNzFlOGI4ZjM5
MDk2NTQ5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVk
aXJlY3QtbW9kdWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9s
b2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1G
QUlMIFdvcmtlckxvY2F0aW9uIHdpdGggcmVkaXJlY3RzOiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtl
cnMgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJz
L2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcG9zdC1sb2NhdGlvbi1tZW1i
ZXJzLmpzP2EiIGJ1dCBnb3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2ludGVyZmFj
ZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vaGVscGVyLXJlZGlyZWN0LnB5P2ZhaWwiCitQ
QVNTIFdvcmtlckxvY2F0aW9uIHdpdGggcmVkaXJlY3RzOiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtl
cnMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1l
eHBlY3RlZC50eHQKaW5kZXggMjBhYzE3ZDU2M2M0YjNhNDYxZjBjYWFmYmVhZWViZDcxM2Y5NzA4
MS4uZGNjZWRjY2QzNjhlMWZmMTdiMWRkMTM2ZTQ1M2ZlYzRmZTEwYmM4MyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVs
ZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9k
dWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0CkBA
IC0xLDE4ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQg
c3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL3N0YXRpYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFj
dGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0
ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL25lc3RlZC1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4
cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vy
cy9tb2R1bGVzL3Jlc291cmNlcy9zdGF0aWMtaW1wb3J0LWFuZC10aGVuLWR5bmFtaWMtaW1wb3J0
LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1D
T05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJo
dHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWlt
cG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50
LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJh
bCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvbmVzdGVk
LWR5bmFtaWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBv
bmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0
cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291
cmNlcy9keW5hbWljLWltcG9ydC1hbmQtdGhlbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6
IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9jYWxob3N0
Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9ldmFsLWR5bmFtaWMtaW1wb3J0LXdvcmtl
ci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCiAKLUhhcm5l
c3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5n
IGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2Vz
L2R5bmFtaWMtaW1wb3J0LWFuZC10aGVuLXN0YXRpYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1wb3J0
IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLQotRkFJTCBTdGF0aWMgaW1wb3J0
LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dv
cmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvc3RhdGljLWltcG9ydC13b3JrZXIuanNcIi4gaW1wb3J0
IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIE5lc3RlZCBzdGF0aWMg
aW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5
bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4
ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvbmVzdGVkLXN0YXRpYy1pbXBvcnQtd29ya2Vy
LmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBT
dGF0aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmlu
ZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJj
ZXMvc3RhdGljLWltcG9ydC1hbmQtdGhlbi1keW5hbWljLWltcG9ydC13b3JrZXIuanNcIi4gaW1w
b3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIER5bmFtaWMgaW1w
b3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRh
eEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAw
L3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBOZXN0ZWQgZHlu
YW1pYyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgXCJodHRwOi8vbG9jYWxo
b3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9uZXN0ZWQtZHluYW1pYy1pbXBvcnQt
d29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgot
RkFJTCBEeW5hbWljIGltcG9ydCBhbmQgdGhlbiBzdGF0aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4cGVjdGVk
IHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9y
ZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtYW5kLXRoZW4tc3RhdGljLWltcG9ydC13b3JrZXIuanNc
Ii4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIGV2YWwo
aW1wb3J0KCkpLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
IlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9z
dDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXZhbC1keW5hbWljLWltcG9ydC13b3Jr
ZXIuanNcIi4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4iCitQQVNT
IFN0YXRpYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBzdGF0aWMgaW1wb3J0LgorUEFTUyBTdGF0aWMg
aW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LgorUEFTUyBEeW5hbWljIGltcG9ydC4KK1BB
U1MgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LgorUEFTUyBEeW5hbWljIGltcG9ydCBhbmQgdGhlbiBz
dGF0aWMgaW1wb3J0LgorUEFTUyBldmFsKGltcG9ydCgpKS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3Jr
ZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQKaW5kZXggMWRhNDZiOTI2YmUwODk2ZWU4Zjc1YTc4
ZGNhZTRmMjY5YjA1MDkyYi4uMjM5Y2M5Y2UxNTMwMWY3ZWVkODNkNWViMjIzMGE5ZGUyOTRlYTJl
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1jc3AtZXhwZWN0ZWQudHh0CkBAIC0x
LDEzICsxLDIyIEBACiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3Vy
aXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBl
eHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9y
ZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVj
b2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgog
CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5
NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCitC
bG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQz
L3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCitCbG9j
a2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dv
cmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCiBDT05TT0xF
IE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUg
J3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93
d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxv
YWQtc2NyaXB0LmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3Vy
aXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBl
eHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9y
ZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNv
dXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5h
bCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJj
ZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXpl
ZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitCbG9j
a2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dv
cmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LW9uLWxvYWQtc2NyaXB0LmpzCiAKIFBBU1Mg
d29ya2VyLXNyYyAnc2VsZicgZGlyZWN0aXZlIHNob3VsZCBkaXNhbGxvdyBjcm9zcyBvcmlnaW4g
c3RhdGljIGltcG9ydC4KIEZBSUwgd29ya2VyLXNyYyAqIGRpcmVjdGl2ZSBzaG91bGQgYWxsb3cg
Y3Jvc3Mgb3JpZ2luIHN0YXRpYyBpbXBvcnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IGV4cGVjdGVk
IHByb3BlcnR5IDAgdG8gYmUgImV4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcyIgYnV0IGdvdCAiRVJS
T1IiIChleHBlY3RlZCBhcnJheSBbImV4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcyJdIGdvdCBbIkVS
Uk9SIl0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQu
dHh0CmluZGV4IDk1YzZkMTVkZjQ0ZTE4YTM1ZGZlYjBmYTM5YzhkMzg0NDIwYzJjMTMuLmU5NTU3
OGU3MWIxYzUwYTRlMDQ3MWIwMzcxNTRiMzg2YjM3YWVkNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRl
ZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAotQ09O
U09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAnLi9u
b24tZXhpc3RlbnQtc2NyaXB0LmpzJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBh
cmd1bWVudC4KK0NPTlNPTEUgTUVTU0FHRTogSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWls
ZWQuCiAKLUZBSUwgaW1wb3J0U2NyaXB0cygpIG9uIG1vZHVsZSB3b3JrZXIgc2hvdWxkIHRocm93
IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlR5cGVFcnJvciIgYnV0IGdv
dCAiTE9BREVEIgorUEFTUyBpbXBvcnRTY3JpcHRzKCkgb24gbW9kdWxlIHdvcmtlciBzaG91bGQg
dGhyb3cgYW4gZXhjZXB0aW9uLgogUEFTUyBXb3JrZXIgY29uc3RydWN0aW9uIGZvciBub24tZXhp
c3RlbnQgc2NyaXB0IHNob3VsZCBkaXNwYXRjaCBhbiBFcnJvckV2ZW50LgogUEFTUyBTdGF0aWMg
aW1wb3J0IGZvciBub24tZXhpc3RlbnQgc2NyaXB0IHNob3VsZCBkaXNwYXRjaCBhbiBFcnJvckV2
ZW50LgotRkFJTCBEeW5hbWljIGltcG9ydCBmb3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91bGQg
dGhyb3cgYW4gZXhjZXB0aW9uLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiVHlwZUVycm9yIiBi
dXQgZ290ICJFcnJvciIKK1BBU1MgRHluYW1pYyBpbXBvcnQgZm9yIG5vbi1leGlzdGVudCBzY3Jp
cHQgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIFBBU1MgV29ya2VyIGNvbnN0cnVjdGlvbiBm
b3IgYW4gaW52YWxpZCBVUkwgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIFBBU1MgV29ya2Vy
IGNvbnN0cnVjdGlvbiBmb3IgYSBmaWxlIFVSTCBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEtZXhwZWN0ZWQudHh0CmluZGV4IGQ1
ODA2MjA0MWMzZTY5NTE1YjgxNWUwMmQ3YzM4Njg0ZDc3Yzc2YjcuLjc3MjkxYmFhMWE0MTg0YmVi
ZTdhZDdiNWQ5ZjExOWM3MWE3OGRlNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LW1ldGEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0
LW1ldGEtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsNSBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50
YXhFcnJvcjogaW1wb3J0Lm1ldGEgaXMgb25seSB2YWxpZCBpbnNpZGUgbW9kdWxlcy4KIAotSGFy
bmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBTeW50YXhFcnJvcjogaW1wb3J0Lm1ldGEgaXMg
b25seSB2YWxpZCBpbnNpZGUgbW9kdWxlcy4KLQotRkFJTCBUZXN0IGltcG9ydC5tZXRhLnVybCBv
biB0aGUgdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFs
aWQgaW5zaWRlIG1vZHVsZXMuIgotRkFJTCBUZXN0IGltcG9ydC5tZXRhLnVybCBvbiB0aGUgaW1w
b3J0ZWQgbW9kdWxlIHNjcmlwdC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2NyaXB0
IHdpdGggYSBmcmFnbWVudC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQ
QVNTIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSB0b3AtbGV2ZWwgbW9kdWxlIHNjcmlwdC4K
K1BBU1MgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQu
CitQQVNTIFRlc3QgaW1wb3J0Lm1ldGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2NyaXB0
IHdpdGggYSBmcmFnbWVudC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBv
cnQtbWV0YS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS5odG1sCmluZGV4
IGNmZjhlOTE0ODhlODIzOWFiZTIxMzYxOWQxMmQ1YTYwMzA3MmZiZWEuLmVkZTI2OTJlMWM2MzQx
YmVmZmM5MDEwYzQxYjhmNGNmZTQzODMyOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3Jr
ZXItaW1wb3J0LW1ldGEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRh
Lmh0bWwKQEAgLTUzLDcgKzUzLDcgQEAKICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCcuLycg
KyBzY3JpcHRfdXJsICsgJyMxJyk7CiAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHdvcmtlci5vbm1lc3NhZ2UgPSByZXNvbHZlKTsKICAgICAgIH0pCi0gICAgICAudGhlbiht
c2dfZXZlbnQgPT4gYXNzZXJ0X3RydWUobXNnX2V2ZW50LmRhdGEuZW5kc1dpdGgoc2NyaXB0X3Vy
bCkpKTsKKyAgICAgIC50aGVuKG1zZ19ldmVudCA9PiBhc3NlcnRfdHJ1ZShtc2dfZXZlbnQuZGF0
YS5lbmRzV2l0aChzY3JpcHRfdXJsICsgJyMxJykpKTsKIH0sICdUZXN0IGltcG9ydC5tZXRhLnVy
bCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJhZ21lbnQuJyk7CiAKIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJyZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtcmVmZXJyZXItZXhwZWN0
ZWQudHh0CmluZGV4IDZkYzQyYzFjZmQzMzQ4YWZkZDFkZmQzYjEwYTUwNDcwNTUzMDE5NmEuLjcw
MTY1OGRhNjgwNGNhZWIwZGVjMjU0ODcwMDllZTY3NmNlZWE5ZDEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2Rl
ZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQKQEAgLTEsMTkgKzEsMjMg
QEAKLQotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCitCbG9ja2VkIGFj
Y2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMv
bW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNj
ZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9t
b2R1bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBhY2Nl
c3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21v
ZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2Vz
cyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9k
dWxlcy9yZXNvdXJjZXMvZXhwb3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNjZXNz
IHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1
bGVzL3Jlc291cmNlcy9leHBvcnQtcmVmZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2V4cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CiAKIFBBU1MgU2FtZS1vcmln
aW4gdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQgbG9hZGluZyB3aXRoICJuby1yZWZlcnJlciIgcmVm
ZXJyZXIgcG9saWN5CiBQQVNTIFNhbWUtb3JpZ2luIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0IGxv
YWRpbmcgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kKIFBBU1MgU2FtZS1vcmlnaW4gdG9w
LWxldmVsIG1vZHVsZSBzY3JpcHQgbG9hZGluZyB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIg
cG9saWN5Ci1GQUlMIFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAibm8tcmVmZXJyZXIi
IHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBTYW1lLW9yaWdpbiBz
dGF0aWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IiCi1GQUlMIFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4i
IHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgorUEFTUyBTYW1lLW9yaWdpbiBz
dGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuCitQQVNTIFNh
bWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCitQ
QVNTIFNhbWUtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVy
IHBvbGljeS4KIEZBSUwgQ3Jvc3Mtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAibm8tcmVmZXJy
ZXIiIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgogRkFJTCBDcm9zcy1vcmln
aW4gc3RhdGljIGltcG9ydCB3aXRoICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBU
eXBlIGVycm9yIgogRkFJTCBDcm9zcy1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJzYW1lLW9y
aWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCi1USU1FT1VUIFNhbWUt
b3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3ku
IFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAi
b3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBv
cnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4KLU5PVFJVTiBDcm9zcy1vcmln
aW4gZHluYW1pYyBpbXBvcnQgd2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeS4KLU5P
VFJVTiBDcm9zcy1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBw
b2xpY3kuCi1OT1RSVU4gQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggInNhbWUtb3Jp
Z2luIiByZWZlcnJlciBwb2xpY3kuCitQQVNTIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdp
dGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuCitQQVNTIFNhbWUtb3JpZ2luIGR5bmFt
aWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgorUEFTUyBTYW1lLW9yaWdp
biBkeW5hbWljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgorRkFJ
TCBDcm9zcy1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVy
IHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgorRkFJTCBDcm9zcy1vcmlnaW4gZHluYW1pYyBp
bXBvcnQgd2l0aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIK
K0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZl
cnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNh
dGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LmFueS1leHBlY3RlZC50eHQKaW5kZXggYTIzYTU1NzVkYjQyNzQyN2Y4NWJkNmI2MzU0
ZGU4ODM4MzFmZTJiNC4uZGNjZWRjY2QzNjhlMWZmMTdiMWRkMTM2ZTQ1M2ZlYzRmZTEwYmM4MyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
bW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDE0
ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4g
JyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBN
RVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4
cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBh
cmd1bWVudC4KIAotSGFybmVzcyBFcnJvciAoRkFJTCksIG1lc3NhZ2UgPSBTeW50YXhFcnJvcjog
VW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJn
dW1lbnQuCi0KLUZBSUwgU3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGlt
cG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBOZXN0ZWQgc3Rh
dGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMg
ZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBTdGF0aWMgaW1wb3J0IGFuZCB0aGVuIGR5bmFt
aWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
IlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBl
eGFjdGx5IG9uZSBhcmd1bWVudC4iCi1GQUlMIER5bmFtaWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlf
ZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291
bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwg
ZXhwZWN0ZWQgYXJyYXkKLUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlf
ZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291
bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1keW5hbWljLWltcG9ydC1zY3Jp
cHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlMIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0
YXRpYyBpbXBvcnQuIGFzc2VydF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8g
ZHluYW1pYyBpbXBvcnQ6IEVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhw
b3J0LW9uLXN0YXRpYy1pbXBvcnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBl
dmFsKGltcG9ydCgpKS4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBk
byBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9l
eHBvcnQtb24tbG9hZC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5CitQQVNTIFN0YXRpYyBp
bXBvcnQuCitQQVNTIE5lc3RlZCBzdGF0aWMgaW1wb3J0LgorUEFTUyBTdGF0aWMgaW1wb3J0IGFu
ZCB0aGVuIGR5bmFtaWMgaW1wb3J0LgorUEFTUyBEeW5hbWljIGltcG9ydC4KK1BBU1MgTmVzdGVk
IGR5bmFtaWMgaW1wb3J0LgorUEFTUyBEeW5hbWljIGltcG9ydCBhbmQgdGhlbiBzdGF0aWMgaW1w
b3J0LgorUEFTUyBldmFsKGltcG9ydCgpKS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1vcHRp
b25zLXR5cGUtZXhwZWN0ZWQudHh0CmluZGV4IGRhMGU0ZWI2NzU4ZDE0YTM3YTM5OGQwYjZmYzcx
YWQzODc2YmQyNmIuLjFmYzBjNjZmZGY3MjRjMmFhM2I5MTA2OTgwYmZiZTdlOTg4Zjk3NzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMv
bW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQKQEAgLTIs
MTEgKzIsNiBAQAogUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCB0aGUgZGVmYXVs
dCB3b3JrZXIgdHlwZS4KIFBBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggdGhlICJj
bGFzc2ljIiB3b3JrZXIgdHlwZS4KIFBBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGgg
dGhlICJtb2R1bGUiIHdvcmtlciB0eXBlLgotRkFJTCBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24g
d2l0aCBhbiBlbXB0eSB3b3JrZXIgdHlwZS4gYXNzZXJ0X3Rocm93c19qczogV29ya2VyIGNvbnN0
cnVjdGlvbiB3aXRoIGFuIGVtcHR5IHR5cGUgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiBmdW5j
dGlvbiAiKCkgPT4gewotICAgICAgICBuZXcgV29ya2VyKCdyZXNvdXJjZXMvcG9zdC1tZXNzYWdl
LW9uLWxvYWQtd29ya2VyLmpzJywgeyB0eXBlOiAnJyB9KTsKLSAgICAgIH0iIGRpZCBub3QgdGhy
b3cKLUZBSUwgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gdW5rbm93biB3b3JrZXIg
dHlwZS4gYXNzZXJ0X3Rocm93c19qczogV29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIHVua25v
d24gdHlwZSBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIGZ1bmN0aW9uICIoKSA9PiB7Ci0gICAg
ICAgIG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9wb3N0LW1lc3NhZ2Utb24tbG9hZC13b3JrZXIuanMn
LAotICAgICAgICAgICAgICAgICAgIHsgdHlwZTogJ3Vua25vd24nIH0pOwotICAgICAgfSIgZGlk
IG5vdCB0aHJvdworUEFTUyBUZXN0IHdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiBlbXB0eSB3
b3JrZXIgdHlwZS4KK1BBU1MgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gdW5rbm93
biB3b3JrZXIgdHlwZS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1l
cnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJy
b3ItZmFpbHVyZS1leHBlY3RlZC50eHQKaW5kZXggZThlYjU0MGJkMzM5MjQwMGE4ZGJmZDkzODY0
OGE2NDkyMzljMGQ5ZS4uZDFhNTBmN2VhM2NkNmRjMjk4ZWY3NTQxNDc3NjJjNjljNTdkNzNiMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhw
ZWN0ZWQudHh0CkBAIC0xLDcgKzEsMTQgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6
IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFy
Z3VtZW50LgorQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAn
OycKK0NPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJzsnCiAK
LUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gRXJyb3I6IGFzc2VydF9pbXBsZW1lbnRz
OiBTdGF0aWMgaW1wb3J0IG11c3QgYmUgc3VwcG9ydGVkIG9uIG1vZHVsZSBkZWRpY2F0ZWQgd29y
a2VyIHRvIHJ1biB0aGlzIHRlc3QuIHVuZGVmaW5lZAotCi1OT1RSVU4gTW9kdWxlIHdvcmtlciBj
b25zdHJ1Y3Rpb24gZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJvciBzaG91bGQgZGlzcGF0Y2gg
YW4gZXZlbnQgbmFtZWQgZXJyb3IuCi1OT1RSVU4gU3RhdGljIGltcG9ydCBvbiBtb2R1bGUgd29y
a2VyIGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJyb3Igc2hvdWxkIGRpc3BhdGNoIGFuIGV2ZW50
IG5hbWVkIGVycm9yLgorRkFJTCBNb2R1bGUgd29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igc2NyaXB0
IHdpdGggc3ludGF4IGVycm9yIHNob3VsZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4g
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50KCkgeworICAg
IFtuYXRpdmUgY29kZV0KK30iIGJ1dCBnb3QgZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yRXZlbnQo
KSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIKK0ZBSUwgU3RhdGljIGltcG9ydCBvbiBtb2R1bGUg
d29ya2VyIGZvciBzY3JpcHQgd2l0aCBzeW50YXggZXJyb3Igc2hvdWxkIGRpc3BhdGNoIGFuIGV2
ZW50IG5hbWVkIGVycm9yLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBmdW5jdGlvbiAiZnVuY3Rp
b24gRXZlbnQoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIgYnV0IGdvdCBmdW5jdGlvbiAiZnVu
Y3Rpb24gRXJyb3JFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFt
ZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQKaW5kZXggNjM5
ODQ3MTIxNDU5YTdhYjM3YjlmMDlhNjhiYTY0ZWE4YTllZDU3Yy4uZTk0Njk0N2IxNGFlZjNlNTI5
OWEwYWJhM2FlNGIxY2Y5ZmNkOTU3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDggQEAKIENPTlNPTEUgTUVT
U0FHRTogVW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uOiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3Qg
ZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCiAKLUZBSUwgVGVzdCB0aGUgbmFtZSBwcm9wZXJ0
eSBvZiBzaGFyZWQgYW5kIGRlZGljYXRlZCB3b3JrZXJzIHZpYSB0aGUgbmFtZSBjb25zdHJ1Y3Rv
ciBvcHRpb24gQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hhcmVkV29ya2VyCi1QQVNTIERlY2xhcmlu
ZyBuYW1lIGFzIGFuIGFjY2lkZW50YWwgZ2xvYmFsIG11c3Qgbm90IGNhdXNlIGEgaGFybmVzcyBl
cnJvciBmb3IgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUKK0hhcm5lc3MgRXJyb3IgKEZBSUwp
LCBtZXNzYWdlID0gVW5oYW5kbGVkIHJlamVjdGlvbjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogU2hh
cmVkV29ya2VyCisKIFBBU1MgbmFtZSBwcm9wZXJ0eSB2YWx1ZSBmb3IgRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUKIFBBU1MgbmFtZSBwcm9wZXJ0eSBpcyByZXBsYWNlYWJsZSBmb3IgRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGUKK1BBU1MgRGVjbGFyaW5nIG5hbWUgYXMgYW4gYWNjaWRlbnRh
bCBnbG9iYWwgbXVzdCBub3QgY2F1c2UgYSBoYXJuZXNzIGVycm9yIGZvciBEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3JlZGVudGlhbHMuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNyZWRlbnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dApp
bmRleCBmMDY5MWFhMDljYzQ5Y2RmN2YyYTk0Mzc0YzZlNjIyMjBmOTNiOGUyLi5hNTcwZDhkMjky
ZmE4NTYyMTJiMDU0Nzg4MjBmMTMwZjgxZDliYmY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3Jl
ZGVudGlhbHMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jcmVkZW50aWFscy5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTEgKzEsMTEgQEAKIENPTlNPTEUgTUVTU0FHRTogT3Jp
Z2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRy
b2wtQWxsb3ctT3JpZ2luLgogCi1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3
aXRoIHRoZSBkZWZhdWx0IFdvcmtsZXRPcHRpb25zIHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFs
cyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJB
Ym9ydEVycm9yOiBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogUmVzcG9uc2UgaXMgbm90
IDJ4eCIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggdGhlIGRlZmF1
bHQgV29ya2xldE9wdGlvbnMgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IElt
cG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiIKIFBBU1MgSW1wb3J0aW5nIGEgcmVtb3Rl
LW9yaWdpbiBzY3JpcHQgd2l0aCB0aGUgZGVmYXVsdCBXb3JrbGV0T3B0aW9ucyBzaG91bGQgbm90
IHNlbmQgdGhlIGNyZWRlbnRpYWxzCi1GQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlw
dCB3aXRoIGNyZWRlbnRpYWxzPW9taXQgc2hvdWxkIG5vdCBzZW5kIHRoZSBjcmVkZW50aWFscyBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9y
dEVycm9yOiBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJvcjogUmVzcG9uc2UgaXMgbm90IDJ4
eCIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9
b21pdCBzaG91bGQgbm90IHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEltcG9ydGluZyBh
IG1vZHVsZSBzY3JpcHQgZmFpbGVkLiIKIFBBU1MgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBz
Y3JpcHQgd2l0aCBjcmVkZW50aWFscz1vbWl0IHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVudGlh
bHMKLUZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9
c2FtZS1vcmlnaW4gc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0
byBmZXRjaCBtb2R1bGUsIGVycm9yOiBSZXNwb25zZSBpcyBub3QgMnh4IgorRkFJTCBJbXBvcnRp
bmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1zYW1lLW9yaWdpbiBzaG91
bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlw
dCBmYWlsZWQuIgogUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRoIGNy
ZWRlbnRpYWxzPXNhbWUtb3JpZ2luIHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVudGlhbHMKLUZB
SUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9aW5jbHVk
ZSBzaG91bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1v
ZHVsZSwgZXJyb3I6IFJlc3BvbnNlIGlzIG5vdCAyeHgiCi1GQUlMIEltcG9ydGluZyBhIHJlbW90
ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlhbHM9aW5jbHVkZSBzaG91bGQgc2VuZCB0aGUg
Y3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IE9yaWdp
biBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9s
LUFsbG93LU9yaWdpbi4iCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRo
IGNyZWRlbnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6
IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiIKK0ZBSUwgSW1wb3J0aW5nIGEgcmVt
b3RlLW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1pbmNsdWRlIHNob3VsZCBzZW5kIHRo
ZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5
IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8t
d29ya2xldC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNzcC5odHRwcy1leHBl
Y3RlZC50eHQKaW5kZXggYmYzMzVjZjMwNTVlMDY1YjM4OTg5YjQxYWExZTIzNmZlYjRhYzI5ZC4u
Mjc1YjM0MzdmYWQ5NzUzYTZlY2UyNDIwMGVhYmYyNTdmZmQ2MjcyYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13
b3JrbGV0LWNzcC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNzcC5odHRwcy1l
eHBlY3RlZC50eHQKQEAgLTEsNDAgKzEsNTIgQEAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFs
IFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2VtcHR5
LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4
dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2Vz
L2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMKK0Jsb2NrZWQgYWNjZXNz
IHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVz
b3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMKK0Jsb2NrZWQg
YWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2xl
dHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMKK0Js
b2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMv
d29ya2xldHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIu
anMKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0
Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1o
ZWFkZXIuanMKIENPTlNPTEUgTUVTU0FHRTogVW5yZWNvZ25pemVkIENvbnRlbnQtU2VjdXJpdHkt
UG9saWN5IGRpcmVjdGl2ZSAnd29ya2VyLXNyYycuCiAKIENPTlNPTEUgTUVTU0FHRTogVW5yZWNv
Z25pemVkIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2ZSAnd29ya2VyLXNyYycuCiAK
K0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9jYWxob3N0Ojk0
NDMvd29ya2xldHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFk
ZXIuanMKIENPTlNPTEUgTUVTU0FHRTogVW5yZWNvZ25pemVkIENvbnRlbnQtU2VjdXJpdHktUG9s
aWN5IGRpcmVjdGl2ZSAnd29ya2VyLXNyYycuCiAKIENPTlNPTEUgTUVTU0FHRTogVW5yZWNvZ25p
emVkIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGRpcmVjdGl2ZSAnd29ya2VyLXNyYycuCiAKIENP
TlNPTEUgTUVTU0FHRTogVW5yZWNvZ25pemVkIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGRpcmVj
dGl2ZSAnd29ya2VyLXNyYycuCiAKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
czovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQt
c2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMKIENPTlNPTEUgTUVTU0FHRTogW2Jsb2NrZWRdIFRo
ZSBwYWdlIGF0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2FkZG1v
ZHVsZS13aW5kb3cuaHRtbCB3YXMgbm90IGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250
ZW50IGZyb20gaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13
b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzLgogCiBDT05TT0xFIE1FU1NBR0U6IFti
bG9ja2VkXSBUaGUgcGFnZSBhdCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291
cmNlcy9hZGRtb2R1bGUtd2luZG93Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5z
ZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrbGV0cy9yZXNvdXJj
ZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcy4KIAorQ09OU09MRSBN
RVNTQUdFOiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My93b3Jr
bGV0cy9yZXNvdXJjZXMvYWRkbW9kdWxlLXdpbmRvdy5odG1sIHdhcyBub3QgYWxsb3dlZCB0byBk
aXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vbG9jYWxob3N0Ojk0NDMvd29ya2xl
dHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2NyaXB0LXdpdGgtY29ycy1oZWFkZXIuanMuCisK
K0NPTlNPTEUgTUVTU0FHRTogW2Jsb2NrZWRdIFRoZSBwYWdlIGF0IGh0dHBzOi8vbG9jYWxob3N0
Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2FkZG1vZHVsZS13aW5kb3cuaHRtbCB3YXMgbm90IGFs
bG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250ZW50IGZyb20gaHR0cDovL2xvY2FsaG9zdDo5
NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVh
ZGVyLmpzLgorCiAKIEZBSUwgQSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2hvdWxkIGJlIGJsb2Nr
ZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgIlJFSkVDVEVEIiBidXQgZ290ICJSRVNPTFZFRCIKLUZBSUwgQSBzYW1lLW9yaWdpbiB3
b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBiZSBibG9ja2Vk
IGJ5IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCitQQVNTIEEgc2FtZS1vcmlnaW4gd29y
a2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBi
eSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLgogRkFJTCBBIHJlbW90ZS1vcmlnaW4g
d29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tl
ZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgogRkFJTCBBIHJlbW90ZS1vcmlnaW4t
cmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBiZSBibG9ja2VkIGJ5IHRoZSBzY3JpcHQtc3JjICdz
ZWxmJyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdv
dCAiUkVTT0xWRUQiCi1GQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1v
dGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJ5IHRoZSBzY3Jp
cHQtc3JjICdzZWxmJyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RF
RCIgYnV0IGdvdCAiUkVTT0xWRUQiCitQQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRp
bmcgYSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJ5
IHRoZSBzY3JpcHQtc3JjICdzZWxmJyBkaXJlY3RpdmUuCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3
b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVj
dGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgotUEFTUyBBIHNhbWUtb3JpZ2lu
IHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBi
bG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9y
aWdpbiBhbGxvd3MgaXQuCitGQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSBy
ZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2Ny
aXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2luIGFsbG93cyBpdC4gYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSBy
ZW1vdGUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hv
dWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNp
ZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuCiBQQVNTIEEgcmVtb3RlLW9yaWdpbi1yZWRpcmVj
dGVkIHdvcmtsZXQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMg
ZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuCi1QQVNTIEEgc2FtZS1v
cmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0
IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBz
cGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgorRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmts
ZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgbm90
IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0
aGUgb3JpZ2luIGFsbG93cyBpdC4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBi
dXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2hvdWxkIG5v
dCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0
LgotUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBz
Y3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJl
Y3RpdmUgYWxsb3dzIGl0LgorRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEg
cmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNj
cmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
UkVTT0xWRUQiIGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBIHJlbW90ZS1vcmlnaW4gd29ya2xl
dCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQg
YmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBhbGxvd3MgaXQuCiBQQVNTIEEgcmVt
b3RlLW9yaWdpbi1yZWRpcmVjdGVkIHdvcmtsZXQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1
c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0LgotUEFTUyBBIHNhbWUtb3Jp
Z2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBz
aG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVjdGl2ZSBh
bGxvd3MgaXQuCitGQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSByZW1vdGUt
b3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRo
ZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4gYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgIlJFU09MVkVEIiBidXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQSByZW1vdGUtb3JpZ2luIHdv
cmtsZXQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBi
ZWNhdXNlIHdvcmtsZXRzIG9iZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLgotUEFTUyBBIHNh
bWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxk
IG5vdCBiZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdvcmts
ZXRzIG9iZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLgorRkFJTCBBIHNhbWUtb3JpZ2luIHdv
cmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9j
a2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdvcmtsZXRzIG9iZXkgdGhl
IHNjcmlwdC1zcmMgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQi
IGJ1dCBnb3QgIlJFSkVDVEVEIgogUEFTUyBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBpbXBvcnRp
bmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhlIHdv
cmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNyYyBk
aXJlY3RpdmUuCiBQQVNTIEEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHdvcmtsZXQgc2hvdWxk
IG5vdCBiZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdvcmts
ZXRzIG9iZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLgotUEFTUyBBIHNhbWUtb3JpZ2luIHdv
cmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQg
bm90IGJlIGJsb2NrZWQgYnkgdGhlIHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xl
dHMgb2JleSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUuCitGQUlMIEEgc2FtZS1vcmlnaW4gd29y
a2xldCBpbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBu
b3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0
cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
IlJFU09MVkVEIiBidXQgZ290ICJSRUpFQ1RFRCIKIFBBU1MgQW4gaW5zZWN1cmUtb3JpZ2luIHdv
cmtsZXQgc2hvdWxkIGJlIGJsb2NrZWQgYmVjYXVzZSBvZiBtaXhlZCBjb250ZW50cy4KIFBBU1Mg
QW4gaW5zZWN1cmUtb3JpZ2luLXJlZGlyZWN0ZWQgd29ya2xldCBzaG91bGQgYmUgYmxvY2tlZCBi
ZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLgotRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1w
b3J0aW5nIGFuIGluc2VjdXJlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYmVjYXVz
ZSBvZiBtaXhlZCBjb250ZW50cy4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVDVEVEIiBi
dXQgZ290ICJSRVNPTFZFRCIKLUZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBh
biBpbnNlY3VyZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYmVj
YXVzZSBvZiBtaXhlZCBjb250ZW50cy4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVDVEVE
IiBidXQgZ290ICJSRVNPTFZFRCIKK1BBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGlu
ZyBhbiBpbnNlY3VyZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2Yg
bWl4ZWQgY29udGVudHMuCitQQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYW4g
aW5zZWN1cmUtb3JpZ2luLXJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1
c2Ugb2YgbWl4ZWQgY29udGVudHMuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWltcG9ydC5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggZmU4OTY1YWVmNmNhZGEyMjE5ZWY4ZTMwODg4YmE5MWUyNDAxN2FjMC4uNjc2NDdkNDY4N2I5
ZDNjZmM4NmUwYjJjOGY1NjhlMjBmNWJlYzM5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWltcG9y
dC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWltcG9ydC5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTE2LDcgKzE2LDcgQEAgUEFTUyBJbXBvcnRpbmcgYSBjcm9zcyBvcmlnaW4gcmVz
b3VyY2Ugd2l0aCB0aGUgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIGhlYWQKIFBBU1MgSW1w
b3J0aW5nIGEgY3Jvc3Mgb3JpZ2luIHJlc291cmNlIHdpdGhvdXQgdGhlIEFjY2Vzcy1Db250cm9s
LUFsbG93LU9yaWdpbiBoZWFkZXIgc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZQogUEFT
UyBJbXBvcnRpbmcgYSBjcm9zcy1vcmlnaW4tcmVkaXJlY3RlZCByZXNvdXJjZSB3aXRoIHRoZSBB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4gaGVhZGVyIHNob3VsZCByZXNvbHZlIHRoZSBnaXZl
biBwcm9taXNlCiBQQVNTIEltcG9ydGluZyBhIGNyb3NzLW9yaWdpbi1yZWRpcmVjdGVkIHJlc291
cmNlIHdpdGhvdXQgdGhlIEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiBoZWFkZXIgc2hvdWxk
IHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZQotRkFJTCBJbXBvcnRpbmcgYSBzY3JpcHQgdGhhdCBo
YXMgYSBzeW50YXggZXJyb3Igc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4gYXNzZXJ0
X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVh
Y2hhYmxlIGNvZGUKLUZBSUwgSW1wb3J0aW5nIGEgbmVzdGVkIHNjcmlwdCB0aGF0IGhhcyBhIHN5
bnRheCBlcnJvciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9taXNlLiBhc3NlcnRfdW5yZWFj
aGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUg
Y29kZQotRkFJTCBJbXBvcnRpbmcgYSBzY3JpcHQgdGhhdCBpbXBvcnRzIGFuIGludmFsaWQgaWRl
bnRpZmllciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9taXNlLiBhc3NlcnRfdW5yZWFjaGVk
OiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29k
ZQorUEFTUyBJbXBvcnRpbmcgYSBzY3JpcHQgdGhhdCBoYXMgYSBzeW50YXggZXJyb3Igc2hvdWxk
IHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4KK1BBU1MgSW1wb3J0aW5nIGEgbmVzdGVkIHNjcmlw
dCB0aGF0IGhhcyBhIHN5bnRheCBlcnJvciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9taXNl
LgorUEFTUyBJbXBvcnRpbmcgYSBzY3JpcHQgdGhhdCBpbXBvcnRzIGFuIGludmFsaWQgaWRlbnRp
ZmllciBzaG91bGQgcmVqZWN0IHRoZSBnaXZlbiBwcm9taXNlLgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdv
cmtsZXQtcmVmZXJyZXIuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0
dHBzLWV4cGVjdGVkLnR4dAppbmRleCAyNGQ0OTljMTQxY2VlNmRjOWIyZWJlMjRiZmI0ZmY0YzAz
YTBhOTczLi43OWQ4NTIyN2NjMGY0NjczN2U2ZjgzZmI0YTIxYzU4YWI1Mzc3NjBiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRz
L2F1ZGlvLXdvcmtsZXQtcmVmZXJyZXIuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xl
dC1yZWZlcnJlci5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMjAgKzEsMjYgQEAKK0NPTlNPTEUg
TUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93ZWQgYnkg
QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwg
VVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvcmVmZXJy
ZXItY2hlY2tlci5weT9yZWZlcnJlcl9wb2xpY3k9bm8tcmVmZXJyZXImZXhwZWN0ZWRfcmVmZXJy
ZXI9CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9z
dDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9yZWZlcnJlci1jaGVja2VyLnB5P3JlZmVycmVyX3Bv
bGljeT1vcmlnaW4mZXhwZWN0ZWRfcmVmZXJyZXI9aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My8KK0NP
TlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMgaXMgbm90IGFsbG93
ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMv
cmVmZXJyZXItY2hlY2tlci5weT9yZWZlcnJlcl9wb2xpY3k9c2FtZS1vcmlnaW4mZXhwZWN0ZWRf
cmVmZXJyZXI9CitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9zdDo5NDQz
IGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIAogUEFTUyBJ
bXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgIm5vLXJl
ZmVycmVyIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgogUEFTUyBJ
bXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAibm8t
cmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNT
IEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAib3Jp
Z2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgb25seSBhbiBvcmlnaW4gYXMgcmVmZXJy
ZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdlIHRo
YXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCBvbmx5IGFuIG9yaWdp
biBhcyByZWZlcnJlci4KLVBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20g
YSBwYWdlIHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5k
IHJlZmVycmVyLgorRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHBh
Z2UgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIG9ubHkgYW4g
b3JpZ2luIGFzIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1
dCBnb3QgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiIKK0ZBSUwgSW1wb3J0aW5n
IGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgIm9yaWdpbiIgcmVm
ZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIG9ubHkgYW4gb3JpZ2luIGFzIHJlZmVycmVyLiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3Jp
cHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIK
K0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFz
ICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkltcG9ydGluZyBhIG1vZHVs
ZSBzY3JpcHQgZmFpbGVkLiIKIFBBU1MgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQg
ZnJvbSBhIHBhZ2UgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxk
IG5vdCBzZW5kIHJlZmVycmVyLgogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQg
ZnJvbSBhIHNhbWUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJuby1yZWZlcnJlciIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4KLVBBU1MgSW1wb3J0aW5n
IGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHNhbWUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0
IHRoYXQgaGFzICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCBy
ZWZlcnJlci4KK0ZBSUwgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHNh
bWUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJuby1yZWZlcnJlciIgcmVmZXJyZXIg
cG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
IlJFU09MVkVEIiBidXQgZ290ICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENy
b3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iCiBQQVNTIEltcG9ydGluZyBhIHNh
bWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0
IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJy
ZXIuCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUt
b3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9s
aWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4KIFBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmln
aW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAib3Jp
Z2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlw
dCB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIu
Ci1QQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdp
biB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxk
IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZy
b20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVy
cmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4KLVBBU1MgSW1wb3J0aW5nIGEgc2FtZS1v
cmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAi
c2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4KLVBBU1Mg
SW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHNhbWUtb3JpZ2luIHdvcmts
ZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBu
b3Qgc2VuZCByZWZlcnJlci4KLVBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZy
b20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4KLVBBU1MgSW1wb3J0aW5n
IGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3Jp
cHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVm
ZXJyZXIuCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1l
LW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kg
c2hvdWxkIHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIg
YnV0IGdvdCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4g
UmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgorRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBz
Y3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdp
biIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFp
bGVkLiIKK0ZBSUwgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90
ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQi
IGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2lu
IFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4g
c2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1v
cmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0
IGZhaWxlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBz
YW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVy
IHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJSRVNPTFZFRCIgYnV0IGdvdCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBD
cm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgorRkFJTCBJbXBvcnRpbmcgYSBz
YW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhh
dCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVy
cmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkltcG9ydGlu
ZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiIKK0ZBSUwgSW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdp
biBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNh
bWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBs
b2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuIgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ho
ci9vcGVuLXVybC1yZWRpcmVjdGVkLXdvcmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtcmVkaXJl
Y3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dAppbmRleCAxZTJkMzk5MmY2ZDVkZjMyMjA3
YTZiMGY2MTlhNmQ3MTE4MTI0MDBkLi43YTdhOTE3ZWFhOThlOTJlZTAzZWMyOGExMWU3ODA4NGQy
MzRiODg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3hoci9vcGVuLXVybC1yZWRpcmVjdGVkLXdvcmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL29w
ZW4tdXJsLXJlZGlyZWN0ZWQtd29ya2VyLW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2
IEBACiBCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cDovL3d3dzIubG9jYWxob3N0
Ojg4MDAveGhyL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHk/ZmlsdGVyX25hbWU9b3JpZ2lu
JmNvcnMKIAotRkFJTCBSZWZlcmVyIGhlYWRlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUmVm
ZXJlcjogaHR0cDovL2xvY2FsaG9zdDo4ODAwL3hoci9yZXNvdXJjZXMvd29ya2VyeGhyLW9yaWdp
bi1yZWZlcnJlci5qc1xuIiBidXQgZ290ICJSZWZlcmVyOiBodHRwOi8vbG9jYWxob3N0Ojg4MDAv
eGhyL3Jlc291cmNlcy9yZWRpcmVjdC5weT9sb2NhdGlvbj13b3JrZXJ4aHItb3JpZ2luLXJlZmVy
cmVyLmpzXG4iCitQQVNTIFJlZmVyZXIgaGVhZGVyCiBGQUlMIE9yaWdpbiBoZWFkZXIgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgIk9yaWdpbjogaHR0cDovL2xvY2FsaG9zdDo4ODAwXG4iIGJ1dCBn
b3QgIiIKIFBBU1MgUmVxdWVzdCBVUkwgdGVzdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZhaWx1cmUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW93b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVk
LnR4dAppbmRleCAwOGFmMTE0MzYwNTUxYmY1YTgwNzlhZjBhMzgxNWM0ZTA4ZWJkMTQzLi5kZWYz
M2FkODY5MWI2OTQzNmUwZTE4MWM1YmQwMDQ4MzU0ODM1MWJiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZhaWx1cmUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvd29ya2xldC1hZGRNb2R1bGUtZmFpbHVy
ZS1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAK
IAogUEFTUyBjb250ZXh0LmF1ZGlvV29ya2xldC5hZGRNb2R1bGUoaW52YWxpZFVSTCk7IHJlamVj
dGVkIHByb21pc2UgIHdpdGggU3ludGF4RXJyb3I6IE1vZHVsZSBVUkwgaXMgaW52YWxpZC4KLVBB
U1MgY29udGV4dC5hdWRpb1dvcmtsZXQuYWRkTW9kdWxlKCdkb2Vzbm90RXhpc3QuanMnKTsgcmVq
ZWN0ZWQgcHJvbWlzZSAgd2l0aCBBYm9ydEVycm9yOiBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBl
cnJvcjogVGhlIHJlcXVlc3RlZCBVUkwgd2FzIG5vdCBmb3VuZCBvbiB0aGlzIHNlcnZlci4uCitQ
QVNTIGNvbnRleHQuYXVkaW9Xb3JrbGV0LmFkZE1vZHVsZSgnZG9lc25vdEV4aXN0LmpzJyk7IHJl
amVjdGVkIHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlw
dCBmYWlsZWQuLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby93b3JrbGV0LWNyYXNoLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dvcmtsZXQtY3Jhc2gtZXhwZWN0ZWQudHh0
CmluZGV4IDY1NGRkZjdmMTdlZmFiNThlNDJmYWJlMzg1MjU3OTY0YWUyYzVkNDEuLjFhNDNlM2Y5
N2NiMmYwNmI5ZjdjZDVmMmIxODIzMzgxMDUxM2VlZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3dvcmtsZXQtY3Jhc2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL3dvcmtsZXQtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0xICsxLDIgQEAKK0NPTlNPTEUg
TUVTU0FHRTogVHlwZUVycm9yOiAndGV4dC9odG1sJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0
IE1JTUUgdHlwZS4KIFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420996</attachid>
            <date>2021-02-19 11:26:31 -0800</date>
            <delta_ts>2021-02-19 19:37:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164860-20210219112630.patch</filename>
            <type>text/plain</type>
            <size>251174</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MTg2ZDQyOTVlYjRlMGI2N2EwNDM0OWIwZTZlNThlMWVhYzY2MDQ3Li4xYTM4NTM2Y2MxZWQ1MTBm
NTExZmE5OGZiYjdkZmM1ODIwYzQ4ZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MyBAQAorMjAyMS0wMi0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4gV29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGVycm9yIGluZm9ybWF0aW9uIHRvIGV4dHJh
Y3QgdGhpcyBpbiBXZWJDb3JlJ3MgbW9kdWxlIGxvYWRlci4KKyAgICAgICAgQ3VycmVudGx5LCB3
ZSBhcmUgdXNpbmcgUHJvbWlzZSBwaXBlbGluZSwgYW5kIHRoaXMgbWFrZXMgaXQgYSBiaXQgZGlm
ZmljdWx0IHRvIGV4dHJhY3QgZXJyb3IgaW5mb3JtYXRpb24uCisgICAgICAgIFRoaXMgZXJyb3Ig
aW5mb3JtYXRpb24gYXR0YWNoZWQgaW4gdGhpcyBwYXRjaCBhbGxvd3MgdXMgdG8gZXh0cmFjdCBT
eW50YXhFcnJvciBpbiBXZWJDb3JlLCBhbmQgdGhyb3dpbmcKKyAgICAgICAgSlMgU3ludGF4RXJy
b3IgaW5zdGVhZCBvZiBBYm9ydEVycm9yLgorCisgICAgICAgIFdlIGFyZSBwbGFubmluZyB0byB1
cGRhdGUgb3VyIG1vZHVsZSBwaXBpZWxpbmUgbm90IHVzaW5nIFByb21pc2VzIGluIHRoZSBmdXR1
cmUuIFRoZSBjdXJyZW50IGRlc2lnbiBkZXJpdmVkCisgICAgICAgIGZyb20gdGhlIG9yaWdpbmFs
IG1vZHVsZSBsb2FkZXIgcGlwZWxpbmUgd2hlcmUgdXNpbmcgUHJvbWlzZXMgaXMgY3JpdGljYWwu
IEJ1dCBub3csIHRoYXQgcHJvcG9zYWwgd2FzIGFiYW5kb25lZCwKKyAgICAgICAgc28gd2UgY2Fu
IGp1c3Qgc2ltcGxpZnkgdGhlIG1vZHVsZSBsb2FkZXIuCisKKyAgICAgICAgKiBydW50aW1lL0Fn
Z3JlZ2F0ZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6QWdncmVnYXRlRXJyb3I6OkFnZ3JlZ2F0
ZUVycm9yKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y3Jl
YXRlRXJyb3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVFdmFsRXJyb3IpOgorICAgICAgICAoSlND
OjpjcmVhdGVSYW5nZUVycm9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlUmVmZXJlbmNlRXJyb3Ip
OgorICAgICAgICAoSlNDOjpjcmVhdGVTeW50YXhFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0
ZVR5cGVFcnJvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZVVSSUVycm9yKToKKyAgICAgICAgKEpT
Qzo6Y3JlYXRlR2V0dGVyVHlwZUVycm9yKToKKyAgICAgICAgKEpTQzo6dGhyb3dTeW50YXhFcnJv
cik6CisgICAgICAgICogcnVudGltZS9FcnJvci5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgICogcnVudGltZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJy
b3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6
OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VT
dHJpbmcpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWROYW1lU3RyaW5n
KToKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6c2FuaXRpemVkVG9TdHJpbmcpOgorICAg
ICAgICAqIHJ1bnRpbWUvRXJyb3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3Rh
bmNlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjplcnJvclR5cGUgY29u
c3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUv
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29u
c3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0SW1wbCk6CisgICAgICAgIChKU0M6Ok5hdGl2
ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y2FsbEltcGwpOgorICAgICAgICAqIHJ1bnRp
bWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0
aW9uSW50ZXJuYWw6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9q
cy9KU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJBc3Nl
bWJseUNvbXBpbGVFcnJvcjo6SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6CisgICAgICAgICog
d2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJB
c3NlbWJseUxpbmtFcnJvcjo6SlNXZWJBc3NlbWJseUxpbmtFcnJvcik6CisgICAgICAgICogd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvcjo6SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcik6CisgICAgICAg
ICogd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlSdW50aW1l
RXJyb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6CisKIDIwMjEtMDItMTkgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIEltcGxlbWVudCBhIEdDIHZlcmlmaWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQwNDRiN2Y0ZjU5
YjIzZmE2OWRlNzg2Y2MzNTYyYjY3NWViYmI1YjEuLmNlYjY2OGJiZTQwMWU2MDBmNzJhYmUxODIw
ZTJhMDljMWEzMDRiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNjIgQEAKKzIwMjEtMDItMTkg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBKUyBNb2R1bGVz
IGluIFdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NDg2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBKUyBtb2R1bGVzIGluIFdvcmtlcnMgYW5kIFdvcmts
ZXRzLiBXZSBhcmUgbm90IHN1cHBvcnRpbmcgbW9kdWxlcyBpbiBTZXJ2aWNlV29ya2VycycgaW5p
dGlhbGl6YXRpb24geWV0LgorICAgICAgICBCdXQgc2VydmljZS13b3JrZXIgY2FuIGltcG9ydCBt
b2R1bGVzIHZpYSBKUyBgaW1wb3J0KClgLgorCisgICAgICAgIFRoZSB3b3JrZXIgY2FuIGJlIGV4
ZWN1dGVkIGFzIGEgbW9kdWxlIGlmIHdlIHBhc3MsIGB0eXBlOiAibW9kdWxlImAgdG8gd29ya2Vy
IG9wdGlvbnMuIFdvcmtsZXQgaXMgZXhlY3V0ZWQgYXMgbW9kdWxlcyBieSBkZWZhdWx0LgorCisg
ICAgICAgIDEuIEluIFdvcmtlciwgd2UgZmlyc3QgZmV0Y2ggdGhlIGluaXRpYWwgY29kZS4gQW5k
IHRoZW4sIGFuYWx5emUgdGhlIGRlcGVuZGVuY2llcyBhbmQgbG9hZCBzdWJzZXF1ZW50IG1vZHVs
ZXMuCisgICAgICAgICAgIFdlIGl0ZXJhdGUgcnVuLWxvb3AgdG8gbG9hZCBhbGwgdGhlIGRlcGVu
ZGVudCBtb2R1bGVzIGluIHRoZSBtb2R1bGUgbG9hZGVyLiBBdCB0aGF0IHRpbWUsIHdlIGFubm90
YXRlIHJ1bi1sb29wIHRhc2tzIHdpdGgKKyAgICAgICAgICAgc3BlY2lhbCB0YXNrTW9kZSB0byBp
dGVyYXRlIHRhc2tzIHdpdGggdGhpcyB0YXNrTW9kZS4gVGhpcyBwcmV2ZW50cyB1cyBmcm9tIGRp
c2NhcmRpbmcgZGlmZmVyZW50IHRhc2tzIGluIHRoaXMgcnVuLWxvb3AgZHJpdmluZworICAgICAg
ICAgICBwaGFzZS4gKGUuZy4gcG9zdE1lc3NhZ2UgY2FuIGJlIGNhbGxlZCBmcm9tIHRoZSBtYWlu
IHRocmVhZCB3aGlsZSBsb2FkaW5nIG1vZHVsZSBncmFwaCwgaW4gdGhhdCBjYXNlLCB3ZSBzaG91
bGQgbm90IGRpc2NhcmQgdGhpcworICAgICAgICAgICB0YXNrLikKKworICAgICAgICAyLiBJbiBX
b3JrbGV0LCB3ZSBqdXN0IHJlcXVlc3QgbW9kdWxlIGxvYWRpbmcgdG8gU2NyaXB0TW9kdWxlTG9h
ZGVyLCBhbmQgcnVuIGl0IGFmdGVyIGxvYWRpbmcgbW9kdWxlIGdyYXBoLiBUaGlzIGlzIE9LIHNp
bmNlIHdvcmtsZXQKKyAgICAgICAgICAgdGhyZWFkIGlzIGFscmVhZHkgcnVubmluZy4gU28gd2Ug
Y2FuIGp1c3QgcmVxdWVzdCBtb2R1bGVzIGFuZCB3b3JrbGV0IHRocmVhZCBhdXRvbWF0aWNhbGx5
IGRyaXZlcyBtb2R1bGUgbG9hZGluZyB2aWEgcnVuLWxvb3AuCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpjdXJyZW50
RnJhbWUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGU6OnNhbXBsZVJhdGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmN1cnJlbnRUaW1lIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Q2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZE1vZHVsZVNjcmlwdExv
YWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6
Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlRE9NRXhjZXB0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0TW9kdWxlTG9hZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRXZhbHVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlcklt
cG9ydE1vZHVsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6bW9kdWxlTG9hZGVy
UmVzb2x2ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Om1v
ZHVsZUxvYWRlckZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93
QmFzZTo6bW9kdWxlTG9hZGVyRXZhbHVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRN
ZXRhUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2Uu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHA6
CisgICAgICAgICogYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVGZXRjaFBhcmFtZXRlcnMuaC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1vZHVsZVNjcmlwdExvYWRlcjo6Y2xlYXJDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TW9kdWxlU2NyaXB0TG9hZGVyOjpzY3JpcHRGZXRjaGVyKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1vZHVsZVNjcmlwdExvYWRlcjo6cGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpNb2R1
bGVTY3JpcHRMb2FkZXI6Ok1vZHVsZVNjcmlwdExvYWRlcik6CisgICAgICAgICogYmluZGluZ3Mv
anMvTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaC4KKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6cmVzb2x2ZU1vZHVsZVNwZWNpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1
bGVMb2FkZXI6OnJlc29sdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVy
OjpmZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om1vZHVsZVVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OnJlc3BvbnNlVVJMRnJv
bVJlcXVlc3RVUkwpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0TW9kdWxlTG9hZGVyOjpldmFs
dWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1vZHVs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRNb2R1bGVMb2FkZXI6Om5vdGlmeUZpbmlzaGVk
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRTb3VyY2VDb2RlOjpTY3JpcHRTb3VyY2VDb2RlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9X
b3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlck1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1vZHVsZVNjcmlwdExvYWRlcjo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6fldvcmtlck1vZHVsZVNjcmlwdExv
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpyZWZlcnJlclBv
bGljeSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlm
eUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6
dGFza01vZGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRl
ci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vTW9kdWxlRmV0Y2hQYXJhbWV0ZXJz
LmguCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RmV0Y2hlci5oOiBBZGRlZC4K
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9FeGNlcHRpb25Db2Rl
Lmg6CisgICAgICAgICogZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxvYWRhYmxlTW9kdWxlU2NyaXB0OjpMb2FkYWJsZU1vZHVsZVNjcmlwdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMb2FkYWJsZU1vZHVsZVNjcmlwdDo6bG9hZCk6IERlbGV0ZWQuCisgICAg
ICAgICogZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0Lmg6CisgICAgICAgICogZG9tL01vZHVsZUZl
dGNoUGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hQYXJhbWV0ZXJz
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzOjppc1Rv
cExldmVsTW9kdWxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZHVsZUZldGNoUGFyYW1l
dGVyczo6TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpyZXF1ZXN0TW9kdWxlU2Ny
aXB0KToKKyAgICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUpOgorICAgICAgICAqIGxvYWRlci9UaHJl
YWRhYmxlTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyOjpjcmVh
dGUpOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6Oldv
cmtlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5o
OgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyLmlkbDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlOjpX
b3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6
aW1wb3J0U2NyaXB0cyk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmNyZWRlbnRpYWxzIGNvbnN0KToK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaDoKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJPcldv
cmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlOjptb2R1bGVMb2FkZXIpOgorICAgICAgICAqIHdvcmtlcnMv
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpq
c1ZhbHVlVG9Nb2R1bGVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bG9hZE1vZHVsZVN5bmNocm9ub3VzbHkpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjo6bGlua0FuZEV2
YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck9yV29ya2xldFNjcmlwdENv
bnRyb2xsZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJT
Y3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjps
b2FkQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVy
OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9h
ZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OnJlc3BvbnNlU291
cmNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6aXNSZWRp
cmVjdGVkIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJQYXJhbWV0ZXJzOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpldmFsdWF0ZVNjcmlwdElmTmVjZXNzYXJ5KToK
KyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyVHlwZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6OmZldGNoU2NyaXB0V2l0aENvbnRleHQp
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0
aW9ucy5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2Vydmlj
ZVdvcmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
cldvcmtlci5oOgorICAgICAgICAqIHdvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmg6
CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6cGFpbnREZWZpbml0
aW9uTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhaW50V29ya2xldEdsb2JhbFNj
b3BlOjpwYWludERlZmluaXRpb25Mb2NrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBh
aW50V29ya2xldEdsb2JhbFNjb3BlOjp+UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUpOiBEZWxldGVk
LgorICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrbGV0R2xvYmFsU2NvcGU6OmZldGNoQW5kSW52b2tlU2NyaXB0KToKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29wZTo6cHJvY2Vzc05leHRTY3JpcHRGZXRjaEpv
YklmTmVlZGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtsZXRHbG9iYWxTY29w
ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldvcmts
ZXRHbG9iYWxTY29wZTo6bm90aWZ5RmluaXNoZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2xldEdsb2JhbFNjb3BlOjpkaWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUuaDoKKwogMjAyMS0wMi0x
OSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgW1BheW1lbnQg
UmVxdWVzdF0gYWRkIGFuIGBvYmplY3QgZGF0YWAgdG8gYFBheW1lbnREZXRhaWxzQmFzZWAgc28g
dGhhdCBkYXRhIHNwZWNpZmljIHRvIEFwcGxlIFBheSBjYW4gYmUgcHJvdmlkZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yLmNwcAppbmRleCA3NTlh
NWIyNGEwZWQwODY4MGNjYWE2MzQwZDJlOTVkNDUwYjgwZmQ2Li4yOTZjODVjYzkwZTA1YjU0NTQ3
ZjY2MmE3ZTJmOGExZTEzMGE0NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BZ2dyZWdhdGVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQWdncmVnYXRlRXJyb3IuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogY29uc3QgQ2xhc3NJbmZvIEFnZ3JlZ2F0ZUVycm9yOjpzX2luZm8gPSB7ICJBZ2dyZWdhdGVF
cnJvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoQWdncmVnYXRlRXJyb3IpIH07CiAKIEFnZ3JlZ2F0ZUVycm9yOjpBZ2dyZWdhdGVFcnJvcihW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQor
ICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBFcnJvclR5cGU6OkFnZ3JlZ2F0ZUVycm9yKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKaW5kZXggZjQ3M2I4MTgx
ZWMyZjAyYTBjYzc4YTI2YzBjMjBkYzk2MzFmZGM3NC4uZmNhY2YxZTMyMmViMjcyNzg3NGZmMjUy
NjI0MWVkN2JlOThjZTUzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNw
cApAQCAtMzUsMzcgKzM1LDM3IEBAIG5hbWVzcGFjZSBKU0MgewogSlNPYmplY3QqIGNyZWF0ZUVy
cm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
RXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFt
ZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVy
ZSgpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIHRydWUpOworICAgIHJldHVybiBF
cnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGds
b2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3Ro
aW5nLCBFcnJvclR5cGU6OkVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZUV2YWxF
cnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCgh
bWVzc2FnZS5pc0VtcHR5KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1
cmUoRXJyb3JUeXBlOjpFdmFsRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcs
IHRydWUpOworICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBl
OjpFdmFsRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6
RXZhbEVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVJhbmdlRXJyb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3Rh
bmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2UuaXNF
bXB0eSgpKTsKLSAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlw
ZTo6UmFuZ2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7Cisg
ICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJhbmdlRXJy
b3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6UmFuZ2VFcnJv
ciwgdHJ1ZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVSZWZlcmVuY2VFcnJvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6
OlNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyKQogewogICAgIEFTU0VSVCghbWVzc2FnZS5pc0VtcHR5
KCkpOwotICAgIHJldHVybiBFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpS
ZWZlcmVuY2VFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCBUeXBlTm90aGluZywgdHJ1ZSk7Cisg
ICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlJlZmVyZW5j
ZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCBFcnJvclR5cGU6OlJlZmVy
ZW5jZUVycm9yLCB0cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0
YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlz
RW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3Qs
IGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShFcnJvclR5
cGU6OlN5bnRheEVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIFR5cGVOb3RoaW5nLCB0cnVlKTsK
KyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6U3ludGF4
RXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6U3ludGF4
RXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlVHlwZUVycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6
U291cmNlQXBwZW5kZXIgYXBwZW5kZXIsIFJ1bnRpbWVUeXBlIHR5cGUpCiB7CiAgICAgQVNTRVJU
KCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShn
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVj
dHVyZShFcnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UsIGFwcGVuZGVyLCB0eXBlLCB0cnVl
KTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlw
ZUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIEVycm9yVHlwZTo6VHlwZUVycm9yLCB0
cnVlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVycm9ySW5zdGFuY2U6OlNvdXJjZUFwcGVuZGVyIGFw
cGVuZGVyKQpAQCAtNzYsNyArNzYsNyBAQCBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JJbnN0YQogSlNPYmpl
Y3QqIGNyZWF0ZVVSSUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCiB7
CiAgICAgQVNTRVJUKCFtZXNzYWdlLmlzRW1wdHkoKSk7Ci0gICAgcmV0dXJuIEVycm9ySW5zdGFu
Y2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0
LT5lcnJvclN0cnVjdHVyZShFcnJvclR5cGU6OlVSSUVycm9yKSwgbWVzc2FnZSwgYXBwZW5kZXIs
IFR5cGVOb3RoaW5nLCB0cnVlKTsKKyAgICByZXR1cm4gRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0
dXJlKEVycm9yVHlwZTo6VVJJRXJyb3IpLCBtZXNzYWdlLCBhcHBlbmRlciwgVHlwZU5vdGhpbmcs
IEVycm9yVHlwZTo6VVJJRXJyb3IsIHRydWUpOwogfQogCiBKU09iamVjdCogY3JlYXRlRXJyb3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXJyb3JUeXBlIGVycm9yVHlwZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQpAQCAtMTEzLDcgKzExMyw3IEBAIEpTT2JqZWN0KiBjcmVhdGVFcnJv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFcnJvclR5cGVXaXRoRXh0ZW5zaW9uIGVy
cm9yCiBKU09iamVjdCogY3JlYXRlR2V0dGVyVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBBU1NFUlQoIW1lc3NhZ2Uu
aXNFbXB0eSgpKTsKLSAgICBhdXRvKiBlcnJvciA9IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVy
ZShFcnJvclR5cGU6OlR5cGVFcnJvciksIG1lc3NhZ2UpOworICAgIGF1dG8qIGVycm9yID0gRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9i
YWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgbWVzc2FnZSwg
bnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6VHlwZUVycm9yKTsKICAgICBlcnJvci0+
c2V0TmF0aXZlR2V0dGVyVHlwZUVycm9yKCk7CiAgICAgcmV0dXJuIGVycm9yOwogfQpAQCAtMjc0
LDcgKzI3NCw3IEBAIEV4Y2VwdGlvbiogdGhyb3dUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0CiAKIEV4Y2VwdGlvbiogdGhyb3dT
eW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29w
ZSkKIHsKLSAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3Jl
YXRlU3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCAiU3ludGF4IGVycm9yIl9zKSk7CisgICAgcmV0
dXJuIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVN5bnRheEVycm9y
KGdsb2JhbE9iamVjdCkpOwogfQogCiBFeGNlcHRpb24qIHRocm93U3ludGF4RXJyb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKQEAgLTMxNyw2ICszMTcsMTEgQEAgSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAg
ICByZXR1cm4gY3JlYXRlU3ludGF4RXJyb3IoZ2xvYmFsT2JqZWN0LCBtZXNzYWdlLCBudWxscHRy
KTsKIH0KIAorSlNPYmplY3QqIGNyZWF0ZVN5bnRheEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCit7CisgICAgcmV0dXJuIGNyZWF0ZVN5bnRheEVycm9yKGdsb2JhbE9iamVjdCwg
IlN5bnRheCBlcnJvciJfcywgbnVsbHB0cik7Cit9CisKIEpTT2JqZWN0KiBjcmVhdGVUeXBlRXJy
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gY3JlYXRlVHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgIlR5cGUgZXJyb3IiX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yLmgKaW5kZXggNmRhYTE1NDIxNTY2NjEwZTRhY2U2ZGUzMzVmMzRkM2JmN2M3
NDQ0ZC4uZGM4MjUyODJjMzU2NDg3MTMyNTQ1NDRiYzhkODE4ODg0MDBlNDM4YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5oCkBAIC01NSw2ICs1NSw3IEBAIEpTX0VYUE9SVF9Q
UklWQVRFIEpTT2JqZWN0KiBjcmVhdGVFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBT
dHJpbmcmKTsKIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVSYW5nZUVycm9yKEpT
R2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVj
dCogY3JlYXRlUmVmZXJlbmNlRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBTdHJpbmcmKTsK
IEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0KiBjcmVhdGVTeW50YXhFcnJvcihKU0dsb2JhbE9i
amVjdCosIGNvbnN0IFN0cmluZyYpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNPYmplY3QqIGNyZWF0
ZVN5bnRheEVycm9yKEpTR2xvYmFsT2JqZWN0Kik7CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVj
dCogY3JlYXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0Kik7CiBKU19FWFBPUlRfUFJJVkFURSBK
U09iamVjdCogY3JlYXRlVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJik7
CiBKU19FWFBPUlRfUFJJVkFURSBKU09iamVjdCogY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoSlNHbG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMGYyZjVhMzE4NDAyZmJiN2M3ZDg4MDJiNmQ3
ODQyZWZlNDA2Yzg0Ni4uOWJlOTMwY2YxYzNjOWE0MGU2MDg1OTgzNTU4YTFhNTliYzc4YjYyZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTYwLDE0ICs2MCwxNCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0RXJyb3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAg
ICA6IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGdsb2JhbE9iamVj
dCwgbmV3VGFyZ2V0LCBnZXRGdW5jdGlvblJlYWxtKHZtLCBuZXdUYXJnZXQpLT5lcnJvclN0cnVj
dHVyZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVO
b3RoaW5nLCBmYWxzZSkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVy
ZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNl
KSkpOwogfQogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEVycm9yQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1
Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpOwot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9i
amVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxz
ZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5n
LCBFcnJvclR5cGU6OkVycm9yLCBmYWxzZSkpOwogfQogCiBib29sIEVycm9yQ29uc3RydWN0b3I6
OnB1dChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKaW5k
ZXggMmU0ZWMzOWYxMjA1OGIyNTA4NzIyZTBiODI1MjI0N2JlYjAzMTllNi4uMGY4NmUyMmI5MmRk
ZDZkMTM5ODU4Yjg2ZTU2Y2VhZGNhZWNlMGQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTM0LDE4ICszNCwyMyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEVycm9ySW5zdGFuY2U6OnNfaW5mbyA9IHsgIkVy
cm9yIiwgJkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShFcnJvckluc3RhbmNlKSB9OwogCi1FcnJvckluc3RhbmNlOjpFcnJvcklu
c3RhbmNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitFcnJvckluc3RhbmNlOjpFcnJv
ckluc3RhbmNlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVycm9yVHlwZSBlcnJvclR5
cGUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgLCBtX2Vycm9yVHlwZShlcnJvclR5
cGUpCisgICAgLCBtX3N0YWNrT3ZlcmZsb3dFcnJvcihmYWxzZSkKKyAgICAsIG1fb3V0T2ZNZW1v
cnlFcnJvcihmYWxzZSkKKyAgICAsIG1fZXJyb3JJbmZvTWF0ZXJpYWxpemVkKGZhbHNlKQorICAg
ICwgbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3IoZmFsc2UpCiB7CiB9CiAKLUVycm9ySW5zdGFuY2Uq
IEVycm9ySW5zdGFuY2U6OmNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNWYWx1ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciBhcHBlbmRl
ciwgUnVudGltZVR5cGUgdHlwZSwgYm9vbCB1c2VDdXJyZW50RnJhbWUpCitFcnJvckluc3RhbmNl
KiBFcnJvckluc3RhbmNlOjpjcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSwgU291cmNlQXBwZW5kZXIgYXBwZW5k
ZXIsIFJ1bnRpbWVUeXBlIHR5cGUsIEVycm9yVHlwZSBlcnJvclR5cGUsIGJvb2wgdXNlQ3VycmVu
dEZyYW1lKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgU3RyaW5nIG1lc3NhZ2VTdHJpbmcg
PSBtZXNzYWdlLmlzVW5kZWZpbmVkKCkgPyBTdHJpbmcoKSA6IG1lc3NhZ2UudG9XVEZTdHJpbmco
Z2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsK
LSAgICByZXR1cm4gY3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZVN0
cmluZywgYXBwZW5kZXIsIHR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CisgICAgcmV0dXJuIGNyZWF0
ZShnbG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIG1lc3NhZ2VTdHJpbmcsIGFwcGVuZGVyLCB0
eXBlLCBlcnJvclR5cGUsIHVzZUN1cnJlbnRGcmFtZSk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgYXBw
ZW5kU291cmNlVG9FcnJvck1lc3NhZ2UoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEVycm9ySW5zdGFu
Y2UqIGV4Y2VwdGlvbiwgQnl0ZWNvZGVJbmRleCBieXRlY29kZUluZGV4LCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCkBAIC0xMzEsNyArMTM2LDI1IEBAIHZvaWQgRXJyb3JJbnN0YW5jZTo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTCiAv
LyBCYXNlZCBvbiBFcnJvclByb3RvdHlwZSdzIGVycm9yUHJvdG9GdW5jVG9TdHJpbmcoKSwgYnV0
IGlzIG1vZGlmaWVkIHRvCiAvLyBoYXZlIG5vIG9ic2VydmFibGUgc2lkZSBlZmZlY3RzIHRvIHRo
ZSB1c2VyIChpLmUuIGRvZXMgbm90IGNhbGwgcHJveGllcywKIC8vIGFuZCBnZXR0ZXJzKS4KLVN0
cmluZyBFcnJvckluc3RhbmNlOjpzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQorU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZE1lc3NhZ2VTdHJpbmco
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAg
IEludGVncml0eTo6YXVkaXRTdHJ1Y3R1cmVJRCh2bSwgc3RydWN0dXJlSUQoKSk7CisKKyAgICBK
U1ZhbHVlIG1lc3NhZ2VWYWx1ZTsKKyAgICBhdXRvIG1lc3NhZ2VQcm9wZXJ0TmFtZSA9IHZtLnBy
b3BlcnR5TmFtZXMtPm1lc3NhZ2U7CisgICAgUHJvcGVydHlTbG90IG1lc3NhZ2VTbG90KHRoaXMs
IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnksICZ2bSk7CisgICAg
aWYgKEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZ2xvYmFsT2JqZWN0LCBtZXNz
YWdlUHJvcGVydE5hbWUsIG1lc3NhZ2VTbG90KSAmJiBtZXNzYWdlU2xvdC5pc1ZhbHVlKCkpCisg
ICAgICAgIG1lc3NhZ2VWYWx1ZSA9IG1lc3NhZ2VTbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwg
bWVzc2FnZVByb3BlcnROYW1lKTsKKyAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOworCisg
ICAgaWYgKCFtZXNzYWdlVmFsdWUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIG1lc3NhZ2VWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmpl
Y3QpKTsKK30KKworU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZE5hbWVTdHJpbmcoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU3
LDI4ICsxODAsMjIgQEAgU3RyaW5nIEVycm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgfQogICAgIHNjb3BlLmFzc2VydE5vRXhj
ZXB0aW9uKCk7CiAKLSAgICBTdHJpbmcgbmFtZVN0cmluZzsKICAgICBpZiAoIW5hbWVWYWx1ZSkK
LSAgICAgICAgbmFtZVN0cmluZyA9ICJFcnJvciJfczsKLSAgICBlbHNlIHsKLSAgICAgICAgbmFt
ZVN0cmluZyA9IG5hbWVWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwotICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7Ci0gICAgfQorICAgICAgICByZXR1
cm4gIkVycm9yIl9zOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbmFtZVZhbHVlLnRv
V1RGU3RyaW5nKGdsb2JhbE9iamVjdCkpOworfQogCi0gICAgSlNWYWx1ZSBtZXNzYWdlVmFsdWU7
Ci0gICAgYXV0byBtZXNzYWdlUHJvcGVydE5hbWUgPSB2bS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdl
OwotICAgIFByb3BlcnR5U2xvdCBtZXNzYWdlU2xvdCh0aGlzLCBQcm9wZXJ0eVNsb3Q6OkludGVy
bmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5LCAmdm0pOwotICAgIGlmIChKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90KHRoaXMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVByb3BlcnROYW1lLCBtZXNz
YWdlU2xvdCkgJiYgbWVzc2FnZVNsb3QuaXNWYWx1ZSgpKQotICAgICAgICBtZXNzYWdlVmFsdWUg
PSBtZXNzYWdlU2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIG1lc3NhZ2VQcm9wZXJ0TmFtZSk7
Ci0gICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKK1N0cmluZyBFcnJvckluc3RhbmNlOjpz
YW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisgICAgSW50ZWdyaXR5OjphdWRpdFN0cnVjdHVyZUlEKHZtLCBzdHJ1Y3R1
cmVJRCgpKTsKIAotICAgIFN0cmluZyBtZXNzYWdlU3RyaW5nOwotICAgIGlmICghbWVzc2FnZVZh
bHVlKQotICAgICAgICBtZXNzYWdlU3RyaW5nID0gU3RyaW5nKCk7Ci0gICAgZWxzZSB7Ci0gICAg
ICAgIG1lc3NhZ2VTdHJpbmcgPSBtZXNzYWdlVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0
KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgU3RyaW5nKCkpOwotICAgIH0K
KyAgICBTdHJpbmcgbmFtZVN0cmluZyA9IHNhbml0aXplZE5hbWVTdHJpbmcoZ2xvYmFsT2JqZWN0
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7CisKKyAgICBTdHJp
bmcgbWVzc2FnZVN0cmluZyA9IHNhbml0aXplZE1lc3NhZ2VTdHJpbmcoZ2xvYmFsT2JqZWN0KTsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7CiAKICAgICBpZiAoIW5h
bWVTdHJpbmcubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBtZXNzYWdlU3RyaW5nOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCmluZGV4IGRhNjZlYjc2
ZTdhZGU5MGZkNDFiYjE2MjcwNzI1YTdkMTQ3MGFkMzguLjk4NzEzNTcyMWIzMDU2NjIzMGQyNjFj
ODMzYWQ4ZGVjYTU0NjE0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvckluc3RhbmNlLmgKQEAgLTIwLDYgKzIwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJFcnJvclR5cGUuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlJ1bnRp
bWVUeXBlLmgiCiAjaW5jbHVkZSAiU3RhY2tGcmFtZS5oIgpAQCAtNTMsMTQgKzU0LDE0IEBAIGNs
YXNzIEVycm9ySW5zdGFuY2UgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKEVycm9ySW5zdGFuY2VUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIFNvdXJjZUFwcGVuZGVyIGFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9
IFR5cGVOb3RoaW5nLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9IHRydWUpCisgICAgc3RhdGljIEVy
cm9ySW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFNvdXJjZUFwcGVu
ZGVyIGFwcGVuZGVyID0gbnVsbHB0ciwgUnVudGltZVR5cGUgdHlwZSA9IFR5cGVOb3RoaW5nLCBF
cnJvclR5cGUgZXJyb3JUeXBlID0gRXJyb3JUeXBlOjpFcnJvciwgYm9vbCB1c2VDdXJyZW50RnJh
bWUgPSB0cnVlKQogICAgIHsKLSAgICAgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcg
KE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPih2bS5oZWFwKSkgRXJyb3JJbnN0
YW5jZSh2bSwgc3RydWN0dXJlKTsKKyAgICAgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBu
ZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPih2bS5oZWFwKSkgRXJyb3JJ
bnN0YW5jZSh2bSwgc3RydWN0dXJlLCBlcnJvclR5cGUpOwogICAgICAgICBpbnN0YW5jZS0+Zmlu
aXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCwgbWVzc2FnZSwgYXBwZW5kZXIsIHR5cGUsIHVz
ZUN1cnJlbnRGcmFtZSk7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKICAgICB9CiAKLSAgICBz
dGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
SlNWYWx1ZSBtZXNzYWdlLCBTb3VyY2VBcHBlbmRlciA9IG51bGxwdHIsIFJ1bnRpbWVUeXBlID0g
VHlwZU5vdGhpbmcsIGJvb2wgdXNlQ3VycmVudEZyYW1lID0gdHJ1ZSk7CisgICAgc3RhdGljIEVy
cm9ySW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpTVmFsdWUg
bWVzc2FnZSwgU291cmNlQXBwZW5kZXIgPSBudWxscHRyLCBSdW50aW1lVHlwZSA9IFR5cGVOb3Ro
aW5nLCBFcnJvclR5cGUgPSBFcnJvclR5cGU6OkVycm9yLCBib29sIHVzZUN1cnJlbnRGcmFtZSA9
IHRydWUpOwogCiAgICAgYm9vbCBoYXNTb3VyY2VBcHBlbmRlcigpIGNvbnN0IHsgcmV0dXJuICEh
bV9zb3VyY2VBcHBlbmRlcjsgfQogICAgIFNvdXJjZUFwcGVuZGVyIHNvdXJjZUFwcGVuZGVyKCkg
Y29uc3QgeyByZXR1cm4gbV9zb3VyY2VBcHBlbmRlcjsgfQpAQCAtNzAsNiArNzEsNyBAQCBjbGFz
cyBFcnJvckluc3RhbmNlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIFJ1bnRpbWVU
eXBlIHJ1bnRpbWVUeXBlRm9yQ2F1c2UoKSBjb25zdCB7IHJldHVybiBtX3J1bnRpbWVUeXBlRm9y
Q2F1c2U7IH0KICAgICB2b2lkIGNsZWFyUnVudGltZVR5cGVGb3JDYXVzZSgpIHsgbV9ydW50aW1l
VHlwZUZvckNhdXNlID0gVHlwZU5vdGhpbmc7IH0KIAorICAgIEVycm9yVHlwZSBlcnJvclR5cGUo
KSBjb25zdCB7IHJldHVybiBtX2Vycm9yVHlwZTsgfQogICAgIHZvaWQgc2V0U3RhY2tPdmVyZmxv
d0Vycm9yKCkgeyBtX3N0YWNrT3ZlcmZsb3dFcnJvciA9IHRydWU7IH0KICAgICBib29sIGlzU3Rh
Y2tPdmVyZmxvd0Vycm9yKCkgY29uc3QgeyByZXR1cm4gbV9zdGFja092ZXJmbG93RXJyb3I7IH0K
ICAgICB2b2lkIHNldE91dE9mTWVtb3J5RXJyb3IoKSB7IG1fb3V0T2ZNZW1vcnlFcnJvciA9IHRy
dWU7IH0KQEAgLTc5LDYgKzgxLDggQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKICAgICBib29sIGlzTmF0aXZlR2V0dGVyVHlwZUVycm9yKCkgY29uc3Qg
eyByZXR1cm4gbV9uYXRpdmVHZXR0ZXJUeXBlRXJyb3I7IH0KIAogICAgIEpTX0VYUE9SVF9QUklW
QVRFIFN0cmluZyBzYW5pdGl6ZWRUb1N0cmluZyhKU0dsb2JhbE9iamVjdCopOworICAgIEpTX0VY
UE9SVF9QUklWQVRFIFN0cmluZyBzYW5pdGl6ZWRNZXNzYWdlU3RyaW5nKEpTR2xvYmFsT2JqZWN0
Kik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHNhbml0aXplZE5hbWVTdHJpbmcoSlNH
bG9iYWxPYmplY3QqKTsKICAgICAKICAgICBWZWN0b3I8U3RhY2tGcmFtZT4qIHN0YWNrVHJhY2Uo
KSB7IHJldHVybiBtX3N0YWNrVHJhY2UuZ2V0KCk7IH0KIApAQCAtODgsNyArOTIsNyBAQCBjbGFz
cyBFcnJvckluc3RhbmNlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgZmlu
YWxpemVVbmNvbmRpdGlvbmFsbHkoVk0mKTsKIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEVy
cm9ySW5zdGFuY2UoVk0mLCBTdHJ1Y3R1cmUqKTsKKyAgICBleHBsaWNpdCBFcnJvckluc3RhbmNl
KFZNJiwgU3RydWN0dXJlKiwgRXJyb3JUeXBlKTsKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
Vk0mLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYsIFNvdXJjZUFwcGVuZGVyID0gbnVs
bHB0ciwgUnVudGltZVR5cGUgPSBUeXBlTm90aGluZywgYm9vbCB1c2VDdXJyZW50RnJhbWUgPSB0
cnVlKTsKIApAQCAtMTA4LDEwICsxMTIsMTEgQEAgY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1Ymxp
YyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBTdHJpbmcgbV9zb3VyY2VVUkw7CiAgICAgU3RyaW5n
IG1fc3RhY2tTdHJpbmc7CiAgICAgUnVudGltZVR5cGUgbV9ydW50aW1lVHlwZUZvckNhdXNlIHsg
VHlwZU5vdGhpbmcgfTsKLSAgICBib29sIG1fc3RhY2tPdmVyZmxvd0Vycm9yIHsgZmFsc2UgfTsK
LSAgICBib29sIG1fb3V0T2ZNZW1vcnlFcnJvciB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2Vycm9y
SW5mb01hdGVyaWFsaXplZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX25hdGl2ZUdldHRlclR5cGVF
cnJvciB7IGZhbHNlIH07CisgICAgRXJyb3JUeXBlIG1fZXJyb3JUeXBlIHsgRXJyb3JUeXBlOjpF
cnJvciB9OworICAgIGJvb2wgbV9zdGFja092ZXJmbG93RXJyb3IgOiAxOworICAgIGJvb2wgbV9v
dXRPZk1lbW9yeUVycm9yIDogMTsKKyAgICBib29sIG1fZXJyb3JJbmZvTWF0ZXJpYWxpemVkIDog
MTsKKyAgICBib29sIG1fbmF0aXZlR2V0dGVyVHlwZUVycm9yIDogMTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDU5MTg0OTBlM2UwZWEyMDkyNjlkOGEy
MzFjMDM1NDFlNTRkODYwZDEuLjA2OWNmNzEzYTU5MmEwY2JiMTFmZDNiOWM3YTEzZDk2MTgzZmIw
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKQEAgLTY5NSw3ICs2OTUsNyBAQCBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yQXJndW1lbnRzQ2FsbGVlQW5kQ2Fs
bGVyLCAoSlNHbAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNNYWtlVHlwZUVy
cm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9y
U3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBj
YWxsRnJhbWUtPmFyZ3VtZW50KDApLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGVycm9yU3RydWN0dXJlLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBudWxscHRyLCBUeXBl
Tm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIGZhbHNlKSk7CiB9CiAKIEpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihnbG9iYWxGdW5jUHJvdG9HZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDdj
YzExYjVmNWUxMjk3MjIwMTZiODY3MWYxMzdjNmJiMTcyMTM4NDAuLmI2ZTdlZGVmZDQyZWRjNjM1
ZDkwYjdlMGU4YzdiNGZjMGMyNDNkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC01OCw3ICs1OCw3
IEBAIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlw
ZT46OmNvbnN0cnVjdEltcGwoSlNHbG9iYWxPCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKICAgICBBU1NFUlQoZXJyb3JTdHJ1Y3R1cmUpOwogCi0gICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBm
YWxzZSkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShF
cnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2Fn
ZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGVycm9yVHlwZSwgZmFsc2UpKSk7CiB9CiAKIHRlbXBs
YXRlPEVycm9yVHlwZSBlcnJvclR5cGU+CkBAIC02Niw3ICs2Niw3IEBAIGlubGluZSBFbmNvZGVk
SlNWYWx1ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNhbGxJbXBsKEpTR2xv
YmFsT2JqZWN0CiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgw
KTsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0
cnVjdHVyZShlcnJvclR5cGUpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0
YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxw
dHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJy
b3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2Us
IG51bGxwdHIsIFR5cGVOb3RoaW5nLCBlcnJvclR5cGUsIGZhbHNlKSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjYWxsRXZhbEVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKaW5kZXggMjZmM2I2YThmOWRiNjc4
Y2Q5NGQwNWFlODhiMTFiODllNjFjMGViYy4uMGRkYjJjNmE1MGY0NmJjNjM2OTk1Y2E0NmQ3ZjE4
ZTViMjY4NjNlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVs
bFNldHRlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dWxsU2V0dGVyRnVuY3Rpb24uY3BwCkBAIC05NCw3ICs5NCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjYWxsVGhyb3dFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIC8v
IFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgZnJvbSBJQy4gQW5kIHdlIGRvIG5vdCB3YW50
IHRvIGluY2x1ZGUgdGhpcyBmcmFtZSBpbiBFcnJvcidzIHN0YWNrLgogICAgIGNvbnN0ZXhwciBi
b29sIHVzZUN1cnJlbnRGcmFtZSA9IGZhbHNlOwotICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9i
amVjdCwgc2NvcGUsIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9i
YWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlwZTo6VHlwZUVycm9yKSwgUmVhZG9ubHlQ
cm9wZXJ0eVdyaXRlRXJyb3IsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCB1c2VDdXJyZW50RnJhbWUp
KTsKKyAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBFcnJvckluc3RhbmNl
OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZShF
cnJvclR5cGU6OlR5cGVFcnJvciksIFJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yLCBudWxscHRy
LCBUeXBlTm90aGluZywgRXJyb3JUeXBlOjpUeXBlRXJyb3IsIHVzZUN1cnJlbnRGcmFtZSkpOwog
ICAgIHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKaW5kZXggMzgzNzNhNzYw
ZDU5ZDBlZWRiNDk0ZGI4OGQ4NTI0ZmFiOWE1MTU0ZS4uOWViZDNkNDQ2YTlkYTlhZDE5ZDdiYTQx
OTkwMDYzZmM1YTYzMjhmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5jcHAKQEAgLTQxLDcgKzQxLDcg
QEAgSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvciogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcjo6
Y3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJv
cjo6SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQotICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBF
cnJvclR5cGU6OkVycm9yKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5TGlua0Vycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwCmluZGV4IGVhZGUwMzQxM2U0
Y2UzNjBiYTA4OWY4YzUzZDE4Y2Y4ZDZkNzAyMzUuLjliMjAwNThlY2YzNGFmOTFiNmIxOGQxNWY2
NTE1Nzg1YzIxNzJlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEpTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IqIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OmNyZWF0ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqCiB9CiAKIEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OkpTV2ViQXNz
ZW1ibHlMaW5rRXJyb3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uo
dm0sIHN0cnVjdHVyZSkKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgRXJyb3JUeXBlOjpFcnJv
cikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcAppbmRleCBiZTFmOTI4NjAzMDQ1ZDdjZjcy
OTMyNGVlNGE3N2FlODNmY2U5Y2JlLi4xOTMzYTZlMzg4OGZiZWFjY2YwN2FjMmIzN2M3NDUwNDg0
ZmE1MWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmNwcApAQCAtNDEsNyArNDEsNyBAQCBKU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yKiBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUoSlNH
bG9iYWxPYmplY3QqIGdsbwogfQogCiBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpKU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBC
YXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIEVycm9yVHlwZTo6
RXJyb3IpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggNWNkMDAzNWEwMWZkYjc4ZGRjMzVmYzQ3YjZiODU4MGJlNDVkMzU5Ny4uYzNhMGQzOTdmNTA0
ZTI1OGYxZDcwZjhiNDgyYjc5YTFkOWU3MjY2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGxKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8K
IHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIFN0
cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5Q29tcGls
ZUVycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3Rh
bmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0
ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJv
ckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwg
bnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9y
Q29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3Nl
bWJseUNvbXBpbGVFcnJvclByb3RvdHlwZSogdGhpc1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJy
b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOTQ2ZGVmNGYxMTUyMjlhMjI1YmU5MzJhYzllNjQzNWI2
YzhhYjJhOS4uMmM1ZjZhMjkzMWYxNTIxNTg1YWFhOTM1ZTU2YjRiZDJmMTljMTZiMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamUKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndl
YkFzc2VtYmx5TGlua0Vycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVy
ZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9yVHlwZTo6RXJyb3IsIGZhbHNl
KSk7CiB9CiAKIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IqIFdlYkFzc2VtYmx5TGlu
a0Vycm9yQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBX
ZWJBc3NlbWJseUxpbmtFcnJvclByb3RvdHlwZSogdGhpc1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggM2RmZDkxNTY3YjYwYTU4ZGQ5YWE2ODQy
ZmY2NzkwMjFmNWNiOTI1Mi4uYTg1NjY5YzUxOGIxZTlhYTY4Yzk1YWQwNTY2ZWJmZDZmYzNkZmE4
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlS
dW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTY3LDcgKzY3
LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5UnVudGltZUVy
cm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBj
YWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBn
bG9iYWxPYmplY3QtPndlYkFzc2VtYmx5UnVudGltZUVycm9yU3RydWN0dXJlKCk7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBl
cnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2Jq
ZWN0LCBlcnJvclN0cnVjdHVyZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIEVycm9y
VHlwZTo6RXJyb3IsIGZhbHNlKSk7CiB9CiAKIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IqIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZSog
dGhpc1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDdhZDgxZDk3YTlkZmFiOGVkZWEx
ZWUwMmRjOGVkMjQzODI5MWU1ZDQuLmZhYTczNzRkMTc0YTAzNGFiNzMzNWM3YjVlZGZjY2Q5OTRl
ODdhYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMzAsNiArMzAsNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmgKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5oCisgICAgTW9kdWxl
cy9mZXRjaC9GZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRj
aEhlYWRlcnMuaAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hJZGVudGlmaWVyLmgKICAgICBNb2R1
bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmgKQEAgLTI4OCw2ICsyODksNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgYmluZGluZ3MvanMvV2ViQ29yZUpJVE9wZXJh
dGlvbnMuaAogICAgIGJpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oCiAg
ICAgYmluZGluZ3MvanMvV2luZG93UHJveHkuaAorICAgIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlw
dEZldGNoZXIuaAogCiAgICAgYnJpZGdlL0JyaWRnZS5oCiAgICAgYnJpZGdlL0lkZW50aWZpZXJS
ZXAuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXRHbG9iYWxTY29wZS5oCmluZGV4IGQ0MWI3MDhmMjljOGY3NTU2OTE2Zjc4MTMwZjY2
NDMzY2ZlNzEzM2QuLjAwMjE5ZjJkMDI5MTgzMDkxMzQ0NTg0MWEwYTRjNzAxYWRkMzc1MjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xv
YmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29y
a2xldEdsb2JhbFNjb3BlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgSlNBdWRpb1dvcmtsZXRQ
cm9jZXNzb3JDb25zdHJ1Y3RvcjsKIAogc3RydWN0IFdvcmtsZXRQYXJhbWV0ZXJzOwogCi1jbGFz
cyBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrbGV0R2xvYmFsU2NvcGUgewor
Y2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgZmluYWwgOiBwdWJsaWMgV29ya2xldEdsb2Jh
bFNjb3BlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEF1ZGlvV29ya2xldEdsb2JhbFNj
b3BlKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPEF1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
PiB0cnlDcmVhdGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiwgY29uc3QgV29ya2xldFBhcmFtZXRlcnMm
KTsKQEAgLTY5LDYgKzY5LDggQEAgY2xhc3MgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJs
aWMgV29ya2xldEdsb2JhbFNjb3BlIHsKICAgICB2b2lkIGhhbmRsZVByZVJlbmRlclRhc2tzKCk7
CiAgICAgdm9pZCBoYW5kbGVQb3N0UmVuZGVyVGFza3Moc2l6ZV90IGN1cnJlbnRGcmFtZSk7CiAK
KyAgICBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6QXVkaW93b3JrbGV0OyB9CisKIHBy
aXZhdGU6CiAgICAgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUoQXVkaW9Xb3JrbGV0VGhyZWFkJiwg
UmVmPEpTQzo6Vk0+JiYsIGNvbnN0IFdvcmtsZXRQYXJhbWV0ZXJzJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggYzM1YzA2ZjAzMDY3ZjFkYzAyYjU0NTY5NzUzYTQ5NzUwN2E5ZDUyZS4uOTc5NzRiYzY4
OTM3MjJiNmNkY2I4MmYzMzUyODYxMWYxMmRjODgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTYzOSw2
ICs2MzksNyBAQCBiaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwCiBiaW5kaW5ncy9qcy9X
ZWJDb3JlSklUT3BlcmF0aW9ucy5jcHAKIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEu
Y3BwCiBiaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCitiaW5kaW5n
cy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94
eS5jcHAKIGJpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmNwcAogYnJpZGdlL0lkZW50aWZpZXJS
ZXAuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNTUwY2RiNmJhMzU2MzczOTRhZWNlMzY3YmJhZTI2MDkxYTg0YzdjOC4uMzk5
N2Y3NjE3NWMwZTJiMzA2YWEwZjY4NWM5MDJiYzg2YWE4NDJiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA3OCwxNSArNTA3
OCwxOCBAQAogCQlFMzA1OTI2NDFFMjdBM0FEMDBENTdDOTggLyogSW5saW5lQ2xhc3NpY1Njcmlw
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTky
NjIxRTI3QTM4QzAwRDU3Qzk4IC8qIElubGluZUNsYXNzaWNTY3JpcHQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzA1OTI2ODFFMjdBM0QxMDBE
NTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwNTkyNjYxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hlZFNj
cmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFMzA3REVEMDFEODFFNEM3MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzA3
REVDNzFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTMwN0RFRDExRDgx
RTRDQjAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFQzgxRDgxRTQ0ODAw
MTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzMDdERUQ1MUQ4MUU0RjIwMDE0
MUNBRiAvKiBMb2FkYWJsZU1vZHVsZVNjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTMwN0RFRDMxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxl
TW9kdWxlU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTMxNTBFQTcxREE3MjE5MzAwMTk0MDEyIC8qIERPTUpJVEhlbHBlcnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMTUwRUE1MURBNzIx
OEQwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggKi87IH07CiAJCUUzMjAxQzFBMUY4RTgyMTMw
MDc2QTAzMiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1
bGVGZXRjaFBhcmFtZXRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlFMzIzQ0ZGQTFFNUFGNkFGMDBGMEI0QTAgLyogSlNET01Db252ZXJ0UHJv
bWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMy
M0NGRjkxRTVBRjZBNTAwRjBCNEEwIC8qIEpTRE9NQ29udmVydFByb21pc2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzQzMkRFNDI1RDM3N0Uz
MDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyog
V29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmggKi87IH07CisJCUUzNDdFNUZBMjVENEYwMDAwMEYx
N0E1QyAvKiBXb3JrZXJTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzQ3RTVGODI1RDRGMDAwMDBGMTdBNUMgLyogV29ya2VyU2Ny
aXB0RmV0Y2hlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUUzNTE4OEI0MjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTE4
OEIzMjVEMzg3Q0YwMEE3N0FGMyAvKiBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU2NUI3QjFEQzJE
NkM5MDAyMTdEQkQgLyogSlNFdmVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0RUU0OUYxREMyRDU3NTAwRUFBOUQzIC8qIEpTRXZlbnRD
dXN0b20uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFMzU4MDJCNjFEQzg0MzVEMDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1ODAyQjUxREM4NDM1
ODAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU4MkMyODI1MjdGNjY5MDBEMUI3OTAgLyog
V2ViQ29yZUpJVE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzNTgyQzI2MjUyN0Y2NjgwMEQxQjc5MCAvKiBXZWJDb3JlSklUT3BlcmF0
aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUUzNUI5MDdGMjNGNjBBNTAwMDAwMTFGRiAvKiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1QjkwN0MyM0Y2MDY3
NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM2NDMyMUMyNUQzN0E2NzAwRjkwRTJBIC8q
IE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUz
NzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURDMDQ1MDA3MThGM0Mg
LyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzN0M4NjRGMUVC
NjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIERldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTYyMjEsNyArMTYyMjQsNiBAQAogCQlFMzA1OTI2NjFFMjdB
M0M2MDBENTdDOTggLyogQ2FjaGVkU2NyaXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDYWNoZWRTY3JpcHRGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzMDdERUM2MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkTW9k
dWxlU2NyaXB0TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RF
QzcxRDgxRTQ0ODAwMTQxQ0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTMwN0RFQzgxRDgxRTQ0ODAwMTQxQ0FGIC8qIENh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTMwN0RFRDIxRDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxl
U2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRhYmxl
TW9kdWxlU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMwN0RFRDMx
RDgxRTRFRDAwMTQxQ0FGIC8qIExvYWRhYmxlTW9kdWxlU2NyaXB0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExvYWRhYmxlTW9kdWxlU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzMTUwRUE1MURBNzIxOEQwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVEhlbHBlcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MjM0LDEyICsxNjIzNiwxNyBAQAogCQlFMzI5
Mjc2MzIyNTQzRjU5MDAzMDhBOUEgLyogVHlwZWRPTUNTU1VuaXRWYWx1ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUeXBlZE9NQ1NTVW5pdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTMyOTI3NjYyMjU0M0ZERTAwMzA4QTlBIC8qIERPTVJlY3RSZWFkT25seS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBET01SZWN0UmVhZE9ubHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMzM0ODI1RTFEQzkzQUEwMDA5Qzk1NDQgLyogRE9NSklUQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBET01KSVRB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0RP
TUpJVEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKKwkJRTM0MzJERTAyNUQzNzdFMjAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlw
dExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJNb2R1bGVT
Y3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM0MzJERTMyNUQz
NzdFMzAwNThFNjEyIC8qIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzQ3RTVGODI1RDRGMDAwMDBGMTdBNUMgLyog
V29ya2VyU2NyaXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
b3JrZXJTY3JpcHRGZXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNEVF
NDlGMURDMkQ1NzUwMEVBQTlEMyAvKiBKU0V2ZW50Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTRXZlbnRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTM1MTg4QjMyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1ODAyQjUxREM4NDM1ODAw
QTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NSklUSURMVHlwZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzU4MkMyNDI1MjdGNjY4MDBEMUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUpJVE9wZXJhdGlv
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU4MkMyNjI1MjdGNjY4MDBE
MUI3OTAgLyogV2ViQ29yZUpJVE9wZXJhdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ29yZUpJVE9wZXJhdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTM1QjkwN0MyM0Y2MDY3NzAwMDAxMUZGIC8qIExvY2FsaXplZERldmljZU1vZGVsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsaXplZERldmljZU1vZGVsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUI5MDdFMjNGNjA2NzcwMDAwMTFGRiAv
KiBMb2NhbGl6ZWREZXZpY2VNb2RlbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IExvY2FsaXplZERldmljZU1vZGVsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMzY0MzIxQTI1RDM3QTY2MDBGOTBFMkEgLyogTW9kdWxlU2NyaXB0TG9hZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVNjcmlwdExvYWRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzdDODY0RjFFQjYzRTJEMDA4N0M2Q0EgLyog
SlNET01Qcm9taXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NUHJv
bWlzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NDFCQUQxNDVGMDBE
NjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzA0OCw3ICsyNzA1NSw2IEBACiAJCQkJ
MkRGQTQ4OEUxREI1NDFDMjAwMzYyQjk5IC8qIEJ1ZmZlclNvdXJjZS5oICovLAogCQkJCUUzMDdE
RUM2MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwICovLAog
CQkJCUUzMDdERUM3MUQ4MUU0NDgwMDE0MUNBRiAvKiBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIu
aCAqLywKLQkJCQlFMzA3REVDODFEODFFNDQ4MDAxNDFDQUYgLyogQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJRTMwNTkyNjUxRTI3QTNDNjAwRDU3Qzk4IC8qIENhY2hl
ZFNjcmlwdEZldGNoZXIuY3BwICovLAogCQkJCUUzMDU5MjY2MUUyN0EzQzYwMEQ1N0M5OCAvKiBD
YWNoZWRTY3JpcHRGZXRjaGVyLmggKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3NDY4IC8q
IENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8sCkBAIC0yNzEyMiw2ICsyNzEyOCw4IEBA
CiAJCQkJNEJERUEzMkQyMTgwMzQwNTAwNTJERkNEIC8qIEpTV29ya2xldEdsb2JhbFNjb3BlQmFz
ZS5jcHAgKi8sCiAJCQkJNEJERUEzMkIyMTgwMzNFQjAwNTJERkNEIC8qIEpTV29ya2xldEdsb2Jh
bFNjb3BlQmFzZS5oICovLAogCQkJCTcwOUEwMUZEMUUzRDBCQ0MwMDZCMEQ0QyAvKiBNb2R1bGVG
ZXRjaEZhaWx1cmVLaW5kLmggKi8sCisJCQkJRTM2NDMyMUEyNUQzN0E2NjAwRjkwRTJBIC8qIE1v
ZHVsZVNjcmlwdExvYWRlci5oICovLAorCQkJCUUzNTE4OEIzMjVEMzg3Q0YwMEE3N0FGMyAvKiBN
b2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCAqLywKIAkJCQk0MUI0NTlFRDFGNTVFQkM3MDAwMEY2
RkQgLyogUmVhZGFibGVTdHJlYW0uY3BwICovLAogCQkJCTQxQjQ1OURBMUY0Q0FEQjkwMDAwRjZG
RCAvKiBSZWFkYWJsZVN0cmVhbS5oICovLAogCQkJCTQxOEMzOTVFMUM4RjBBQUIwMDUxQzhBMyAv
KiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmNwcCAqLywKQEAgLTI3MTUzLDYgKzI3
MTYxLDkgQEAKIAkJCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJy
YXlDb250cm9sbGVyLmggKi8sCiAJCQkJNDYzNTIxQUMyMDgxMDkwRTAwQzI4OTIyIC8qIFdpbmRv
d1Byb3h5LmNwcCAqLywKIAkJCQk0NjM1MjFBQTIwODEwOTBCMDBDMjg5MjIgLyogV2luZG93UHJv
eHkuaCAqLywKKwkJCQlFMzQzMkRFMzI1RDM3N0UzMDA1OEU2MTIgLyogV29ya2VyTW9kdWxlU2Ny
aXB0TG9hZGVyLmNwcCAqLywKKwkJCQlFMzQzMkRFMDI1RDM3N0UyMDA1OEU2MTIgLyogV29ya2Vy
TW9kdWxlU2NyaXB0TG9hZGVyLmggKi8sCisJCQkJRTM0N0U1RjgyNUQ0RjAwMDAwRjE3QTVDIC8q
IFdvcmtlclNjcmlwdEZldGNoZXIuaCAqLywKIAkJCQk0MTQxOEEwMzI1NjQzRTEyMDAzNjM0MTcg
LyogV3JpdGFibGVTdHJlYW0uY3BwICovLAogCQkJCTQxNDE4QTA0MjU2NDNFMTMwMDM2MzQxNyAv
KiBXcml0YWJsZVN0cmVhbS5oICovLAogCQkJKTsKQEAgLTMxNDM1LDcgKzMxNDQ2LDYgQEAKIAkJ
CQlCQ0IxNkMxQzA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkSW1hZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxOUZCRDVGMTVEMkY0NjQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTMwN0RFRDAxRDgxRTRDNzAwMTQxQ0FGIC8qIENhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTMwN0RFRDExRDgxRTRDQjAwMTQx
Q0FGIC8qIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTEwMTg0NjkwQjA4NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUQwRURBNzc1MTQzRTMwM0MwMDI4RTM4MyAvKiBDYWNoZWRSYXdSZXNvdXJjZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTFCNTMzNDkxNzE3REVFMzAwRjIwNUY5IC8qIENhY2hlZFJhd1Jl
c291cmNlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMzOTEzLDYgKzMzOTIzLDggQEAKIAkJ
CQlDNkQ3NEFENTA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3MDlBMDFGRTFFM0QwQkREMDA2QjBENEMgLyogTW9kdWxlRmV0
Y2hGYWlsdXJlS2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMyMDFDMUExRjhFODIxMzAwNzZB
MDMyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM2NDMy
MUMyNUQzN0E2NzAwRjkwRTJBIC8qIE1vZHVsZVNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTM1MTg4QjQyNUQzODdDRjAwQTc3QUYzIC8qIE1vZHVsZVNjcmlwdExvYWRlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQzYxMjUxRjEyRDAwM0VGMjY5IC8qIE1vbnRo
SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzk2MjhDMTIzOTU3NDMxMDA2NThFQ0Qg
LyogTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNDYwQTQ0
RUZDNzAwRjk5MkUwIC8qIE1vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzU1NjYsNiAr
MzU1NzgsNyBAQAogCQkJCTE4RjgzMUI4MEZENDhDNzgwMEQ4QzU2QiAvKiBXb3JrZXJMb2FkZXJQ
cm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NEQwRjU0NkE4MjAwQjBGMUJBIC8qIFdv
cmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MDBGNTQ2QTgyMDBCMEYx
QkEgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNDMyREU0
MjVEMzc3RTMwMDU4RTYxMiAvKiBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxMjcxQTBCMEVFRUM3N0EwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCUE1Q0IwNTI1MUZCNTFGM0EwMDA4OUI5NyAvKiBXb3JrZXJOZXR3
b3JrQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjUxMEY1NDZBODIwMEIwRjFCQSAv
KiBXb3JrZXJPYmplY3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNTU3NSw2ICszNTU4OCw3
IEBACiAJCQkJNDE2RTI5QTYxMDJGQTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTQzNDY1MzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2Vy
UnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQ0YxRkFBNDRERTAwMzdEMUU2IC8q
IFdvcmtlclJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM0N0U1RkEyNUQ0RjAw
MDAwRjE3QTVDIC8qIFdvcmtlclNjcmlwdEZldGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
RDZCMzQ5MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJFQTc2ODA0MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFNDM0NjU1MEY1NDZBODIwMEIwRjFCQSAvKiBX
b3JrZXJUaHJlYWQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlci5jcHAKaW5kZXggMzUyZGNjNGFj
Zjc1MTc2ZDk4YWQzNDEwYmUxNTE2MDgwMTA4ODUyNC4uMjc3ZjYyYTdjMTMzZmUxNTZjNmNjZTk4
NTUzNTUwZWRiMTM2ZDAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIuY3BwCkBAIC00MCwxNiArNDAsMTMgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZShDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGll
bnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVy
JiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRl
cnMpCitSZWY8Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyPiBDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXI6OmNyZWF0ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9t
aXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8
TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFtZXRlcnMpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0
RmV0Y2hlciwgV1RGTW92ZShwYXJhbWV0ZXJzKSkpOwogfQogCi1DYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXI6OkNhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJD
bGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBDYWNoZWRTY3JpcHRGZXRj
aGVyJiBzY3JpcHRGZXRjaGVyLCBSZWZQdHI8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzPiYmIHBhcmFt
ZXRlcnMpCi0gICAgOiBtX2NsaWVudCgmY2xpZW50KQotICAgICwgbV9wcm9taXNlKCZwcm9taXNl
KQotICAgICwgbV9zY3JpcHRGZXRjaGVyKHNjcmlwdEZldGNoZXIpCi0gICAgLCBtX3BhcmFtZXRl
cnMoV1RGTW92ZShwYXJhbWV0ZXJzKSkKK0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Q2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyKE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBEZWZl
cnJlZFByb21pc2UmIHByb21pc2UsIENhY2hlZFNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIs
IFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICA6IE1vZHVs
ZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZldGNoZXIsIFdURk1vdmUocGFy
YW1ldGVycykpCiB7CiB9CiAKQEAgLTYxLDE0ICs1OCwxNSBAQCBDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXI6On5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoKQogICAgIH0KIH0KIAotYm9vbCBDYWNo
ZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwm
IHNvdXJjZVVSTCkKK2Jvb2wgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyOjpsb2FkKERvY3VtZW50
JiBkb2N1bWVudCwgVVJMJiYgc291cmNlVVJMKQogeworICAgIEFTU0VSVChtX3Byb21pc2UpOwog
ICAgIEFTU0VSVCghbV9jYWNoZWRTY3JpcHQpOwogICAgIFN0cmluZyBpbnRlZ3JpdHkgPSBtX3Bh
cmFtZXRlcnMgPyBtX3BhcmFtZXRlcnMtPmludGVncml0eSgpIDogU3RyaW5nIHsgfTsKLSAgICBt
X2NhY2hlZFNjcmlwdCA9IG1fc2NyaXB0RmV0Y2hlci0+cmVxdWVzdE1vZHVsZVNjcmlwdChkb2N1
bWVudCwgc291cmNlVVJMLCBXVEZNb3ZlKGludGVncml0eSkpOworICAgIG1fY2FjaGVkU2NyaXB0
ID0gc2NyaXB0RmV0Y2hlcigpLnJlcXVlc3RNb2R1bGVTY3JpcHQoZG9jdW1lbnQsIHNvdXJjZVVS
TCwgV1RGTW92ZShpbnRlZ3JpdHkpKTsKICAgICBpZiAoIW1fY2FjaGVkU2NyaXB0KQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgbV9zb3VyY2VVUkwgPSBzb3VyY2VVUkw7CisgICAgbV9zb3Vy
Y2VVUkwgPSBXVEZNb3ZlKHNvdXJjZVVSTCk7CiAKICAgICAvLyBJZiB0aGUgY29udGVudCBpcyBh
bHJlYWR5IGNhY2hlZCwgdGhpcyBpbW1lZGlhdGVseSBjYWxscyBub3RpZnlGaW5pc2hlZC4KICAg
ICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KCp0aGlzKTsKQEAgLTgzLDcgKzgxLDcgQEAgdm9p
ZCBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNl
JiByZXNvdXJjZSwgY29uc3QgTmUKIAogICAgIFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+
IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGll
bnQtPm5vdGlmeUZpbmlzaGVkKCp0aGlzLCBXVEZNb3ZlKG1fcHJvbWlzZSkpOworICAgICAgICBt
X2NsaWVudC0+bm90aWZ5RmluaXNoZWQoKnRoaXMsIFdURk1vdmUobV9zb3VyY2VVUkwpLCBtX3By
b21pc2UucmVsZWFzZU5vbk51bGwoKSk7CiAKICAgICAvLyBSZW1vdmUgdGhlIGNsaWVudCBhZnRl
ciBjYWxsaW5nIG5vdGlmeUZpbmlzaGVkIHRvIGtlZXAgdGhlIGRhdGEgYnVmZmVyIGluCiAgICAg
Ly8gQ2FjaGVkUmVzb3VyY2UgYWxpdmUgd2hpbGUgbm90aWZ5RmluaXNoZWQgcHJvY2Vzc2VzIHRo
ZSByZXNvdXJjZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVk
TW9kdWxlU2NyaXB0TG9hZGVyLmgKaW5kZXggNDNhYmQ4NzViMjQzZmFmNWZjZDRkOThlYzNjNWQy
NGU3OTBiNTcyZS4uYTQ4NzU1ZjkzZDA1ZWYzNTNkMmIzZTIyOGQ4MjE5ZmU4OTFlNjc0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkTW9kdWxlU2NyaXB0
TG9hZGVyLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJDYWNo
ZWRTY3JpcHRGZXRjaGVyLmgiCisjaW5jbHVkZSAiTW9kdWxlU2NyaXB0TG9hZGVyLmgiCiAjaW5j
bHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgpAQCAtMzQsNDIgKzM2LDI5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OworY2xhc3MgTW9kdWxlU2Ny
aXB0TG9hZGVyQ2xpZW50OwogY2xhc3MgQ2FjaGVkU2NyaXB0OwotY2xhc3MgQ2FjaGVkU2NyaXB0
RmV0Y2hlcjsKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKIGNsYXNzIERvY3VtZW50OwogY2xhc3Mg
SlNET01HbG9iYWxPYmplY3Q7CiBjbGFzcyBNb2R1bGVGZXRjaFBhcmFtZXRlcnM7CiAKLWNsYXNz
IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlcj4sIHByaXZhdGUgQ2FjaGVkUmVzb3VyY2VDbGllbnQgeworY2xh
c3MgQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyIGZpbmFsIDogcHVibGljIE1vZHVsZVNjcmlwdExv
YWRlciwgcHJpdmF0ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI+IGNyZWF0ZShDYWNoZWRNb2R1bGVTY3JpcHRM
b2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVm
UHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisgICAgc3RhdGljIFJlZjxDYWNoZWRNb2R1
bGVTY3JpcHRMb2FkZXI+IGNyZWF0ZShNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZlcnJl
ZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1l
dGVycz4mJik7CiAKICAgICB2aXJ0dWFsIH5DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXIoKTsKIAot
ICAgIGJvb2wgbG9hZChEb2N1bWVudCYsIGNvbnN0IFVSTCYgc291cmNlVVJMKTsKKyAgICBib29s
IGxvYWQoRG9jdW1lbnQmLCBVUkwmJiBzb3VyY2VVUkwpOwogCi0gICAgQ2FjaGVkU2NyaXB0RmV0
Y2hlciYgc2NyaXB0RmV0Y2hlcigpIHsgcmV0dXJuIG1fc2NyaXB0RmV0Y2hlci5nZXQoKTsgfQog
ICAgIENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KCkgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQu
Z2V0KCk7IH0KLSAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSB7IHJldHVy
biBtX3BhcmFtZXRlcnMuZ2V0KCk7IH0KLSAgICBjb25zdCBVUkwmIHNvdXJjZVVSTCgpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9Ci0KLSAgICB2b2lkIGNsZWFyQ2xpZW50KCkKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChtX2NsaWVudCk7Ci0gICAgICAgIG1fY2xpZW50ID0gbnVsbHB0cjsK
LSAgICB9CisgICAgQ2FjaGVkU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlcigpIHsgcmV0dXJu
IHN0YXRpY19jYXN0PENhY2hlZFNjcmlwdEZldGNoZXImPihNb2R1bGVTY3JpcHRMb2FkZXI6OnNj
cmlwdEZldGNoZXIoKSk7IH0KIAogcHJpdmF0ZToKLSAgICBDYWNoZWRNb2R1bGVTY3JpcHRMb2Fk
ZXIoQ2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiwgRGVmZXJyZWRQcm9taXNlJiwgQ2Fj
aGVkU2NyaXB0RmV0Y2hlciYsIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYpOworICAg
IENhY2hlZE1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmLCBEZWZl
cnJlZFByb21pc2UmLCBDYWNoZWRTY3JpcHRGZXRjaGVyJiwgUmVmUHRyPE1vZHVsZUZldGNoUGFy
YW1ldGVycz4mJik7CiAKICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJiwg
Y29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CiAKLSAgICBDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OwotICAgIFJlZlB0cjxEZWZlcnJl
ZFByb21pc2U+IG1fcHJvbWlzZTsKLSAgICBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hlcj4gbV9zY3Jp
cHRGZXRjaGVyOwotICAgIFJlZlB0cjxNb2R1bGVGZXRjaFBhcmFtZXRlcnM+IG1fcGFyYW1ldGVy
czsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0
OwogICAgIFVSTCBtX3NvdXJjZVVSTDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9DYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Njg4YWQ5MGRhZTNlY2U5NDllYTA5YjFlZmVlNWRhMjZm
OTRjNzg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5o
CisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI7Ci1jbGFzcyBEZWZlcnJlZFByb21p
c2U7Ci0KLWNsYXNzIENhY2hlZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7Ci1wdWJsaWM6Ci0g
ICAgdmlydHVhbCB+Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50KCkgPSBkZWZhdWx0Owot
Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZE1vZHVsZVNjcmlwdExvYWRl
ciYsIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+KSA9IDA7Ci19OwotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRGZXRjaGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwCmluZGV4IGE0MzM3
NTg2NWJiZjFlYzU5NzNiZjE3MmM5MWEzODUzMjM0ZTM3NGQuLmMwZmZhZGQ2ZjI1MjQyNmFiYTcy
MmE1MDg0NGU2MzU3MmY0ZDVlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0NhY2hlZFNjcmlwdEZldGNoZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIldvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAppbmRleCBkZjdmM2Q3NDZkNWUzMmFi
YWI1MTQ3NmM5ZGRhY2E2M2E0MzUxMzZjLi5lZWYyMTAzODg0OWZkODk4NDlhZmNlZDcwMzE4NWZm
ODk0YzQwYzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4
Y2VwdGlvbkhhbmRsaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUV4Y2VwdGlvbkhhbmRsaW5nLmNwcApAQCAtNTIsNiArNTIsMjUgQEAgdm9pZCByZXBvcnRFeGNl
cHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgZXhjZXB0
aW9uVmFsdWUKICAgICByZXBvcnRFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgZXhjZXB0
aW9uLCBjYWNoZWRTY3JpcHQpOwogfQogCitTdHJpbmcgcmV0cmlldmVFcnJvck1lc3NhZ2VXaXRo
b3V0TmFtZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgVk0mIHZtLCBKU1Zh
bHVlIGV4Y2VwdGlvbiwgQ2F0Y2hTY29wZSYgY2F0Y2hTY29wZSkKK3sKKyAgICAvLyBGSVhNRTog
PGh0dHA6Ly93ZWJraXQub3JnL2IvMTE1MDg3PiBXZWIgSW5zcGVjdG9yOiBXZWJDb3JlOjpyZXBv
cnRFeGNlcHRpb24gc2hvdWxkIG5vdCBldmFsdWF0ZSBKYXZhU2NyaXB0IGhhbmRsaW5nIGV4Y2Vw
dGlvbnMKKyAgICAvLyBJZiB0aGlzIGlzIGEgY3VzdG9tIGV4Y2VwdGlvbiBvYmplY3QsIGNhbGwg
dG9TdHJpbmcgb24gaXQgdG8gdHJ5IGFuZCBnZXQgYSBuaWNlIHN0cmluZyByZXByZXNlbnRhdGlv
biBmb3IgdGhlIGV4Y2VwdGlvbi4KKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmIChh
dXRvKiBlcnJvciA9IGpzRHluYW1pY0Nhc3Q8RXJyb3JJbnN0YW5jZSo+KHZtLCBleGNlcHRpb24p
KQorICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci0+c2FuaXRpemVkTWVzc2FnZVN0cmluZygm
bGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgZWxzZSBpZiAoYXV0byogZXJyb3IgPSBqc0R5bmFt
aWNDYXN0PEpTRE9NRXhjZXB0aW9uKj4odm0sIGV4Y2VwdGlvbikpCisgICAgICAgIGVycm9yTWVz
c2FnZSA9IGVycm9yLT53cmFwcGVkKCkubWVzc2FnZSgpOworICAgIGVsc2UKKyAgICAgICAgZXJy
b3JNZXNzYWdlID0gZXhjZXB0aW9uLnRvV1RGU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
KworICAgIC8vIFdlIG5lZWQgdG8gY2xlYXIgYW55IG5ldyBleGNlcHRpb24gdGhhdCBtYXkgYmUg
dGhyb3duIGluIHRoZSB0b1N0cmluZygpIGNhbGwgYWJvdmUuCisgICAgLy8gcmVwb3J0RXhjZXB0
aW9uKCkgaXMgbm90IHN1cHBvc2VkIHRvIGJlIG1ha2luZyBuZXcgZXhjZXB0aW9ucy4KKyAgICBj
YXRjaFNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CisgICAgdm0uY2xlYXJMYXN0RXhjZXB0aW9uKCk7
CisgICAgcmV0dXJuIGVycm9yTWVzc2FnZTsKK30KKwogU3RyaW5nIHJldHJpZXZlRXJyb3JNZXNz
YWdlKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBWTSYgdm0sIEpTVmFsdWUg
ZXhjZXB0aW9uLCBDYXRjaFNjb3BlJiBjYXRjaFNjb3BlKQogewogICAgIC8vIEZJWE1FOiA8aHR0
cDovL3dlYmtpdC5vcmcvYi8xMTUwODc+IFdlYiBJbnNwZWN0b3I6IFdlYkNvcmU6OnJlcG9ydEV4
Y2VwdGlvbiBzaG91bGQgbm90IGV2YWx1YXRlIEphdmFTY3JpcHQgaGFuZGxpbmcgZXhjZXB0aW9u
cwpAQCAtMTIxLDM2ICsxNDAsNDUgQEAgdm9pZCByZXBvcnRDdXJyZW50RXhjZXB0aW9uKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0KQogCiBKU1ZhbHVlIGNyZWF0ZURPTUV4Y2Vw
dGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRXhjZXB0aW9uQ29kZSBl
YywgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIGlmIChlYyA9PSBFeGlzdGluZ0V4Y2Vw
dGlvbkVycm9yKQorICAgIHN3aXRjaCAoZWMpIHsKKyAgICBjYXNlIEV4aXN0aW5nRXhjZXB0aW9u
RXJyb3I6CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAgICAgLy8gRklYTUU6IEhh
bmRsZSBvdGhlciBXZWJJREwgZXhjZXB0aW9uIHR5cGVzLgotICAgIGlmIChlYyA9PSBUeXBlRXJy
b3IpIHsKKyAgICBjYXNlIFR5cGVFcnJvcjoKICAgICAgICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgp
KQogICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICAgICAgcmV0dXJuIGNyZWF0ZVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBt
ZXNzYWdlKTsKLSAgICB9CiAKLSAgICBpZiAoZWMgPT0gUmFuZ2VFcnJvcikgeworICAgIGNhc2Ug
UmFuZ2VFcnJvcjoKICAgICAgICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQogICAgICAgICAgICAg
cmV0dXJuIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIkJhZCB2YWx1ZSJf
cyk7CiAgICAgICAgIHJldHVybiBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3Qs
IG1lc3NhZ2UpOwotICAgIH0KIAotICAgIGlmIChlYyA9PSBTdGFja092ZXJmbG93RXJyb3IpCisg
ICAgY2FzZSBKU1N5bnRheEVycm9yOgorICAgICAgICBpZiAobWVzc2FnZS5pc0VtcHR5KCkpCisg
ICAgICAgICAgICByZXR1cm4gY3JlYXRlU3ludGF4RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCk7
CisgICAgICAgIHJldHVybiBjcmVhdGVTeW50YXhFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBt
ZXNzYWdlKTsKKworICAgIGNhc2UgU3RhY2tPdmVyZmxvd0Vycm9yOgogICAgICAgICByZXR1cm4g
Y3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGlmIChl
YyA9PSBPdXRPZk1lbW9yeUVycm9yKQorCisgICAgY2FzZSBPdXRPZk1lbW9yeUVycm9yOgogICAg
ICAgICByZXR1cm4gY3JlYXRlT3V0T2ZNZW1vcnlFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
IAotICAgIC8vIEZJWE1FOiBBbGwgY2FsbGVycyB0byBjcmVhdGVET01FeGNlcHRpb24gbmVlZCB0
byBwYXNzIGluIHRoZSBjb3JyZWN0IGdsb2JhbCBvYmplY3QuCi0gICAgLy8gRm9yIG5vdywgd2Un
cmUgZ29pbmcgdG8gYXNzdW1lIHRoZSBsZXhpY2FsR2xvYmFsT2JqZWN0LiBXaGljaCBpcyB3cm9u
ZyBpbiBjYXNlcyBsaWtlIHRoaXM6Ci0gICAgLy8gZnJhbWVzWzBdLmRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQobnVsbCwgbnVsbCk7IC8vIHRocm93cyBhbiBleGNlcHRpb24gd2hpY2ggc2hvdWxkIGhh
dmUgdGhlIHN1YmZyYW1lJ3MgcHJvdG90eXBlcy4KLSAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0ID0gZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKLSAgICBKU1ZhbHVlIGVycm9yT2JqZWN0ID0gdG9KUyhsZXhpY2FsR2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3QsIERPTUV4Y2VwdGlvbjo6Y3JlYXRlKGVjLCBtZXNzYWdlKSk7
Ci0gICAgCi0gICAgQVNTRVJUKGVycm9yT2JqZWN0KTsKLSAgICBhZGRFcnJvckluZm8obGV4aWNh
bEdsb2JhbE9iamVjdCwgYXNPYmplY3QoZXJyb3JPYmplY3QpLCB0cnVlKTsKLSAgICByZXR1cm4g
ZXJyb3JPYmplY3Q7CisgICAgZGVmYXVsdDogeworICAgICAgICAvLyBGSVhNRTogQWxsIGNhbGxl
cnMgdG8gY3JlYXRlRE9NRXhjZXB0aW9uIG5lZWQgdG8gcGFzcyBpbiB0aGUgY29ycmVjdCBnbG9i
YWwgb2JqZWN0LgorICAgICAgICAvLyBGb3Igbm93LCB3ZSdyZSBnb2luZyB0byBhc3N1bWUgdGhl
IGxleGljYWxHbG9iYWxPYmplY3QuIFdoaWNoIGlzIHdyb25nIGluIGNhc2VzIGxpa2UgdGhpczoK
KyAgICAgICAgLy8gZnJhbWVzWzBdLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobnVsbCwgbnVsbCk7
IC8vIHRocm93cyBhbiBleGNlcHRpb24gd2hpY2ggc2hvdWxkIGhhdmUgdGhlIHN1YmZyYW1lJ3Mg
cHJvdG90eXBlcy4KKyAgICAgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGRl
cHJlY2F0ZWRHbG9iYWxPYmplY3RGb3JQcm90b3R5cGUobGV4aWNhbEdsb2JhbE9iamVjdCk7Cisg
ICAgICAgIEpTVmFsdWUgZXJyb3JPYmplY3QgPSB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdCwgRE9NRXhjZXB0aW9uOjpjcmVhdGUoZWMsIG1lc3NhZ2UpKTsKKworICAgICAg
ICBBU1NFUlQoZXJyb3JPYmplY3QpOworICAgICAgICBhZGRFcnJvckluZm8obGV4aWNhbEdsb2Jh
bE9iamVjdCwgYXNPYmplY3QoZXJyb3JPYmplY3QpLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIGVy
cm9yT2JqZWN0OworICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHsgfTsKIH0KIAogSlNWYWx1ZSBj
cmVhdGVET01FeGNlcHRpb24oSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEV4
Y2VwdGlvbiYmIGV4Y2VwdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaAppbmRleCAyZDNlMzExZjYxZWViNjg1YWFjMzU1NDZh
YWUxNjBkYTk3OTBlZjVmLi5kMWY2ZGU5Mzc0NzBjZTZkZjJjY2I2NDcyMjg0NzY2ZmQwMTk1ODIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhh
bmRsaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25I
YW5kbGluZy5oCkBAIC02NSw2ICs2NSw3IEBAIFdFQkNPUkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpT
VmFsdWUgcmVqZWN0UHJvbWlzZVdpdGhHZXR0ZXJUeXBlRXJyb3IoSlNDOjpKU0dsb2JhCiBXRUJD
T1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHJlamVjdFByb21pc2VXaXRoVGhpc1R5cGVF
cnJvcihEZWZlcnJlZFByb21pc2UmLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBj
aGFyKiBvcGVyYXRpb25OYW1lKTsKIFdFQkNPUkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUg
cmVqZWN0UHJvbWlzZVdpdGhUaGlzVHlwZUVycm9yKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBjb25z
dCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBvcGVyYXRpb25OYW1lKTsKIAorU3Ry
aW5nIHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCYs
IEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBKU0M6OkNhdGNoU2NvcGUmKTsKIFN0
cmluZyByZXRyaWV2ZUVycm9yTWVzc2FnZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpWTSYs
IEpTQzo6SlNWYWx1ZSBleGNlcHRpb24sIEpTQzo6Q2F0Y2hTY29wZSYpOwogV0VCQ09SRV9FWFBP
UlQgdm9pZCByZXBvcnRFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNWYWx1
ZSBleGNlcHRpb24sIENhY2hlZFNjcmlwdCogPSBudWxscHRyKTsKIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVwb3J0RXhjZXB0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4Y2VwdGlvbios
IENhY2hlZFNjcmlwdCogPSBudWxscHRyLCBFeGNlcHRpb25EZXRhaWxzKiA9IG51bGxwdHIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmlu
ZGV4IGY4ODVjZWJlZDQwMmFhZTAwY2YwMjg4NmZkNWVlZmU2YzIwZjdiNTMuLjM0YTU2ZWVmYzA1
M2ZjOTQ4ZjgxYTdjYWRmNzA4YTU3ZjVlOTQ4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNs
dWRlICJKU1dvcmtsZXRHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlJlamVjdGVkUHJvbWlzZVRy
YWNrZXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAi
U2NyaXB0TW9kdWxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlZENsb25lLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3Bl
LmgiCkBAIC00MjUsNiArNDI2LDc5IEBAIEpTQzo6SlNQcm9taXNlKiBKU0RPTUdsb2JhbE9iamVj
dDo6aW5zdGFudGlhdGVTdHJlYW1pbmcoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAjZW5k
aWYKIAorc3RhdGljIFNjcmlwdE1vZHVsZUxvYWRlciogc2NyaXB0TW9kdWxlTG9hZGVyKEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgIGlmIChnbG9iYWxPYmplY3QtPmluaGVyaXRzPEpTRE9NV2luZG93QmFzZT4o
dm0pKSB7CisgICAgICAgIGlmIChhdXRvIGRvY3VtZW50ID0ganNDYXN0PGNvbnN0IEpTRE9NV2lu
ZG93QmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBwZWQoKS5kb2N1bWVudCgpKQorICAgICAgICAg
ICAgcmV0dXJuICZkb2N1bWVudC0+bW9kdWxlTG9hZGVyKCk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU1JlbW90ZURPTVdp
bmRvd0Jhc2U+KHZtKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGdsb2JhbE9i
amVjdC0+aW5oZXJpdHM8SlNXb3JrZXJHbG9iYWxTY29wZUJhc2U+KHZtKSkKKyAgICAgICAgcmV0
dXJuICZqc0Nhc3Q8Y29uc3QgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UqPihnbG9iYWxPYmplY3Qp
LT53cmFwcGVkKCkubW9kdWxlTG9hZGVyKCk7CisgICAgaWYgKGdsb2JhbE9iamVjdC0+aW5oZXJp
dHM8SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlPih2bSkpCisgICAgICAgIHJldHVybiAmanNDYXN0
PGNvbnN0IEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZSo+KGdsb2JhbE9iamVjdCktPndyYXBwZWQo
KS5tb2R1bGVMb2FkZXIoKTsKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICBpZiAo
Z2xvYmFsT2JqZWN0LT5pbmhlcml0czxKU0lEQlNlcmlhbGl6YXRpb25HbG9iYWxPYmplY3Q+KHZt
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKyAgICBkYXRhTG9nKCJVbmV4cGVj
dGVkIGdsb2JhbCBvYmplY3Q6ICIsIEpTVmFsdWUoZ2xvYmFsT2JqZWN0KSwgIlxuIik7CisgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
SlNDOjpJZGVudGlmaWVyIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9k
dWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9kdWxlTmFtZSwgSlNDOjpKU1ZhbHVlIGltcG9ydGVy
TW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKK3sKKyAgICBKU0RPTUdsb2Jh
bE9iamVjdCogdGhpc09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xv
YmFsT2JqZWN0KTsKKyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRo
aXNPYmplY3QpKQorICAgICAgICByZXR1cm4gbG9hZGVyLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwg
bW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0RmV0Y2hl
cik7CisgICAgcmV0dXJuIHsgfTsKK30KKworSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01H
bG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUg
bW9kdWxlS2V5LCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVycywgSlNDOjpKU1ZhbHVlIHNjcmlwdEZl
dGNoZXIpCit7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogdGhp
c09iamVjdCA9IEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KTsK
KyAgICBpZiAoYXV0byogbG9hZGVyID0gc2NyaXB0TW9kdWxlTG9hZGVyKHRoaXNPYmplY3QpKQor
ICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGxvYWRlci0+ZmV0Y2goZ2xvYmFsT2Jq
ZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZUtleSwgcGFyYW1ldGVycywgc2NyaXB0RmV0Y2hlcikp
OworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJl
KCkpOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2Jq
ZWN0LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gcHJvbWlzZTsKK30KKworSlNDOjpKU1Zh
bHVlIEpTRE9NR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwg
SlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpK
U1ZhbHVlIHNjcmlwdEZldGNoZXIpCit7CisgICAgSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmpl
Y3QgPSBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCk7CisgICAg
aWYgKGF1dG8qIGxvYWRlciA9IHNjcmlwdE1vZHVsZUxvYWRlcih0aGlzT2JqZWN0KSkKKyAgICAg
ICAgcmV0dXJuIGxvYWRlci0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1v
ZHVsZUtleSwgbW9kdWxlUmVjb3JkLCBzY3JpcHRGZXRjaGVyKTsKKyAgICByZXR1cm4gSlNDOjpq
c1VuZGVmaW5lZCgpOworfQorCitKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiBKU0RPTUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTU3RyaW5n
KiBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgcGFyYW1ldGVycywgY29uc3QgSlNDOjpTb3VyY2VP
cmlnaW4mIHNvdXJjZU9yaWdpbikKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTRE9NR2xv
YmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihn
bG9iYWxPYmplY3QpOworICAgIGlmIChhdXRvKiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIo
dGhpc09iamVjdCkpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbG9hZGVyLT5p
bXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBhcmFt
ZXRlcnMsIHNvdXJjZU9yaWdpbikpOworICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21p
c2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50
ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOworICAgIHNjb3BlLnJlbGVhc2UoKTsKKyAgICBwcm9t
aXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKKyAgICByZXR1cm4gcHJv
bWlzZTsKK30KKworSlNDOjpKU09iamVjdCogSlNET01HbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRl
ckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpKU01vZHVsZUxvYWRlciogbW9kdWxlTG9hZGVyLCBKU0M6OkpTVmFsdWUgbW9k
dWxlS2V5LCBKU0M6OkpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQsIEpTQzo6SlNWYWx1ZSBz
Y3JpcHRGZXRjaGVyKQoreworICAgIEpTRE9NR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0gSlND
Ojpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpOworICAgIGlmIChhdXRv
KiBsb2FkZXIgPSBzY3JpcHRNb2R1bGVMb2FkZXIodGhpc09iamVjdCkpCisgICAgICAgIHJldHVy
biBsb2FkZXItPmNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdCwgbW9kdWxl
TG9hZGVyLCBtb2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7CisgICAgcmV0
dXJuIGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0
LT5udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkpOworfQorCiBKU0RPTUdsb2JhbE9iamVj
dCYgY2FsbGVyR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUmIGNhbGxGcmFtZSkKIHsKICAgICBjbGFzcyBHZXRDYWxsZXJHbG9iYWxPYmpl
Y3RGdW5jdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5oCmluZGV4IDBjMTExOTBiMmYwMjgzNGY5N2EyYjRhYzk0YTM2Njg0MTM0NjhjOTkuLmQ1
NTA1YzYxN2M2ZThhZjFhZWI5ZDMxYmIyZmMwZmQwYzMxZjI3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtMTA1LDYgKzEwNSwxMiBA
QCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBKU0RPTUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0M6OkpT
R2xvYmFsT2JqZWN0IHsKICAgICBzdGF0aWMgSlNDOjpKU1Byb21pc2UqIGluc3RhbnRpYXRlU3Ry
ZWFtaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNPYmplY3Qq
KTsKICNlbmRpZgogCisgICAgc3RhdGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2FkZXJSZXNv
bHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1Zh
bHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIEpTQzo6SlNJbnRl
cm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1
ZSk7CisgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpK
U1ZhbHVlLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNN
b2R1bGVMb2FkZXIqLCBKU0M6OkpTU3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OlNv
dXJjZU9yaWdpbiYpOworICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVh
dGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVs
ZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6SlNWYWx1
ZSk7CisKICAgICBKU0RPTVN0cnVjdHVyZU1hcCBtX3N0cnVjdHVyZXM7CiAgICAgSlNET01Db25z
dHJ1Y3Rvck1hcCBtX2NvbnN0cnVjdG9yczsKICAgICBET01HdWFyZGVkT2JqZWN0U2V0IG1fZ3Vh
cmRlZE9iamVjdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmNwcAppbmRleCA1NjNlZmEwNTcxYjVkNDYyZDllNjQ1MDg5ZjBiZDhmNzdkMTlhNzY4Li4z
MTJhMDExNThlOGMyODA4M2MwN2U0MmRiODcyNDVmZTRlNWM1N2FhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTMzOSw1NCArMzM5LDQg
QEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OmZpcmVGcmFtZUNsZWFyZWRXYXRjaHBvaW50c0Zvcldp
bmRvdyhET01XaW5kb3cqIHdpbmRvdykKICAgICB9CiB9CiAKLUpTQzo6SWRlbnRpZmllciBKU0RP
TVdpbmRvd0Jhc2U6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNWYWx1
ZSBtb2R1bGVOYW1lLCBKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1bGVLZXksIEpTQzo6SlNWYWx1
ZSBzY3JpcHRGZXRjaGVyKQotewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IEpT
Qzo6anNDYXN0PEpTRE9NV2luZG93QmFzZSo+KGdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKFJlZlB0
cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkK
LSAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5yZXNvbHZlKGdsb2JhbE9i
amVjdCwgbW9kdWxlTG9hZGVyLCBtb2R1bGVOYW1lLCBpbXBvcnRlck1vZHVsZUtleSwgc2NyaXB0
RmV0Y2hlcik7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSog
SlNET01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJGZXRjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1Zh
bHVlIG1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3Jp
cHRGZXRjaGVyKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5kb3dCYXNlKiB0
aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFsT2JqZWN0KTsK
LSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5kb2N1bWVudCgpKQotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGRvY3VtZW50
LT5tb2R1bGVMb2FkZXIoKS5mZXRjaChnbG9iYWxPYmplY3QsIG1vZHVsZUxvYWRlciwgbW9kdWxl
S2V5LCBwYXJhbWV0ZXJzLCBzY3JpcHRGZXRjaGVyKSk7Ci0gICAgSlNDOjpKU0ludGVybmFsUHJv
bWlzZSogcHJvbWlzZSA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2U6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LT5pbnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUoKSk7Ci0gICAgc2NvcGUucmVsZWFzZSgp
OwotICAgIHByb21pc2UtPnJlamVjdChnbG9iYWxPYmplY3QsIGpzVW5kZWZpbmVkKCkpOwotICAg
IHJldHVybiBwcm9taXNlOwotfQotCi1KU0M6OkpTVmFsdWUgSlNET01XaW5kb3dCYXNlOjptb2R1
bGVMb2FkZXJFdmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
SlNNb2R1bGVMb2FkZXIqIG1vZHVsZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlND
OjpKU1ZhbHVlIG1vZHVsZVJlY29yZCwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNoZXIpCi17Ci0g
ICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dC
YXNlKj4oZ2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZG9jdW1l
bnQtPm1vZHVsZUxvYWRlcigpLmV2YWx1YXRlKGdsb2JhbE9iamVjdCwgbW9kdWxlTG9hZGVyLCBt
b2R1bGVLZXksIG1vZHVsZVJlY29yZCwgc2NyaXB0RmV0Y2hlcik7Ci0gICAgcmV0dXJuIEpTQzo6
anNVbmRlZmluZWQoKTsKLX0KLQotSlNDOjpKU0ludGVybmFsUHJvbWlzZSogSlNET01XaW5kb3dC
YXNlOjptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiBtb2R1bGVMb2FkZXIsIEpTQzo6SlNTdHJpbmcq
IG1vZHVsZU5hbWUsIEpTQzo6SlNWYWx1ZSBwYXJhbWV0ZXJzLCBjb25zdCBKU0M6OlNvdXJjZU9y
aWdpbiYgc291cmNlT3JpZ2luKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
LSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNET01XaW5k
b3dCYXNlKiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4oZ2xvYmFs
T2JqZWN0KTsKLSAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5kb2N1bWVudCgpKQotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IGRvY3VtZW50LT5tb2R1bGVMb2FkZXIoKS5pbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBtb2R1
bGVMb2FkZXIsIG1vZHVsZU5hbWUsIHBhcmFtZXRlcnMsIHNvdXJjZU9yaWdpbikpOwotICAgIEpT
Qzo6SlNJbnRlcm5hbFByb21pc2UqIHByb21pc2UgPSBKU0M6OkpTSW50ZXJuYWxQcm9taXNlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOwotICAg
IHNjb3BlLnJlbGVhc2UoKTsKLSAgICBwcm9taXNlLT5yZWplY3QoZ2xvYmFsT2JqZWN0LCBqc1Vu
ZGVmaW5lZCgpKTsKLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNDOjpKU09iamVjdCogSlNE
T01XaW5kb3dCYXNlOjptb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNNb2R1bGVMb2FkZXIqIG1vZHVs
ZUxvYWRlciwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpKU01vZHVsZVJlY29yZCogbW9k
dWxlUmVjb3JkLCBKU0M6OkpTVmFsdWUgc2NyaXB0RmV0Y2hlcikKLXsKLSAgICBKU0RPTVdpbmRv
d0Jhc2UqIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPihnbG9iYWxP
YmplY3QpOwotICAgIGlmIChSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gdGhpc09iamVjdC0+
d3JhcHBlZCgpLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudC0+bW9kdWxlTG9h
ZGVyKCkuY3JlYXRlSW1wb3J0TWV0YVByb3BlcnRpZXMoZ2xvYmFsT2JqZWN0LCBtb2R1bGVMb2Fk
ZXIsIG1vZHVsZUtleSwgbW9kdWxlUmVjb3JkLCBzY3JpcHRGZXRjaGVyKTsKLSAgICByZXR1cm4g
Y29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgpLCBnbG9iYWxPYmplY3QtPm51
bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXgg
M2VmOTgwZGQyN2Y2YjIxMzk4NzAwOGJhNDc2YzhjYTY5ZjJmMGI2NC4uNTE0MmIxYzdkYzI1YzIy
ZmU5Nzg5NWU3NWFlMjJlZjRkMWU1ODlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTk5LDEyICs5OSw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQ
T1JUIEpTRE9NV2luZG93QmFzZSA6IHB1YmxpYyBKU0RPTUdsb2JhbE9iamVjdCB7CiBwcml2YXRl
OgogICAgIHVzaW5nIFJlc3BvbnNlQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3Qg
Y2hhciosIHNpemVfdCk+OwogCi0gICAgc3RhdGljIEpTQzo6SWRlbnRpZmllciBtb2R1bGVMb2Fk
ZXJSZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlND
OjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6
SlNJbnRlcm5hbFByb21pc2UqIG1vZHVsZUxvYWRlckZldGNoKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUsIEpTQzo6
SlNWYWx1ZSk7Ci0gICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBtb2R1bGVMb2FkZXJFdmFsdWF0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpKU01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwg
SlNDOjpKU1ZhbHVlLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQ
cm9taXNlKiBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6SlNNb2R1bGVMb2FkZXIqLCBKU0M6OkpTU3RyaW5nKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBK
U0M6OlNvdXJjZU9yaWdpbiYpOwotICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBtb2R1bGVMb2Fk
ZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpK
U01vZHVsZUxvYWRlciosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU01vZHVsZVJlY29yZCosIEpTQzo6
SlNWYWx1ZSk7Ci0KICAgICBSZWZQdHI8RE9NV2luZG93PiBtX3dyYXBwZWQ7CiAgICAgUmVmUHRy
PEV2ZW50PiBtX2N1cnJlbnRFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggYjk5ZWEwYzA1MTY1
MDMzMDE0NTg5MTI2Y2U0MjQ5NWUxODg3NWM2ZS4uNDYzZDFiNTYyODc5OWQ5ZDM4YmZiMzQ4N2Iz
ZGFmNjNmNTk3MWU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNTksMTEgKzU5LDExIEBAIGNvbnN0IEds
b2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlCiAgICAgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsCiAgICAgJnF1ZXVl
TWljcm90YXNrVG9FdmVudExvb3AsCiAgICAgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRp
bWVvdXQsCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlCi0gICAgbnVs
bHB0ciwgLy8gbW9kdWxlTG9hZGVyUmVzb2x2ZQotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRl
ckZldGNoCi0gICAgbnVsbHB0ciwgLy8gbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3Bl
cnRpZXMKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJFdmFsdWF0ZQorICAgICZtb2R1bGVM
b2FkZXJJbXBvcnRNb2R1bGUsCisgICAgJm1vZHVsZUxvYWRlclJlc29sdmUsCisgICAgJm1vZHVs
ZUxvYWRlckZldGNoLAorICAgICZtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGll
cywKKyAgICAmbW9kdWxlTG9hZGVyRXZhbHVhdGUsCiAgICAgJnByb21pc2VSZWplY3Rpb25UcmFj
a2VyLAogICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJy
ZW50U2NyaXB0RXhlY3V0aW9uT3duZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCBlODZmODlkYTE0MTBi
YWM4M2U4MzNmOTUyNjM5OTFkNDc0ODE0ZDBhLi40MjRjNWJlZGRmOGU1MTZkYzRmNmYwYTE4YjRj
NjZmYTU5MTQyZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTQ5LDExICs0OSwxMSBAQCBjb25zdCBH
bG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFs
T2JqZWN0TWV0aG9kVGFibAogICAgICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLAogICAgIG51bGxw
dHIsIC8vIHF1ZXVlTWljcm90YXNrVG9FdmVudExvb3AKICAgICAmc2hvdWxkSW50ZXJydXB0U2Ny
aXB0QmVmb3JlVGltZW91dCwKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJJbXBvcnRNb2R1
bGUKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJSZXNvbHZlCi0gICAgbnVsbHB0ciwgLy8g
bW9kdWxlTG9hZGVyRmV0Y2gKLSAgICBudWxscHRyLCAvLyBtb2R1bGVMb2FkZXJDcmVhdGVJbXBv
cnRNZXRhUHJvcGVydGllcwotICAgIG51bGxwdHIsIC8vIG1vZHVsZUxvYWRlckV2YWx1YXRlCisg
ICAgJm1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSwKKyAgICAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwK
KyAgICAmbW9kdWxlTG9hZGVyRmV0Y2gsCisgICAgJm1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1l
dGFQcm9wZXJ0aWVzLAorICAgICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwKICAgICAmcHJvbWlzZVJl
amVjdGlvblRyYWNrZXIsCiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3As
CiAgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvTW9kdWxlU2NyaXB0TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE5MTBlOTQ5Yjdh
YzFhMzhlZGVlY2IwM2RlYjZlZTg5NGNjZWIwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0wLDAgKzEsNjUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVy
cmVkLmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU2NyaXB0RmV0Y2hlci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
OworCitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxNb2R1bGVT
Y3JpcHRMb2FkZXI+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Nb2R1bGVTY3JpcHRMb2FkZXIo
KSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIGNsZWFyQ2xpZW50KCkKKyAgICB7CisgICAgICAgIEFT
U0VSVChtX2NsaWVudCk7CisgICAgICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKKyAgICB9CisKKyAg
ICBKU0M6OlNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIoKSB7IHJldHVybiBtX3NjcmlwdEZl
dGNoZXIuZ2V0KCk7IH0KKyAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSB7
IHJldHVybiBtX3BhcmFtZXRlcnMuZ2V0KCk7IH0KKworcHJvdGVjdGVkOgorICAgIE1vZHVsZVNj
cmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQmIGNsaWVudCwgRGVmZXJyZWRQcm9t
aXNlJiBwcm9taXNlLCBKU0M6OlNjcmlwdEZldGNoZXImIHNjcmlwdEZldGNoZXIsIFJlZlB0cjxN
b2R1bGVGZXRjaFBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycykKKyAgICAgICAgOiBtX2NsaWVudCgm
Y2xpZW50KQorICAgICAgICAsIG1fcHJvbWlzZSgmcHJvbWlzZSkKKyAgICAgICAgLCBtX3Njcmlw
dEZldGNoZXIoc2NyaXB0RmV0Y2hlcikKKyAgICAgICAgLCBtX3BhcmFtZXRlcnMoV1RGTW92ZShw
YXJhbWV0ZXJzKSkKKyAgICB7CisgICAgfQorCisgICAgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50
KiBtX2NsaWVudDsKKyAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBtX3Byb21pc2U7CisgICAg
UmVmPEpTQzo6U2NyaXB0RmV0Y2hlcj4gbV9zY3JpcHRGZXRjaGVyOworICAgIFJlZlB0cjxNb2R1
bGVGZXRjaFBhcmFtZXRlcnM+IG1fcGFyYW1ldGVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL01vZHVsZVNjcmlw
dExvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvTW9kdWxlU2NyaXB0
TG9hZGVyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk5NWY0OGVlM2QxZTAyYzFkOGM5YzlkYTJiZDU4
MjM2ZjNiYTA3ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L01vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTW9kdWxlU2NyaXB0TG9hZGVyOworY2xhc3MgRGVmZXJy
ZWRQcm9taXNlOworCitjbGFzcyBNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgeworcHVibGljOgor
ICAgIHZpcnR1YWwgfk1vZHVsZVNjcmlwdExvYWRlckNsaWVudCgpID0gZGVmYXVsdDsKKworICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImLCBVUkwmJiwg
UmVmPERlZmVycmVkUHJvbWlzZT4pID0gMDsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGFhNWI4MGI1ODZiNzll
MGU1NzUwMWNkNTEwNzhkZjI1YTYyNWU1ZDkuLmQxZWU3MWI5YjU1ZjA1NmJjMzU2YTY5NmYzMDFl
ODRkYWRlNzdjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
TW9kdWxlTG9hZGVyLmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNhY2hlZE1vZHVs
ZVNjcmlwdExvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFNjcmlwdEZldGNoZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNl
RGVmZXJyZWQuaCIKQEAgLTQxLDYgKzQwLDkgQEAKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2Rl
LmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VJbnRlZ3JpdHkuaCIKICNpbmNsdWRlICJXZWJDb3Jl
SlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisj
aW5jbHVkZSAiV29ya2VyU2NyaXB0RmV0Y2hlci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdExv
YWRlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbXBsZXRpb24uaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTTW9kdWxlUmVjb3JkLmg+CkBAIC01Miw4ICs1NCw5IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotU2NyaXB0TW9kdWxlTG9hZGVyOjpTY3JpcHRNb2R1bGVMb2FkZXIoRG9jdW1l
bnQmIGRvY3VtZW50KQotICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKK1NjcmlwdE1vZHVsZUxv
YWRlcjo6U2NyaXB0TW9kdWxlTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IE93bmVyVHlwZSBvd25lclR5cGUpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1f
b3duZXJUeXBlKG93bmVyVHlwZSkKIHsKIH0KIApAQCAtNjgsNyArNzEsNyBAQCBzdGF0aWMgYm9v
bCBpc1Jvb3RNb2R1bGUoSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5KQogICAgIHJldHVy
biBpbXBvcnRlck1vZHVsZUtleS5pc1N5bWJvbCgpIHx8IGltcG9ydGVyTW9kdWxlS2V5LmlzVW5k
ZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gcmVzb2x2ZU1vZHVs
ZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgc3BlY2lmaWVyLCBj
b25zdCBVUkwmIGJhc2VVUkwpCitzdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVN
b2R1bGVTcGVjaWZpZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU2NyaXB0TW9k
dWxlTG9hZGVyOjpPd25lclR5cGUgb3duZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNwZWNpZmllciwg
Y29uc3QgVVJMJiBiYXNlVVJMKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNyZXNvbHZlLWEtbW9kdWxlLXNwZWNpZmllcgog
CkBAIC03OSw3ICs4MiwxMiBAQCBzdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVN
b2R1bGVTcGVjaWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdAogICAgIGlmICghc3Bl
Y2lmaWVyLnN0YXJ0c1dpdGgoJy8nKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4vIikgJiYg
IXNwZWNpZmllci5zdGFydHNXaXRoKCIuLi8iKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKG1ha2VTdHJpbmcoIk1vZHVsZSBzcGVjaWZpZXIsICciX3MsIHNwZWNpZmllciwgIicgZG9l
cyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiBSZWZlcmVuY2VkIGZy
b20gIl9zLCBiYXNlVVJMLnN0cmluZygpKSk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IGRvY3VtZW50
LmNvbXBsZXRlVVJMKHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgVVJMIHJlc3VsdDsKKyAgICBp
ZiAob3duZXJUeXBlID09IFNjcmlwdE1vZHVsZUxvYWRlcjo6T3duZXJUeXBlOjpEb2N1bWVudCkK
KyAgICAgICAgcmVzdWx0ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmNvbXBsZXRlVVJM
KHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBVUkwoYmFz
ZVVSTCwgc3BlY2lmaWVyKTsKKwogICAgIGlmICghcmVzdWx0LmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIk1vZHVsZSBuYW1lLCAnIl9zLCByZXN1
bHQuc3RyaW5nKCksICInIGRvZXMgbm90IHJlc29sdmUgdG8gYSB2YWxpZCBVUkwuIl9zKSk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKQEAgLTEwNyw3ICsxMTUsNyBAQCBKU0M6OklkZW50aWZpZXIgU2Ny
aXB0TW9kdWxlTG9hZGVyOjpyZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2Jq
ZWN0LAogICAgIFVSTCBiYXNlVVJMID0gcmVzcG9uc2VVUkxGcm9tUmVxdWVzdFVSTCgqanNHbG9i
YWxPYmplY3QsIGltcG9ydGVyTW9kdWxlS2V5KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwogCi0gICAgYXV0byByZXN1bHQgPSByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKG1f
ZG9jdW1lbnQsIHNwZWNpZmllciwgYmFzZVVSTCk7CisgICAgYXV0byByZXN1bHQgPSByZXNvbHZl
TW9kdWxlU3BlY2lmaWVyKG1fY29udGV4dCwgbV9vd25lclR5cGUsIHNwZWNpZmllciwgYmFzZVVS
TCk7CiAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgSlNDOjp0aHJvd1R5cGVFcnJvcihqc0ds
b2JhbE9iamVjdCwgc2NvcGUsIHJlc3VsdC5lcnJvcigpKTsKICAgICAgICAgcmV0dXJuIHsgfTsK
QEAgLTE2MSwxMyArMTY5LDE5IEBAIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVs
ZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPCiAgICAgaWYgKGF1
dG8qIHNjcmlwdEZldGNoUGFyYW1ldGVycyA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0M6OkpTU2Ny
aXB0RmV0Y2hQYXJhbWV0ZXJzKj4odm0sIHBhcmFtZXRlcnMpKQogICAgICAgICB0b3BMZXZlbEZl
dGNoUGFyYW1ldGVycyA9IHN0YXRpY19jYXN0PE1vZHVsZUZldGNoUGFyYW1ldGVycyo+KCZzY3Jp
cHRGZXRjaFBhcmFtZXRlcnMtPnBhcmFtZXRlcnMoKSk7CiAKLSAgICBhdXRvIGxvYWRlciA9IENh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlcjo6Y3JlYXRlKCp0aGlzLCBkZWZlcnJlZC5nZXQoKSwgKnN0
YXRpY19jYXN0PENhY2hlZFNjcmlwdEZldGNoZXIqPihKU0M6OmpzQ2FzdDxKU0M6OkpTU2NyaXB0
RmV0Y2hlcio+KHNjcmlwdEZldGNoZXIpLT5mZXRjaGVyKCkpLCBXVEZNb3ZlKHRvcExldmVsRmV0
Y2hQYXJhbWV0ZXJzKSk7Ci0gICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsKLSAg
ICBpZiAoIWxvYWRlci0+bG9hZChtX2RvY3VtZW50LCBjb21wbGV0ZWRVUkwpKSB7Ci0gICAgICAg
IGxvYWRlci0+Y2xlYXJDbGllbnQoKTsKLSAgICAgICAgbV9sb2FkZXJzLnJlbW92ZShXVEZNb3Zl
KGxvYWRlcikpOwotICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihkZWZlcnJl
ZC5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZCwgIkltcG9ydGluZyBh
IG1vZHVsZSBzY3JpcHQgZmFpbGVkLiJfcyk7Ci0gICAgICAgIHJldHVybiBqc1Byb21pc2U7Cisg
ICAgaWYgKG1fb3duZXJUeXBlID09IE93bmVyVHlwZTo6RG9jdW1lbnQpIHsKKyAgICAgICAgYXV0
byBsb2FkZXIgPSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXI6OmNyZWF0ZSgqdGhpcywgZGVmZXJy
ZWQuZ2V0KCksICpzdGF0aWNfY2FzdDxDYWNoZWRTY3JpcHRGZXRjaGVyKj4oSlNDOjpqc0Nhc3Q8
SlNDOjpKU1NjcmlwdEZldGNoZXIqPihzY3JpcHRGZXRjaGVyKS0+ZmV0Y2hlcigpKSwgV1RGTW92
ZSh0b3BMZXZlbEZldGNoUGFyYW1ldGVycykpOworICAgICAgICBtX2xvYWRlcnMuYWRkKGxvYWRl
ci5jb3B5UmVmKCkpOworICAgICAgICBpZiAoIWxvYWRlci0+bG9hZChkb3duY2FzdDxEb2N1bWVu
dD4obV9jb250ZXh0KSwgV1RGTW92ZShjb21wbGV0ZWRVUkwpKSkgeworICAgICAgICAgICAgbG9h
ZGVyLT5jbGVhckNsaWVudCgpOworICAgICAgICAgICAgbV9sb2FkZXJzLnJlbW92ZShXVEZNb3Zl
KGxvYWRlcikpOworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3b3JrRXJyb3IoZGVm
ZXJyZWQuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRp
bmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOworICAgICAgICAgICAgcmV0dXJuIGpzUHJv
bWlzZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gbG9hZGVyID0gV29y
a2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpjcmVhdGUoKnRoaXMsIGRlZmVycmVkLmdldCgpLCAqc3Rh
dGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hlcio+KEpTQzo6anNDYXN0PEpTQzo6SlNTY3JpcHRG
ZXRjaGVyKj4oc2NyaXB0RmV0Y2hlciktPmZldGNoZXIoKSksIFdURk1vdmUodG9wTGV2ZWxGZXRj
aFBhcmFtZXRlcnMpKTsKKyAgICAgICAgbV9sb2FkZXJzLmFkZChsb2FkZXIuY29weVJlZigpKTsK
KyAgICAgICAgbG9hZGVyLT5sb2FkKG1fY29udGV4dCwgV1RGTW92ZShjb21wbGV0ZWRVUkwpKTsK
ICAgICB9CiAKICAgICByZXR1cm4ganNQcm9taXNlOwpAQCAtMTc2LDcgKzE5MCw3IEBAIEpTQzo6
SlNJbnRlcm5hbFByb21pc2UqIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZmV0Y2goSlNDOjpKU0dsb2Jh
bE9iamVjdCoganNHbG9iYWxPCiBVUkwgU2NyaXB0TW9kdWxlTG9hZGVyOjptb2R1bGVVUkwoSlND
OjpKU0dsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBtb2R1bGVLZXlW
YWx1ZSkKIHsKICAgICBpZiAobW9kdWxlS2V5VmFsdWUuaXNTeW1ib2woKSkKLSAgICAgICAgcmV0
dXJuIG1fZG9jdW1lbnQudXJsKCk7CisgICAgICAgIHJldHVybiBtX2NvbnRleHQudXJsKCk7CiAK
ICAgICBBU1NFUlQobW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CiAgICAgcmV0dXJuIFVSTChV
UkwoKSwgYXNTdHJpbmcobW9kdWxlS2V5VmFsdWUpLT52YWx1ZSgmanNHbG9iYWxPYmplY3QpKTsK
QEAgLTE4Nyw4ICsyMDEsMTEgQEAgVVJMIFNjcmlwdE1vZHVsZUxvYWRlcjo6cmVzcG9uc2VVUkxG
cm9tUmVxdWVzdFVSTChKU0M6OkpTR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE8KICAgICBKU0M6OlZN
JiB2bSA9IGpzR2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCi0gICAgaWYgKGlzUm9vdE1vZHVsZShtb2R1bGVLZXlWYWx1ZSkpCi0g
ICAgICAgIHJldHVybiBtX2RvY3VtZW50LmJhc2VVUkwoKTsKKyAgICBpZiAoaXNSb290TW9kdWxl
KG1vZHVsZUtleVZhbHVlKSkgeworICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBl
OjpEb2N1bWVudCkKKyAgICAgICAgICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4obV9jb250
ZXh0KS5iYXNlVVJMKCk7CisgICAgICAgIHJldHVybiBtX2NvbnRleHQudXJsKCk7CisgICAgfQog
CiAgICAgQVNTRVJUKCFpc1Jvb3RNb2R1bGUobW9kdWxlS2V5VmFsdWUpKTsKICAgICBBU1NFUlQo
bW9kdWxlS2V5VmFsdWUuaXNTdHJpbmcoKSk7CkBAIC0yMTksOCArMjM2LDE0IEBAIEpTQzo6SlNW
YWx1ZSBTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqIGpz
R2xvYmFsT2JqZWN0LCBKCiAgICAgaWYgKCFzb3VyY2VVUkwuaXNWYWxpZCgpKQogICAgICAgICBy
ZXR1cm4gSlNDOjp0aHJvd1R5cGVFcnJvcihqc0dsb2JhbE9iamVjdCwgc2NvcGUsICJNb2R1bGUg
a2V5IGlzIGFuIGludmFsaWQgVVJMLiJfcyk7CiAKLSAgICBpZiAoYXV0byogZnJhbWUgPSBtX2Rv
Y3VtZW50LmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCkuZXZhbHVhdGVN
b2R1bGUoc291cmNlVVJMLCAqbW9kdWxlUmVjb3JkKTsKKyAgICBpZiAobV9vd25lclR5cGUgPT0g
T3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb3duY2Fz
dDxEb2N1bWVudD4obV9jb250ZXh0KS5mcmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZyYW1l
LT5zY3JpcHQoKS5ldmFsdWF0ZU1vZHVsZShzb3VyY2VVUkwsICptb2R1bGVSZWNvcmQpOworICAg
IH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChpczxXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZT4o
bV9jb250ZXh0KSk7CisgICAgICAgIGlmIChhdXRvKiBzY3JpcHQgPSBkb3duY2FzdDxXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZT4obV9jb250ZXh0KS5zY3JpcHQoKSkKKyAgICAgICAgICAgIHJl
dHVybiBzY3JpcHQtPmV2YWx1YXRlTW9kdWxlKCptb2R1bGVSZWNvcmQpOworICAgIH0KICAgICBy
ZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwogfQogCkBAIC0yNDgsMjMgKzI3MSw0MSBAQCBKU0M6
OkpTSW50ZXJuYWxQcm9taXNlKiBTY3JpcHRNb2R1bGVMb2FkZXI6OmltcG9ydE1vZHVsZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBqcwogICAgIFVSTCBiYXNlVVJMOwogICAgIFJlZlB0cjxKU0M6OlNj
cmlwdEZldGNoZXI+IHNjcmlwdEZldGNoZXI7CiAgICAgaWYgKHNvdXJjZU9yaWdpbi5pc051bGwo
KSkgewotICAgICAgICBiYXNlVVJMID0gbV9kb2N1bWVudC5iYXNlVVJMKCk7Ci0gICAgICAgIHNj
cmlwdEZldGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9kb2N1bWVudC5jaGFy
c2V0KCkpOworICAgICAgICBpZiAobV9vd25lclR5cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkg
eworICAgICAgICAgICAgYmFzZVVSTCA9IGRvd25jYXN0PERvY3VtZW50PihtX2NvbnRleHQpLmJh
c2VVUkwoKTsKKyAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVy
OjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KG1fY29udGV4dCkuY2hhcnNldCgpKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNkZWZhdWx0LWNsYXNzaWMtc2NyaXB0LWZldGNoLW9w
dGlvbnMKKyAgICAgICAgICAgIGJhc2VVUkwgPSBtX2NvbnRleHQudXJsKCk7CisgICAgICAgICAg
ICBzY3JpcHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4sIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNj
cmlwdCwgUmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nKTsKKyAgICAgICAgfQogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGJhc2VVUkwgPSBVUkwoVVJMKCksIHNvdXJjZU9yaWdpbi5zdHJpbmcoKSk7
CiAgICAgICAgIGlmICghYmFzZVVSTC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVq
ZWN0UHJvbWlzZShnbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgIkltcG9ydGVyIG1vZHVsZSBrZXkg
aXMgbm90IGEgU3ltYm9sIG9yIGEgU3RyaW5nLiJfcyk7CiAKLSAgICAgICAgaWYgKHNvdXJjZU9y
aWdpbi5mZXRjaGVyKCkpCisgICAgICAgIGlmIChzb3VyY2VPcmlnaW4uZmV0Y2hlcigpKSB7CiAg
ICAgICAgICAgICBzY3JpcHRGZXRjaGVyID0gc291cmNlT3JpZ2luLmZldGNoZXIoKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgc2NyaXB0RmV0Y2hlciA9IENhY2hlZFNjcmlwdEZldGNoZXI6
OmNyZWF0ZShtX2RvY3VtZW50LmNoYXJzZXQoKSk7CisgICAgICAgICAgICAvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYW4taW1w
b3J0KCktbW9kdWxlLXNjcmlwdC1ncmFwaAorICAgICAgICAgICAgLy8gRGVzdGluYXRpb24gc2hv
dWxkIGJlICJzY3JpcHQiIGZvciBkeW5hbWljLWltcG9ydC4KKyAgICAgICAgICAgIGlmIChtX293
bmVyVHlwZSA9PSBPd25lclR5cGU6Oldvcmtlck9yV29ya2xldCkgeworICAgICAgICAgICAgICAg
IGF1dG8mIGZldGNoZXIgPSBzdGF0aWNfY2FzdDxXb3JrZXJTY3JpcHRGZXRjaGVyJj4oKnNjcmlw
dEZldGNoZXIpOworICAgICAgICAgICAgICAgIHNjcmlwdEZldGNoZXIgPSBXb3JrZXJTY3JpcHRG
ZXRjaGVyOjpjcmVhdGUoZmV0Y2hlci5jcmVkZW50aWFscygpLCBGZXRjaE9wdGlvbnM6OkRlc3Rp
bmF0aW9uOjpTY3JpcHQsIGZldGNoZXIucmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXNjcmlwdEZldGNoZXIpIHsKKyAgICAgICAgICAg
IGlmIChtX293bmVyVHlwZSA9PSBPd25lclR5cGU6OkRvY3VtZW50KQorICAgICAgICAgICAgICAg
IHNjcmlwdEZldGNoZXIgPSBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUoZG93bmNhc3Q8RG9j
dW1lbnQ+KG1fY29udGV4dCkuY2hhcnNldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBzY3JpcHRGZXRjaGVyID0gV29ya2VyU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKEZldGNo
T3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4sIEZldGNoT3B0aW9uczo6RGVzdGluYXRp
b246OlNjcmlwdCwgUmVmZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nKTsKKyAgICAgICAgfQogICAg
IH0KICAgICBBU1NFUlQoYmFzZVVSTC5pc1ZhbGlkKCkpOwogICAgIEFTU0VSVChzY3JpcHRGZXRj
aGVyKTsKIAogICAgIGF1dG8gc3BlY2lmaWVyID0gbW9kdWxlTmFtZS0+dmFsdWUoanNHbG9iYWxP
YmplY3QpOwotICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihtX2RvY3Vt
ZW50LCBzcGVjaWZpZXIsIGJhc2VVUkwpOworICAgIGF1dG8gcmVzdWx0ID0gcmVzb2x2ZU1vZHVs
ZVNwZWNpZmllcihtX2NvbnRleHQsIG1fb3duZXJUeXBlLCBzcGVjaWZpZXIsIGJhc2VVUkwpOwog
ICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4gcmVqZWN0UHJvbWlzZShnbG9iYWxPYmpl
Y3QsIFR5cGVFcnJvciwgcmVzdWx0LmVycm9yKCkpOwogCkBAIC0yODgsNjIgKzMyOSwxMDYgQEAg
SlNDOjpKU09iamVjdCogU2NyaXB0TW9kdWxlTG9hZGVyOjpjcmVhdGVJbXBvcnRNZXRhUHJvcGVy
dGllcyhKU0M6OkpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gbWV0YVByb3BlcnRpZXM7CiB9CiAK
LXZvaWQgU2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRNb2R1bGVTY3Jp
cHRMb2FkZXImIGxvYWRlciwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZSkKK3ZvaWQg
U2NyaXB0TW9kdWxlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChNb2R1bGVTY3JpcHRMb2FkZXImIG1v
ZHVsZVNjcmlwdExvYWRlciwgVVJMJiYgc291cmNlVVJMLCBSZWY8RGVmZXJyZWRQcm9taXNlPiBw
cm9taXNlKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L3dlYmFwcGFwaXMuaHRtbCNmZXRjaC1hLXNpbmdsZS1tb2R1bGUtc2NyaXB0CiAKLSAgICBVUkwg
c291cmNlVVJMID0gbG9hZGVyLnNvdXJjZVVSTCgpOwotICAgIGlmICghbV9sb2FkZXJzLnJlbW92
ZSgmbG9hZGVyKSkKKyAgICBpZiAoIW1fbG9hZGVycy5yZW1vdmUoJm1vZHVsZVNjcmlwdExvYWRl
cikpCiAgICAgICAgIHJldHVybjsKLSAgICBsb2FkZXIuY2xlYXJDbGllbnQoKTsKKyAgICBtb2R1
bGVTY3JpcHRMb2FkZXIuY2xlYXJDbGllbnQoKTsKKworICAgIGF1dG8gY2Fub25pY2FsaXplQW5k
UmVnaXN0ZXJSZXNwb25zZVVSTCA9IFsmXSAoVVJMIHJlc3BvbnNlVVJMLCBib29sIGhhc1JlZGly
ZWN0aW9ucywgUmVzb3VyY2VSZXNwb25zZTo6U291cmNlIHNvdXJjZSkgeworICAgICAgICAvLyBJ
ZiB3ZSBkbyBub3QgaGF2ZSByZWRpcmVjdGlvbiwgd2UgbXVzdCByZXNlcnZlIHRoZSBzb3VyY2Ug
VVJMJ3MgZnJhZ21lbnQgZXhwbGljaXRseSBoZXJlIHNpbmNlIFJlc291cmNlUmVzcG9uc2U6OnVy
bCgpIGlzIHRoZSBvbmUgd2hlbiB3ZSBmaXJzdCBjYWNoZSBpdCB0byBNZW1vcnlDYWNoZS4KKyAg
ICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRpcmVj
dGlvbnMuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTg0MjAKKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMDQ5MAorICAgICAgICBpZiAoIWhhc1JlZGlyZWN0aW9ucyAmJiBzb3VyY2UgIT0gUmVz
b3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKSB7CisgICAgICAgICAgICBpZiAo
c291cmNlVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIHJlc3Bv
bnNlVVJMLnNldEZyYWdtZW50SWRlbnRpZmllcihzb3VyY2VVUkwuZnJhZ21lbnRJZGVudGlmaWVy
KCkpOworICAgICAgICB9CiAKLSAgICBhdXRvJiBjYWNoZWRTY3JpcHQgPSAqbG9hZGVyLmNhY2hl
ZFNjcmlwdCgpOworICAgICAgICBtX3JlcXVlc3RVUkxUb1Jlc3BvbnNlVVJMTWFwLmFkZChzb3Vy
Y2VVUkwuc3RyaW5nKCksIHJlc3BvbnNlVVJMKTsKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlVVJM
OworICAgIH07CiAKLSAgICBpZiAoY2FjaGVkU2NyaXB0LnJlc291cmNlRXJyb3IoKS5pc0FjY2Vz
c0NvbnRyb2woKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCAiQ3Jvc3Mt
b3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmlu
ZyBwb2xpY3kuIl9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAobV9vd25lclR5
cGUgPT0gT3duZXJUeXBlOjpEb2N1bWVudCkgeworICAgICAgICBhdXRvJiBsb2FkZXIgPSBzdGF0
aWNfY2FzdDxDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXImPihtb2R1bGVTY3JpcHRMb2FkZXIpOwor
ICAgICAgICBhdXRvJiBjYWNoZWRTY3JpcHQgPSAqbG9hZGVyLmNhY2hlZFNjcmlwdCgpOwogCi0g
ICAgaWYgKGNhY2hlZFNjcmlwdC5lcnJvck9jY3VycmVkKCkpIHsKLSAgICAgICAgcmVqZWN0VG9Q
cm9wYWdhdGVOZXR3b3JrRXJyb3IoKnByb21pc2UsIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6Oldh
c0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iX3MpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQorICAgICAgICBpZiAoY2FjaGVkU2NyaXB0LnJlc291cmNlRXJyb3Io
KS5pc0FjY2Vzc0NvbnRyb2woKSkgeworICAgICAgICAgICAgcmVqZWN0VG9Qcm9wYWdhdGVOZXR3
b3JrRXJyb3IocHJvbWlzZS5nZXQoKSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3Jl
ZCwgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291
cmNlIFNoYXJpbmcgcG9saWN5LiJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
IAotICAgIGlmIChjYWNoZWRTY3JpcHQud2FzQ2FuY2VsZWQoKSkgewotICAgICAgICByZWplY3RU
b1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcigqcHJvbWlzZSwgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6
V2FzQ2FuY2VsZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGlzIGNhbmNlbGVkLiJfcyk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgIGlmIChjYWNoZWRTY3JpcHQuZXJyb3JP
Y2N1cnJlZCgpKSB7CisgICAgICAgICAgICByZWplY3RUb1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihw
cm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kOjpXYXNFcnJvcmVkLCAiSW1wb3J0
aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQogCi0gICAgaWYgKCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3Jp
cHRNSU1FVHlwZShjYWNoZWRTY3JpcHQucmVzcG9uc2UoKS5taW1lVHlwZSgpKSkgewotICAgICAg
ICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0
bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAotICAgICAgICAvLyBUaGUgcmVzdWx0IG9m
IGV4dHJhY3RpbmcgYSBNSU1FIHR5cGUgZnJvbSByZXNwb25zZSdzIGhlYWRlciBsaXN0IChpZ25v
cmluZyBwYXJhbWV0ZXJzKSBpcyBub3QgYSBKYXZhU2NyaXB0IE1JTUUgdHlwZS4KLSAgICAgICAg
Ly8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBkb2Vz
IG5vdCBpbmNsdWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBzY3Jp
cHRzIHdpbGwgZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlNRSB0
eXBlLgotICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwg
Y2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkubWltZVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2
YVNjcmlwdCBNSU1FIHR5cGUuIikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICBp
ZiAoY2FjaGVkU2NyaXB0Lndhc0NhbmNlbGVkKCkpIHsKKyAgICAgICAgICAgIHJlamVjdFRvUHJv
cGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVyZUtpbmQ6
Oldhc0NhbmNlbGVkLCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBpcyBjYW5jZWxlZC4iX3Mp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICBpZiAoYXV0byogcGFyYW1l
dGVycyA9IGxvYWRlci5wYXJhbWV0ZXJzKCkpIHsKLSAgICAgICAgaWYgKCFtYXRjaEludGVncml0
eU1ldGFkYXRhKGNhY2hlZFNjcmlwdCwgcGFyYW1ldGVycy0+aW50ZWdyaXR5KCkpKSB7Ci0gICAg
ICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCJDYW5ub3QgbG9h
ZCBzY3JpcHQgIiwgaW50ZWdyaXR5TWlzbWF0Y2hEZXNjcmlwdGlvbihjYWNoZWRTY3JpcHQsIHBh
cmFtZXRlcnMtPmludGVncml0eSgpKSkpOworICAgICAgICBpZiAoIU1JTUVUeXBlUmVnaXN0cnk6
OmlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGNhY2hlZFNjcmlwdC5yZXNwb25zZSgpLm1p
bWVUeXBlKCkpKSB7CisgICAgICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5nbGUtbW9kdWxlLXNjcmlwdAor
ICAgICAgICAgICAgLy8gVGhlIHJlc3VsdCBvZiBleHRyYWN0aW5nIGEgTUlNRSB0eXBlIGZyb20g
cmVzcG9uc2UncyBoZWFkZXIgbGlzdCAoaWdub3JpbmcgcGFyYW1ldGVycykgaXMgbm90IGEgSmF2
YVNjcmlwdCBNSU1FIHR5cGUuCisgICAgICAgICAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25z
LCBmZXRjaGluZyBhIGNsYXNzaWMgc2NyaXB0IGRvZXMgbm90IGluY2x1ZGUgTUlNRSB0eXBlIGNo
ZWNraW5nLiBJbiBjb250cmFzdCwgbW9kdWxlIHNjcmlwdHMgd2lsbCBmYWlsIHRvIGxvYWQgaWYg
dGhleSBhcmUgbm90IG9mIGEgY29ycmVjdCBNSU1FIHR5cGUuCisgICAgICAgICAgICBwcm9taXNl
LT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCInIiwgY2FjaGVkU2NyaXB0LnJlc3BvbnNl
KCkubWltZVR5cGUoKSwgIicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIikp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgfQogCi0gICAgVVJMIHJlc3Bv
bnNlVVJMID0gY2FjaGVkU2NyaXB0LnJlc3BvbnNlKCkudXJsKCk7Ci0gICAgLy8gSWYgd2UgZG8g
bm90IGhhdmUgcmVkaXJlY3Rpb24sIHdlIG11c3QgcmVzZXJ2ZSB0aGUgc291cmNlIFVSTCdzIGZy
YWdtZW50IGV4cGxpY2l0bHkgaGVyZSBzaW5jZSBSZXNvdXJjZVJlc3BvbnNlOjp1cmwoKSBpcyB0
aGUgb25lIHdoZW4gd2UgZmlyc3QgY2FjaGUgaXQgdG8gTWVtb3J5Q2FjaGUuCi0gICAgLy8gRklY
TUU6IFdlIHNob3VsZCB0cmFjayBmcmFnbWVudHMgdGhyb3VnaCByZWRpcmVjdGlvbnMuCi0gICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODQyMAotICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0OTAKLSAgICBpZiAo
IWNhY2hlZFNjcmlwdC5oYXNSZWRpcmVjdGlvbnMoKSAmJiBjYWNoZWRTY3JpcHQucmVzcG9uc2Uo
KS5zb3VyY2UoKSAhPSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpIHsK
LSAgICAgICAgaWYgKHNvdXJjZVVSTC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkKLSAgICAgICAg
ICAgIHJlc3BvbnNlVVJMLnNldEZyYWdtZW50SWRlbnRpZmllcihzb3VyY2VVUkwuZnJhZ21lbnRJ
ZGVudGlmaWVyKCkpOwotICAgIH0KKyAgICAgICAgaWYgKGF1dG8qIHBhcmFtZXRlcnMgPSBsb2Fk
ZXIucGFyYW1ldGVycygpKSB7CisgICAgICAgICAgICBpZiAoIW1hdGNoSW50ZWdyaXR5TWV0YWRh
dGEoY2FjaGVkU2NyaXB0LCBwYXJhbWV0ZXJzLT5pbnRlZ3JpdHkoKSkpIHsKKyAgICAgICAgICAg
ICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yLCBtYWtlU3RyaW5nKCJDYW5ub3QgbG9hZCBz
Y3JpcHQgIiwgaW50ZWdyaXR5TWlzbWF0Y2hEZXNjcmlwdGlvbihjYWNoZWRTY3JpcHQsIHBhcmFt
ZXRlcnMtPmludGVncml0eSgpKSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQogCi0gICAgbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcC5hZGQo
c291cmNlVVJMLnN0cmluZygpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSk7Ci0gICAgcHJvbWlzZS0+
cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9NR2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVj
dCkgewotICAgICAgICByZXR1cm4gSlNDOjpKU1NvdXJjZUNvZGU6OmNyZWF0ZShqc0dsb2JhbE9i
amVjdC52bSgpLAotICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291cmNlQ29k
ZSB7ICZjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUs
IGxvYWRlci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUoKSB9KTsKLSAgICB9KTsKKyAg
ICAgICAgY2Fub25pY2FsaXplQW5kUmVnaXN0ZXJSZXNwb25zZVVSTChjYWNoZWRTY3JpcHQucmVz
cG9uc2UoKS51cmwoKSwgY2FjaGVkU2NyaXB0Lmhhc1JlZGlyZWN0aW9ucygpLCBjYWNoZWRTY3Jp
cHQucmVzcG9uc2UoKS5zb3VyY2UoKSk7CisgICAgICAgIHByb21pc2UtPnJlc29sdmVXaXRoQ2Fs
bGJhY2soWyZdIChKU0RPTUdsb2JhbE9iamVjdCYganNHbG9iYWxPYmplY3QpIHsKKyAgICAgICAg
ICAgIHJldHVybiBKU0M6OkpTU291cmNlQ29kZTo6Y3JlYXRlKGpzR2xvYmFsT2JqZWN0LnZtKCks
CisgICAgICAgICAgICAgICAgSlNDOjpTb3VyY2VDb2RlIHsgU2NyaXB0U291cmNlQ29kZSB7ICZj
YWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUsIGxvYWRl
ci5zY3JpcHRGZXRjaGVyKCkgfS5qc1NvdXJjZUNvZGUoKSB9KTsKKyAgICAgICAgfSk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgYXV0byYgbG9hZGVyID0gc3RhdGljX2Nhc3Q8V29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyJj4obW9kdWxlU2NyaXB0TG9hZGVyKTsKKyAgICAgICAgYXV0byYgd29ya2Vy
U2NyaXB0TG9hZGVyID0gbG9hZGVyLnNjcmlwdExvYWRlcigpOworCisgICAgICAgIGlmICh3b3Jr
ZXJTY3JpcHRMb2FkZXIuZmFpbGVkKCkpIHsKKyAgICAgICAgICAgIGlmICh3b3JrZXJTY3JpcHRM
b2FkZXIuZXJyb3IoKS5pc0FjY2Vzc0NvbnRyb2woKSkgeworICAgICAgICAgICAgICAgIHJlamVj
dFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVsZUZldGNoRmFpbHVy
ZUtpbmQ6Oldhc0Vycm9yZWQsICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENy
b3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iX3MpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHdvcmtlclNjcmlwdExv
YWRlci5lcnJvcigpLmlzQ2FuY2VsbGF0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICByZWplY3RU
b1Byb3BhZ2F0ZU5ldHdvcmtFcnJvcihwcm9taXNlLmdldCgpLCBNb2R1bGVGZXRjaEZhaWx1cmVL
aW5kOjpXYXNDYW5jZWxlZCwgIkltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgaXMgY2FuY2VsZWQu
Il9zKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIHJlamVjdFRvUHJvcGFnYXRlTmV0d29ya0Vycm9yKHByb21pc2UuZ2V0KCksIE1vZHVsZUZl
dGNoRmFpbHVyZUtpbmQ6Oldhc0Vycm9yZWQsICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZh
aWxlZC4iX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KCFNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZSh3b3JrZXJT
Y3JpcHRMb2FkZXIucmVzcG9uc2VNSU1FVHlwZSgpKSkgeworICAgICAgICAgICAgLy8gaHR0cHM6
Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEt
c2luZ2xlLW1vZHVsZS1zY3JpcHQKKyAgICAgICAgICAgIC8vIFRoZSByZXN1bHQgb2YgZXh0cmFj
dGluZyBhIE1JTUUgdHlwZSBmcm9tIHJlc3BvbnNlJ3MgaGVhZGVyIGxpc3QgKGlnbm9yaW5nIHBh
cmFtZXRlcnMpIGlzIG5vdCBhIEphdmFTY3JpcHQgTUlNRSB0eXBlLgorICAgICAgICAgICAgLy8g
Rm9yIGhpc3RvcmljYWwgcmVhc29ucywgZmV0Y2hpbmcgYSBjbGFzc2ljIHNjcmlwdCBkb2VzIG5v
dCBpbmNsdWRlIE1JTUUgdHlwZSBjaGVja2luZy4gSW4gY29udHJhc3QsIG1vZHVsZSBzY3JpcHRz
IHdpbGwgZmFpbCB0byBsb2FkIGlmIHRoZXkgYXJlIG5vdCBvZiBhIGNvcnJlY3QgTUlNRSB0eXBl
LgorICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5cGVFcnJvciwgbWFrZVN0cmluZygiJyIs
IHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25zZU1JTUVUeXBlKCksICInIGlzIG5vdCBhIHZhbGlk
IEphdmFTY3JpcHQgTUlNRSB0eXBlLiIpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChhdXRvKiBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKSkg
eworICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyB0b3AtbGV2ZWwtbW9kdWxlLCB0aGVuIHdlIGV4
dHJhY3QgcmVmZXJyZXItcG9saWN5IGFuZCBhcHBseSB0byB0aGUgZGVwZW5kZW50IG1vZHVsZXMu
CisgICAgICAgICAgICBpZiAocGFyYW1ldGVycy0+aXNUb3BMZXZlbE1vZHVsZSgpKQorICAgICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihsb2FkZXIuc2NyaXB0
RmV0Y2hlcigpKS5zZXRSZWZlcnJlclBvbGljeShsb2FkZXIucmVmZXJyZXJQb2xpY3koKSk7Cisg
ICAgICAgIH0KKworICAgICAgICBVUkwgcmVzcG9uc2VVUkwgPSBjYW5vbmljYWxpemVBbmRSZWdp
c3RlclJlc3BvbnNlVVJMKHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25zZVVSTCgpLCB3b3JrZXJT
Y3JpcHRMb2FkZXIuaXNSZWRpcmVjdGVkKCksIHdvcmtlclNjcmlwdExvYWRlci5yZXNwb25zZVNv
dXJjZSgpKTsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZVdpdGhDYWxsYmFjayhbJl0gKEpTRE9N
R2xvYmFsT2JqZWN0JiBqc0dsb2JhbE9iamVjdCkgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6
SlNTb3VyY2VDb2RlOjpjcmVhdGUoanNHbG9iYWxPYmplY3Qudm0oKSwKKyAgICAgICAgICAgICAg
ICBKU0M6OlNvdXJjZUNvZGUgeyBTY3JpcHRTb3VyY2VDb2RlIHsgd29ya2VyU2NyaXB0TG9hZGVy
LnNjcmlwdCgpLCBXVEZNb3ZlKHJlc3BvbnNlVVJMKSwgeyB9LCBKU0M6OlNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6TW9kdWxlLCBsb2FkZXIuc2NyaXB0RmV0Y2hlcigpIH0uanNTb3VyY2VDb2Rl
KCkgfSk7CisgICAgICAgIH0pOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuaAppbmRleCBkZTI5ZDJmNGJmMDk2YjYwYzM2
OTk4MDMxNmMxNDg2YjI4MmFiZjA5Li5kZjM0ZDU1MWExMWNkOThmNGUyMzZhMmFhMWY0ODI3OWQ5
NjRjNjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1
bGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVM
b2FkZXIuaApAQCAtMjUsOCArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNh
Y2hlZE1vZHVsZVNjcmlwdExvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZE1vZHVsZVNjcmlwdExv
YWRlckNsaWVudC5oIgorI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUg
Ik1vZHVsZVNjcmlwdExvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
Q0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgpAQCAtNDUsMTYgKzQ1LDE3IEBAIGNsYXNzIFNvdXJjZU9yaWdpbjsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKIGNsYXNzIEpTRE9NR2xvYmFsT2Jq
ZWN0OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotY2xhc3MgU2NyaXB0TW9kdWxl
TG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBDYWNoZWRNb2R1bGVTY3JpcHRMb2FkZXJDbGllbnQgewor
Y2xhc3MgU2NyaXB0TW9kdWxlTG9hZGVyIGZpbmFsIDogcHJpdmF0ZSBNb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNjcmlwdE1vZHVsZUxvYWRlcik7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFNjcmlwdE1v
ZHVsZUxvYWRlcihEb2N1bWVudCYpOworICAgIGVudW0gY2xhc3MgT3duZXJUeXBlIDogdWludDhf
dCB7IERvY3VtZW50LCBXb3JrZXJPcldvcmtsZXQgfTsKKyAgICBleHBsaWNpdCBTY3JpcHRNb2R1
bGVMb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE93bmVyVHlwZSk7CiAgICAgflNjcmlw
dE1vZHVsZUxvYWRlcigpOwogCi0gICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgeyByZXR1cm4gbV9k
b2N1bWVudDsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQoKSB7IHJldHVy
biBtX2NvbnRleHQ7IH0KIAogICAgIEpTQzo6SWRlbnRpZmllciByZXNvbHZlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZU5hbWUs
IEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSwgSlNDOjpKU1ZhbHVlIHNjcmlwdEZldGNo
ZXIpOwogICAgIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIGZldGNoKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkpTTW9kdWxlTG9hZGVyKiwgSlNDOjpKU1ZhbHVlIG1vZHVsZUtleSwgSlNDOjpK
U1ZhbHVlIHBhcmFtZXRlcnMsIEpTQzo6SlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKQEAgLTYzLDEz
ICs2NCwxNSBAQCBjbGFzcyBTY3JpcHRNb2R1bGVMb2FkZXIgZmluYWwgOiBwcml2YXRlIENhY2hl
ZE1vZHVsZVNjcmlwdExvYWRlckNsaWVudCB7CiAgICAgSlNDOjpKU09iamVjdCogY3JlYXRlSW1w
b3J0TWV0YVByb3BlcnRpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNNb2R1bGVMb2Fk
ZXIqLCBKU0M6OkpTVmFsdWUsIEpTQzo6SlNNb2R1bGVSZWNvcmQqLCBKU0M6OkpTVmFsdWUpOwog
CiBwcml2YXRlOgotICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkTW9kdWxlU2NyaXB0TG9h
ZGVyJiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4pIGZpbmFsOworICAgIHZvaWQgbm90aWZ5Rmlu
aXNoZWQoTW9kdWxlU2NyaXB0TG9hZGVyJiwgVVJMJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+KSBm
aW5hbDsKKwogICAgIFVSTCBtb2R1bGVVUkwoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNW
YWx1ZSk7CiAgICAgVVJMIHJlc3BvbnNlVVJMRnJvbVJlcXVlc3RVUkwoSlNDOjpKU0dsb2JhbE9i
amVjdCYsIEpTQzo6SlNWYWx1ZSk7CiAKLSAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKKyAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBtX2NvbnRleHQ7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFVS
TD4gbV9yZXF1ZXN0VVJMVG9SZXNwb25zZVVSTE1hcDsKLSAgICBIYXNoU2V0PFJlZjxDYWNoZWRN
b2R1bGVTY3JpcHRMb2FkZXI+PiBtX2xvYWRlcnM7CisgICAgSGFzaFNldDxSZWY8TW9kdWxlU2Ny
aXB0TG9hZGVyPj4gbV9sb2FkZXJzOworICAgIE93bmVyVHlwZSBtX293bmVyVHlwZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdFNvdXJjZUNvZGUuaAppbmRleCBjNzA0NjI2ZmI3MzNkYjQ3MmJkYTUwMjM2MjQxYTZlNzQw
ZTI3ODJiLi4xMGZhN2U4YjQ0OWM4Yjg0OWViMzdjYzFmMmM4NjZmYTg5M2FhZDZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCkBAIC01Nyw3ICs1
Nyw3IEBAIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGUgewogICAgIHsKICAgICB9CiAKLSAgICBTY3Jp
cHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQ
b3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291
cmNlVHlwZSwgUmVmPENhY2hlZFNjcmlwdEZldGNoZXI+JiYgc2NyaXB0RmV0Y2hlcikKKyAgICBT
Y3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRl
eHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUg
c291cmNlVHlwZSwgUmVmPEpTQzo6U2NyaXB0RmV0Y2hlcj4mJiBzY3JpcHRGZXRjaGVyKQogICAg
ICAgICA6IG1fcHJvdmlkZXIoSlNDOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJj
ZSwgSlNDOjpTb3VyY2VPcmlnaW4geyB1cmwsIFdURk1vdmUoc2NyaXB0RmV0Y2hlcikgfSwgdXJs
LnN0cmluZygpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSkKICAgICAgICAgLCBtX2NvZGUo
bV9wcm92aWRlci5jb3B5UmVmKCksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCks
IHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSkKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mODcwYTBkMWRhMzM4NTAwZjhlNGQ5MjY3MjNlZjU0MDlmZmNmNTliCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyTW9kdWxl
U2NyaXB0TG9hZGVyLmNwcApAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIuaCIKKworI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNoZXIuaCIKKyNpbmNsdWRlICJET01XcmFwcGVyV29ybGQu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1
ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJhbWV0
ZXJzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCisjaW5jbHVkZSAiU2Ny
aXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdE1vZHVsZUxvYWRlci5oIgorI2luY2x1
ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKKyNpbmNsdWRlICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgi
CisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUmVmPFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcj4gV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVy
OjpjcmVhdGUoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBjbGllbnQsIERlZmVycmVkUHJvbWlz
ZSYgcHJvbWlzZSwgV29ya2VyU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgUmVmUHRyPE1v
ZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihjbGllbnQsIHByb21pc2UsIHNjcmlwdEZl
dGNoZXIsIFdURk1vdmUocGFyYW1ldGVycykpKTsKK30KKworV29ya2VyTW9kdWxlU2NyaXB0TG9h
ZGVyOjpXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIoTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50JiBj
bGllbnQsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgV29ya2VyU2NyaXB0RmV0Y2hlciYgc2Ny
aXB0RmV0Y2hlciwgUmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzKQor
ICAgIDogTW9kdWxlU2NyaXB0TG9hZGVyKGNsaWVudCwgcHJvbWlzZSwgc2NyaXB0RmV0Y2hlciwg
V1RGTW92ZShwYXJhbWV0ZXJzKSkKKyAgICAsIG1fc2NyaXB0TG9hZGVyKFdvcmtlclNjcmlwdExv
YWRlcjo6Y3JlYXRlKCkpCit7Cit9CisKK1dvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6fldvcmtl
ck1vZHVsZVNjcmlwdExvYWRlcigpCit7CisgICAgbV9zY3JpcHRMb2FkZXItPmNhbmNlbCgpOwor
fQorCitib29sIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcjo6bG9hZChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBVUkwmJiBzb3VyY2VVUkwpCit7CisgICAgbV9zb3VyY2VVUkwgPSBX
VEZNb3ZlKHNvdXJjZVVSTCk7CisKKyAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IG1fc291
cmNlVVJMIH07CisKKyAgICBGZXRjaE9wdGlvbnMgZmV0Y2hPcHRpb25zOworICAgIGZldGNoT3B0
aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzOworICAgIGZldGNoT3B0aW9ucy5j
YWNoZSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQ7CisgICAgZmV0Y2hPcHRpb25zLnJl
ZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93OworICAgIGZldGNoT3B0aW9u
cy5jcmVkZW50aWFscyA9IHN0YXRpY19jYXN0PFdvcmtlclNjcmlwdEZldGNoZXImPihzY3JpcHRG
ZXRjaGVyKCkpLmNyZWRlbnRpYWxzKCk7CisgICAgZmV0Y2hPcHRpb25zLmRlc3RpbmF0aW9uID0g
c3RhdGljX2Nhc3Q8V29ya2VyU2NyaXB0RmV0Y2hlciY+KHNjcmlwdEZldGNoZXIoKSkuZGVzdGlu
YXRpb24oKTsKKyAgICBmZXRjaE9wdGlvbnMucmVmZXJyZXJQb2xpY3kgPSBzdGF0aWNfY2FzdDxX
b3JrZXJTY3JpcHRGZXRjaGVyJj4oc2NyaXB0RmV0Y2hlcigpKS5yZWZlcnJlclBvbGljeSgpOwor
ICAgIGF1dG8gY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgPSBjb250ZXh0LnNob3Vs
ZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpID8gQ29udGVudFNlY3VyaXR5
UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSA6IENvbnRlbnRTZWN1cml0eVBvbGljeUVu
Zm9yY2VtZW50OjpFbmZvcmNlQ2hpbGRTcmNEaXJlY3RpdmU7CisKKyAgICAvLyBodHRwczovL2h0
bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZmV0Y2gtYS1zaW5n
bGUtbW9kdWxlLXNjcmlwdAorICAgIC8vIElmIGRlc3RpbmF0aW9uIGlzICJ3b3JrZXIiIG9yICJz
aGFyZWR3b3JrZXIiIGFuZCB0aGUgdG9wLWxldmVsIG1vZHVsZSBmZXRjaCBmbGFnIGlzIHNldCwg
dGhlbiBzZXQgcmVxdWVzdCdzIG1vZGUgdG8gInNhbWUtb3JpZ2luIi4KKyAgICBpZiAoZmV0Y2hP
cHRpb25zLmRlc3RpbmF0aW9uID09IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OldvcmtlciB8
fCBmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6
U2VydmljZXdvcmtlcikgeworICAgICAgICBpZiAocGFyYW1ldGVycygpICYmIHBhcmFtZXRlcnMo
KS0+aXNUb3BMZXZlbE1vZHVsZSgpKQorICAgICAgICAgICAgZmV0Y2hPcHRpb25zLm1vZGUgPSBG
ZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW47CisgICAgfQorCisgICAgbV9zY3JpcHRMb2Fk
ZXItPmxvYWRBc3luY2hyb25vdXNseShjb250ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KGZldGNoT3B0aW9ucyksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNl
V29ya2Vyc01vZGU6OkFsbCwgKnRoaXMsIHRhc2tNb2RlKCkpOworICAgIHJldHVybiB0cnVlOwor
fQorCitSZWZlcnJlclBvbGljeSBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI6OnJlZmVycmVyUG9s
aWN5KCkKK3sKKyAgICBpZiAoYXV0byBwb2xpY3kgPSBwYXJzZVJlZmVycmVyUG9saWN5KG1fc2Ny
aXB0TG9hZGVyLT5yZWZlcnJlclBvbGljeSgpLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6SFRUUEhl
YWRlcikpCisgICAgICAgIHJldHVybiAqcG9saWN5OworICAgIHJldHVybiBSZWZlcnJlclBvbGlj
eTo6RW1wdHlTdHJpbmc7Cit9CisKK3ZvaWQgV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyOjpub3Rp
ZnlGaW5pc2hlZCgpCit7CisgICAgQVNTRVJUKG1fcHJvbWlzZSk7CisKKyAgICBhdXRvIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1f
Y2xpZW50LT5ub3RpZnlGaW5pc2hlZCgqdGhpcywgV1RGTW92ZShtX3NvdXJjZVVSTCksIG1fcHJv
bWlzZS5yZWxlYXNlTm9uTnVsbCgpKTsKK30KKworU3RyaW5nIFdvcmtlck1vZHVsZVNjcmlwdExv
YWRlcjo6dGFza01vZGUoKQoreworICAgIHJldHVybiAibG9hZE1vZHVsZXNJbldvcmtlck9yV29y
a2xldE1vZGUiX3M7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI4YjhiMTc2MTQ1YzI3
MGJhYjY0ZjBjMGY0Yzc4N2ViMjRhMzBkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlck1vZHVsZVNjcmlwdExvYWRlci5oCkBAIC0wLDAgKzEsNjcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1vZHVsZVNjcmlwdExv
YWRlci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRGVmZXJyZWRQcm9taXNlOworY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CitjbGFzcyBN
b2R1bGVGZXRjaFBhcmFtZXRlcnM7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xh
c3MgTW9kdWxlU2NyaXB0TG9hZGVyQ2xpZW50OworY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyOwor
CitjbGFzcyBXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXIgZmluYWwgOiBwdWJsaWMgTW9kdWxlU2Ny
aXB0TG9hZGVyLCBwcml2YXRlIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxXb3JrZXJNb2R1bGVTY3JpcHRMb2FkZXI+IGNyZWF0ZShNb2R1bGVTY3Jp
cHRMb2FkZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiwg
UmVmUHRyPE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisKKyAgICB2aXJ0dWFsIH5Xb3JrZXJN
b2R1bGVTY3JpcHRMb2FkZXIoKTsKKworICAgIGJvb2wgbG9hZChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgVVJMJiYgc291cmNlVVJMKTsKKworICAgIFdvcmtlclNjcmlwdExvYWRlciYgc2NyaXB0
TG9hZGVyKCkgeyByZXR1cm4gbV9zY3JpcHRMb2FkZXIuZ2V0KCk7IH0KKworICAgIHN0YXRpYyBT
dHJpbmcgdGFza01vZGUoKTsKKyAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpOwor
Citwcml2YXRlOgorICAgIFdvcmtlck1vZHVsZVNjcmlwdExvYWRlcihNb2R1bGVTY3JpcHRMb2Fk
ZXJDbGllbnQmLCBEZWZlcnJlZFByb21pc2UmLCBXb3JrZXJTY3JpcHRGZXRjaGVyJiwgUmVmUHRy
PE1vZHVsZUZldGNoUGFyYW1ldGVycz4mJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25z
ZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyB9CisgICAg
dm9pZCBub3RpZnlGaW5pc2hlZCgpIGZpbmFsOworCisgICAgUmVmPFdvcmtlclNjcmlwdExvYWRl
cj4gbV9zY3JpcHRMb2FkZXI7CisgICAgVVJMIG1fc291cmNlVVJMOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0RmV0Y2hlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0RmV0Y2hlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5ZTJkMjVkODg1MDRmNzg0NDcxZmVjNGRlZmEyNTZk
NmU1N2Y4ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRGZXRjaGVyLmgKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiTG9hZGFibGVTY3JpcHQuaCIKKyNpbmNsdWRlICJNb2R1bGVG
ZXRjaFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRGZXRjaGVy
Lmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkU2NyaXB0OworY2xh
c3MgRG9jdW1lbnQ7CisKK2NsYXNzIFdvcmtlclNjcmlwdEZldGNoZXIgZmluYWwgOiBwdWJsaWMg
SlNDOjpTY3JpcHRGZXRjaGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdvcmtlclNjcmlw
dEZldGNoZXI+IGNyZWF0ZShGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBSZWZlcnJlclBvbGljeSByZWZl
cnJlclBvbGljeSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtlclNj
cmlwdEZldGNoZXIoY3JlZGVudGlhbHMsIGRlc3RpbmF0aW9uLCByZWZlcnJlclBvbGljeSkpOwor
ICAgIH0KKworICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25z
dCB7IHJldHVybiBtX2NyZWRlbnRpYWxzOyB9CisgICAgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
biBkZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH0KKyAgICBSZWZl
cnJlclBvbGljeSByZWZlcnJlclBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJyZXJQb2xp
Y3k7IH0KKworICAgIHZvaWQgbm90aWZ5TG9hZENvbXBsZXRlZChVbmlxdWVkU3RyaW5nSW1wbCYg
bW9kdWxlS2V5KQorICAgIHsKKyAgICAgICAgbV9tb2R1bGVLZXkgPSAmbW9kdWxlS2V5OworICAg
ICAgICBtX2lzTG9hZGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIG5vdGlmeUxvYWRGYWls
ZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yJiYgZXJyb3IpCisgICAgeworICAgICAgICBtX2Vycm9y
ID0gV1RGTW92ZShlcnJvcik7CisgICAgICAgIG1faXNMb2FkZWQgPSB0cnVlOworICAgIH0KKwor
ICAgIHZvaWQgbm90aWZ5TG9hZFdhc0NhbmNlbGVkKCkKKyAgICB7CisgICAgICAgIG1fd2FzQ2Fu
Y2VsZWQgPSB0cnVlOworICAgICAgICBtX2lzTG9hZGVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBi
b29sIGlzTG9hZGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0xvYWRlZDsgfQorICAgIE9wdGlvbmFs
PExvYWRhYmxlU2NyaXB0OjpFcnJvcj4gZXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yOyB9
CisgICAgYm9vbCB3YXNDYW5jZWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzQ2FuY2VsZWQ7IH0K
KyAgICBVbmlxdWVkU3RyaW5nSW1wbCogbW9kdWxlS2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2R1
bGVLZXkuZ2V0KCk7IH0KKyAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMoKSB7
IHJldHVybiBtX3BhcmFtZXRlcnMuZ2V0KCk7IH0KKworICAgIHZvaWQgc2V0UmVmZXJyZXJQb2xp
Y3koUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kpCisgICAgeworICAgICAgICBtX3JlZmVy
cmVyUG9saWN5ID0gcmVmZXJyZXJQb2xpY3k7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgV29y
a2VyU2NyaXB0RmV0Y2hlcihGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBSZWZlcnJlclBvbGljeSByZWZl
cnJlclBvbGljeSkKKyAgICAgICAgOiBtX2NyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKQorICAgICAg
ICAsIG1fZGVzdGluYXRpb24oZGVzdGluYXRpb24pCisgICAgICAgICwgbV9yZWZlcnJlclBvbGlj
eShyZWZlcnJlclBvbGljeSkKKyAgICAgICAgLCBtX3BhcmFtZXRlcnMoTW9kdWxlRmV0Y2hQYXJh
bWV0ZXJzOjpjcmVhdGUoZW1wdHlTdHJpbmcoKSwgLyogaXNUb3BMZXZlbE1vZHVsZSAqLyB0cnVl
KSkKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAgIEZldGNoT3B0aW9uczo6Q3JlZGVudGlh
bHMgbV9jcmVkZW50aWFsczsKKyAgICBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIG1fZGVzdGlu
YXRpb247CisgICAgUmVmZXJyZXJQb2xpY3kgbV9yZWZlcnJlclBvbGljeSB7IFJlZmVycmVyUG9s
aWN5OjpFbXB0eVN0cmluZyB9OworICAgIFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4gbV9tb2R1
bGVLZXk7CisgICAgUmVmPE1vZHVsZUZldGNoUGFyYW1ldGVycz4gbV9wYXJhbWV0ZXJzOworICAg
IE9wdGlvbmFsPExvYWRhYmxlU2NyaXB0OjpFcnJvcj4gbV9lcnJvcjsKKyAgICBib29sIG1fd2Fz
Q2FuY2VsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0xvYWRlZCB7IGZhbHNlIH07Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBhZjkw
ZWU2YWE5MjQyYmFiMDUyM2EwMDU1MDE4NTBhMmM3MWUzMTY4Li5hMzVlYTE4OGQzZGY1M2QwMDNj
Y2YxM2Q3MmEyMzdiMWU3OWJhZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYxNSw3
ICs2MTUsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTZXR0aW5n
cyYgc2V0dGluZ3MsIGNvbnN0IFVSTCYgdXJsLCBEb2N1bQogICAgICwgbV9kb2N1bWVudENyZWF0
aW9uVGltZShNb25vdG9uaWNUaW1lOjpub3coKSkKICNlbmRpZgogICAgICwgbV9zY3JpcHRSdW5u
ZXIobWFrZVVuaXF1ZTxTY3JpcHRSdW5uZXI+KCp0aGlzKSkKLSAgICAsIG1fbW9kdWxlTG9hZGVy
KG1ha2VVbmlxdWU8U2NyaXB0TW9kdWxlTG9hZGVyPigqdGhpcykpCisgICAgLCBtX21vZHVsZUxv
YWRlcihtYWtlVW5pcXVlPFNjcmlwdE1vZHVsZUxvYWRlcj4oKnRoaXMsIFNjcmlwdE1vZHVsZUxv
YWRlcjo6T3duZXJUeXBlOjpEb2N1bWVudCkpCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgLCBtX2Fw
cGx5UGVuZGluZ1hTTFRyYW5zZm9ybXNUaW1lcigqdGhpcywgJkRvY3VtZW50OjphcHBseVBlbmRp
bmdYU0xUcmFuc2Zvcm1zVGltZXJGaXJlZCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25D
b2RlLmgKaW5kZXggZjZiNTU4ZWE4MmQ3OTM2OGU2MWFkYjA2MGNmMGI0ZWExZGJlYTIwYy4uMTdk
ZTc0MzQ3MmY3NzMxYjAzYzk4ZmVjZTdiMWViMWI5NjAxZTc3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhj
ZXB0aW9uQ29kZS5oCkBAIC02MSw2ICs2MSw3IEBAIGVudW0gRXhjZXB0aW9uQ29kZSB7CiAgICAg
Ly8gU2ltcGxlIGV4Y2VwdGlvbnMgKGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2lk
bC1leGNlcHRpb25zKS4KICAgICBSYW5nZUVycm9yLAogICAgIFR5cGVFcnJvciwKKyAgICBKU1N5
bnRheEVycm9yLCAvLyBEaWZmZXJlbnQgZnJvbSBET00gU1lOVEFYX0VSUi4KIAogICAgIC8vIE5v
bi1zdGFuZGFyZCBlcnJvci4KICAgICBTdGFja092ZXJmbG93RXJyb3IsCkBAIC0xMTEsNiArMTEy
LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpFeGNlcHRpb25Db2Rl
PiB7CiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6Tm90QWxsb3dlZEVycm9yLAogICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGU6OlJhbmdlRXJyb3IsCiAgICAgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZTo6VHlwZUVycm9yLAorICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OkpTU3ludGF4RXJy
b3IsCiAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZTo6U3RhY2tPdmVyZmxvd0Vycm9yLAogICAg
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGU6OkV4aXN0aW5nRXhjZXB0aW9uRXJyb3IKICAgICA+Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2FkYWJsZU1vZHVsZVNjcmlwdC5jcHAKaW5kZXggOWEyNWMx
NjU4OGVlY2FkNjc4ZmI5MTFlYzg2MjJmNDI0MjU5MmI1YS4uZmY5MGEyNzkzY2FiMDY4OWVlMDZh
Mjg4MmFjNjRjZmEyYzY1ZTk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRh
YmxlTW9kdWxlU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTG9hZGFibGVNb2R1
bGVTY3JpcHQuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFJlZjxMb2FkYWJsZU1vZHVsZVNjcmlwdD4g
TG9hZGFibGVNb2R1bGVTY3JpcHQ6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zCiAK
IExvYWRhYmxlTW9kdWxlU2NyaXB0OjpMb2FkYWJsZU1vZHVsZVNjcmlwdChjb25zdCBTdHJpbmcm
IG5vbmNlLCBjb25zdCBTdHJpbmcmIGludGVncml0eSwgUmVmZXJyZXJQb2xpY3kgcG9saWN5LCBj
b25zdCBTdHJpbmcmIGNyb3NzT3JpZ2luTW9kZSwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25z
dCBBdG9tU3RyaW5nJiBpbml0aWF0b3JOYW1lLCBib29sIGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVl
KQogICAgIDogTG9hZGFibGVTY3JpcHQobm9uY2UsIHBvbGljeSwgY3Jvc3NPcmlnaW5Nb2RlLCBj
aGFyc2V0LCBpbml0aWF0b3JOYW1lLCBpc0luVXNlckFnZW50U2hhZG93VHJlZSkKLSAgICAsIG1f
cGFyYW1ldGVycyhNb2R1bGVGZXRjaFBhcmFtZXRlcnM6OmNyZWF0ZShpbnRlZ3JpdHkpKQorICAg
ICwgbV9wYXJhbWV0ZXJzKE1vZHVsZUZldGNoUGFyYW1ldGVyczo6Y3JlYXRlKGludGVncml0eSwg
LyogaXNUb3BMZXZlbE1vZHVsZSAqLyB0cnVlKSkKIHsKIH0KIApAQCAtODgsMTYgKzg4LDQgQEAg
dm9pZCBMb2FkYWJsZU1vZHVsZVNjcmlwdDo6ZXhlY3V0ZShTY3JpcHRFbGVtZW50JiBzY3JpcHRF
bGVtZW50KQogICAgIHNjcmlwdEVsZW1lbnQuZXhlY3V0ZU1vZHVsZVNjcmlwdCgqdGhpcyk7CiB9
CiAKLXZvaWQgTG9hZGFibGVNb2R1bGVTY3JpcHQ6OmxvYWQoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBVUkwmIHJvb3RVUkwpCi17Ci0gICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJh
bWUoKSkKLSAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmxvYWRNb2R1bGVTY3JpcHQoKnRoaXMsIHJv
b3RVUkwuc3RyaW5nKCksIG1fcGFyYW1ldGVycy5jb3B5UmVmKCkpOwotfQotCi12b2lkIExvYWRh
YmxlTW9kdWxlU2NyaXB0Ojpsb2FkKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU2NyaXB0U291
cmNlQ29kZSYgc291cmNlQ29kZSkKLXsKLSAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5m
cmFtZSgpKQotICAgICAgICBmcmFtZS0+c2NyaXB0KCkubG9hZE1vZHVsZVNjcmlwdCgqdGhpcywg
c291cmNlQ29kZSk7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Mb2Fk
YWJsZU1vZHVsZVNjcmlwdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2Ny
aXB0LmgKaW5kZXggYmI3OTk1NGQ3Yjk5YjBlZDA2YmZlNTVlZjg1NGVjY2UyMWYzNTg3Ny4uZDI1
MzU5NjNmNjQ4YjAyYThhMDFmZDYzYmIxZTM4MTM4NmNlZTQzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0xvYWRhYmxlTW9kdWxlU2NyaXB0LmgKQEAgLTUwLDE1ICs1MCwxNCBAQCBjbGFzcyBMb2Fk
YWJsZU1vZHVsZVNjcmlwdCBmaW5hbCA6IHB1YmxpYyBMb2FkYWJsZVNjcmlwdCB7CiAKICAgICB2
b2lkIHNldEVycm9yKEVycm9yJiYpOwogCi0gICAgdm9pZCBsb2FkKERvY3VtZW50JiwgY29uc3Qg
VVJMJiByb290VVJMKTsKLSAgICB2b2lkIGxvYWQoRG9jdW1lbnQmLCBjb25zdCBTY3JpcHRTb3Vy
Y2VDb2RlJik7Ci0KICAgICB2b2lkIG5vdGlmeUxvYWRDb21wbGV0ZWQoVW5pcXVlZFN0cmluZ0lt
cGwmKTsKICAgICB2b2lkIG5vdGlmeUxvYWRGYWlsZWQoTG9hZGFibGVTY3JpcHQ6OkVycm9yJiYp
OwogICAgIHZvaWQgbm90aWZ5TG9hZFdhc0NhbmNlbGVkKCk7CiAKICAgICBVbmlxdWVkU3RyaW5n
SW1wbCogbW9kdWxlS2V5KCkgY29uc3QgeyByZXR1cm4gbV9tb2R1bGVLZXkuZ2V0KCk7IH0KIAor
ICAgIE1vZHVsZUZldGNoUGFyYW1ldGVycyYgcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1l
dGVycy5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIExvYWRhYmxlTW9kdWxlU2NyaXB0KGNvbnN0
IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYgaW50ZWdyaXR5LCBSZWZlcnJlclBvbGljeSwg
Y29uc3QgU3RyaW5nJiBjcm9zc09yaWdpbk1vZGUsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgY29u
c3QgQXRvbVN0cmluZyYgaW5pdGlhdG9yTmFtZSwgYm9vbCBpc0luVXNlckFnZW50U2hhZG93VHJl
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVGZXRjaFBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb2R1bGVGZXRjaFBhcmFtZXRlcnMuaAppbmRleCAy
NDg0OWI2ZjY3YjJjMDFlMmM5MWZiOWE0NzMzZGU3ZWU0YjAzMDQ0Li42NWQ4MDAxZTFjMmVhYTI4
MGY0Y2Y3ZWNkNDlhMWZkNmExNDgwYjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vZHVsZUZl
dGNoUGFyYW1ldGVycy5oCkBAIC0zMSwyMCArMzEsMjMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBNb2R1bGVGZXRjaFBhcmFtZXRlcnMgOiBwdWJsaWMgSlNDOjpTY3JpcHRGZXRjaFBh
cmFtZXRlcnMgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TW9kdWxlRmV0Y2hQYXJhbWV0ZXJz
PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBpbnRlZ3JpdHkpCisgICAgc3RhdGljIFJlZjxNb2R1bGVG
ZXRjaFBhcmFtZXRlcnM+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGludGVncml0eSwgYm9vbCBpc1Rv
cExldmVsTW9kdWxlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9kdWxl
RmV0Y2hQYXJhbWV0ZXJzKGludGVncml0eSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNb2R1bGVGZXRjaFBhcmFtZXRlcnMoaW50ZWdyaXR5LCBpc1RvcExldmVsTW9kdWxlKSk7CiAg
ICAgfQogCiAgICAgY29uc3QgU3RyaW5nJiBpbnRlZ3JpdHkoKSBjb25zdCB7IHJldHVybiBtX2lu
dGVncml0eTsgfQorICAgIGJvb2wgaXNUb3BMZXZlbE1vZHVsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNUb3BMZXZlbE1vZHVsZTsgfQogCiBwcml2YXRlOgotICAgIE1vZHVsZUZldGNoUGFyYW1ldGVy
cyhjb25zdCBTdHJpbmcmIGludGVncml0eSkKKyAgICBNb2R1bGVGZXRjaFBhcmFtZXRlcnMoY29u
c3QgU3RyaW5nJiBpbnRlZ3JpdHksIGJvb2wgaXNUb3BMZXZlbE1vZHVsZSkKICAgICAgICAgOiBt
X2ludGVncml0eShpbnRlZ3JpdHkpCisgICAgICAgICwgbV9pc1RvcExldmVsTW9kdWxlKGlzVG9w
TGV2ZWxNb2R1bGUpCiAgICAgewogICAgIH0KIAogICAgIFN0cmluZyBtX2ludGVncml0eTsKKyAg
ICBib29sIG1faXNUb3BMZXZlbE1vZHVsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCAwNTc1OGI2MDBjNzUyMmI0N2Yz
NjRiYTZhMThkMzVmMTczMTEwN2Y5Li41ZTk5ZjBmNTc3N2IzYjIxNThkZDBmYTRiYzM4Mjc3NmNk
YjM0ODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC00Miw2ICs0Miw3
IEBACiAjaW5jbHVkZSAiTG9hZGFibGVDbGFzc2ljU2NyaXB0LmgiCiAjaW5jbHVkZSAiTG9hZGFi
bGVNb2R1bGVTY3JpcHQuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVk
ZSAiTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGVuZGluZ1NjcmlwdC5oIgog
I2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgogI2luY2x1ZGUgIlNWR1Njcmlw
dEVsZW1lbnQuaCIKQEAgLTM1MSw4ICszNTIsMTEgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpyZXF1
ZXN0TW9kdWxlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlvbikK
ICAgICAgICAgICAgIHNjcmlwdENoYXJzZXQoKSwKICAgICAgICAgICAgIG1fZWxlbWVudC5sb2Nh
bE5hbWUoKSwKICAgICAgICAgICAgIG1fZWxlbWVudC5pc0luVXNlckFnZW50U2hhZG93VHJlZSgp
KTsKLSAgICAgICAgc2NyaXB0LT5sb2FkKG1fZWxlbWVudC5kb2N1bWVudCgpLCBtb2R1bGVTY3Jp
cHRSb290VVJMKTsKICAgICAgICAgbV9sb2FkYWJsZVNjcmlwdCA9IFdURk1vdmUoc2NyaXB0KTsK
KyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9lbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSkg
eworICAgICAgICAgICAgYXV0byYgc2NyaXB0ID0gZG93bmNhc3Q8TG9hZGFibGVNb2R1bGVTY3Jp
cHQ+KCptX2xvYWRhYmxlU2NyaXB0LmdldCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT5zY3JpcHQo
KS5sb2FkTW9kdWxlU2NyaXB0KHNjcmlwdCwgbW9kdWxlU2NyaXB0Um9vdFVSTC5zdHJpbmcoKSwg
bWFrZVJlZihzY3JpcHQucGFyYW1ldGVycygpKSk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCkBAIC0zNjcsOCArMzcxLDkgQEAgYm9vbCBTY3JpcHRFbGVtZW50Ojpy
ZXF1ZXN0TW9kdWxlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbiYgc2NyaXB0U3RhcnRQb3NpdGlv
bikKICAgICBpZiAoIWNvbnRlbnRTZWN1cml0eVBvbGljeS5hbGxvd0lubGluZVNjcmlwdChtX2Vs
ZW1lbnQuZG9jdW1lbnQoKS51cmwoKS5zdHJpbmcoKSwgbV9zdGFydExpbmVOdW1iZXIsIHNvdXJj
ZUNvZGUuc291cmNlKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpLCBoYXNLbm93bk5vbmNlKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc2NyaXB0LT5sb2FkKG1fZWxlbWVudC5kb2N1
bWVudCgpLCBzb3VyY2VDb2RlKTsKICAgICBtX2xvYWRhYmxlU2NyaXB0ID0gV1RGTW92ZShzY3Jp
cHQpOworICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkp
CisgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5sb2FkTW9kdWxlU2NyaXB0KGRvd25jYXN0PExvYWRh
YmxlTW9kdWxlU2NyaXB0PigqbV9sb2FkYWJsZVNjcmlwdC5nZXQoKSksIHNvdXJjZUNvZGUpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxv
YWRlci5jcHAKaW5kZXggMjcxN2M4NjFjNzRiMGYyYWViY2RlNDA4NzAwZTJhOWEwMzczNzU5NS4u
MWI2NTMyYzNiMGVhYTgwZDliZDQ2YzZkNDMyMTM2OTYyMWMwMTliYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMTAxLDEwICsxMDEsMTAgQEAgVGhy
ZWFkYWJsZUxvYWRlck9wdGlvbnMgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnM6Omlzb2xhdGVkQ29w
eSgpIGNvbnN0CiB9CiAKIAotUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IFRocmVhZGFibGVMb2Fk
ZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBUaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFRocmVh
ZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBTdHJpbmcmJiByZWZlcnJlcikKK1JlZlB0cjxU
aHJlYWRhYmxlTG9hZGVyPiBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYgb3B0aW9u
cywgU3RyaW5nJiYgcmVmZXJyZXIsIFN0cmluZyYmIHRhc2tNb2RlKQogewogICAgIGlmIChpczxX
b3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkgfHwgKGlzPFdvcmtsZXRHbG9iYWxTY29wZT4oY29u
dGV4dCkgJiYgZG93bmNhc3Q8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KS53b3JrZXJPcldv
cmtsZXRUaHJlYWQoKSkpCi0gICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpj
cmVhdGUoc3RhdGljX2Nhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmPihjb250ZXh0KSwg
Y2xpZW50LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpLCBXVEZNb3ZlKHJlcXVlc3QpLCBv
cHRpb25zLCBXVEZNb3ZlKHJlZmVycmVyKSk7CisgICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRh
YmxlTG9hZGVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUm
Pihjb250ZXh0KSwgY2xpZW50LCBXVEZNb3ZlKHRhc2tNb2RlKSwgV1RGTW92ZShyZXF1ZXN0KSwg
b3B0aW9ucywgV1RGTW92ZShyZWZlcnJlcikpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
bnVsbHB0cjsKICAgICBpZiAoaXM8V29ya2xldEdsb2JhbFNjb3BlPihjb250ZXh0KSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCmluZGV4IGMyYjI0NWMzZWJiOGJjOTMw
ZWY0ZDE3MmJhMTUwOWExNzlmMWQ3YTYuLjFhYzcwNGI0YzNiNTBiMGZmZGEwMzQyOGMzY2U3ZGEx
NDk4ODI2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9h
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaApAQCAt
NzQsNyArNzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFRocmVhZGFibGVMb2FkZXIpOwogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIHZv
aWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVz
b3VyY2VSZXF1ZXN0JiYsIFRocmVhZGFibGVMb2FkZXJDbGllbnQmLCBjb25zdCBUaHJlYWRhYmxl
TG9hZGVyT3B0aW9ucyYpOwotICAgICAgICBzdGF0aWMgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGhyZWFkYWJsZUxvYWRlckNsaWVudCYs
IFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyYsIFN0cmlu
ZyYmIHJlZmVycmVyID0gU3RyaW5nKCkpOworICAgICAgICBzdGF0aWMgUmVmUHRyPFRocmVhZGFi
bGVMb2FkZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVGhyZWFkYWJsZUxvYWRl
ckNsaWVudCYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9u
cyYsIFN0cmluZyYmIHJlZmVycmVyID0gU3RyaW5nKCksIFN0cmluZyYmIHRhc2tNb2RlID0geyB9
KTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUlzRG9uZSgpID0gMDsKICAgICAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCAwZmNiNjA5ZDExZjJjOTJlNTU0
NWNmNzcwMDFlMDgyM2ZhODY1YjI3Li41N2Y0NTJjNmVlYTllMDYzZmQ3NTg4ZGU5MTM0Mjc5MGNk
ODk5YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZS5oCkBAIC04MSw2ICs4MSw4IEBAIGNsYXNzIERlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlIGZpbmFsIDogcHVibGljIFdvcmtlckdsb2JhbFNjb3BlIHsKICAgICBSZWZQdHI8
TWVzc2FnZVBvcnQ+IHRha2VQZW5kaW5nUlRDVHJhbnNmb21lck1lc3NhZ2VQb3J0KCkgeyByZXR1
cm4gV1RGTW92ZShtX3BlbmRpbmdSVENUcmFuc2ZvbWVyTWVzc2FnZVBvcnQpOyB9CiAjZW5kaWYK
IAorICAgIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24oKSBjb25zdCBmaW5h
bCB7IHJldHVybiBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpXb3JrZXI7IH0KKwogcHJpdmF0
ZToKICAgICB1c2luZyBCYXNlID0gV29ya2VyR2xvYmFsU2NvcGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyLmNwcAppbmRleCBiZjZlMjc2YTM5YzIzMTVmODg5MGM2MzMwMzI5ZDY0NGRmY2FlYWE1
Li4wNGZkZjU4Mjc0M2ViOTczYjUyNWQ1NGM4YThkOGYzN2Q4MjUyMGZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXIuY3BwCkBAIC03NCw2ICs3NCw4IEBAIGlubGluZSBXb3JrZXI6OldvcmtlcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OlJ1bnRpbWVGbGFncyBydW50aW1l
CiAgICAgLCBtX2lkZW50aWZpZXIoIndvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0Zh
Y3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSkKICAgICAsIG1fY29udGV4dFByb3h5KFdvcmtlckds
b2JhbFNjb3BlUHJveHk6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX3J1bnRpbWVGbGFncyhydW50
aW1lRmxhZ3MpCisgICAgLCBtX3R5cGUob3B0aW9ucy50eXBlKQorICAgICwgbV9jcmVkZW50aWFs
cyhvcHRpb25zLmNyZWRlbnRpYWxzKQogewogICAgIHN0YXRpYyBib29sIGFkZGVkTGlzdGVuZXI7
CiAgICAgaWYgKCFhZGRlZExpc3RlbmVyKSB7CkBAIC0xMTcsMTAgKzExOSwxNSBAQCBFeGNlcHRp
b25PcjxSZWY8V29ya2VyPj4gV29ya2VyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgSlNDOjpSdQogCiAgICAgRmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKICAgICBm
ZXRjaE9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbjsKKyAgICBp
ZiAod29ya2VyLT5tX3R5cGUgPT0gV29ya2VyVHlwZTo6TW9kdWxlKQorICAgICAgICBmZXRjaE9w
dGlvbnMuY3JlZGVudGlhbHMgPSB3b3JrZXItPm1fY3JlZGVudGlhbHM7CisgICAgZWxzZQorICAg
ICAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMgPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxz
OjpTYW1lT3JpZ2luOwogICAgIGZldGNoT3B0aW9ucy5jYWNoZSA9IEZldGNoT3B0aW9uczo6Q2Fj
aGU6OkRlZmF1bHQ7CiAgICAgZmV0Y2hPcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpS
ZWRpcmVjdDo6Rm9sbG93OwogICAgIGZldGNoT3B0aW9ucy5kZXN0aW5hdGlvbiA9IEZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246OldvcmtlcjsKLSAgICB3b3JrZXItPm1fc2NyaXB0TG9hZGVyLT5s
b2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRj
aE9wdGlvbnMpLCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtl
cnNNb2RlOjpBbGwsIHdvcmtlcik7CisgICAgd29ya2VyLT5tX3NjcmlwdExvYWRlci0+bG9hZEFz
eW5jaHJvbm91c2x5KGNvbnRleHQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZmV0Y2hPcHRp
b25zKSwgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9k
ZTo6QWxsLCB3b3JrZXIuZ2V0KCksIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworCiAg
ICAgcmV0dXJuIHdvcmtlcjsKIH0KIApAQCAtMjE5LDcgKzIyNiwxMyBAQCB2b2lkIFdvcmtlcjo6
bm90aWZ5RmluaXNoZWQoKQogICAgIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5ID0gUmVm
ZXJyZXJQb2xpY3k6OkVtcHR5U3RyaW5nOwogICAgIGlmIChhdXRvIHBvbGljeSA9IHBhcnNlUmVm
ZXJyZXJQb2xpY3kobV9zY3JpcHRMb2FkZXItPnJlZmVycmVyUG9saWN5KCksIFJlZmVycmVyUG9s
aWN5U291cmNlOjpIVFRQSGVhZGVyKSkKICAgICAgICAgcmVmZXJyZXJQb2xpY3kgPSAqcG9saWN5
OwotICAgIG1fY29udGV4dFByb3h5LnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUobV9zY3JpcHRMb2Fk
ZXItPnVybCgpLCBtX25hbWUsIGNvbnRleHQtPnVzZXJBZ2VudChtX3NjcmlwdExvYWRlci0+dXJs
KCkpLCBpc09ubGluZSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBjb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMsIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCBtX3dvcmtlckNyZWF0aW9uVGltZSwgcmVmZXJyZXJQb2xpY3ksIG1fcnVudGlt
ZUZsYWdzKTsKKworICAgIFVSTCByZXNwb25zZVVSTCA9IG1fc2NyaXB0TG9hZGVyLT5yZXNwb25z
ZVVSTCgpOworICAgIGlmICghbV9zY3JpcHRMb2FkZXItPmlzUmVkaXJlY3RlZCgpICYmIG1fc2Ny
aXB0TG9hZGVyLT5yZXNwb25zZVNvdXJjZSgpICE9IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6
U2VydmljZVdvcmtlcikgeworICAgICAgICBpZiAobV9zY3JpcHRMb2FkZXItPnVybCgpLmhhc0Zy
YWdtZW50SWRlbnRpZmllcigpKQorICAgICAgICAgICAgcmVzcG9uc2VVUkwuc2V0RnJhZ21lbnRJ
ZGVudGlmaWVyKG1fc2NyaXB0TG9hZGVyLT51cmwoKS5mcmFnbWVudElkZW50aWZpZXIoKSk7Cisg
ICAgfQorICAgIG1fY29udGV4dFByb3h5LnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUocmVzcG9uc2VV
UkwsIG1fbmFtZSwgY29udGV4dC0+dXNlckFnZW50KHJlc3BvbnNlVVJMKSwgaXNPbmxpbmUsIG1f
c2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLCBtX3Nob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgbV93b3Jr
ZXJDcmVhdGlvblRpbWUsIHJlZmVycmVyUG9saWN5LCBtX3R5cGUsIG1fY3JlZGVudGlhbHMsIG1f
cnVudGltZUZsYWdzKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNjcmlwdEltcG9y
dGVkKCpjb250ZXh0LCBtX3NjcmlwdExvYWRlci0+aWRlbnRpZmllcigpLCBtX3NjcmlwdExvYWRl
ci0+c2NyaXB0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaAppbmRleCA1M2Y1ZTZmZmYy
N2M5ZmEzZTVjMGUwMWYwZjZjNDJjNmNiNmY5ZDBlLi4zOGE2MjNhOThkYmEzNWZmODAxM2NkNmZj
OGM4NWM4MTAyMDUwMjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmgKQEAgLTI5LDkgKzI5LDEx
IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNp
bmNsdWRlICJGZXRjaFJlcXVlc3RDcmVkZW50aWFscy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0
LmgiCiAjaW5jbHVkZSAiUG9zdE1lc3NhZ2VPcHRpb25zLmgiCiAjaW5jbHVkZSAiV29ya2VyU2Ny
aXB0TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiV29ya2VyVHlwZS5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1l
Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBAIC01NSw2ICs1Nyw4IEBAIGNsYXNzIFdv
cmtlciBmaW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwgcHVibGljIEFjdGl2ZURPTU9iamVj
dCwgcHJpdmF0ZSBXb3JrCiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXb3JrZXIpOwogcHVi
bGljOgogICAgIHN0cnVjdCBPcHRpb25zIHsKKyAgICAgICAgV29ya2VyVHlwZSB0eXBlOworICAg
ICAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsKICAgICAgICAgU3RyaW5n
IG5hbWU7CiAgICAgfTsKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFdvcmtlcj4+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSlNDOjpSdW50aW1lRmxhZ3MsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBPcHRpb25zJik7CkBAIC03OSw2ICs4Myw4IEBAIGNsYXNzIFdvcmtlciBm
aW5hbCA6IHB1YmxpYyBBYnN0cmFjdFdvcmtlciwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJp
dmF0ZSBXb3JrCiAgICAgdm9pZCBwb3N0VGFza1RvV29ya2VyR2xvYmFsU2NvcGUoRnVuY3Rpb248
dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+JiYpOwogI2VuZGlmCiAKKyAgICBXb3JrZXJU
eXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKwogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6UnVudGltZUZsYWdzLCBj
b25zdCBPcHRpb25zJik7CiAKQEAgLTExMiw2ICsxMTgsOCBAQCBjbGFzcyBXb3JrZXIgZmluYWwg
OiBwdWJsaWMgQWJzdHJhY3RXb3JrZXIsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUg
V29yawogI2lmIEVOQUJMRShXRUJfUlRDKQogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3RyYW5zZm9y
bWVyczsKICNlbmRpZgorICAgIFdvcmtlclR5cGUgbV90eXBlIHsgV29ya2VyVHlwZTo6Q2xhc3Np
YyB9OworICAgIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIG1fY3JlZGVudGlhbHMgeyBGZXRjaFJl
cXVlc3RDcmVkZW50aWFsczo6U2FtZU9yaWdpbiB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCmluZGV4IDQ1ZDZhMDg2Nzg1NGVlNDA0ZGU3
ZTdkMDEyNDhjZWJmNDRkY2E3ZWQuLjcwMjE3OTZkZjUwNGFkZjhlNmI5NTg5YWNlOWYxNDQ4MjFm
Mjk1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwKQEAgLTM4LDYgKzM4LDggQEAKIH07
CiAKIGRpY3Rpb25hcnkgV29ya2VyT3B0aW9ucyB7CisgICAgV29ya2VyVHlwZSB0eXBlID0gImNs
YXNzaWMiOworICAgIEZldGNoUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzID0gInNhbWUt
b3JpZ2luIjsgLy8gY3JlZGVudGlhbHMgaXMgb25seSB1c2VkIGlmIHR5cGUgaXMgIm1vZHVsZSIK
ICAgICBET01TdHJpbmcgbmFtZSA9ICIiOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBkYmFiMzQ4ZTgwYzlkZTUwYmQyMTU3NzdhMTRh
MzlhMGY3MGU0OWM3Li5jY2RlOTA5YzdjYjUyZTk3Nzc0YzViODE1ODIzZWJjYmJiMDcwZjMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNzQs
NiArNzQsOCBAQCBXb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUoV29ya2VyVGhy
ZWFkVHlwZSB0eXBlLCBjb25zdCBXb3JrZXJQYXJhbWV0ZQogICAgICwgbV9wZXJmb3JtYW5jZShQ
ZXJmb3JtYW5jZTo6Y3JlYXRlKHRoaXMsIHBhcmFtcy50aW1lT3JpZ2luKSkKICAgICAsIG1fcmVm
ZXJyZXJQb2xpY3kocGFyYW1zLnJlZmVycmVyUG9saWN5KQogICAgICwgbV9zZXR0aW5nc1ZhbHVl
cyhwYXJhbXMuc2V0dGluZ3NWYWx1ZXMpCisgICAgLCBtX3dvcmtlclR5cGUocGFyYW1zLndvcmtl
clR5cGUpCisgICAgLCBtX2NyZWRlbnRpYWxzKHBhcmFtcy5jcmVkZW50aWFscykKIHsKICNpZiAh
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb25Qcm94
eSk7CkBAIC0yNzQsNiArMjc2LDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFdvcmtlckdsb2JhbFNj
b3BlOjppbXBvcnRTY3JpcHRzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB1cmxzKQogewogICAgIEFT
U0VSVChjb250ZW50U2VjdXJpdHlQb2xpY3koKSk7CiAKKyAgICAvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS93b3JrZXJzLmh0bWwjaW1wb3J0aW5nLXNjcmlwdHMtYW5k
LWxpYnJhcmllcworICAgIC8vIDEuIElmIHdvcmtlciBnbG9iYWwgc2NvcGUncyB0eXBlIGlzICJt
b2R1bGUiLCB0aHJvdyBhIFR5cGVFcnJvciBleGNlcHRpb24uCisgICAgaWYgKG1fd29ya2VyVHlw
ZSA9PSBXb3JrZXJUeXBlOjpNb2R1bGUpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJpbXBvcnRTY3JpcHRzIGNhbm5vdCBiZSB1c2VkIGlmIHdvZXJrZXIgdHlwZSBpcyBc
Im1vZHVsZVwiIl9zIH07CisKICAgICBWZWN0b3I8VVJMPiBjb21wbGV0ZWRVUkxzOwogICAgIGNv
bXBsZXRlZFVSTHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh1cmxzLnNpemUoKSk7CiAgICAgZm9y
IChhdXRvJiBlbnRyeSA6IHVybHMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUuaAppbmRleCA0NmQ0OWQ5NGM1MjM4ZTQ2ODhkMzk1ZDg3YzIwNjNlYjU3MjBkMWJm
Li43NDc5NWY1YzBmOWEyYTM1ZDAwOTMwMTJhZDE4ZjU3ZTMxN2Y4MjcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0xMjMsNiArMTIzLDggQEAgY2xh
c3MgV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8V29ya2VyR2xvYmFs
U2NvcGU+LCBwdWJsaWMgQmFzZTYKIAogICAgIGNvbnN0IFNldHRpbmdzOjpWYWx1ZXMmIHNldHRp
bmdzVmFsdWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nc1ZhbHVlczsgfQogCisg
ICAgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFscyBjcmVkZW50aWFscygpIGNvbnN0IHsgcmV0dXJu
IG1fY3JlZGVudGlhbHM7IH0KKwogcHJvdGVjdGVkOgogICAgIFdvcmtlckdsb2JhbFNjb3BlKFdv
cmtlclRocmVhZFR5cGUsIGNvbnN0IFdvcmtlclBhcmFtZXRlcnMmLCBSZWY8U2VjdXJpdHlPcmln
aW4+JiYsIFdvcmtlclRocmVhZCYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIElE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqKTsKIApAQCAtMTYz
LDggKzE2NSw2IEBAIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFN1cHBsZW1lbnRh
YmxlPFdvcmtlckdsb2JhbFNjb3BlPiwgcHVibGljIEJhc2U2CiAgICAgbXV0YWJsZSBSZWZQdHI8
V29ya2VyTG9jYXRpb24+IG1fbG9jYXRpb247CiAgICAgbXV0YWJsZSBSZWZQdHI8V29ya2VyTmF2
aWdhdG9yPiBtX25hdmlnYXRvcjsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxXb3JrZXJPcldvcmts
ZXRTY3JpcHRDb250cm9sbGVyPiBtX3NjcmlwdDsKLQogICAgIGJvb2wgbV9pc09ubGluZTsKICAg
ICBib29sIG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OwogCkBA
IC0xODcsNiArMTg3LDggQEAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGUgOiBwdWJsaWMgU3VwcGxl
bWVudGFibGU8V29ya2VyR2xvYmFsU2NvcGU+LCBwdWJsaWMgQmFzZTYKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q1NTVmFsdWVQb29sPiBtX2Nzc1ZhbHVlUG9vbDsKICAgICBSZWZlcnJlclBvbGljeSBt
X3JlZmVycmVyUG9saWN5OwogICAgIFNldHRpbmdzOjpWYWx1ZXMgbV9zZXR0aW5nc1ZhbHVlczsK
KyAgICBXb3JrZXJUeXBlIG1fd29ya2VyVHlwZTsKKyAgICBGZXRjaE9wdGlvbnM6OkNyZWRlbnRp
YWxzIG1fY3JlZGVudGlhbHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlUHJveHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCmluZGV4IDQwMDAz
YzNlMDEwOTk5NjBmNjQ3ODYxZTcwMTY4N2QwZTM3MWQ3MmQuLmVkNjczYWM4ZjdjMGVlNTRjMDYw
ZWNiNTkyMTYzOTBlZDcwZmUyY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGVQcm94eS5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFdvcmtlckdsb2Jh
bFNjb3BlUHJveHkgewogcHVibGljOgogICAgIHN0YXRpYyBXb3JrZXJHbG9iYWxTY29wZVByb3h5
JiBjcmVhdGUoV29ya2VyJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxT
Y29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBj
b25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3Jp
Z2luLCBSZWZlcnJlclBvbGljeSwgSlNDOjpSdW50aW1lRmxhZ3MpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwg
RmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIEpTQzo6UnVudGltZUZsYWdzKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHRlcm1pbmF0ZVdvcmtlckdsb2JhbFNjb3BlKCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyR2xvYmFsU2NvcGUoTWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHMmJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFza1RvV29ya2VyR2xvYmFsU2NvcGUo
RnVuY3Rpb248dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+JiYpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggMTlkNGJl
NjQ5OTJmMzBkM2NjZTc2NTQ3YTNkMjIxOGE5OGM4NDJjMy4uNzg4MzU4N2E3YWY2MjA5ZTNlY2M4
ZTdiNDFiYWQ0N2FkZjYyMjQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTczLDcgKzczLDcgQEAgV29ya2VyTWVzc2FnaW5nUHJv
eHk6On5Xb3JrZXJNZXNzYWdpbmdQcm94eSgpCiAgICAgICAgIHx8IChpczxXb3JrZXJHbG9iYWxT
Y29wZT4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgJiYgZG93bmNhc3Q8V29ya2VyR2xvYmFs
U2NvcGU+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLnRocmVhZCgpLnRocmVhZCgpID09ICZU
aHJlYWQ6OmN1cnJlbnQoKSkpOwogfQogCi12b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFy
dFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcm
IHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYg
Y29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBib29sIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBS
ZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSwgSlNDOjpSdW50aW1lRmxhZ3MgcnVudGltZUZs
YWdzKQordm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShj
b25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgYm9vbCBpc09ubGluZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycywgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJp
dHlQb2xpY3ksIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3kgcmVmZXJy
ZXJQb2xpY3ksIFdvcmtlclR5cGUgd29ya2VyVHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMg
Y3JlZGVudGlhbHMsIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncykKIHsKICAgICAvLyBG
SVhNRTogVGhpcyBuZWVkIHRvIGJlIHJldmlzaXRlZCB3aGVuIHdlIHN1cHBvcnQgbmVzdGVkIHdv
cmtlciBvbmUgZGF5CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CkBAIC04
OSw3ICs4OSw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0CiAKICAgICBTb2NrZXRQcm92aWRl
ciogc29ja2V0UHJvdmlkZXIgPSBkb2N1bWVudC5zb2NrZXRQcm92aWRlcigpOwogCi0gICAgV29y
a2VyUGFyYW1ldGVycyBwYXJhbXMgPSB7IHNjcmlwdFVSTCwgbmFtZSwgaWRlbnRpZmllciwgdXNl
ckFnZW50LCBpc09ubGluZSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBz
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIHRpbWVPcmlnaW4sIHJl
ZmVycmVyUG9saWN5LCBkb2N1bWVudC5zZXR0aW5nc1ZhbHVlcygpIH07CisgICAgV29ya2VyUGFy
YW1ldGVycyBwYXJhbXMgPSB7IHNjcmlwdFVSTCwgbmFtZSwgaWRlbnRpZmllciwgdXNlckFnZW50
LCBpc09ubGluZSwgY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLCBzaG91bGRC
eXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIHRpbWVPcmlnaW4sIHJlZmVycmVy
UG9saWN5LCB3b3JrZXJUeXBlLCBjcmVkZW50aWFscywgZG9jdW1lbnQuc2V0dGluZ3NWYWx1ZXMo
KSB9OwogICAgIGF1dG8gdGhyZWFkID0gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUocGFy
YW1zLCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsICp0aGlzLCBzdGFydE1vZGUsIGRvY3VtZW50
LnRvcE9yaWdpbigpLCBwcm94eSwgc29ja2V0UHJvdmlkZXIsIHJ1bnRpbWVGbGFncyk7CiAKICAg
ICB3b3JrZXJUaHJlYWRDcmVhdGVkKHRocmVhZC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKaW5kZXggYzViNTc1YjllNjE1YjNmM2Y1OTZi
ZmMzZGY2ODNjODc3Y2M2MmJhYi4uZDllODFlMTU3YTBmNDg1MmU0OWI1OWQyNTY2YThhODBmNWY4
MThhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
aApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBXb3JrZXJNZXNzYWdpbmdQcm94eSBmaW5hbCA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXb3JrZXJNZXNzYWdpbmdQcgogcHJpdmF0ZToKICAg
ICAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgV29ya2VyR2xvYmFsU2NvcGVQcm94eS4KICAgICAvLyAo
T25seSB1c2UgdGhlc2UgZnVuY3Rpb25zIGluIHRoZSB3b3JrZXIgb2JqZWN0IHRocmVhZC4pCi0g
ICAgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBj
b25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9s
aWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVyUG9saWN5LCBKU0M6OlJ1bnRp
bWVGbGFncykgZmluYWw7CisgICAgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVS
TCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBib29sIGlzT25saW5lLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxk
Q29udGVudFNlY3VyaXR5UG9saWN5LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFJlZmVycmVy
UG9saWN5LCBXb3JrZXJUeXBlLCBGZXRjaFJlcXVlc3RDcmVkZW50aWFscywgSlNDOjpSdW50aW1l
RmxhZ3MpIGZpbmFsOwogICAgIHZvaWQgdGVybWluYXRlV29ya2VyR2xvYmFsU2NvcGUoKSBmaW5h
bDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxTY29wZShNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyYmKSBmaW5hbDsKICAgICB2b2lkIHBvc3RUYXNrVG9Xb3JrZXJHbG9iYWxTY29w
ZShGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4mJikgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwCmluZGV4IDIzODRhNWE4YzdkMmEzMDJlZWU1Y2I0MDVlMTA1ZTAyNWM5ODQzY2MuLjA4YWFk
OTBmNDVlMDlmOWQxNDljYTM5ODVhNjEzMDIwNTQxZmFjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0yNiwx
MSArMjYsMTQgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmts
ZXRHbG9iYWxTY29wZS5oIgogCisjaW5jbHVkZSAiU2NyaXB0TW9kdWxlTG9hZGVyLmgiCisjaW5j
bHVkZSAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyRXZlbnRM
b29wLmgiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
Ildvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXb3JrZXJPcldv
cmtsZXRUaHJlYWQuaCIKICNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCisjaW5jbHVkZSAiV29y
a2xldEdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksNiArNDIsNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUpOwogCiBXb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZTo6V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoV29ya2VyVGhyZWFkVHlwZSB0
eXBlLCBSZWY8SlNDOjpWTT4mJiB2bSwgV29ya2VyT3JXb3JrbGV0VGhyZWFkKiB0aHJlYWQpCiAg
ICAgOiBtX3NjcmlwdChtYWtlVW5pcXVlPFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXI+
KHR5cGUsIFdURk1vdmUodm0pLCB0aGlzKSkKKyAgICAsIG1fbW9kdWxlTG9hZGVyKG1ha2VVbmlx
dWU8U2NyaXB0TW9kdWxlTG9hZGVyPigqdGhpcywgU2NyaXB0TW9kdWxlTG9hZGVyOjpPd25lclR5
cGU6Oldvcmtlck9yV29ya2xldCkpCiAgICAgLCBtX3RocmVhZCh0aHJlYWQpCiAgICAgLCBtX2lu
c3BlY3RvckNvbnRyb2xsZXIobWFrZVVuaXF1ZTxXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyPigq
dGhpcykpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlLmgKaW5kZXggNmMyNDRhMGM0MjdlZTFjOGM2NWZkY2M3NjU5NTJmODc3ZmQ5
YjE2Yi4uZTQ3OWRkZWEwNGVhNWUxZTI2NmU1MTVhZjkyY2VkM2Y5OTU3ZWM1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaApA
QCAtMjYsMTIgKzI2LDE0IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0
LmgiCisjaW5jbHVkZSAiRmV0Y2hPcHRpb25zLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZFR5cGUuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBFdmVudExvb3BUYXNrR3JvdXA7CitjbGFzcyBTY3JpcHRNb2R1bGVM
b2FkZXI7CiBjbGFzcyBXb3JrZXJFdmVudExvb3A7CiBjbGFzcyBXb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyOwogY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcjsKQEAgLTU0LDYg
KzU2LDggQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KIAogICAgIHVuc2lnbmVkIGxvbmcgY3Jl
YXRlVW5pcXVlSWRlbnRpZmllcigpIHsgcmV0dXJuIG1fdW5pcXVlSWRlbnRpZmllcisrOyB9CiAK
KyAgICBTY3JpcHRNb2R1bGVMb2FkZXImIG1vZHVsZUxvYWRlcigpIHsgcmV0dXJuICptX21vZHVs
ZUxvYWRlcjsgfQorCiAgICAgLy8gU2NyaXB0RXhlY3V0aW9uQ29udGV4dC4KICAgICBFdmVudExv
b3BUYXNrR3JvdXAmIGV2ZW50TG9vcCgpIGZpbmFsOwogICAgIGJvb2wgaXNDb250ZXh0VGhyZWFk
KCkgY29uc3QgZmluYWw7CkBAIC02Nyw2ICs3MSw4IEBAIGNsYXNzIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHB1YmxpYyBSZWZDb3Vu
CiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1l
KCkgeyB9CiAKKyAgICB2aXJ0dWFsIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRp
b24oKSBjb25zdCA9IDA7CisKIHByb3RlY3RlZDoKICAgICBXb3JrZXJPcldvcmtsZXRHbG9iYWxT
Y29wZShXb3JrZXJUaHJlYWRUeXBlLCBSZWY8SlNDOjpWTT4mJiwgV29ya2VyT3JXb3JrbGV0VGhy
ZWFkKik7CiAKQEAgLTg4LDYgKzk0LDcgQEAgY2xhc3MgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIFJlZkNvdW4KICAgICB2
b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyPiBtX3NjcmlwdDsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8U2NyaXB0TW9kdWxlTG9hZGVyPiBtX21vZHVsZUxvYWRlcjsKICAgICBX
b3JrZXJPcldvcmtsZXRUaHJlYWQqIG1fdGhyZWFkOwogICAgIFJlZlB0cjxXb3JrZXJFdmVudExv
b3A+IG1fZXZlbnRMb29wOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrR3JvdXA+
IG1fZGVmYXVsdFRhc2tHcm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGNkNGVjMjQ2ODI1
MjVhYWJjNjQyZDg3N2EwZGEwMTFlYmRlMTE0MzEuLjE4ODczNWM0Yjg3MzUwOTAyM2U0ZGYxYmNl
MmM4MmFkNzEyYmQzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
T3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzUsMTUgKzM1LDI0IEBA
CiAjaW5jbHVkZSAiSlNFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU1BhaW50V29ya2xldEdsb2Jh
bFNjb3BlLmgiCiAjaW5jbHVkZSAiSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNs
dWRlICJNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmgiCisjaW5jbHVkZSAiTW9kdWxlRmV0Y2hQYXJh
bWV0ZXJzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIldlYkNv
cmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJDb25zb2xlQ2xpZW50LmgiCisjaW5j
bHVkZSAiV29ya2VyTW9kdWxlU2NyaXB0TG9hZGVyLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0
RmV0Y2hlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0NvbXBsZXRpb24uaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9EZWZlcnJlZFdvcmtUaW1lci5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0V4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0V4Y2VwdGlv
bkhlbHBlcnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9HQ0FjdGl2aXR5Q2FsbGJhY2su
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ludGVybmFsUHJvbWlzZS5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
TW9kdWxlUmVjb3JkLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNOYXRpdmVTdGRGdW5j
dGlvbi5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU2NyaXB0RmV0Y2hQYXJhbWV0ZXJz
Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTY3JpcHRGZXRjaGVyLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0yMjgsNiArMjM3LDI0NSBAQCB2b2lkIFdvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xs
ZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZAogICAgIH0KIH0K
IAorc3RhdGljIElkZW50aWZpZXIganNWYWx1ZVRvTW9kdWxlS2V5KEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS5pc1N5
bWJvbCgpKQorICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVVpZChqc0Nhc3Q8U3ltYm9s
Kj4odmFsdWUpLT5wcml2YXRlTmFtZSgpKTsKKyAgICBBU1NFUlQodmFsdWUuaXNTdHJpbmcoKSk7
CisgICAgcmV0dXJuIGFzU3RyaW5nKHZhbHVlKS0+dG9JZGVudGlmaWVyKGxleGljYWxHbG9iYWxP
YmplY3QpOworfQorCitKU0M6OkpTVmFsdWUgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxl
cjo6ZXZhbHVhdGVNb2R1bGUoSlNDOjpKU01vZHVsZVJlY29yZCYgbW9kdWxlUmVjb3JkKQorewor
ICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBlci5nZXQoKTsKKyAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZt
IH07CisgICAgcmV0dXJuIG1vZHVsZVJlY29yZC5ldmFsdWF0ZSgmZ2xvYmFsT2JqZWN0KTsKK30K
KworTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVy
Ojpsb2FkTW9kdWxlU3luY2hyb25vdXNseShXb3JrZXJTY3JpcHRGZXRjaGVyJiBzY3JpcHRGZXRj
aGVyLCBjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlKQoreworICAgIGlmIChpc0V4
ZWN1dGlvbkZvcmJpZGRlbigpKQorICAgICAgICByZXR1cm4gTWVzc2FnZVF1ZXVlVGVybWluYXRl
ZDsKKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZ2xvYmFsT2JqZWN0
ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKworICAgIGF1dG8gcHJvdGVj
dG9yID0gbWFrZVJlZihzY3JpcHRGZXRjaGVyKTsKKyAgICB7CisgICAgICAgIGF1dG8mIHByb21p
c2UgPSBKU0V4ZWNTdGF0ZTo6bG9hZE1vZHVsZShnbG9iYWxPYmplY3QsIHNvdXJjZUNvZGUuanNT
b3VyY2VDb2RlKCksIEpTQzo6SlNTY3JpcHRGZXRjaGVyOjpjcmVhdGUodm0sIHsgJnNjcmlwdEZl
dGNoZXIgfSkpOworCisgICAgICAgIGF1dG8mIGZ1bGZpbGxIYW5kbGVyID0gKkpTTmF0aXZlU3Rk
RnVuY3Rpb246OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFtwcm90ZWN0
b3JdKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSAt
PiBKU0M6OkVuY29kZWRKU1ZhbHVlIHsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKKyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAg
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICAgICAgICAgIElk
ZW50aWZpZXIgbW9kdWxlS2V5ID0ganNWYWx1ZVRvTW9kdWxlS2V5KGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLT5hcmd1bWVudCgwKSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOworICAgICAgICAgICAgcHJvdGVjdG9yLT5ub3RpZnlMb2FkQ29tcGxldGVkKCpt
b2R1bGVLZXkuaW1wbCgpKTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIGF1dG8mIHJlamVjdEhhbmRsZXIg
PSAqSlNOYXRpdmVTdGRGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCAxLCBTdHJp
bmcoKSwgW3Byb3RlY3Rvcl0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpIHsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIEpTVmFs
dWUgZXJyb3JWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAgICAgICAgICBpZiAo
ZXJyb3JWYWx1ZS5pc09iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byogb2JqZWN0ID0g
SlNDOjphc09iamVjdChlcnJvclZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSBm
YWlsdXJlS2luZFZhbHVlID0gb2JqZWN0LT5nZXREaXJlY3Qodm0sIHN0YXRpY19jYXN0PEpTVk1D
bGllbnREYXRhJj4oKnZtLmNsaWVudERhdGEpLmJ1aWx0aW5OYW1lcygpLmZhaWx1cmVLaW5kUHJp
dmF0ZU5hbWUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBob3N0IHByb3Bh
Z2F0ZWQgZXJyb3IgaW4gdGhlIG1vZHVsZSBsb2FkZXIgcGlwZWxpbmUuCisgICAgICAgICAgICAg
ICAgICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8TW9kdWxlRmV0Y2hGYWlsdXJlS2luZD4oZmFpbHVy
ZUtpbmRWYWx1ZS5hc0ludDMyKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgTW9kdWxl
RmV0Y2hGYWlsdXJlS2luZDo6V2FzRXJyb3JlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHBy
b3RlY3Rvci0+bm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3IgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIExvYWRhYmxlU2NyaXB0OjpFcnJvclR5cGU6OkNhY2hlZFNj
cmlwdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6Om51bGxvcHQKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2UgTW9kdWxlRmV0Y2hGYWlsdXJlS2luZDo6V2FzQ2FuY2VsZWQ6
CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0b3ItPm5vdGlmeUxvYWRXYXNDYW5jZWxl
ZCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICAgICAgICAgIHByb3RlY3Rv
ci0+bm90aWZ5TG9hZEZhaWxlZChMb2FkYWJsZVNjcmlwdDo6RXJyb3IgeworICAgICAgICAgICAg
ICAgIExvYWRhYmxlU2NyaXB0OjpFcnJvclR5cGU6OkNhY2hlZFNjcmlwdCwKKyAgICAgICAgICAg
ICAgICBMb2FkYWJsZVNjcmlwdDo6Q29uc29sZU1lc3NhZ2UgeworICAgICAgICAgICAgICAgICAg
ICBNZXNzYWdlU291cmNlOjpKUywKKyAgICAgICAgICAgICAgICAgICAgTWVzc2FnZUxldmVsOjpF
cnJvciwKKyAgICAgICAgICAgICAgICAgICAgcmV0cmlldmVFcnJvck1lc3NhZ2UoKmdsb2JhbE9i
amVjdCwgdm0sIGVycm9yVmFsdWUsIHNjb3BlKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CisgICAgICAgIH0pOworCisgICAgICAgIHByb21pc2UudGhlbigmZ2xvYmFsT2JqZWN0LCAm
ZnVsZmlsbEhhbmRsZXIsICZyZWplY3RIYW5kbGVyKTsKKyAgICB9CisgICAgbV9nbG9iYWxTY29w
ZS0+ZXZlbnRMb29wKCkucGVyZm9ybU1pY3JvdGFza0NoZWNrcG9pbnQoKTsKKworICAgIC8vIERy
aXZlIFJ1bkxvb3AgdW50aWwgd2UgZ2V0IGVpdGhlciBvZiAiV29ya2VyIGlzIHRlcm1pbmF0ZWQi
LCAiTG9hZGluZyBpcyBkb25lIiwgb3IgIkxvYWRpbmcgaXMgZmFpbGVkIi4KKyAgICBXb3JrZXJS
dW5Mb29wJiBydW5Mb29wID0gbV9nbG9iYWxTY29wZS0+d29ya2VyT3JXb3JrbGV0VGhyZWFkKCkt
PnJ1bkxvb3AoKTsKKworICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHJlY2VpdmUgbWVzc2FnZXMg
dGhhdCBhcmUgbm90IHJlbGF0ZWQgdG8gYXN5bmNocm9ub3VzIHJlc291cmNlIGxvYWRpbmcuCisg
ICAgLy8gT3RoZXJ3aXNlLCBhIHdvcmtlciBkaXNjYXJkcyBzb21lIG1lc3NhZ2VzIGZyb20gdGhl
IG1haW4gdGhyZWFkIGhlcmUgaW4gYSByYWN5IHdheS4KKyAgICAvLyBGb3IgZXhhbXBsZSwgdGhl
IG1haW4gdGhyZWFkIGNhbiBwb3N0TWVzc2FnZSBqdXN0IGFmdGVyIGNyZWF0aW5nIGEgV29ya2Vy
LiBJbiB0aGF0IGNhc2UsIHBvc3RNZXNzYWdlJ3MKKyAgICAvLyB0YXNrIGlzIHF1ZXVlZCBpbiBX
b3JrZXJSdW5Mb29wIGJlZm9yZSBzdGFydCBydW5uaW5nIG1vZHVsZSBzY3JpcHRzLiBUaGlzIHRh
c2sgc2hvdWxkIG5vdCBiZSBkaXNjYXJkZWQKKyAgICAvLyBpbiB0aGUgZm9sbG93aW5nIGRyaXZp
bmcgb2YgdGhlIFJ1bkxvb3Agd2hpY2ggbWFpbmx5IGF0dGVtcHQgdG8gY29sbGVjdCBpbml0aWFs
IGxvYWQgb2YgbW9kdWxlIHNjcmlwdHMuCisgICAgU3RyaW5nIHRhc2tNb2RlID0gV29ya2VyTW9k
dWxlU2NyaXB0TG9hZGVyOjp0YXNrTW9kZSgpOworICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQg
cmVzdWx0ID0gTWVzc2FnZVF1ZXVlTWVzc2FnZVJlY2VpdmVkOworICAgIHdoaWxlICgoIXByb3Rl
Y3Rvci0+aXNMb2FkZWQoKSAmJiAhcHJvdGVjdG9yLT53YXNDYW5jZWxlZCgpKSAmJiByZXN1bHQg
IT0gTWVzc2FnZVF1ZXVlVGVybWluYXRlZCkgeworICAgICAgICByZXN1bHQgPSBydW5Mb29wLnJ1
bkluTW9kZShtX2dsb2JhbFNjb3BlLCB0YXNrTW9kZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0g
TWVzc2FnZVF1ZXVlVGVybWluYXRlZCkKKyAgICAgICAgICAgIG1fZ2xvYmFsU2NvcGUtPmV2ZW50
TG9vcCgpLnBlcmZvcm1NaWNyb3Rhc2tDaGVja3BvaW50KCk7CisgICAgfQorCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKwordm9pZCBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsaW5r
QW5kRXZhbHVhdGVNb2R1bGUoV29ya2VyU2NyaXB0RmV0Y2hlciYgc2NyaXB0RmV0Y2hlciwgY29u
c3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwgU3RyaW5nKiByZXR1cm5lZEV4Y2VwdGlv
bk1lc3NhZ2UpCit7CisgICAgaWYgKGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZ2xvYmFsT2Jq
ZWN0ID0gKm1fZ2xvYmFsU2NvcGVXcmFwcGVyLmdldCgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC52bSgpOworICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKworICAgIE5ha2VkUHRy
PEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICBKU0V4ZWNTdGF0ZTo6bGlu
a0FuZEV2YWx1YXRlTW9kdWxlKGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwg
c2NyaXB0RmV0Y2hlci5tb2R1bGVLZXkoKSksIGpzVW5kZWZpbmVkKCksIHJldHVybmVkRXhjZXB0
aW9uKTsKKyAgICBpZiAoKHJldHVybmVkRXhjZXB0aW9uICYmIGlzVGVybWluYXRlZEV4ZWN1dGlv
bkV4Y2VwdGlvbih2bSwgcmV0dXJuZWRFeGNlcHRpb24pKSB8fCBpc1Rlcm1pbmF0aW5nRXhlY3V0
aW9uKCkpIHsKKyAgICAgICAgZm9yYmlkRXhlY3V0aW9uKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBpZiAocmV0dXJuZWRFeGNlcHRpb24pIHsKKyAgICAgICAgaWYgKG1fZ2xvYmFs
U2NvcGUtPmNhbkluY2x1ZGVFcnJvckRldGFpbHMoc291cmNlQ29kZS5jYWNoZWRTY3JpcHQoKSwg
c291cmNlQ29kZS51cmwoKS5zdHJpbmcoKSkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJdCdz
IG5vdCBncmVhdCB0aGF0IHRoaXMgY2FuIHJ1biBhcmJpdHJhcnkgY29kZSB0byBzdHJpbmctaWZ5
IHRoZSB2YWx1ZSBvZiB0aGUgZXhjZXB0aW9uLgorICAgICAgICAgICAgLy8gRG8gd2UgbmVlZCB0
byBkbyBhbnl0aGluZyB0byBoYW5kbGUgdGhhdCBwcm9wZXJseSwgaWYgaXQsIHNheSwgcmFpc2Vz
IGFub3RoZXIgZXhjZXB0aW9uPworICAgICAgICAgICAgaWYgKHJldHVybmVkRXhjZXB0aW9uTWVz
c2FnZSkKKyAgICAgICAgICAgICAgICAqcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gcmV0dXJu
ZWRFeGNlcHRpb24tPnZhbHVlKCkudG9XVEZTdHJpbmcoJmdsb2JhbE9iamVjdCk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAvLyBPdmVyd3JpdGUgdGhlIGRldGFpbGVkIGVycm9yIHdp
dGggYSBnZW5lcmljIGVycm9yLgorICAgICAgICAgICAgU3RyaW5nIGdlbmVyaWNFcnJvck1lc3Nh
Z2UgeyAiU2NyaXB0IGVycm9yLiJfcyB9OworICAgICAgICAgICAgaWYgKHJldHVybmVkRXhjZXB0
aW9uTWVzc2FnZSkKKyAgICAgICAgICAgICAgICAqcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0g
Z2VuZXJpY0Vycm9yTWVzc2FnZTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBXb3JrZXJP
cldvcmtsZXRTY3JpcHRDb250cm9sbGVyOjpsb2FkQW5kRXZhbHVhdGVNb2R1bGUoY29uc3QgVVJM
JiBtb2R1bGVVUkwsIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8RXhjZXB0aW9uPiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBpZiAoaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSkgeworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpbml0U2NyaXB0SWZOZWVkZWQoKTsKKworICAgIGF1dG8mIGds
b2JhbE9iamVjdCA9ICptX2dsb2JhbFNjb3BlV3JhcHBlci5nZXQoKTsKKyAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayB7IHZtIH07CisKKyAgICBh
dXRvIHNjcmlwdEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpjcmVhdGUoY3JlZGVudGlh
bHMsIGdsb2JhbFNjb3BlKCktPmRlc3RpbmF0aW9uKCksIGdsb2JhbFNjb3BlKCktPnJlZmVycmVy
UG9saWN5KCkpOworICAgIHsKKyAgICAgICAgYXV0byYgcHJvbWlzZSA9IEpTRXhlY1N0YXRlOjps
b2FkTW9kdWxlKGdsb2JhbE9iamVjdCwgbW9kdWxlVVJMLnN0cmluZygpLCBKU0M6OkpTU2NyaXB0
RmV0Y2hQYXJhbWV0ZXJzOjpjcmVhdGUodm0sIG1ha2VSZWYoc2NyaXB0RmV0Y2hlci0+cGFyYW1l
dGVycygpKSksIEpTQzo6SlNTY3JpcHRGZXRjaGVyOjpjcmVhdGUodm0sIHsgc2NyaXB0RmV0Y2hl
ci5wdHIoKSB9KSk7CisKKyAgICAgICAgYXV0byB0YXNrID0gY3JlYXRlU2hhcmVkVGFzazx2b2lk
KE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+KFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7Cisg
ICAgICAgIH0pOworCisgICAgICAgIGF1dG8mIGZ1bGZpbGxIYW5kbGVyID0gKkpTTmF0aXZlU3Rk
RnVuY3Rpb246OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgMSwgU3RyaW5nKCksIFt0YXNrLCBz
Y3JpcHRGZXRjaGVyXShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkgLT4gSlNDOjpFbmNvZGVkSlNWYWx1ZSB7CisgICAgICAgICAgICAvLyB0YXNrLT5y
dW4oV1RGOjpudWxsb3B0KTsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgICAgICAgICAgSWRlbnRp
ZmllciBtb2R1bGVLZXkgPSBqc1ZhbHVlVG9Nb2R1bGVLZXkoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CisgICAgICAgICAgICBzY3JpcHRGZXRjaGVyLT5ub3RpZnlMb2FkQ29tcGxldGVkKCpt
b2R1bGVLZXkuaW1wbCgpKTsKKworICAgICAgICAgICAgYXV0byogY29udGV4dCA9IGRvd25jYXN0
PFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlPihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihn
bG9iYWxPYmplY3QpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICAgICAgaWYg
KCFjb250ZXh0IHx8ICFjb250ZXh0LT5zY3JpcHQoKSkgeworICAgICAgICAgICAgICAgIHRhc2st
PnJ1bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIE5ha2VkUHRy
PEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKKyAgICAgICAgICAgIEpTRXhlY1N0
YXRlOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUoKmdsb2JhbE9iamVjdCwgbW9kdWxlS2V5LCBqc1Vu
ZGVmaW5lZCgpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgICAgICAgICBpZiAoKHJldHVybmVk
RXhjZXB0aW9uICYmIGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbih2bSwgcmV0dXJuZWRF
eGNlcHRpb24pKSB8fCBjb250ZXh0LT5zY3JpcHQoKS0+aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigp
KSB7CisgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQtPnNjcmlwdCgpKQorICAgICAgICAgICAg
ICAgICAgICBjb250ZXh0LT5zY3JpcHQoKS0+Zm9yYmlkRXhlY3V0aW9uKCk7CisgICAgICAgICAg
ICAgICAgdGFzay0+cnVuKFdURjo6bnVsbG9wdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3Nh
Z2U7CisgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQtPmNhbkluY2x1ZGVFcnJvckRldGFpbHMo
bnVsbHB0ciwgbW9kdWxlS2V5LnN0cmluZygpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGNhbiBydW4gYXJiaXRyYXJ5IGNvZGUgdG8g
c3RyaW5nLWlmeSB0aGUgdmFsdWUgb2YgdGhlIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgICAgICAg
ICAgLy8gRG8gd2UgbmVlZCB0byBkbyBhbnl0aGluZyB0byBoYW5kbGUgdGhhdCBwcm9wZXJseSwg
aWYgaXQsIHNheSwgcmFpc2VzIGFub3RoZXIgZXhjZXB0aW9uPworICAgICAgICAgICAgICAgICAg
ICBtZXNzYWdlID0gcmV0dXJuZWRFeGNlcHRpb24tPnZhbHVlKCkudG9XVEZTdHJpbmcoZ2xvYmFs
T2JqZWN0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAv
LyBPdmVyd3JpdGUgdGhlIGRldGFpbGVkIGVycm9yIHdpdGggYSBnZW5lcmljIGVycm9yLgorICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlID0gIlNjcmlwdCBlcnJvci4iX3M7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlcG9ydEV4Y2VwdGlvbihtZXNzYWdl
LCB7IH0sIHsgfSwgeyB9LCB7IH0sIHsgfSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IHRhc2stPnJ1bihXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXV0byYgcmVqZWN0
SGFuZGxlciA9ICpKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3Qs
IDEsIFN0cmluZygpLCBbdGFza10oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpIHsKKyAgICAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKKyAgICAgICAgICAgIEpTTG9ja0hvbGRlciBsb2NrIHsgdm0gfTsKKyAgICAgICAgICAgIEpT
VmFsdWUgZXJyb3JWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAgICAgICAgICBp
ZiAoZXJyb3JWYWx1ZS5pc09iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgYXV0byogb2JqZWN0
ID0gSlNDOjphc09iamVjdChlcnJvclZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0
LT5nZXREaXJlY3Qodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhJj4oKnZtLmNsaWVudERh
dGEpLmJ1aWx0aW5OYW1lcygpLmZhaWx1cmVLaW5kUHJpdmF0ZU5hbWUoKSkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7Cisg
ICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gcmV0cmlldmVFcnJvck1lc3NhZ2VX
aXRob3V0TmFtZSgqZ2xvYmFsT2JqZWN0LCB2bSwgb2JqZWN0LCBjYXRjaFNjb3BlKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGFzay0+cnVuKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsIG1lc3NhZ2Ug
fSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChvYmplY3QtPmlu
aGVyaXRzPEVycm9ySW5zdGFuY2U+KHZtKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvKiBl
cnJvciA9IGpzQ2FzdDxFcnJvckluc3RhbmNlKj4ob2JqZWN0KTsKKyAgICAgICAgICAgICAgICAg
ICAgc3dpdGNoIChlcnJvci0+ZXJyb3JUeXBlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBFcnJvclR5cGU6OlR5cGVFcnJvcjogeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBj
YXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBTdHJpbmcgbWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoKmds
b2JhbE9iamVjdCwgdm0sIGVycm9yLCBjYXRjaFNjb3BlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRhc2stPnJ1bihFeGNlcHRpb24geyBUeXBlRXJyb3IsIG1lc3NhZ2UgfSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JUeXBl
OjpTeW50YXhFcnJvcjogeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBjYXRjaFNjb3Bl
ID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJp
bmcgbWVzc2FnZSA9IHJldHJpZXZlRXJyb3JNZXNzYWdlV2l0aG91dE5hbWUoKmdsb2JhbE9iamVj
dCwgdm0sIGVycm9yLCBjYXRjaFNjb3BlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhc2st
PnJ1bihFeGNlcHRpb24geyBKU1N5bnRheEVycm9yLCBtZXNzYWdlIH0pOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGF1dG8gY2F0Y2hTY29wZSA9IERF
Q0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSByZXRy
aWV2ZUVycm9yTWVzc2FnZVdpdGhvdXROYW1lKCpnbG9iYWxPYmplY3QsIHZtLCBlcnJvclZhbHVl
LCBjYXRjaFNjb3BlKTsKKyAgICAgICAgICAgIHRhc2stPnJ1bihFeGNlcHRpb24geyBBYm9ydEVy
cm9yLCBtZXNzYWdlIH0pOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcHJvbWlzZS50aGVuKCZnbG9iYWxP
YmplY3QsICZmdWxmaWxsSGFuZGxlciwgJnJlamVjdEhhbmRsZXIpOworICAgIH0KKyAgICBtX2ds
b2JhbFNjb3BlLT5ldmVudExvb3AoKS5wZXJmb3JtTWljcm90YXNrQ2hlY2twb2ludCgpOworfQor
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBKU0dsb2JhbFNjb3BlUHJvdG90eXBlLCB0eXBlbmFtZSBKU0ds
b2JhbFNjb3BlLCB0eXBlbmFtZSBHbG9iYWxTY29wZT4KIHZvaWQgV29ya2VyT3JXb3JrbGV0U2Ny
aXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdFdpdGhTdWJjbGFzcygpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9yV29ya2xldFNjcmlwdENvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5o
CmluZGV4IGM0OTMwMWFlZDNkZDA4OWRhNzk3MzI3NjBjYWYyZjdiNjRkYjExYjYuLmU5ODA2Mzkx
MDI5OTU0OTI4NDY4MDVjMGMxN2YwMGM3OGI3MTQxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5oCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSdW5Mb29wVGltZXIuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVk
ZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9OYWtlZFB0ci5oPgogCiBuYW1l
c3BhY2UgSlNDIHsKQEAgLTQ3LDYgKzQ4LDcgQEAgY2xhc3MgSlNET01HbG9iYWxPYmplY3Q7CiBj
bGFzcyBTY3JpcHRTb3VyY2VDb2RlOwogY2xhc3MgV29ya2VyQ29uc29sZUNsaWVudDsKIGNsYXNz
IFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlOworY2xhc3MgV29ya2VyU2NyaXB0RmV0Y2hlcjsK
IAogY2xhc3MgV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlciB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlcik7CkBAIC05NCw2ICs5
NiwxMyBAQCBjbGFzcyBXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyIHsKICAgICB2b2lk
IGV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0
aW9uTWVzc2FnZSA9IG51bGxwdHIpOwogICAgIHZvaWQgZXZhbHVhdGUoY29uc3QgU2NyaXB0U291
cmNlQ29kZSYsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24sIFN0
cmluZyogcmV0dXJuZWRFeGNlcHRpb25NZXNzYWdlID0gbnVsbHB0cik7CiAKKyAgICBKU0M6OkpT
VmFsdWUgZXZhbHVhdGVNb2R1bGUoSlNDOjpKU01vZHVsZVJlY29yZCYpOworCisgICAgdm9pZCBs
aW5rQW5kRXZhbHVhdGVNb2R1bGUoV29ya2VyU2NyaXB0RmV0Y2hlciYsIGNvbnN0IFNjcmlwdFNv
dXJjZUNvZGUmLCBTdHJpbmcqIHJldHVybmVkRXhjZXB0aW9uTWVzc2FnZSA9IG51bGxwdHIpOwor
ICAgIE1lc3NhZ2VRdWV1ZVdhaXRSZXN1bHQgbG9hZE1vZHVsZVN5bmNocm9ub3VzbHkoV29ya2Vy
U2NyaXB0RmV0Y2hlciYsIGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmKTsKKworICAgIHZvaWQgbG9h
ZEFuZEV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgbW9kdWxlVVJMLCBGZXRjaE9wdGlvbnM6OkNy
ZWRlbnRpYWxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJik+
JiYpOworCiBwcm90ZWN0ZWQ6CiAgICAgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUqIGdsb2Jh
bFNjb3BlKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxTY29wZTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggM2E0ZGFlZmMzOTAyYmRi
MmVhODRmYzU4ZDdlNDJmODNlNWYwN2UyZi4uNGQ0NzRmMTZlNTg4ZGQwMGZiMzlkNTYwZjY0MTNj
NjJhOTM4NmVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3Jp
cHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9h
ZGVyLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIE9wdGlvbmFsPEV4Y2VwdGlvbj4gV29ya2VyU2Ny
aXB0TG9hZGVyOjpsb2FkU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0CiAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRB
c3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3JpcHRSZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBmZXRj
aE9wdGlvbnMsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUgc2VydmljZVdvcmtlck1vZGUs
IFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50KQordm9pZCBXb3JrZXJTY3JpcHRMb2Fk
ZXI6OmxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBSZXNvdXJjZVJlcXVlc3QmJiBzY3JpcHRSZXF1ZXN0LCBGZXRjaE9wdGlv
bnMmJiBmZXRjaE9wdGlvbnMsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNvbnRl
bnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBTZXJ2aWNlV29ya2Vyc01vZGUgc2VydmljZVdv
cmtlck1vZGUsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCYgY2xpZW50LCBTdHJpbmcmJiB0YXNr
TW9kZSkKIHsKICAgICBtX2NsaWVudCA9ICZjbGllbnQ7CiAgICAgbV91cmwgPSBzY3JpcHRSZXF1
ZXN0LnVybCgpOwpAQCAtMTE5LDEyICsxMTksNyBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6
bG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dAog
ICAgIGlmICghcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI2ZldGNoLWEtc2luZ2xl
LW1vZHVsZS1zY3JpcHQKLSAgICBBU1NFUlQoZmV0Y2hPcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRp
b25zOjpNb2RlOjpTYW1lT3JpZ2luIHx8IChmZXRjaE9wdGlvbnMuZGVzdGluYXRpb24gIT0gRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2VydmljZXdvcmtlciAmJiBmZXRjaE9wdGlvbnMuZGVz
dGluYXRpb24gIT0gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29ya2VyKSk7Ci0KICAgICBU
aHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zIHsgV1RGTW92ZShmZXRjaE9wdGlvbnMpIH07
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhZGQgYW4gb3B0aW9uIHRvIHNldCBjcmVkZW50aWFs
IG1vZGUuCi0gICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlh
bHM6OlNhbWVPcmlnaW47CiAgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxs
YmFja1BvbGljeTo6U2VuZENhbGxiYWNrczsKICAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBv
bGljeUVuZm9yY2VtZW50ID0gY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ7CiAgICAg
aWYgKGZldGNoT3B0aW9ucy5kZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9u
OjpTZXJ2aWNld29ya2VyKQpAQCAtMTQzLDcgKzEzOCw3IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9h
ZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhl
Y3V0CiAKICAgICAvLyBEdXJpbmcgY3JlYXRlLCBjYWxsYmFja3MgbWF5IGhhcHBlbiB3aGljaCBy
ZW1vdmUgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0LgogICAgIFJlZjxXb3JrZXJT
Y3JpcHRMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwotICAgIG1fdGhyZWFkYWJsZUxvYWRl
ciA9IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCAqdGhp
cywgV1RGTW92ZSgqcmVxdWVzdCksIG9wdGlvbnMpOworICAgIG1fdGhyZWFkYWJsZUxvYWRlciA9
IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCAqdGhpcywg
V1RGTW92ZSgqcmVxdWVzdCksIG9wdGlvbnMsIHsgfSwgV1RGTW92ZSh0YXNrTW9kZSkpOwogfQog
CiBjb25zdCBVUkwmIFdvcmtlclNjcmlwdExvYWRlcjo6cmVzcG9uc2VVUkwoKSBjb25zdApAQCAt
MTkwLDYgKzE4NSw4IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9u
c2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvCiAgICAgbV9jZXJ0aWZpY2F0
ZUluZm8gPSByZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKSA/ICpyZXNwb25zZS5jZXJ0aWZpY2F0
ZUluZm8oKSA6IENlcnRpZmljYXRlSW5mbygpOwogICAgIG1fcmVzcG9uc2VNSU1FVHlwZSA9IHJl
c3BvbnNlLm1pbWVUeXBlKCk7CiAgICAgbV9yZXNwb25zZUVuY29kaW5nID0gcmVzcG9uc2UudGV4
dEVuY29kaW5nTmFtZSgpOworICAgIG1fcmVzcG9uc2VTb3VyY2UgPSByZXNwb25zZS5zb3VyY2Uo
KTsKKyAgICBtX2lzUmVkaXJlY3RlZCA9IHJlc3BvbnNlLmlzUmVkaXJlY3RlZCgpOwogICAgIG1f
Y29udGVudFNlY3VyaXR5UG9saWN5ID0gQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzIHsgcmVzcG9uc2UgfTsKICAgICBtX3JlZmVycmVyUG9saWN5ID0gcmVzcG9uc2UuaHR0cEhl
YWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpSZWZlcnJlclBvbGljeSk7CiAgICAgaWYgKG1fY2xp
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKaW5kZXgg
N2ZkZDBiM2Y2YTAxYzJkYjU3NzI0YTkwYjNiYjk4NDBmMWU2OGU1Zi4uY2ZhMzFhMzUzMjU5YWVl
ZDE5OGY5MzkxZmZjMTUxMWI0MDUwYjg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRmV0Y2hPcHRp
b25zLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVx
dWVzdC5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJUaHJlYWRh
YmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgogI2luY2x1
ZGUgPG1lbW9yeT4KQEAgLTQzLDcgKzQ0LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRXhjZXB0aW9uOwotY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xhc3MgV29ya2VyU2Ny
aXB0TG9hZGVyQ2xpZW50OwpAQCAtNTgsNyArNTgsNyBAQCBjbGFzcyBXb3JrZXJTY3JpcHRMb2Fk
ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJTY3JpcHRMb2FkZXI+LCBwdWJsaWMgVGhyZWFk
YQogICAgIH0KIAogICAgIE9wdGlvbmFsPEV4Y2VwdGlvbj4gbG9hZFN5bmNocm9ub3VzbHkoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFVSTCYsIEZldGNoT3B0aW9uczo6TW9kZSwgRmV0
Y2hPcHRpb25zOjpDYWNoZSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIGNvbnN0
IFN0cmluZyYgaW5pdGlhdG9ySWRlbnRpZmllcik7Ci0gICAgdm9pZCBsb2FkQXN5bmNocm9ub3Vz
bHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlv
bnMmJiwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9k
ZSwgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Jik7CisgICAgdm9pZCBsb2FkQXN5bmNocm9ub3Vz
bHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlv
bnMmJiwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFNlcnZpY2VXb3JrZXJzTW9k
ZSwgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50JiwgU3RyaW5nJiYgdGFza01vZGUpOwogCiAgICAg
dm9pZCBub3RpZnlFcnJvcigpOwogCkBAIC02Nyw2ICs2Nyw4IEBAIGNsYXNzIFdvcmtlclNjcmlw
dExvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj4sIHB1YmxpYyBU
aHJlYWRhCiAgICAgY29uc3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVmZXJyZXJQb2xpY3k7IH0KICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJu
IG1fdXJsOyB9CiAgICAgY29uc3QgVVJMJiByZXNwb25zZVVSTCgpIGNvbnN0OworICAgIFJlc291
cmNlUmVzcG9uc2U6OlNvdXJjZSByZXNwb25zZVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
cG9uc2VTb3VyY2U7IH0KKyAgICBib29sIGlzUmVkaXJlY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNSZWRpcmVjdGVkOyB9CiAgICAgY29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUlu
Zm8oKSBjb25zdCB7IHJldHVybiBtX2NlcnRpZmljYXRlSW5mbzsgfQogICAgIGNvbnN0IFN0cmlu
ZyYgcmVzcG9uc2VNSU1FVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2VNSU1FVHlwZTsg
fQogICAgIGJvb2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsZWQ7IH0KQEAgLTEwNyw2
ICsxMDksOCBAQCBjbGFzcyBXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxX
b3JrZXJTY3JpcHRMb2FkZXI+LCBwdWJsaWMgVGhyZWFkYQogICAgIHVuc2lnbmVkIGxvbmcgbV9p
ZGVudGlmaWVyIHsgMCB9OwogICAgIGJvb2wgbV9mYWlsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9maW5pc2hpbmcgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1JlZGlyZWN0ZWQgeyBmYWxzZSB9
OworICAgIFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZSBtX3Jlc3BvbnNlU291cmNlIHsgUmVzb3Vy
Y2VSZXNwb25zZTo6U291cmNlOjpVbmtub3duIH07CiAgICAgUmVzb3VyY2VFcnJvciBtX2Vycm9y
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDcyNzkw
YTAzMzIyNjE5ZTZlZTdlNjE2YThiZGUxOGJkNTUyYTU3ODMuLjliNmMzZTdlMGU3MzE0NWI3NWI2
NTM3NDEzZDVmZjA1YmM1NTFiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHAKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2lu
Y2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
KyNpbmNsdWRlICJXb3JrZXJTY3JpcHRGZXRjaGVyLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC01NSw2ICs1Nyw4IEBAIFdvcmtlclBhcmFtZXRlcnMgV29ya2Vy
UGFyYW1ldGVyczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICAgICAgc2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LAogICAgICAgICB0aW1lT3JpZ2luLAogICAgICAg
ICByZWZlcnJlclBvbGljeSwKKyAgICAgICAgd29ya2VyVHlwZSwKKyAgICAgICAgY3JlZGVudGlh
bHMsCiAgICAgICAgIHNldHRpbmdzVmFsdWVzLmlzb2xhdGVkQ29weSgpCiAgICAgfTsKIH0KQEAg
LTEyMyw5ICsxMjcsMjkgQEAgYm9vbCBXb3JrZXJUaHJlYWQ6OnNob3VsZFdhaXRGb3JXZWJJbnNw
ZWN0b3JPblN0YXJ0dXAoKSBjb25zdAogCiB2b2lkIFdvcmtlclRocmVhZDo6ZXZhbHVhdGVTY3Jp
cHRJZk5lY2Vzc2FyeShTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpCiB7Ci0gICAgZ2xvYmFsU2Nv
cGUoKS0+c2NyaXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+
c291cmNlQ29kZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKSwgJmV4Y2Vw
dGlvbk1lc3NhZ2UpOwotCi0gICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCk7CisgICAgLy8g
V2UgYXJlIGN1cnJlbnRseSBob2xkaW5nIG9ubHkgdGhlIGluaXRpYWwgc2NyaXB0IGNvZGUuIElm
IHRoZSBXb3JrZXJUeXBlIGlzIE1vZHVsZSwgd2Ugc2hvdWxkIGZldGNoIHRoZSBlbnRpcmUgZ3Jh
cGggYmVmb3JlIGV4ZWN1dGluZyB0aGUgcmVzdCBvZiB0aGlzLgorICAgIC8vIFdlIGludm9rZSBt
b2R1bGUgbG9hZGVyIGFzIGlmIHdlIGFyZSBleGVjdXRpbmcgaW5saW5lIG1vZHVsZSBzY3JpcHQg
dGFnIGluIERvY3VtZW50LgorCisgICAgaWYgKG1fc3RhcnR1cERhdGEtPnBhcmFtcy53b3JrZXJU
eXBlID09IFdvcmtlclR5cGU6OkNsYXNzaWMpIHsKKyAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2Ny
aXB0KCktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+c291cmNlQ29k
ZSwgVVJMKG1fc3RhcnR1cERhdGEtPnBhcmFtcy5zY3JpcHRVUkwpKSwgJmV4Y2VwdGlvbk1lc3Nh
Z2UpOworICAgICAgICBmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBhdXRvIHNjcmlwdEZldGNoZXIgPSBXb3JrZXJTY3JpcHRGZXRjaGVyOjpjcmVhdGUo
Z2xvYmFsU2NvcGUoKS0+Y3JlZGVudGlhbHMoKSwgZ2xvYmFsU2NvcGUoKS0+ZGVzdGluYXRpb24o
KSwgZ2xvYmFsU2NvcGUoKS0+cmVmZXJyZXJQb2xpY3koKSk7CisgICAgICAgIFNjcmlwdFNvdXJj
ZUNvZGUgc291cmNlQ29kZShtX3N0YXJ0dXBEYXRhLT5zb3VyY2VDb2RlLCBVUkwobV9zdGFydHVw
RGF0YS0+cGFyYW1zLnNjcmlwdFVSTCksIHsgfSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5
cGU6Ok1vZHVsZSwgc2NyaXB0RmV0Y2hlci5jb3B5UmVmKCkpOworICAgICAgICBNZXNzYWdlUXVl
dWVXYWl0UmVzdWx0IHJlc3VsdCA9IGdsb2JhbFNjb3BlKCktPnNjcmlwdCgpLT5sb2FkTW9kdWxl
U3luY2hyb25vdXNseShzY3JpcHRGZXRjaGVyLmdldCgpLCBzb3VyY2VDb2RlKTsKKyAgICAgICAg
aWYgKHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkKSB7CisgICAgICAgICAgICBpZiAo
T3B0aW9uYWw8TG9hZGFibGVTY3JpcHQ6OkVycm9yPiBlcnJvciA9IHNjcmlwdEZldGNoZXItPmVy
cm9yKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoT3B0aW9uYWw8TG9hZGFibGVTY3JpcHQ6OkNv
bnNvbGVNZXNzYWdlPiBtZXNzYWdlID0gZXJyb3ItPmNvbnNvbGVNZXNzYWdlKQorICAgICAgICAg
ICAgICAgICAgICBleGNlcHRpb25NZXNzYWdlID0gbWVzc2FnZS0+bWVzc2FnZTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbk1lc3NhZ2UgPSAiSW1w
b3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIl9zOworICAgICAgICAgICAgICAgIGdsb2Jh
bFNjb3BlKCktPnJlcG9ydEV4Y2VwdGlvbihleGNlcHRpb25NZXNzYWdlLCB7IH0sIHsgfSwgeyB9
LCB7IH0sIHsgfSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFzY3JpcHRGZXRjaGVyLT53YXND
YW5jZWxlZCgpKSB7CisgICAgICAgICAgICAgICAgZ2xvYmFsU2NvcGUoKS0+c2NyaXB0KCktPmxp
bmtBbmRFdmFsdWF0ZU1vZHVsZShzY3JpcHRGZXRjaGVyLmdldCgpLCBzb3VyY2VDb2RlLCAmZXhj
ZXB0aW9uTWVzc2FnZSk7CisgICAgICAgICAgICAgICAgZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0
KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CiAKICAgICAvLyBGcmVlIHRoZSBz
dGFydHVwIGRhdGEgdG8gY2F1c2UgaXRzIG1lbWJlciB2YXJpYWJsZSBkZXJlZidzIGhhcHBlbiBv
biB0aGUgd29ya2VyJ3MgdGhyZWFkIChzaW5jZQogICAgIC8vIGFsbCByZWYvZGVyZWZzIG9mIHRo
ZXNlIG9iamVjdHMgYXJlIGhhcHBlbmluZyBvbiB0aGUgdGhyZWFkIGF0IHRoaXMgcG9pbnQpLiBO
b3RlIHRoYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCmluZGV4IDg4OTA3OTA4
ZTdhOWI4MDllOGYyYTRlNDczZDc1MmQxMWQyOTM3YzAuLjk1MTJlZmRiMThmMzJhNTBlY2I3ZmI1
Njk1OWQ2MWU4ODcyZmExZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaApA
QCAtMjYsNyArMjYsMTAgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0Q3JlZGVu
dGlhbHMuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRUaHJlYWQuaCIKKyNpbmNsdWRlICJX
b3JrZXJSdW5Mb29wLmgiCisjaW5jbHVkZSAiV29ya2VyVHlwZS5oIgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1J1bnRpbWVGbGFncy5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvVVJMLmg+CkBAIC02Myw2ICs2Niw4IEBAIHN0cnVjdCBXb3JrZXJQYXJhbWV0ZXJzIHsKICAg
ICBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeTsKICAgICBN
b25vdG9uaWNUaW1lIHRpbWVPcmlnaW47CiAgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xp
Y3k7CisgICAgV29ya2VyVHlwZSB3b3JrZXJUeXBlOworICAgIEZldGNoUmVxdWVzdENyZWRlbnRp
YWxzIGNyZWRlbnRpYWxzOwogICAgIFNldHRpbmdzOjpWYWx1ZXMgc2V0dGluZ3NWYWx1ZXM7CiAK
ICAgICBXb3JrZXJQYXJhbWV0ZXJzIGlzb2xhdGVkQ29weSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclR5cGUuaAppbmRleCAwYjBlZDg2MGQ5YzcxNDIzOGEyYTViYjlmZGY0Mzg0MDJk
MTZlYmYwLi4xYzFiYjk0NDg2N2FkZjRlZDU3OGEyODE0ZmEzMzIzMjZhZWQ4YTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclR5cGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclR5cGUuaApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgV29ya2VyVHlwZSB7CitlbnVtIGNsYXNzIFdvcmtlclR5
cGUgOiB1aW50OF90IHsKICAgICBDbGFzc2ljLAogICAgIE1vZHVsZSwKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
aAppbmRleCBlYmJlOTVlODkyNGM4ZjFkNzM3NTI1ZGVhMTYzMGIxZmFkNTZmYjI3Li40YzdkZGY0
YTRjMTMxZTBkY2Q2YmEwOTUwOWFiMmQ5NzU3NWYzMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTQ3
LDcgKzQ3LDcgQEAgY2xhc3MgTmF2aWdhdG9yQmFzZTsKIGNsYXNzIFNlcnZpY2VXb3JrZXI7CiAK
IGVudW0gY2xhc3MgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIDogdWludDhfdDsKLWVudW0g
Y2xhc3MgV29ya2VyVHlwZTsKK2VudW0gY2xhc3MgV29ya2VyVHlwZSA6IHVpbnQ4X3Q7CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VQcm94eTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5oCmluZGV4IDYwMmRhNzIzNWRmYWYwZjcyNTAzMTY3MTcwM2ZlZjc2YWY2NGYxN2Qu
LmNlMDdiZjkwNDJhMTBmNWZjMmQ0NTZmOTg1OWZiOWY2ZTUxYzU5ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLmgKQEAgLTY5LDYgKzY5LDggQEAgY2xhc3MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGZp
bmFsIDogcHVibGljIFdvcmtlckdsb2JhbFNjb3BlIHsKICAgICB2b2lkIHNldFNjcmlwdFJlc291
cmNlKGNvbnN0IFVSTCYsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQm
Jik7CiAKICAgICBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbygpIGNvbnN0
IHsgcmV0dXJuIG1fY29udGV4dERhdGEuY2VydGlmaWNhdGVJbmZvOyB9CisKKyAgICBGZXRjaE9w
dGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U2VydmljZXdvcmtlcjsgfQogICAgIAogcHJpdmF0ZToK
ICAgICBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhJiwgY29uc3QgV29ya2VyUGFyYW1ldGVycyYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiwgU2Vy
dmljZVdvcmtlclRocmVhZCYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIElEQkNs
aWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcAppbmRleCBl
YzM5YzBmODQ5YTU0ZTFiNmQwYmVlMzRhOGQ3ZDE5Y2JhNDVlMjg4Li5mOTUxMGNiZjZmZGY3MDQ2
ZjdkMWI5MjIzNjkxNzRkMDFmYTBiZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCkBAIC0xMTAsNyArMTEwLDggQEAgdm9p
ZCBTZXJ2aWNlV29ya2VySm9iOjpmZXRjaFNjcmlwdFdpdGhDb250ZXh0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIEYKICAgICBvcHRpb25zLmNhY2hlID0gY2FjaGVQb2xpY3k7CiAg
ICAgb3B0aW9ucy5yZWRpcmVjdCA9IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkVycm9yOwogICAg
IG9wdGlvbnMuZGVzdGluYXRpb24gPSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTZXJ2aWNl
d29ya2VyOwotICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9ub3VzbHkoY29udGV4dCwg
V1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgQ29udGVudFNlY3VyaXR5UG9saWN5
RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSwgU2VydmljZVdvcmtlcnNNb2RlOjpOb25lLCAqdGhp
cyk7CisgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6
OlNhbWVPcmlnaW47CisgICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseShjb250
ZXh0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpLCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlLCBTZXJ2aWNlV29ya2Vyc01vZGU6Ok5vbmUs
ICp0aGlzLCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIAogUmVzb3VyY2VFcnJv
ciBTZXJ2aWNlV29ya2VySm9iOjp2YWxpZGF0ZVNlcnZpY2VXb3JrZXJSZXNwb25zZShjb25zdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oCmluZGV4IDlkNTAwZjg1YWNi
MTg4NDFjYzU1YmVhODIxMWRiMTRmYWRjOTc0NzUuLjJlMzU1N2ZhN2RmNjdmMWJmOThjN2I3YTVk
ZTRiMGE1YTdiY2NjZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oCkBAIC0z
Miw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgU2VydmljZVdv
cmtlclVwZGF0ZVZpYUNhY2hlIDogdWludDhfdDsKLWVudW0gY2xhc3MgV29ya2VyVHlwZTsKK2Vu
dW0gY2xhc3MgV29ya2VyVHlwZSA6IHVpbnQ4X3Q7CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uT3B0aW9ucyB7CiAgICAgU3RyaW5nIHNjb3BlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkLmNwcAppbmRleCBjOGE3YTk5NzJmOWNjOGMxNmE3OTY3NTExNTUyZjU0OTNhNjg2Zjk4Li5h
MmQzY2Q0MGJjMmEwYWEyNzNiMTYwODNjNWY0ODY0NGQzNzVlMzNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmNwcApAQCAtNzMsOCArNzMsMTAgQEAgY2xhc3MgRHVtbXlTZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkgOiBwdWJsaWMgV29ya2VyT2JqZWN0UHJveHkgewogLy8gRklYTUU6IFVzZSBh
IHZhbGlkIFdvcmtlck9iamVjdFByb3h5CiAvLyBGSVhNRTogVXNlIHZhbGlkIHJ1bnRpbWUgZmxh
Z3MKIAorLy8gRklYTUU6IFN1cHBvcnQgbW9kdWxlcyBpbiBzZXJ2aWNlLXdvcmtlcnMuCisvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTU1CiBTZXJ2aWNlV29y
a2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSYgZGF0YSwgU3RyaW5nJiYgdXNlckFnZW50LCBjb25zdCBTZXR0aW5nczo6VmFsdWVzJiBz
ZXR0aW5nc1ZhbHVlcywgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBXb3JrZXJEZWJ1
Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSog
aWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIpCi0gICAg
OiBXb3JrZXJUaHJlYWQoeyBkYXRhLnNjcmlwdFVSTCwgZW1wdHlTdHJpbmcoKSwgInNlcnZpY2V3
b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVy
KCksIFdURk1vdmUodXNlckFnZW50KSwgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRlclN0cmF0
ZWd5KCktPmlzT25MaW5lKCksIGRhdGEuY29udGVudFNlY3VyaXR5UG9saWN5LCBmYWxzZSwgTW9u
b3RvbmljVGltZTo6bm93KCksIHsgfSwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0YS5zY3JpcHQsIGxv
YWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6
c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRhLnJlZ2lzdHJhdGlv
bi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRiQ29ubmVjdGlvblBy
b3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQo
KSkKKyAgICA6IFdvcmtlclRocmVhZCh7IGRhdGEuc2NyaXB0VVJMLCBlbXB0eVN0cmluZygpLCAi
c2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlk
ZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9h
ZGVyU3RyYXRlZ3koKS0+aXNPbkxpbmUoKSwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZh
bHNlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgeyB9LCBXb3JrZXJUeXBlOjpDbGFzc2ljLCBGZXRj
aFJlcXVlc3RDcmVkZW50aWFsczo6U2FtZU9yaWdpbiwgc2V0dGluZ3NWYWx1ZXMgfSwgZGF0YS5z
Y3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRhLnJl
Z2lzdHJhdGlvbi5rZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKS5nZXQoKSwgaWRiQ29u
bmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFs
bEVuYWJsZWQoKSkKICAgICAsIG1fZGF0YShkYXRhLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV93
b3JrZXJPYmplY3RQcm94eShEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCkp
CiAgICAgLCBtX2hlYXJ0QmVhdFRpbWVvdXQoU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCku
Y29ubmVjdGlvbigpLT5zaG91bGRVc2VTaG9ydFRpbWVvdXQoKSA/IGhlYXJ0QmVhdFRpbWVvdXRG
b3JUZXN0IDogaGVhcnRCZWF0VGltZW91dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCAyZGRkYjNiNWI0MWVk
ODdiZDYxNGEwYjk0ZDA5Yjc2MTI5M2Q3NjA3Li4zNzhmYmE2NTdlOGJiZjQ4NDFlNTZjYmY4NjU2
MWY4ZWNjMzExMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCkBAIC01MCw3ICs1MCw3IEBAIHN0cnVjdCBTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVl
cnlPcHRpb25zOwogc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsKIHN0cnVjdCBTZXJ2
aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI7Ci1lbnVtIGNsYXNzIFdvcmtlclR5cGU7CitlbnVt
IGNsYXNzIFdvcmtlclR5cGUgOiB1aW50OF90OwogCiBjbGFzcyBTV1NlcnZlcldvcmtlciA6IHB1
YmxpYyBSZWZDb3VudGVkPFNXU2VydmVyV29ya2VyPiB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaAppbmRleCA0MmE3NWI0
NTgyNDc2ZWVkYTI4ZTlhNDJiOTZiMTFjZGJhYzZlNTNhLi5kMDc2ZWU5ZDM1ZWI3ZjczOThlMGQ0
MDllODg3ZTY1N2YyMjYwMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Q
YWludFdvcmtsZXRHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgVk07CiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKIAotY2xhc3MgUGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgV29ya2xldEdsb2JhbFNjb3BlIHsKK2NsYXNzIFBh
aW50V29ya2xldEdsb2JhbFNjb3BlIGZpbmFsIDogcHVibGljIFdvcmtsZXRHbG9iYWxTY29wZSB7
CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChQYWludFdvcmtsZXRHbG9iYWxTY29wZSk7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxQYWludFdvcmtsZXRHbG9iYWxTY29wZT4gdHJ5Q3Jl
YXRlKERvY3VtZW50JiwgU2NyaXB0U291cmNlQ29kZSYmKTsKQEAgLTc2LDYgKzc2LDggQEAgY2xh
c3MgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUgOiBwdWJsaWMgV29ya2xldEdsb2JhbFNjb3BlIHsK
ICAgICAgICAgV29ya2xldEdsb2JhbFNjb3BlOjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKTsKICAg
ICB9CiAKKyAgICBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6UGFpbnR3b3JrbGV0OyB9
CisKIHByaXZhdGU6CiAgICAgUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUoRG9jdW1lbnQmLCBSZWY8
SlNDOjpWTT4mJiwgU2NyaXB0U291cmNlQ29kZSYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggZDcwNDg4NjY0OGMwZWZhYTZiNzgw
ODRjNTM4NzIwMWNhMmIxYzU0My4uMmFlMGUzMzg5MWRiYzg5ZjE0Njg3ZDQxNDgwMmFhYTEyZDBk
ODRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNj
b3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrbGV0cy9Xb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwCkBAIC0xNTgsNzIgKzE1OCw3IEBAIFJlZmVycmVyUG9saWN5IFdvcmtsZXRHbG9iYWxTY29w
ZTo6cmVmZXJyZXJQb2xpY3koKSBjb25zdAogdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmZldGNo
QW5kSW52b2tlU2NyaXB0KGNvbnN0IFVSTCYgbW9kdWxlVVJMLCBGZXRjaFJlcXVlc3RDcmVkZW50
aWFscyBjcmVkZW50aWFscywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxFeGNlcHRp
b24+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOwotICAgIG1fc2NyaXB0RmV0Y2hKb2JzLmFwcGVuZCh7IG1vZHVsZVVSTCwgY3JlZGVudGlh
bHMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpIH0pOwotICAgIHByb2Nlc3NOZXh0U2NyaXB0
RmV0Y2hKb2JJZk5lZWRlZCgpOwotfQotCi12b2lkIFdvcmtsZXRHbG9iYWxTY29wZTo6cHJvY2Vz
c05leHRTY3JpcHRGZXRjaEpvYklmTmVlZGVkKCkKLXsKLSAgICBpZiAobV9zY3JpcHRGZXRjaEpv
YnMuaXNFbXB0eSgpIHx8IG1fc2NyaXB0TG9hZGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBh
dXRvJiBzY3JpcHRGZXRjaEpvYiA9IG1fc2NyaXB0RmV0Y2hKb2JzLmZpcnN0KCk7Ci0KLSAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCB7IHNjcmlwdEZldGNoSm9iLm1vZHVsZVVSTCB9OwotCi0g
ICAgRmV0Y2hPcHRpb25zIGZldGNoT3B0aW9uczsKLSAgICBmZXRjaE9wdGlvbnMubW9kZSA9IEZl
dGNoT3B0aW9uczo6TW9kZTo6Q29yczsKLSAgICBmZXRjaE9wdGlvbnMuY2FjaGUgPSBGZXRjaE9w
dGlvbnM6OkNhY2hlOjpEZWZhdWx0OwotICAgIGZldGNoT3B0aW9ucy5yZWRpcmVjdCA9IEZldGNo
T3B0aW9uczo6UmVkaXJlY3Q6OkZvbGxvdzsKLSAgICBmZXRjaE9wdGlvbnMuY3JlZGVudGlhbHMg
PSBzY3JpcHRGZXRjaEpvYi5jcmVkZW50aWFsczsKLSNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAg
IGlmIChpc0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlKCkpCi0gICAgICAgIGZldGNoT3B0aW9ucy5k
ZXN0aW5hdGlvbiA9IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkF1ZGlvd29ya2xldDsKLSNl
bmRpZgotI2lmIEVOQUJMRShDU1NfUEFJTlRJTkdfQVBJKQotICAgIGlmIChpc1BhaW50V29ya2xl
dEdsb2JhbFNjb3BlKCkpCi0gICAgICAgIGZldGNoT3B0aW9ucy5kZXN0aW5hdGlvbiA9IEZldGNo
T3B0aW9uczo6RGVzdGluYXRpb246OlBhaW50d29ya2xldDsKLSNlbmRpZgotCi0gICAgYXV0byBj
b250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IHNob3VsZEJ5cGFzc01haW5Xb3JsZENv
bnRlbnRTZWN1cml0eVBvbGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6
OkRvTm90RW5mb3JjZSA6IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNl
Q2hpbGRTcmNEaXJlY3RpdmU7Ci0KLSAgICBtX3NjcmlwdExvYWRlciA9IFdvcmtlclNjcmlwdExv
YWRlcjo6Y3JlYXRlKCk7Ci0gICAgbV9zY3JpcHRMb2FkZXItPmxvYWRBc3luY2hyb25vdXNseSgq
dGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmZXRjaE9wdGlvbnMpLCBjb250ZW50U2Vj
dXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgU2VydmljZVdvcmtlcnNNb2RlOjpBbGwsICp0aGlzKTsK
LX0KLQotdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25l
ZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKLXsKLX0KLQotdm9pZCBXb3JrbGV0R2xv
YmFsU2NvcGU6Om5vdGlmeUZpbmlzaGVkKCkKLXsKLSAgICBhdXRvIGNvbXBsZXRlZEpvYiA9IG1f
c2NyaXB0RmV0Y2hKb2JzLnRha2VGaXJzdCgpOwotCi0gICAgaWYgKG1fc2NyaXB0TG9hZGVyLT5m
YWlsZWQoKSkgewotICAgICAgICBkaWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKFdURk1vdmUoY29t
cGxldGVkSm9iKSwgRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgbWFrZVN0cmluZygiRmFpbGVkIHRv
IGZldGNoIG1vZHVsZSwgZXJyb3I6ICIsIG1fc2NyaXB0TG9hZGVyLT5lcnJvcigpLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKCkpIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIHJlYWxseSBiZSBydW4gYXMgYSBtb2R1bGUgc2NyaXB0IGJ1dCB3ZSBk
b24ndCBzdXBwb3J0IHRoaXMgaW4gd29ya2VycyB5ZXQuCi0gICAgVVJMIG1vZHVsZVVSTChtX3Nj
cmlwdExvYWRlci0+cmVzcG9uc2VVUkwoKSk7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX2V2YWx1
YXRlZE1vZHVsZXMuYWRkKG1vZHVsZVVSTCk7Ci0gICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5
KSB7Ci0gICAgICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiBleGNlcHRpb247Ci0gICAgICAg
IHNjcmlwdCgpLT5ldmFsdWF0ZShTY3JpcHRTb3VyY2VDb2RlKG1fc2NyaXB0TG9hZGVyLT5zY3Jp
cHQoKSwgV1RGTW92ZShtb2R1bGVVUkwpKSwgZXhjZXB0aW9uKTsKLSAgICAgICAgaWYgKGV4Y2Vw
dGlvbikKLSAgICAgICAgICAgIHNjcmlwdCgpLT5zZXRFeGNlcHRpb24oZXhjZXB0aW9uKTsKLSAg
ICB9Ci0KLSAgICBkaWRDb21wbGV0ZVNjcmlwdEZldGNoSm9iKFdURk1vdmUoY29tcGxldGVkSm9i
KSwgeyB9KTsKLX0KLQotdm9pZCBXb3JrbGV0R2xvYmFsU2NvcGU6OmRpZENvbXBsZXRlU2NyaXB0
RmV0Y2hKb2IoU2NyaXB0RmV0Y2hKb2ImJiBqb2IsIE9wdGlvbmFsPEV4Y2VwdGlvbj4gcmVzdWx0
KQotewotICAgIG1fc2NyaXB0TG9hZGVyID0gbnVsbHB0cjsKLQotICAgIGpvYi5jb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwotCi0gICAgcHJvY2Vzc05leHRTY3JpcHRGZXRjaEpv
YklmTmVlZGVkKCk7CisgICAgc2NyaXB0KCktPmxvYWRBbmRFdmFsdWF0ZU1vZHVsZShtb2R1bGVV
UkwsIGNyZWRlbnRpYWxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIE1lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyJiBXb3JrbGV0R2xvYmFsU2NvcGU6Om1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1dvcmts
ZXRHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNj
b3BlLmgKaW5kZXggZjIzMjBmMGQxMzAyNWNlYWIzYmFjNTZhNDVlYzJkMWRkM2ZiNmNjMC4uZmU1
NGI4NTMyNTY3OTI1ODNkZWRhMDU1YTQzM2EyNTY1NGU4Njc1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2xldHMvV29ya2xldEdsb2JhbFNjb3BlLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNs
dWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJXb3JrZXJPcldvcmtsZXRTY3JpcHRDb250cm9sbGVyLmgiCi0j
aW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvQ29uc29sZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1l
RmxhZ3MuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTU0LDcgKzUz
LDcgQEAgc3RydWN0IFdvcmtsZXRQYXJhbWV0ZXJzOwogZW51bSBXb3JrbGV0R2xvYmFsU2NvcGVJ
ZGVudGlmaWVyVHlwZSB7IH07CiB1c2luZyBXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyID0g
T2JqZWN0SWRlbnRpZmllcjxXb3JrbGV0R2xvYmFsU2NvcGVJZGVudGlmaWVyVHlwZT47CiAKLWNs
YXNzIFdvcmtsZXRHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29w
ZSwgcHVibGljIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCB7CitjbGFzcyBXb3JrbGV0R2xvYmFs
U2NvcGUgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUgewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoV29ya2xldEdsb2JhbFNjb3BlKTsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5Xb3JrbGV0R2xvYmFsU2NvcGUoKTsKQEAgLTExMSwxMCArMTEwLDYgQEAgY2xhc3MgV29ya2xl
dEdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLCBwdWJsaWMg
V29ya2VyU2NyaXAKICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgdW5zaWduZWQsIFJl
ZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwgSlNDOjpKU0dsb2JhbE9iamVjdCos
IHVuc2lnbmVkIGxvbmcpIGZpbmFsOwogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25nKSBmaW5h
bDsKIAotICAgIC8vIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC4KLSAgICB2b2lkIGRpZFJlY2Vp
dmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKSBmaW5hbDsKLSAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgZmluYWw7Ci0KICAgICBFdmVu
dFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpIGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KIAogI2lm
IEVOQUJMRShXRUJfQ1JZUFRPKQpAQCAtMTI1LDE1ICsxMjAsNiBAQCBjbGFzcyBXb3JrbGV0R2xv
YmFsU2NvcGUgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUsIHB1YmxpYyBXb3Jr
ZXJTY3JpcAogICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QgZmluYWw7CiAg
ICAgY29uc3QgU2V0dGluZ3M6OlZhbHVlcyYgc2V0dGluZ3NWYWx1ZXMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3NldHRpbmdzVmFsdWVzOyB9CiAKLSAgICBzdHJ1Y3QgU2NyaXB0RmV0Y2hKb2Ig
ewotICAgICAgICBVUkwgbW9kdWxlVVJMOwotICAgICAgICBGZXRjaFJlcXVlc3RDcmVkZW50aWFs
cyBjcmVkZW50aWFsczsKLSAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxF
eGNlcHRpb24+JiYpPiBjb21wbGV0aW9uSGFuZGxlcjsKLSAgICB9OwotCi0gICAgdm9pZCBwcm9j
ZXNzTmV4dFNjcmlwdEZldGNoSm9iSWZOZWVkZWQoKTsKLSAgICB2b2lkIGRpZENvbXBsZXRlU2Ny
aXB0RmV0Y2hKb2IoU2NyaXB0RmV0Y2hKb2ImJiwgT3B0aW9uYWw8RXhjZXB0aW9uPik7Ci0KICAg
ICBXZWFrUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OwogCiAgICAgUmVmPFNlY3VyaXR5T3JpZ2lu
PiBtX3RvcE9yaWdpbjsKQEAgLTE0NCw5ICsxMzAsNiBAQCBjbGFzcyBXb3JrbGV0R2xvYmFsU2Nv
cGUgOiBwdWJsaWMgV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUsIHB1YmxpYyBXb3JrZXJTY3Jp
cAogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdvcmtlck1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
PiBtX21lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyOwogCi0gICAgUmVmUHRyPFdvcmtlclNjcmlw
dExvYWRlcj4gbV9zY3JpcHRMb2FkZXI7Ci0gICAgRGVxdWU8U2NyaXB0RmV0Y2hKb2I+IG1fc2Ny
aXB0RmV0Y2hKb2JzOwotICAgIEhhc2hTZXQ8VVJMPiBtX2V2YWx1YXRlZE1vZHVsZXM7CiAgICAg
U2V0dGluZ3M6OlZhbHVlcyBtX3NldHRpbmdzVmFsdWVzOwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI4ZmIyMzcy
ZTkyMjI2YWRmOGIyZTAxODgzNzhiOThlMmQyZjhlNjYuLjQxMjQ5YTM1MmJmNjFlMzk0OTczMWM0
YWVmMDVhYzJmZmU4OWQ0MDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wMi0xOSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIEpTIE1vZHVsZXMgaW4g
V29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0ODYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5LzEuMS9tb2R1bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc3VicmVzb3VyY2UtaW50ZWdyaXR5L3NyaS1tb2R1
bGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvd29ya2xldC1hZGRNb2R1
bGUtZmFpbHVyZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8vd29ya2xldC1jcmFz
aC1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDItMTkgIFJvYmVydCBKZW5uZXIgIDxqZW5uZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFsgTWFjT1MgV2syIF0gbWVkaWEvbWVkaWEtZnJhZ21lbnRzL1RD
MDAzNC5odG1sICBpcyBmbGFrZXkgY3Jhc2hpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDk4YmQ2M2UyZWJhNDlmMjdmMjdiZTRmM2EzNjQxZTIyYTA3NjFhYWYuLjgxNjdiYTEx
MGU1YmJhMzkzMzY3OGNkNWRiZTA2NTdlYjYxYzJlMTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAyLTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgSlMgTW9kdWxlcyBpbiBXb3JrZXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ4NjAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG9mIHdvcmtsZXQg
ZmFpbHVyZXMgaW4gV1BUIGlzIGJlY2F1c2UsCisKKyAgICAgICAgICAgIDEuIFByZXZpb3VzbHks
IHdvcmtsZXQgZG9lcyBub3Qgc3VwcG9ydCBtb2R1bGUuIFRoZXNlIHRlc3RzIGFyZSBwYXNzaW5n
IGluY29ycmVjdGx5IHdoZW4gbW9kdWxlcyBhcmUgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgICAg
ICAgIE5vdywgbW9kdWxlcyBhcmUgc3VwcG9ydGVkLCBhbmQgc29tZSBlZGdlIGZlYXR1cmVzIGFy
ZSBtaXNzaW5nLCBzbyBzdGFydCBmYWlsaW5nCisgICAgICAgICAgICAyLiBXUFQgaXMgdXNpbmcg
d3d3MS5sb2NhbGhvc3QgaW4gc29tZSB0ZXN0cyAoQ1NQIHRlc3RzKSwgYW5kIHRoaXMgaXMgbm90
IHN1cHBvcnRlZCBpbiBXZWJLaXQncyBXUFQgdGVzdGluZy4gU28gZmFpbGluZyBpbmNvcnJlY3Rs
eS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUu
YW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9taWNyb3Rhc2tzL2No
ZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJvci1tb2R1bGUtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2Ut
dXJsLXdvcmtlci1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3ViLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJv
dy13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRp
b24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaW1wb3J0LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1p
bi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEv
eGhyLWluLW1vZHVsZXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4td29ya2VyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2Vy
L3NhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRlcmZh
Y2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQt
Y3NwLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9t
b2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWZhaWx1cmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtl
ci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2Vy
LWltcG9ydC1yZWZlcnJlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNh
dGVkLXdvcmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1wYXJzZS1lcnJvci1m
YWlsdXJlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vy
cy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3Nw
Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xl
dHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJl
ZGlyZWN0ZWQtd29ya2VyLW9yaWdpbi1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDItMTkgIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IFNlbGVu
aXVtIGtleSBjb2RlIGZvciBFTlRFUiBpbiB0ZXN0ZHJpdmVyLXZlbmRvci5qcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggNDY3MGIzYmUyNTE1OGEyMDcxYjg3MTgzZTI5NDk2NmQ5ZTc3ZDA2Yy4uZWQw
YzEwODZhNDFiZDM0ODUzZDg2NTkyOTAyZWRmOWJlNzA2MWExZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CkBAIC02NDAsNyArNjQwLDYgQEAgZmFzdC9kb20vY29ubmVjdGVkLXN1YmZyYW1lLWNvdW50ZXIt
b3ZlcmZsb3cuaHRtbCBbIFNsb3cgXQogWyBEZWJ1ZyBdIGh0dHAvdGVzdHMvd29ya2Vycy93b3Jr
ZXItbWVzc2FnZXBvcnQtMi5odG1sIFsgU2xvdyBdCiAKICMgU2tpcCB3b3JrZXJzIHRlc3RzIHRo
YXQgYXJlIHRpbWluZyBvdXQgb3IgYXJlIFNoYXJlZFdvcmtlciByZWxhdGVkIG9ubHkKLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3Nh
bWUtb3JpZ2luLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9kYXRhLXVybC1zaGFyZWQuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL2V4YW1wbGVzL29uY29ubmVjdC5hbnkuaHRtbCBbIFNraXAg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2V4YW1wbGVzL29uY29u
bmVjdC5hbnkud29ya2VyLmh0bWwgWyBTa2lwIF0KQEAgLTY2Myw3ICs2NjIsNiBAQCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvU2hhcmVkV29ya2VyLXJlcGxhY2UtRXZl
bnRIYW5kbGVyLmFueS5odAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L1NoYXJlZFdvcmtlci1yZXBsYWNlLUV2ZW50SGFuZGxlci5hbnkud29ya2VyLmh0bWwgWyBTa2lw
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9TaGFyZWRXb3JrZXIt
c2NyaXB0LWVycm9yLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9TaGFyZWRXb3JrZXItc2ltcGxlLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1w
b3J0LXJlZmVycmVyLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy1jcmVkZW50aWFscy5o
dG1sIFsgU2tpcCBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9j
b25zdHJ1Y3RvcnMvU2hhcmVkV29ya2VyIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvbW9kdWxlLXNj
cmlwdG5vbmNlLXJlZGlyZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9tb2R1bGUtc2NyaXB0bm9uY2UtcmVk
aXJlY3QtZXhwZWN0ZWQudHh0CmluZGV4IDUwOTkxOWY3YmZkOGNmOTRjNWQzMzQ3Zjg3YTY0NGQx
NTg4NDU5MjEuLmUxNzJkZTRkMDRlMmE1NzQ3Yzc3ZjIyMjI0ZmQ0NWFjMDUyNTA1ZjQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5LzEuMS9tb2R1bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9t
b2R1bGUtc2NyaXB0bm9uY2UtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMiBAQAog
Q09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxv
d2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogVHlw
ZUVycm9yOiBDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBS
ZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4KIFRoaXMgdGVzdHMgd2hldGhlciBhIGRlZmVycmVkIHNj
cmlwdCBsb2FkIGNhdXNlZCBieSBhIHJlZGlyZWN0IGlzIHByb3Blcmx5IGFsbG93ZWQgYnkgYSBu
b25jZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3VicmVzb3VyY2UtaW50
ZWdyaXR5L3NyaS1tb2R1bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBlY3RlZC50eHQKaW5kZXggYTAxZDlm
MDcyNmZmOTdjNTI1YTUwNDUwNzZiYWU1MTRjODJlZTJlYS4uOTBhMjkxZWI4MjllZTk4YTc5OGVj
Mzc0ODUxODRlYTBlOTVhY2M4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvc3JpLW1vZHVsZS1leHBlY3Rl
ZC50eHQKQEAgLTMsNyArMyw2IEBAIENPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBDYW5ub3Qg
bG9hZCBzY3JpcHQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3N1YnJlc291cmNlCiBDT05TT0xFIE1F
U1NBR0U6IFR5cGVFcnJvcjogQ2Fubm90IGxvYWQgc2NyaXB0IGh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkvcmVzb3VyY2VzL2Nyb3Nzb3JpZ2luLWFub24tc2NyaXB0
LW1vZHVsZS5qcy4gRmFpbGVkIGludGVncml0eSBtZXRhZGF0YSBjaGVjay4gQ29udGVudCBsZW5n
dGg6IDM3LCBFeHBlY3RlZCBjb250ZW50IGxlbmd0aDogMzcsIEV4cGVjdGVkIG1ldGFkYXRhOiBz
aGEyNTYtZGVhZGJlZWZjU0xsYkZaQ2oxT0FDTHhUeFZjazJUT3JCVEVkVWJ3ejF5VT0KIENPTlNP
TEUgTUVTU0FHRTogVHlwZUVycm9yOiBDYW5ub3QgbG9hZCBzY3JpcHQgaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3N1YnJlc291cmNlLWludGVncml0eS9yZXNvdXJjZXMvY3Jvc3NvcmlnaW4tY3JlZHMt
c2NyaXB0LW1vZHVsZS5qcy4gRmFpbGVkIGludGVncml0eSBtZXRhZGF0YSBjaGVjay4gQ29udGVu
dCBsZW5ndGg6IDM4LCBFeHBlY3RlZCBjb250ZW50IGxlbmd0aDogMzgsIEV4cGVjdGVkIG1ldGFk
YXRhOiBzaGEyNTYtZGVhZGJlZWYyUytwVFJaZ2l3M0RXcmhDNkpMRGx0MnpSeUdwd0g3dW5VOD0K
IENPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxs
b3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFR5
cGVFcnJvcjogQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4g
UmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuCiBDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogQ2Fu
bm90IGxvYWQgc2NyaXB0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zdWJyZXNvdXJjZS1pbnRlZ3Jp
dHkvcmVzb3VyY2VzL21hdGNoaW5nLWRpZ2VzdC1tb2R1bGUuanMuIEZhaWxlZCBpbnRlZ3JpdHkg
bWV0YWRhdGEgY2hlY2suIENvbnRlbnQgbGVuZ3RoOiAyOSwgRXhwZWN0ZWQgY29udGVudCBsZW5n
dGg6IDI5LCBFeHBlY3RlZCBtZXRhZGF0YTogc2hhMjU2LWNXaDluUGZtN19tUmJLaHphcm5SWWxz
Sld6NVhUTmNzcVBGektFeCt6U1U9CiBDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogQ2Fubm90
IGxvYWQgc2NyaXB0IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zdWJyZXNvdXJjZS1pbnRlZ3JpdHkv
cmVzb3VyY2VzL21hdGNoaW5nLWRpZ2VzdC1tb2R1bGUuanMuIEZhaWxlZCBpbnRlZ3JpdHkgbWV0
YWRhdGEgY2hlY2suIENvbnRlbnQgbGVuZ3RoOiAyOSwgRXhwZWN0ZWQgY29udGVudCBsZW5ndGg6
IDI5LCBFeHBlY3RlZCBtZXRhZGF0YTogc2hhMjU2LVU5V1lEdEJXa2NIeDEzKzlVS2svM1E1ZW9x
RGM0WUd4WWIwN0VQV3piOWU9P2Zvbz1iYXI/c3BhbT1lZ2dzCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L2pzb24tbW9kdWxlL25vbi1vYmplY3QudGVudGF0
aXZlLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVs
ZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKaW5kZXggNDkyNjliM2I1MGI5MTc1Y2I2MmVjYTMxMmU1ODZiM2IxNjYyYTI1OS4uMmNh
ZTVmN2UzNWEzMmZlY2ViMjY4ZjI5MDAwMGU0ZTU1NTZjNjg2MCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRp
dmUuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvanNvbi1tb2R1bGUvbm9uLW9iamVjdC50ZW50YXRpdmUuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKLUZBSUwgTm9uLW9iamVjdDogbnVsbCBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291
bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL251bGwuanNvbicuIgotRkFJTCBOb24tb2JqZWN0
OiB0cnVlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vdHJ1ZS5qc29uJy4iCi1G
QUlMIE5vbi1vYmplY3Q6IGZhbHNlIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIkVycm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4v
ZmFsc2UuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBzdHJpbmcgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiRXJyb3I6IENvdWxkIG5vdCBpbXBv
cnQgdGhlIG1vZHVsZSAnLi9zdHJpbmcuanNvbicuIgotRkFJTCBOb24tb2JqZWN0OiBhcnJheSBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJv
cjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2FycmF5Lmpzb24nLiIKK0ZBSUwgTm9u
LW9iamVjdDogbnVsbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBK
YXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IHRydWUgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiAnYXBw
bGljYXRpb24vanNvbicgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuIgorRkFJ
TCBOb24tb2JqZWN0OiBmYWxzZSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2
YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlwZS4iCitGQUlMIE5vbi1vYmplY3Q6IHN0cmluZyBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6ICdhcHBsaWNhdGlvbi9qc29uJyBpcyBub3QgYSB2YWxpZCBKYXZhU2NyaXB0IE1JTUUgdHlw
ZS4iCitGQUlMIE5vbi1vYmplY3Q6IGFycmF5IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogJ2FwcGxpY2F0aW9uL2pzb24nIGlz
IG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgTUlNRSB0eXBlLiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdv
cmtlcmdsb2JhbHNjb3BlLW9uZXJyb3ItbW9kdWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50L21pY3JvdGFza3MvY2hlY2twb2ludC1hZnRlci13b3JrZXJn
bG9iYWxzY29wZS1vbmVycm9yLW1vZHVsZS1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZi
YThiYmY5NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uZjY4Y2M3M2I0ZDY3NGM1NGRmYWZlNTIyMTJi
NjQzYzQwMzBmZDQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbWljcm90YXNrcy9jaGVja3BvaW50LWFmdGVyLXdvcmtlcmdsb2JhbHNjb3BlLW9uZXJyb3It
bW9kdWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVu
dC9taWNyb3Rhc2tzL2NoZWNrcG9pbnQtYWZ0ZXItd29ya2VyZ2xvYmFsc2NvcGUtb25lcnJvci1t
b2R1bGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1F
T1VUKSwgbWVzc2FnZSA9IG51bGwKLQorRkFJTCBQcm9taXNlIHJlc29sdmVkIGR1cmluZyAjcmVw
b3J0LXRoZS1lcnJvciBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0
ZWQgYXJyYXkgWyJoYW5kbGVyIDEiLCAiaGFuZGxlciAyIiwgImhhbmRsZXIgMSBwcm9taXNlIiwg
ImhhbmRsZXIgMiBwcm9taXNlIl0gbGVuZ3RoIDQsIGdvdCBbXSBsZW5ndGggMAorUEFTUyBQcm9t
aXNlIHJlc29sdmVkIGR1cmluZyBldmVudCBoYW5kbGVycyBvdGhlciB0aGFuIGVycm9yCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWlj
LWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXItaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZHluYW1pYy1pbXBvcnQv
YWxwaGEvYmFzZS11cmwtd29ya2VyLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0CmluZGV4IDUx
ZDYxMDBlNjEyMmE5N2MzNjRiM2NlYjFkN2ZkMDdlMGUxNTYxMTcuLmE4MDUwYzA3OGNmOGI4OGQ1
NjhhZmZlMGQ1NWNjMzE5MGMzNjU0N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIt
aW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0
LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci1pbXBv
cnRTY3JpcHRzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBSZWxhdGl2ZSBV
UkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNjcmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGlt
cG9ydCB0aGUgbW9kdWxlICcuL2ltcG9ydC5qcz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1B
bGxvdy1PcmlnaW4sKikmbGFiZWw9cmVsYXRpdmUtY3Jvc3Mtb3JpZ2luIGltcG9ydFNjcmlwdHMo
KScuIgotRkFJTCBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIHNhbWUtb3JpZ2luIGltcG9ydFNjcmlw
dHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICdodHRwOi8vMTI3LjAuMC4xOjg4
MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9k
eW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wt
QWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLWNyb3NzLW9yaWdpbiBpbXBvcnRTY3JpcHRz
KCknLiIKLVBBU1MgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBjcm9zcy1vcmlnaW4gaW1wb3J0U2Ny
aXB0cygpCi1GQUlMIEFic29sdXRlIFVSTC1saWtlIGZyb20gY3Jvc3Mtb3JpZ2luIGltcG9ydFNj
cmlwdHMoKSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICdodHRwOi8vMTI3LjAuMC4x
Ojg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVs
ZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRy
b2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLWNyb3NzLW9yaWdpbiBpbXBvcnRTY3Jp
cHRzKCknLiIKK1BBU1MgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBzYW1lLW9yaWdpbiBpbXBvcnRT
Y3JpcHRzKCkKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSBzYW1lLW9yaWdpbiBpbXBvcnRT
Y3JpcHRzKCkKK0ZBSUwgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSBjcm9zcy1vcmlnaW4gaW1wb3J0
U2NyaXB0cygpIGFzc2VydF9lcXVhbHM6IFJlbGF0aXZlIFVSTC1saWtlIHNwZWNpZmllciByZXNv
bHV0aW9uIHNob3VsZCBmYWlsIGV4cGVjdGVkICIodW5yZWFjaGVkKSIgYnV0IGdvdCAiZ2FtbWEv
aW1wb3J0LmpzIgorUEFTUyBBYnNvbHV0ZSBVUkwtbGlrZSBmcm9tIGNyb3NzLW9yaWdpbiBpbXBv
cnRTY3JpcHRzKCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMt
aW1wb3J0L2FscGhhL2Jhc2UtdXJsLXdvcmtlci5zdWItZXhwZWN0ZWQudHh0CmluZGV4IDg2NmVi
YjIyN2FkMjZhYWNlMWE1NzhiYWVhNmE4MWRjMGU2ZTc3ZjAuLjVlNzA2MzQ5MGUyZGZmZWNlODVl
YTc2NWFlYmRkZTRiMTZlYjBmYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9hbHBoYS9iYXNlLXVybC13b3JrZXIuc3Vi
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1
bGUvZHluYW1pYy1pbXBvcnQvYWxwaGEvYmFzZS11cmwtd29ya2VyLnN1Yi1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSw0IEBACiAKLUZBSUwgUmVsYXRpdmUgVVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9w
LWxldmVsIHNjcmlwdCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1
ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2ltcG9ydC5q
cz9waXBlPWhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4sKikmbGFiZWw9cmVsYXRp
dmUtd29ya2VyIHRvcC1sZXZlbCBzY3JpcHQnLiIKLUZBSUwgQWJzb2x1dGUgVVJMLWxpa2UgZnJv
bSB3b3JrZXIgdG9wLWxldmVsIHNjcmlwdCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxl
ICdodHRwOi8vMTI3LjAuMC4xOjg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9nYW1tYS9pbXBvcnQuanM/cGlwZT1o
ZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLCopJmxhYmVsPWFic29sdXRlLXdvcmtl
ciB0b3AtbGV2ZWwgc2NyaXB0Jy4iCitQQVNTIFJlbGF0aXZlIFVSTC1saWtlIGZyb20gd29ya2Vy
IHRvcC1sZXZlbCBzY3JpcHQKK1BBU1MgQWJzb2x1dGUgVVJMLWxpa2UgZnJvbSB3b3JrZXIgdG9w
LWxldmVsIHNjcmlwdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLW5vdGhyb3ctd29ya2VyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9y
ZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg5MjhmNzc1ZThmYmE4YmJm
OTU5ZDBmYWRkZDIyZTRjMWRjYjNhNWYuLjJmMTJhMjM0MmZhZDIyNGUzYTE4YTZmYjVkODQ4MzI1
ZWE2Nzc2ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21v
ZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVy
LTEtbm90aHJvdy13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAogCi1IYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQorUEFTUyBUZXN0IGV2YWx1YXRpb24g
b3JkZXIgb2YgbW9kdWxlcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQt
ZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0xLXdvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0x
LXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5NTlkMGZhZGRkMjJl
NGMxZGNiM2E1Zi4uYjg2MWY3MDFmOTQ4ZmIxMzI3NjkzMjJjMzgzNjZmMmQxMzhmMDRlMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRp
b24tb3JkZXItMS13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNj
cmlwdC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTEtd29ya2VyLWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDMgQEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBu
dWxsCi0KK0ZBSUwgVGVzdCBldmFsdWF0aW9uIG9yZGVyIG9mIG1vZHVsZXMgYXNzZXJ0X2FycmF5
X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFycmF5IFsic3RlcC0xLTEiLCAic3Rl
cC0xLTIiLCAiZ2xvYmFsLWVycm9yIiwgImVycm9yIiwgIm1pY3JvdGFzayJdIGxlbmd0aCA1LCBn
b3QgWyJzdGVwLTEtMSIsICJzdGVwLTEtMiIsICJtaWNyb3Rhc2siXSBsZW5ndGggMwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlv
bi1vcmRlci0yLWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
c2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXItMi1pbXBvcnQtd29ya2VyLWV4
cGVjdGVkLnR4dAppbmRleCA4OTI4Zjc3NWU4ZmJhOGJiZjk1OWQwZmFkZGQyMmU0YzFkY2IzYTVm
Li5jMWQzOGJkZTUwYzU5ZTVkNTk0MTczZDk2ZjljZDE5ZWIxMDdjOWI0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvZXZhbHVhdGlvbi1vcmRlci0y
LWltcG9ydC13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlw
dC1lbGVtZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTItaW1wb3J0LXdvcmtlci1leHBlY3Rl
ZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdl
ID0gbnVsbAotCitGQUlMIFRlc3QgZXZhbHVhdGlvbiBvcmRlciBvZiBtb2R1bGVzIGFzc2VydF9h
cnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBbInN0ZXAtMi4yLTEi
LCAic3RlcC0yLjItMiIsICJnbG9iYWwtZXJyb3IiLCAiZXJyb3IiLCAibWljcm90YXNrLTIuMiJd
IGxlbmd0aCA1LCBnb3QgWyJzdGVwLTIuMi0xIiwgInN0ZXAtMi4yLTIiLCAibWljcm90YXNrLTIu
MiJdIGxlbmd0aCAzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9ldmFsdWF0aW9uLW9yZGVyLTMtZHluYW1pYy13b3JrZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3Jk
ZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODkyOGY3NzVlOGZiYThiYmY5
NTlkMGZhZGRkMjJlNGMxZGNiM2E1Zi4uMmYxMmEyMzQyZmFkMjI0ZTNhMThhNmZiNWQ4NDgzMjVl
YTY3NzZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9k
dWxlL2V2YWx1YXRpb24tb3JkZXItMy1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2V2YWx1YXRpb24tb3JkZXIt
My1keW5hbWljLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLUhhcm5lc3Mg
RXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCitQQVNTIFRlc3QgZXZhbHVhdGlvbiBv
cmRlciBvZiBtb2R1bGVzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1t
b2R1bGUtc2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBv
cnQtbW9kdWxlLXNjcmlwdHMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDEyZDk0YTkxZWYxZjhh
YjBhMTg3Yzc0OWIwZGRlYzY5NmQxMTg4ZTcuLmI0ZDY4YWYwNTZlZWY2MjJhMzNkNTRmMDc2ZjM4
MWQ0ZTFiYjI5YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1tb2R1bGUt
c2NyaXB0cy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0
LW1vZHVsZS1zY3JpcHRzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsyLDggQEAKIEZBSUwg
U3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicu
IGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgogRkFJTCBOZXN0ZWQg
c3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKicu
IGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgogRkFJTCBTdGF0aWMg
aW1wb3J0IGFuZCB0aGVuIGR5bmFtaWMgaW1wb3J0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFN5bnRheEVycm9yOiBVbmV4
cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVu
dC4iCi1GQUlMIER5bmFtaWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAi
RmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUg
bW9kdWxlICcuL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZB
SUwgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAi
RmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJvcjogQ291bGQgbm90IGltcG9ydCB0aGUg
bW9kdWxlICcuL2V4cG9ydC1vbi1keW5hbWljLWltcG9ydC1zY3JpcHQuanMnLiIsIGV4cGVjdGVk
IGFycmF5Ci1GQUlMIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBpbXBvcnQuIGFzc2Vy
dF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVy
cm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLXN0YXRpYy1pbXBv
cnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBhcnJheQotRkFJTCBldmFsKGltcG9ydCgpKS4gYXNz
ZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZhaWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDog
RXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1vZHVsZSAnLi9leHBvcnQtb24tbG9hZC1zY3Jp
cHQuanMnLiIsIGV4cGVjdGVkIGFycmF5CitQQVNTIER5bmFtaWMgaW1wb3J0LgorUEFTUyBOZXN0
ZWQgZHluYW1pYyBpbXBvcnQuCitQQVNTIER5bmFtaWMgaW1wb3J0IGFuZCB0aGVuIHN0YXRpYyBp
bXBvcnQuCitQQVNTIGV2YWwoaW1wb3J0KCkpLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBv
cnQtaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1
bGV3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGRkOWFmMzhmZjA5ZmJlYzFmYWMwYjhmNWVhOWJh
ZDZlMzE2MzY0OWQuLjUxZWIzNjYzOGMxY2E3ZDA2MGI3Njc1OTI2ZmNjNzBjNWJmMDc2ZTcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9iYXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9i
YXNldXJsL2FscGhhL2ltcG9ydC1pbi1tb2R1bGV3b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBpZGVudGlm
aWVyICdyJy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KIAotRkFJ
TCBCYXNlIFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IGltcG9ydCBhc3NlcnRfdW5y
ZWFjaGVkOiBHb3QgZXJyb3IgZXZlbnQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNTIEJh
c2UgVVJMIGluIG1vZHVsZSBkZWRpY2F0ZWQgd29ya2VyczogaW1wb3J0CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNl
dXJsL2FscGhhL2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhh
L2ltcG9ydFNjcmlwdHMtaW4td29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBhYjVhN2ZiODkwMjBm
MjlmZDg5M2E3NTY4MGZmZTE3ZDNkMzUwZjdjLi5hYjUzYjgwNTk5YWUwMTk1NzgwODVlZTQ0YWFl
ZmE0Yzc5NTUyNjg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS9pbXBvcnRTY3JpcHRzLWluLXdvcmtl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEvaW1wb3J0U2NyaXB0cy1pbi13b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIGltcG9ydFNjcmlwdHMgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgImdhbW1hL3NjcmlwdC5qcyIgYnV0IGdvdCAiYmV0YS9zY3JpcHQuanMi
CitQQVNTIGltcG9ydFNjcmlwdHMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2Jhc2V1cmwvYWxwaGEveGhyLWluLW1vZHVs
ZXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVj
dGVkLnR4dAppbmRleCA4M2YzNjdmMmNmM2E2NmM2NGE2MjY0Mjk0NjU2ZDVlODgxZDFjMTFjLi4y
OGIwY2I0MDAxMzkyZDA4ODdhNGZlYmU2ODFjMWUxNTFkMGRmMThiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9h
bHBoYS94aHItaW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHIt
aW4tbW9kdWxld29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBCYXNl
IFVSTCBpbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlcnM6IFhIUiBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiZ2FtbWFcbiIgYnV0IGdvdCAiYmV0YVxuIgorUEFTUyBCYXNlIFVSTCBpbiBtb2R1bGUg
ZGVkaWNhdGVkIHdvcmtlcnM6IFhIUgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvYmFzZXVybC9hbHBoYS94aHItaW4td29y
a2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0ZWQudHh0Cmlu
ZGV4IGQ2YjA4ZWVkYWU2ZjY5NmM3YTRiZmE2NTVlMTNiNWVkNDYwN2VhMDEuLmVhMTQ1NGQ5YjNm
MjBmODVkOTAxNmM1MDZhMTU0NmFmNjE3ODQyZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1p
bi13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9iYXNldXJsL2FscGhhL3hoci1pbi13b3JrZXItZXhwZWN0
ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIHhoci13b3JrZXIgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgImdhbW1hXG4iIGJ1dCBnb3QgImJldGFcbiIKK1BBU1MgeGhyLXdvcmtlcgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvY29uc3RydWN0b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvY29uc3RydWN0
b3JzL1dvcmtlci9zYW1lLW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggODMxZjBjNThjNjk0YzJk
NGZlYmQ2ZDhkMGFmMzA3YjEwOTQ0MmE2ZS4uZDU1NWVlN2NmM2ZjNzJlZmI4MmRmOWRiN2RhZDM2
N2Y5YWI3ZmZiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzL2NvbnN0cnVjdG9ycy9Xb3JrZXIvc2FtZS1vcmlnaW4tZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9jb25zdHJ1Y3RvcnMvV29ya2VyL3NhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dApAQCAt
MSwxMyArMSwxMSBAQAogCi1IYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwK
LQogUEFTUyB1bnN1cHBvcnRlZF9zY2hlbWUKIEZBSUwgZGF0YV91cmwgVGhlIG9wZXJhdGlvbiBp
cyBpbnNlY3VyZS4KLVRJTUVPVVQgYWJvdXRfYmxhbmsgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQg
ZXhhbXBsZV9pbnZhbGlkIFRlc3QgdGltZWQgb3V0Ci1USU1FT1VUIHBvcnRfODEgVGVzdCB0aW1l
ZCBvdXQKLVRJTUVPVVQgaHR0cHNfcG9ydF84MCBUZXN0IHRpbWVkIG91dAotVElNRU9VVCBodHRw
c19wb3J0XzgwMDAgVGVzdCB0aW1lZCBvdXQKLVRJTUVPVVQgaHR0cF9wb3N0XzgwMTIgVGVzdCB0
aW1lZCBvdXQKLVRJTUVPVVQgamF2YXNjcmlwdF91cmwgVGVzdCB0aW1lZCBvdXQKK1BBU1MgYWJv
dXRfYmxhbmsKK1BBU1MgZXhhbXBsZV9pbnZhbGlkCitQQVNTIHBvcnRfODEKK1BBU1MgaHR0cHNf
cG9ydF84MAorUEFTUyBodHRwc19wb3J0XzgwMDAKK1BBU1MgaHR0cF9wb3N0XzgwMTIKK1BBU1Mg
amF2YXNjcmlwdF91cmwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9j
YXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9j
YXRpb24vcmVkaXJlY3QtZXhwZWN0ZWQudHh0CmluZGV4IGYxNzQxZjlkOGJmMDcwMzI3MGQyZTM3
NjJkYmNiZTI2YzBiOTAwNTkuLjNiMGRmYjM1ZTUxY2QxYTg1NDU1MzAxOWMwZTQwM2RiZTJmMWQz
M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRp
cmVjdC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgV29ya2VyTG9jYXRpb24g
d2l0aCByZWRpcmVjdHM6IGNsYXNzaWMgZGVkaWNhdGVkIHdvcmtlcnMgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2ludGVyZmFjZXMvV29ya2Vy
R2xvYmFsU2NvcGUvbG9jYXRpb24vcG9zdC1sb2NhdGlvbi1tZW1iZXJzLmpzP2EiIGJ1dCBnb3Qg
Imh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2Nv
cGUvbG9jYXRpb24vaGVscGVyLXJlZGlyZWN0LnB5P2ZhaWwiCitQQVNTIFdvcmtlckxvY2F0aW9u
IHdpdGggcmVkaXJlY3RzOiBjbGFzc2ljIGRlZGljYXRlZCB3b3JrZXJzCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRl
cmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvaW50ZXJmYWNlcy9Xb3JrZXJHbG9iYWxTY29wZS9sb2NhdGlvbi9yZWRpcmVjdC1tb2R1bGUt
ZXhwZWN0ZWQudHh0CmluZGV4IGRjMmUyZTIwN2RiMDAxZWU3MGU3MzMwN2QyN2JiMzM1NzIwZmQ1
NTkuLmIzYmY4MWVlODY4MWI5ZGMwODBmNTgwMjcxZThiOGYzOTA5NjU0OTUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9pbnRl
cmZhY2VzL1dvcmtlckdsb2JhbFNjb3BlL2xvY2F0aW9uL3JlZGlyZWN0LW1vZHVsZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzL2ludGVyZmFjZXMvV29ya2VyR2xvYmFsU2NvcGUvbG9jYXRpb24vcmVkaXJlY3QtbW9k
dWxlLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBXb3JrZXJMb2NhdGlvbiB3
aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJodHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckds
b2JhbFNjb3BlL2xvY2F0aW9uL3Bvc3QtbG9jYXRpb24tbWVtYmVycy5qcz9hIiBidXQgZ290ICJo
dHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9pbnRlcmZhY2VzL1dvcmtlckdsb2JhbFNjb3Bl
L2xvY2F0aW9uL2hlbHBlci1yZWRpcmVjdC5weT9mYWlsIgorUEFTUyBXb3JrZXJMb2NhdGlvbiB3
aXRoIHJlZGlyZWN0czogbW9kdWxlIGRlZGljYXRlZCB3b3JrZXJzCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVz
L2RlZGljYXRlZC13b3JrZXItaW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9k
ZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1ibG9iLXVybC5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDIw
YWMxN2Q1NjNjNGIzYTQ2MWYwY2FhZmJlYWVlYmQ3MTNmOTcwODEuLmRjY2VkY2NkMzY4ZTFmZjE3
YjFkZDEzNmU0NTNmZWM0ZmUxMGJjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXIt
aW1wb3J0LWJsb2ItdXJsLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtl
ci1pbXBvcnQtYmxvYi11cmwuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxOCArMSw5IEBACi1DT05T
T0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRw
Oi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9zdGF0aWMtaW1wb3J0
LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCi1D
T05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJo
dHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9uZXN0ZWQtc3Rh
dGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFy
Z3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcg
bGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMv
c3RhdGljLWltcG9ydC1hbmQtdGhlbi1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQg
Y2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50
YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAw
L3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzIi4gaW1w
b3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTog
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgImh0dHA6Ly9sb2NhbGhvc3Q6
ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL25lc3RlZC1keW5hbWljLWltcG9ydC13b3Jr
ZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09M
RSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDov
L2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZHluYW1pYy1pbXBvcnQt
YW5kLXRoZW4tc3RhdGljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4
YWN0bHkgb25lIGFyZ3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCBzdHJpbmcgbGl0ZXJhbCAiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9kdWxl
cy9yZXNvdXJjZXMvZXZhbC1keW5hbWljLWltcG9ydC13b3JrZXIuanMiLiBpbXBvcnQgY2FsbCBl
eHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVz
c2FnZSA9IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHN0cmluZyBsaXRlcmFsICJodHRwOi8vbG9j
YWxob3N0Ojg4MDAvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9keW5hbWljLWltcG9ydC1hbmQt
dGhlbi1zdGF0aWMtaW1wb3J0LXdvcmtlci5qcyIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3Rs
eSBvbmUgYXJndW1lbnQuCi0KLUZBSUwgU3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJp
bmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3Vy
Y2VzL3N0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3Rs
eSBvbmUgYXJndW1lbnQuIgotRkFJTCBOZXN0ZWQgc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3Rl
ZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL25lc3RlZC1zdGF0aWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBl
eHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgU3RhdGljIGltcG9ydCBhbmQgdGhl
biBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9s
b2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL3N0YXRpYy1pbXBvcnQtYW5k
LXRoZW4tZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhh
Y3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBEeW5hbWljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBz
dHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL2R5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4
YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVkIGR5bmFtaWMgaW1wb3J0LiBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlN5bnRheEVycm9yOiBVbmV4
cGVjdGVkIHN0cmluZyBsaXRlcmFsIFwiaHR0cDovL2xvY2FsaG9zdDo4ODAwL3dvcmtlcnMvbW9k
dWxlcy9yZXNvdXJjZXMvbmVzdGVkLWR5bmFtaWMtaW1wb3J0LXdvcmtlci5qc1wiLiBpbXBvcnQg
Y2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgRHluYW1pYyBpbXBvcnQg
YW5kIHRoZW4gc3RhdGljIGltcG9ydC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0
dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2R5bmFtaWMtaW1w
b3J0LWFuZC10aGVuLXN0YXRpYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxsIGV4cGVj
dHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgotRkFJTCBldmFsKGltcG9ydCgpKS4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCBzdHJpbmcgbGl0ZXJhbCBcImh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC93b3JrZXJzL21vZHVs
ZXMvcmVzb3VyY2VzL2V2YWwtZHluYW1pYy1pbXBvcnQtd29ya2VyLmpzXCIuIGltcG9ydCBjYWxs
IGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuIgorUEFTUyBTdGF0aWMgaW1wb3J0LgorUEFT
UyBOZXN0ZWQgc3RhdGljIGltcG9ydC4KK1BBU1MgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5h
bWljIGltcG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBkeW5hbWljIGlt
cG9ydC4KK1BBU1MgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4KK1BBU1Mg
ZXZhbChpbXBvcnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0
LWNzcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1jc3AtZXhwZWN0
ZWQudHh0CmluZGV4IDFkYTQ2YjkyNmJlMDg5NmVlOGY3NWE3OGRjYWU0ZjI2OWIwNTA5MmIuLjIz
OWNjOWNlMTUzMDFmN2VlZDgzZDVlYjIyMzBhOWRlMjk0ZWEyZWQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2Rl
ZGljYXRlZC13b3JrZXItaW1wb3J0LWNzcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVk
LXdvcmtlci1pbXBvcnQtY3NwLWV4cGVjdGVkLnR4dApAQCAtMSwxMyArMSwyMiBAQAogQ09OU09M
RSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZl
ICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8v
d3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1s
b2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1
cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8g
ZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMv
cmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0
ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVz
b3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3Vy
Y2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6
ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxv
Y2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93
b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogQ09OU09M
RSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgZGlyZWN0aXZl
ICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8v
d3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1s
b2FkLXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3
MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2Fk
LXNjcmlwdC5qcworQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5s
b2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9ydC1vbi1sb2FkLXNj
cmlwdC5qcwogQ09OU09MRSBNRVNTQUdFOiBVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Q
b2xpY3kgZGlyZWN0aXZlICd3b3JrZXItc3JjJy4KIAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJu
YWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3Vy
Y2VzL2V4cG9ydC1vbi1sb2FkLXNjcmlwdC5qcwogCiBQQVNTIHdvcmtlci1zcmMgJ3NlbGYnIGRp
cmVjdGl2ZSBzaG91bGQgZGlzYWxsb3cgY3Jvc3Mgb3JpZ2luIHN0YXRpYyBpbXBvcnQuCiBGQUlM
IHdvcmtlci1zcmMgKiBkaXJlY3RpdmUgc2hvdWxkIGFsbG93IGNyb3NzIG9yaWdpbiBzdGF0aWMg
aW1wb3J0LiBhc3NlcnRfYXJyYXlfZXF1YWxzOiBleHBlY3RlZCBwcm9wZXJ0eSAwIHRvIGJlICJl
eHBvcnQtb24tbG9hZC1zY3JpcHQuanMiIGJ1dCBnb3QgIkVSUk9SIiAoZXhwZWN0ZWQgYXJyYXkg
WyJleHBvcnQtb24tbG9hZC1zY3JpcHQuanMiXSBnb3QgWyJFUlJPUiJdKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVs
ZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtZmFpbHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRp
Y2F0ZWQtd29ya2VyLWltcG9ydC1mYWlsdXJlLWV4cGVjdGVkLnR4dAppbmRleCA5NWM2ZDE1ZGY0
NGUxOGEzNWRmZWIwZmEzOWM4ZDM4NDQyMGMyYzEzLi5lOTU1NzhlNzFiMWM1MGE0ZTA0NzFiMDM3
MTU0YjM4NmIzN2FlZDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1m
YWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1mYWls
dXJlLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4
RXJyb3I6IFVuZXhwZWN0ZWQgc3RyaW5nIGxpdGVyYWwgJy4vbm9uLWV4aXN0ZW50LXNjcmlwdC5q
cycuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCitDT05TT0xFIE1F
U1NBR0U6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLgogCi1GQUlMIGltcG9ydFNj
cmlwdHMoKSBvbiBtb2R1bGUgd29ya2VyIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJUeXBlRXJyb3IiIGJ1dCBnb3QgIkxPQURFRCIKK1BBU1MgaW1w
b3J0U2NyaXB0cygpIG9uIG1vZHVsZSB3b3JrZXIgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4K
IFBBU1MgV29ya2VyIGNvbnN0cnVjdGlvbiBmb3Igbm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91bGQg
ZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KIFBBU1MgU3RhdGljIGltcG9ydCBmb3Igbm9uLWV4aXN0
ZW50IHNjcmlwdCBzaG91bGQgZGlzcGF0Y2ggYW4gRXJyb3JFdmVudC4KLUZBSUwgRHluYW1pYyBp
bXBvcnQgZm9yIG5vbi1leGlzdGVudCBzY3JpcHQgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4g
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlR5cGVFcnJvciIgYnV0IGdvdCAiRXJyb3IiCitQQVNT
IER5bmFtaWMgaW1wb3J0IGZvciBub24tZXhpc3RlbnQgc2NyaXB0IHNob3VsZCB0aHJvdyBhbiBl
eGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIGFuIGludmFsaWQgVVJMIHNo
b3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIGEg
ZmlsZSBVUkwgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29y
a2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dAppbmRleCBkNTgwNjIwNDFjM2U2OTUxNWI4MTVl
MDJkN2MzODY4NGQ3N2M3NmI3Li43NzI5MWJhYTFhNDE4NGJlYmU3YWQ3YjVkOWYxMTljNzFhNzhk
ZTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dv
cmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLWV4cGVjdGVkLnR4dApA
QCAtMSw4ICsxLDUgQEAKLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6IGltcG9ydC5tZXRh
IGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1vZHVsZXMuCiAKLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBt
ZXNzYWdlID0gU3ludGF4RXJyb3I6IGltcG9ydC5tZXRhIGlzIG9ubHkgdmFsaWQgaW5zaWRlIG1v
ZHVsZXMuCi0KLUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIHRvcC1sZXZlbCBtb2R1
bGUgc2NyaXB0LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
IlN5bnRheEVycm9yOiBpbXBvcnQubWV0YSBpcyBvbmx5IHZhbGlkIGluc2lkZSBtb2R1bGVzLiIK
LUZBSUwgVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1vZHVsZSBzY3JpcHQu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBUZXN0IGltcG9ydC5t
ZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJhZ21lbnQuIGFz
c2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBUZXN0IGltcG9ydC5tZXRh
LnVybCBvbiB0aGUgdG9wLWxldmVsIG1vZHVsZSBzY3JpcHQuCitQQVNTIFRlc3QgaW1wb3J0Lm1l
dGEudXJsIG9uIHRoZSBpbXBvcnRlZCBtb2R1bGUgc2NyaXB0LgorUEFTUyBUZXN0IGltcG9ydC5t
ZXRhLnVybCBvbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIHNjcmlwdCB3aXRoIGEgZnJhZ21lbnQuCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2Rl
ZGljYXRlZC13b3JrZXItaW1wb3J0LW1ldGEuaHRtbAppbmRleCBjZmY4ZTkxNDg4ZTgyMzlhYmUy
MTM2MTlkMTJkNWE2MDMwNzJmYmVhLi5lZGUyNjkyZTFjNjM0MWJlZmZjOTAxMGM0MWI4ZjRjZmU0
MzgzMjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC1tZXRhLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQtbWV0YS5odG1sCkBAIC01Myw3ICs1Myw3
IEBACiAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgnLi8nICsgc2NyaXB0X3VybCArICcjMScp
OwogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB3b3JrZXIub25tZXNzYWdl
ID0gcmVzb2x2ZSk7CiAgICAgICB9KQotICAgICAgLnRoZW4obXNnX2V2ZW50ID0+IGFzc2VydF90
cnVlKG1zZ19ldmVudC5kYXRhLmVuZHNXaXRoKHNjcmlwdF91cmwpKSk7CisgICAgICAudGhlbiht
c2dfZXZlbnQgPT4gYXNzZXJ0X3RydWUobXNnX2V2ZW50LmRhdGEuZW5kc1dpdGgoc2NyaXB0X3Vy
bCArICcjMScpKSk7CiB9LCAnVGVzdCBpbXBvcnQubWV0YS51cmwgb24gdGhlIGltcG9ydGVkIG1v
ZHVsZSBzY3JpcHQgd2l0aCBhIGZyYWdtZW50LicpOwogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1
bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2Rl
ZGljYXRlZC13b3JrZXItaW1wb3J0LXJlZmVycmVyLWV4cGVjdGVkLnR4dAppbmRleCA2ZGM0MmMx
Y2ZkMzM0OGFmZGQxZGZkM2IxMGE1MDQ3MDU1MzAxOTZhLi43MDE2NThkYTY4MDRjYWViMGRlYzI1
NDg3MDA5ZWU2NzZjZWVhOWQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9y
dC1yZWZlcnJlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdvcmtlci1pbXBvcnQt
cmVmZXJyZXItZXhwZWN0ZWQudHh0CkBAIC0xLDE5ICsxLDIzIEBACi0KLUhhcm5lc3MgRXJyb3Ig
KFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJM
IGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4
cG9ydC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwg
aHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhw
b3J0LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBo
dHRwczovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBv
cnQtcmVmZXJyZXItY2hlY2tlci5weQorQmxvY2tlZCBhY2Nlc3MgdG8gZXh0ZXJuYWwgVVJMIGh0
dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrZXJzL21vZHVsZXMvcmVzb3VyY2VzL2V4cG9y
dC1yZWZlcnJlci1jaGVja2VyLnB5CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0
cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtlcnMvbW9kdWxlcy9yZXNvdXJjZXMvZXhwb3J0
LXJlZmVycmVyLWNoZWNrZXIucHkKK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRw
czovL3d3dzEubG9jYWxob3N0Ojk0NDMvd29ya2Vycy9tb2R1bGVzL3Jlc291cmNlcy9leHBvcnQt
cmVmZXJyZXItY2hlY2tlci5weQogCiBQQVNTIFNhbWUtb3JpZ2luIHRvcC1sZXZlbCBtb2R1bGUg
c2NyaXB0IGxvYWRpbmcgd2l0aCAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeQogUEFTUyBT
YW1lLW9yaWdpbiB0b3AtbGV2ZWwgbW9kdWxlIHNjcmlwdCBsb2FkaW5nIHdpdGggIm9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5CiBQQVNTIFNhbWUtb3JpZ2luIHRvcC1sZXZlbCBtb2R1bGUgc2NyaXB0
IGxvYWRpbmcgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeQotRkFJTCBTYW1lLW9y
aWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogVHlwZSBlcnJvciIKLUZBSUwgU2FtZS1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJv
cmlnaW4iIHJlZmVycmVyIHBvbGljeS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBTYW1lLW9y
aWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogVHlwZSBlcnJvciIKK1BBU1MgU2FtZS1vcmlnaW4gc3RhdGljIGltcG9ydCB3aXRoICJu
by1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LgorUEFTUyBTYW1lLW9yaWdpbiBzdGF0aWMgaW1w
b3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgorUEFTUyBTYW1lLW9yaWdpbiBzdGF0
aWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kuCiBGQUlMIENyb3Nz
LW9yaWdpbiBzdGF0aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3ku
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogVHlwZSBlcnJvciIKIEZBSUwgQ3Jvc3Mtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0
aCAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKIEZBSUwgQ3Jv
c3Mtb3JpZ2luIHN0YXRpYyBpbXBvcnQgd2l0aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGlj
eS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiBUeXBlIGVycm9yIgotVElNRU9VVCBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9y
dCB3aXRoICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9saWN5LiBUZXN0IHRpbWVkIG91dAotTk9U
UlVOIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9s
aWN5LgotTk9UUlVOIFNhbWUtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggInNhbWUtb3JpZ2lu
IiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdp
dGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuCi1OT1RSVU4gQ3Jvc3Mtb3JpZ2luIGR5
bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LgotTk9UUlVOIENyb3Nz
LW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
LgorUEFTUyBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJuby1yZWZlcnJlciIgcmVm
ZXJyZXIgcG9saWN5LgorUEFTUyBTYW1lLW9yaWdpbiBkeW5hbWljIGltcG9ydCB3aXRoICJvcmln
aW4iIHJlZmVycmVyIHBvbGljeS4KK1BBU1MgU2FtZS1vcmlnaW4gZHluYW1pYyBpbXBvcnQgd2l0
aCAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeS4KK0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFt
aWMgaW1wb3J0IHdpdGggIm5vLXJlZmVycmVyIiByZWZlcnJlciBwb2xpY3kuIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlw
ZSBlcnJvciIKK0ZBSUwgQ3Jvc3Mtb3JpZ2luIGR5bmFtaWMgaW1wb3J0IHdpdGggIm9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCitGQUlMIENyb3NzLW9yaWdpbiBk
eW5hbWljIGltcG9ydCB3aXRoICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5LiBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IFR5cGUgZXJyb3IiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItaW1wb3J0LmFu
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLWltcG9ydC5hbnktZXhwZWN0ZWQu
dHh0CmluZGV4IGEyM2E1NTc1ZGI0Mjc0MjdmODViZDZiNjM1NGRlODgzODMxZmUyYjQuLmRjY2Vk
Y2NkMzY4ZTFmZjE3YjFkZDEzNmU0NTNmZWM0ZmUxMGJjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItaW1wb3J0LmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1pbXBvcnQuYW55LWV4cGVjdGVkLnR4dApAQCAtMSwxNCArMSw5IEBACi1DT05TT0xFIE1F
U1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqJy4gaW1wb3J0IGNhbGwgZXhw
ZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KLUNPTlNPTEUgTUVTU0FHRTogU3ludGF4RXJyb3I6
IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFy
Z3VtZW50LgotQ09OU09MRSBNRVNTQUdFOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAn
KicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQuCiAKLUhhcm5lc3Mg
RXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyon
LiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50LgotCi1GQUlMIFN0YXRp
YyBpbXBvcnQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAi
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4
YWN0bHkgb25lIGFyZ3VtZW50LiIKLUZBSUwgTmVzdGVkIHN0YXRpYyBpbXBvcnQuIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gJyonLiBpbXBvcnQgY2FsbCBleHBlY3RzIGV4YWN0bHkgb25lIGFyZ3VtZW50
LiIKLUZBSUwgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9ydC4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiAnKicuIGltcG9ydCBjYWxsIGV4cGVjdHMgZXhhY3RseSBvbmUgYXJndW1lbnQu
IgotRkFJTCBEeW5hbWljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZh
aWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1v
ZHVsZSAnLi9leHBvcnQtb24tbG9hZC1zY3JpcHQuanMnLiIsIGV4cGVjdGVkIGFycmF5Ci1GQUlM
IE5lc3RlZCBkeW5hbWljIGltcG9ydC4gYXNzZXJ0X2FycmF5X2VxdWFsczogdmFsdWUgaXMgIkZh
aWxlZCB0byBkbyBkeW5hbWljIGltcG9ydDogRXJyb3I6IENvdWxkIG5vdCBpbXBvcnQgdGhlIG1v
ZHVsZSAnLi9leHBvcnQtb24tZHluYW1pYy1pbXBvcnQtc2NyaXB0LmpzJy4iLCBleHBlY3RlZCBh
cnJheQotRkFJTCBEeW5hbWljIGltcG9ydCBhbmQgdGhlbiBzdGF0aWMgaW1wb3J0LiBhc3NlcnRf
YXJyYXlfZXF1YWxzOiB2YWx1ZSBpcyAiRmFpbGVkIHRvIGRvIGR5bmFtaWMgaW1wb3J0OiBFcnJv
cjogQ291bGQgbm90IGltcG9ydCB0aGUgbW9kdWxlICcuL2V4cG9ydC1vbi1zdGF0aWMtaW1wb3J0
LXNjcmlwdC5qcycuIiwgZXhwZWN0ZWQgYXJyYXkKLUZBSUwgZXZhbChpbXBvcnQoKSkuIGFzc2Vy
dF9hcnJheV9lcXVhbHM6IHZhbHVlIGlzICJGYWlsZWQgdG8gZG8gZHluYW1pYyBpbXBvcnQ6IEVy
cm9yOiBDb3VsZCBub3QgaW1wb3J0IHRoZSBtb2R1bGUgJy4vZXhwb3J0LW9uLWxvYWQtc2NyaXB0
LmpzJy4iLCBleHBlY3RlZCBhcnJheQorUEFTUyBTdGF0aWMgaW1wb3J0LgorUEFTUyBOZXN0ZWQg
c3RhdGljIGltcG9ydC4KK1BBU1MgU3RhdGljIGltcG9ydCBhbmQgdGhlbiBkeW5hbWljIGltcG9y
dC4KK1BBU1MgRHluYW1pYyBpbXBvcnQuCitQQVNTIE5lc3RlZCBkeW5hbWljIGltcG9ydC4KK1BB
U1MgRHluYW1pYyBpbXBvcnQgYW5kIHRoZW4gc3RhdGljIGltcG9ydC4KK1BBU1MgZXZhbChpbXBv
cnQoKSkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItb3B0aW9ucy10eXBlLWV4cGVjdGVkLnR4
dAppbmRleCBkYTBlNGViNjc1OGQxNGEzN2EzOThkMGI2ZmM3MWFkMzg3NmJkMjZiLi4xZmMwYzY2
ZmRmNzI0YzJhYTNiOTEwNjk4MGJmYmU3ZTk4OGY5NzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbW9kdWxlcy9kZWRpY2F0
ZWQtd29ya2VyLW9wdGlvbnMtdHlwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVkaWNhdGVkLXdv
cmtlci1vcHRpb25zLXR5cGUtZXhwZWN0ZWQudHh0CkBAIC0yLDExICsyLDYgQEAKIFBBU1MgVGVz
dCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggdGhlIGRlZmF1bHQgd29ya2VyIHR5cGUuCiBQQVNT
IFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIHRoZSAiY2xhc3NpYyIgd29ya2VyIHR5cGUu
CiBQQVNTIFRlc3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIHRoZSAibW9kdWxlIiB3b3JrZXIg
dHlwZS4KLUZBSUwgVGVzdCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gZW1wdHkgd29ya2Vy
IHR5cGUuIGFzc2VydF90aHJvd3NfanM6IFdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiBlbXB0
eSB0eXBlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gZnVuY3Rpb24gIigpID0+IHsKLSAgICAg
ICAgbmV3IFdvcmtlcigncmVzb3VyY2VzL3Bvc3QtbWVzc2FnZS1vbi1sb2FkLXdvcmtlci5qcycs
IHsgdHlwZTogJycgfSk7Ci0gICAgICB9IiBkaWQgbm90IHRocm93Ci1GQUlMIFRlc3Qgd29ya2Vy
IGNvbnN0cnVjdGlvbiB3aXRoIGFuIHVua25vd24gd29ya2VyIHR5cGUuIGFzc2VydF90aHJvd3Nf
anM6IFdvcmtlciBjb25zdHJ1Y3Rpb24gd2l0aCBhbiB1bmtub3duIHR5cGUgc2hvdWxkIHRocm93
IGFuIGV4Y2VwdGlvbiBmdW5jdGlvbiAiKCkgPT4gewotICAgICAgICBuZXcgV29ya2VyKCdyZXNv
dXJjZXMvcG9zdC1tZXNzYWdlLW9uLWxvYWQtd29ya2VyLmpzJywKLSAgICAgICAgICAgICAgICAg
ICB7IHR5cGU6ICd1bmtub3duJyB9KTsKLSAgICAgIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgVGVz
dCB3b3JrZXIgY29uc3RydWN0aW9uIHdpdGggYW4gZW1wdHkgd29ya2VyIHR5cGUuCitQQVNTIFRl
c3Qgd29ya2VyIGNvbnN0cnVjdGlvbiB3aXRoIGFuIHVua25vd24gd29ya2VyIHR5cGUuCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29y
a2Vycy9tb2R1bGVzL2RlZGljYXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtl
cnMvbW9kdWxlcy9kZWRpY2F0ZWQtd29ya2VyLXBhcnNlLWVycm9yLWZhaWx1cmUtZXhwZWN0ZWQu
dHh0CmluZGV4IGU4ZWI1NDBiZDMzOTI0MDBhOGRiZmQ5Mzg2NDhhNjQ5MjM5YzBkOWUuLmQxYTUw
ZjdlYTNjZDZkYzI5OGVmNzU0MTQ3NzYyYzY5YzU3ZDczYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9tb2R1bGVzL2RlZGlj
YXRlZC13b3JrZXItcGFyc2UtZXJyb3ItZmFpbHVyZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL21vZHVsZXMvZGVk
aWNhdGVkLXdvcmtlci1wYXJzZS1lcnJvci1mYWlsdXJlLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsx
LDE0IEBACi1DT05TT0xFIE1FU1NBR0U6IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcq
Jy4gaW1wb3J0IGNhbGwgZXhwZWN0cyBleGFjdGx5IG9uZSBhcmd1bWVudC4KK0NPTlNPTEUgTUVT
U0FHRTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJzsnCitDT05TT0xFIE1FU1NBR0U6
IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICc7JwogCi1IYXJuZXNzIEVycm9yIChGQUlM
KSwgbWVzc2FnZSA9IEVycm9yOiBhc3NlcnRfaW1wbGVtZW50czogU3RhdGljIGltcG9ydCBtdXN0
IGJlIHN1cHBvcnRlZCBvbiBtb2R1bGUgZGVkaWNhdGVkIHdvcmtlciB0byBydW4gdGhpcyB0ZXN0
LiB1bmRlZmluZWQKLQotTk9UUlVOIE1vZHVsZSB3b3JrZXIgY29uc3RydWN0aW9uIGZvciBzY3Jp
cHQgd2l0aCBzeW50YXggZXJyb3Igc2hvdWxkIGRpc3BhdGNoIGFuIGV2ZW50IG5hbWVkIGVycm9y
LgotTk9UUlVOIFN0YXRpYyBpbXBvcnQgb24gbW9kdWxlIHdvcmtlciBmb3Igc2NyaXB0IHdpdGgg
c3ludGF4IGVycm9yIHNob3VsZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4KK0ZBSUwg
TW9kdWxlIHdvcmtlciBjb25zdHJ1Y3Rpb24gZm9yIHNjcmlwdCB3aXRoIHN5bnRheCBlcnJvciBz
aG91bGQgZGlzcGF0Y2ggYW4gZXZlbnQgbmFtZWQgZXJyb3IuIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIGZ1bmN0aW9uICJmdW5jdGlvbiBFdmVudCgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiBi
dXQgZ290IGZ1bmN0aW9uICJmdW5jdGlvbiBFcnJvckV2ZW50KCkgeworICAgIFtuYXRpdmUgY29k
ZV0KK30iCitGQUlMIFN0YXRpYyBpbXBvcnQgb24gbW9kdWxlIHdvcmtlciBmb3Igc2NyaXB0IHdp
dGggc3ludGF4IGVycm9yIHNob3VsZCBkaXNwYXRjaCBhbiBldmVudCBuYW1lZCBlcnJvci4gYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgZnVuY3Rpb24gImZ1bmN0aW9uIEV2ZW50KCkgeworICAgIFtu
YXRpdmUgY29kZV0KK30iIGJ1dCBnb3QgZnVuY3Rpb24gImZ1bmN0aW9uIEVycm9yRXZlbnQoKSB7
CisgICAgW25hdGl2ZSBjb2RlXQorfSIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL25hbWUtcHJvcGVydHktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJz
L25hbWUtcHJvcGVydHktZXhwZWN0ZWQudHh0CmluZGV4IDYzOTg0NzEyMTQ1OWE3YWIzN2I5ZjA5
YTY4YmE2NGVhOGE5ZWQ1N2MuLmU5NDY5NDdiMTRhZWYzZTUyOTlhMGFiYTNhZTRiMWNmOWZjZDk1
NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2Vycy9uYW1lLXByb3BlcnR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvbmFtZS1wcm9wZXJ0eS1leHBl
Y3RlZC50eHQKQEAgLTEsNyArMSw4IEBACiBDT05TT0xFIE1FU1NBR0U6IFVuaGFuZGxlZCBQcm9t
aXNlIFJlamVjdGlvbjogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJl
ZFdvcmtlcgogCi1GQUlMIFRlc3QgdGhlIG5hbWUgcHJvcGVydHkgb2Ygc2hhcmVkIGFuZCBkZWRp
Y2F0ZWQgd29ya2VycyB2aWEgdGhlIG5hbWUgY29uc3RydWN0b3Igb3B0aW9uIENhbid0IGZpbmQg
dmFyaWFibGU6IFNoYXJlZFdvcmtlcgotUEFTUyBEZWNsYXJpbmcgbmFtZSBhcyBhbiBhY2NpZGVu
dGFsIGdsb2JhbCBtdXN0IG5vdCBjYXVzZSBhIGhhcm5lc3MgZXJyb3IgZm9yIERlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlCitIYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxl
ZCByZWplY3Rpb246IENhbid0IGZpbmQgdmFyaWFibGU6IFNoYXJlZFdvcmtlcgorCiBQQVNTIG5h
bWUgcHJvcGVydHkgdmFsdWUgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCiBQQVNTIG5h
bWUgcHJvcGVydHkgaXMgcmVwbGFjZWFibGUgZm9yIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
CitQQVNTIERlY2xhcmluZyBuYW1lIGFzIGFuIGFjY2lkZW50YWwgZ2xvYmFsIG11c3Qgbm90IGNh
dXNlIGEgaGFybmVzcyBlcnJvciBmb3IgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
bGV0cy9hdWRpby13b3JrbGV0LWNyZWRlbnRpYWxzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29y
a2xldC1jcmVkZW50aWFscy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZjA2OTFhYTA5Y2M0OWNk
ZjdmMmE5NDM3NGM2ZTYyMjIwZjkzYjhlMi4uYTU3MGQ4ZDI5MmZhODU2MjEyYjA1NDc4ODIwZjEz
MGY4MWQ5YmJmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LWNyZWRlbnRpYWxzLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3JlZGVudGlhbHMuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0xLDExICsxLDExIEBACiBDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwczovL2xvY2FsaG9z
dDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIAot
RkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0aCB0aGUgZGVmYXVsdCBXb3Jr
bGV0T3B0aW9ucyBzaG91bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRv
IGZldGNoIG1vZHVsZSwgZXJyb3I6IFJlc3BvbnNlIGlzIG5vdCAyeHgiCitGQUlMIEltcG9ydGlu
ZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIHRoZSBkZWZhdWx0IFdvcmtsZXRPcHRpb25zIHNo
b3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2Ny
aXB0IGZhaWxlZC4iCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGgg
dGhlIGRlZmF1bHQgV29ya2xldE9wdGlvbnMgc2hvdWxkIG5vdCBzZW5kIHRoZSBjcmVkZW50aWFs
cwotRkFJTCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1v
bWl0IHNob3VsZCBub3Qgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJvcjogRmFpbGVkIHRvIGZl
dGNoIG1vZHVsZSwgZXJyb3I6IFJlc3BvbnNlIGlzIG5vdCAyeHgiCitGQUlMIEltcG9ydGluZyBh
IHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPW9taXQgc2hvdWxkIG5vdCBzZW5k
IHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxl
ZC4iCiBQQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdpdGggY3JlZGVudGlh
bHM9b21pdCBzaG91bGQgbm90IHNlbmQgdGhlIGNyZWRlbnRpYWxzCi1GQUlMIEltcG9ydGluZyBh
IHNhbWUtb3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPXNhbWUtb3JpZ2luIHNob3VsZCBz
ZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBGYWlsZWQgdG8gZmV0Y2ggbW9kdWxlLCBlcnJv
cjogUmVzcG9uc2UgaXMgbm90IDJ4eCIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2Ny
aXB0IHdpdGggY3JlZGVudGlhbHM9c2FtZS1vcmlnaW4gc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRp
YWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IkFib3J0RXJyb3I6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLiIKIFBBU1MgSW1w
b3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1zYW1lLW9yaWdp
biBzaG91bGQgbm90IHNlbmQgdGhlIGNyZWRlbnRpYWxzCi1GQUlMIEltcG9ydGluZyBhIHNhbWUt
b3JpZ2luIHNjcmlwdCB3aXRoIGNyZWRlbnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNlbmQgdGhlIGNy
ZWRlbnRpYWxzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIkFib3J0RXJyb3I6IEZhaWxlZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiBSZXNwb25z
ZSBpcyBub3QgMnh4IgotRkFJTCBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCB3aXRo
IGNyZWRlbnRpYWxzPWluY2x1ZGUgc2hvdWxkIHNlbmQgdGhlIGNyZWRlbnRpYWxzIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkFib3J0RXJyb3I6
IEZhaWxlZCB0byBmZXRjaCBtb2R1bGUsIGVycm9yOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6
OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uIgorRkFJ
TCBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgd2l0aCBjcmVkZW50aWFscz1pbmNsdWRl
IHNob3VsZCBzZW5kIHRoZSBjcmVkZW50aWFscyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJBYm9ydEVycm9yOiBJbXBvcnRpbmcgYSBtb2R1bGUg
c2NyaXB0IGZhaWxlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHdp
dGggY3JlZGVudGlhbHM9aW5jbHVkZSBzaG91bGQgc2VuZCB0aGUgY3JlZGVudGlhbHMgcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiQWJvcnRFcnJv
cjogQ3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3Vy
Y2UgU2hhcmluZyBwb2xpY3kuIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtY3NwLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d29ya2xldHMvYXVkaW8td29ya2xldC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGJmMzM1
Y2YzMDU1ZTA2NWIzODk4OWI0MWFhMWUyMzZmZWI0YWMyOWQuLjI3NWIzNDM3ZmFkOTc1M2E2ZWNl
MjQyMDBlYWJmMjU3ZmZkNjI3MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jc3AuaHR0cHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2xldHMvYXVkaW8td29ya2xldC1jc3AuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQw
ICsxLDUyIEBACitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxv
Y2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRo
LWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93
d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlw
dC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0
cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0
LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBV
UkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13
b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0byBleHRl
cm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9l
bXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCitCbG9ja2VkIGFjY2VzcyB0
byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291
cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1F
U1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dv
cmtlci1zcmMnLgogCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3Vy
aXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCitCbG9ja2VkIGFjY2VzcyB0byBl
eHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNl
cy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzCiBDT05TT0xFIE1FU1NB
R0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtl
ci1zcmMnLgogCiBDT05TT0xFIE1FU1NBR0U6IFVucmVjb2duaXplZCBDb250ZW50LVNlY3VyaXR5
LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgogCiBDT05TT0xFIE1FU1NBR0U6IFVucmVj
b2duaXplZCBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBkaXJlY3RpdmUgJ3dvcmtlci1zcmMnLgog
CitCbG9ja2VkIGFjY2VzcyB0byBleHRlcm5hbCBVUkwgaHR0cHM6Ly93d3cxLmxvY2FsaG9zdDo5
NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVh
ZGVyLmpzCiBDT05TT0xFIE1FU1NBR0U6IFtibG9ja2VkXSBUaGUgcGFnZSBhdCBodHRwczovL2xv
Y2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9hZGRtb2R1bGUtd2luZG93Lmh0bWwgd2Fz
IG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly9sb2Nh
bGhvc3Q6ODgwMC93b3JrbGV0cy9yZXNvdXJjZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1j
b3JzLWhlYWRlci5qcy4KIAogQ09OU09MRSBNRVNTQUdFOiBbYmxvY2tlZF0gVGhlIHBhZ2UgYXQg
aHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJjZXMvYWRkbW9kdWxlLXdpbmRv
dy5odG1sIHdhcyBub3QgYWxsb3dlZCB0byBkaXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBo
dHRwOi8vbG9jYWxob3N0Ojg4MDAvd29ya2xldHMvcmVzb3VyY2VzL2VtcHR5LXdvcmtsZXQtc2Ny
aXB0LXdpdGgtY29ycy1oZWFkZXIuanMuCiAKK0NPTlNPTEUgTUVTU0FHRTogW2Jsb2NrZWRdIFRo
ZSBwYWdlIGF0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL2FkZG1v
ZHVsZS13aW5kb3cuaHRtbCB3YXMgbm90IGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250
ZW50IGZyb20gaHR0cDovL2xvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291cmNlcy9lbXB0eS13
b3JrbGV0LXNjcmlwdC13aXRoLWNvcnMtaGVhZGVyLmpzLgorCitDT05TT0xFIE1FU1NBR0U6IFti
bG9ja2VkXSBUaGUgcGFnZSBhdCBodHRwczovL2xvY2FsaG9zdDo5NDQzL3dvcmtsZXRzL3Jlc291
cmNlcy9hZGRtb2R1bGUtd2luZG93Lmh0bWwgd2FzIG5vdCBhbGxvd2VkIHRvIGRpc3BsYXkgaW5z
ZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly9sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNvdXJj
ZXMvZW1wdHktd29ya2xldC1zY3JpcHQtd2l0aC1jb3JzLWhlYWRlci5qcy4KKwogCiBGQUlMIEEg
cmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBiZSBibG9ja2VkIGJ5IHRoZSBzY3JpcHQtc3Jj
ICdzZWxmJyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0
IGdvdCAiUkVTT0xWRUQiCi1GQUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYSBy
ZW1vdGUtb3JpZ2luIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAn
c2VsZicgZGlyZWN0aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBn
b3QgIlJFU09MVkVEIgorUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVt
b3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMgJ3Nl
bGYnIGRpcmVjdGl2ZS4KIEZBSUwgQSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEg
cmVtb3RlLW9yaWdpbiBzY3JpcHQgc2hvdWxkIGJlIGJsb2NrZWQgYnkgdGhlIHNjcmlwdC1zcmMg
J3NlbGYnIGRpcmVjdGl2ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFSkVDVEVEIiBidXQg
Z290ICJSRVNPTFZFRCIKIEZBSUwgQSByZW1vdGUtb3JpZ2luLXJlZGlyZWN0ZWQgd29ya2xldCBz
aG91bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0aXZlLiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVEIgotRkFJTCBB
IHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVk
IHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2VsZicgZGlyZWN0
aXZlLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVKRUNURUQiIGJ1dCBnb3QgIlJFU09MVkVE
IgorUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1y
ZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBieSB0aGUgc2NyaXB0LXNyYyAnc2Vs
ZicgZGlyZWN0aXZlLgogUEFTUyBBIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzaG91bGQgbm90IGJl
IGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUg
b3JpZ2luIGFsbG93cyBpdC4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBh
IHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBz
Y3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxsb3dzIGl0LgorRkFJ
TCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBzY3JpcHQg
c2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNw
ZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJS
RVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0
IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBi
ZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5nIHRoZSBvcmlnaW4gYWxs
b3dzIGl0LgogUEFTUyBBIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBu
b3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZSBzcGVjaWZ5aW5n
IHRoZSBvcmlnaW4gYWxsb3dzIGl0LgotUEFTUyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0
aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2Nr
ZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyBkaXJlY3RpdmUgc3BlY2lmeWluZyB0aGUgb3JpZ2lu
IGFsbG93cyBpdC4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90
ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2Ug
dGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlIHNwZWNpZnlpbmcgdGhlIG9yaWdpbiBhbGxvd3MgaXQu
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAiUkVKRUNURUQiCiBQ
QVNTIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNl
IHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4KLVBBU1MgQSBzYW1lLW9yaWdp
biB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUg
YmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZlIGFsbG93cyBpdC4KK0ZB
SUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0
IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICogZGlyZWN0aXZl
IGFsbG93cyBpdC4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJS
RUpFQ1RFRCIKIFBBU1MgQSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3Rl
LW9yaWdpbiBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJlY2F1c2UgdGhlIHNjcmlwdC1z
cmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0LgogUEFTUyBBIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3Rl
ZCB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBiZWNhdXNlIHRoZSBzY3JpcHQtc3JjICog
ZGlyZWN0aXZlIGFsbG93cyBpdC4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2Vk
IGJlY2F1c2UgdGhlIHNjcmlwdC1zcmMgKiBkaXJlY3RpdmUgYWxsb3dzIGl0LgorRkFJTCBBIHNh
bWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNj
cmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYmVjYXVzZSB0aGUgc2NyaXB0LXNyYyAqIGRpcmVj
dGl2ZSBhbGxvd3MgaXQuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdv
dCAiUkVKRUNURUQiCiBQQVNTIEEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBub3QgYmUg
YmxvY2tlZCBieSB0aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5
IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGlt
cG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0
aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQt
c3JjIGRpcmVjdGl2ZS4KK0ZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4gc2NyaXB0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0aGUgd29ya2VyLXNy
YyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2
ZS4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJSRUpFQ1RFRCIK
IFBBU1MgQSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVtb3RlLW9yaWdpbiBz
Y3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJ5IHRoZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBi
ZWNhdXNlIHdvcmtsZXRzIG9iZXkgdGhlIHNjcmlwdC1zcmMgZGlyZWN0aXZlLgogUEFTUyBBIHJl
bW90ZS1vcmlnaW4tcmVkaXJlY3RlZCB3b3JrbGV0IHNob3VsZCBub3QgYmUgYmxvY2tlZCBieSB0
aGUgd29ya2VyLXNyYyBkaXJlY3RpdmUgYmVjYXVzZSB3b3JrbGV0cyBvYmV5IHRoZSBzY3JpcHQt
c3JjIGRpcmVjdGl2ZS4KLVBBU1MgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhIHJl
bW90ZS1vcmlnaW4tcmVkaXJlY3RlZCBzY3JpcHQgc2hvdWxkIG5vdCBiZSBibG9ja2VkIGJ5IHRo
ZSB3b3JrZXItc3JjIGRpcmVjdGl2ZSBiZWNhdXNlIHdvcmtsZXRzIG9iZXkgdGhlIHNjcmlwdC1z
cmMgZGlyZWN0aXZlLgorRkFJTCBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGEgcmVt
b3RlLW9yaWdpbi1yZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgbm90IGJlIGJsb2NrZWQgYnkgdGhl
IHdvcmtlci1zcmMgZGlyZWN0aXZlIGJlY2F1c2Ugd29ya2xldHMgb2JleSB0aGUgc2NyaXB0LXNy
YyBkaXJlY3RpdmUuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAi
UkVKRUNURUQiCiBQQVNTIEFuIGluc2VjdXJlLW9yaWdpbiB3b3JrbGV0IHNob3VsZCBiZSBibG9j
a2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMuCiBQQVNTIEFuIGluc2VjdXJlLW9yaWdpbi1y
ZWRpcmVjdGVkIHdvcmtsZXQgc2hvdWxkIGJlIGJsb2NrZWQgYmVjYXVzZSBvZiBtaXhlZCBjb250
ZW50cy4KLUZBSUwgQSBzYW1lLW9yaWdpbiB3b3JrbGV0IGltcG9ydGluZyBhbiBpbnNlY3VyZS1v
cmlnaW4gc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVudHMu
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQiCi1G
QUlMIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYW4gaW5zZWN1cmUtb3JpZ2luLXJl
ZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBiZSBibG9ja2VkIGJlY2F1c2Ugb2YgbWl4ZWQgY29udGVu
dHMuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRUpFQ1RFRCIgYnV0IGdvdCAiUkVTT0xWRUQi
CitQQVNTIEEgc2FtZS1vcmlnaW4gd29ya2xldCBpbXBvcnRpbmcgYW4gaW5zZWN1cmUtb3JpZ2lu
IHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRzLgorUEFT
UyBBIHNhbWUtb3JpZ2luIHdvcmtsZXQgaW1wb3J0aW5nIGFuIGluc2VjdXJlLW9yaWdpbi1yZWRp
cmVjdGVkIHNjcmlwdCBzaG91bGQgYmUgYmxvY2tlZCBiZWNhdXNlIG9mIG1peGVkIGNvbnRlbnRz
LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtaW1wb3J0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xldHMvYXVkaW8t
d29ya2xldC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGZlODk2NWFlZjZjYWRhMjIx
OWVmOGUzMDg4OGJhOTFlMjQwMTdhYzAuLjY3NjQ3ZDQ2ODdiOWQzY2ZjODZlMGIyYzhmNTY4ZTIw
ZjViZWMzOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2xldHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2xl
dHMvYXVkaW8td29ya2xldC1pbXBvcnQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xNiw3ICsxNiw3
IEBAIFBBU1MgSW1wb3J0aW5nIGEgY3Jvc3Mgb3JpZ2luIHJlc291cmNlIHdpdGggdGhlIEFjY2Vz
cy1Db250cm9sLUFsbG93LU9yaWdpbiBoZWFkCiBQQVNTIEltcG9ydGluZyBhIGNyb3NzIG9yaWdp
biByZXNvdXJjZSB3aXRob3V0IHRoZSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4gaGVhZGVy
IHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UKIFBBU1MgSW1wb3J0aW5nIGEgY3Jvc3Mt
b3JpZ2luLXJlZGlyZWN0ZWQgcmVzb3VyY2Ugd2l0aCB0aGUgQWNjZXNzLUNvbnRyb2wtQWxsb3ct
T3JpZ2luIGhlYWRlciBzaG91bGQgcmVzb2x2ZSB0aGUgZ2l2ZW4gcHJvbWlzZQogUEFTUyBJbXBv
cnRpbmcgYSBjcm9zcy1vcmlnaW4tcmVkaXJlY3RlZCByZXNvdXJjZSB3aXRob3V0IHRoZSBBY2Nl
c3MtQ29udHJvbC1BbGxvdy1PcmlnaW4gaGVhZGVyIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHBy
b21pc2UKLUZBSUwgSW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgaGFzIGEgc3ludGF4IGVycm9yIHNo
b3VsZCByZWplY3QgdGhlIGdpdmVuIHByb21pc2UuIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBo
YXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIElt
cG9ydGluZyBhIG5lc3RlZCBzY3JpcHQgdGhhdCBoYXMgYSBzeW50YXggZXJyb3Igc2hvdWxkIHJl
amVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4gYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVq
ZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwgSW1wb3J0aW5n
IGEgc2NyaXB0IHRoYXQgaW1wb3J0cyBhbiBpbnZhbGlkIGlkZW50aWZpZXIgc2hvdWxkIHJlamVj
dCB0aGUgZ2l2ZW4gcHJvbWlzZS4gYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0
ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgSW1wb3J0aW5nIGEg
c2NyaXB0IHRoYXQgaGFzIGEgc3ludGF4IGVycm9yIHNob3VsZCByZWplY3QgdGhlIGdpdmVuIHBy
b21pc2UuCitQQVNTIEltcG9ydGluZyBhIG5lc3RlZCBzY3JpcHQgdGhhdCBoYXMgYSBzeW50YXgg
ZXJyb3Igc2hvdWxkIHJlamVjdCB0aGUgZ2l2ZW4gcHJvbWlzZS4KK1BBU1MgSW1wb3J0aW5nIGEg
c2NyaXB0IHRoYXQgaW1wb3J0cyBhbiBpbnZhbGlkIGlkZW50aWZpZXIgc2hvdWxkIHJlamVjdCB0
aGUgZ2l2ZW4gcHJvbWlzZS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVycmVyLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd29ya2xldHMvYXVkaW8td29ya2xldC1yZWZlcnJlci5odHRwcy1leHBlY3RlZC50eHQKaW5k
ZXggMjRkNDk5YzE0MWNlZTZkYzliMmViZTI0YmZiNGZmNGMwM2EwYTk3My4uNzlkODUyMjdjYzBm
NDY3MzdlNmY4M2ZiNGEyMWM1OGFiNTM3NzYwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrbGV0cy9hdWRpby13b3JrbGV0LXJlZmVy
cmVyLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRzL2F1ZGlvLXdvcmtsZXQtcmVmZXJyZXIuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDIwICsxLDI2IEBACitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRw
czovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbi4KK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3dzEubG9j
YWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL3JlZmVycmVyLWNoZWNrZXIucHk/cmVmZXJy
ZXJfcG9saWN5PW5vLXJlZmVycmVyJmV4cGVjdGVkX3JlZmVycmVyPQorQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHBzOi8vd3d3MS5sb2NhbGhvc3Q6OTQ0My93b3JrbGV0cy9yZXNv
dXJjZXMvcmVmZXJyZXItY2hlY2tlci5weT9yZWZlcnJlcl9wb2xpY3k9b3JpZ2luJmV4cGVjdGVk
X3JlZmVycmVyPWh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvCitDT05TT0xFIE1FU1NBR0U6IE9yaWdp
biBodHRwczovL2xvY2FsaG9zdDo5NDQzIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9s
LUFsbG93LU9yaWdpbi4KK0Jsb2NrZWQgYWNjZXNzIHRvIGV4dGVybmFsIFVSTCBodHRwczovL3d3
dzEubG9jYWxob3N0Ojk0NDMvd29ya2xldHMvcmVzb3VyY2VzL3JlZmVycmVyLWNoZWNrZXIucHk/
cmVmZXJyZXJfcG9saWN5PXNhbWUtb3JpZ2luJmV4cGVjdGVkX3JlZmVycmVyPQorQ09OU09MRSBN
RVNTQUdFOiBPcmlnaW4gaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBpcyBub3QgYWxsb3dlZCBieSBB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCiAKIFBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmln
aW4gc2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJuby1yZWZlcnJlciIgcmVmZXJyZXIgcG9s
aWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4KIFBBU1MgSW1wb3J0aW5nIGEgcmVtb3RlLW9y
aWdpbiBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiByZWZlcnJlciBw
b2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9y
aWdpbiBzY3JpcHQgZnJvbSBhIHBhZ2UgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
IHNob3VsZCBzZW5kIG9ubHkgYW4gb3JpZ2luIGFzIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcg
YSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAib3JpZ2luIiByZWZl
cnJlciBwb2xpY3kgc2hvdWxkIHNlbmQgb25seSBhbiBvcmlnaW4gYXMgcmVmZXJyZXIuCi1QQVNT
IEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAic2Ft
ZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4KK0ZBSUwgSW1w
b3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJvcmlnaW4i
IHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCBvbmx5IGFuIG9yaWdpbiBhcyByZWZlcnJlci4g
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcgYSBt
b2R1bGUgc2NyaXB0IGZhaWxlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IGZyb20gYSBwYWdlIHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQg
c2VuZCBvbmx5IGFuIG9yaWdpbiBhcyByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
IlJFU09MVkVEIiBidXQgZ290ICJDcm9zcy1vcmlnaW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENy
b3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBvbGljeS4iCitGQUlMIEltcG9ydGluZyBhIHNh
bWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcGFnZSB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVy
cmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
IlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCiBQ
QVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBwYWdlIHRoYXQgaGFz
ICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4K
IFBBU1MgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3
b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91
bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAibm8tcmVmZXJy
ZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCitGQUlMIEltcG9y
dGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNj
cmlwdCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNl
bmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZFRCIgYnV0IGdvdCAi
Q3Jvc3Mtb3JpZ2luIHNjcmlwdCBsb2FkIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2Ug
U2hhcmluZyBwb2xpY3kuIgogUEFTUyBJbXBvcnRpbmcgYSBzYW1lLW9yaWdpbiBzY3JpcHQgZnJv
bSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm5vLXJlZmVycmVyIiBy
ZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBzZW5kIHJlZmVycmVyLgogUEFTUyBJbXBvcnRpbmcg
YSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3b3JrbGV0IHNjcmlw
dCB0aGF0IGhhcyAibm8tcmVmZXJyZXIiIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQg
cmVmZXJyZXIuCiBQQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2Ft
ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5
IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNj
cmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgIm9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFTUyBJbXBvcnRpbmcgYSBz
YW1lLW9yaWdpbiBzY3JpcHQgZnJvbSBhIHJlbW90ZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhh
dCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgotUEFT
UyBJbXBvcnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3
b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAib3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIHNl
bmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEg
c2FtZS1vcmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJl
ciBwb2xpY3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1v
cmlnaW4gc2NyaXB0IGZyb20gYSBzYW1lLW9yaWdpbiB3b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAi
c2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1Q
QVNTIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgcmVtb3RlLW9yaWdpbiB3
b3JrbGV0IHNjcmlwdCB0aGF0IGhhcyAic2FtZS1vcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91
bGQgbm90IHNlbmQgcmVmZXJyZXIuCi1QQVNTIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2Ny
aXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9y
aWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLgorRkFJTCBJbXBvcnRp
bmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBzY3Jp
cHQgdGhhdCBoYXMgIm9yaWdpbiIgcmVmZXJyZXIgcG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVy
LiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdp
biBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9s
aWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUt
b3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBz
aG91bGQgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBi
dXQgZ290ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZhaWxlZC4iCitGQUlMIEltcG9ydGlu
ZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2Ny
aXB0IHRoYXQgaGFzICJvcmlnaW4iIHJlZmVycmVyIHBvbGljeSBzaG91bGQgc2VuZCByZWZlcnJl
ci4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJDcm9zcy1vcmln
aW4gc2NyaXB0IGxvYWQgZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNvdXJjZSBTaGFyaW5nIHBv
bGljeS4iCitGQUlMIEltcG9ydGluZyBhIHNhbWUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1v
cmlnaW4gd29ya2xldCBzY3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xp
Y3kgc2hvdWxkIHNlbmQgcmVmZXJyZXIuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJSRVNPTFZF
RCIgYnV0IGdvdCAiSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQuIgorRkFJTCBJbXBv
cnRpbmcgYSByZW1vdGUtb3JpZ2luIHNjcmlwdCBmcm9tIGEgc2FtZS1vcmlnaW4gd29ya2xldCBz
Y3JpcHQgdGhhdCBoYXMgInNhbWUtb3JpZ2luIiByZWZlcnJlciBwb2xpY3kgc2hvdWxkIG5vdCBz
ZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVTT0xWRUQiIGJ1dCBnb3Qg
IkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNl
IFNoYXJpbmcgcG9saWN5LiIKK0ZBSUwgSW1wb3J0aW5nIGEgc2FtZS1vcmlnaW4gc2NyaXB0IGZy
b20gYSByZW1vdGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIg
cmVmZXJyZXIgcG9saWN5IHNob3VsZCBub3Qgc2VuZCByZWZlcnJlci4gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgIlJFU09MVkVEIiBidXQgZ290ICJJbXBvcnRpbmcgYSBtb2R1bGUgc2NyaXB0IGZh
aWxlZC4iCitGQUlMIEltcG9ydGluZyBhIHJlbW90ZS1vcmlnaW4gc2NyaXB0IGZyb20gYSByZW1v
dGUtb3JpZ2luIHdvcmtsZXQgc2NyaXB0IHRoYXQgaGFzICJzYW1lLW9yaWdpbiIgcmVmZXJyZXIg
cG9saWN5IHNob3VsZCBzZW5kIHJlZmVycmVyLiBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUkVT
T0xWRUQiIGJ1dCBnb3QgIkNyb3NzLW9yaWdpbiBzY3JpcHQgbG9hZCBkZW5pZWQgYnkgQ3Jvc3Mt
T3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5LiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwtcmVkaXJlY3Rl
ZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMveGhyL29wZW4tdXJsLXJlZGlyZWN0ZWQtd29ya2VyLW9yaWdpbi1l
eHBlY3RlZC50eHQKaW5kZXggMWUyZDM5OTJmNmQ1ZGYzMjIwN2E2YjBmNjE5YTZkNzExODEyNDAw
ZC4uN2E3YTkxN2VhYTk4ZTkyZWUwM2VjMjhhMTFlNzgwODRkMjM0Yjg4NiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvb3Blbi11cmwt
cmVkaXJlY3RlZC13b3JrZXItb3JpZ2luLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9vcGVuLXVybC1yZWRpcmVjdGVkLXdv
cmtlci1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAogQmxvY2tlZCBhY2Nlc3Mg
dG8gZXh0ZXJuYWwgVVJMIGh0dHA6Ly93d3cyLmxvY2FsaG9zdDo4ODAwL3hoci9yZXNvdXJjZXMv
aW5zcGVjdC1oZWFkZXJzLnB5P2ZpbHRlcl9uYW1lPW9yaWdpbiZjb3JzCiAKLUZBSUwgUmVmZXJl
ciBoZWFkZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlJlZmVyZXI6IGh0dHA6Ly9sb2NhbGhv
c3Q6ODgwMC94aHIvcmVzb3VyY2VzL3dvcmtlcnhoci1vcmlnaW4tcmVmZXJyZXIuanNcbiIgYnV0
IGdvdCAiUmVmZXJlcjogaHR0cDovL2xvY2FsaG9zdDo4ODAwL3hoci9yZXNvdXJjZXMvcmVkaXJl
Y3QucHk/bG9jYXRpb249d29ya2VyeGhyLW9yaWdpbi1yZWZlcnJlci5qc1xuIgorUEFTUyBSZWZl
cmVyIGhlYWRlcgogRkFJTCBPcmlnaW4gaGVhZGVyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJP
cmlnaW46IGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMFxuIiBidXQgZ290ICIiCiBQQVNTIFJlcXVlc3Qg
VVJMIHRlc3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW93b3JrbGV0
LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvd29ya2xldC1hZGRNb2R1bGUtZmFpbHVyZS1leHBlY3RlZC50eHQKaW5kZXggMDhhZjExNDM2
MDU1MWJmNWE4MDc5YWYwYTM4MTVjNGUwOGViZDE0My4uZGVmMzNhZDg2OTFiNjk0MzZlMGUxODFj
NWJkMDA0ODM1NDgzNTFiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW93
b3JrbGV0LWFkZE1vZHVsZS1mYWlsdXJlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb3dvcmtsZXQtYWRkTW9kdWxlLWZhaWx1cmUtZXhwZWN0ZWQudHh0CkBAIC00
LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgY29udGV4dC5hdWRp
b1dvcmtsZXQuYWRkTW9kdWxlKGludmFsaWRVUkwpOyByZWplY3RlZCBwcm9taXNlICB3aXRoIFN5
bnRheEVycm9yOiBNb2R1bGUgVVJMIGlzIGludmFsaWQuCi1QQVNTIGNvbnRleHQuYXVkaW9Xb3Jr
bGV0LmFkZE1vZHVsZSgnZG9lc25vdEV4aXN0LmpzJyk7IHJlamVjdGVkIHByb21pc2UgIHdpdGgg
QWJvcnRFcnJvcjogRmFpbGVkIHRvIGZldGNoIG1vZHVsZSwgZXJyb3I6IFRoZSByZXF1ZXN0ZWQg
VVJMIHdhcyBub3QgZm91bmQgb24gdGhpcyBzZXJ2ZXIuLgorUEFTUyBjb250ZXh0LmF1ZGlvV29y
a2xldC5hZGRNb2R1bGUoJ2RvZXNub3RFeGlzdC5qcycpOyByZWplY3RlZCBwcm9taXNlICB3aXRo
IEFib3J0RXJyb3I6IEltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkLi4KIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vd29ya2xldC1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby93b3JrbGV0LWNyYXNoLWV4cGVjdGVkLnR4dAppbmRleCA2NTRkZGY3ZjE3ZWZh
YjU4ZTQyZmFiZTM4NTI1Nzk2NGFlMmM1ZDQxLi4xYTQzZTNmOTdjYjJmMDZiOWY3Y2Q1ZjJiMTgy
MzM4MTA1MTNlZWYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby93b3JrbGV0LWNy
YXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby93b3JrbGV0LWNyYXNo
LWV4cGVjdGVkLnR4dApAQCAtMSArMSwyIEBACitDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjog
J3RleHQvaHRtbCcgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCBNSU1FIHR5cGUuCiBUaGlzIHRl
c3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgo=
</data>
<flag name="review"
          id="439721"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>426977</attachid>
            <date>2021-04-24 02:09:25 -0700</date>
            <delta_ts>2021-04-24 02:09:25 -0700</delta_ts>
            <desc>Advanced use case</desc>
            <filename>Screenshot 2021-04-24 at 10.50.43.png</filename>
            <type>image/png</type>
            <size>817883</size>
            <attacher name="Tobias Uhlig">tobiasuhlig78</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAB58AAASwCAYAAADMlY2TAAAK5WlDQ1BJQ0MgUHJvZmlsZQAASImV
lwdYU9kSgM+96SGhBUKREnoTpBNASggtgIJ0EJWQhCSUEFJQERuyuIJrQUUElQVdiii4utLWgliw
LYK9L8iioq6LBSyo7AUeYXff99773uQ7mT+TOXNm7nfO/eYAQE5ii8UZsCoAmSKZJDLIjxafkEjD
DQI00AZE5KPP5kjFjIiIMIDItP67jN4C0IS+bjsR69///6+izuVJOQBASQincKWcTIQ7kPGVI5bI
AEAhDEyWysQT/BvCGhIkQYQ/TDB/ktGkCU6ZYtqkT3QkE2FnAPAkNlvCB4Dki9hpORw+EoeUjLC9
iCsUIbwFYW+OgM1FuAfh2ZmZWRP8GWFLxF8MANkUYXrKX2Ly/xY/RRGfzeYreKquScH7C6XiDPby
//PR/G/JzJBPr2GODJJAEhw5xdCd9KxQBYtS5odPs5A77Q/dEciDY6aZI2UmTjOX7R+qmJsxP2ya
U4WBLEUcGSt6mnnSgKhplmRFKtZKlTAZ08yWzKwrT49R2AU8liJ+riA6bppzhLHzp1maHhU648NU
2CXySEX+PFGQ38y6gYraM6V/qVfIUsyVCaKDFbWzZ/LniRgzMaXxity4PP+AGZ8Yhb9Y5qdYS5wR
ofDnZQQp7NKcKMVcGbI5Z+ZGKJ5hGjskYppBNBAAORABLuABCUgBWSADyAAN+AMhkAIx8osNkO0k
4y2TTRTHzBIvlwj5AhmNgZxAHo0l4tjNpjnaOzoAMHGep7bIW+rkOYWol2Zs2R0AuBchRv6MjW0C
QNsTACijMzaTN1Nn5UQPRy7JmbKhJ74wyDtCBWgAHWAATIAlsAWOwBV4Al8QAEJAOFJJAlgMOEg9
mUglS0EeWAsKQTHYAnaAclAJ9oE6cAgcAS3gODgNzoPLoAfcBPdBHxgEL8AwGAVjEAThIDJEgXQg
Q8gMsoEcITrkDQVAYVAklAAlQ3xIBMmhPGgdVAyVQOVQFVQP/Qi1Qaehi1AvdBfqh4agN9AnGAWT
YA1YHzaH58B0mAGHwtHwIpgPZ8O5cAG8CS6Dq+GDcDN8Gr4M34T74BfwCAqglFBUlBHKFkVHMVHh
qERUKkqCWoUqQpWiqlGNqHZUF+o6qg/1EvURjUVT0DS0LdoTHYyOQXPQ2ehV6I3ocnQduhl9Fn0d
3Y8eRn/FkDF6GBuMB4aFicfwMUsxhZhSTA3mGOYc5iZmEDOKxWKpWAusGzYYm4BNw67AbsTuwTZh
O7C92AHsCA6H08HZ4Lxw4Tg2ToYrxO3CHcSdwl3DDeI+4JXwhnhHfCA+ES/C5+NL8QfwJ/HX8E/x
YwRVghnBgxBO4BKWEzYT9hPaCVcJg4QxohrRguhFjCamEdcSy4iNxHPEB8S3SkpKxkruSguUhEpr
lMqUDitdUOpX+khSJ1mTmKQkkpy0iVRL6iDdJb0lk8nmZF9yIllG3kSuJ58hPyJ/UKYo2ymzlLnK
q5UrlJuVrym/UiGomKkwVBar5KqUqhxVuaryUpWgaq7KVGWrrlKtUG1Tva06okZRc1ALV8tU26h2
QO2i2jN1nLq5eoA6V71AfZ/6GfUBCopiQmFSOJR1lP2Uc5RBDayGhQZLI02jWOOQRrfGsKa6prNm
rOYyzQrNE5p9VBTVnMqiZlA3U49Qb1E/aelrMbR4Whu0GrWuab3XnqXtq83TLtJu0r6p/UmHphOg
k66zVadF56EuWtdad4HuUt29uud0X87SmOU5izOraNaRWff0YD1rvUi9FXr79K7ojegb6Afpi/V3
6Z/Rf2lANfA1SDPYbnDSYMiQYuhtKDTcbnjK8DlNk8agZdDKaGdpw0Z6RsFGcqMqo26jMWML4xjj
fOMm44cmRBO6SarJdpNOk2FTQ9N5pnmmDab3zAhmdDOB2U6zLrP35hbmcebrzVvMn1loW7Asci0a
LB5Yki19LLMtqy1vWGGt6FbpVnuseqxhaxdrgXWF9VUb2MbVRmizx6Z3Nma2+2zR7OrZt21Jtgzb
HNsG2347ql2YXb5di92rOaZzEudsndM156u9i32G/X77+w7qDiEO+Q7tDm8crR05jhWON5zIToFO
q51anV472zjznPc633GhuMxzWe/S6fLF1c1V4troOuRm6pbsttvtNl2DHkHfSL/gjnH3c1/tftz9
o4erh8zjiMcfnrae6Z4HPJ/NtZjLm7t/7oCXsRfbq8qrz5vmnez9vXefj5EP26fa57GviS/Xt8b3
KcOKkcY4yHjlZ+8n8Tvm957pwVzJ7PBH+Qf5F/l3B6gHxASUBzwKNA7kBzYEDge5BK0I6gjGBIcG
bw2+zdJncVj1rOEQt5CVIWdDSaFRoeWhj8OswyRh7fPgeSHzts17MN9svmh+SzgIZ4VvC38YYRGR
HfHzAuyCiAUVC55EOkTmRXZFUaKWRB2IGo32i94cfT/GMkYe0xmrEpsUWx/7Ps4/riSuL35O/Mr4
ywm6CcKE1kRcYmxiTeLIwoCFOxYOJrkkFSbdWmSxaNmii4t1F2csPrFEZQl7ydFkTHJc8oHkz+xw
djV7JIWVsjtlmMPk7OS84Ppyt3OHeF68Et7TVK/UktRnfC/+Nv6QwEdQKngpZArLha/TgtMq096n
h6fXpo9nxGU0ZeIzkzPbROqidNHZLIOsZVm9Yhtxobgv2yN7R/awJFRSI4Wki6StMg2kcboit5R/
I+/P8c6pyPmwNHbp0WVqy0TLriy3Xr5h+dPcwNwfVqBXcFZ05hnlrc3rX8lYWbUKWpWyqnO1yeqC
1YNrgtbUrSWuTV/7S759fkn+u3Vx69oL9AvWFAx8E/RNQ6FyoaTw9nrP9ZXfor8Vftu9wWnDrg1f
i7hFl4rti0uLP2/kbLz0ncN3Zd+Nb0rd1L3ZdfPeLdgtoi23tvpsrStRK8ktGdg2b1vzdtr2ou3v
dizZcbHUubRyJ3GnfGdfWVhZ6y7TXVt2fS4XlN+s8Kto2q23e8Pu93u4e67t9d3bWKlfWVz56Xvh
93eqgqqaq82rS/dh9+Xse7I/dn/XD/Qf6mt0a4prvtSKavvqIuvO1rvV1x/QO7C5AW6QNwwdTDrY
c8j/UGujbWNVE7Wp+DA4LD/8/MfkH28dCT3SeZR+tPEns592H6McK2qGmpc3D7cIWvpaE1p720La
Ots924/9bPdz7XGj4xUnNE9sPkk8WXBy/FTuqZEOccfL0/zTA51LOu+fiT9z4+yCs93nQs9dOB94
/kwXo+vUBa8Lxy96XGy7RL/Uctn1cvMVlyvHfnH55Vi3a3fzVberrT3uPe29c3tPXvO5dvq6//Xz
N1g3Lt+cf7P3VsytO7eTbvfd4d55djfj7ut7OffG7q95gHlQ9FD1YekjvUfVv1r92tTn2nei37//
yuOox/cHOAMvfpP+9nmw4An5SelTw6f1zxyfHR8KHOp5vvD54Avxi7GXhb+r/b77leWrn/7w/ePK
cPzw4GvJ6/E3G9/qvK195/yucyRi5NFo5ujY+6IPOh/qPtI/dn2K+/R0bOln3OeyL1Zf2r+Gfn0w
njk+LmZL2JOtAAoZcGoqAG9qkX45AekdkF6auHCq354UaOqOMEngP/FUTz4prgDU+gIQswaAMKRH
2YsMM4RJiJ5ok6J9AezkpBj/Emmqk+NULBLSbWI+jI+/1QcA1w7AF8n4+Nie8fEv+5Fk7wLQkT3V
508IFrn9lFho2ePjutt2gH/K1B3gLzX+U4OJDJzBP/WfSWsiV70RNNIAAABWZVhJZk1NACoAAAAI
AAGHaQAEAAAAAQAAABoAAAAAAAOShgAHAAAAEgAAAESgAgAEAAAAAQAAB5+gAwAEAAAAAQAABLAA
AAAAQVNDSUkAAABTY3JlZW5zaG900IM3CgAAAdhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4
OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4w
Ij4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJk
Zi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAg
ICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAg
ICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MTIwMDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAg
ICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4xOTUxPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAg
ICAgICAgPGV4aWY6VXNlckNvbW1lbnQ+U2NyZWVuc2hvdDwvZXhpZjpVc2VyQ29tbWVudD4KICAg
ICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP9AEgAAEAA
SURBVHgBnL2NthzJkZx5AXRz2M0jaTkaiqN92nlfUdLOrkT2D37WPjM3j8gCmjNHAWSGh7u5uYdH
ZFZW1b3Au+9/+McvX97e3t7puNu7d+/evtjy9vZe1s82CjngY396vhfgi3zfCfdZf969kzc+al8E
hVLmaV9sQ58MBqiRLPojLiN1/iIeE8E92hkbsifZ3zNIDmYo//g5d+O/eG5fyqNECk1gxWmu6t8J
HYrozfM5uTQ8DNTKuXeyT8jMKjMkDvVK80Dil7fPLRpc9hejhHdZCMOZ5g5Zr/F54Dc26AyIxtpa
47VSPDOCwKqRoMtvB40I7sXKujRrXG9N+AVXIjNLIZTfF6LUS3sDHc601kAKtNaTm42MFH/WL6z4
OE11RSXawGxnryyXBNJffvthjT9sXmP3Drwn10X5s58TdU0eZg87UoJgNu3oNsblV4j6lLV5zGrI
tXs1c+zM4eQInnOi5IyePzNzWWkH1SjRY5JfJjAzL49sFNMOrD96DahDlEMxecmUvUc+ycCJ4TLI
kHUUPtMTyhhGSMVkTN29S3UfYH8O++UhPHuobs4PXSJydj1S6PgJj45rofMx70zizAXU3H/sf+1j
0pu25XHY5I0pKZGIJPzVO95uVIGkTqljb9lnWQRg/38SLOtgu6DrKIk4VlkOD+PsXQmLQHOjYwFB
K0dGOSfj+Pg+JPUj/XFq3mFR3UhjojX+a+zkSBzqfEaJHKb3IvqM3fcJ8mg77CBhSCuPK63yafwZ
hhkPEhRt9Z5iOMoURP0ySqaKdyYsQ2N2zmc29Ta9c2xk+BoJHXPgPvP29uHDd7rUPr990pH70ut1
l4rBAH9zyet1coGN1kyMu+LVntxBogmaUdsz7ycnlyQx3/a1MPN4r5q//6B1+6QnAS6Z951nWdVL
33hZg+S9CC532ufoGzkzvn0D6zwyz9xH8ey8ZkMOOBG7llE2TiJ13cILshFA36Mni1HMVzV5pzow
/8+fPr7985/+9PbLr7++/ff/51/fvv9e62uORM555p/UfdlTo69a67IG+U39nRX7He76ev9jSc3I
DwSN9avcOnObsa/69+8+2P5Zk/Aei9dkHk/O7NnPyuH9B3YDc1bw5qn1y1NG4iaTZtG6OvOtyDIv
R70UrDrncp/ilRmBDyeIL1MfI/BXeo9Vc808CSYd39aPCqyP2LuXsW8uZhbviVkfodSkN29GPoN9
6IiPDg418w/vVOadb6qnnsD6WoWc50CSGg7b4dBsTYVe66DO2M7R87hiTey+bHU/yNlt9RotFxb7
JX4x5Jy8FHTi+dmm4cyIrxSa++EjT/J+AtlF2TV1fO3BZ/7BMtb9MyolHD6vv+sQf7++6vlm6/Je
e7n3+MEtBy5aO64Jdjz7/tOnT1fVw1nm5pP6kAhz45pSLuwBr3s3k+yqE/eOb83T9SGv3TvUjBrL
h2ttaFI7uKTw/Sg5k8upsXSuO5lSl8tGDq29U/qi16XcDz4pd3uoc46qlec480hsQ3RShdAT1Hzq
+Uu++iNRrXNofCunLtQnrvjQui8yj+roYdPzogxwEyEtUWbw7LzGwfbdELxuO38pKjvnAFCxBxIr
0RvxGUQjg6vtyuI7tYMyaYSoUHTN0XWcCNUZZ5Cl0jDwHqcergsW6iusKcJjPFysIev6kueAjw8O
2zSwr7jEm3jwSj/d8R+s+WuETDJDTnCN6A1iOfX1dGON6VJ4H3U8FDdPopBdpKyXZHzmOvY+vfL2
PQq4mrP1pnjNEeuZtbGa39BCqZIynroCEL7Xq4fEJA6fl5grmClKbADE6zzslMS896gnnkBsm9MM
Uhvi8xfcl7c//Pjj2y8///r2y6dfRTtA7wvhaMOVymuIr3Q8RdPwQLKvValsbMNXkNHxdCjji6EW
M0W/zyMibZQaAPfMmSBt89W4MupxOckZjUU25ScuuM0HdtYz8dCPVWt2f9bCfRhr/MSlISP4OL13
YFYO2bcqx3OtHUMwcB+E117AjWTZEvD4c4XZHzw28XxhSujBmlle+stzjHWcuG3McnnxAYABr3jO
D3ca/DR/hqGh6sHaCR68+5sQcFpyMPUo0BBr/P2s58AQWw8r9mT7YeJ5wo6LOcGLY/iMD8Q0rJ0K
S67vdI/iPYWvzaFA7yaHzDnz7+do77n/eb4qV6/DhBVnvLGnNt3hMM78sDFi4WnEcWKNHDtr/E4b
x16DyWdGueYIhQcr4Uc8DaAmZ/aNnwXECyaMEWwbHba24uBD9laTEH5laDDZSFAgxlYJ65fpDkpo
q2dmCfPmMRi4aazU3Yzj1BiX7Bm5volfbPMZqJ2J/ppW8wBXbPsby/yz5pqx41F3xWTdZv7NG30D
uV4aomh8zLTGzmhdNo/qTXdx3oDX+dtH2M6fcVx7vTzjvNKC/9133+mzAT1vspBq73VdIGX1JH26
+TP/ztceOl3b2b5EJYPW1DhznnyI1XbjLONwKc/8pPRC1FO9sH3sbJw4n9GFvmlXrh0Pju5/9Mhe
dgZ4zPp7iEZ28muLeNa/+n9vf8evDD8y8d9f8Ynlckx8MIsbKePoe1ccuBBYM+K8eqm7poWA5LMY
r6xfO/KE67cD47jXhJnCLrflRW7Euy+m8Q3ya9zz/kLszy/z71r13gVvIkbycDS10LM7E0/zECfv
R7gWfv7lFyfZPUUuXV97XPEdgdM35s8OSBzNQTJPZLTOEWsQR2cAp+EEy/ri1Gy7/9d/7LiB5+CV
AxJKiLn3pd5zY5VBrWtWDDpi7jV38ZsdIwRtY6dry1yjKW/7Ym78rTO1jFvzkdG3/o6vxP0oIvu5
PqUTrk+/TZPY1IJ7G58nMcYGthiJ1tPX4NoMiM5oz392Dzno/mjLTTTsjdNY4WjMvEK0/mGZHATk
tZrW9b/jY6MWMBz7vaMb8axvY9MPtadJDMbVMaaRe7Ts3TPOq0N29zk3OyrPbu/5ydocwnxngmbL
noHOt/epJdrcW2Dw888DOe4bTPg8ik3AR8VPCNSe6Nz52IA88OUGr4AaI6cAyA4/GxWeJhXOnCcZ
czajcPXDFYpFM4STgoQJpU3qBqOVf+8Hb3EZqyWwSQgJ5mAShNKH5tlFALDLgBuUTkVSVllFxDf+
mIwBZ0IEGhY7eiS0+8W7HlLNOx5/OGDEyym7l8rqhTsxiQibb+aWNwO0/mteif5AhliWcxHMNDyH
zVHcXjPq4SaU08+GToQznwQZqPizuRlrNQTLF88ZhygIlwiyzh+855XAiUCykyVYH/K/wvuNgxJ2
TxgwNHPhP2D3JTHAsJzQ747KdK3BKn9z7u5CGd64aWCA1cbbDmZUR6jC/Zrl3g++zLV0xExcqhb1
GnfOvHFjD6SywRnlABtFDGlbq2EkQnyxzw41ASe8hJh18KhE4z8X0/AnX6W0Y1jLg3RfAyeXkp75
uRawsCHNdrIkdDywzXUAOdpSGID/U9+Y7MFC61qNXbD6By+i3TegBs9J+8rVi4OU2a9OOZbE0AI5
y9mP2OtCDrB4PEk5Lyt0ks52i7bYw8QeXnWBhRg6gpRMy00CwUO0Yxkp8XcnNIwjJ786rklCeFbj
OJm70ROtUWceQzQzDlBMYSlX+k/Z2F/xHPbib82tI0Mqn9nOKkzM4GyxCAoBfP5cM7cPWprv+wgp
AJJb59So8T9zC3ycfE+HL2O4+RCChy0+uPDYGSUmqG+17kvsnQFSDs7xr29rUTv6rn4xncfJ7hkd
zg99Mb759WTBo6I/5+Em4LmVdfre0jX/w5rsH0jjimgNkxkfRFVDLme2aG/NjAVIFcLX+Z38og/T
nQVPQdiaB7YwId1axtYob6+JjLz544cJ/vI//ufb//rrX9++/04fxs2HBr5VTC2WiT1BQ1/ZCsaj
Xx/GyYAc89kiY3Gs78lw55aX2MRYswT5+Plj7L3nc/9xQw8mo+253fRNAh+K5APboshrfOQ/n38q
WwKXS/tgbPVyiNbpVu7cb6Vk9MYjdFLpiRk0Zx2+F0azk1gfIsvmuUqkF41vy8iNj3y36tHl6Vr9
xLCfSB6YcaZ4zlt9ORc3PnND5RnuPCeM/6zNueeq3nJrs4/TOEpjG8P+Ang8mOYtkpvrcEqqvzGZ
J2ee7+tD7w/5jZWV+ek4ud78+DXHFkJ4im99baPzeiXWHc94QdhZ2WMEl6x53nHJn/E+b/c5c3wd
Rfb6NAZ6NgPPECyzV6T7FJN0D6zzxOnOn7HmqHuYX6cpnO3BsCRe5/IqiXAqGjl7zfDB8ZqXQXcd
ZW8p3d854Gt3r+WMxB9O+yGyF6R7r4MPfD7NGrFWZmMObd43J0ZqoUIXMr6F06f+zGH2DfG9X2QU
t6ckVVxVBy9nXhvt7xog0Ug48ZMdso7GxTzNFte3SsX3HwHIQUeYcCgGWVonFRFNG25u7Wsg/uTg
vEYm3gapjxOb2uJfV/piUF+uDZM0IUhLmteYhWBerS8w80IGTnY6x9FpJuQ8jZURmw+AalrzPE9T
v6vZjGZw0xlRjgtO/EDCsu5gnG+sWwNgvT4kWn/FsLjKGKjHucdArCaOK6Jkjbr2MQTHedbNDuYW
AE5wxk4tUMNBWE4AkGeGuBqOqmsBzhiUU/GOp2/42GFYFomAdFzqqNCTy8F+1mv0j3/4g2O7JkLY
fyiMN8/wKXDTNMtQPfIxXif3pFKycGRG4zjxQBwHRZBPd0GnZj/W+RRZPkJNTT/0/rNxA3UkpwBW
ugQzber/UuOpXW9VfmbwGsp/Pqz0axkpDxdYTxP+0Z/dJD8F2hrBocGn8QVOywerqq8uSn7glCZP
1VtnzRs+7ruf6zj+7m4uJbDDK5+TABkG4VLCn2Cj1Uh/73WKrAziZipvo5nU/aUCBfjk4kGieQ83
N5u8LJAUOajVzthA6sT6Z+jMTCO7XyOT1/fffe8fagVlJuNNAECtMj3c1E68iFLt66ax4NGPj3yN
iRqLD1KcnWKV946UppADkrNRkeKhtcLYuYFhLONUPPkA0cEzhOsYgDTRw2U/9XubQ6lGx05pvlY7
Id/Bs99l97o9QFKqeT0ihsyyWPR3aBzDvNhGgK/2uri/HVEUhN/Ep3POYy8Ezs6fz1PvxgiKxu9j
9aJkhNcQK7tjo7O/AOWg97EEqX/QWqdySVEIfef9mIP0uy4QCFifnYb4+OKRdSw30AUiT0wLKx91
H6ng7vz5oXS35uv7xHBhEhiT8yNpxuoGvlsTjubld9MFhGLTxNetvQYWdSIvt4lZGb39dHI9Ll/q
0fssROGQcGFCOufRwzczj+HCt+bmCmH4cGL8gt1hBeFaC1RVO5AGfT/PeHOQnp/tvGM61BXfzxsa
w72cY4eH9FIL1WkAdY9eo9EHW2t8b05kjwvR4IteN6ybgtPlS9qA4LSds/5ir7vEtGLUYxuqOhrj
e94UpvcXz0en3v/y1C6GCeBuOE0mmTZm54Xc66zrA4If+OUHkf72t5/s0/X34CLY16jhftgZrF7C
FZ858poEVWu0eeBHW1/JjYleMqVgz7znp870nRIcQHgf1foYuhx5P4kfR2uMT+dNz7guef8phZpr
rN42QDQGDVwn9LLvUAKxeN7g7yxh8rdep4Knd06oq5fsxKYjFzidt0DsDddO5Pg+sOJwrSc+5jbo
uddtHCkakh49vj5MPJ7EGzs5sDf6/Mutk3HrRV5Z5ckRv+swIwqaHIlFQxVfD59rOrl4vUiSfNT5
mQ742BE6N54idnJwhzbQManbhhxMyCr3e1bGyZVnyTSQyHNHkBQNP9wHH6PXGFKRpY9I0XAGS4z6
Mb79NZzxiYiuNURWw32OVoNxVwgKs1IsCUClKAlFtQoWXbBebCuqFXp80p+kYAph024/FvlxA8+D
4/D5E8zi9MCBSK70o+ZDX9o8Jo5em0d26+gHa6Bkbo7LIT7jOkmByskcsPl7aTg6KZz1l1wd3TiS
MNphcooB1/tFLUukucrQBw144m3iE4oIGGmKb7zG5tx84t05dYPeW4E5cIM+rVkcTaVs3MSo7vQ3
6yTiYggxaZweRebVObB8+WCAXHL4LEPf9G0VW1+zmKgna8ikD7SNSZ3hS2RgjNSIG8nnzmKsY7wR
B8y1QN5wGT8bKvtxcDE8g8jENeNG54dJiDiiz7lxm1UQ0QphOMigUVjyelaXvgweyY/xWfa7NkUm
iudXKkVKC6Zq1sdbDhe7XdwpkOPlOjjZlq19InaU/uQ41E/zjJrJxSAVWvs3r8Lwsnzwe8nIIbCc
50q2A5rchyBQW45grWK+0B7VUwbksGJWT35ArUKY+HY3j6XENeim67oFA0nKDVCHuOziE5oRZG2r
Blvk4RLgucryrwlgHU0kg8bUsBDUT/k5stuShIxskXoEc3iCerFf9+fOoH7u/dQTDfMJx4lQTrI7
8+0eeDB5Plh4OU8vb1Pdc8MnmQRzcyRKnBRPuXEPYQ/sqzjMUvS3R5tfWRIp5/5WxtPWUTj7ZR9a
skpmTjrAqV80L9Gw2R79RJWSmek8G4JRbFLyIqGD3wT8JGGvlwKwi9P+szbkGPPwMgLnptiyOwOd
OgM8khVSycdl+RgXlRjP+d+2Mwu0zaQMrnXzRqnWqGHhrIMOnHrWld8IxhfsR347kgtUdrf2nSs9
Bxy0a+9GcZ3rMxyZl+wEwq++xeXGsF/+EoQ3Qr5hGEPC/FW+GvtLIdNglPB4x5QEpZ2m+Wmy/IBf
fpMHf5lw7U2jc0KlnM8wkr9UOoTL69iGcBqv4py31IxdB9kb1++Gh6Z+O1S1mI8/2FTvemEcfzj2
BW3UjUmcyhLdOoZTfx/KWZ/oBfS61EHIWRfr2TDEhcP6IXM3MuTrnn11jyu7nmDVvATrY43rxbW5
rJ6XRuDmcAmAdw7INOyjM0Zj7xdyloyuvo3QbWD/6wQuz/dzxU3sR/2pyzT/4MYZJpZsy3/ZVjdb
mFwcxXwFch9REtP6ZXR8pZ8vHmr3uozrMpgPFiYupPYB/tbQo2OirplOyqf1scuNaa6LV37Q2kHC
tPDPYMge0yrQ10jyqQp49gfXazj5jN7Xq68FAk6tpB5I7JogsbMkk0/vNWBnbp6zHCe1hnZ5GLhW
Fqi/xnAyphb8cY9CbcLQgeZe4wa/YnsujiUEfpgZB3X8X5OBy6SDdBeOhvB+iaps4k/2DkNyG0iQ
cjhpyAmfPjtcEA2jsfG44ztH5+Diay5u7YU5H4NcXIDwB87hL+YU3e73RUzdZFezbXhdV8eXQ/vA
MkaWfnEDS0wHwQjreF0yIhcAk0f2+PapbnrbkWeNxJlrVzpyHzvhck+oA5yNL1Fy68+I8OvMvA3P
x6IelJt9BVStzEdRi4zn4UXyIuVEYpevieSXBGIA7vjhszenHphlyjU6yuEFw+u35yade2iATctT
qgahz9Jo8Ne//qwPbj+9/cM//IPg46AuXMKjmvFYwzE8+XZteKvTkEZ622TbIUKN6D0eOxwab3xe
u+2IQW06y8xVNaTUlBIf6mA4APQG6nS5W8dpjI2/UOm5Qvii2cuoMbWh/uyO7hD8vB7q2SrER7e1
1oDVkMp8IM4Hgmj1o5nC+EtR4ukPt084aDwv6mcDPLZKY3ofzAeBntelmZ8kq+kR4iE5NxH1k4FJ
hmBk1xw3JyBC9L4GQs68NznjNKQowtH7h2S1ELjROne8+3yx92vHTNp+PYPDXjk5hcHcMV1jIT/p
XxD6Tr/p5oUH5xRTf/NAkL8yqo739Qjc+8ZOwQmfkc7y82s/m8qHVXcaVpufYOCpgxpfMPq3tFwr
V8x6aGjAaaTDwbipZQ8xDoqO/VC7seB1mE8KQ2uQ/v4SwnvJaHlMfEHS8OGg3fKMyQU9sflZhxti
G5RV0g9/Xw9xJ35b529fKckbf0M4MVb3D9/rPmQ9Cn5gILbpOhtMJymMjKsb0eQC2oyNph4R3tRH
g5KP2Fzo/VkqdrXNnUFjyUa+fUt0r1V5Wq+hwfus28itlWkFpPdaity1Ghx6Nwm260s3vlT0vJgr
QXTKfSVQv9qv47jjAlYNH/tJBuva2IBxDnVQ9Oj+W/vwr6+wnZPErBdC2/C6NiPT0e68lj+mHbre
cnAM9ewHp1AS8CO3/qiQUadOaNSsiHifi+k9yzzAZej+6/7YL1y/Ed+crc8EwI/cUTdO7xbMf+cC
H8d06Dn8Ojc2flCDenioE/36S3ar3d+4SVNfiewVOOI3e8h68UjJge1urX952A/G6OQ9BHic3NUu
NXbXz0kGRw3AGevTDFapsRo14gtC7uesg/34Ul1c7/XD/PeeQ+6aUZCGM5FszKsygYPVKww2TfCj
CL7TF8Z//E//6e2777/Xvw5zfpie/Im9SZesnJjgUc+hK1I9xr7+Sit+x5Ta+0hWmvcGAnAdzAOR
Rm8+nTx3bDr6EcdjznXCEafT7bpaKRwx73XD1TlJ6NTAoqd1/28Nhr8ADwUunvVhrsTg4JaFEVzn
ITFt9NiZj0kcsIDMlz3o2oBxwGC75vaty4s/nK35HZ814npwG8yZP0Gyip6P7Os78cvZdaU329g3
TTnaF7sA3nMOijwoHHXAmaeTXOfAeq8IeR1Tj8aw75heu67FeUbLXuSZkz9plZNIeJl/nhRZx5md
1zRezTQW4nDgy1FmiW753PFVK1jIhRnbTpiFVLWyASekVKkZIbLBEs7DodAEY5YSgaNTCa5aRicl
YWaw7lhXFy8PJXqk5Bargsa/Picmc+Q3p/zmHAdB/IALD4RM0sSSaYIahs5Yaw3xJqmuPt2dGhOV
1s1Gb8fLxwgVMr3sLjJvWgarlcyDccbNpZseeB+EcTEPQSZW3gQYhNnqnDRgl2y7crj1JgwrUFDO
bf0INDk49zW8CMNBaj7iF1DyQxMUZ0ZHc6OLSq3WKcQMN4+w1bd9zDMSBOlpk2KaM/HCHYzfgInk
9jMEYv9Nfzxuqcz0YpAPMQ4iI6t8OtZzkyAMMZLD1kFJdB73IjUCdMipT7CkDFXvf8g0mDPt4tdg
yLgVHqcUIXLPBo5vde51dfiJ5qH0IOidyaAv3Jg8A2Q5bP7AHHN6xi/N/PLbCJnoNRcQB1DcTu8R
LOEaYqjEpQqSlwzISHFzdMNde1uEqRoHHR0aaBaph7z5hOT4rl7OltXDE661VhH3CXxZd90LjP9w
Lp+041S7Cef0qmOt0EXPGQ1/2o4U5WHAYus51enq438z2rg3q7lWzLSMlz+5zZ9Qja0D9fqbu1/y
z2xOng+yHfhK8ij7APHpkw+DJ47D6HS/gmf285oWX3/oruun830yKoT8uxcd/FsnQn7lKFU3o+yY
UxUJHsehX1js68vFD62/XJ+8beprynCiM9PL2DWCoIkhG6iT9RozNyBqp6YZ94P1c0EZFOPgM58l
Nn1mBUxWX6hoekgE7qARKJHvX0B4Me4LsoZNDozXR4JryoLwFwpnjrPaxou9/rYZopP3g/reM11P
jW0XkrF57SU9BvCcZWCI3aKyYtyndeRp/CSkcfhTZyXLc5GfjfCXGhMHQxucU3CoOmeDHThcX+WY
QLicmHDprxtJep4zdmDJ5G2MTiQBxtc5Sh10+PYCwI8G1kcFjceE2e0eX7D4ydiJ75rJa+4xqZMw
ji0o/m3l9YfrDGS0vYbp4dd8skcF8/yD5Z9WTnzGdlao9BtL/v2AeHXkAEwHOv8TzRLsCb8FQEQN
hhHjtYHjw3m0Mz8QVljI6fiPr2pDJO5Xzp9Y5OCeEzh7aWrqm7TrjB4V16SROoFXp1oUavcwWddl
B8d16Q932TOMOeCgdawchJJC/VxfRggHhNYe2Lk/3AbJ4ws+DgLXsbHEGX8VhJpOXPcEZS8N5q6z
a2C87HAxH4/PdYchtYgOOg7OqbdEfOFHbbkCvUyzl+2JXcepJ3sLEEi13j9WIRM+an5WGTkalHJc
nbiQdaT2g3L8BlCemqPvs8Ip7cQePzy818fV3dZONnBnQgwcz3uJONjRaR7NhWHCgOUAo+aYWF7k
QdvuBANZvPdE1txraPxgzDVxhpr3pQ5JQvqLD+PW1UUYfTKFJLXM67aI2Bc4lQPIzCUpdh5nXzQ8
0DjTzRqRs/mwjcy6kAdfbmFzkw2iu26M61OO7pvi4CkGtDnwC50F+xo4Wl8oNp1nMg9ds/VBwFcX
1l5PxHU8cdiGfUSbrprXPvNdYPXmkZPGngM82MbeZ3b76UTNYuaM3wAXMJc1eawp/MZXDEnWwDIO
08ZW/8ui2r57+9tPf50aa57slTbZ/MPEjet1mlnN6xZrg8bPnxtH48riwt7fNtlr2/Ykb38vssCO
lQzR89cn1SW1iw0tepbOGvnxQ47BqoNnbJS01wuvPTTOljIckirVtw73/YdgGjcew8D49/3Qs/Ns
nVFkdMTl3BYOfR72UTqR8KEfzXXUmBFr4a2pPvjpsTFVeh3YmGO2jkZ2xmovcQNgnGa8RMMmrmWf
XHVbybnPE7HPDBQoc3VxTOrHXUA0Je3fXNXYGahPbrJJge/mIAN3OM+TkzlkN05YxoDV4LBZio+/
fn77+FEf6DcFbGPPPsmK2BknHYmKqC+vzRi9MY4xgaQmPmVLbObdA2Vi0YOD3icLyFHC5rlq3P0H
FH0sOssHN1zI+KsfLJM+eIxPGT9eTug5bY1Hhi+csQOjGd9+BlzObviOSEdeaxqbK1uQjN5e2Ebn
udZuEogQ0uDjeK9/KvcPP/woPxml+KS9+Psffv/2T//4n99++firdFICnHbXsHybHxQ6yMVb+o4n
eUK4HtBBy7G/Yd0447fuo/d4lPatrIEhjEd3xyefr+pxoPbxOokE97kcJWXM/bn//G7514hAjWgU
Yhr3kvvtJ347z4Kmpy5ez7rPHBZWvRSP5RAOU8MTo+uPzJzh9TUkublfdFIGFyF8xVmnU6dlCk5q
5hg5g4kt3e7N2nGQTG6o7vjInf8abj/sduDEPU3dtJ3rED7vfwINls5YCcjAvUfV0548ujMJNJQB
zADfG8w1g8lf3qhn35ADuu633u8IjE5/DfAP6CHTrJS/4+ikcV6vppazwDaP7Wu/8BCj633vN/R+
1rJjMM6BpPXXSSmO8/U4QNbSP9QUxF4b6PED6ueTGbPvybP1RvZhIKCvm3ND7Qniy6uDek2Ea+9X
PVN8eP/925//6U9vv9MX0fyrI9SH+TgP+YFnoziuZflKCWVsmrP4+IUDhD4jYANXntYOCppTmrzo
wNLAsdbmqV3jvxcf20DdwwFd9az/HR8bbV9fJDc+tnvpwIUsawgO3nKA3XoZfHKxTRmxzcA3H2DO
R3r/oqcMYGnMg/nr5248oH7OTbqdg9YDHC6uFf6bUXCLFQYweCBeD2S11gUdP1gGwHZE2vpJkM4I
nVyDmKMf27jYQjxT0jv4GUPsONI7TzH7S3ECuGmvE8ckmSPBPc5Mxg+ekHsO40vHj0PME51GYIo7
Wu91WxKIqwOJnKjn0SYxNGGBbZNdHZoeEvUvQX7/w78g0Fgi/8aKZdEwm0QYqmyUBrDRMw4oBZuF
n8p4IYaGGPFNapFPkliZMJoWMph4ojNa/W2PLIxvChixHzCi/voYRwiDwUBjB+hqy9AZXD7YdRSr
vqIFVgPdrUR2spg0GDkj6hhwI8Y/emxYg6jH9LbJkr8zhyKDkevTV7EJlw9nZiK+YgEmVv4Xtzsu
Dz4EwRHGtsTKOXEsDy0os/TKsjG8TurCGSs7IZwOwlVovNBwpA0P3JN3Les2NvSt8YPBa3zipNYa
O98Tyby/NXSeIK7JJKXNtbF3p+/czDwzS2YzKxleAu64cehp4IqdGhmik/uxT553FesF8I4LtEu2
ISbc4nBeHai1PH1tmkgnoJ3t8WLyzbd34NByVhPQWHltzaV6cAZJXn4zevPU3zkDkCMy/sOxXDen
5AsieRQTysPiIfBNTp32lkO1SGZpwDjjRopX5U5Ow29KncBy0Dr/XCcodFzUqwcMexK5CKyNjzGG
HX7r9PLSgtzBi4/Lzs7q5qF4dQVg2b0A6vtBRnPGLcnlgc+j+tmSBPBjLr5OqUkxoWWmuOYVcUR0
Zh0/b05sFF4HuQ3Urh25ZmNYXsbiiYMGukjs7wnijlHmxvII+IV1zGEcroy4Bu09XqfrelsjH7/w
E3Pybz7xT/xErUaeE4veWl6g57UqTzcTD2PdwPQeOrp+KOndDSdPpUO+tUS/JCMSV3wuFXaOxvLD
gsZWjZLO8a082PqZAA+1qT8miP0GB/+rda+41uAn5hN2jRyH8aVDtD6R/EQqXVA5O2TrOrArjUMH
vG1wViGTGxxuFy8idqt08l/NSPPJvMbY+OBoxtOPwsWwJadR25sTrb2do/IP59Umn7yRROAvJBxT
WnTan/pbtW17XZFL88TC2IcCe/6Mpff+AuDspOv6yti9aTNgNXeX3HmMakEd0zupWEzAuxSIuv9q
sja19nlgxxzSneMYXHZhbdXAtWKg+fva9hxHj09oFF8JVK6empHX5mw2rGpPcPI49xWsRiuXL50j
Pvz1XDgBkoI4I7rf00Mwn+cHee9t8JsWJTI5SHaM6BxDNs+/KoNHB1Z12XtfCEGkyYec/aGEa8oY
pczS+5qwXePlR8ggvHmNvr/EdB265wT13NZLwsiJPWNA7MWJi5PERorgd9eJjVftr/N3fDyZE7xR
SIMMKSf5Y7cCHV/0zToPZtwMtwfvni3Er6WCy7UqlxXSeS5QnzimFg5f8j/zZUALwgDHitYW5Zs5
i2+CmwOvfnPA3AIKk4aH5khmHb5G2FrIP2u72aAgiqjzNjtM5JE6lqO94Qy4/IjjRGcPi6exTkaV
xlIC1HehG8C9g0dT3MzWLnA4QQcXjjE5G7xMjDK/QNYwgu34lqYA+KsLydBowBgbovOQYOzYyuEe
8KRgrAads3xaq/KFdOjjapVj+tQY9JUdgVOw5mWAcNWcHG+XkAJ0gy6LWRAKNYY2ZvjiNsrT2YsT
8dTCknM05+z9M5jL5bd9VLukcviONLEm7r0m90sh0T0f4VySCZx91dykNI/2NTVkKBK+uN1SOLAZ
Zt9ZkdmMCNb4XCSxEaJQuVukrw67WnwhyPicE/OMj5RrFpc4vc67L9nM5W6gvwrzonnaiRCv815u
xsNFhC+9dzlYfPx8vvG47wg5+TBnzw6VBuTJB9Iwo6cxR/c6Gas+kUfL65N88vnYIC4fUHjOK4JH
rVe+pBiwWHtXA5RrQNxKgHh3q391fW9YvXPWfHhsqC/92h0r3uj7QWjQoOLlM0VSy7mSPg+UHl2z
Z62j0FylPPhgbJcWPDa89zNFfNWqb/wny/ENOuf4RIabOOiaFzKaxM3Iquv0ivceMUtzuvsyhqC8
5PyaNzY+qzuYE7SZdI3wDe5gkIqjr1x9x+3R3w19OYthTOv4lo3Xfv6P/+E/yO/L288//+IvGX79
+PHtT//0T7offX77+aef3r7TP6lrYjM9T3Dc3K/xb3ttMPxbed1RqBmtXK0hunL+W3zZj2VJD1/9
y1nduUbApmGrvn617F7AoGDnPoJX40Rm3DiV+xzMmIY9uuNDjvxgxNEEVzx9wj8xz1xBNZ/I97nc
uQt1FAQ1hIt2W5BzL7u1QVXTfspjfGtZG/2da+XqiVrsMwNipYEAYxz3apHsWPp8vj7gwdVOT0wa
8mmHsxjmm/yreeYe/7K0H14eBl4iJC76VJL+zF96zaUvq5ljOejD1nxOtmPxwsExQBG/zjOc4Yl/
4GForNqfWqxf8z1nWE48f6tlJicu+53/R5p/zvvXX35+++GHHxRH/7T3Tz/7h2Y26G8Qwtfr+hWS
WMmqdW7fPO6+MrPiT7HlPfZHmWv2aoPhqG/7cC7UAjiWi8YcaPVPf3LILDIOF8yJw57YPyL0c4af
fQ6fwTrBS8O7udW3mw+M70Pqm0/zlMq2a5st58192/GBqbqMciZ2ZsL45FW5PuX2XHWdcO+tLjne
tTLV8sYe3fNM9GdM7MTMesSOrsGOx6kNj1P5ct/IxfYjifgQqT4Xr4jv/JpPsfTkwzk26piVqx8M
9asORGsXmTPNCJnMwQCVBrVbI53vRGNPV4t/U8D/fLM1ceS3Bxa2wnAL90KfDUaMNcgJWSubC1p8
tmXiDiUI0+eeD7YR8waLUf74k3AcnMf5Z10aK7+hNYAJy8jNPpOWYjiFmi6s9WBZfRKaNyoM3dT3
Id55oB9bb/I3NzzLqeV51x0O4ZD6NWXoz0vHKNShM7d2nj/IgFCHqSZoOAaH6yQRPhRpHTcn/gkF
XxSkw0TuZOrE/JRrPkSRPNx4pM1FKn04Rq0x0MCLhcoog3gjZ7sm4zDOQaapTb0BM1//P+SNqzHT
t3/9zDqnGFbj4fJGDacZnJ5OGgcSZ86beVTfqAMYfFvdjhPjYrjZYhzO/XKv0Tbo7B88jdVpfOhP
RAGsn9oic5SnvVQlQJX6CTh2xm72Zb/JREEMxiLFjZHmq31x25E7nhg7Hjq6vMEWYBNAq7a+2KJy
P7yF+4ML6RxCvaHX2J4T33Uc294PNUdz2RH0gO24So/mVcRBspcP1tX3qywrk7W7vZEbv9S3d+YW
D+9DO5x5RZIHTtgCHYCUGmPKfQIcIxTpvjrnpjx2gYbPtcBHwt4SbNMMR9GaJybg1nB45Es9cPM+
tVoj/PfANnYYrLci+w5j54BMmz7rNbFiKZnSVkTh6lKz0NJfPgJYN4ATX7kTF2zhxnaQXJNDosji
5vX1Hsh4czBYOhQ6qIlryBAdBByVeaWvbL1Ofk0avTrb6YnXmOQs2a+H+Ku5hPLtbwNuTcHJHpjO
JEIsGj2cNOSAPHzGi+rE17h+9cHfuUtwXTVGdDiM0xA58JveewczOnjL2XXsWIbUUY43B3W0AqUa
HCNGDYGO6ZI7gIIk0viVC3zvueEDjB7Bc7u4ULd5YwhKkjrsgo+/VBwfsA0LgKdNNykrMq5MT0x8
dr9IWQ78dVCq6OLYa1ja+FsQbf1mTLc6FxeFjldca4LeDxXEFUxd3iJcPvAo56QtB3MZKJCazXcA
KUa/a0NSjYmtMlBcL/dWGh3Pt6/tgq4Jms67dv9mE18u2wh0maOLKvsEua0xmfBrcmAawPjhJPju
EYlgmhA45UAZfYc1Vjri4IZdrWn6NYmR4+jkPhhQpnVuOOEFQIfFgMnqnZ8/wdjLa2sM13Xb7DcP
pfbrozkjZwqwQZ72mBY+mEZZpO/FcKvlvmwxOSK6GE4suhmX2/HKbfz4q/M/63nSUQD4dGSDGoi/
49733+45vUfwPEFO3NScsd1DF7EqhSGQmuI4pHq/t8CHxL1vihFsc5zfUMXUAx5ysy+DhpYOjPWc
5jXakk4zB7/NAWewOkG9bGPHE93mbOPgui8YAsTXHYQm9Rgxz1tYaWPjkmotYxg8uGC8FpBPrQyg
XoM/gvAo11DC+B6+y3EKK7ptK+KGlhNrUsNX/OOKvoeEwrF2Lxq5GI0MugnHS533XEkWIsHyKjIG
h6lrUz8C5kacWJXRt42va3D71f7aE3ri2Ifxw+/KbXw9/xZ5+4vY/vFDLGR5b8pHMQXGRj7FQFAZ
9Z2b5Joc47bJjfaqYszef9Ub+w3l8gOghSAyZwHs1rWyau6KGEoAdtq5/gWQHxAum4WaEPAI6lrD
9ljb6odt7eRTHvVXenX7dj9kl6txjLmn3ZVDV9y3yaLtLWHzvLxeOTz2/TLo8xtiXIPUKp8/mZlJ
6W/ryfVCfn2842bk+5Ty7m/PgPU/yS3b670KTqI6inIgF8a/1e5agMHv2z7SY3BbQS8L8xtcMtb3
7IODqyc9WpfHysnO63LWIp6eheJm5A9m7XN4G9NqMyOlAtGNRS6tA95muDYU+fTnAMB5PHz1C1PP
WadkEsTywuU/4tHr4O0PpmP6+Ifz9o8m5+IZIXcvMi5f43WMLThZJoebBzutuvZnXbBVG2zPjfGs
fa1f952Xe54LvtHItZbmcEevDddb77G+2Pn//vf/+/bj73/UP2+bXfLxl49vf/nLX97+8OOPdnj1
wa/1QW4rzrlWefV3HsXUJ7CDuPXFHqrcA8Aw32LbgztMjNJyvWZlug9arxsf3bnPwFt8Y9z4s9pY
dQgMPj6JF3y9m096zucz7+hu/6LI674i7hzKnHp0FE90yaVMz/6JPlj4EzP4cqB7rXC+9Dg1A9GZ
dy7lwxaO18jRN07nB+rOA3/XOcKcb/RUqUQXAi6O5lKvgVj/quP14oVK+aArW2pGjq+4O89jwy+t
Er6pIfpo0SE5vpy5HybGHTtVxit54pF8E0/jBtbzPT9sFfbnCsKS+cAUG27Fps8VhD2xkEKf/DPu
mToe/0pwZ32O5uSCT+M6mu5P3333Xr+x/Pntv/3lv7399JN+QIYvpDUX/G+Oxm0PT9eS/Nqqw85B
Q9fDir97StSTZ8Bo7zilaDzsjdcezH1NZ3zmdc/P8hWgr49dt+R/rz08h8H3GIGaD7E6B2SQ2O61
vPMEczdsr1z4oufIRyys4kE1fdvB6Diz9WAzDub4Yq1/kOdM7q4De3zU8bzPMbQiZe64bK96XhWJ
S8+MI8eLcx6FZNPDpcdDRB5K59kMCE8nir9f2o3VSX/x5XkWVTnQxfPsGOxd49Qm1e6ekFkNr3Ba
mBN8mQsAPyh2sULLJ2D8R+vOyGAeZBXOD6zV5qGXlKBoMi6GcQk+Md3xJm5x+E2CEmNHMKa4l191
N0q3S+PDfz4I1XjmAs1Qbly/Wagd6I2QkYKE0S6hQiyR+oloX89lFuqG2UF6f9g47qHgzOxLiFda
7Z6XB42EXZk67wHTDUWZsnqP7JNGgeuKh455N10P4lpFEYaU1a98zxydazk4Y/C/x64U7DpkiA3H
4QTLfrLfOAKVmhbYPZKyQyNmPHzeR2sPkXM0U/hw4+LwT/YxwLdN8ilxiNbM0McGGK9BSJ0vBFBL
p0Lul1Aae+52Bb+sEYUNtc6bABg7QDix6cfXDqNvh/tlP/lc/hJPfPZUbKbTYhN+ImR9awfAZvCG
wEeGySH4GcvEbKi7D73zNsyLLGPZUao1vsnQmSxcvkZCDtIPySZjZFIJbR2Xo+M6gBsd3Tb4q6C/
4qG/yjn+C5h9C5N0rQtD2tTHeWKHu3Gwo5LRc/QdnmCoD3/wx+me82rxYaD41hlUDoKMjNGAdMGu
ioxSU/XxyLrF4PPlOOPpvGUVJ9ffBPEo8Rtrc5lEUpvQOuYCySE8RwWXAurTHeK4bhriF0zw4+bO
OKljL1D9DYJhXgXvTeV8gAqbe8i4TRj0zkHjxPHsTd3cNm5oZIvloggHdpoN8CR6cakTeUhfpQUN
Om7ffcicbnknBLBgKflkrO2+98wHHzZ1oeCbT9f2w7Nx97W+L54XZ0PduSBzYMOn7XLbNcFWXONT
R8mqiIw64BDGoXzCaVrH9FxncLTZxpoMyJ1XM1hwrWPzBfOac22Tzskd8HDDdTc4wPPkd/P1S+TF
yl4K8JY56RrwusyE2BvlXN/iR/Eyf+8zufXDu3W784HCF8Ak4fsJiaQ5E046Xp9P2K/7elQH9X6N
2b12GyrPXCYPT5M1J6ziOO95YnZon5oTA7WXOUQ5Ng++gSOAy2nCuHiR6q0cduNLN6XHmr0Y3OvZ
eRsk3pl3dbm3XER2bvzJEXOvU9UhPlOPBhuowzhG6pE47PAAfJ0uNhh0ximO7Z7zqac/RCcuevvi
EBLPm3ioFDy5JSnjJQb5tAUxizT+0T3PzsLEkw858kVtC1jyGwOfDjzufJzj0DjKzAHZdOWyEZ2u
MeNlmLobAjeC/YdwfD3iVO4xQ9lc1oTN1zvWb7TLN0WUwnG62zQAw3wlTgpSzN6YPInbtfgqL5w4
uDfQq6UWM2DM4fkXo77XJg4053B8rNI16jlzreJPrtNaC4bem+JznALUF1NW9mHuebGVDrvn+NU1
H09w+SJE4yuJiq+1YX2828XXHJylDXBMki/j+MmWsJkXUOFHdYcPiQOE0/kUSM2cuGD61M41sgpl
WwOprx+mgfiHlBnL5jAKYNOcGC0bwk5WA8bllPy475UPABgm3oZflO53TtZPiAvuOGMjvudprgFh
K6f6QoGATcrCAp88FjPzCdNq7Zm1FwPGNWmAvGPJ22TjLw5j33Kh01+38U8qmQ0muxjGCQ2H9AFa
Rmf3h25M09luMhTPa2qRSswQEqyMkUnrL9d3j/WxkJxu3a25Zfg9u+Fc9wvEUzo4TvS9PIEcWCTj
wNKkeoxHVyd7GFCWi6Mq02RwqUoBo+WnTTPSfRBdzsqD1xuje6rHhZp/A7s+ePOSXSauMvbNXMV+
dn1lyzjcebZFM2NLYuMeXXkkutb5xLdRp6PBk5xomc81KxkPMr/FnDHMxTebjMN18oFtGblvejTr
f7HEo9gT9c4tGGIXjXQ+2O1rMjp/jsNvx17t6de8yeVYmgFuREmkE4+5fNA9OF+JgqLFH1TmWr76
GTRcYE7OW5vx7XzxqHfzKzeW9x8yAl/9ySJzwg8b+mBgpVWftcdWO3x3DqDBo0s+Ob9T/Hf6woW9
V19DjZvPZccPfeeCTF5/r7FqP//tl7f//be/zjz1/2X/7oP+H/q/vv3rv/5P/9Zz9/wrD8zMNxFy
vvOrvrrnXLPHb87WFFx9sN8yY3LmiD7z54s7dIkpYVuzOLkezYKuGIcBvrtlXbCf3Lvuz5UMR/O7
OQ57tK9z6ww8R+41L0nUv33xsKHjgPPwdn2+laGADyyY1DH75kQJMudbe+Z/a0/8z9/Y4V+zHPaT
rXQuwrF9W2rcs7vgyPtppNrj/bXmsOZjleAP25nLQd4SeKodP1I+vuh07L90peG24PeXBGedzxfQ
CxxB94V57emWSJzu+/SA0Ydn4g9DO7TlqI6e++x990GXfVSeWDs/bN0vnX+R3X/kURm+tKMD3xb5
qYGf/wqA9w4f9cPwH/WvMnzHc7n0naM9fuM93N9b7+ZMLeBInmeO+/3EJIj93RWn+JjJxwhztUaN
0VnFJx63fOyRsDUneH2Q6CG+ZNBUKg0Y/01A5xWtrFLwz0b3daR47DA8WeKVLJrJFVLmpJN6dZ7Z
e+Orz0u6n7+VNrqnnv139kYzIE7zQ8eYIw0Pmup/lMOL19kB4O4540UD1ZYMGAV9Ua4u2PMakLHq
IBe86tM+9vucazXPpOjlSyGUCBx8zITv+qOfMfz3LDpOFRhFY5hPGWdvHp7aw7sVEJgNUuv2Sfhz
3rFJC6ILRclobEDR2aQTT4jlhTOgqIgqyTrrwaOjwcufmb5jQtQDfbj7k5X+f6ZsXxLzJXzm499M
gF78vBHIhxjcWKJrAnmwHV3pJiTa4GSQ7vxGdyJhq9TcmCrz7IWw9mEKY3K0rITCIieD5al3I+TJ
0G9inCQKHeRoAyvgwlqR+cmMDU0mqjGxRmlnW0EgZIeog/a0V7w4qhrQE1/PmRf1tirJ+oND5cN7
45dArtWrbpUmEZf6EZ129ktjpie9mfJ8QBEf8v7Chzki+aD/wwHfNiR477yI1RbOeMTr6e3R7Vzq
i8PhOqav7CC5Juwmff+frMRvDfGRsdztxz9YndHrMD2n4tBZKR29bQF62BP9V212jn2yVVzPxdn5
jFyLGdZEHt48Ulink3XrdoR7k3Uxx9r97KH8odg5wovCSgxpvibQYW+b8AzL6fqUQ/ob7uJJYd3w
73IU2NjqDameGAR6Sa5m9g+yx+YI2i42FGlNeAZSi3udzjVebHiLO8yJmbFe1Oa2m90GusfwCLj7
51CPFPbGQBn2ArEwyxP9tiRSbJFrpT+slXpFlK197FiLjP+3agKv3+D21jkh8QzfPQM0sZxYzzh3
xM4T3dGf0Z1fq2Ldvt6UW5n7oXeSuzre6Ng263aZIs5r7X5Z8wAoFx5o7Ttzu+5feROFvjOJczSS
5w2J/e/4yK3nrf9KN0xgimtP9f1ENfndvlI9cpBNKuk4S5ZfP7RAE60tnBLrignXwQBAo9aYGeW8
+Y29GO5Pe4/a7NZz63/FtbE1XOTwMnasyeyOS34a9371mv1NddZGPBdf83HvORBn5n0TYNNx34or
ty+8H6SzhTjuf4mDOI3pZxDvs9d4M25NIZ6cH7Fe3QQznRM5xl5fX9m2lsz5aujXhh57D8Zt6BTn
cU1+Cxe8ayEez2FfXGKzbr5YPnmK3dwzF7/pPPz43NhmdWZOdveoiCumxZf7CnOfPYw3MTZO9aSh
1vXwF4LR6KyFk2N/ONVq+03ue33E3/sF3b6gTM7SlR8O/odG1tK5DOS1BplvVnwg8kgc58FIhuLM
e3EFg8NKp4LKr/mUu3UiYm11ts5UInMSdBJmv/Q+dSLxygQW8G83l8qEgyGvjj03eDTHqbNDRyHt
zR/ZMMfUeHxKxxhuu/P+AxcGj+sjeeCKiVN+2BY/a/yvBCDhKwq3uxbosAd9ZOOljG1nGQLO5Md9
6XGTTr4lcx0gMrlsTNMMTGay6fzLPPB8cRs0UdjTuSYvX+dRR3ondCnkP2HOhTQ4U4/RxUVPcOko
KKYx733UY/4J8UCDR0aDH0dEj+tvm/SYZPdeU49sPH4OhnI4MGA3x6znyJujAcK44Ts37qWDQM1U
dp6h5DGV38/mTkiQrk0xzc19yZc4OXruE4O1ki9Zb9RyjtvuqM7d/hvQefpkFSy5Hsh7ObF5bJDk
sTwAoSLeqq9cMmUsHBMD0keTDR//BafDsWd+Xf8TIZibx/7JIV7w0FolbLIIZ+oY51xsMsQnmuY5
jK6hXFJ89+CCuj1uOWzN7HAjpTmzhrI26GQKLh/GNfdxc+R1uzKeqi17IjmKdI16WPjg3b+15e0N
rlgw4GEUxvtfY1TC+h7ounPNDu9w4HnqEsa5sjFt45XvzinI4TJDcomGSsDaNTyzj66oXKcdca8D
mX8WFrn8yfH1Hpvk8Egs0DnIhda4YYrutkQ2dDzj8cQwl6cvo+OL/bMWhn9NhU+8+xlbeMki1Wh2
0cOZ+Td/7KkiWeSDdBD3tYklx53DfAg8r+udPS+RiZBZaaiWz1ArR5NoZBTfzBgvR9G88kx95jyW
0DgjxMYJriP09aQ21aOtfPioCtpjs69O7/TlPq994cLemZalfRFJz+tjRsbhdV2HiWeJ9+L+6W9/
0/+tikU83H+k/0W/AU0Lc3itMA9jjq5v+xsHunkpjp6hzyi4w33zxZb16zq+8nY89x0xo2mFiEy7
rnqN4sPe4KBFw7lHKtvYNwYf8uUz3u7zw5+ZnK+AOvPW5TAhNXLiJHZnUJthkwirfXJqriASlyho
61sE+QXxvDabv1127qwP6DDF1hGf1fYbAXJpNnP9TZSbNzVudNgOb6+2xICvGZ/4/kJGgGhqf/J0
/qefGHr9Y18ffa7zO4PELp/mpxz4kqZreLCnduhcae1lf9nFfUdh+Jc8u5ZEbXUaH87UJvVIDOUo
4KlZ2KkT/mfUHOlp4SIOK5ZY4YULPS199HzGlBxiC/uR/RmWfsiF3yqurV9YMQe4zk5K/NRn+DeP
aGFGuq94RtFFCmeQqQd2+HIuMwhfc85P1dfGYJ73vFtnfNvg7xzAbm1cmIPDh/jJjrmy12EZzKwx
WaFJHTuXu/7onlkR/8yjPmR75MQJO+dE2eiThyL3h98niyJI9VznyYAsmgn5WtaJ/RZ95kZuzBeu
ZHSylXLrVy+XxXis1Cp7IysG/rXBl1inB1Nd4mf9+39xJ59ggrtrEmz9a1EcT+zs/+AOy66/oser
vl1ZOJNv2VOr5HvkjJlrDzSRT/3R/VbbNZk6uOoNqp7HqcYzb20i7Gd4cGNLzsHjU7/IZpYOAmrD
OHOU4KZbg/74IXmWZe2C+86gQpnn3BxTOpH6wfXKbgLB/E4/LWKcfP3+CKWyQuZ9CreabQY4yKoA
ouFDBCZjeXqDRJI/sXHuBUiAvpd1sBnsG3nnaZZEYJ1TAABAAElEQVTDOOHhdGySpC6LiOxo/kBG
SB6WhMsH9dQvmP2NcV4ohoENuDkZh39y79xQv+uvS3sAP1YZQm2HLmjjYaRan/2raQTEQtXGr76Y
RHfykDxzBOs82H1KGv2a7FQ64Y7BhJOhuSOfzAh5B91UBOztcVY6UHKXzSFmX7AU2XN2GtzkXkJ6
grtpcOc4mMbj/3KgGV5/FLhxwnLrsbWh10FOhR4wjEmidc1o1Mppx1KlTaAawFRuf3thrMv0GXcg
Vom4pmYT5rgtv+da7MRCt0wVxraBx2eBntcJEDcu9iGo//JVMYzMqZPmTXyH4HWYpnamUx6JXlPh
UYW1s75AEv3Pcqs35mHSgPGlcy73WOba7zRQewwpx8Mng+LTdxfLpgcLXLgpg+RwbpLiKUWb+WNF
daQTsvsx9zg4sse/JsMnMUzbGPDKxftWCTyvyRsU2b6TOPKIF5AYT5bmnegXdMXMHK/k1rVMPrEC
PkxxDfpUQ1rdw76hNTzzV3Y83Knd1SDiiW7znIjeuO2PPdaTYVlBfI2ONnFO1uD8xalp4tUc8ThM
yXK/AJ6lfvwmnV57/OLDmvY6DInOd55ifQxTHbYPGfi1LS9i4UP24WyXMYKImstLDPssmoCPoGux
ntcg2rcgs2aZawDNpPsq4+O8qM6j/ObKKnjWtXvm8iou2eTc+bkGE6O6TfjE5nXoUX9jx77x7gCy
Se/XWMeozasxgxfOjVss/ZVD1dxz/OLPE0T+PNelfsRSu/LrXkXt+bg2zYNYcGPLUTl4zm1Zna/y
aw15l3K3Kwd8fH+a2OawPfHDiaxrWHU33pt75rN+ieHPi/XGavf/hh68eL7dAIY/duTOC01t1Cdr
mXqUb+zQPOZHLrIZNhiYzQE/h8yQ7Vyskkt8dY7CPibKuH4ehds7wHDqVViF6RU8n6tXDy7rnn0d
PXHhoyGF8OJ1gNTDE5yA+0N25OEXyfrAxVvboVLvgUPo1HUfH6vJgOvNN6GsEXkRCi1/IEkfD9dL
UO/bck4gx8ZfXv7n1q8c+f+zWStPg1DmhSgS0Ea16NgYZfG3GXpvQG1BSdX/W53cHHH2r4sPmcdl
6txmTrZ1XuJyXsHgkZlWMpmUsks8NmRitzGCQ3rXePSu0cQnrh0YS5Atyypff4I3+dnVMxWKoLn/
oG7EXK/RGC4LVhohNgfXrLZ6MzYKeER8d48pD8n8oVn2pgaLH70nJkEowzjB4b85AfWBPnyGCuf3
aRMvcamvrKF4++57vwMk+PJKUKNo6hJUAn7qyMvrGFGahfgeaG6iT4CbF1fnAhdktGA5P2WtCMun
FqgQzgWkDJuXhqaYfeb6Ta6Wk69Y/Bcwfxxdft7p5LSKYyM2zSk7SMbeoyOeDgInYv7yzVW6lmLs
R0qOjZ/a65ykgrXxnSJM3SP4bNNM5H/qy5yGd9cucycHrxW+g/E+Njw+9Sw9nsmdRaks9/o7U/S3
vSxXT+7K03PxwtbnRIrklamSjEc+6+ParGXWf3MDX6/xVa6dB6U+iNzPgx9sMtQEJ6x9kXEMxueZ
P+ucjNGeOPYQpmt3Y7AFq/uOyeILth59zj0z4e5nsL1BuuSUXfe280OOFxf/XYgannwxmuw6MUb5
6iT6cmfn3qjK+eQrd+GTS7J2PhOBlFxArTmP/bG11ozvhn/3DvpGy0sqdcjHup7oOmY2ML/WH0jn
on6fS9AFDSK7pjg0jdz4WbEH1/IWG7+whJ/PcmDI7RtdIoXnRqKJ/baBbwbLzhxUy+CjLSZoeF6P
8oOPLR+ux7+6jPhc8Hw2CHfWMByMic1v3tHyyhS58+vuCjJ7JDHgYpxdZgKfGHensC7hO9IdJxmw
hz99+nheF8QDPufMEbnzbOXZ5cQv2uFnXDk/ICw23Zv6yut/0lZz5je+U/vOGa/I1B9r8j85xBov
sP2DZ+tZjrwSlxtrWqTOsNy1ljtsmVsx5Tr9ybHcWZOyNZdEO1r0ufI6x9hST+QTvzXGpzU8e6W5
xf/Ui/Ftgy8zD/LM4cSsD8gTPzy65/AsbOf4Eit74uT1jPmMX8bX+Phg+/TrJ+8nZD4vIy+Oxgg3
3if3Y6s2OyKoZ3xG4b445j4WxmeGoMKq/Fp4aciJ1/v8iwFPH/JJTvE9tQV3rn94E5O5R8Ke/STc
fhFYL+5/Z890/WHhejrpaVdpnTLOfQD2fcQZIFyN38qVM/tS+Xq97Q2D502GWZdz/7G/nDLDzH+5
80Kle1zmxv+xzGddqcvhZpY0vnBPHqkrtbyxaFuvIJhHojU+djjql90VKzGK2xzHn9c0/xAaIKES
Jzn6h5+Km778zQev6jKJrkP4ONOo70fF8pp4smimrcj98q5P6oCGeJ1D1yU1gyP76au5zWwmikfx
Ea/WiD+bu0FEyFp6fSXTl/dUk4SjLS5rBkl4kVr15plY6PMastOWD9wcJ5/wH9/uEbwSv7bmIINa
80dOxs22M1m8CPJMlFh52kA+R3NuzzogE5sj2QSfc6IhJ35WtPfW5IwVXFo5+FcSErt16Kj7ovp7
j+HT6h3/SicKmkESXi6Jm3nwnse5JXHNMGuSfMFg5w+NGoQ5Xzx3NuQRgg/vv//9v+DmJdApBZhg
BkElEgMkqtl9HNLJy29+ZXPSk7mNI8f18NiGUnbeHDEGSvMwOnh9g8fOYWOAPLjkTaXU822232cF
mFklIQEozHDOB9gUb8TQml/i9ESjdej+xVhdMeD5QA2YzjplgbwMNwigGjhXyGXI7Wp1QcjewgCC
kjFHCI+Eg+I1RwzrC9oKCCTXF7kME0lDVt0jc2UTpTDMLb6wHzHcx2Irp8SyYeJPdKbB+tUTiA+R
Gj5rZ/mFpznc8yCZncskduYw3BNjo/IiSAI7kUTL2QbnKMRUCcvU7+ETbC4A0MPDHMBhtpb6VaYf
w9iCjc64MbNPPdeHb6OUD6McHA95xvQWIbvio6O5N0Cux75ck2NgwR1uSfKBOewZ+y0F10G1cotM
PDNNYGoZH3VI85e++dJfDRNObTKfsfh2AKgcgCM7oEZLYUEn+lGmG2LngY358OcBNatUaWDnXhg8
bmUj/vgWI+/wUZ3aKzNODcNgd+MjDdfWKeOi7DO24p+IahtXVua49YueuqUEYpxENp8Xoeu9as+p
VSsfNEWc+aNxaDY7UB5yvYfIc3KUrR9Ugz+M4eTx1dFMFkCig9Qxc7PvrIFfXyyHjXPyyxjsHSlj
K+cUzcGdcbGHL6+1Rew1sfUIZbmyFsojqcgoC3XRPPI6IwNzwu65WZi81HGTZW4hjH/Ag6H+HAdj
GRrujej9RkyihxCNHhsyQ1pr2BdVv2zI2DHAvnnyj+/iWOfySuX5MFYrJ7JVOnlOGnuf4E/G+RM+
yXkBw8sWC3nBCQ95wIdODTF73MPRIMtCHQD0Rbx1QYn/zg9Q8rGnbGiyLupdR2mixKImPLzMc7jy
LMV81IAfSl8PVpD/pR/S8MUT72lmkiwHansTmqQ4TNhnvPkSiFaDxsYxThKTrRGVz34cT7uPj+tf
/6HZEAaOcp4/m+dX+YfbMe2WfJhj5kI/8aHaOWjZkLu2mHC1O0TNgR5lW/WMj63xE0t6/prrMIWy
/sHAbRxsUqX8x0aWZwITcx7HWt87Tr4UAScQhFcLrrr2Q0bIuRZOnnpFmnqDJjehbD5crU34whHZ
QDjNkSqe+7kwrAfTg9vMOt3NNLXKYJDiizN42WzmOkNGSz1DmkylGhjUQPZ+B9o2KzGbp6/D5nKS
WSPYHzWHmHjqXDoJzo0e7DTsTlhdX1uJ8fsffq+z3qJ9ZK0wphu30Wku/iCcYUCc3TaeRqN0/fNu
eWPZpJPnyiRQZOIIcTUIGaAgcOsYazCM5Ac085DEGlrj6li0jwpiDvqB4Onw5ufqYwQnCkBpERPH
eKnR3XpqGsQ4tTNo0DdvnJdFyUlmfydPkxNMzSYLDPSWeuaCqlmQejPckNSU+ZhgAlql95n6lYYP
7/R/xvHJkvMKdkU25sR3AuOeTz5iMC968cc8DjOXTXx5yPfbrfTEzxqqdzLqMaLfeWhgWTra5LA6
c0g5pE3HY15DUIzNtGGxmuvAprE/OLFUj0/zG//TFZS+o7XfQS2rfoBWj6B2OVoUqKpO4YwrjaML
eXE4VzDdD+DUUK1r4j5ec8d2Rb7wZphTuA/hTkb0spmnPTGtcLUjdQxd1mAg4Vf+/OkPyESZczxf
0nL44fkWeHX1RjFrX9uZwmikeCRV4OlhM+NFe4kK8coh6wUgJIdPFmK+IFi33XpkLzvCvIy69MMT
Tg0YWxfvmyP7/6w2gYCCiXbumauT4GZCS3lHMePWyyQnUqTDHHTOj+gC5jWyGRwO0Nzu74yMQhkq
9RKag7N7ng5b9LhFF6nyGZ1oZTocIwH2oWqS/FQu+O6xfMlZ3/ZBl/nqMXyj1Q+T5cFVT1+57q8x
bntt1XVcX7+8zqA2etptY1yOW759qEQx7V+52Ma1wcN6+vXPg3M6mCNhZdSKd0xPi+3iV/Dmh33l
JoXy/7A9avMbfHfmG1vxqi/HXZPaSAsf3sZ6y6GYBr6+1dHfvre+sbFzmHcA1TEs5403zO+Dx+Gl
u3O/TY1DROR9HwT5tDsPVMbVePV+K3f51dQ8O777c2+L47e4G/+d/u/dL3pG7g/ig108RWHwjfhV
t27xO9dA83nN8x5vnIJfg80zH2ZjnYeuADYGxVdiX3Oc/BuLnjztrh6f2iRu2xi9xwpUn84TcHV3
bD+KOcjRguPoHkYG0j18kCcnbvHFYS8G3d0YF1c9Y+MNRpJgmY57DfYypueLvOjDAhzLeD/Q2Dhe
a1lGmdzqz6DY6sob5DPWHRu/Ym8Zv3I95EnOHFyz/GUwjf3N+LN+iO2DfgDHJN5DAaQuceBMTNod
q+sWC7Z4gaG95hltznAWh4ZcEi39HT8eYS+m+STqiRXseAhUXvw47pjm0MkfPclWzpYhORw/xthO
DXhH3Qyyj8sfTN91PuPKZTmKR+cEZ4LEYo/WHr745Uvpw/maN89o8T9zgj4cfDcZufVwjLmvT3jg
w5J5McrX1jbFps+z+Fx4P9uyc6LwZTBfDTNC3Zixpi4wOTa9QNze+IgMvPVj5PaDWH3UY5SlttQh
565UKiFeCyDFFheLDiqtWpbdEFMScJabBxMgvgHLzx/6hKX3RszxVU8xq0DLX6tg0THjMGgc8vgY
IQXFtWE2AXelAMUFGYd05pVIifUX26SJMvZJ0h9U21WRwdoueTichp10crxxhwZMdYOvH3lg2rhP
IvtWRR+50sxyfzRpkBAqTrFGTfzJXDatz8BFG2bn5mSzqeTjB/XJGZ7jIgZ2nm3VxtfEjjf4kUMT
lqFMXIdnv5yL9k7usAeTyaENvj/xDc3GHqfsk/FzepMTudM8h6AYPn8KvRg5smCu8+i8vyun39+8
cJXYS5ddcuZc3ZRO2CzN0SdDjeUz2Sa+eYujxzfjcHNWHOlyC6y3xhN/NbsmYONneoqgYXATy+SD
wU6Tf7k8AUN7c9LAPpf/1M773lSNAIYMyNvMc2KQeSQ8Z27f0o8/9rTNxHlFf/IzN+TkzLxHzkUH
hwilMxvcHB4NlqGU3meuG+PYArWnIIwk7z4ZPfDh6zo4h4kDiuux1Ifz9mcW5xqpDLPxCG5hazyr
CngUmNrSwCNNLCXhemGyrnzBDEo2Hvd6PVabdcxE4pf7WjmKB4dMI974SZ5VcA5d7+R55yi3/taA
nkDiQ4zhke3kLtHtzgGFxpMCluAtWDyznT23mKCDb5zxm/jeo/D7qC11RQf3qfGxx9ZaoA9HPPC5
48UG2k9hMxf7+ElAdu3Dvpyuvk9sj9xOLCR/0I8w8S0pDHX2b0A5lviJgwxnnh2AqqHnkNF2nDXm
wMdY9ds6h8HgbwzOg2uc+nge5WgvHhrXH3u9OW08cHkEHGRey7GT18ZCHsTWS6pHgx8cbXpypL3q
H/FvH1W0iZgDTvzNknmMGN2J413PPUv+TBWL7/uWtU4oyjVz8Lp6XYI1teuKhAMHrRPpeJMMrzEX
fueLAf34t6bXl+D2Ml25p6ebuZw84FPDvyltLDPFPkZ/QD8akykX10E9r8VfvHkn0OISP2eU+CiY
FfWReuL7zR/592Yt3LlekC+bxNsWUl35fZ2QnYZPvsB1YaRx8PGNDI61VkaI28vbI3SZqwStsUN0
3w0/udhf42dejQsL7cR8Wo4eKfkM/pjir3H2NkIpI3vIelDU2ZvW6ZQ5yNYa9b5BGLdklJnobMrB
z82Of1VoYxPH88bZUZKYaXSCYCz0DouaQfFI4KV0fptTUBhUcTvH/sm47DlyC5NfFx7cxJCbDqdx
5eL3IqoNuf/4+x/8T1vyW0ZtRCR6XMBhSQ4WpTjZAUwcUFtbBmrlQs77o2pgwJEMJZUQeebx0AGy
Pj6GM5ZgmZzGz69/fHgyzXZkCYRLjrWmL8fATNznufr7tw3nYkV3HyQH7+a8xpNHHcKn822KcpPx
nvBoDHQ6/BvdrN36euVjc4DkFXF8ldevv/z69kEfon7Ql9CjFeGSSIesgzk41MSQKnOKwOqBpKcZ
CwAzo6ht6+lVxfjoIp0x8SeH8rJoNGKMWDw9/wVVCb0HdhFk5D41PpLcbl9viJmzcTXi8xIL5867
C834w3ff+bOFhi1Fgz3GcEhRXXyaYLSc146MeRR0vn7VpyDqIKFGHCas9421g0+JicgTXmIfj+CY
16sOS3Xtg+Z8eNYW1fok3vFY3PgWuJG1zz8p2aGxY3PH9z66Rao7USIl1s00BDZvxBnNPIc0vuEJ
4GiO9Mxn0U3MCsXX31cfsnrVnbvx08Y7Ixrn9bnBkldv5PP0rECRnf+p9c2PT/3qEU209sagua79
mvfNRTaNlr1Xjlh4zc67v6CQTS0zl3J9QdOYemO6/8aa1Q4e+ZUDjZ+9ALjdM64uffwTt7Gr+9br
CkxUNbN8cjyZz+jOF23HjVNdx7VXf/fItHuL3PhYj50aF9uci89cnrfU5mCbnBkj94C/dcr6PecD
jvYao7y3rbJjMVB7xTEmDge4xpbohr7zQ1H/+r3qOqan1Rc87faPJrETvZrTN5/O+1hODW5u7MW+
zhtb499y8ehoN8ZjinC1l6Hj+V/aGQz+5XzNjULzlgZE4zC0Sja46wOK1vFeFU3ATmfNGhOfQur7
6OXHOMf59Kf+xS6JsfWA/eRECsY78dwp/vSnP7398R//+PbLTz/7/yC/8VzbmT/a6/43PM0bKw3G
zSeqr2pE3uYd+yseNXY+gNlZKJBler1Ifvmk31Gc4K/+97gyMaf8MJuLOLRgnp8QRZscWEdCgSsf
fm0PHUEmL+Jw1Bf8Lddv10Rovh8Bgx+NfVpcdejB9Ki9+oyFFiDfCfGcoSh67eGrsa5RV6q8+bQu
uxaOmxfMyRNbakLMG8e4rXr88GdcDsaNW5xUq0Om1Rf5xjGmleOW0POb1DSftY/633b813/+v9/+
+Mf/6+3nv/4kXyoIBlSOeB22WsiDo41atVLVkwtyOcIej+ZZe3kPJoj6nt5Xgknqw6B8SMUm0tfx
wYKxjwKyFZDLUf9WA7S/s7NfreFgdHCRD0JGfBeTCOBf4+FTP2rCQQN324586hBWw33KOsSTWPgw
Sp7I555ZO5juEa6JHGCxtJ2dsWtNovoczSgnfTLO18743hyMT8atBdpQHZujy9Ua9WbhZKE4nh9T
rcwPfUGDmc/59JvPP/zLOuvTFT5gyZsrAcH60MkBZiylJ4sOe055/8VQ45iEuh+CLce39tCaxJ57
Gj93E+f+CeH33n0UWXzz5hdsbl7Tk7Z1ysifHJGZFPnrfE09GMCTouowc5g8MqvNDopsHoRMQp2z
McjhsKlRg9RhFNHOObqG8Wjmm06auk0/4R7xiqkt5LdvZCj6BnLTeCis/fo0jp6H5H75ijoFoLIZ
1fmMpq5TH384KuOZc5H0uXDOvtGMDtDURqPLZo1uKFi1fRPCvIA5L63NYJofFv/zP/U1J9bki9q7
oI5SZH/l4srlKWWA6Ye8Lq2NczW1wDslVgtn+rbIaEtYRPqzxy6i5Gkueakurd/NPOYJV8uZ6xXS
4td5JQO4Pb97kzvdZB3n8t/5xpLajH0KBVVWXgI6zNCZkgGH2uBrxzyWwdphZHv4NNpRXDk9DVui
xz66MZLvIYQdt/eP9GxSgxijO52SwQPk3JZjeMENwyUp5gBvvIFC1fbKXr35bkfJHd6Y8JVVvdeb
XjHodDxjRG8Le1D2tIO0Tif8HiwYxhjbDC+GETcm/nFTzxsBOZpCQOflU3TlhAOZh+a8OBasfuI/
OKq+enB5zckck8XEFA6pOg9NPBlMDSe1mOdM3Nbf/Cjue7PHRil59Yg0MH2hi+acB16FXepXJX1x
t40kWyT0MwXgbs2B+MivrT44Vi6OW2j56GlgemtlTOza6oe+RUKmFYPcnJDvVgycjtF8MUhG3xzx
+wovhe060f+72/CTM3Hr+9Uchh9AMRtjOBizf267ZXyqv4yt36W6n6EOkQBXCOvJ7/LLANDV2HNg
qLn2APdM/1ctlqTHtrwjoMNAP2/AUvuLu2L9canP8plI6umNGdzKcTNmrjvHtQunckhc3nEu79IL
UNm9Th3jzBCObzVzxfjA4F8f+uX7FsnYwXwLZ71Oa0PewSGsqteZxzqxlt9sl758ngR6Haub0Ix3
LtghnV76DM/YCuPnjmlAXHJPGQWdY0kwXpubnrb7HBBB6jM9GJvGoXb0tMK2X+EywguYYGo7z8Gq
e97zB4O593D5+IcEpOM3Cn/9+Ze3H374wT/l/uvH/D+HCTKcxKERC18PlIfvhRcGOzCfdWo8poty
7Jj7XFhOdM+2LEd9qyyb9AooqFT5b5rq1uCxAXDs5VohPAsfveeM74Xr/YZg3Dtum6G3L/ciP70f
nMx57zE4x5TseqW+qFwz911rBmp3POShGSMz9Pbz+4+1zbr5Xqec9M8L+v8qFdaxzOtETG8d+dhf
J/1QAnU9WGIE37jJS3GsFi++ndOVsylxut0Z2yB/sK827AB6zTu3Ybqw1tw2+4xvGL5NDeTiYdA9
ivpu0U8973lJ/v3vfvf28aP+l1xSfThpfKd72wvU3GDlTKsa+ZHDbcBIg9z65LW3UQftxNTrb+cV
x8zTiOGlY3zaGKQ4Uq32/Ia+9smnw4sjnpfhEjOdd/rndj+9/Zc//5e3Xz/+qn/29Ne39/rBiczh
Al8i+c3KZBJNWMFaf+CoN74MyGmy1MeKrsla1y9rHN/ygULuuH31jYO+7ZbR1af69rctvrflJe0A
rnmh2BnvFE8+rcHNGZlzcUP7VUfNe93XWL/26MOzKyTNt2MU0csd3+rqU01zM7aMj3sA3ml8XOdb
toeJjbgSm0SEcK7O2G+fwBRXn37+1rziWdQZVWMct/ing4EPTFz/zXN9Cuznkh03T8bfCFnYzmsV
/07B19lFfInm7PjrPJMQ9lfbvzO0Yd/yfdU1Bvqv8znX9DMuO7DXydPSEXzPWM8RuK/jHV1t5bv7
37I5wmX8OuLNEhn4vU51r69fg9iTfT4H/3fmvq/Zmp059GzI9WiZ03VdaWT9k0+jCe5HhsGApZlC
ffO08nGCLS39GT9gDAQgt5vrW7J5dJPnn6/+pN94/p1+uOzPf/7z299++quemX99e/e9/plTknWd
GnUCfBU0c2icoANCx7iHx79xPzi0gxbuHT84PY116D0T7Zf+ULbtwTUeqtd8Xsd2e5xOLGcsB2Ly
RZ0/NyWfksiP++09hoqVMYv3RD5tPSFufrDPHKH2K/IVw777wBN+zE8mozJfcpIx+wwB0vG4A6J+
5D95/wY3EZoWNBxtlW97bb/V1wf7q3zz/JZ8+7zGqM39EHjv6DflP+qfl//xxx/e/uuf//ntp19+
efvpbz+9ve9ef2Tyyvr1OHE4N2IwjAhb7d0j79if6YCtJv6cO++bp9auVDDxLR5M92RZn71GFxiR
AwzHZVoeqSdDXh+abViLL0/7WOt5Rmjq89QSA825ZmovHl9t2ZeGV/2CrB/A41tU3ONxzzv2kr8y
9Utl9Pjy3S5yx7cf9r60lDVV45wKNkf6YIo8nHCs3Q6cElj/wFeMJLBt7Hj55rT1iqEhUuJ4rj8Q
DpU4aMb5Rp6gNmFWY5QPIT3Qaawmgx1BxzrNGD9ZVq+dmp9+R6mGETeS9+DEyf/pKrwwWHtP7Gbn
Htf5+Yv3CX9SgGsc1xYrHB+GMJjMEZVM22zr3EbrF4jcba3pRlmnm2BvxMRN7M45+NGt8wio5Rsq
V58ixWilTrbnp1o3a+J1Jxr9+oAXDiiaGkEY04q2/WXe2I1THieVbO/gD8/BRkfN2ojLzFxrJzF+
kv1neicoN8dsgCEGN2J8NFjNhhpnDOw7/szmmbD2qm7vft1gBDCrCOxvxayDuMx7EmTMfvQNixyY
M31bxw+uGEt141dnSOKg63Bz62Smxu4EPP7aP87n8nUuJz9fk2Muv9cMEvNPZM+nu4QYBghSuwH2
iU3+ijXa7TeUE+touDqEe3mfpVyIBfxOTrE1H1E0pWKbTIDOKZGZz+3d2UnXPMZ+d/XFu/6v9oaM
/T6fefFse+PK5Z9E1KBjuMFxoCO1cwwK3WD6zGxuf8gtg1rqIu2sAfjxtp0IicG8QmiMiQYyPqc8
h8VcdrOk/28kPnWP9vBEQjvxxhTNK+6a/5j6/xwW6fnJuWx3PN97Jh/wtW1uly18z/tc7xXLXUeB
+YDCH1LE0XWmxP6hmPly7jEnxWKN7+Z80ElYrIp8y+AZd32R733q8WAwucHpNzfxtY4xCXpvJIJ/
84lcsalfLnLg/ghWPq6jSOy1c4BLuhm7R659bMsqZ9fGyeR0fHJdb/yJVSg4Xh1zSEsMhaflp6dj
i+ac7XdfC8ckx83MWs9tXlMtz/VCZGLlzaJHN4tr42vL+XQGB7I/UCXV00rOT40DEYuAGz9+Rmoh
Xj2avK8DcgDgQXhufOThNjaaYrweTwqNAKrd+zIKlCefTcDqIOQ6qYSmgUw5Rusyr7LZp1iYUOjY
9Td7Tnldlyec5j2O8P3/7H0HYF3FsfaqufdujMHG4AKhmWYg9GIChN57EiAvCYEUkj/1pfJS4CWB
NPJCAiSBhN5775DQm8FgY2NsjI17tyzpn29m59xzr26TLMmS/K2te/bMzszufqfcc8+3s6t7KISL
pC/RFhv1a/tZn4q/WNt/82PqKnNdxQz1JtVKRp8tEoGrZlQg0bZ6kVWS6UPKnVihj/Cmfzj3067R
Tj9X4NP9aj5VZlVk2Wp9kKeuEQPS2xXrEjeqC7HX7XVCJnn8S7tJ2oHymBIfbhuvNy8vtE2OY66C
twVb95lTsakYKFZ/CpPoL54lGe9yrickKfyquXx4fSJYsWaV7ia/l1QHLqK+twfXDfyJXM2Rx5+X
S0kih8xBhFDtbKu71hARQBY3Sb22rwWQRXnyTC6+kU9VawYisHWeo0306/d++Ek3xb8T1RgFWlfs
m3k0ofuBLPecdb3YGNSv17FiE7sW2+8nXvJdJX7t8spUkDl+biQVeLGK4o5ji/ohh1i22Ni1kDaS
vLSnQiKesYYn1i/EOe6HJMEBatFV4iyJhpcSrV8/RAsJ2ql9tXf8TB/9s0cI6FrSnJihDNZ2XDN+
UO6DgzN1ZuxhldE2n7rvwqQCayGaiaK0B7PK/nRzKOfXjVIBLl2O1ijpLFhVd63JcppgnKpfbWNl
yPt5rPlone0/CpMGxv2sjRWaHVpk+3p+iZ5vcf2qjhQDd68HW1ig1CzhPJPDnidIrcQ+3QfK03nX
xzZjk9FxXS/TrXy4HFtEXowcsYmu+6rRKCJE31wnXUfBfMqn68A+24cjZhpoC5Ifad/H1uysDS5X
5dSHy30LG89DDXn8ZbcBJY3lbuu6fnTdB2xQ5n/Yb5ysf9DBV5VHT2da5a2zLfQy7QMKjkTGM3SS
FM8ll7l9Ui6ZdHsh9xqzdU2qrdULAzi7JvpoNeDTchk/8KnJLyjfz9q6BxFm3KpG1u+GLJvSO+4q
+yxqbJduN/Lp311p7bReWu5577vvY5tpQyafgBTLAY3WmzYsI+++0+1Kt8Hz9hsmc2zyuU778nLI
Eh+pPPBRuR9TfP8WSdD1P6i5zyImeYsSu/g9i7Mmc82YierktCexU5XUuZaqxfufEiVZLSumkGim
M5n7YXb9GR2XY4tz1H8DQiONve+bNNMQ9MR9QMeTyvTZ10pxrSbv1qAEcXw2dm+u6T5czc6dTF+8
HPr+57Lcbdp3obbCBnWgOdYGscLxi8fQZNDy+qKWPDctXLQoLF2yJAwZMky+62tFQcrEznCMluon
7cX92NY8I++tdYlt3TLzzCBHKrYNGn4JaHvhwnEXnUyZ2OgLlrRtpj7UEQ8HPEYcstsnBUlK2qQS
28P5YwnnUUom9bo+ytP5aKAbyH39YuRdz84w852Wu63XmtFP25oWytJ6aV2VS+ftPHOvvhXN2BdI
3I/ff9Jnf9qn67p+yptn1ZeVW8scf/eTKEoGGn6PRnnuX0bXfNlnBgfs5/MLO5WL86zzD+cX7nGx
UZWSn/vRR2Hx4sWhX58+cpp7a92zHWOrw2vHNn1WoDZLhlumRXp/SOm6HrbQ8j/fxzb7rILEU6ZO
2Fkr4MPqSz69meir9t/t82xjRKyXuE/fL7bNrhea1j5vm7XQPEDm7bOt72f6lOmRt8JryPiwXOYT
RyvjG8hl20DTdZB3zxnUII2ng5wLdv4bgO7L2wsba63PiGB1ef1+67IzyHxY3s5AKzdvsLS2QIrv
WuuHo2HWaJm8m9HvZJMk9z2tNLYMRfIj2G1hlelp9IRrXSqpqpLIZyOi7TRLHMIkvaNOzJE6jmXI
48WoVQbnsQLdGEAGS5Srn8wprR2XBqgH/UXsPrwz5jmBQ4ozdaE6EYgqrIyAVoWkHZBDwcCOviBU
NWT8IEoWwMq3T6W9QYj9j84dC921g2UvOuBDkn5rSb/QbIjkT390uh10JGkL1ER6Dl1N4i+6MTsz
dpFrYQuZmolBcnxEkLwQk3xGbhXo8YnObGOfVmre03KTCBzi1PxGSdJIrUSE0aluPQ9dyasuttE2
tbH2pQuQd13fukF6H3qSsIlZ3dcP10vruCxqocNaHHXcDltXTRepPAp0Ix/qAztyRmXJRJSUQS9W
pjqimmCHukQIOdS0XD9M4LjZUc7SFYWoYzlzIvmkXpdj6/XHbVIkdWW1xRaI12sU8rQvb0vahTdV
Gm+qUeAniu7KB7ZQQEZl0UlSd64O9lXRWprKZrXJSk0XdXobE33IXCnfVgq9P3q9QwcGLoz28Kv+
8/nIJ4OPQsl9W3kxzYyHiK8KGlvYCy3I5S8pxvUq9xJUVyhBXTETJccu6qqbxFb2MjeoQt5y5ElD
isrjXVh1jHRBXaluSIm20c+pHG9ZuziG6Efq4TWrPM9OUj+am/yJVPvugpShfuHKvrYH5cjbRh2o
iXy4LKqYc9HzNsZyfekBX5Djmx760geNSvVzzm3QN9j5vmSThOODcvwhYRP9aR+jOCmP+i5O5LCV
MpW7L8jgC8kNsPW8FqQ+tD+yjy3a63ppf1E9uf+rTlREXWm7vPuuIDbuP/osuYEp+i//DX/Zhw+0
D2UxazLsxD8UeIIu5OmUp39Z/YButFGXoo/+419E3LypzJQBodq4TH8Fo+G4tqUw+ouGUVk2frzs
YSc5n9WfKautuE2luONuM7t6LzFFCCNIKUvPJveblGNtJkyiPwPe+u2z0GhZSkf75k6l0HAwB9Zv
uyfqMYvnh51L4h1YASLYx3ZkrmcrRyHKrThVcawTrUsnuwfBAFIphWHKDGLD1iytvabu+WjsLnRX
6xdjtA968IMP6x0yUZiUq4bopiqHDRLue3JvgIaVWjuRj551a6bmJ/nUjO/Z1rEzc5EZWJmteTPX
sZ2o3fphPrzv0aOUuW8xs4ap+6QOy8Q6RAEOtDMZu8x3EWTW34wTM3F/Xof9LhGpXPfqTu3gW/ai
a7NJedK2otAs7BNNyxgkaKsMGpIkj+sZekm9MNE/+YjmcWMm8mKtXiIM19Wu0y4r1uJO64RidA1l
lZmVu9I9kKnaDHUsH9iqwLcigE/IVK6tRKH+N7/yKWXWLykCXqpuMvw6w7RwPXv0kPOtXqfiFS07
lqKndUKA5HVH/ypLGh/PcNhoihlsVEfq02OTCKQg2kA/HjfDOd7k0vXEupN+qHv5yD3e8CV2qi7F
pqafupPYo0poep9kB3VrElnMQcGqSAQwimqwSeSpvkDF5WgfDOTEdZHW7N/5KkS5qOX2xZ3YBa4+
vM0ZX+beHEQ3ItIq9eRA3rT13uw+TcHKtBPiWcrQC+291wlfkMHOZcjCN/S9zXpSqXLqA62FWgZP
y4k/64hCEZV0g2YhxRZrHSCgq4CXEvZRAfVDSx0h554TY8mgnth22bPKoGe22rroRotTOmoL/ymZ
26k0fgAWqCX9wa43DfVoJdY21ZOPBGMzTWrQDNoMxdhGrUbyJs00NtMWrSDlybwkvtTEtN1ntdyb
li5dGgYNHBi6desWli1ZquuWmyevw7bWEs/LVjsM72k97Mc+ai52GzqqZr3ATrYW7Cy5hvtFi6Ft
KVNXxj4jgw7kkCC5FSR+XExm9Zuma6X1Ye31ui7K03X5XkZmntL+PC868j+5x2jbUOa2qA8p0yuU
2Z5tQcy5f6/Z9s2HycwDJEiwt3+o3PetZyqI9eMu6zZqqLZpv9YSbxOQMXtoe16kkrVeWctQmrQR
1x+uXZEYsqZp+/J4A+WslPELncRPtHfPGW/QRzLd5PkflmiYujMv3uaMrVniM+NFcnKOe1+1fXCl
NdinWVkempasDrQiI5GcqjXuByTpVkUn0Rolahh1LA+ZW1kt2EOZ996sVKAyKZNnaWACj9B1+0RH
CtS7fOhWPu2MM12Xwdrrh8y14dN0sj0ndpqBLZL4dGzNiXpFibXPdHQP502U+nnjfTZTqyFdP6yT
pFWKjqp528zG2449pEzd2DMdRwESa7dfLZm+ZBCCD5HHe2Nyi4Qv+W99hp0cDK9Ua/XaElOty7zB
uyd1omWZe0m63PVsiyrU1h1gi3NAMM202QoT3cRFlMTvVfOUqd/aBmXTy+Ak/sVlKnxN8rCDbgZ/
5PQ4RpeY5XTVKol6lqVLdHpm2MTnEfQV5qgjux3waTI7J7AvmlE/7pmtm0KY+DFvKpIPPV7azqgS
C6xu7Ahq7ke2yFpCndgzVDP6Kf84j7UCWJieeXBMTNerN7+mqx2ICKQ8qrlfC6afaVHGPlrE+qGR
sbG9tK7n0Q7/U5nswM4tMjWl+wId64G/zjAv4kHqN4DNsWmJDOJYF+rJ5N1v4kFKUWs8b7weGGmC
PpJ9eg4WaqemrmF+3J+qpD68DWYifnOOm+HgPRUtlMvxV734QyBpDfbRd/xJQqQ/9JYvXy5R/jIo
GUDFslQTTFc+M9eV5dG/5Pih2kTD/MMQ7deEqjUDvksyUi82NseS1ZuxUkXtCnLQ1G4nziBVJ0md
die0fquuHmM11vtMxkLstC3WIHs3ZC331no1vkVd1lPfGt5e7lvDBy2xBC3gq+uxp3HVtsEKf9YP
3xoqtgdPpuV9lX0RqN/YJvdiNaJ9nqytvo8tvOinuoMXT5LDwAM4lzLrh5WmdZC3a8nqSXvIeDIL
VCGP9BJ8JASynHewsPrhQyx1x65h9Ah9ja/YYru0Nm0P5F6OemCqtciH+cH7AmuT+8gci+jHfPgO
XCRuJG+7PhjBm2U6VgxwMNAneekJE+wjaWd8PyPMXKymlj3i3wFxfekMDoAm38ZdrcAqgQ7A0D1R
yxwESPAnflXu+/Bh+UqZ7kCTbiBDm6W3op8ZA4DeS5kAqlvoJH8mh0ABl7boeQ0FJDmJrA9mgS/P
Cnlh6MV+1LCvPZSMlWkDYjEan4mZVj31LX6iI/QZctQVReoQ8OGESHyaRy1TQsOstFxbpT8C4ByH
NfFkAux75V6k+9jBn7ZA81qMXW+gZD25qe1Hh6obNVwhsXW/7iG1RQe1XjdKlTXKui4KPO92do6Y
iR1DL0n63MhfjkDbkpaJB/QhLUe1ucn76RU20okFXg57t0n7SpcnjXZnstWTIW2AMjnqCYaym25r
oiqO4Vv/oj93q3XCN2yjgW8h8LzXDf10HiauE80bbVLnpClHA/hJXbd6J077SvKe8W2sIYuw9DLt
kClEUdZo0qKNFSzj7STLAWxSfUjVYGpa5vVjK+ef3Hj9B3m2L9tL+9PjEsUa0Yv1FtWd+5TCpH69
yiGQPylPtRfRxtZ+2DVqpcjyJeim6snKQz/bF/x7HdjqXQvfUJL068rb6d9wWf7S9ZhN8U/Rd39Q
hLn8ZfVMz0URpu/JWU5hFNuZwspUpCwt87r0vIxlecq1/kSeaY3hgsqsTqtDPt1vIkhlGt0HzF/i
y1WBZ/SbqdELpT4ps/uAy2SLNibtTMnzZbWNOX3O6Ycea/key9Sf6me6rng+NK7G/cMuZdtYsXG5
9gP20k+0wB9sUnXheW+9U+Ij3T77brZnI/TeEDAN10O7LDkJqy/tIZJjHL/d9dkkqqU27iOK4q7W
J3n3Z5hl12MPi2Zn5GbjfKqi+HCZlkjz9NwRGY63dMLuMLGP3ikUwwwq6XM2njdooz93qY4qwwBJ
drL2RQQ7OaZaVzzP9JlN9axSb5f1y2XePnGpIm9gPC+0PqsTvuHT8fN9V1F8dcf1rCQjR7Pl2KGK
VPvhB/fpbD20KyehbnhIbJNMRtHX1hVjO0cyReYxek2ZZjcHBWil4xL13Y0cK/yz5w3Zqnp0huOY
UkdW++a25lr3snBwHzh+fi5AJheg79sLYvNoDmKdUoPntHI9f9IVitT9a+OkRan7kPYGBwQy1K/3
BbPP4Oy9SHdOLdFIxUB1/flB/ZtuYgGZ72CrWHkEjwjQRtxwRC+5Zbg+mqN5rxMCT1EJ/vHfbfw4
QU3r0gqwo3X4ETYv7teMM4jKfjwe+ptFdnUtMqmkoQ6riIXQq09fdZEZlW8e1U5xiE2PYvPnftFT
5H2DjOzCsTZX9rHVFDNJB0WYlEUV3UjbYpuxa7+1NKOlqN/6gnrxZ2J8Jvc7bXdEQXTcn7rVOt0I
W/kTmTZLFTL+LIfCjAwWuC5dX1/uws4E1h49liKDHAZIkGneBSiLeWwi1iZDGWQ4rl457hsQ4i9u
1D905S9dFvsPuVVhNvb9g3zqDzrqMIq9TISGG/qfaGhdenxVpEpWv9vBV6p+c+51wMj/gIc6gYUl
uJN/dm6HsFanrkf/TQ9urUw+oWsf0Q90TE9/N8CTlsN1lGt95h9eoxPkLMGn/NM6JO91ub16ER96
TOBLmwYjyPyfuIr9N3241pzqIW//RE3s/JkgWxc+S9UPd9ATb9hqHdhKTurX3/parhLVwbuR2bPn
hBqZ9jRUV9l1KjqKhanB2v7UFT60kyi1pHXZ+a9t1zqijdqKmoGrbYMI/dWktq6LYhTGMlGwbCxX
MT6sL/FOE5WkAlWTDzGCHyNs1UhMrM3mHzWbPBcntB8ylHqT7R0J/ELmJdjGFPVlo7aZYwgd07N7
VvStoiiHUTqZk4xEiq1+ESV2sS8iMBE+rf9oe7r+1LeRaus9XetUSzQ4Ok7tq8yagKz1WTL6P+pZ
zRmlWL+K1UjaofeqqK9vUMUXytwPuiE6iX940/Lyzz94V5+xfvNvOKtfvIuDjhx/OwXQLtytrV1m
CxxtH/WbDI2RJGLVBbz6LABNSKK+6iAvMtnouSMZfKei//ai3epXZ6oUfUZb3MPtXBV5qn60W+uX
cmRgii1arwXYlWTttesPSnpOq7K1FLWh82oFefQDW/RJeyMy+w6Fv5T3qKsYJDf5wvVrW7QOIOT1
iz8D3xzDv+j48fDa0ELFS9uuTY5FaIRc7bEtUoKWo/maQ52oSUWxbsUBgugLvyWsn8AHhvqh5ZBr
/+DQ7ZFH0mqsHPjo8dVatUCLHX/dUefet+gA2Cf9Fzs0X+tHddjP1K/nmPqArSQptposjz39raJ2
qgEnloEu8v5nDdIyVAlbYXa12PtrbYc9/rCJ9siqQIW2p0WQZvDXvNZv+Ls/e3Y0X1oczx097u4C
fpCXP3AE8vippJxChWolGUw4vqKkRIRKtQX2AZ3oUH3pRzS0PD5NV3LaPwiszNZcVQ0tUnm8zmGD
tiimqh/t4MZdwJPWj4ydH1aHnzNRMX38U8aOlx8POE7Xp82VD+2/2sGfJWmaJuiby0z98GvlUoJM
BBV4wqd82jmpOxCo0AoTGXZjmWw1m9GEE3GtANlW6lB9KLodrltVFD20Q6uRD20IbEUW26Ytxj7q
gg2SlseM5OECnwleUNC6oi/cd1P1Qw/u09cfiuFHfcmObmONer7hXPU24baj/lEP/suHWJiNiuL3
QvSC33vaBvQbunEr9x+1lesPxCjya2VAsupATfbRRv3TNqlQxNEO5SKyfptMm4VqPYNy5P0PNlKs
aOE3NP7DLf7QLuxDQfWsfuzBXlXwgebbntg67jBSDfWN96q6ayKxkUz8LYmWGlpmo+0Tn7EGycDI
DSUrDfTvTEgRbGq6aiQSbbZuLS/lsb3WN+uzhrrG9wao2bCFe/GK4+vtkmNl/uNa5Fpu7YGW6uqu
20GYk1AEEbbRXusREVqPpPWjJi13uZQKTvj216TvKaBvfdD6YS//LW9qwNN6kJE7nmop7qxXVje0
lDPAuxBzoa98oQNJ6vWI7ltrTBM4wmeiI2KFTxqgEdLphiWtMr+oqqKmxwDzhD1N3nh4chEOIh6Y
zJuCp3lUDj2RN6yT80rWXKqvk97JSH4cOIxChgn8ZDUk+vVNUk8Zum5TbJuqr1i17iKlnrep6XLY
eHPdvtE216CRQo6gqfo55lkNSuPtfnO3bg95Ormty3L3Xb4ht63Zplzfufvodz5ZW+LRmvXn+s7d
b+3+59aXu5+v/nw6pY5HIRuX527T/rwsLVuffNpfOg+fuftpWb6ydDnyTU25PnP34S+fLF1PofJC
8mK2+Wxc5tu0PfIu9226PC1L510nV5beR96T3zdzZb6fvt+6TXqbTy9X5vpel+9Dz/27DNu0zPO5
27R+2sb10rJ8upB5/bl538fW/RXaQgcJ5enkvtPbdLnn3a/vY5uWeT53m6uf3kedSG5je/k/8+mk
ZZ4vtHWvKE+nfP12H2k9t3N9L8vtg9vmbl3f/WA/19Z18m3dLm2Tz0ehet2n+/F99+f7hbbuN12e
lnk+d5vWRz5fOWRI6ba4npVk7LDvZWm7tAx+cvdz/RSzdd301v1B5nnf5pOly/L5QTlSuq0myf+Z
z19a5vncba63UuW5+r7vdr6PbVqWzueW5bOBPlK6/7k+TKPxp+v5Fhqez93mWnt5rrzUfq4d9pH8
nPVy31pp408v921jjWyJ6OFHpf6gz7VJ76fz2R6y91zPt9mlhffy6adl6Ty85O7nei5Vnqtfan99
/JVjW0rHy31bqr0tXb6h6vV+sP7MvcAxae62OVg2x6a57ctnx/pb7vjnw7eUjPgTf38WKXWutEb5
xn7+tQamTfG5ofFvSltbQ3dD95/1b9z339Y4p5vis5zzrxydptSZ1m1N3+l6CuU7eP0aECwLN1dW
VctgiBr5wxYUs8zUJj+mLXzIvuAxfC97H52P5DOYarD+ikfqgQCupEyGtMaUAJZkhGyWMtm1KA2p
Asy8idSnegh1wjXXyvRxtWHAgP5h5MiRYdiwYWGwTNeE/STBWbRXH5K3EQcyUlXyOoohVZ7YScZb
5Nt0mTaygF0xPfSF9ctAAzkuxJ/nH68/e6madc+IO37f8W2WTs59LassvZOjx/sP77/8/uH3D79/
+fzB5y8+f/H5i89f/vs6/diIvD93+jarPOe5MqssvZOjx+dPPn/y+ZPPn3z+5PMnnz/5/MnnTz5/
8vkTT9iNkz93+zZLI+e5OqssvZOjx+dvPn+31+fvhQsXh/kLF4SP5n4U3n///bBw4cJQWd1V/rrJ
4HOLc05HQGdOc/kejcSyRrhjNLzOagNtuXr8GsAsFYhir+neH1IpxF/MKpkb91WOUtycM9HPmK6u
ft1aCQ1fFwb07xv23mtPmVO8MqxYsULWZ1gVamtlfQZZz6xe12DKNI85IkAEiAARIAJEgAgQASJA
BIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARaBsEQC5XVVWFmpqa0K1bt9Cnb1/hfSvCI48+
GhYsWirR0DVCQneJjVFWWFhjcMWenDf2fdkqIS1ybFEMLlryRj7rkA6URPIZ7qRCHQkDttpTjBbG
bl1DrRDPtWHr8ePC+LFb6noMy5YtC+t03SU34JYIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQ
ASJABIgAESACRIAIEAEiQATaCwLV1dWhd+/eMov1gPD6m2/J39sZAhrrZlsItDTXeGIsw5xijK0b
0APHLAmB0BLDrMmm3QbBHOfmRgHCwZEw97ctVi2Wwog7Id2AtZ1lqu2tJ4wLY0ZvrmHZiHhmIgJE
gAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQgfaLAIKJFy1aFNauXRtG
bz5SGwoSuqKySkjmKtl3qhnsMohn/ANvDIbZy7RIP2xSbZGDUhYJtpp0q8SzRD2r3Khn9+FrAtTX
rQ39+/fRiGdEO5N4jgByQwSIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASI
ABHoAAiA4wXXO26rMbrMcv26NQlvnGm+kc2RNc6IPToabDPyYKBFVXYlohlqkYE2cwhSSSKgK5Sy
hlK9Tre92y676FTbJJ5TODFLBIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJA
BIgAEeggCDgBvfcn9wz169YKFSwzYOu/VAcwxTbIZBDNGtqcKlPGOcMwG/Mco52djlZj1ZEAanFm
xLM4Eb2G+nU6/3eP7t2UCU+7Zp4IEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESAC
RIAIEAEiQAQ6DgKIfga/PHDggFAv5DNoYpsnO/ahPkYxa7RzJKHT3UO5qujk3MjZItFKWosrcNHq
VJhr08Mc3pJE2CAVDh06VKfaxnzgTESACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASI
ABEgAkSACBABItAxEQDniwjoESNGSORzrTLHxh5HrjjdLSegjT22EkRDg1wWEloDo3VG7ahgUc5g
n8WlsNCVGhUtu8ZMa+Tz0CFDwpo1a9LVME8EiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEg
AkSACBABIkAEiAARIAIdEIHVwv0OEQ64oS4TfIzgZHDKoVJy+NMkEiWgtUTzEtocFRtCdcyZbvSg
60HLOs9ISjqLAxSBiF7XUB/69O4dFiyYr+X8IAJEgAgQASJABIhAZ0Wgvu8moW7g6FDfc0Co6N43
1FfVdNausl9EgAgQASJABIgAESACRIAI5EGgsk4if1YtCZUrFoaqBe+FyiVz8mhRRASIABEgAkSA
CBCBjo9A7dq1oU+fvqFBuGBLkWyWAOUG4Ygr6iCNhLPIoIW5s1VSL58IZBaCuhrRzYhyVg3JKsks
ytg2gIUWy5qa6rBuXZ1ESsvy0lJhv359wvz5H4kGExEgAkSACBABIkAEOh8CDd37hHUjdxTSeWBo
6NZXZoOxJUjkUYmJCBABIkAEiAARIAJEgAgQgY0IgYbqriH0HhLqeg0K9X2HCgm9IFTPeilUrFq6
EaHArhIBIkAEs9nzLgAAQABJREFUiAARIAIbAwL19cIB9+2jSzD7DNngiZVeVuJZeGMs2SyyCjDP
KKmp1ODl+rWqILIKRD6DZpZPYaIrGjQoWvIqMjkIaPFSJSQ1KtUk+bo6d5LRZY4IEAEiQASIABEg
Ah0dARDPtWP3Dw1CPCORcO7oR5TtJwJEgAgQASJABIgAESAC648ABqSG7v1DvfzVyl/N1EeEgF6y
/o7pgQgQASJABIgAESAC7QSBhPtF3DLaFGlhrOOsCRHQktfJs6VM6WSUVVUFTBjp9kI+S4ITCYeG
KQKhlZCWHURF4w9Rz5WVYK5RJgmENBMRIAJEgAgQASJABDoZArnEM7pXJQ9PeA7S56JO1l92hwgQ
ASJABIgAESACRIAIEIHiCOAtKGaHRFCOv1DFQNXacfuFmrdJQBdHj6VEgAgQASJABIhAR0VAmWB8
YPZsbOT9qM3GbWSxBjWLvL6uXp6VakNllZSjSNSrNdZZtIWn1peqkKqZMs2SA9EseUy5LQrwz0QE
iAARIAJEgAgQgU6JAKbaTkc819TU6PNRzby3Qs3CGRLZsChU1nP2l0558NkpIkAEiAARIAJEgAgQ
ASKQg0B9ZVVoQKTzgFGhdsj4UCUvXWtrZQ1o0WvoMVCX6qmZ+miOFXeJABEgAkSACBABItAJEJDI
5gqZNduSRzxHnlg5Yy8B0yzl8spUOWf5rEZMtJLWGuUMRRDOMQoaxjDwsGrzIyKS0A4Ft0SACBAB
IkAEiEDnQKC+73Bd49l748Rzjyl3haqVi1zMLREgAkSACBABIkAEiAARIAIbCQI68HTFx6FK/moW
TAsrJxwW8DthrRDQSPU9B8g60MND5ZIPNxJE2E0iQASIABEgAkRgo0AA8ciZ6bB1FhjMCokAZg1a
BqfsQIheZJOjpCFEztqmklSpauADf5Ywd7fO361OXcotESACRIAIEAEiQAQ6DwJ1A7cIDd36aocw
1TYeqEg8d57jy54QASJABIgAESACRIAIEIH1QQADUnu8eZf+TsDvBST8fsDvCCYiQASIABEgAkSg
+QgMHz489OrVq/kOaNmyCIBkTpjlyBXrRj40aFmq030o+Z+zyqZfbXQ0Ck2gLZTI5woJhzYSG3Jn
raMfd67K/CACRIAIEAEiQASIQMdHoKH3IHn2kRF3krDGc5d5bzPiueMfVvaACBABIkAEiAARIAJE
gAi0GAJVsgwPfifUDx6r6z/j90NDr0Et5p+OiAARIAJEgAhsbAhMmjQpHHLIIWHFihXhqquuCvPn
z9/YIEj6i0CY6urqZD9fpkH42XXr1uUrajlZwgE7byyccTL9NqqJhDP0lEiOSztrC1Cmaz4buYwd
zSGMuj7KJIuO2L5rYMvUnhCwUPemt0iPbdPNaEEEiAARIAJEYIMigO89THUHghgPWy31wOVRz+hc
JR72Fr63QfvJyokAESACRIAIEAEiQASIABFofwjgd0LlkHFJwxq690nyzBABIkAEiAARIALlI7Dz
zjuHPfbYIyxYsCAsW7YsnHHGGeHKK68MCxcuLN9JJ9Hcdtttw5FHHlmSfEZ3lyxZEq6++upWxyky
xRFhkMqQeLJ8g8iMbjZtt4kUuhS7RI1lR6KfM37MKVSQmkt2mjU/WwqBUaNG6YiQbt26NdkliOfl
y5eHhx56KMyYMaPJ9i1tAAKhvj53cfGWroX+iAARIAJEoKMigO8JTL+Dv+7du+uzCL43IK+rq9Pv
NHyvrVq1qtldbKiUqbZT1pUrFqT2WjZbN3pyyzqkNyJABIgAESACRKBNEah67742rY+VEQEi0H4Q
qFyZ/UK8obJ4hFL7aTlbQgSIABEgAkSg/SAwevTocOCBByqJevjhh4cpU6boOz8Q0JdddtkG44vw
3nHw4MHh/fffb1Ow9t9//zBt2rTw6KOPFu072nfMMceE3XbbLdxzzz2t10YhhI0ZRhVOMKffnHrV
JnNd31YnhLLqyR74P9kY92ylZoq87TNi1kHdsNsDDjggrF69OjzzzDMWoS7NQSTYfvvtF1555ZXw
0UcfFWxg165dAy5uENgffPBBi0WNFaywQAHWyDnhhBPClltuGX76058m/Sig3mJi9L22tjbMmTOn
6IXcYhXSEREgAkSACDQLAXxf9e/fP/Ts2bPR4DeMisT3oJPSffv21e8zjJRE2fomW3SksJcBAwaE
CRMmhKHDhoVu0k605cMPPwxvvvmmjkAsbMkSIkAEiAARIAJEgAgQASJABDoqAhUNDJ7oqMeO7SYC
RIAIEIH2gwCm18Y023PnztV3fgh6BfEKvmpDBipuv/32GvT5k5/8RANe2goxvNd84IEH9N1iqTqn
T58eoN+qyVlk2RpHnFsbYp4lJVNvy9Tc2JU/bJPI54w0KuBBSg62JZmvWx3InvHPUd6ymxqp76j+
/cJBfXuHLeQlLtL0NWvCA0uWhVsXLQ61Gp5dfp01VSEctVtNOGi7qrDFEFvDcfq8+vDAq3Xh1udq
Q21d+b5Us7oi1O8h7dqpSwjDInRzZW71F9aGyqfXhLCuFcHJ01Qswn7nnXeGN954IynFS/o999xT
R2VglEShhAsZofmjRo0KIIBbasrSQvXlk4MoP/HEE5V4fv7559uMeEZbFi9eHAYOHBhGjBihBDSi
5piIABEgAkSg/SGA77pia52skecE/IFsxkwgIKL79eunEdArV65slQ7hO3SXXXfV75BlS5dqXd2l
bgxq6iajDw866KAwTR4CX3rxxVapn06JQEdAoGf3rmHFKnk+bkZaH9tmVEcTIkAE8iDQo1uXsHL1
2jwl5Ys66rXcpaZaX3atqyO5VP7RpiYR6PgI4BkffxvyZXfHR5E9IAJEgAgQASJQGgEEcwwaNEi/
d/NNrw0ucty4cWHt2rXK3eC9X1smPA9siJQ7OzD2gQNI5tw2AT9wgbvvvrsGw4ALXCrvKFsrVUi0
ckMF+E+jlhtk6eYKoVyNTTYxAprTyFVVdenxw6RBYgcnGYbZVcWRAl4R6mpXhx2E+f/4448Ts5bI
DJZFtH87amQ4rF+fMER+7IGIxh/yk3r1DHv27hWeWrYirCxzaubBfSrCb8/uFg6bWB2G9BVfwhXj
D/lJY6vCnuOrwlNv1YWVZZ63DX1lWs/zeoewm5DP/QRVcM/4Q35CTajfpiZUvFEbKta0HQGNMHxE
OOMl+0477RSGDh0aZs2aFTBP/tSpU/UY4aG50B9e0OMkxfQBbU0+d+nSJZxyyilhzJgx4dlnnw13
3313S5xGZftAdBpw6dOnj0bTYapWRvSXDR8ViQARIAJthgC+pwolkMvpB1B8l0HWu3dvffDCQ2pT
0rqROyYPc9UyMKvrh6/mNce0NltLxPPDsnTFeNneI99hW40dq1Pd7LDDDuHJJ58Me++1lw7imyuR
0PlSv822C7f+5rwwb+GyMO2D+flU1lvWv3ePpI6FS1Yk+ZauD+tj4zmx2BPQ8EF9w9H7TQyfOfKT
YddPjJbnjrow66NFSR/79OwWTjxk13DsgTuFXbYZJZHkNeG92ZlnzVLl7gh25xy7T5i07Rbhzelz
wto40rCmuiqcJP5PPXRS2H+3rUOfnt3DW+9lH5sj99sxXPrNk8Ptj74c1tTK4MJWSv379Ay3/vq8
sGjpyvDO+4VnqWml6hO3l3zthHDArhPCg8+9mchaKrPDuJHhqh9/Vo/za+/ObuT2U3t+Ivzu26eG
2x97JaxZa1g7/tPlevjzf59Z0LaRsxzBj794VDhQjvHD/56SU9K83fR1VOjaqa6yQa7FroFCtR+x
zw7h0v93crj1kZeS83WvHbcKO4zfLLw9Y27Q/DjJz5xbyEWbyNenj6UaOGbkkPDFE/YLq4TonDN/
cSP14w/aORy9/8Tw3GvTQ12ZvwUbOYkCuVUF9KW+iYOaC/lra/neO40N58o9DtdQb7lvTsm5j7VU
ey445cDwg88fER79z1th6YrVzXJb6j7QLKcljHBf2327MeGxF94uoZldnL7Op8+eH6775X+F/XYZ
H+58/JVsxZy9ysWFB3vnqHKXCBCBdo4ABrsOk0Gv+O2BWZTKIaDXbrJdKhqqIVR/8HI77yWbRwSI
ABEgAkRgwyOAd2qnnnpq2G677QLWOMa7O0Txgt/CTL6Iej7rrLOU48I7tokTJyoHhoCPtkojR47U
gMnHH3+8TTmjfffdN7z++usJ93ryySeHffbZJ6A9m2++eRg1alTy16NHDyWfIdt6660VJwR4thTP
h2eiV159NVR1wdKHgjz+PMUxuirPKhAFEboq6FNNIN70xSF+iHs+6zUiTKTMLaNdS2xAMl+82Yiw
VTchdgsklF0ycpNw9sxZoVZY9WIJEc8Xn9E1bDXcXgTl00XZJWd2C2f/cXWoLRWxLBHPdef2ChUj
ErgauURZ/ed7h8pfLQ0Vpfw1sm6+AMcN0xPg2K3POpfNb0HTLTEi47TTTtOL5oknntB1p5vuZf0t
EP0M/DB/v0dAt9TFuf6towciQASIABFojwjgOwMvpjANzh4y0wimAz9QIp0xoOsAWacGxPeuEhWN
NVf22GOPMF1GHmKmkdxULWQoIqu64KGllVK6jnS+pav7+VeOC70kyvWL//OPvK4H9+8d/vDd00Pf
Xt2VbN1s+AB9qX/Rn+8MDwlB2LN7Fy0HQf2WkG1jNx8aDtlz2zBy2IBw1W1PlSxPV3r20XuFYw7Y
SUX3PvV6eHflPM3/6AtHhklCSEwRQrpXj25h0skHhKED+4TLb3g0Md9h7EglWZpLtCSOSmS2H7up
HvsZc9Z/avgSVRUsBhn/iS1HlCRWCjooUYDBDiD/Z83NXg/RzWr03K9WEtBljv8HMiihmK3rF9r2
6tE1y28hvXLlpa6dPnJeYzDBFTc/Hq6957ly3SZ6XbrgPpD9G+PwfbZXUh4DIQ7da7uwek2tEPUb
7oX2+vYx6WyBzJhNB4cDdpsQtth0UPjcD6/K0hoyoHf4ghDTSJde+4AQ9Os3MOTTe+8QvnLaQeGE
b/wxfLx4eVZd7X1n/Khh4Yf/daQMzJkflixfFc476QAl7O+Re11LJwy0eGPanLC83JHaeRpQ6j6Q
x2S9Rd261DTLR/o6x+uQ16Z+EBYva53ZU5rVQBoRASLQ6gjgnRqW0TnxpJPCg/Kc/9JLL7XYy9tW
bzwrIAJEgAgQASLQgRDArL0IqHxIAjowG20+Uvnyyy9Xvgvv2sAjgXjFEncbUwK5PFYCXW699dbw
8svF3wfg3eR5550XhgwZ0jrrVHvAsjwvaRLa1XL2qRHPeSjbSsgwMzfsPPITD12e4qzdVmbKyl57
eUtsj+zftyjx7HVs2b1bOLJf6XnMj9y1pijxnPgbVhGO3CX7ZY+Xpbf1u3ctSjwnuptUhQbRbeuE
ExHRz60+x3sLdAyLoWPBeIzWeOSRRzYY8exdASEwb968gEhsENDFpnZ1G26JABEgAkRg40UAozIx
knD27NkBUc2PP/ZYeFS+zzAADJHQTz/1VPhAyrD284sy7TZGHzYlgYj1CMN8dv0kmrlQKlaWtsFj
HiKJCyWQxIVSbyFuKyszz4nQq5JpgKpi5Gc+u2MOmKjEM8jmz//kb0ourVqzNhy1/46qPmnbMWGT
wf3Cn258LHxJCOzP/fDKsEBIof12Hl9WudcJkgpRpLkJ077uJpHQj0gE35d+do22Ye7HS8InJbo0
nbYTUvjVqbPSotBdIqm7CjmYL4HARXmhVAjH7YXkXrO2VqJaM5HXpY4dyL/U43lWlXo8ixyzfL4n
bDFcCc9X3s70F+cdsCqUCvUnn/77Qjp/+efXhideeieruJgPx7+QLc67QuctynBuFkvAcH1TqWsn
n//cPuc7Hrl244RknDbLBk5sIcQsBmXkJhyrQveKUveRXF+5+2hzofMtVxf7A/r2bJJ+Ph+QjR4x
OIBgTafD994+vZuVL9XPYtdvLuEPx8XOkWLnXynb3HMgqxOyg3tJ7rmdz2YbGTCC9JP/uyN87ZLr
ZAB1Xdhmy01Vlu8j10ehcw/379zrBxG/X7n4n2FRDgFbDNPcNhS6ljFABDNmtHYqdjyLlaFdP/rT
7TLY4cHWbiL9EwEi0A4QwDsgDC5FVBUisPB+6OhjjtHoq3bQPDaBCBABIkAEiECnQwBBG2+99ZbO
NILZC/ORz3jHhjJ8LyMSGsvsbWwJhDLSrFmZ9zaFMFixYoUuRwiOq3VSHmY50s/KLcdi8MoVWM45
JonpRcInhLLFUF/dk238TQiJTaYoAsiiDvRaIh3ct0/ZbqB748LFRfUP3r78KCLo3vhMiZD9nZtw
0KD7RPOmJivaqSKFeFjGidXeo3ZxwZx++ulh2LBh4f777w9PP/10kV61XRHmwseUSpi2fNNNN1VC
Id9Nr+1axJqIABEgAkSgvSKAUYQYPIWEB+Z33nlHH4gxWhMPxxjUhHWqkfCAuL1MEVRO2lKmnUUU
2zZbbqJRjk8KaXfpNQ+G1UJSIoGAOXHyLmHEkP5hvkzV/a/7/h1uedjWlD587+3CaYftHoYM6KOR
Wjc+8HzBCMwDdt06nCVTXw+QqZ8xXStIDBCxSCBujz94Z60DU9/CD6YCRgIh9JXTDtaoZEyNe/+z
b4Q/Xv9o+J8vHxN2lOmBkW6R6M8fywv7GTJd9tFCOIPsxdTZ24zZJMyetyg8/J8pSnAsW7k6fPvS
m3TwI+zmLlgSbnv0pXDvU69hV9YJXhsWLl0RPIKtVLkaycfZx+wtBFiF9P3ZcMqnJrk4IPL6dZn6
+e4nbBp1YIrpjNPkM6KsMR32qxLtdpxM8fuZI/YMz7w6Lew9caysYVMR7pPIwkv+dp/6BGl1wakH
hn12Ghe6CGn0/JSZ4ZKr7w2I8kMqhiPKQbK+Of3DgLVEix27X3/jJI3yxBThICPnL1oWrrn7WZ0W
HGT9779zWvjP6+/pNOV9ZVACorp//Y8HwruRtMQU5ifLVOMD+vYKHy1YGv5yyxPJFNsgwDHo9NV3
PlASGv1BX7HGK4jOS695IEydaVOCF+rPN886JOwg00Gf8b0rtC/gkq780WfDdDnml9/wSPjT988M
FwsuT7/8bthuq03l/N4/bLnZUI02ReRmOqXxxyACt8W5hH6+Lu38hPgAmYb+ffe3Nyse8HHKp3bT
6dr9+A3q30uORSaiFdcOcBgumOmU3hKhDNyu/unnNLr4PBmQgHPiJ186OoCUP+v7f8kb7Znv2qmV
KNy//Ogz2pXTD989fOqT24bTv3tFwLHDhFED+/UKmw7tr1je9ODzOu38MInwx/WAwRi5pPJph03S
qH8c8zPlHNxzhy31/D1Hzu1hg/roPQFTVAPLbYV0XCPTjj3x4jvht/98UK+bYvcR+D70k9uFU779
f9peTFF/zf+cE/5wnQwGlRkI0OY6OSf79+mhJPByuU4vvvq+8Oa02QX7iIEnA4V4BraXyTlzptxb
fv6Xu8Jzgi/S52QmAuB/2nf+XPb635/ed4fw1lX3qj1I0UMF09xUrJ/Frt9PS0T554/fR91hWvi7
n3wt/Ebane8cwRTffp0VO/8K2aIS3BsRtY32YkANrreJIjvje3/RKbNxbr8rU+9vvcUm4UO5D5/9
o6uK3j/gA2nC6OGCey8dfPDx4mUq84+mnHu43jHdOaaX7i55XJe/+vsDEvE8OxwlyxDgHESEOKbE
L3RPbMp9AOful+V7DrMuLFuxKtz15KsyY8ATYS+593zt9IPD14VQx5TX+K476ZDdwnd+e5Pc1z7U
+s+StuDaRMR3qaSzWnzvdPm+Gqa4/1HuRw//+y01K3a80n4v/urxekweem5K+KHMnPHAM2+EP1z/
iF6Pv/vWqTo7AwhqJiJABDo2AjU1NWGbbbYJB0+eHGbOmBFmzpyp79U2kWd5BiZ07GPL1hMBIkAE
iED7RQDvbcpZ3sJ74AGzvt/S20mTJoX+/ftnuQV/hTRZnhHS9SP/zDPP5J3hMMtBZ9mR9xpJ0rx8
gB+OySbYTgmUN5Z9bOU4S4C0cNPCRqtcjOADf3iBpCn603JXikUttRlbZLrt3Dq26lqaCB67iTc+
17rx/lbDS+s2jCifzA6b5o+OaVxzy0hwwi9atEhfcCMKqz0nJ57vuuuudkM8O15Y83nu3LkSuVWl
EdAu55YIEAEiQASIQBqBHjKQ6rjjjw/Hn3BCGLnZZuGggw7SfN8+fXS73377hdFbbKF5RE10L2N0
JtaaxIvuTYf1D3+95clw39Ovh8l7fCJ895zDtep9dx6nL+YXCSH7R3n5DZLiyzJt9B7bjwmbDx8o
ZZOFQF4qBNRDYeaHC5SEHS/kRL60vazFe4dM5XvzQy8oofylE/dXNZAPmIoW09D+/rqHZS3qpeF8
WfMTa+cioS1o58//ene4X17CH77X9kK+jg3X3fcfJdJg9wexA1k4SdoFMtyjkEcOHaA+/nHROeG2
S78c7rj0fCUT3plpkZ2Y2hVEO4ieg3ffJnzn7MPCVkJS3i3EBFKpcujsISQd2gpy9u0ZRppCjjRj
zsfhgl/+M7wgJDESiImdtxml5IEK5ANkLNIrEvmMqDwQMZsJtn8WohLkB6Y+3kKiMpH+32c+FQ6R
43OXkNl/v+uZsKNg+rPzj9WyUjgiunHUJoM0wrrUsQOZuss2o8NKIftBeoDc/sqpB2kUN6KxQcQe
OGlrIZSnhL/e+oS2F+0AoQSyC8cW5ObPhAwEaYV2o29I6C/OFRA53/ncobJ+7LZKTF9525NhqJC/
F3/1BCX/i/UHazmDSMUa3kggooHZa5HQRvt6SltATv70vKOViMXU1M8KqY9+pVMaf5D7buv93FOi
1DEY4g6Zehp9A4GEhPMFgw5mzV2kGNVUV+p55L6xPi5ILVwzOD/x+wZTsKOd6Cuiis89dm8ljUH0
3vzgC3mJZ/jLd+2skumw/37nM1rdS2+9H666/SnN49hB/6W3Zmr5mJGDw7c/d1h46e33NcJ/kJDS
nz9uX9VNf8yet1heetep6B4ZjIEBCki4Xt96b65eg7hXjJL2//W2J8L9T7+hGFxwykFJWaH7CKJe
sUawJwzuQDs9AhT5iRM2l6nx5yk2a6UdII+L9REkIgYD/Pof94fHhATHuXeQHBMkYI372Bwh2r8j
fX/4z9/I+7ftVhbNCxsMCthf7kUegf/JHbbSwRP/eeM9FGsqdb8sdv2+8e4cWTfafF0hgzEQ3Vvo
HMF1Wur8K2Y7VAYD/VQGNAD3/7vpsfCUDMLA9YSBIjWy3IL73mnrUTrIB+djsesNnX/8xak6IOUb
Z30qXCxrG2OwzA33/0cG+IzQeqDTlHMPRD3ubTjX0Ea07fvn2vcOcMR1iFQM03LvA/D1C1miYcSQ
fnJffSw8/+ZMHSSEwSMgvVE+cevNtb69dhyr+3tst6Xu7yb3GEw9jxksCp1HPjU7DDBI68P5S3TA
Tb0s1/Xtzx6m97Nix0srSn30k0EYiOjHdwJmxMBgHqxhfeEZkwWn7uHqO9rHIOpUk5klAkSgGQiM
GjUqHP7pT4fr/vWvcP3114f3ZeDoqNGjNVjiKZnNiIkIEAEiQASIABHo/AhgDercP0zzjYRl9dJl
IKoHDhzY+UHxHsrv+iRpXkKUGyCxgoYK2ZE/FbmiE8vyOqMaBQ0igB4SypC1fTeLzqDgIuQ3QKpL
U+stUH9dnfWtBVyZi/VbhqzJzaiUiIPN5OX3uHHjAgjURx99tMk+2soAEcYYNYIpjTDCJT1qpK3a
UKweRI+jXYheYyICRIAIEAEikA+BlTKVzY033KDfYQcffLBOwb1w4UIlm2+Ql1aYRWOCTLWNqbgx
oOmII4/M5yZLBpIKL/0R5fXsq9O1DOTnwZO20ajUfYWwWCpRYt/8zY36Ah6EyVH7TZQo51Vh1kcL
w4nfvFynwsa0qXiOA5E3epOBSjhmVSQ7ICr8pTmi57DWKhKI5CUyvSoikhEFijqu/dm5Kn/wuTdl
StjuSoKuWbtOCba/yYv3FUKKYv3VeRKJDXLigWdt/Z2HJYoSRPnbQpaB4ELf8Pf0K+8qmYv+Hrnv
jjplLMhsT/sIyY5ou65is2LVGiXbvAzbQuUgqr4qpCxIMJDBe2xvhEXa1vMgrn75leMVr8tSU6oi
Ghn9ByHr6ScS1TZL1h9+QUiSK354Vth129GKNwiidyRa8SHBBQmkNNoGUrsUjttK9C6eNUBoFDt2
b0lUOhJI/W9fdpPifL8MSrj+4i9oxDbISCQcJwwWQPp40fLwTSGYcVzrUwNGETn+jV9fL8eomxKr
iCZFpCUGEWC6X+D1oBw7DABA+s8bMyQ6c3OJ+Kks2p+LhNQ+TwjuA4T0f/qVaeGAXSdoO+EL5Iwn
kNKoG9HKiCZHAuGJSGtPafwRKZybrrz1SR1YAPn24m83ORYg6xC9DgL9W5fKtSHn7T0SyXr9L/8r
MQc5jQRdTFEMPP/780eoPQZOoJ9H7T9RRl03yHGeUXDGAPjId+1gYADOexD9iK5HlKQnHENEoiNh
sAMGHlwcI3q3lghrRLPnJswWgIEXPeSchu5ZR8q68pLH4AMkDEQBmfm939+iEeWQYX1sRCCXuo9A
t1RCZLhfk9Vy/0I0N0jBQn1EdPwP/nhb4hYEK84nXPfjRw8LINmvFkIeMyA8ILMl5EsYhDJ8UD8t
wgwIuwjROHmPbYRwfzEgUhkDYZ6R88sHLJTbz3zX77/u/Xd4WQYJAEfMLoEZHoAxUr5z5N8xgrvQ
+Vfs/Foq5yXu49//w63hxTjwpXu3mnCQ3NfT6c83PR7+ee9zKvrhfx1R9D782aM+qd8Jbv8Pud/1
kEHcv/3WKRKxfH+yhnu55x7OaVwzuA9gYAIikHH/KLScQD5MMTtGOfcBRIFjxg30FwM18Id1vjFY
AWulY613RIUjwhiDpxCFP2n7LcKVtz8ps0WM1PPnRRnMgdk18qX0vRszPXhUMr6jQExvLt+JxY6X
R0bn840ZHLbafKgS/rjWgDUGNTERASLQ8RFANNPtt92mEc+IdO4lg0wfk3dqr71ms/HgmQ1/TYnO
6viosAdEgAgQASJABDYMAhuKK7rsssv0+z7da5DMeOd30UUXNeKKNrbnAuWKhRTOrOscuWK8gBR5
BQqSZES0lQj5DDJZ9aBgnlRVzEwghRBbyuRc0hLbqavXhG1kPedy0vQ1a0qqTZ3TELYZme50YZPp
8yyioLCG4DO7LjRsXmZE89y2ZZ9xsk+ZMiW8/vrr2oWuXS2ipVh/NlQZRpKeIJFiGDGCB/s77rij
3RDQAwYMCPhbvXp1mDNnzoaCiPUSASJABIhADgJ4+MRLn6akpuo3xff8jz/WgVRY03nZsmWhj0Q8
L168WNevxICwPn37huUiR8JSDvM+yo7CzVcXImCR3pWIQ0/IIxp1U4ng2kymhP5AIjsR+YWESEQn
KzBF8Y++cFRjIqsAZiBTPWE9zkH9eusuIkE/kAhFEHhIIJkRTQo5EiIbMfXvD4QcwTHB9LG/uPKe
ZMpuVYofsHUSPS3/vhBm4EQfff5tjdhGFFs6Yc1nRN+Nk6lSv3/upzUC+uRv/UmJQegVKv/8cfto
VO1fEck6YpBGhUIfZAGm7/bpsEGiXfL1E5UkBqE7TYg2TyDsX5E+pZNjNXOuEdIgaBCdjQSC8PLv
nZFW1+lYS+GIekCCYtptEHOljt37QoaDPEFaumK1Ev1pctanxkY5CHEkTGF9u0QIg6DGOQQyEGts
3ytTh4OoBr6YchkEOPpTLf2aGm1hjynJ8YdUrD84Hx8WshSkM4hVRBWC0MO06mny2dvr7YPfd4S0
TJPP+fCHnicQ9Z5mCSabSPQkEnx/IGV+3mLQwmwhFD35QITfyjS56eTR+Jff+KhGfmI9X5x7xZKf
D9BJXzuFbECAeQJWINM8gbTOTbgPgOzd9RN2Xfz8gmOz8r//18N63cBu6kw7Psj7oI8zP70Hdgve
R7SwxAew9PR+PO9xfhRKH6awhg6mtgexu+eOW2okPM47DEbBPevN6YW8ZOQ4n7EcAGZNQBQ0IrER
1Y/BAZ5K3S9dz49X+vr1svS22Dni5HOh86+Y7Uc1dvwxxbon3Mdz04cfZ87XYtcbli/AcgKYKvxK
wQT3MswocOfjr6pLXz4BO+Wee4i6vvDMyTq4KN2uQt+h+TAt9z7gx+0cmWngnLB3Up3LMTDlMInC
xiwW+I7Bd86FZx6SLAfwrAxAwAAbfH+USmnMcQ9FAmlc7HgV87l85ZpwzV3Phq9L1DOWvcCgHyYi
QAQ6BwKIasKak0hYxm7q1KlZHcP6kr16yXIeMtCUQQpZ0HCHCBABIkAEiECLI4AlWjEzbVsn/P7A
Xzr5Pri3tiSbUS/eLba/JO9lI0bKFjdUWvAyxAl7jHe3NhE32o/XktXOMZuxmAJnCXtGoRLQEOgL
zHgA4KOF0wNLlpVNPkO3VHrg1Tohn8s7SNAtmV6QF0Tlks/QZcqLAB7mr7vuunDssceGiRMnKgF9
6623tukFnK9hmCoB8/o78dyWN5R87aGMCBABIkAEMgisXbs2NGVgFdZuw19rvSB6XSIhMIgKD8X4
/hg7dqzOPIIXU0cffXToJetAg3DGgCZ81z322GOZzhTIObExWiJoEZmJNFpI1Dp5yEVkHogukHOI
JgTJhmmJD959a40cQxQdIigRifWYvJSH3W++eXKBmiDOfqB2RUSdYQpdEKwgR7HddGi/4GvSYirl
M2W9TawrDbLxMxKBd9LkXXW9VPhAlGShhIhkTJWMB2gn4EAEoH9IWE90khDR/y0RgqgbdSKCElPC
jhBydKIQJMXKQQQjfUOIinTC/hW3PB6uvfs5jbT9XyFrhss00d+RCFxE3XmCDOtCXyfraJdKiCJG
u0GyYa1YpO6yJAyIbUztXApHRPC9PeNDJZSx/m6pYweStFoilTH9MiJgMdgAxL8nj1zHPs4fJEzd
DHz/IWQJCHuse3qGkJpHS4QvyOHxo2xKdkwlC0Ib0zxvtdkQtcXHKIkQnCCR0YhgLtUfTD0OwghT
WyO6Gfu5Ce1BwhTXfn4j76kp+LuNb+EbpByuCZD0iNiEP19TGufRBInAPflb/ycYYv6kCh18sFii
3JFOP9wIW/zAwzTYF/7qenedZ5v/2nHFYiSt6xTbov24VkA+4xzzPMg9RAfjWHl051YjZe1sIeKQ
dt9uTKiVvpW6j+AnHabFRtQ5onJxLuUm/R2YK0ztl+rjC1Nm6BrumJYe5x3uSSCesa4wzv18Ceul
p9NtEkn7rc8eqgNQcG7eJeQqInI9leqn65Xa4rpCKnaOYFr5YqmYLSL+kTD1OGaKwLmJGRKKpWLX
G65JpHtliuwFMgX/hf97Xfjdt0/T6aAhf0vuK01NmFYd95Yv/s8/wjQ59zCQ55gDdmqqG73uS90H
0Dekr0u7X5bp55EwRbifc5iO/3i552Nt59fe/SBgFoALZEYLRC2vke+9F+Wejem3P3PUXmqb+/Gg
RNbfKNPmF0vFjhfuX4USvnuPP3gXaWtDGCzXDSLy73iMBHQhvCgnAh0JATwbFHvB21+e57ccMyb8
+9//brXfFh0JL7aVCBABIkAEiEBrIvDGG/lny2rNOtubbwS3bLvttmHBggWhrwS3tIskg8EbZMC+
EcZ4LwKCWN7nVUT+Fbvp6GehW5WQFhuNfEYnEh3/BQihv2NJtpLxPMpbKN0qoB7et3fYskT08zSJ
eoZuqXTrv9eFw3eqDlsOQ68Kp2lz6wN0S6WKp9eEhkkSUbxJ4Rer8FExR15qiS5TYQRABtx44436
gn677bZTAvqmm27aYA/ymAIcF/KqVasCothIPBc+diwhAkSACGwIBLBkA+7V5SS8PMK017iXY0BR
a6SPhFhG9AOm03744YfDbkJE3ybT9WF95zvvvFPliKAAEY0p+6BbKr3y9iydDhkRaLc+/FLo2aOL
EnrPvzFDyeYnZS1VRIle9OVj5IX8lLCnrIOKqOEfXn5bEhULwrBu4lZCMhqZVqrO3HK8lMcUxoik
Q7TfLtuM0rVWIUdU679+8V9KhmHaWl+HFlOBIyGyGNMmgyy+T6Jrsb4tpjbG9N4gkrBWL8iki8Q3
om93FjIZ00979NjipSu1P+gf7AdKRDDWIUX0HiLttth0SNHy7//hltBFZlTxhLWwvyjTIH/vdzfL
dLfvK+lziayPCsLzCVkzFZF2Hm2HtU5B7CO9IuunlkqI6sZxOUzWvAYZOFvad/zBOwtRPyAcf+Ef
lMgqhGPP7rYWs0ete0RzsWMHouPHsm4spu3dW44vSNbnXpueNBPE/XKJ9kWE6QlCjmAK6invzQn7
ywCBb551iKzl+rpMz/xOQvQvkanacawQGQgCC+k5Od4YxIDjAAL9pEN21al8QRwWOy9gi+l9QfTu
vdM4HSiRJvVRjoQIa7QPUYM4v/vLWqqYutxTU/B3G98+99o0uR62TM7bPSXK29cLhs5TQraj/Mdf
PErJLETSYupdTKM7f9GycJys44oIcUSN4pwBhtfLVMQg4TCd+Fcv/qdcY/LLqUhaJVHM6B/6hIjx
9PEpYtaoCNjj/Ed064X/e71G7SP/jV/fIOuez1Z9nKPL5Lz7utwrrpX1zfv37hlOOXQ3jQbFmtaI
0Cx0HwFxjYjWr8tAARB9RzeBZCy3j/gZiWmcP3PkJ7W9iNJFApHug01UkPrAeuTpwQggHb944n5h
SxlUgvyiOFDATUrdL12v0HbBEiPtMfDg1kdeLHqO4PwuloqdXxi88aasZw8y9QghK3HtFiM4UU+x
6w3kMNL5pxyoUbj4Me+j8SEHhlgDuilJB2wIsYrBJ7vIfRkR50hpv+X4K+c+AMIZMxNg7XlMs41B
O4jWx8Cm/yfT5mNQDcoxEOgG+c7AoAVMkY5p2DHtuk6bL/csrKOeL3lUdr4ylxU7XrivF0pfOmn/
MFJmWfjqJf8KZwthj8EUOA8xMIyJCBCBjo3Aq6/KjB377hvuu+++Rve+7t276xJ3+H2BwbBMRIAI
EAEiQASIABFobQSwpO4RRxwRJkyY0NpVle8/cszGC2f41oYYUBKqlFmO/iQv+hUSGQ0iOb6pkzcF
Ht0c7cExIzrAtq3COScdrBX2/MJZc8LFm40IW8m6VfnSu6tWqw50S6XadeLv6tXh4jO6hq2GOzrZ
Vu/Ohc4a+SFb2l+F6FT+aVmoO7dXqBiRebmZ5RHEs+hAt60SiFxMX93c5CM8m/qCobn1uR1IgZtv
vlmnNdpxxx21D5iSG5HRbZmGDBmi06WuXCkvW4V4bmsc2rKvrIsIEAEi0FERWLJkiUY+Y3rrYgkv
iHBfxzrLrX1PR9Qz0vbbbx8+ltGI++2/v0QKV4f9ZTt/3rywww476HIYiJIolEDg4ntn3bp6JQG/
9/ubwwWnHBQsEq1O1t19L/z0z3eqOdZcxnrCRx8wUSJMJyvRde09z4bHX5iq679OkshHrAGNqYNf
l4gx6CJiMF1HOu9twst8RHwg3SfrCcPuyH130LVVERn6tzufViIJ5Zf980GZdnsfnXYb0ctYvxmk
MhJI5B0nbKbTcs8RUhPliLDsKX9IWFsYEbwnfWrXJKoTJPDvZBphpMdeeFvXAQXpCWIauGCK5oti
/0uVewSoOpMPkHhIWIsakeKYthyR10iIoExHUYKEAxm7XKaKnv6BkTt1ckwQbVooXXTFneF75xyu
UXog8xBFimMFMroYjojawzECGYsEYq7QsfO6QYqCnN5BCHIcK6yfC+wQ4Y4EcgvRgohURxTw//7t
PiUgQRxjAMFkIVo/tecndL3uK25+XNcpRYT7Y3LuePqZrN383bMP1wh09AfrdWNdVUwNXaw/bo9o
5/NOOiA5VyD3AQo4x0Dy4lhC5+xj9lJsQTihHThXcvFP23ret+7b9zHl8ObDB4VPfXJbPXdABnl0
NXTvlfMa0atHyHmNARu4LkA2g+S99ufn6gCHK25+IqyprQ37CWGP6w9rzvaWNc5x/gLXlatrk2sV
PpHS1w7yN0nE5YkyE8APZNDFoef9RusxTfvUabf9h1m6QPLAAH+4F4wQggtTTGNabRDlFgGdmbof
x+a7Mqjiq6cdJATY/uoJhD+uJZQVu49gzWWsSQ4ccA1Mi+e7NwfYpJNfA4g6LaePbotzBuQzSHKs
g42Ee0CxhHMb/cbgDtSFQSoYCIDBK0i4jh2j5SuL97PU9YvBNRgksO8u42Rt9Prws7/cXfAcwfFA
8vPN875f7PzCuusgVfffdbyuo4zBNLgvIoLW/aS3yJe63jDDxbkybTWWP0DCFNBYtxlrJ//s/GPD
2T+8qknn3v/JzAi4l+HaBL6YaQNTf+M+UCvnI8hpnIOlMEVbSt0HMNgFSy+APD//5APj99VsnbUD
9qj/hTdn6ECWp2XQE9JT8j2j5LPcp5FAwDsJr4I8H35svGi1nFNIOJ+LHa++spa6fydDH+1B2loi
zhHVjXMR5P7FV98X/vzfZ4Yvn3yADgxRJX4QASLQYRF47tlnwwEHHhj22HPPgNmN8LsD98B+/fqF
cePHh9GjRoVnnnmGQQod9giz4USACBABIkAEOhYCr7zySnjnnXd0NkXMqHiMBLpssCTPRJqUINYP
2YXMFmzWLPjjdNSzCU1N8hVdegyw2bXx+0r9RfJU8rpYtPxwTuylqHb14nDm6acn66JoA1roo0Y6
dHT/fmGyREFvLqOhkWZKJMF9MtX2LYsWh1ppS1NSjQQqH71bTZi8Q1XYfLCBNXN+Q7jv5bpwy3Py
IiX7HUtp19UVoX6PLqFhFyHIh8Qo6HlCOv9nTah8WkZCtiHxjMZ+/vOf1x/JL730kvxAts5gqtG9
995bo63myQvwQgkv6bfYYoswe/ZsnRLU7Qvpt4YcD/WHHnpo2GWXXcK0adPC3//+99aoJq9PJ55X
rFihawmQeM4LE4VEgAgQgXaDAMjnQYMGZU2NN3/+/ID7OKa/7i3TXa+RGVIQmdzc6ITVu39GXjjZ
oLWuXbqE3i/8o2j/EWX9iU98IgzfZJOANeF0Fo05c/Q7GG0rlupGT85bjOg4fCeBgMmXML0zIo5z
H4m6dqnWqZbzrSWbz08xmU/Lm08HZYiCzG0fnkkx9bbLK0UA8iWdMO0s1jkGCVGonYiyBnnQ3PJ0
feXmr/mfc4SUXaCkXrk20AMxaeRk/miYXBxBGoF4OuL8yzSqz+sqdOyu+snnwnuyLvWPhAgGaQXy
xDEF+fyXH35GSWJMpY3zJh9mmFoY6zsjIhZprKyDjbWqf/7XuxsRgugLpuv29ZO9fb7N7Y/Lm7JF
VLITiW7XXPzdHtsq6SfIYgwAKJT6CbmE9aidVCqk5/J857CX5duiDfi1kUt+5dNtCRmOOa47ELa5
qdh9BGU4L/KdL7l+cvfL6eOBEjH+nbMPC4jELjUNcq7/pu4X62cpXzjfQaym15Nu6jmSriPXFmuv
/+KC43S6aKzRPHRgXxnkcVjoIdfAMV/7XaN7eNoX8sWut/5yLtfJ/RUDX1oi4brEIIO2Ondxz8P1
hejmDZVyj1dz21H13n3NNaUdESAC7QABDFrdZpttdBkdPMfXymA0fLliUCmCNTCg9eWXX5aBPY2/
a9H8ZTudJvdPew5skAFN3Z65sh30ik0gAkSACBABItC+Efj+97+vgYnlTrN98sknKxcJDqyt0ngZ
hHbIIYeESy+9VN/RtVW96XpAPp9//vnhj3/8o77rTJfly3/hC1/Q2VymT8/MlpdPr1wZMLha+Lqa
ngMTE2NY8QnOWMhlvPbDi4mYNJgZ+/F9YLW9FjQDGEEZRnjxiX8qw6sU7Luae2vhLcjl6xcu0r+W
cA1y+fqna/WvJfyBXK58XF7e4a8dJJ3eU8LwcSHgoTmdJk2alN5tlAfZjAXcMZJiQxDPaBDOsbvu
uksf8DEFN8jotiKBQRIsW7YsgKBvqzobHQQKiAARIAJEoGwEMP02iGYQ0FhfGd8ZIJxBPOM+DrIX
0QptmUB0468lk0/FXMgnplXOl/IRUPn0ypEVIzQKlckhSIhn1OEkabo+EA2lpkYtRh7CV6nydH3l
5EGGD5d1pW9/7OVy1LN0QLQ72Z5VEHdyscJU4+/M/KgR4VLOsStGFIIwWleXnwBHmRPPaBbagOTR
17oTP7Q/If+gB6jk9idtW24e0+qm0/rgn/YDQrnUueHrPKftiuXzncPF9MsltYv5aEpZsXtFqTLh
GZuVSvXxF185TmdOQATtHTIjQmunYv0sVXe+a7ep50i6jlzbWRKFjwj2QyUqH39IwO/X/7hfvrPS
lvnzxa633KnI83soX5p7XZZv2TzNcu55zfNcvlXu8SrfkppEgAh0JgTwLgzL5Ex/770woH//UC3B
HEi1Qijjtwf++L6oMx1x9oUIEAEiQATaAwLgY/baa6/Qo4cMqo0BlYXahfd/Y8aMCcVmFixkuz5y
LKeHvw2Z8I4TQTaTJ08OIOqLPZOAqEaAzPLltsxUi7U7/nZVUjmyxaCIkSrkh22DBPD4vgUwZ//Y
raiRyGcYG8kMK8+aYqIOZ1K0btWScOaZZ4S3pkyRPSYiQASIABEgAkSACLQtAl27dtUpaDCQCA9j
ixcvbpHp8HIjn3u9cI08FiVPQi3ayUKRzy1aCZ2VRACRnBPHb67TfLc2GTFu1DAZcFcXpssayeWk
CVsMV32sl5ubELW5w7jNZPrgD0uSrmlbrKeK9a6fl+lt20NqS/zbQ387ext2HL+ZrmuMtXoRZc4U
wvjRw8MwWdKgTqYVx/WK5QCYOg8CjHzuPMeSPSECTUWgvrIqrNjxZEY+NxU46hMBIkAEiMBGj8Cm
m24aPv3pT4fBgwdnzW6YDxiQr++++65GSpciqvPZd3QZ1n4++OCDdUkQBOEUSpjB5c033wx33HFH
IZUmy5PI5x4DzBb143/ymhQ72W9NMy20nEy7PVCn5QZTnZ2MbMY7V/jVYvFcC/K5labdzq6fe0SA
CBABIkAEiAARaDsE1ux2hszfaxEPmHa7x1v3hqoVH7ddA1gTESACRIAIEAEiQASIABEgAu0egbqe
g8KK8Ycky/1UrFsTuvy7+JI97b5TbCARIAJEgAgQASJABCICTj5X9xyQIZxTBHSkl3X6bZgg8jlD
TENSEWJcdCSazQIljVKFWGpxLkfdSJMCIkAEiAARIAJEgAh0PAQqVmem7caUu7UDRnW8TrDFRIAI
EAEiQASIABEgAkSACLQqAvidkJ7+skECdZiIABEgAkSACBABItDZEFBOGKQzErjhGMSsWZdhKyl3
6u1KKNu022ZrDLMpqyPxa/6yQ6ijBjdEgAgQASJABIgAEegUCFQs+1ieeeq1L/X19aF2yPhQ171/
p+gbO0EEiAARIAJEgAgQASJABIjA+iNQ172f/k7A7wUk/H6oXLFw/R3TAxEgAkSACBABIkAE2hkC
GGynocsa9WyRyQ1KRldqS41wlmwqaNnKG0Klr/fs5HWaiPY8vKhtyoF65gcRIAJEgAgQASJABDoJ
AlUL3gse/Yy1ZPCAtXLrw0JdDxLQneQQsxtEgAgQASJABIgAESACRKDZCGBg6sqtD9ffCb72JH4/
4HcEExEgAkSACBABIkAEOhUCwgenOWLs6Z8yzkYWYzlnTLBdWVFlJLIQzWZTEap1QedIS0NoUc7m
BmWId84Nl+5UALIzRIAIEAEiQASIABEQBCqXzNGohfoY7VxbWxtqamrCygmHhep5U0KNvFSqWr00
VNSvI15EgAgQASJABIgAESACRIAIbAQINFRWh7pufULtwNFh3ZAJSjzjd4KnyuUL9HeE73NLBIgA
ESACRIAIEIFOgYByzRVBaOWA5QmVNRZZRcDsL8jIn8gbZL+iAis8K5ts5VJWrQURCeOq7RMiDad2
n6Ks65mgQiYiQASIABEgAkSACHRCBKpnvRRqe/QLDT0G6tC8tfJiqaqqKtQPHi/T603AoxUTESAC
RIAIEAEiQASIABEgAhsRAng1inei9TI7kkc8o/sVKxeG6g9e3oiQYFeJABEgAkSACBCBjQsBYYkb
ZIptvBCN1LHyxhq4LCJs8YxUXycKoiT/EQuNVG17YqX7+jhlSlocxUZDByGvkwpiMTdEgAgQASJA
BIgAEeg0CFSsWhJq3n4k1I7dLzT0HKj9wgum9EumTtNZdoQIEAEiQASIABEgAkSACBCBZiFQsXKB
/m7A7wcmIkAEiAARIAJEgAh0KgSEVEZCwHNDRX2oxFYFItcyUNBRJ+rGXbXDh64KrUZaAmUzQCFs
GipQKhlEUjMRASJABIgAESACRKCTI6AE9NSHQ+XH74awapE8aPEhqJMfcnaPCBABIkAEiAARIAJE
gAiUREB/F8jvg8qPp5F4LokWFYgAESACRIAIEIEOiwBY55jAGNvSzJLDjtHQsdQ3oq8mmHzb1Koz
hiIQhzkuRSgaIlSTes24N26JABEgAkSACBABItApEahYtTTUTH0s1PfbJNQNHhMaZB3ohu59QkNl
TafsLztFBIgAESACRIAIEAEiQASIQH4EKuprA34fVArxXDV/WqhcPCe/IqVEgAgQASJABIgAEegs
CEQ6GPHJ8j8S0EYso4u+wnNknVWi3DQKJcm02xIc7WHRSl/LvsRDa5APnIu2O1cL1OL6KuAHESAC
RIAIEAEiQAQ6JwJ4scSXS53z2LJXRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAjkQcDikpMC
J5YRqKyB0SoAYYyEHc/bvpDPMYm8ARN3J8nyiIY2QxRIXn2k9RIDZogAESACRIAIEAEiQASIABEg
AkSACBABIkAEiAARIAJEgAgQASJABIgAESACRKCDI6BscGSe0xSzr/lspDP2olLsb6UKxNro5FSh
lCS6KhYNrBBtih0cLjafCBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBAB
IkAE8iIQZ8LGNNuWQBjLX2pdaOxnyGgllENlAwhlqGJu7WhsU26bI8zEbT6QUVUoxww3RIAIEAEi
QASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEi0CkQcD5YCWNwwmleWKhm2TWJ
y2Fg+QYhkyuVUJb9RkHRwjobHx2VwUDXdwrI2AkiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJA
BIgAESACRIAIEAEiQASIABFII5BhlkUKjhh0Mv4h+WeGbIZUtYRHNmmFTqQNeTS3rQU2mwOUQV0j
o73CrHBqaDARASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIhAh0Ug
4YAtONn7kZl6WyQSwGwssk2vraSzkcuqHifdNoLZHcBvhSpB3cyNlk7tujK3RIAIEAEiQASIABEg
AkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEi0EkQqNfA5WwKOnZNhBU6XbbpQKrccixO
yGd4yHagDHSOYyOijZiOHrghAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEg
AkSACBCBjo+AxyVjbuwkn+5W5IuTAGaU+dTcITXttuhBFX8Iem4Qb7qvEdAIn45GsQxumIgAESAC
RIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRKCTIBCjlWVR5rwdqkjkKK+U
vWy96sSqHgVCN0sstLHYso8MGGhJsVT3X3/jjfDCCy9YAT+JABEgAkSACBABIkAEiAARIAJEgAgQ
ASJABIgAESACRIAIEAEiQASIABEgAkSgQyOwrq4uT/sjZwyyWBhj5ZE1D3q6PksftLKSzxXgmDEB
dyyvEIHGOQshja3ay6cvH73FFluE1atXZznjDhEgAkSACBABIkAEiAARIAJEgMlPwkAAAEAASURB
VAgQASJABNorAnfccUcYPXp0e20e20UEiAARIAJEgAgQASJABIgAEWgXCFRUZlZtRoOMcxaaub4h
VFZiz0llbLEPgll4ZJ1auyIz7TZCmitEByoW+Rz1zaUWaBC01iBlTESACBABIkAEiAARIAJEgAgQ
ASJABIgAESACRIAIEAEiQASIABEgAkSACBABItApEKiv90hmI5YrhUpuqKsPXbp0CT179JA+NoSq
KnDKiG+2YGbwx+CYLdUb+dyQJpTVpwhECHFFpVLOpq+Mtch0HejogxsiQASIABEgAkSACBABIkAE
iAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABHo0AhUJlHP9cITC0cMnliindetqwvdu3cPfXr3
BucsfxbtrDtCPCsNHaObqy3UORsHZadhqHagoGUH+8pGSzYJjc624x4RIAJEgAgQASJABIgAESAC
RIAIEAEiQASIABEgAkSACLQdAvPnzw+zZ88OCxcubLtKO3BNgwYNCsOGDQtDhgzpwL1g04kAESAC
RIAItA4CygGDE44JU21jGu7adbVh+fJloUuNrugsXLGQ00IoK2UcA5tBI4NLrlZeGXN0V4FUFiHC
op2s1rzVoNHRosdEBIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAIbHgEQz++8846swVgf
eshUmIhW4qyV+Y8LXqYDp6VLl4aVK1eqEgno/FhRSgSIABEgAhsvAvocoSyyxSUrEkIPVwmRvHrN
6rC2Vp41lFROlefApfR0BRaHBrEMsln5ZQmOxjblvEL2Y1GOC+4SASJABIgAESACRIAIEAEiQASI
ABEgAkSACGzMCFx77bXa/VNOOWVjhoF9JwJtjsBHH32khHPXrl1l/cUqzbd5IzpQhSCf6+rqQm1t
bZg3bx6jnzvQsWNTiQARIAJEoG0QSM9+rTSxcsj1slqzkM7yrIFlmzHjNqKePSl/7DtCNltstAga
IvGsnLOs6Yx5vJHXfTeIaz1z9JwDwi0RIAJEgAgQASJABIgAESACRIAIEAEi0NkQWL16dejWrVtZ
3WqK7hFHHFGWz0JKt99+e6EilTfVfyl/RSuLhR9//HF4/fXXwxtvvKGSRx99NGy99dYkdMoBjzqN
EFi8eHF4+OGHwwsvvBDWrFnTqDyfAKTrTjvtFPbff//Qr1+/fCqdWoYI3i5duoTq6moSz2UcaUSG
e3T4qlWryrAorjJlypTw9ttvh+nTp4cVK1boAACshzl69OgwduxYvR8W98DSfAgQ13yoUEYEiAAR
KI0Ans2nTp2q30FYZqI5STlgIYeVXAZJDMbY+WGNYjavCGIG/9ygU2eDpgavDH5Zpt22XVP0T6Wd
4RCGEMqH+scH8hoWjQImIkAEiAARIAJEgAgQASJABIgAESACRIAIdB4EQCZ/+ctfDueff37Ydttt
i3bstddeC5dddln47W9/WzZZ3VzCt1xiuVz/5forBABwQl1PPvlk2HTTTTWSELrPP/98uOuuu8LO
O+8cDjvssNCrV69CLjqc/MILL2xWmy+55JJm2W2MRjfccIOeM9/5zndCz549y4IAhB/ORdiec845
Zdl0JiW8py0n4vm8884r2G0Q11/60pfCVlttVVCnMxWAfAZmiH5ubsL62o8//nj44IMPwowZM8IF
F1wQBg4cqNN6o+zdd9/VckyJvueee4bmEgDNbV9HtUvjioFMxx9/PHFt5YOJ2QCWLVsWMPhnyZIl
ukWVGMzTt29f3fbu3ZuDW1r5ONB950UA3xPTpk0LuL/h2WbUqFFKDLdUj/EcgCU4cJ3iGv7973+v
A5/uuece/W7HdYxrfPDgwU1blsPJYbDDWPMZ5DP+lB/WQp1N2+hiI5zBJNu/Kol8hj52I7FcIaHS
xkyLDPb4k8IKhFFDCXpMRIAIEAEiQASIABEgAkSACBABIkAEiAAR6IQIIOIZxPMvf/nL8M1vfrMg
AQ3i2XXKjZLuLHAhWvCvf/1rwBaEFqL70tNuI2INL7z+9re/hTPOOKNTEdBNJZKbS1h3lnOlqf3A
y9mf//znTTLDi9yTTz45fOtb32qSXWdRxsvgcmep/N3vfpe32yBIcU1/9rOf3WgI6KbglgsaCIS7
775bSYQTTzwx/OIXvwgjR45M1DDoZrPNNtOX/88++2y47777wuTJk0lAJwjlz+TiCqIknYhrGo2W
yb/55pvhtttu0+/zAQMGhP79++sfvL/33nth0aJFSpghmv/II49kJH8B2Jv7Xd/UZ4oC1VPcjhF4
8cUXw8svvxyGDh2q3wsghzFwc9asWeGAAw5Y75aDs8X395w5c3TGGFyrGPB0yCGHhHvvvTf85S9/
CZghBb9VNtlkE/2eL/eZwbhgIYQx5bbuYCtJSWjZCpcMEtmkRjlXyOAuSEAlV8PGwqWNgIYiyGhY
KIldJwLsRBn22io1xPDtCu0FWoHeSGqw2cIrq7roCLXV62p1epm66nVh3bp1oaJLvY5eq1q1Wqec
qV7bEDAFz+L6Ot1fsVZ0pHN9K7qFtWvX6qgdjPCrF7ew77ZyXeghB2mehItjDZDhK9ao//49q3X/
3brF2oy6rjVKyPdYZiMMKwQr6K/t3VVHuYVuvfUG3btHTz24a1cs13prKqq0HoyyQ6q3TVgXt3Vx
nvSa+nVaXomGabLD6OV1tiso6UEKrl+D9bsl1WLBbyYi0IkQ+M1vftOoN7iJMnUOBFr6WO518bON
gJl5/xWNZBR0PATef6Blj2PPmw5pBMLa699tJKOgYyJQe13LHssX99qnERB/mjmjkYyCjofAn96f
uUEajdHJJ550Uth1t0lh0MBBOgA4PubL7x78Lkv29CcZfprhaV+lnpGtDhwWffzOsbzopMp1B7b4
cRjl0KtAHZrMscqipK3qxw/maok+KvtHsLevnW7xIuHll14Kt9xyS8CUZ7kJL05xzA86eHLoUtNl
ozzmhknLn3O1a9aG+++/N9whEZAY/b8+CRHPIJ6dXM6NgE4Tz7ll61NvW9qWGyGdr0133HGHvqg+
99xzQ58+fRqpTJgwQafdvuqqq5SgOeGEExrpUFAagZkzZyq5tTFFTOK9XDqBjAIhUk7KtS1kg+m8
EbmPSKC2TpiefsyYMWXPlFBO+1ri+xPkM4jn5hDQS5cu1fegHXHK8+Zih4hnDHo49NBD9Z1zoeM0
bNiwcPDBB8t30/3hqaeeUvKukG57leN6wfStbfFdVwxXkHtO1LUUrrgPgHydOHHiesO/YMECjSwc
NWqU4oX7Vnu/d+O6v/7668PRRx8dtt9++6IYvPLKK6p76qmnljVABdHUuH+DzMYsAxtD8vOz3L42
hbDGLA2IXC33+7DcNkCv0LNGS14fTWlPWhfLuuCZ0s8h4IDzFrMidIQ0d+7c8JL8Ltx9992z2ozZ
Mp544okAYnp97z+oA8Tzd7/73TBv3jy9Tw4ZMkThwRYDSHCuIX/RRRcF6A8fPrxs+PSVhHPDwjvq
+wJ9oRDJTFPQdxRwinWg9Y2FENbVUMZLBWz0I7578PcUEIMDNqOoo8IN/4EvPxC4WNcEJ2BDZb3u
1zfUKQlcHV/U4GaHE3OddMKnVVGyeU29kdZCGIP9r6syEhk9UxJbyOV+/fuFsSPi9BJdAVVDqF/y
QZgpJ8gyscGLg25dq0JNTU3oImQ4LspVdWvDmrVrRNZDp6WoXb1Gw917d+uqL1RWr1il7XDyecMj
yRYQASJABIgAESACRIAIEAEisCEQOF4ImWOOOS70H9A/8/ISP+Dkxxp+0+nPM/nAT5tMHgUYMmwF
+tsvNh46+hMvltkGmuagQp2CoIbEfuhpmf4gdCfipQ3rn/bejLDF6NGdhnweISPKEQWK345XXNF4
wBSI52OPPX6jPuatdc6tkcHlxx1nJOdfZZT/+qZCBHRHIp6bOrV2OYT0hx9+GJ577rlw9tln5yWe
HXdMP4tIv2uuuUYjMEaMGOFF3KYQwEvJyy+/POseuNdeewW84H/ooYfCaLk/7rfffimLtsuCbMD7
rg31khfEBaa1P/3005WwRc9zX9Y35WU/3v396U9/0rV58V4Q7/Q+97nPBZBFbZX+/ve/68wKiD5q
TwlRvCBSm0JAY4DVr371K32RDRIX1/zXvva1AGKwMyfM7IApVBHxjGCnfAnvoRHxPGnSpNCjRw/d
3nrrrUp0FrqeMH088MOgHqxh7ukHP/iBXgNbbrmlixptEVx15513KonYXEK9kdMowOCCK6+8Uo91
IZ2WkJeDa7qecnHFdPy4l/5/9q4CMKpraU+SjSfEcUiCu1MKxQt1d6XUjbpSF1qovXr7qq/tq+t7
769SF2ihQClQHBKCk0Dcs7v/983dE5Ylm2xCQgPcgey1Y3fuueeemW9mDudlhsgjegX269dPPvro
IwVeDbhl0tR3u3z5ciFQdumll2p9PXr0+NvG7vq2vbHTf/PNN7oUAp8R+/WRRx6p4wvr4TXy3YBj
jV33/lYe8S/KE+xfxJL47WKkDy5t0ljkb65BQLOx3o+GtJXvLA22CNByTsR3lNgbl3YpKiqSgw46
qCHF7tU8fG4Een3Hfc47aLBCw549BZ9p4MFvDoFnfn8feeSR6jklyx44cKAeE3RmunoZikFHgOHS
UkR4hlAeWhoH3bF2TTqPM7FiyfhRl1otgFlQgAVGW3ncTgCtUFO4KuFJ7ICFCj1qd47TntL33qa6
ausO9ePNTugG2EyAOaTKKWFsYiXaDC9nlyNYqtDmcBfUKu5gCcfNh7oBUvNjUwkv6AqXgtRREaES
GeaQkspiiYmKkTYtInVgnBzbTifZrcNjxIElQHIxWPLjFB3WQrq0aCXry0vVeic01gLAYyOjpMpZ
JYWVJeri/tvq9UI39zKPB3M4PJrZThe2jhCHhFgOy3CXtnhY4TECqgyxPLyNx7Pndi0PBX1O1nWP
g7T1zHDe7TlRCRDeJpsDNgdsDtgcsDlgc8DmgM0BmwM2B5o/B8aNnyDJKcnq+QtBpbrBuktZBxAx
AWOKYpRFCDm7ILRRRtAjpIG4o8cqq2FfvZtx3SjZWAb3md6lvxSaCEBTbvBk1gqrq7easjfr31n1
Pr9HRXRKcrKMRxi1msDnCRMRdtN+5uyguzxrPdzDPhcOw/Tk5CSZePgR0hjgMxvoC0DznD9vaF5r
jhQIoMx2BwpU0+OE3lz0RPGmmrzi+vTpo96lXPvUBp+9ubVzn+MzPWHpad/ciB6BBA98laZ7q530
8CLwTMDWAND1AZt920kAjYp7hkjmfRFwZRhqHu8p8ORb17547A1Ac73ImqLPed8XIyAQcJ42bZrO
UZ577jn58MMPNRS/d7r9bX/FihX6TviGhDb3SS+z119/XYGA+fPny3nnnaeAAA3TCDTU9T69+OKL
Ch6YqBIcI8ycztThuyX4zNDeJ5xwgj4L3+v7wnFdfK3pHgi01MVXrhnNPy4Tce211+o7T6MaQ/QE
bGy6/PLLG7vIJimPa7wzMgnDbhNk5JjrHXabfdk77DbT1rUuPEFBljV16lQNMUwAkzweOnSorjfL
CACcD9jgc2CPlMuX8P2ePn26frc4plC+SEtLa3LP+k6dOumzC6yljZ+Ksi/7HL3zachIAJpRw2jg
QUMyUnMHoGlEx2dVE6Wnp8uPP/5Y06V6neM7x0gcnB8ReCZAz/eMwH3v3r3VAJQht3md3y0ahBCz
DIiMuAaVgVEbMJ91mroEGrPzP7QMiPZsiDAlAWgH81E5wSTMxD0lz04oJmXBoUE6QDtCrfDPfPDN
gQjk0vrDCi4uAIpFJ4tOxKPmR4RhrPlxZmQH/Uij3fRodnnaTybzw0OG09qRVof8sLeNiFJLkpbO
GGaUIOThS87OQmuvkvYJuo5HcGW5lT+/QK0tKqPK1HKgY4eOCtZvKHNrmDWG4mb5VR4PbD5sniPP
bbI5YHPA5oDNAZsDNgdsDtgcsDlgc+DA5UBEZDjkFV0NyZI9jKjlUTSq6GLEBj0HXgGM5ikjv9GI
WC1SmRdpSASrIQFCvsMOZRrKfACbdYtLmgoCYVAwFZrMiD+m4y5J6/IcW0V6zuFao9evNe5XPwQ3
/An1YYiwZT/zputz5H2Yl1K5MTqWAaAZzo5EJWpNQGtj1NXcy+C6zlRmUadh1nhmm8kPwxN6hvPP
UF5enoac3bhxo5x11lnm9D679fW83Vs3QgU+la8M7U8PyPPPP1+VsAzbSJCYHi8MN3/MMceoVyY9
hehtc8UVVyiYUFd+euAwPxW59KqiJxSVl/S0opcnwZT33ntPPZB4zxMnTtRwwk19/wTmfQHohtRJ
fZ6JWkDgmURvPIYx5b0TCKFn6q+//qrXGCKTQB6JQCLBafZ98oMek/ROp17SH0/8laUFen78PRPv
NHtr33ct6EBCmNPzmescm8iOBFmpOyVR3/r8888rzwlonXzyyTJixAi9xr5Ej2l+J7OyshRIue++
+zQ9eUqP+6OPPlpDVJO/33//vfJ6zJgxOoZQL02vYgISXDuT5dJjm+e/++47Bb6ofKfHF72IvYFG
bcAe/qxdu1bBzJqKYT97+umn1eOVgB49mHlM0JPvLUG5uoggHQ0urrzyyt2S+usz5B+J654zKgXr
JmiTmpoq9Pzl8+R7zXf5zTff1HTz5s1Tb2mO0TQm4vOjzppjCj14t27dqsYFZyBiiyE+c0ZqYJhm
ghqNSbXxtbZ6AuVrTWXwHrke6m233ab3vSdjqXf55HH37t0VcL3rrrvU4IARQ7jm6ymnnKJ9gen5
nLj2K6O6MlLI6NGjtRieo3cncQ9+WzkGcn7TFMT3l2Aexzj2Bb5T3JLS0tLUgIyekvzu8ztTFxGs
ZltNyHHiLQSiCY699NJLGimBW35DOAb764ccdzke8JlMmDBBRo4cKa9hKQ8aKbAsrj/NyAIkhmvn
Un5877nWLb1NzZzNH4/ruo/mcJ2YFcHmGTNmKLbENnF84DjDsZY8Zv/iO0A+Xnfddfotq4lPfK/J
O37vOA7wnee4yXeeRCNBeqUzQgjXIeZcwvv9YBrycvbs2doX+I086aSTIDK6/X4HmWdPqSYAmvjd
vgJAExPkO1UT8V3h9T0hejPTWIzfGr5T5BejYPAd5neU30/WQwMczsE5h3zyySf1+xJQlBLVDUAn
QF0ByegFUI8eAH9VosoB72sQoqe5oYgIwnLA3A9G/wBZuTxF4Mizx8T4l5Kc4glPTe0EUluZrIKb
8JetMG2yquHdBGtr2WJ6ZVfBwzkM5/gXUVolYcUVEltYIS2rQuTo2PZybFxHGZ+cJoNDE6QN1oqO
w/UwwO7R8OQuKyqQaAj+rWGZ3gsT8sM7dJLUEuT/c7W0z8yWqJV/SqstGRKfvUE6lOVL1yhYsFeU
imPrdonJL5KyFZmSPW+xlCxeJSGZm6XFynXSesM26ZeTL702b5fTew+Sw9t1kjYIxx1ZWCJlzkqp
RKuL4JGdh22ZI1T/AJnjbkIkHHg0/6Lhac4/guT84/OwngnvGmA6PL3558C98y8E98M/rgXNv8pg
h/4hsU02B2wO2BywOWBzwOaAzQGbAzYHbA40Yw4EQQ7gusv0SSby6yWe6bElgFlykcoEFJA88pjZ
VSiagDDOoxSUgVJwkWVqeTjnUsBYa7G4wQtI44bbdHOo32rU/vXrz4uuufB8f+9z+1dvsu+muXCA
XiPmj20y+75b32t1tZ9KZHqRmj+uv+hLVC4SGKZXCxWGBKdIBCfWrFmjisRrrrlGwS0CTvRapYeQ
AVNry09vdoafJgBDBTbrp/KZSnxuCYKxDoKC9HK95ZZbFDRk+Ma9QQaApkco20HiGrr8C5SocKXH
j/EmZT4qaRk6mcAzFeoE7Ane8Y/7PEciAEAF75133qmA3scff6zKd388qa0sLdDz4++ZeKdpzvtc
y5hKbhrksO8SyO/YsaM2mWtH8ztIb2j2LT47huwnsb8TVCIRFDVAF723CG7Rw4/Axw8//KDP4P77
79d+R/Du999/rwavLrvsMlWis7/Sa5v9kfUyigDrZSQSgiyNTewP9Piuidi/2C4aJ5C45THPE4Qn
KF8XESRmf6Xxhy/56zMEoEgEqegJTMCPQBNp4cKF+u5ynshzvEZQiWMIwQjmIQD5zjvvaHozptDA
xduDl6AVxxUaXzQ28MyKa+OrNszPT6B8rSk7AVUCeSRz3xzvGjKWepfPe6EjG4nAEw0gzLMhSEqi
AQWfDUFS1skoJTTG4Dvx7rvv6jnmITBNo4OmIAKOrIv9LS4uTo0VGBKbIDj/uM/vCa8xDdMyT21E
r2Z6zN5zzz3ap7i0BL9ZNPq5+OKLdZ9bAs+19UPykMYO/C4RfDYRVPi95bhNwxT2ab7jNOrgOMPv
E42ozDP1x+Pa2t9Y1zhW8W9PiGMbv1smTDL7lAHYyWMS+xcBZPaVtLQ0v3xi/+azoFEVo32Qd4xU
YYh8I685XnE8Jw+93w9+1zg/4PjKbyTLYv/19x005TbGlt9qgqc0RDDjIsdUjl80QmI/aa7E58Rx
l/z1Jn6vaFjgG0XIO00g++QJjTD4XE34bkbYoJc4jRK45TGJ143RBvPVReY7TaWBpVNQBYPqELAH
8iDPVD0Ak9QlvfAbhO8JNRLMVW0y49E9aDYtjplwVFWJMNKYPCThA8mJFmviA28OxEkMB+9wgLh8
gfjS0PIlISIOlkQtpUtyO53oOF3B2vYdeVv1I8+0/IsPDtMPW2x0lJazeMlirPuSIf2jknSCzntk
HUUAml0M350ULzGxMWCrxRPygR+A8NgwKyRFSLAOpFUI/80XNLxdZ7VyykA4b348goPDtY38iOia
IBXkuk02B2wO2BywOWBzwOaAzQGbAzYHbA4csByANzLVr2pNDHmGEoIbckYQjEu5hQCh5wgQe0sP
OFRSh2YV7axjWhdbobVprIv8WgSFP0h5PES+nSXhACesMN4769rr9VtNP3B+7Wfe5H3OZV6QRupV
xlvShObc07DbgYa3bqTmN2oxVPQxRCABTe57k/F29vaC5nUqrKkYo9eiTTVzgPolb68240lqUlOx
yj/q5+iZRACLQLAhri1KAIZ/LIdrQXJLpSfzBJKfHnkkhlTNzMxUwMGUz60BeOjRx3Dq55xzTqN7
lHrX19j71MX5MwpiXVQO07OOIWdJ3Oc5461L4J/gSf/+/VUvSpDUH0/qKovl1/VMmKa5E3nBNbk5
HhCEMGFRjz32WPUSZ5QAejczzDQV7Gbty9rui+OEAXbpfUvQyYS3Zl0kgtIEqjnm8I9gNttALy96
+zO8Oscceueasmqrs77XqH82unH2A+/wwb7HLNtc53tNMKcuYj+bPHmyehjz3TZUnz7Dd5SejtyS
B2wvQToamrAvE8jju06gmkRDAnqqG+IzI+hoiEAggSl6OjbmWrOmfG69+WrOBxJpIlC+mjJr2+7p
WOqvbI4nxALIexPOniAagUMDpnGs5vOhAQf7DIFeejNyLXYzLvkrv6HnyfP6Ul15+DwI3nMNb76f
jJJCcPSmm27axfiH9dbVD+lda+6d4w2/a/Tk5PtPD12CsSyDz41GSiT2ZROSuTYea+Im+iGo/skn
n2jpjA5hPEzNd5v3EggRv1IMyZOYIbg5jhKA5lhJQJY0duxY/T5x3x+feI3jMD3ySfSS5ffcEN9r
4mq8zjGDxibedbNeGtOYMZVAP4npOCdpyrkB+xwjOHBcolEcidgb+xYjPBgve73QzH4IANOIgP2B
3yUaZ7B/8N0g1pqenr5HLSZPaJREMJtjBwFmjuv8Ho8bN07fFzPO06iOGCVB75oia/g2xMxFOUxQ
LUEtgvWrmgtLr6Dn9bSlaKDyAQRVBrBpLD2sR3rSo+jABSbhERUTwQBUc/Nz4R3cShLR8bK3FFtZ
/oZfjQaHetl2El9ATh55wl1eIclh4ZLWpr10jIrUFyF6R7YOQk4nQGF0yNbhCL8VFyNBWGyZA5Rg
beTS8mIpgWdySUiVbC9B+Gz4JgfHREihs0KC28RKOfLk55dLdkGRFFUVSxHyFbSMl8rIMElq1Vmi
8HIFrd6Il75UIkMRWq2iTNwF5RKMj/LG7E3qOu8MgU05vJ1dAMqdfFKhEeIC882dOIOsiYebDAdV
OKw7NPdpzosb90ryfBhCuLgbCeC6tbGO6f1skSnBc2hvbA7YHNiFA7QcY3gLCio6Juxy1T6wOWBz
wOaAzQGbAzYHbA7sBQ5QBMCfJQnwV2FinfIbucyS0Iychi0FI0z5V65cJd9+9738tXQZLMGXaWN7
9eopvSGEjh8/RrpBqRgEmcHNiFYo2gKeve4J5RjD44bUr41mwfyvjcWPJZnilFVioPV7tWr/3yVr
LLZZO/V45srWRuK59YT4G3if21fqN/2wMToTlUO+YDO9PnzP1aeuQNdg9i0zUNDapGtoPb71+h5T
kUbPLQJDBDYMkVckE36b+1S0Ukmcnp7OQ5v8cIDKdXqB+SPVfeEiwU4SvdDat2+vYA2PfUFVozDk
NVJd+b3DEnO/JnCBCmeG9jUewfT+vfvuu6sV3lZNTfNLzyp6aTKEsjfAUJ/aqJSlwpdKexNmlPkJ
FFMZTFDQm4/c9wYK6XxiyPDLH0/qKovl1PZMDLBp6muuWyrOqfQn6GvCe9ILjeAzeeDdD7nvzU+z
v9OzyrpLbyMMXvMuw/CBSnaSAUHoictnSCIgQm9DeuURmKBXqQFbNEEj/FCPRCCY7yFDUFPBTyLY
S2CMIba9PexNlQRpCO4EQgTTaPjwGsIMG6qtz5g0Zst7JlBlxmnykft8lyZNmqQejN689X0+3u+C
KZNgNcE8gl7e75C5vqdbw1eCdYbo5VoX1YevdZXle9/ePGLe+jwD77rMmOE9jvA63x8DrjIctwGJ
GF2C308+M4JWBHPN2Odd7p7u85kSvGM45cZa89mAwvSO5x/v695775VFixapUY93m+saJ7zHA7aR
Ri4EpA2Yy7LYF711ut77vO6Px7zWFERAnN8r4/nOfT4/HhtAms8ykHDLvE9+t3hPNEphSH0SwXXv
MSYQPjGfd3/mvvf4a/oo09U0D/A3Hvv7DrK9jUGcj/C7QhyQXrx8Rwk8kwcci2jQ0dyJEWTIJ77T
NCAkHsF3nQaCNOjkuBCoQYLvvbKPsH9x+QCG6x84cKBGDuFYzdD9fAcJ2JOP/CbSmIvpAwbsVWDk
D6NRW9Ij26B7HtGf+xRPlSzUWUNuM5XDOm+uUuykvoC/hpAIYZx35O5Qqxteq2kSalLvza35IIQE
IVQd2kVrDH7EKyvKNZRLQmGeZRlaUqkdM7Z3Fx2cUmLDVfgJc4Tqy7t2xXJ9kTthIsoBq2xHmd5G
YVSVWg2Ye9qWnSNFhcVSlRAtIZhorF67VgcKF6yUKEx1apWi9VQAgDYvJEPK0OqNHydOjvhic0Bg
SJn40BhTtL21OWBzYC9xgOMGhXpjtWyqpaUcw4pwHTKbbA54c+C6Mw+TiQf10lP3vfJ/8tuSNd6X
A9qPxnqeA7pZAtScJRlSBUE8NipC3nvgMs1/9T/eltXr6147J6DK7ER7nQMzr31VUmItRaB35SWY
DyzdvFqe/OZ1WbJplfelA37/8N6jZMZJN0h+aZGMffScA4Yfoy+9RPpjbSpvckII3QGPsI2LFssc
CAMVMGBsCkqF1bwD89wcKJzyGc0IdMZTT0oKAITZUGrNf/+DpqjWLjMADtAnWYUwSmwqh0GsA5Jr
gbkoAJdV0DMncFwGeeepp5+VN99+dxelAavb9mO2/PDjT/L8Cy/KOWedIVdfNUXCICdRXOQ60MFA
oFknJUD+NqR+0xQVMtEe42lt2mqVzYajfGtTd/1s/AFC9eW5G/JsxZxNUjlrvTjXFYijZ5I4hreX
sBHttX9U/LpBKmdvkKpl2yUktYWEHtJBHMMQBSza0byfeT36fEP6XGN0p5qAZ5ZLcHVPAejGaF9N
ZTQV4OxdF0EeKre++uor9TI0AJB3Gu5TYcr1VwlQm1C8vmn2tWNfLzxzbAASc8z78t431xt6v/RK
ZghtepGS9/SOY//cVX/nv/SG5qeejcAOiXUSqCXISFCM90evvcZSMPtrvQGeuebpnoAvBHiYn+uI
mrVtGcaZyliGK6VRBZW19FAkMVyr8bDy1zZ/PAmkrIY+E39t+TvOE3glSMoQuOyLBGSNlzLPU8nO
ULjUjTLEJ9ORaERBJTy96BjG1R+xjK+//hoGdeNVn8pQsTSuIbDK94FbejpzfXL2Rf4xjCzXKOaz
o7EEPc4aG3xOT0/X94Htuuqqq7RPETygNxmPvUEh73tjfzGhcr3P+9un5za9jQm0kGrrMwSLqHPm
+8pnQP02w2uTNwQaeO3xxx/Xa3xn+S4QCKMBAcvlmrnst/6I+vYbbrhBwXaCHFxLPtDxx1+ZvucN
X73BZ980NR3Xl681lRHoudqeQaBlmHT0UJw7d656N1NXyRD2xA74vAkaMTwu1/fl+uiMILIn45+p
s6Yt+0ZjrvlMz0qGvyeAzvkBPboJvJq5At8VOgGR6tMPMxGRg7pcejZzfDbEcYLgJPszxwMT1pzX
/fHY5G2KrXmvTNmcC/EceUD8iMRjftPqIt4P3wt6sU5GNAS+5zRI4HjKb3FN5I9PTMtvOMdj9mMa
y9RnPKKhAoFSfiP57tPbls+C84SmmhvUBDyzP+1LwLN5RgMGDBD++RLfB37nSA0FoGnIwOgUnJfx
2XD8Z9QQ/pHIR57ndS5JEagRlGbGD8R5Cw9GORwveMbSImBfVRg4MsIar8MfVvPgosPawS81ESTm
wb4eMTN3YClfWeWSXM/AoOn2wo8b4chIcFDelcAsUhU8gUNCQ6Qkv1Ci8eEcjpAFjJ++bN58Dbsd
7SqWRAC9yVDyh2EQ7+COkA3L10l4RJhaFOyoQPhrPIzULgxF8ovs6Izz0XGyJGOLtJA4iS9wSeuo
WImLSdQJ1IaiCikurZQ8eDm3C0mUfILYIVjDucCaiGeWF4HRiRKVEonWRcrcHRv1hc5BmO6QFpHi
xH2EokMVYk3oxOhYCa10q9WfO9itg0cpPJ5p8VMaLkjrkoRyrBGNj04QvK/ZafLxcnGryiIK6lX6
lKr5g6YoudkHbLI5YHNgNw7Q8INhJcxElkYhNAShtQ8n2VxzhIMwDUZssjlADoSFOmRk/50CWM8W
ZbK8KkfyHMn1YlDrxDi5ffIxmueSW6bJJmcMPrtu2Y5lHcqK8uWH12ZIrwmnS4E7MCvoelVuJ95r
HKDhmbGE5ngTFRYhQ1L7yAtn3SdXPnebLCzJ2Gtt2VcqcpZWyLrHf5LU60bvK01u9HaGYG6YAuUP
/1LHjJb/3nGHFGaua/R6xlxxucRBeP3fq/+S7C++kDAvkPv/IITmRUdJr2JEBrJpr3OAQbLVuBci
jopxRnDzREVSgU5bZclolRWVctkVV8m8+QtqbSvHpDfefFuWLlsuLz7/jDhCw1TotEJsMyvKU7EK
QgR3AqxfBUUruZWNIgkBbconkNPUK5ttx7F1Kyq9WAA1rtdUv+at9W72r4v1eeaucqcU3/6juLYV
i6NXsoQe3FaqFmdL5Zy54srK1+dW/tEKRO2K0WsuRCorfXmhBP9vpUTPgLI+ggA0PZtJzeeZN3mf
U6v7Pes3/oBnU2pzBqBNG5tyyzCg9KojkEfjXt816/766y9dj5c6jMMPP7wpm7LXy/YFkr1BZjam
ruu+DaZCkAArlf+GCMoxrDWJ1/nH6/SCpBcVgQpvxTWv10TmfH3ymzwsj4p7hjomaEWPKyrMf0DI
Y6YhAE3FeFMSAQrerzfwXBe/a2sP16/l2sMM/0olPpW+XN+SoD7XNyVQybUsSVQS81xtRI+jmnhC
xX5dZdX1TGqrt7lcu+CCCzSEMNfepkKaoOZ1112nzeO1xx57TLilbETg2RihcG1KggccP2oDPBkW
NiMjQ/U41JcyBDHHXvb/k08+WbjOMec7BLMJjNITmfLYlClT9Jmyf9JLsrGJ4x2Nb9hHWDf1TATD
GFKV/aomor6agBE94AIllkUwm8YR7C+19RkCQATm7rnnHs1DQI6GP3xfCUKT+BxMtAoaERHI53hF
njGN9/rOrMubTP1cB5rtIVBKD/fGJF++BlJ2Q/haW7m+923SmvPc1jYWm/S+W5Pf+zy9Ns04wX7M
+yegyOdOPICGB/yGcjwhCN0UREcchvemoQOBL75D/ogGIxzv+G2q7b2lsQffBUbGIChGwJXfNGME
QsMQri9OfSzvt7Z+6N0WvjsvvfSSGlQQCDVEL9Lrr79evT4NCGrWMvbHY5O3KbY1rfPse4689P6G
19YOjqFcSoBjK79ZlJu4Ljyjnxjy7l/++MS0zPPMM8+oQQC/XxwrDXmXwXO+x+YbOXXqVMWvuB44
+yy9smv6Dppy92TLNtBzl/Vw3CfxnWC/Ybjp/YEM4LwnAHRubq6OGwzXT4MijutcGodzOEaroZEd
5068zvGF7x7nPQERPgWQICUE3w/uuaqc8Grms7AAaG6DAEYGUf7H83JrpGbkUKt3nAqLSaJmQBFp
/CIzfgg+U1mAf1wqmudJLpdTnBVFcirCJQSyKLWVq+G/ljJkJ/hsjp3wdCbRYoQTm9gKp37sD2rT
VhfQrliXhQlwaxnSMlbTlG7MhUVcjDgBJDMGfS4Aa35wNxUWiSPEIc6WcZKxNkPcLaL0JV4y/w9J
RNpDkJ8PJSKPlinFshX3XwRFXXaX1jrILli5Qi10gv7K0HITS4t1UE1KjVf+fbwpT8P5OGMANPPB
AmymZV5FKZ8FPLWdWIYbk7NggOy8l0Ip0Ze3OLRCItABkqtCdQJQUlVuvWAAqdkxitFuvnBhnqjp
wS6LH4YvVWqBgEmF2wpD0/AnYOe0OdC8OGDWRfFulbdFm/f5mvYZCslYhnESROtBhtwyihNOsmiZ
W58ya6rHPtcwDjQ230c9stMS0rRo3cyXzW5A29EDu8mtk46qjmbB/nLKGeeIK92yhg+oECTq3K6l
PH2jtSYejR1GnzdVyjB2h2H8n/vuY1rMqDOmSKE7wI9/oBXvp+myvq7fc6yLDdEfHbFbkor3V+92
zt8J4/lM614asXCOQSGLgrlRPt4DJcBPQSskNxiTAJvEeD5ToUjBtSnB58r3An+WgTyaBaPG7Jbs
hXWZu52r6YTxfKZVKpVVnAemp6er8ox9h0QPsfnwIonA3LMxadIrLyv4TC+FcPC9U0FhteczBcg8
KB4OdPD5hax1jcnygMt6/6NPJD0tbZf0ligHSU/JSGW0NA2Sxx5/Ql5/400I4T1k4qHj5X+ffiaZ
MFiIi2uBq0GSB6+fjghXeOyxR0MJM1v+RIi78yadIzdcd211eZRFKO/9sXCxTL3tdtkEC3hSBygk
HprxoPTt3RMyYJB88dVMyYMwSw8iwMZIgTaxWRAQrY1lRV1t6aySowqUngQmMbZGqGTJnvrV8hnH
a6FY7tUdIcJxPhBatOQvuf7GW2UdPCu+n/k5FClWqE3vvATnr77+ZjVOZrmHTTxUHpnxgERCYUH6
+JP/yvSHH1N+UbaacOg4efD+e6QF5DUS67j51jtkDaJdJSTEy5TLL5VJ5+y6vq0mrOWH93VcDYrZ
+jzz8veWSfl/VkrUnSMlFOAzewPvp/TlP6Vi5lqtPeywThJxYb9qnlctzZaS+2dJ+AndJPx0KmZ2
8ryuZ27dzq59rimeuS/bauvzDak/AwDSaSed6FuNRjpKT0/f7bzvCc75qPC/+uqrdwkh7ZuOxwSp
Cc49/fTTqhCrKY33OSpZG+qd3JC89clTn7S8JyqU6Z1Fz0Uqx+n1SKLXHb3vqFAj8EzF8P5CVN6Z
+Z25J+9z3vs1XTfn9mRLvRaVr4GOmb511Te/6gfxzbC8Xawl8DjfNYpg3/L39NiXh5wvmnDjdZXt
m9dfer7j5IMJd+udztuY1Pt8bfsMB1oTTwItq77PxLctBDYIPppn5HvdHBNoIPAQCNUnLRXZ7Cc1
8ZO8IWDi21/JGwLKbHddxLQsn7pVb+I58s7X+z7Qsgn4sX0NAfb+85//aJsIwPLZ10SmP7KOzz//
XHlA4L0xyF+f4b37a09N9ZKH1EkH8hxqyt/Y5wLhq6mzKfhqyg5k6+8ZBJLXOw2fGfsi3xNv8nfe
O82e7tNrnF61BnyurTwDPjP0sTf46y8P22/Gb98+yfslmTEr0H7IfOyv/AYaoqf4e++9J3y3ON9g
H2JUS4a/N7Q3eGned1NnINv65GF/ox6BHuS+46lvXTXxifpu8oVh9/nuePPQN39tx+QlyfeZskye
a6q5QW1t2h+u8f1ihAMaXdV3POb7Q33kpk2bFOfgN5HGWlySgrp2RuWgkQCfOQ2NaNBQVx8iT9mP
CDo7ohIlFNtg4KhVVZV6PgggsoXVWvI+9RAk6gWIL7shrwahXZbnM993j46g2kAY6dVgHYKq9R8C
KzyguR9I47S2Rv4xnr1OC2vV8HEMXVpaVQYUPViqKstxmy5pk5IoLaIjJaeySAoKCyQIIR3j2yTi
5sskKRHnsYb1jux8gNFRkgShaGH+FimLcElhcCXyJks5QqHmRoTIEniktQyPkrgSTHJw6yFIHwZG
h8HjOH/zNnEVlEgkAGSJjAFTHFJQUo5JT5XEhMaq+3o7d4x6PufBOyEUFgH0oBO3UyqCK/Qld6Ac
vpQxHDjxgnaMjpG4hCQJx7Mg6F2Us1XB56yCSoSOyZNS3FNoRLhUAQQPw9ZVhbpBgK91G2IUOp4B
3PPM9Zr9Y3PgQOcAP37GwpQWWQy/RCszKkk4SHNdHgLTw4YN0/XbaMFFK1kO+gxDQsMPKleWLVum
Fp4UVklMQ0v/tLQ0nShyYsXQXQxFYoiTn2OOOUao6GJda6HEpJWoCZ3EdEOGDFFLQL77FMA2bNig
ngJMa9Pfx4FDh/TUymltz4ksDRTatUqSLQCNK73CTMTFRMqFx42SPp3aIVpGpGRu3i4ffDtPQ3Qf
P3qgTBhqlcPC+OxzKsPktc9/k3suRvjdKafLk+9+I107tJKjDukrRSVlwvDehq4+bYK0b5Ugn/7y
p/z0x0oYTQXLGROHyYh+8JRMiJWV6xDC58cFMm9Zpslib/9GDow77jDZPshSoMwJQRhUTMxCscwH
J38xK52SmyrSOi5Frj30PBnYsad6wC9Y95c88e3rkl1ohZ5i8zlxmzT8BIC0IyU9ub1sK9wuny3+
UV6f/YmUV1XoHQZjMnf2sOPkyD6jJTWpnWzM3SI/rJwrL/38vlQ6qyQ5JkEeOvkmTTvjyxdl1dZM
3T+izyg5dfCRsjZnvTzw2fN6bnTXIajvROneOl02oJzvV8yRl1EOPfQZUnzGSTdqups+fEimHnmp
jOg8SCb/6xZZtW2d1JaXmXgvF406VdsZD+O+n1bOkz/WL9XyDtQffgsY7uruo6xQWRvxDfoK35PD
8a0YP368vPXaazLAAz7HYq56yIUXSBtY/GKWLxsRZmsWBIvi7Tv7S3cYV/U77lhJxBIywfje5UGo
XALv5sUAJZPT02UMvHxiIKSSaBUeDIHx6zvu3IX9h2OMm4CwWUHInwXh5Md/viCVEHBJPSccquHC
EwBMupB3G7yz5rz5lmxCW2xqDA4Q6OO7gq3uYI6P95sHkMA8/6z9teD9m2+9o5VyPeeL0DcugKFL
UVGhhnhk9iIYqkbDk53KnJyc7Qo+M8/xxx4Hw9l0LZqGyBRwbrrlVgDO7eT5554RF8aNe+6bJrdM
vV0++79PtP5vv/1Oge0zzzjd0xZkpGCEjQvCIltH0UMtnVkkjtlulRdZhyFm02NeQ17uUzBlQRQ6
60EE22+9/W7p2qWz31x8x6685noZBi+Re++6XeZj3cfLp1wrhww/WM48/VTZjvna1DvvkdNPPVmm
3nIjDKuXy6QLLpY3/v22TLniUgjt5XLjLbdJCgzGXnz+Kfnwo//Igw89CqOR/tKvD97FPabAn3nl
j1niGNgaobaT6SNfzfOI8/pK5e+btCXhk/piaz0XnqCHNPNUIG/YaT134Xldz9yqwXo21j6eTxM8
c1O29gt2Cj99XvtIA+tX5jTwh8qZQMFkeuEFmtY0hyDv3qSmqo/GdvRmpJEvHRSM1wY9LeilQq8a
mxqfAwF7q/ipur75OaZ76wHrqxT10wy/p30V2oECzyzQN6+/SviO+1O8B1qGd9n+eBJoWfV9Jt51
N4f92gxMauNNoPzxl4790hd4Jj+Y3l+exuLX2LFj1aCJy7fRu9JfP6VnLtfhJGhEx4fGIn99pr73
TR76e0aN1db6lPN387U+bfX3DOpTBtP6e2b+zte3/NrSN8Waz6Y+tp86zprIgM7mWqD9kPl8x26G
uWc906dPV2CaXv2TJ082Ret2b/CSFRFMbipifwu0z9XEJxrv8F0nr315WJ82++NlcxpH6nM/zSUt
DTYZsaIhfOQzJaDM7w0dX7kEBcOi0yOa83NG56A+myHLaSDK9IGQeU+ZvAoezyHYIb5CSVYNSIAy
WyV5ysPGFB3khAwJyNKh8j5AZYb+YnhtRrqmIMhfFWDZEo9igUI8yWz14G/8oUUQmejCmmf8iLtj
4yU9PV1aA7hheIrc9X9Jbl6+xAMgduFcNJjPF4Sg0Zat2ySpcye9F1pm0BogA0obPoB8hD1kPP4Q
gLy01k2OTZa0tFSskxepD6ewTbyCwsEQtEi0HCDDI/ACs00snw+H6xYQ2FqxeZNaAJcChGZdSKQv
eSQAaz5sB9JzS8GMVoLlRQXWdQycHBjCypJkI4CoTJznfbFs/lkqi7/xAdhV2xzYhzhAyzDzcSWQ
SCCakxMznlEYICjI0HFMx3Ai9A7jh52WR/REo0DB0DF83wlg831niC6ulcA1NwgkMHwMLV9pkca1
W+jlyvV1WA7Ba+ahMoahThhmih8EhhChRxGtxwiCcxwgGM3w4AxvZjwI9iF27xdNJYg8qEeq3sub
b74pHVLTZPzYMXLaaafJyx98IfmR7fUa0z1z49mSFBejz5DPvmdaG7nrwmPl2dc/kOjIMEmI3mnB
SiuzHfCmCt/yJ8DqK7SM0uXfy7bQ0Ti2PHCT8xZLTnxf5A2XicN6SQjG/Ptuu0kSklPlZvTL/l07
aF389g3s3lH6dWknT6OumYu37Be8319uok1SKwWeeT80SnFGuqVjYlv594UPS4uIGCnEvIMTy6P6
jpHBrXrI5f++WzJKrGc47YRr9Tzz0qiF+S4fc6YMiO0s13z6kFQGOeXBE69XD2Km4SSzS8tU6doq
TUa07Cvnv3+H5BTlSnJ0vHRMaivjpafkV+agnxXJMX3HyaCOvWTe17MkZWGljLvoOAWUWQ7nPT1a
d9K/nuHt5YavH5NwgOdMT5ox5ioZ2nOI7m/893y58NaLZMoxk/W4pryYVsoNh10AkNwKycZ7Oar3
aDm06zDNcyD/cO4Xge8CiXbb2z/7XGCppMfFsOYuwby1Lf5Oe+JxCWe4MggKXLeXQHMCQkx9gvDc
FRs3SS8Axodee43OdWnRSoFiPL5xYzFWrEM5wRmZEt0yBVaUlvUmvzGcu34I77QT0QYSva5paMXv
G+eYPWF4tQrlZLz+hnTBHHkCAGun5xsV7/lGpdzfXV5BKDgnQjrbtIccoIiFP+JrlhSGWT7CVVlP
h2UbyFHkrXfeUyM1nqWcQBCXjzEWShfOabgfg4hPJB6H0vgVRMO2t999R+684zYcIRHy5ezAmICl
RiZPOlfSUlNx2i3TH7gfHr9LpLysQh5/4kn5+ZdZ+r056pjj5Z/PPS1tocx59rnn4en4hco8NNq7
+87bJTomGl4G/5WXXnlVLrn4Innm2eflphuug7fxBKs+AszVN2TVz/pwVtti7fCgblqzJkOeevwR
GPEVyi237WpEYXJzfjVh/Dg579yzMa+K131uV69eo0lyc/O0v9PbmZ7QgwcNgNzWUkFpJlgAsDoD
786D992tXuRXT7lcPoCH+n//+3+NAz7zxvEXyDN37SgVx5iOSG7BtfrMeeRAeNNbEUqUfA2lbMgy
9Rc7iLCFtZ+rFmz28D2wZ14Iw+1Jky+UyeedK1/C6z0jM1PGYE582223SCgs3dkrv5r5DUD6NyVr
fZYMwrqztwK8b926jWTj+3HeeRcg6sd5UMZ/Cnl7q5x4wvFy2aWM6hCE+fQGuW/aA8JQzK1atpLL
L7sE68RNwBWRr7DO2RtvvLWzzJtv0DL5XZl0/oUIG3cGPIU/1X46Y/qDyGNxg/fLPk/Let/7Vwaj
7D0hIzsEUkZ90jbU6zmQdtSUZm/UR7mKf/S4IBGM3p+pLuVyXdf3Z940xr1Rl8aQrDSaCHRdQspF
7OtNtSZqY9xXU5YRqCKZbfAOs9qUbdpXyq4P77zviYA7dT8//PCDhoanIRKBPOqAOAfjN4xEj0zq
fwg8+wOovcs90PcD4Su9dQmo2HxtnN7C8MUEvShHMooB59HcktLS0hS04nMhqEVZsTkS18fmn5Fn
/442+kZF+TvaUFud1Gnb1Lw50BDg2dwRv2Wci5OIQRCLWLlypTrV8btkzutOgD8GM1GBEjKXE8bq
EkzvdmKaLnVWMUVRFqPIrz8aehv7EHYpQXJPz6ONKrRZwhzPW0QhU8U7ptX05krTbqmwJDlUktxZ
NaJPKznhph0eGSHxLWJkS062/L5ts4LHsRgQowAGRYYlYv3MSomNCpeCvBKJA/hEahEXIckpsdIO
IHJsbLQMbdlNOnVoI1WrqmRYt17SYbtbZq7+SmISImQ7vAWiunWRviOHwNO5AEx1Scc2HVRpt71l
Bw3X/RsUP7lIFwRgu01yihSWhEhZZYisK14NZUVHSQTMn19YLOnxcRqGswRgOcGkCHhrE4iKhLc0
rQY6l5ZJSMU2KcncBPBrk7Rt31InLUUt20lOcIR8sXqpFMMLpjwsUtwVeMBihZtx8sGBPCI3dgzn
9LT9Y3PA5gA4QMMSQ1zTpKaPLidTDK1H4uSLSl2uv8KQsOnp6WopxMG7W7duwnAYXGOIwjAVulxb
hyAygUl6OfMcjWNoecRBn+uScF2YtLQ0IZDJ9bE4+NP7mZM8EkPWMT+B75tvvllDYdDzmVZ8Nu19
DjDkNkFfjtcUKI868yKAz5Yy7R9PPo1Y2hb4fCa8kAk8UwCicQKNjJ6DYn4SlPljh/SSB559QxbO
+kYevd9SkNP4gH1i6IjR1Te1fOkSqUruim9ZrrROTpCUxHgpd5fJAIQgZRtY9gfvvSPPvPV/Cjxn
QhnM0GAEkG6//XZdC+i4sQfJ73+8IrmOnX29ugJ7Z69wgMYnrdq3kbLkEImNiJbhnQZovVSEfQEv
1IlXnKxALIHn6jEhHWMClPgcEyZE9ZN3i/Kkc2q6As8UnBh9gcYvZyG01VsYO4YPOki6PRsj0WNT
FXim0Qo9ZX/++WcZA+OI/wL86d29pxzh6iOfBi2Sr5fNlgtHniID+w+Qz377RsK7hsmQtD7aruee
flb6jB4sVx86SRUkNMqhAcyh8HL9HEDo2INHyVCs/7QxwQqrxEx9e/eR5178p3wGACYboNWFE8+o
Ne/atFI5bciRWh/HtUceeUTH0P/+97/VY59etH8kDwZMhqi4yl+zVk6/5GIFnk1/Scc35N+eb4gL
oE/VjlzphudeBePEZ597Ti2th2GMiYOV62AYMZUArF6RvU3W4tt1FtZmSwXAeOedd6oSLFaNKK05
JBUJ/P4wagcVZGPHjpUeWCPuA0gAhw61jA0+9XyjxqGv3oAw3QQhF0JB0RVAZ0ShBaKb9tvb+nGA
kKIKYxDOCEYqiEzpC3N8xRJ1y5m+S2bN/lULp3B5LoBV43GsCTUvL6vUp+nOPedseRuANceTWbN/
0ytErFlPcmKStIXH/XPwcme0qBFYE7Fv3z6092Q0AABAAElEQVT6bHEZwOBEWQxjqWzIWZcj5HQ8
wNsvvvhKQ37feMP1MIYIxZp/j2D9xvbwFr4cBjVFiNyyEfW9K2ecdqp0hkEDb80N+YkVosm71G/w
aJe5f21x3T/XXHWFKr4+/s///CbmnO4BAMeG5i9YiHlZHr6dg/VUl86d5OgjD5dHHnsSyuEdsuSv
peopccZpp+j1DIQxJ3XHnI9EA+ZOndJlLb6/jUH1eeZB8RHi3laCahnjywJbtQ3oHMFpWJePj9vq
KFbTPDx3IY/m5dkAn3mV0yUbEDnhSXwfzj7rTB2n33zrbYmPi5drrp4iCxcvkqm336FGBaeDVy+/
+i+5Eh7l773zpjgrEbkHeV9++VWZPPlc+W3O7/L8P1+UcePHSvfOXeW++x9Q48wX4GX/BQDsO+++
V+fPBLGnwoiAhgqnwyud+a+8+jp59+23ED2kSvvUP//5kpx84gnSr3/fOvu86XPKEosj9u9e5ADX
l9vfqS7lcl3X93f+NMb9nXrqqTr/ffDBBy0HjgAKpcKWTiWMSnYgEr97BODrokBDbtdVzv5ynXMu
8q6hxLyMkLZ8+XKNkvfBBx+o0wHnadQVjRw5Ute5ZSQImwLnQF18pdEsZVebr4HztK6UBJXpGcm/
fZmaKzi+L/PUbvu+yQFiDgZ0bugdqHGWB4elME982EkP6BAYoWDMgMU8RS+QIsfYWkf0eDa0c1EK
agNA3EA3YcXm9hTO7FoBzax111OQKeVv2lLpTnIAgObgEhEWoSAN96mES0EIbVrthLmC4TWUK5Fx
kZq+oLgACvtSSQQYTRAgClaVCxcuBNCcIytWrJT1CGdHj+VWKQCwARBwwkCPxh1Z69VDKTw4TAGj
0PhkSYEnydDYFrIGeXKg0GDYqfK8YlVeuIJd4nQ51VsgJjpGFX4sywUPc3phupzlajUUUVyh4HOC
I1Itiwh40XKa98e/ylis/5ycJPE58Xo9BGG+CVajaJtsDtgcCJAD3hMQChh1WRPNnj1b10Wgl3Qf
KOAvuugiBYFYHceFBQsW6NoJPOb7SK9GekhzLOCabwRwCB4YYJnlMdQ3IxyY9TEY5vvWW2/V95zl
0LKba3BwvOGaTQQ8s7CWIYGlmkJJMY9NTceB8YMtAZHrxXAC/suKbLkS35YwjNE9YZSUCeOmEleo
HNQbynUQQbXEpGTpc8wl8vWaEtnyjydl0YLfZQHWnEy68I5dGjr0tGuxjEL0Lud48POfa+TUQ4eo
VfQLb30iQ3paIRk//vhj6YRv1YA+lqEC+9ex6C9pw47CshNYhgEfbgpgxQxlnD5mt3LtE3uHA927
d1flgndtZeVlGsFg0PAhkpNQIYd0HqiXOSZMnXan5KUixHHwDhmBs8ccfYx8dvs3MmbiQZrm22+/
VTDwmFvPlaVRBfLQm0/Lkq/myi8Amh++4BlNM3PmTPntt9/k6NvOkY0RhTJr1Xw5agj8nLv1kD/n
rJFvl/+q4DONFfKnZsuQiePhyRwGj74MNaI57baLJBpGbTR04bh456sPyfbwUsnM3ijd2qVLl/bp
Ul6xSeviz1133aWhRSeedaxcfDaiOoRH1Jo3tW2EesvRGIeRHI69+HRZ36FMPls7q3p8rC78AN9x
4z1W0BGTcRow5WOi1xFKVBL7ywPwdO6FeXgE5quko2HodNfMr8WB9Xrf254jf8Bb9YrzzpPD0ztJ
TxhNkfi9WgPL9ZHIFx8Wpuf4MwlGDVzzOQjCAumnn37S79Y1OI8FbkXGjtW58G8oswxGUiR+o76F
d2I5PEI3AFx8fF2mZABoisdcuoOmsH8azgFIW3hGKmhRDuMufgjaqhEwrlmiXpB6KvNyHAzTUmHk
StlsJ5CJC0SVYYjK8iBy6HOkBfSWLVs0r0a5skySWYw8/dQTMv2hh+WFF1+Wf77wks5Tbrr+Opkw
YTxCTHMJktZSBqOqY446klWh3x2Jscrar6qswhpx78hyyE+s1tCMB6dB7knT+q37wl0ggYqkbK9X
/bhdkLl/U0LtW+85Xe0pratbEfHq2htulpGHDJcjAKgbOhxet3fdMw0hvO/S7yjBTd4vaTP4RcA5
FsYVhhITE2AMZnlOm3MN35p7BkPqeOYhCKFdtXCruMthCBSGCAbsG/whH/lQfJ658rwccijyhPRv
aUU28+J5bc+cfY5Ej+XLL71Yi+d64D/AMOXqq6/EGPAd5kQt5P777sX6X8EwSEiQKVddI6sx/42L
S9C8ZyBE++kwZjli4uGYy/4oc36dI90wJmVj7GLe2BZx6hVPz3jSN69+q+en3XcPlg0IlgQo8q9E
mQwxH+cBBM49+0xEaLjIc78B3D/fHO9OqTXZPzYHbA7sKxwg8HTSSSfp377S5r+7ndQxch1U6hrq
+538u9v+d9VPGZryT2N4I1PvY3Q/f9f97I/12nzdH5+qfU82B2wO7FMcUDlfhXiV7/njxPeTp/US
tpRN+U/lUz3LK5B3sfGAz7hMgRSypsquJqeVzsMPXPcA1FSM7Q3ylRdVZkbFZkuFGsPYZm+34pl3
Sk/TicNmKM3WZa2T2A6pklNRihCViVIqsbJiyyZVIJSXFUMRKjLz0y/E4SyTMV1TJbVtsnTtnirr
MlcJgmPL8NHDJCVrsxQjEGLW5g2yKGMN1nouh0VcCyjhsNYzBOOcsG1qAR8Nr6Hk/l1k4ZYcVVyU
r9kmRbA4TO4WL+GYNHdBXdvjYyR2QzbCeS+Roeld5BCA20UlBZIYmSD57kJlZyWUgOsz1yKON8Do
ylJJrYyV8LIqDaVJhXYnhO/MzVgv25wIoQdlSIWqA6xntuvzsJQGUDnteto+sjlwAHOAYSUN0ZPZ
lxgKmVappK+++krHFlru03LdeB5TmDPE8PoMK2fW92GIJf6RGJ7m/fff160R/P71r3+ZrNVbAtH0
VkxPT9c6zLrPJgG90OglzXHOpr3LgbYp8dI91VJA05r23fc/REzTllJWUaXgM/vGjGdeFUdiN2mJ
dZdJK1askCHjjsaYHiLlBaXyW1GVRLRoK4PGtbO+sQHcwqxFqxR8HjVqlDww42GAz6mai+Bz36Ej
pR3aRTr//PP1Tw92+XFLHL5c+bI7sL1LMvugSThAD2Wuq0JKS0tToxX2H4b0v/TJW6QYevmQYEwK
QP7GhD9/+F2uR4h1EvvU4OFDZQOAZ9K7Gd9Kx1axMuDEkdImsZWeo8HLkEMOUuCZJ1blr9fzHOcK
3twqWUlFsjUvW1rFp0hquw4yrosFbH/00UfSMS1V4lsmanoaL9A725e4rv3SeaurTxMQn3ju8Qog
R7e1gIba8pZBAUZiFAmGAt7YwRpHM/N3AtrVhR/gOy0wN1TLUvCBxgE98I3g+s0kf/3l2/nzZMKR
R8m/YRTQHmvRhsJ4kVTBZV48RM9BoETmsMYto3kMhqFVHJarKfaETKUxJMGi+e9/IEHwmB6E8Moj
EZkD4Tm0jHEApmc+OF1KPSHZaizYPhkYByBbGXCZGQjOuiEI8Z9KXZDJKH5RNuK8gsYJpZiHMCIT
135XopEw0lNQsnIiPctCRuMJxbyWfIVyPeV17txJXn7heZU3fv5ltrz6r9fk5qm3yTeDv1QQkOlI
Jj2NdadPf1jmL/hD5zm8xhDK9Kz1iCYapppSiKnf6tf02QVpe3fWr61H4Z47ZYpGpcLCIrnwsitV
BnzqH49Wlz37tzlyzfU3y803XKuhuenpfP7Fl8Grt0CefepxaeMxFmR+A0DTmLltW2tuUF1QQ3c8
98w7J9X2zEMnpknVrA1S8dlqCTupO/joeSi1PPNKpHUXVYgDeevzzD2JYUDZpfqZc23tn376Wdu5
BmMTl4VRa3fU3ykt3TqPUOhDBlnfhJYwACdRbqZBdbEajAfJ9VgegGG3jz/xZID8beTsM0+Xc+CZ
v2atVWYQv4+4tXRPmash0w8aPEjLYlhNJbArkPs3fc7KZP/aHLA5YHNg/+cAl1Xh2Mclbmz9QWDP
m5F/aOhA3tlkc8DmgM0BmwM2B2wO7MqBnRiwJbPyqovALA+pIFDZ3isPxdSdSRXDVU1Udbg2agmA
WzIf81OZoZbpiNOtnhheZTWHXVr0cbIQUhas3slsU2lpiXRNT4OnYm/5a9MWdS8/uEO6ekB/8+l/
1OO5sAqQckQohGaBt06GtIdgyzXAuLA3BWFHnkuoXO0CkJn3nZm/QVpDIThoYH+UXyYFWwt0TTBa
yZWVlevEjl5xXWMTAH6HiaNdJcDnIilvE4JY660kqecAVehkzvxZMqHY4HrS9ADKL86Tdm3bAeyu
grV3nFRCicS1y8KxRrXDUSbuyGgte0NOkXpStUd4w6VYI4sAmAJaQVbY7ebwLOw22Bxo7hxg6GQC
xlSCTZ48Wd9xhr03xFDXBH8ZMnkGQpNeeeWVcPwaq+/qddddJ/QuZChuhlHyJoYoJbBEcJvpJ02a
pMIL13CmJ6whrg3NcN++xHVaWSfB6ocfflijJzBsN0N6Ezxim1jHzgHftwT7uCk4MG6w5WHMshlK
2ZcYNaN0+33ijOsCQLpCoiLCdRwPirTA4YiwUOnbJR3ZusqC5eskydL8+haz2/HKrK2IopEvyQlx
MmHcGEnA0hD0OKIn/OkjjpP8olLNwzXQXnnlld3ycx3FcR36wLTMBp93Y85eOJGJcKxZWzZI2+Hd
ZLVsk9c+fUce6nmfzlEiM8olz6wjgrb4GxNyMCYUlFkGJ5wbJMA4bqun7QM79JToLlGyehvmEqU7
9CwVJi0AIFs9AzYSHo96jkk5m7bCyrCTzFw+W849+HgNQ3hIJ0uRT4OG3iMGSi4M4Ugb4cF6Hrxm
fYljVJ+hVvhwXqNxTctWnH+UBZT3zPPO0SIZ7qdNu7aYZloGcqadetH+UQ70OfII3XK8Z3SNXl5r
MvnrL3w+x95zt8TBgGo+xokHpk/XSByPPfaY8DsUKFUiqkNHeMwIIgN5E4HrCqxj/8v0GfIILFwj
0d/MN6ojwOo2Z54hKwFWOvB9tanhHKCMpvArBTBIazvlNR5TLsM5gso4pGduVtZ6nTt8//2PiI4y
FilAyBSE/ExLcE7LwP7s2b+qHMQklHNwyboOOY9GdL/Mmq3hjlPgHX3iicdj7eYYueXWqRo+OQFL
BmlqtstT/+OPPyUrVq6SF194TtI6psrlU65i0Qaz1H0X0usKxF7fPrWNtm6nun4zt+FpA8JqAY30
Q5npsinXaISZd//9WjWIzOJ/BfjM+s8+6wxdZqUbwNaRI4bLzG++1drT09N0uxxGQEOHDBa+I2sg
MzJUd2OQuWeLB7U/85DuSeIY0V4qPl4hIT2TJbiHZTTk75k7l2/XtMwT0h1AMCrTPhHAM2+JsZq0
ZQu+PJ5nTs9xa/kat7TF2s6zf/0VvEMidLJshPUntQEoXw0K6xmqFaye7AZIzfscNeoQ+fLz/9M1
Gt997wN59B9PSE/Mrdkvf0WZFrmryyTQzz5tEcvijbB/7zxVU583l0395tje2hywOWBzYH/nAOUC
/tlkc8DmgM0BmwM2B2wO2BzYUw4Y5wgtB+IYZXbqJCjmK36skpkl86mspvKfOaYOg57PnmMj17FQ
owjwbqBVmSXq7VKxdyKf/SBnlJ4JDvIopIIsLwxnMFFuLFIdEqWKk6CQCPUYjoOyg4J9sLPMChXj
tsJqt4+xrNCy129SBW4RwlmzDQ6EGi0rgTV6RSV0oMVS6aiQtLQ0GTi4D9JFSURBb1XQRMcnSCwU
Z1GlBfLLL7MksTJcnFhnubBNlJQAgY5ZtFKGHTxMw1C2aYmQuJ2ipZujVOZ+/I1shfL2sNbtpBPW
X3T9mSWJUVFSCCvuAgDEZQiFWABFTWko2u10SPhWgNSwkm/XNQbK2Sooj7GWmjNYKhCWOxXhxaoG
5Uv2Lz9KJLyrO0GYHhkdIqFFW7FmdZS0ioqVje4o6dyvl8xftklKADD8lVgpSa2SpI/A43n9ZmmT
0l2Gde4k61b8KaGuKol2xCsIXVJYqSF5i0MIhpdhjeto9XAIsbFp7Wf2j80BcoBeQgxVzDWgjj/+
eFXEcl0eGpEQSKTxCenzzz9Xz2cq7kkMoc31L7mOz1FHHaXnzA/zELSmRx89oOmp9uKLL8ott9yi
nsyvv/66XH/99QpGM5QTwWRGbEhPT9f1XWmIQm/pU045RRVvDLnNNtH4hUIj17AhQE7vR64zbdPe
44AJuU2jAwK9hmj48xzWVWV4rmFDh8jiHeWyesM26delg3Btsi/mrtSYIhOH9ZLLTxqnQPLVdz8K
JbylzGU5dVlWz1q8Vo4fPVD7DtN/9OGH6B9tpSAIoCPq6t+1gxXSKzRCWnYfIhEwejr3xCPEge/Z
ax99LnkVMKqo1syyhH2H8Gnf5ykOQHBWnBXRJKtskdxVViLREVEwRmsp2zavky352dI6LkXDu8X0
aClVsSHSM7WrHDXsUFmfvUkihraR5ZvXigwUOfzww+W9Tz8GT9zSMjZJXpo0TT2nb3zmHsnatF4E
OLJ3mlB4t47tNkx5+AdCI8cCOCKU+O2yXxV8ZvhCGuAQmGao7iPGn426rBCy7WDgVgIDvsTRnTX/
8YccIV3apck383+WjYU7I0fwYkUIPGlBgeTNLLdAcnqt9e7RC6A85mygQ3sO1+2e/OzL3YVjCcf1
hA7tJRzzts6HjJAB+M6QPvnkE13nPQLrdBcAXG6RYvWXfskpEo98HZBvCNblzt64SRZ2667AM/Od
h4gISTDKvGjMWKw3P4SnaiR+X0rhFeNLIX5ewHFXXSXJmF93eu9dWb1osczBmJQAw4jxEyZIKMbC
X0qKZazHo9+3zGZz7Ofemkv7KMSpLMaxOxhAHW00INXxXHXTFXRzy8HwQCf4THrk0cekV+8e0qZl
Gx32raGfv1wbWCQnZ5uG1GZa0nDIOwoQIgnXj+aSHg89/KjMnTsPRneX46Rb/of5DL9xBGNZf0v0
v58hPy1cuAjr6vXQ+ZMVjrqFzFswXxYvXiJDGB5ey7TqseqnsMm2aLH8xZ8FjFtp9Sb1rALmVlIm
bzBlZGQKPXMnjB+n87sbbrlN5v4+T+6/505ZBQNA/jGaTV8YKfeF8QTp1X+9IefDSGb12gzc52zp
5zk/eOAAjXD1jyefkRkP3CcffPSx5CGE/YknHNfg9nlnrM8zZ76wC/uJKytfyh79TSJuGyEh6QkW
77RQi7fkqHttrpQ/OkeCW0drHl6uzzPnutgkrtvdC5E7aFD9+RdfykSMOcCQ5aBhQ+R9jAFvvfW2
HDJyhPzzxZd0ztqtazesG16kefGYrf6sLbSevAtrSU+5+ho15Lzk4gsR1n2CfPb5FxpNZtjBQ+UD
lMm1pUdiLNy1TOt7ylJYv/ZsvBQaPh61Wd1m5/3v3uesJtm/NgdsDtgcsDlgc8DmgM0BmwM2B2wO
2BywORA4BxQjVlELP9RH0DgZGm6K+fBVptgHsmQxc7TzGHu4BM9nJkNGj5BogOcgeDd4pDlNwmIa
m+i5zJB+CBinICpBoMLCAolEq+jRTKIytFNMooLRvTp11bVV1+Vmq+K0CCG1t2/frkp5AjsbsxBe
DHc1tL/lsTZwwACsUVYm+Qj1ReUKw0KuWrVKHFtzpRDr123dWqjlJY5IlBQo9EoBThUVFSLqdYUK
xu2DYnUNvODc7ViDdYuk4Xw0FDCbEQKX9UZDgVMChdv6nFwVujvDUjwa9eTn5ymoXlrmUhC4MiRM
75OKnAkQ3Ntv2Yz7LJLg8gJtVwhCaNOzJBUANz0gf/9rvcQCiI+HFTj5kBwSqeBWARQmvI/0dCvd
ti1FqlhxBEUqfyqc1tou5CvXoN35AJWV9o/NgQOeA1zTkt7LqQgfes455+j7w/fFeEDnQ6l4FZTs
w4cP13XdyTCGvqbHXseOHVVRxnMct0j0OON5hh8kmMM12rmuKmnRokW6BvSXX34pZ555pq73vHTp
Un3HCTgTAKKnM6MgcG36gw8+WMFtvuMEJQZ71vlkm5lmfyfyqblQj9Q20iaZ3l4i//jHP+BtXCLp
faxQxTz314o1MgiGQmeffbbccMc0ef3z2fLoVafJueeei3WZf5PKiAQZ0a8Lk8ojMx6Unz95W8Zf
dA8PlQhoL8nMlje/WWBO7bKd9edqBZ/ZR0j0UB00fJQ48aH/6Lv5ciSA7YEDB8rzTz8hyzYXyaDu
qdK+ZQK8uObK+sW/SWT3MbuUt78drJv58j51S9uKdkg6wGcaHbi3rpJnvn9Lpp1wrY4JC5ctlo3O
HQrExoRHybRHp0twdrn8589v5fyDTpDWiJ7yyL3TZWlRpozqPlSB57lz58rj19wvR99xrpwx7Bhp
C6O5x+6bIQtyV0m/jliiI6WDjhnsuyOOHScbxSmLNqyQHYV5khhreUIw5HbLVlgDNqxINm9aJXOW
/yHDegyU//vf/8lvmX8i1C76MNamLsYc56lHn5CkAR1r5PmSAPJWdoyQP9YskYGd+8hLL70kvyyf
J3FJ8TKqq39wtMbKGniy4r3dI040sKhGzcaxfv78+buVyQgZNGA6DIZNEZhv/gYjpsNuvFH7y3J8
V0Iw/+w8YoSERUfLYwh5nQEQ2QnDzRB8l9TwKQfXseZca8/yEuZ7xYpK8Y2Lw9xy6tSpshlGU9/f
c+9u9dd0ojQvV1r3PEKGXHqpuP7vU+kLMGqox2CL36gclCsJHk/MmgrYR869sC7zb2spIVmVzCB+
ETWmJbESBTRIdpRvVBbDz6mnniwfAgglSJeLSATHn3CK9MO8YsqUK6R/v76ajVEwnnr6GfkTfaa8
vELPcW5xyiknoxyrzCB3sLSIixeuzzztwRly4kmnaLpkeMA//vijEgrjN6Y97vhjZcHChXLBRZfI
BzBAmDx5ktx4061y5FHHIDrLYBhDdUc+T/u0BP4wJ9edRl1oczDugcCodY876+dl3rsFGOodMlWD
6d9vv4Nw4AsVfN6GOdqXX32tZd15z/3VZdKL+e03XkWasXLt1VfKy6++Jk88/azOvYYgxPOD0+7V
tJTbHp3xgNxw81SZcMQxusb2bbfcKH1696oua0926vPM2QeCo8Ik4pbhUvrALCmbNkvCJveTkNEd
wD9DbnH+lCUVry3GguDhEnnrcHFHhWrfUUEfZQT6zFni8Xju9z/woM5v2b9uvulGVTKMHz9errj8
MnnplVfhufy4pKWlyVNP/gMyaqTK8cxLJQPvT585T4CCsGTVccceKzMefkT+9drrOpeejGhBvcHP
PtJby3wZZT7mVWYEyszHHNkiAM4o1813wupM7Fq73D/r9O5ze96jPFXbG5sDNgdsDtgcsDlgc8Dm
gM0BmwM2B2wOHGAcUAdkCpyU7yCMWfKVEzKZ5VhsSWNGItVEu3CIopuDSake0FLwy5PVxztPe6XA
dUqUAZDL044qAtmgEIDMuiU0DnLAezcyLFIBYh7TO9nhKpeesSlYT6utpKEawNJStnqzKlLTuqYr
yBoLZUAllK2rC3IlqcolBw0YDGVLf1m5bJF6FcZ06CYOpCnFnRQAzF2XXYx8+fLHhgJZllMhcWBW
eMtkCU3Mk7Sh/WTwqcOlJ0Jqr99UItugrNm4tUySoETr0D9OnIsWSMb6tQou9+gIr4LEeCncWCwx
yQmS1DpFFRWto8B08GR95nr5C6B2aFi5JAEMH5HWXpYumidZxaVY+6yjZPy1QrZlZopzK9tTJe3i
kiUsIkUKK/OkJA9talFigdZxbgmJcYirdbyshZIxIqhKcvNzpTh7K8J0t5UB8bGS1D5NvtrxlwJk
BcBIKvGvFG2gJ0JUuVMc6ARlUDjbZHPA5sBODjCywvPPP69h7I877jhJgoKVwDPf36+//lqBZ66P
RGCPYChBZ67Xyj8CxExzLBRnzMNrDFf59ttvI4zgKPVeNjUtWbJEw2YzH8EFel0fccQR0q9fP60r
E+MAvWe5njTDe7NcDugjACgQqCaxrVzv+aGHHhKuL7w/U3MCnsnn8UMtAyaGaqcX+qlX3CZ5wTvX
gfp+yXoFn9PT0xF1I0+WZWyWR15+T06dMEwOGXGwPioaEj348EMaev3k8y6T7LxC+fKXP2T8Qb3V
gGgzQmk7tvxZ42P9K2MTlK3FEhcbDa+1HF0X/LQpdwp9kfIAhN/x3Adyzvg+6rEPxzTZAS8legxd
eMEFMnDoweIAoLC/0r4GPPM5MER2enJ7NSj57o9Z8tniH6R1eYyccegJMqTvQBmM8Wftugy597nn
5dFHHpXjrjtbKqqK5JK375Yb+p+p40vPYKtPcqzget+9+/eVjY48ufSdu+SGfmdpBIbuwVgHFGUx
XDMNIQg05XamIRrmKPj3zYpf5bQhR2rXoEFD/5FDZBs1+aAb/veI3LL2LDl8wmFy9ODxUg5juzm/
z5WrEU53xcoVctjBkzRdTT915e1z3eFy3SczZMaoKXLQ0IPkmIMnYE6TJ08997RcfcVVNRXZaOea
K/Dse4OlmP9yzeXZs2fLvffeK8mYQx7KNXTxPVrx3fdSAE/NsfBa74MoHXzG6+DZ+Ry+ZY/gG3Ir
vhnfo+8Mv+hCfe4sO2vlSvnlhx9k5NixOt5UwbgTk3Bdu3n4lCvV6z4W3p3X4jmcyIl/HTQXgF4R
jCeGARA//pKLNXWV1zfqQkQT8Q3XXUeRze7y3wk8kxnE0nYCzpDHPKIW4Ts8chCAN8+j6gxj2hNP
OF7+C2ORN15/VebNm49Q63OlQ/t22j+YlpEW6PHrTSccf5x0QV72IZX36DqKtIceOl7GAVDcsmUL
jFeDsbQQ1h5nnfhj/V1hyPDWv99APq4vzWDaGE9mfgkD2yKJghGErjnNtCiXIazPPsuax1jtZg0s
hwXiHrjvUz+PKXsyRX3pJHgh889Q5rosGTNqpB5yyaRVS2v+zjIBx8grL7tErrj0YtmCSDQ0uonA
EhreRA/pmZ//D8sSbEJ0q1Ye417vFA3fr88zJy+5YnZQcqSE33WIVDw2V8qfXyAhf2yRsAv6oRFB
UvHKn+Kcs0mCO8dLxA2IgJFg3UtNPK/tmXuQXXi+d8U34EopLSmTyCgaw6Ek/OfzuviiC+SiC86X
QhhtWwbjeH5oI5ebWjBvLpOhtdYzn/3zj549ROo4YiL+DpNcGM3Q8EHXjda0IhdfuHuZLKc1+vKC
eXN2qd/0OVZq9RumJFnbnfVbZ2v6ZbQim2wO2BywOWBzwOaAzQGbAzYHbA7YHLA5YHOgZg4YZz3K
WZT3LHHL8nzWA6OkYHYjkmlRls6BJ4MiY5LUQFhFRBRCtcAudsqWXkIFTYp3lSUFsLg/Rddq0rJq
+XEjjDTJFWyF2w4Ry/I+xAM+V0JBzhC0pVg3mYJsPJQaXN9wSMc0DfdWsWKVAjDuvAK93ndgP/U0
LIyzPH0LI8MUBGrftr0MO2gYQs4leDypqxTE3VBSLgw7+eOcxWq1XZhfoWGpk4LL1IO478kDZOTI
kTKyTw8JRwjvlWu3y0oo7LaXhatCosW2XIRf+1mK585RT+QTOnVTgCizuFiVyNv79tHjiJYdtJ1Z
f8xXj+i4uBCA1XESvn2rej9uqXRKl85dZP7shXq9a2WEKnJ6AiDnQ9xeuFXDg2eVF8pmKH7ccbHS
Ah7PW8NDFdzqBQ9sAhDZ8G6ggF+M9R8ZvndtaQXC7mXJytJi5U8plCgEsOLBZnqRV4SyV9hkc2D/
4cATTzyx2800FLjk+qb0DOI7yLDWxXivubYvPZA5HpEYQYBr7RIsZmhtgtWHHXYYQg2+pddvhDca
02rEAqQjgEDlLb2g6bk8bty46rIIanM9O4KOfJ8JTBNs5phniG1atmyZruvOd9uA1p07dzZJ9rtt
Q59fIIwY9chvuyULFLwMWverfP7J+/rMDz73DgUGvAuLK9so7/7zUT11xrX3Sb7ESrwT35Bfv9TI
GlRq0uPwiBPPlLKWvdEPrK9w6MbfZc5P36pB1YBBQ7A28Enyn8dv1HJOv26aFLh3rtU8/+3p2pfY
74ZNur26DCZuEVQqWXM/l+ytW3Qt8VZY8mHA0OES3mWk8Nu6r5L3vMX3HgJ9dr75AjmO/uiI3ZJV
vF8/j9ktz8+RLYiScugJR8j2QbsCGC1mFchPX30vg4cfJM4j22hdHXOiJfOHJdVjQvdePaTb6AGS
1cZacoSJ4p2RWJg0W9du5phQAAO3EeNGSeiYdpIfzIDaSONiGqzvvHGbjlUcywYMHSRJR3SXHEex
pjE/LRc5ZeaHn+rhMbeeIxuijEeZSISESvyictmwPEOjxBCY6TtkgCSN7iSbw4skEW357t53Ne/4
u8+QHSFW/TxRV16miXaHSfivubJhbZaWn4xIMsNPHCf/e+E99QpPvW40k9WLdpnb+uRsSuB5wagx
PrWJ1Ae8/M0RIm8jtLE3cT7cC+G0eyIyxxDMxYMB7nrTurgW8jWiZ5hvSC94N0/o2086e7wCtwCg
mfnXEv1WMSrHEBhRtQaI/SkMaLg/Ceu0krIBIr895zdE/9kKbLtIHj/xRPkX5r6L8D287JRTpFex
1f+2ITT3tHfe1vnyDITxxsRYfseYtihj7S7fqGPxnRvFkNsEuJsz1TK41OfZNdUtvvPBR5KemmbN
GWC065mGqFTGGQlm+Ag5TAEOvR4nihEi/0oYh5SWlsHo4Gxpj0hRNHBTUI7IMb45Qw46WOUBtrkv
ZJbnnn0GEZoiFeQO0m8SS975FnFP5z8B1G+F22LJlButUszW457qqceAg5aMycaz6prqz8zMkD49
u1v3yKIbQOMPP1oenj5Nhgwa2IDcTZNlLeYD9Pj1pfo+8114XumSyveWStUXayUogcAwOJtbJo6j
OknYaT3FHWrNAzxwv1+e1/TMt23bCq/2Y2X6A/frnNf0uV3qR32a17Nt6DOvqX72KPYl3z7fkPo5
dz8TkQJ8iUvl0MjCJpsDNgdsDjR3DnC+lp6e3tybabfP5oDNAZsDNgdsDtgc2E85EARdUGh0ksqU
vEWG3bYIUpvqWSjVeXZV2N8pKfJyUERsEmQ5SxGgSgP8GOBFjyH+UXCltTXPE3w+7bRTFbSxKvL/
63Zbytcqz9qADrfliRvh0adVolQr7HaFlt0KIHQPKNOGxsDjd22GLF23UiIRdrQLwk6zsb1T2qmy
LBRgDRVmZbCYJnCTiXxdYJ19xMXnSwqUmXO3ZKpiPxdLFH733XfwApqloG+r5DCJgYV+CtZFZtjd
QUePU8HTUeHWcLn5CPfN9pRHh6qXY9fINAV3P3/mCQ2fe8Eho3SdsKzCfPV6TDv1JKztnCeOFslS
UVkhrh15GqLOFQo/ZCgN3fBaJhAlCP0dgzDay776DsdbpX1pkIwdPVLCgkNVgZcdG67rvv5RsENB
sGAA18yfs2WNxLaIlb6lYZJfkC8ppcHqUV0ErwN6OLv795Q1q9fIOwinSU/qSiiUmK9dVQQA/TKp
jDSdwf8zsq/YHNiXONCY4LO5byrVaKxBoMWMfeYat6p085yo6bpvWqZhHn9pec3U6Z3X7Hvn9d43
1/enbVMCz+TTnoDPe8LnyCAnnAyrEH0jTENl+5bFkdkR7JQqV8huoLZv2rqOw+C5Foa6igDs7Q/E
b31N1JTAM+trDPC5pnYHco7gcRW8k4uCLQO9mvKEux0S6wyXIgeM6DxrJvumC3WHSJwzQgod5VKO
EhtKIZgsJjixhEgIakJfrg8FkpdAdZQzVHIBnhNM2BPy012kKYFntndPwec9ueeKKCzNgG+WA/M8
X3JhblgGEDsMc8Garpv0DFvrwnyX839fkNuk8bd1wyirHPNNUhiAz2DMP/cJ8jO4NAfgmfx7+4MP
JQ3gM1E37df4sd4OzBmwQ5siPC6IedZZ7nNpoZdeekXXyaUcMHfObHFg3XedfyD/EETC4NzmnLPP
kksvvljCI3d6wrIYSnhauPcDxPlA67cSWumtVnHfM/9hISxLC+M+znvedz1VQ/0ZAJ/79eyxy7zL
u2mB7C/8c5Gu5Ww8agPJ09Rp/IHPDXnmvjx3rdwhlW/+Je5NRRJ28zAJ7ppYL57rvfs8c5fLLVsh
r8Yj2ldEROQufc63fubfk2deU/1aIvtHDX2+vvVnZGXIWTCa9yUbfPbliH1sc8DmQHPlgA0+N9cn
Y7fL5oDNAZsDNgdsDhwYHAgCDhkak4SbhSRfLdMbzQRPW0K/+dWlnJHW4CIOS2BEQgVMVE9gCZFU
STAzhT9qOFg+S+EpHjcC0auQypJggL708COgSk8YR6VbvRAJ2Dq9lFobNmzU8KIt0BCuhblpRy5A
aKy5XFKq4NEIhryGMo3AND0Pt291AZTughC6PRRMLshdp57NyQiHyjVdE7HuXRbCs1UWlGh54W1b
qmdxYVmBlrFm02qAzClYd7qtgs/r12/QcGxBEMbpLUnvRW7DEaKttKxUQ3OzXSXOQgWbnbhGT5aS
3B3qwUwgnSHbHOu3oz1F0r51O2nXvr1065amILor1Fo79pdFfyq4Hx1RJXHBcZLnWUM6Jdm6nrl9
B9aVzheqkOgRF7k9UkFw8pAgGonKJptsDtgcqJsDHM9qA3nrM96ZtGZbU+28Vtd1k6+2dCbNvrpt
auD57+RLKUBAjXHrpxEcpSsAPDcGVUA7WwH4eX+mpgae/27e5Xk8mGtrRzmW3yh31A7yESj29XSu
rUx/15yYTDa0nEDyEjwvC9nVq9dfWxpyvqmB54a0qTHzhJXs9Iz3LZdAcFT1+qi+V3ceE3QOQWj1
hlAQ5poRmMPuD9RcgGfyUkUrileQcaxvPwUwCl70AsU+PhwqszExiAYEkeERchXCIjME99fffKte
z5rWSqJrQB86bry079jekhG1SK3ESuEJu83+4NLScboe9QdzPsO2eP7QcqvJVukemdG6DV7T/yqs
8r5APvVrQdaVBv8O6M8Q1PsGNeSZ+/I8uGuChN83ynoIHrayXDU4D4DnmsXnmdN7vk0bj1ew5xmT
o+xzvvXv6TOvqX7ejPasGvp8Q+rfN3qD3UqbAzYHbA7YHLA5YHPA5oDNAZsDNgdsDjQvDijOSKGN
crzqJ9g+j+Bpmopr6g1NxYCHXNAwcBVmRgF1WOe9f5GKZegp/HgSUivi0YGYcurchrqtcNtOjzu2
iwvOgTxRt8UJpQP3XVCYVsJLJzQ0HDoPtxTtALAaFCJlULBVVlZJMdY/TknB+shIHx0rsqUCILO7
TArDggDCbpPiIAK+8KAB8LoJYWvLS4vEVVQu2yRXuvftLp2jUjTcdkxhF1kS0UriMzMlHhbioaWL
pHDhQoQFD5K+w4bB6yhSKnIKJRzpEyJiJHvdWikugfdaOMJgd+wsxQhVuAVKvQqsuZmbs0PmvvVv
6YS100aNm6jheQvgIJQLALzIUSkdW8XI0lyshdYxSaJCwmT2T7MlEWEQO3RoL5VllbKmIFvcg3tJ
VPcuUty3h6wDmJwHvbI7LlpCs3eIK2ODdG/hQJjxHFm1eaOGIc+PLcR60VmStXQNwiDCEn1VhnQA
+Nw/KUWWbUNYboQ3j6RHirNCgjXcmgVE1/mg7AQ2B2wO2BzYixzYn4HnvcjGA6Kq/R14PiAe4l68
yf0deN6LrNzvq2pOwDOZTWBZZS/IOuqR7HH7BN6nV1Usw75itzyFpYos6S1Y2kG2OH/yeVY6RTR5
3S3nnctzlAWYkpm5qwVaeasFO9aO88zbgPo1HDKroI+sV/3qusr6tUr8cFtr/SzjwKE9eeaNx/O/
+5nvhfoPnC5l36nNAZsDNgdsDtgcsDlgc8DmgM0BmwM2BxqNA9XOrR45XuV5qg5MDSrr84BynXWS
GghLbwGJF+fgc4yLxknWk1OtjTUf96yEqkswFVll7fEvPXV5E/SANp7PXM+wZC1BX2sd49BQh3o3
M104gNmWLVNkY8ZaeB1vl+j2HWU7gOr8qgItIzc3Vz2Mt4e4tby2bdtKG6xxl7N2i3oyHzVwqIa3
di9YID/99JNkAMhlOeHRkbDwbiNrsGbdcqz9GtoxSIqwZuKsX37R9RXLN2XpvTKUIdvJUNtsp6M9
2gKwmx7QycnJAMqd6nkdFR0G5gapNzM9n9MiuyhIHY71YEPhDZ3YqqVwDde2CDHeDmu0FQDUbtGi
hZRtydZ2HjLiEOnVs5ds/elLhP1eDz0QQPfoKL1HruWYA8/nznFpGoK8Ndb5ZBlrwTOXy6kgdVUZ
PF8QllFcDfNq2eMHaxdgc8DmgM0BPxywgWc/jLFP78YBG3jejSX2iVo4YAPPtTDHvrQLB5ob8MzG
0feYcHJwtaxlgbZ6CCBal0jCdVoOa/hqXgiG4EYBTeU3ymzcIaRpbd0AkvXYJOEhU6lQqNAnjpBa
QWcr999Zv4HT2coDgexn3vR9DjYaNtkcsDlgc8DmgM0BmwM2B2wO2BywOWBzwObAnnAAaDK1DAoh
A/O0bM6N/oFqCUWQkYLKBuocsMVlHnk8n3mCGXwJ53kJaz+RVJnBXAFSqMsKq+j0hBfFCs+aswqx
wknhEVG61nIIMPCwMIes2bxN4tp0AMDcWspz8yQku0pKiuH9HB4qxSiqHOsfr8rLl7927ABoLdIC
qxo6k6Mke3ORBBdvl0+/+EQG9O+PPIUK5pbkbZLwypYyEGGtGYa7KnuDZG3aKEkbtknOmpVSUZUr
HdEGB9aYjkL5BYUIvx0VK0VYAzomDh7FhwyTr776SraCW8lJybLcCd9trH21dPV6SU9PF1elS3p3
6ymtwqKlf3pXqdiG9Z8ROtzRJkHWrVsn3bt1scJjx8bK4NFjJbzfED3evGGrbG7VSpYXlEpExQZJ
igqXLl26SF94MS+EJ3bF2hWSiBDdWZm5EpZTIZuryqUwFwD3/7N3HoBxVcfCHmnVu2Q1y6ruvdFM
CRgDoYcQeocUSCEh8GghCYEfkkdIIeTlJeERCCQEQg0ldEMAU2yDMTbGvciWrC7L6nWlf76zOuuV
vGq2bGxzxl7ddsqcuXd3797vzExGsiQrqJ6VcJAJ591RvE0ai4tk+tgCicubIM9vWC3t6m1dFxet
+T/xOh/CyTJnxP1xFnAWcBbYcxZw4HnP2fZAa9mB5wPtjO7Z8TjwvGfteyC1vi+CZ+zL5FYT8lrX
+VkX4iPE5vcZENn8eNP7en6LcXdvfstp+CjfT0BaUOE3m/k959vvTyli9vvqUMj8RNRyBk3bxtjL
j0ht5vPs34zjAPtDiqk+ZR+w+ed9zvdk/ztCBfR5BtwBZwFnAWcBZwFnAWcBZwFnAWcBZwFnAWeB
IBaw6X05ZJ5R4NLMDzgjPGjQFV34nj2wyvMKnTxvnir40nuFUYhQ1/563dX9Cx5i8GACoZApb3eY
vbv8p1k9gYG1HR0adFt/mCcrcMV7OUXDaOdoLuSO+FjN8VwjU3NHSbx6BpeUF8rGDRulvqlLojXF
ZV1dvfGKTooOVU/lZvn0009N3uWUMXnG8zc0Isa026Thu7dp3uXQzlB56623pfrNBfqQp1OychPN
w55Q9bwu1FDcbTl5JodyTHK6hruu1PzMmTJv3jx57d//lpLSEolNyzC5oRlwYmKiJORlyYQJ4yUv
L8/osUI9qqM0/3NO2FRjky1bfB7TZatXC17YWWkjNfx3sxRvLpHi4mJZ39JgvJabEiKMx3TWxPFy
2JzDpFqfUTz3/PNSU1JiTl5ERLikpKRIhgLryMhICdN69ZrXGm9wPKEbFcaT+zmvI894QGNLygWd
T7DLZ8tVdBZwFnAW2HULOPC867b7otV04PmLdsZ3b7wOPO+e/b5ItfdV8Mw5aG5ukY72dgkPC9ef
Xb6far4fYN1bGgXJ/KDjJ1i397P9NWYhsy+0lR43Pwh9bdgy9IHXtO/HHH9964H7fMfo73Pq/wD8
4cJvMn7vBpPW1jZ3zs3DhT1zzWH71lbfRPhg9nf7nAWcBZwFnAV6WqBEnz/y3NKJs4CzgLOAs4Cz
gLPAvm2BvfWdbcNua4w28wQBq/ieJXTbRx8rGKZs/ux4+sBEd3I+s0fDbiNsmVIaqhm67Nvb46/u
Ns8E9Jg/n1ePAjtv+MK9aSdeX67ndp/Dsz4z8cXAStWQ1LWa65hw1GlpaeopPNrA4BqFxetLiiQj
LUVi08fIiElTzA/3Nas/k42ag3lkbpbk5uZq2OlKqS6plRjj9O2RMQkallvbjtGc0F3VtXLypKOl
ubpJNiz6tyxcuEgy81Jk45Il4lUQfdDsqRIXm6Q/SlulsSVaKooaJKogwoS9bqrcIs0aSrtFcy6n
5iVK8oRsKeusl8K2FtGEzRI3KluyNCz2ycceJSnqiZxSWStrNVx36WsLFBCnS2xCkmQpnC4EkusY
y2JTJCklU7bWV4snPkZGTR8nq1atkqZNRZI+OlfSmlqk6bOVUtLaKbMPPkjSZ82RT1ZtlI3zl6hX
QoTE5+dJgob1bojzSHVro0h1kXpp10tsa7iB9xH643rslCkyb/xUiaqqk7dbKqW1TUOAh2nobSfO
AgeQBX74wx8eQKNxQ9nTFlhww5w93YVr/wCxQONZrxwgI3HD2BsWmL3g7b3RjevjC2SBBW+/ZaIs
JSYl6gTSKAXNDF4nB+vvMtAcIZ869YeY7+caP8rMf0r4f7bpLiM+huv74caPRPJD+37cdZflEL/J
1HPa1yA1TYcm+Dfrn1f/ZgAHyB9+YzKJ+s033ww6ojfnvy6JXztbvujnnIDzw33Ntepk7+0aLe2N
19x3e9CLz+38wlmAyRg4fTg58CyQ/rN+omsEGW7F7e46CGIWt8tZwFnAWcBZYAgWWLt2rdxyyy3S
1hY83evhhx8uP/rRj4bQ4udbFAfUp59+Wv7zn//0OXEYDWF8xx57rJx11lmGYw5V673VD3p95Stf
GZJ6z6sTbDAxDFgfF/C0gGcE/HIL9T+F2DHh3Tw/4LGCii+Smu9xA2XDOGgaogEtFKo7TJhtWkV4
MEE1FnYf+4dB6hWgMls/Pz/feAAnRcdJWVmZ8dolr3JJ8WaZNn26uVHOyckxXshTFLKOnTxB8vPy
ZYUC2/+8+R+p2lom8Rra+swzzzQewuXtvhzQ5GFeufIzWbr0EynR3MzRSR6pr2+Q0Rkpkq6wu6xs
m/alLtQq5RqWO0ahd1FRsZSpJzZkPyw0Uj2cs+SEE46XWbNmyYJX3zEe0lmp6cZDu7y8XEOEp0uU
ehk364/cLvVKQNrVc4Hw2PWeaJMbOko9uktKSqWhpdYcx1OaC+7D6vdl06ZNUlJVYcp3tLSbdg6f
OktOP/106VxZKMVbiyVhWqbmc+5UQL7GwPmopmaF9vXS1ADcjpKu1lDJ1JzVKVMnGzt6CreZftwf
ZwFnAWcBZwFnAWcBZwFnAWcBZ4F92wIva5QlZNr0GTJKoz+Z31wBnspWe+PUzBRi/W3Gf/MDzfw+
YwNorL/ZWEVYUravicV6yLRnCne3adb1j9nstY/d2mbXHutfZKP+LuK34YEg69evl88++0xefuml
oMN55aUXzf55x5+g6af09+jnYnN7sagqB1D/bS2t8sbrr8pb/3kzqO3dzv3DAueff34PRf/5z3/6
t/s75i+0Gyt7C9Y+8sgjcvHFF++GpgNX5ZnV66+/rs+0TjCR9AauMTwliNAXGxs7PI25Vvq1wGCB
8lBBdb+d9jrI992HH34ol1122bB9j2/TCI+rNYokEONAuTfoZTa36SzgLOAssF9aYIk6dgJgL7jg
gqD6DxV8Bm0kYOc//vEP2bBhg/D7Cl52zjnnyJNPPikvvPCCSWM7ZswYueiiiwJqDG31f//3f02E
4/vvv9+k8e2rdl1dnTzwwANC+dtuu62vYn3u31v9WAX6Asr2uF32d77M92/3z3PrlMzvxu5d5pGD
rx0fO2a/78UkeP2tqb/tfTmf+ZGvO3BINjPhuwv6fo76/lLRrPmfaPia7u9vs4aOQ8I7fLPraMNI
iC8EVmJLo7lIjkwdZTyQt2xZK/VFRRI5aYwkpyZKS0ibtHq6JHxUhkw++BCJKxsnzRpaW+NcS5e+
JmfkS6UnVra894HUqQe1t3K7znJu1EHWa+7mGKnL2qyQdrPER2tO58gEKSxqlcpqj4xKi5FVGzQH
dFO5jFRP5ZFZcRq+ulqqy4qkqbZSosJGGjVjQhSER+h87NhkSY/2qKd0tLSr9/P2mmoFzuEyMjZK
EtVoTetXy5YP3hWPhqmJCfNK1bJFktHRIK0jCsSrQLsxtktaW1qkqr1G9dsurdHhkhzdKbdedYF8
rKG631ev7NNOO00mTJ6qcLxePqqoN2G051x5iSxf/qmERTQZ2L1t4yrJVsg8ZdxkU2/dyo0SFqn2
De2UqqoySa3JkngdfURbh7nRr9P0cU6cBZwFnAWcBZwFnAWcBZwFnAWcBfZdC1RXV8kjDz+07yro
NBt2C1TpRGTOuTvvw25a1+ABZAELnHvDZobY37HdMQGw9p133pGjjz56r8La3dG5r7p2LDg+7M0x
AZ5f0ok3B4IN+7LtvrbfguXBgujh1B/wfPvttxsPuDlz5sjEiROHpflFixZJaWmpeVY8d+5cB6CH
xaquEWcBZwFngf3PAo8//rj8+Mc/lu9+97uCoykCgMYLGSj985//fLfgM2l88XweSBI0JfC1115r
wPtAZYMd31v9BOu79z4LnAcC1D2iXzMTXQXXWzyaEQKqGQEoMxGeDeXM+ERbDhzWXcNXkwJayrBo
yrKtG6YqtX07hu1LPykpSbJ1dn9nkwJbwlwroCVXsdfrNTMOispLZat6LBOam3xZ23WJcJycyY3l
24wu+fn5BuoCdseMGa2e0ZO1Tp3Mnz9foXSdHHXUkXLIIQfL+opqkws6sb7OQN7Q9lYpq6iUpJHp
xnO6WsOj4bGcmDXB9JOXO0YaNbfyJ1srTZ/cRKFPu+aXnjZtmvFwJq9zpwJzBA/otevWS8mqT814
Jp012oyprKFG8NyWEI/MmDFDGhVWl5aWqfd1unBzlpSRKcfqzVRjbLysXLVS2qJSjT55I7PEo/mo
V65eZG64mG1AaLaCvAJZvHixyS8dGxsjGanZuj/J3OwxS5cLA1tKeLTRy/1xFnAWcBZwFnAWcBZw
FnAWcBZwFnAWcBZwFnAWcBbYFQvk/9IXMW6gumH67OmR89plTq7vodRA5fel4xbWEm1vwYIF8qUv
fWm/BdB2LABgPJ9Z7i0Ajcfz3uxvX7qGvmi6BILnq6++etjAM3YEKrz88ssmWiTbDkBjBSfOAs4C
zgL7ngXuvvtueffdd/2KcR9AaO7x48f79+3uymGHHbZTE4BoC6N3OjiEHUQwHooMtbxtu3c9ohyv
W7dO1mgqX/go9oqLi7PFDXf0b3xOKzbySJcCZLI+27t7H4BGqW5urM65Jl2Y7oFLdirD9IFpDbtN
MZyZQ3RPqC5pxOfczE6txj6Fzry62bNphHoDSYvH5/kc5vV1F2pyjtGO76SmdoVJTKN6KRfXSGL1
Nmlq0jzGoaGaX7lZkhKTJG5kokSrB3OrDnBdUaHU1bRIckKqtGz3yqfrlkttZY2BwvGedonPzJS1
odUSHqNkXSdBLNqwSl4uKTbQNnpMk4waly2pY1JkRESdxG6pkPaqakn3Zprj9c1qPh1cfVerjEge
IY0RlQb6Tg9PkU82F0qU5o3m5Cenj5TSzFGyQkN5N1dXi7SOkqWfLhXPx59IrMZ9HzspV7aq93P5
lk3qIb1Nln/wuIHZyZnZkhLVLo1NoepVHS1dCoultlWWbN5i2q0KaZWlW9fLxqplxsN5ylFHSUxC
iKzqbJGkKfkSU7VBtm8qlNSuSImq65CiVRp+u7ZBErNTDaxPyskw7ZRsq5dIBdxT8sbI5s2bpc1n
/oFOkzvuLOAs4CzgLOAs4CzgLOAs4CzgLOAs4CzgLOAs4CywWxbo0KdRX38qXB48e/8C0IGwNiMj
w0Si6w1rFKmCLAAAQABJREFU96dQ0tX6vCrQ85gxsc1+1ndXli9fPmATpKh77LHHTFjO4ehzwA5d
gb1qgd7g+fjjjx/W/klfePLJJzsAPaxWdY05CzgLOAsMvwUCwTOt4x18xx13yI033micN4e/xz3X
IvctvHoLIcb7CjPeu+xgtgG0RA3BGXe6phx+7733DMu75557ZKRGPd7XxOfLHODprAp2KkW2wNkw
426lgdSBYsJuW24NdAY+U8QAZ5YQaXC27jRQmgLDJOPGjTMt1dfVG0/ktZVbNYx1uGxLCBVvh9cX
t33sWJmqM08r9WSQ84NczE3tvkHEKJjmBwBe0bm5uVLb1mhgcoXmbyaXcqt6Mufn5ws/JNauXSf5
BdkasTtPMhPS5Zmnn5Hk2CQTy5126zUXdOzsAu1rqlSrZzUex1VVW3X2wVoRPIsTEyUyPdtcaMBn
2kaYpRCjHs9hYWE6I6FDw3RHSlJSvElCvln1GDVqlCRnZZl80MzGYDaDulOrZ3KrpCREmHHjpTxi
xAjxxqZqzupkEzKbG7m0CQWSkZIhiVOn6ngKZdTo0SbHdOvWzXL88fNknYb/blDPbGYhYIeiolIz
4+Og6QcZz2di0TtxFnAWcBZwFnAWcBZwFnAWcBZwFnAWcBZwFnAWcBbYGxZoUl+D/QlA9wbP2MjC
2kAA/dprr8mZZ565WyZcuXKlefYTCGPpHyg8WSP4DZcEa4s+A/sdrr5cO188C+xp8Gwt6gC0tYRb
Ogs4CzgL7D8WOPjgg+Wmm26SX/7yl3LNNdcI27sqPcI+99MI5ayXbj/FBjwUCJkJTT1QWOoBG+yj
ABGNYXnkgbbCPqI/74vwGWJsfZnRF1SM+JgyTsdAZeW1cGTdC5i2EDoMj19fUQ76CgCafaIBt7U1
NnnRxlDE29Ro4G5DV7sQDjo+OsosE5u6JC0tzeRnBhSPT4yT9sgUSfE2GU/mpOpaSVGn7LrKetn6
WZG8sbbSwOWErEwzCyAtPFxSE6Nk69KPJF4vronHHS6zZk2Rj7zjTbjtkpokycg/RY4d3WHA9Gcb
N0hodJyEbmuTyKYQKamok8K2MEmbOkFWq6fyqtZmaelsl875H8gHKzdLpELtnOwcKU+LlUIF1RMK
8mTSQQcZ8E2+nLWrl2je5+2yekW8CXXd3hYikerdnZycIKVeheEx6bKmtkvKGppkUetaSVpfZVzl
vWo/QHN5ZYVEREQYUEyY8U4F7ZufXygzFHxPmzpdQlo1Z7MnQnK0TP3m9Qq2EyQsOkUeLf5Eti3f
LNsba0348Nr6agO9o0KqDcROCY2UtHCv5KzolFNnHimLK7ZqzujlooG4JVpnDTZ1dRj7N3W0GY/s
5nbNqa0QnTcn+rS1tZnTG67gHageGR5hyhMWgDdxuNod+M8xYDuAHvDPDSEAn5mtAO9o9QKnXcow
XrzGOZ6p3umERo+P99mNtqhPefqmPfaxjl0A60B53njst5MN0Je2uaZYRx9CsbOPF/ra8aAz5Wx5
M1kAb/ruyQP9Xc/oY8fK+K2OtEV9dKJ/+qMcdrD9s49jhJpgHCwRcnpjD8ZtQ8yjOy90Rl/6sR+u
7KccY0AfXnw40RftN2lOcWzEEqFsTU2N6YPjtGPPBTryog0Tll3LoxfH2c94yF+AvmxTn33oRfus
c67QCR1725i+EY5Zu5sd7o+zgLOAs4CzgLOAs4CzgLOAs4CzgLOAs8AXxgL7C4AOBp7tSeoNoPmd
vLvCb3cLtGkrsP/dbXtv1sdLpz9hXDhe8BDXAe/+LLX/Hdtb4NlaxgFoawm3dBZwFnAW2H8sMFUd
KW+99Va58847DYgONiluMKP597//LaRD6U84TrnTTz+9v2L71LFly5bJkUce2UOnQw89tMf2vrXR
DZgVKQOWEQuXfXoq9Az1heAminYoIba7xRd2u7sShVhVXmXEOE93x+L27dPj+n+wAqgCYgHkAFcA
L6BcojbAMiohyoDFNoVbgEtvR7uBl6Xq0VtUuV7iNY+x8i8prqmXsrIymTpvrgFbxXoja0EkMDNS
vZyp35meqvAsXlq8UQaqbSkvkgb1aAbAAfxGZ+cbd/b167VtBaDcDAPetjdtNyANaAcM79DyQLmL
Tp1n8vwkJsYLuZ3Z9+KLL0pxUbHRo6N9u2nbExolHh0jUK5RIV275pKmrVpdB9pt2ar5qRXEd6p9
uXHq6PSaJa71BvKpvbHNx4s+lNkHzZZLLrjIeEyT1xpd33z5TVm0aJGEdUWY8mXV5T5QGRkibQqQ
YxUmYo9mtTUe300R20x7U44+3EDAxR8vkSaFnd5w9ShXHQGMwGBPZIRph/OJHTgGcOxU0InNuFg4
dxaq2vNnbU89jgGH+UGBvkBHzi1L4CTrCHWwCX3Qt+2LY/RB2wBW6tlrBnvTNrrQFmCbelxXzAwG
ogI80Zl+LCilTSCvvf5oD7G62b5ptz+hPexiwS/l6Yf6tAlkpQz9Mwb2MQ626Ztj5Ahnxgrj4Dje
75x3POmByFYYH20wRq4Zrk/6ok/64cVxrmPGbO2ADSx4Rk9eCG2jC3pQj/20QT3q23No9WScvNCX
vimDvrzYTxvoAjSnT178+OYY54ly6Et79EFftOHEWcBZwFnAWcBZwFnAWcBZwFnAWcBZwFngi2cB
APQFj4XLppt8k9z3NQsEgt++AGkggB4O/QPbw7HBgui++h+OPvd2GzyLOBDHtbftuK/29+STT5pn
Tfn5+SaU+97Qk+eOgAxysZNikGdqODQ5cRZwFnAWcBbY9yzw1a9+tYdSgNZdgc/whb///e9y8803
92iv98Y555wjd911l5xyyimGV/Q+7raHxwKGE2tTPuisW8q/rAc0vBj0HNIVaihzID428NmvAjUs
yNZVbaOnmATQPXf1txUR4pX21haJUpdp4FRUs9dAt4kjUg38CleYFabHKtW9ur6+Tj4qLTbQ0Ks3
Fq3hIVKosDIjPUWBVrg0xUVrmOx46YhvEdlaKZ0N28XT2CYtmue45tNVUtylIPLQWSZB99a2Vqmu
KJHwevXKbW7TPMvh5lXR0SwrSzbLmvoKSUlNkQgFnSUK26pbOuXoIw6VhPgkA9Saymvkg4UL5V8v
z5f4tCyZmZ4hqwqXS2lJqXy4fIVUN7VITk6O6pZjgJto7uoS9aCubGxSL+MQiU8ZoeGzUyTG2+0x
rJAXMNeu4wTIAZ/ZRlimJCUbgLhpneZ93rhRtm2vkYioSHn4xadk/vz54ulQD2NOoOo/Z84cOW3i
BHOjFRUXYSDjtm2VUlpaKquXrzTwuVJtUVpfJkWLFhrY6YkIF+PiHu4RfuDEJCUYaIw+iAW/03Sm
SEFBgQGKwMP3333PrHOjB0jlZWEosJR1LjTGBFw98cQTjRcugJIfckuXLjXH+bCgDYDx4YcfbuAk
ZYCW9MO1YWFlkk44KCwsNJMN6A/oiQA6qZOlIcyZZQu8tTebwGzsBngvKioy+gB8gbLoh6Ar7SGA
WDsWs6OPP9RBGCvgGh2oi44AfHRgbPTBErjOuO0+6hF2nXNMHdoD1rLOPtoE1rIP6AwQnjhxokkw
z9gox5gZB2P85JNPTCJ6bILtOMY4sB32BQijl5nI0W1zjln96I91+sbmbBP2i3Zmzpxpzr2dEPH+
++8bCE1fjJuy9MG1QptA9LEaEp920JN6a9euNe0DrxHadeIs4CzgLOAs4CzgLOAs4CzgLOAs4Czg
LPDFs0BMuJjcz/viyAcDnoGohNrm9/BwigXQjz76aI+8zMPZx+fZFs8qeADM0smBZwFCqZKnkmdJ
v/jFL+SWW27xO7XsqdHiDEQ+TJ5/HXvssf5ngXuqP9eus4CzgLOAs8DnbwE4xyWXXCJMepo9e3af
CnGccpTfX2TGjBlmXIHpXAi7DdeBDe2LYjGxzf8MNmMfkbJBxr4tH5wOdPc0OZ+7i/rItEXW3dDO
IGxldoHc2QK9gQwBqAO4eb2+kL4AWXIzj4yNMxAvXvsg73NkhM+TsqAAz+RqwR+Umwpu9oFuoxJH
GDAGqEM4BuwK0ePx6um8Tb1cl2l46TAdDT8Myto88vHHS8UTHWNuSgB5nLyios0GUgJL8YxNUnhY
o57TiUmJcvX3rpY5hx8pbQoCN326Rm677TZ5b/Eb5gYnPiHaAEEAM7ANuPilL31Jfnb7XbjtKs0U
+f1vfyv/8z9/MMcuvfRiue6/rpMW9eQG9HnCfQAV2GsAoMfngWz00HzXYfrm2LBhg1z7/R9IZUWl
PP300wYml7TVGoAXHxEvF198sXzttDNMzurU1BFqAwWeIWrfzi7p1LDm2GTTmg3mx9Hbr79pZppW
FZfL+AkTjM7YJUY9uPkBYD1lLVzlfCYnJ8u555wr519wvnmzcu6+feVV8sYbb5hzCEi10JYlIJLz
QxvYklmI/+///T8DW4GOCxXeX3bZZQZMUt5Cyp/+9Kf+cAnUpe9APbDtvffeK3/605/8gJX2gP1n
nHGGnHTSScYGeAAjtMvYWa5evVoeeOAB+c9//mMgO9cL8JQPH47TD+0jnIeBhH4BzHjXA/fHjx+v
ubaPl+OOO84PwGmDNhkj1yqzecgHgN2oB6TF9lyD6AD8x9YAZ+oBctGRNjnHhxxyiP9HGuOytsP+
QHlmEPMDGA98frQyRtrlHCAXXXSR/OAHPzAgm/Fa72dzMOAPdYDlZ511lnlPMHHgO9/5jrERHuyc
J8YAyOa9gy2oQ3+cd+z/7LPPmjHQzwsvvGB+eNAmY0L3wX5OBKi1S6ucS+xrwf9AjaAXIeCZMGHf
C8HqMBmAtim3K4LdsI09N/21wfmlPNcM53wg2V3dBmo/2HH04/xj5/7k89CtP316H4tKyZIub4e0
1lb0PtRjOzIxXT9f9T2q6Q32NYmIH6EqaVSE+m27pFpoeJREJIyQ1ppSHaP90u+7qdDwSIlOzZGm
ikJju75KhnjCJTIpXdrUtp36/bffS4ROukqPkc5SvSvxBt469RpZmH7epURK17ZWvR8Y2J6mtn4O
hY6KMXW6mgZ+z/fq0ddEYoSGFdGoFKW+tAvBykikR0K03KB0G0rZoJ3pvSI6qam66gb2cApJ1ugY
eg/TVTtwWX93w2A3f1vDtMLNdmakTs7Sz4savefbVYnU781c/YzdpBPOiMDTlzCZkP4qdKJl2wDv
36GU7au/PbV/X9ZtT43Ztess4CzgLPBFsoAFz3Ny+/5O+zztwW9pPGX6E56dBD4U7K/sUI/R//e/
/33zLGCodYdanucMe1sceN7bFt97/fFM4Gc/+5kB0B9//PEeB9CA5zfffNMMEPCcl5e39wbrenIW
cBZwFnAW+FwtcNppp8n999/frw6kg2Ay1P4khNh+6aWX5Hvf+55hTDhVEtnjnnvu2ceHoc/wVMMu
fS6FwIt9a76NUEOifcdDjNOrRgs2UJk/9nmpAc2+GN0+8KxN8BDMtmQ26WZg8XR5xaPlRyjvG6He
vbNTsyRaH3q3bC2Vpu21Ep2VoZ7PnbKqrNLArASFe+E5Crn0oRqgL6mqzuQszpo5TabPnC5Vm7dI
W1Od5KUkyPpVK6S1vlImjB8n3rrtUlm8VVora6Tu/Y+lNTpZqjZukJCZU0QdqCUytF3K1Kt6+eqV
Bv6lJiTrc2SvpCTESkh8jHo+twpzWTu0bKh6HE+YNk3OOvdc+WjtMlm+bpOExC4SkoxnFoyX9o8/
lcbOOmnzRIpmKdbM1OoNrBMrWj1h0oTBdMDtEbpXPbVjOn2wXA2o9tPG9T9gyZwH3faEeiQ5JVmr
hJrQzFWVvjDchP4GUrYqxBufVyA33vAjOfnkE7UuntOcIFFP2QYJVdgeG6Mhj7V5INeEiVNk7LiJ
Onv2BPnXv/4lL+rMjw2FmyQpbYR0NjdKbWODL+zzdg25rUAWP+Aw7btFIeg2hfmt6tUapjoxgyFC
vcX5MYQu5I22kBiYDlwKhJr8sPjhD39oxkA5bkYZJ0ANSAmsBPLRJ3UR2kFnA+O1DusAWYA8beAl
TbuEWwf0A1TnzZtnjlmAbCEdoBMhhAPQlNkwd9xxh+kTSI4e1OFFWfoajODBy3mgztlnny3f+ta3
jIcw+iFAZcZnZ9YAaoHjRxxxhAHhv/rVr+Tdd981ABt4y5htDmu8hbEL0BRI/41vfMP0g13pD2BJ
Pxayo3N+fr55kRNg1qxZ8vDDDxuAjHc1NidEO3WxMcAUcG51tUAYgIzNsR22BnYyDo5jf44xQeSG
G24wIB0d0ZV2aRObAMsph07spw9szHHaZ91OThiMnXe3DPYgpAezb4HfAwk/WHg/P/bYYyacfe/y
TATAvtiVsWEfckcwoWIgwR5MUOCatR7g1Afkv/3228Y+gW3gyY/uTMKhL2yK9/4zzzxjJhsElmV9
V3VDJ179yYoVK+SRRx4JWoRr6rrrrjP6Yedgsqu6BWtrT+0Djs78wYOybeW7svaJO3fuRj8Pc+Ze
LKPmXiThMSSI0M/slgYpff9p2TL/QenUlAr9yeF3zO/vsDm27A9XSlP5RrM+4YLbJWXykUHrbHzu
Hin/6EX/sRC9tnLmXSZZR5wj4fEpZn9743Yp/s/fZOuCxw0o9xfuYyUhf7qMOeM6iR01Xq83/SzU
6BxVK96RDc/cLe1NfU+yGHn412T06dfI4p9/VVq3l+3UekxGgYw96yZJyJ0qIfpdCNDevm6xbPr3
/0hj2Yadyu8vO8LmjpLw88ZKyw0fKLzVqCu9JCQrViIuGS+hY/Ra4WZHv4y9K2uk44n10rmVaXR9
S9iJORJ+zhhp++tq8b5b2nfBPo6EKHSO/OnB5v4M/XpL6OgECb90goRm60QtvrL0a8+7rEran9wg
XWU9YfVQyvbux2zrZLiwU/Ik7Dj9zExQ+KzSVd8uHS9vlo7Xi41dzE7+6Odc2Mm5wvhD4nyTwLqa
O8T7n63S/kKhKE31Fw22srt2C9bmru6L0Pfk1fkFcmbmSJP+hHaq9Lv0oeIt8qhG1RmqnDMyS64b
PUZOWbxQyvT7uLeM0vuZW8aOk0P0fhpw26nfF5811Msv1q2TNXp/FyhDKRtYL3D9zgmT5GidNBpM
fq332M+X7/gsGErZ4dAtmE5un7OAs4CzgLPAvmOBfR0897ZUX7+BAssNB8B1/QRa1K3vzxbYWwCa
ZyMOPO/PV4rT3VnAWeBAtMBBBx0kP/7xj81z9T09Pss1BupnsOUGaifwOM6Fe0rQl4lc63ieo2mB
cUaEhVoOtKf6HWq7cB6fAJ0hhjxg1Ed7+jzKB6B92z7vZ3jyjuM8iAxR5hzWvc9U1OdoChd46R/K
GqbHDv3vq2vWB3tCgXI+z85IyRyZKZkjfN6G2xU8NynUilDABtiKUjAKbCtSYwP7Zh95lHz5y1+W
yKJyY/SsmVMNCKrcVGh0s7MoGwlzrRCNflKSk0QSU8x6V1KapKWnSfP4AjOuyuYGAaxsU0hNXcbH
CcXb2I4F6Ie0K+ANUy8mPEKXrF4qDz74oLkIPvzwQw35nOkHqoDMCPXY7uhQ43QbESCH0FZrq8JV
fXgYpXDSq9DRQL/oKAPu2tXrDvBsTptebEA/IB8wkPGQdxdQWTBmjPEAnqRhttvaugx4bmho1fzS
ol6ScdLU0qiAulXb9kHVELUDtpgxY6qBWTF6zvAEBn4BIms0tLkdJzDJnBv1ygYUooMFiexnLAC4
Cy+80EAwoB5evBYwAiApR9vXXHONCbnNNpAZ6Ib+bBNOmjHRnq1vITC6AmVZAizRDRvwRgPkYpMx
agOgL2CLspSjPHCaNtGba4g2Oa+sM4MZaI33NG1a72eOU5dzYa5xc7b6/mP7u+KKKwyI59qhP3Rk
nOhp7YYuVgc8RAljfeutt8ovf/lLIWwCfWJf+uU4dgFE80Ezd+5c/3HbDjbkOqB9+mXcti9sgs1p
5ze/+Y0Jd52fn28AtB0Xxzg3gR9a2AG9WdIeN/LZ2dlGF/ZxHXCu0JUQD9/+9rflj3/8o5l5w+xS
9KdNlvzY4L1DeeraF20glLPvrb4tvPtH8IgfCKoG9gJQPvXUUwN39Vjn2AknnGC8wZ977jlzLR98
8MFy/vnnG9sxEaM/4f1Ceb48XnnlFWMXJiPgtc97EG9xK3jAM8OJ6wkwTWQFzi3XztVXXy133323
mfxhy++Obnyurlq1yjbVY8lnwQSNkMD11ZfwnuK91Rfc3x3d+upzuPcDb8eeeb2Ex+p3RR9ScMp3
JVvhc0PxKtn8yn3iiYiWtJnHG+gbkZAqax+/o4+avt01a/qeoJBYMFP71lD9rTugZHzuFGmrq5aa
NTvDw+bKLT36Gn/erZI++yTZvmGJVL3+FwlVkJ55+JlScNoP1Is5TTa+cG+P8r03kifMkanfuMd4
cm957X71/K6SpLEHa5snSnz2RPnoV+cbGN27XpweA3r3JbEj9Zr9/oMGOBe//Q9B7/i8qZJ56Fdk
+nf/LB//9pKgwLqv9vaV/aF5OtFGgWpfEpodK5E/UfirwLnj1S3SqUAXCB32pZESevNsaf3Zh0GB
Ne2F5sRJ+Jm++5O+2h9oP2AZz+FgUBzgHPmj2YJHdfuzm0QaNTrK9BHi0Rd9t96munV7Ww+lbF86
RXx9kngOz5DO1QrenytkVpsYcH/uWAlJipT2x9f7q4afPVrCTsqVzsJ66fiX6qbe1p5D042tKdv2
QPDPKRoYDrv5FRmGlTsmTJQTUtPkreoqWaCRT/I12s4JOqHs+tE6bv33j60K3gcpk+Li5Yqc3D5L
x+v37F9nzJIR+t39r7JSWa73EGP13uA8ncD04IyZcu7HH8nW7vvYoZTts0M9ME3vQ4Dp79fsHGGh
sLnnBIbBlh0u3frT2x1zFnAWcBZwFvh8LaCPUkyo7X3V47kv6/QHlwcDjftqt/d+109vi7jt/dUC
expA87yKSfyI83jeX68Sp7ezgLPAgWgBmBqhrq3g4LU/CyxmKDLU8rbt3vXgKzyP5xVMepcPVmZP
70NHJFQZkBVFWwaFmiO6GzwNjGangdCAZJUudXpSl0WFzyo8JOsKVRRqYfaO9jhsGmRXd1Wza1B/
tL0uDVU5IiZKEkPVG1i9a0XzGcd5NdSwqrZ+zWeaN3aMpCbHS9TINCnbXidhDU0yPiJWEjSXc9O6
zerRtVg+W71M5hw2R+Jam6VB65eq12+sPtysH6GeqW2NCoz1war+yslWbzCgZ0lFlQGdIaka0lIH
H1mlIaejPDIuPM3AMqlskFxvuIblTpEtut4Z6pGkkDCiZ0t7aKd0qkHD1CPnez/4L/lw6acK91bJ
kk8+lSZySdfWaZjvWvWKi9Kw1zo+1QPbEFKbdQNHIxXGRWr7mmsZeUe9Xz/44AMJ0230aW1vM8Cp
Ux9aEz4bb2OgDuXbFSQ36kM93sj/d88fZEzOaHVX0jDRzDToUO/T6koNufwvefqpp6W5zufleejs
g+SCCy6Qg448lhjQChdaJEYfSl593Q9V1zr555NPSLP2GRWjIZO17TAFztgJWAqcZQlwBCAiXRom
vUvtoITc5OohdzOemIBGbjCBskBNJgzgZXzppZeaesBGQJppQ8cJNLWgkrp42RKamzcP/XOMvrmR
BDADLtkGcPNCLr/8cuNNbDb0D/CYsNN8yJEDmf6OOuooAweBdtSjHXQiFDQhpOnLQlF05MV4B4Kj
6HuuesDzA5GxAMNZoqMNr80EBuzGDBW8Xaep1zw6MTbWgYt4j5OPmnGzDlhnHW9uQCeCLQHOQGls
DaSkLDrSDnDvmGOOMSG7sSVgH5sx3v/7v//zQ+CnnnrK5NoGJKIn+XjIE851if6/+93vfNei6sxY
sI8tix7ozTUBkCRfQmFhoTz00EMGJlMePemb84BgR65pXvRnzy02t9eCKTiMf5jEMHfuXBM6G1g7
0Hm0XaMb55KwTQUFBXa3f0kOa84H1zte5VY++ugjufHGG00+rv7gMx7jgGfCv3NOsA3Ce//66683
OjNrl3OMEGIDmz7xxBNCjm2EiQpMnABWc77tl/nu6sb1yqu3cL6vuuoqE0q7rxldzGibNGmS0SvY
Od1d3XrrNNzbWUecLUDe5PGH+T2Gg/WBV3TWUedKS/VWWfbHb/u9nEvee0IO/ckLknHwqbLpxT9I
e0Pf3vWrH/lJsKYlacxBkjrtWFn/9C8VxPrClgO2o0eMMh7VmxUG9yfxOZMNeAZuf/ageqB3X1ul
i56T2dc+LKOOvkAAv211+h0bTPQLf9zZN2so7Db55A/f1HDbPo/F8g9fUFhcKHknXiUjDztDSt5/
ytSOUr1oMzZzjCQUzND3mO9mI1jT+ad8TwjLveyPV0ndJt81hsd2Q9EqGXfOLZJz3GVm3MHq7mv7
QtI1VcMJORoOW7+7xuskBb7c+5Cws8boF3OotN71sXSu831fed8rk85NdRJx+UQJOy1P2v+2Zufa
Wif8W5MNfA0d6/Ou37lQ/3s8czLEMzVFOksaJUTvbXpL2Fl636CCbv6Q3OpZHPHtKeI5JF1CZ6f5
va2HUrZ3P2yHFiQY8OxdsU3a7tXJOXpfg3S8UypRPztYwr6cIx2vbPGF1tb7tLDjs6Wrsllaf/mx
38u5441iifrNEeI5IlNC8MwOFrJ7GOxmFBumP5MVFgOeX9Lv6Z+s2QHMnysvlacOOkQuGpU9IHzO
joqWi7XcmNgYmZWQ2ONmvreal2bnSKp+j/9+00b1rC7yH/5Mv5P/e+Ik+Y5GybF6DKWsv6FeK9H6
HZ+t93v3b9ksf95c2Otoz82hlB0O3Xr27racBZwFnAWcBfaWBQpvGkKajL2l1DD2M5yAuT+1XD/9
Wccd21ULVNzue5a3q/V3tV4ggCYHNM+XRo/2/RbZ1TZtPSb0Iw48W4u4pbOAs4CzwBfXAosWLTIO
WzABK6TkhcvsrsBdCHf9DY1KizNfX8LzfJw8Kb8rsrf6GYxufTGAvuqaR336jJSnw4EOyrqlgSCV
s5kHqOp46fNk1lLK3/TxYBeez4FAmXXzrNXnK23WzXHdqWzJJ9ogoGkwYmEUJw4QU7y1RAFYk4Qo
xK1VsAcwXr58hZQqjJ6o3r2Z+aNNbl88AoFv6dsVNqsH5bKSNcYrcGzmKAPFgGUxClI7OjRc9LYa
A//QCeBFPxWakxTY2Kp1yTMNSMvPzxdPi1dKFezEp0aZ40CTtWvXSkekAmCFcerzKREKybFBswK2
kSPT5aYbb5Jrr/uB8YSMig43sKipyZf/1npJUx4gSP+AMOBsp8Joj7KnFl1/6623THx6zGo8WBUE
c5NGHSRWvWWAesmJPg9ePGJPPeVUGTNlsjkhXe1eCQn3yEua55cY9hs3rtaHlKGSEB1h9CYkMBfN
uedcZELjpuTkSVdzm8QozLzyqivl42WfmJDMgC7AIn3zhkEXBCjH+C3Ew5ah+uARqI+3IyAX6Aa8
wgOWceJBC4i65ZZbDBClHUAWUJJxscQOlAVU0yb7AMa2HHWA7njfWmDL+UMP6qATHrjUYz9682MN
kMcxXlxbeKcD7cgVbT8AALnoiscnsJRrkZcdI30PJOSxBhCjH+0QIhsYizczENHagDbxXEU3JgGc
d9555jpm/IcffrgBnnfeeafpDvDMuQYukp8ZwV6M9/XXXzdt46HKuDgvHHv11VdNjueTTz7Z6DN9
+nRzTVMXr2w+gAGmeNaiE7agLvCc94p9v2JjfgwsWbLEnFfswjVBWcbAe41t3i/YivXLL7/ctI1O
5KVCT4A3Y0NsXerTF+eE84suXGt7QtCLMNUIgJ5zjc4DCXkiuJZsToXe5QHHXGcW+Nrj5Pt+9NFH
/e8Xu7/3kgkjCDnHaccKdiYXEiHZ8dQmFwVivzDtjypb/tNPP/V7Stt9u6ubbaf38vTTTzfvEzzo
OX+9hc9ivJ4J408kBK6B3rKndOvdz65u44Ublz1J2pvV01K9jsldHEwiE9P0OylC6rd85gfPlCN3
cc2aRcZDmDL9wedg7UYlj5SJl/5CyhQUly3eEbIlJlN/lPO+K/H9qA5W1+5LGneIWd36zqN+8MyO
zvYWqfzkdck94ZsSN2qiRvd411bpsYxO1c/YpEypXPqaHzzbAsVv/UMB8RWSOedMP3zGOzxprK/P
5soiidCJXWHR8bZKjyXe03WFn/rBsz1YvuRlGfu1G9SrepLdtc8vCQPtmZRs9DShqTV/MeGtg4ln
crJ0rtdUA93g2ZbxfqCTCy7WUNz5we0VrmA4REN0t6nXb+QNM221QS9DUqIkXNtv++d6A5JDsnb+
7Asdl6heyNt3gOfu1r3vl/ng80j9jO/eN5SywZQMVTsgHa8pEO0Gz2ZHm37nLq6QsK/kG1t4l1Wr
F7Tec+h9X+dGnYATGF5bI850KrwGquP9HAw+767djE7D+GemfschT5WW9Gh1o34Hr9RQ2MDpKP0u
bAn4LuhRUDeS9Lv3UL3HQrbod2qK3pMl6HdoMJmr94Xkd36sZGuPw69VVsgPCgrkS3qvy0xUQnEP
pWyPxgI2xmhKF+5t1+h9wUAylLLDodtA+rjjzgLOAs4CzgIHjgWIPtWX9Hesrzp97e/PG7mvOruy
3/WzK1ZzdQayQPrPfM8VByq3p45bAE3kvuECz+g6d+5cASzwDM2Js4CzgLOAs8C+awGc8RYsWBBU
QZ7X49S0OwJngY2QbpTn2Dyn5tk9ToewPY7vjuA4+PTTTxsnP8s7grXH9x0Tonb1fm5v9WN1H3aP
dMXBEGF99GSeF/FHH0EZ8AyUNgds52bT94xKkzN2H+ShoZbkYZOFVRwyoivst+t2daBlZ4gvBG9o
hIZd1DZWa444oFqIt1XqvC1SVt8gGRoee7yC4iR96Fb1wYeSPWOGTItMlBUr18nmijJJT0qULPXA
DVWQNiorV2luq5Sv3yKT1RNvbeFmadWw1xnTpxqYvaiyxMDMusgISctLkykFWVKvDwEjO1okHk/e
5hY5dtp0fSBbLy016lmtYDRZH4B2RaunakOjdLaoV3BUjDRrWOxo1ae1uVXmzT1GLrnoAhPeuLqi
0gA1jw68VR8wRnR7PfNsMVK9cjwh+ji3s03iYzU0dIjeAHoiJFxDbSfoGOIS9EG0ejkDczraOxTu
+rx+O9XLGE/kcNXZq/tVG8kpyJdvfucqqQ/XHLwhCgY1cfVf//6A3Hf3r6VEH3Qert6e3IjFKZR+
+eWXxRsZbcb92KMPqx0q5ce/u9eEdObkZuXmyDev/JbxwI1rUQ8l7QsYxpsfQMYLF3geGrPOuY/S
N5O5erpPMBD25ptvNp6wFlDxZiQnNJ7PAMhtGnIS0A9wBPzTDi/emLYflhZsAikRADj1rQAx2aYf
jgGQ0RdwCgDmw4BriG0EuA18JCQPYB4PZPrFy7dcJyEgAEcL+gGjtMc+ACtLhD6BwujOPkAsnr+E
aaYPwDM304S7Bt4CV3lxjDaB9LT7hz/8wYQ3ZiaMhfuEkCcEM5DY6gvURk87trfeest4KQPjuUas
oBdj5YYbaEry+fvuu8/M9qEMIJZ82+hq4a8Fv9jFTgSgrLUDddCZtjkP2BxoDVhGbDucL+A/IaAZ
N/ahLnpTF93tGCnLOsdse/SxJwQb/Pd//7e/afJx4/3enwCGKfP73//e6Ne7LDoD9Tdu3GhswXEL
0hknYfcHEtrgmsNzubfY651rzgrQmes1Pz/fXNt2P7nLEQulh0M323bgkn740uQLm/dWb6FfJkgw
i4xrF/jcW/aUbr372Z3tNY/d5q8OVJ1z2yv+7cCVlm0lBszGZWs4Y49+eur3AMJ68vhDTU7kxtL1
gVUGXlcbTrzk5/q10CIbn7+nR/nYkWPNdmPJWgPEo9NyNRR2pTRXbDLAu0dhbaepYrPmT97YYzcb
IQrMEfI39yVRKVnmEGPsLXhDt2m/USN8ZTgOgF/yqx03b2M0XDke5L0lLCpOWraVSu1G9WLtJSEa
0UO/6KSzH716VfncN4GiLT9Z5Ncj/KLxEjZvlH/broRE6/VR2SKda7fbXTuW+j1P1BBRoNpbALVh
87KNR3LvY4Pa1usg4puTtN9a47mMF/NOonC3Q72HCQPeW0IyfaAaaG5kKGV7N2a3dbh4V3cFy3Gt
90hIl0lPosuqFumqbhFCmutNkkZq6b7L1HVs09WgEwiLd4adu203q+swLldoVJk7162Vdb1yLUfq
916GfmeTg7k/8IwqtPG1JTu+W24eM07O1TDavYX8zgU6SRGo3arftYGCBVfU1Ztw35nab4XeOw22
bEk/E8TG63c9slbHkav3cXnaP21v0ug5QPBAGWzZoYyjP90C+3brzgLOAs4CzgIHrgX++c9/9jm4
/o71WckdcBY4AC3weXk89zYlz/0AAMMpPE9y4Hk4LerachZwFnAW2DMWuOGGG4TXnhLrvBfYPgCa
13AIzIfUo7z2pOytfhjDUD2bBxo3jzo7/S7P+nxPWSJP/Mx+3TKez92P+PQRlhEYEUS528VCN7o5
kSnnO2YaMdtayZSnancDppUB/gCogJEAN9a5eWA7XCEtgIu8xVFRChEVWgEvRyj8osymTYWm5ZSU
ZOPZTNmMjHSpI6Sy3tREKyBcuHCR5BXkyuiC0bLN4wNebaE+UDdBQ3lz47NZwwVOmzpNkjQXNKFw
Q9vDjcdvbbEvl26YtuXVMNcAoUiFvzEKnhELzYB1qo5cfsUV8s477+gMi3UGrgEDLUwyFfr4g94A
OdoHYMXG+8bX3NJsICeAlOOhnT4QTX/YCqALYG2QNvXG7pDN6m37l7/8Rb22S01+21/pGzpdPRCf
e/BhEz6YsOHUK1XvSjxw0zTk73XXXaehUCNMP0Am4FvVtmqjN6AQaDSQcM6AzOhIiGAgJ2EI0Pur
X/2qXH755X47AJ4py00nwNOGuR6oD2xNP1Yf6nJx2v3Ux97sA/DiefmuhjFnyTlg3NiKMeFdCiS0
HrfAVGwKMOU4ZWmH/uyS/faYPa/Up31yCVOO8QNe8Q4llBCe6RbW0j5CG4yBc42XMF7QzMbmGsjM
zDShr9EP251yyikGalOPPrk28d4GXDIWbEf79I0d2KZd+i3UawHAjS4IxwD0U6ZM8Xnxq/2sTqbA
AH/QD93t+aJPdELok20AJR/0jz32mPF65hxbGw/Q/D5xmAkP6I+3OuA6Pz9/J70YE+XIu8xnB7OD
mHiA/fGuflGjDvQXcpsG8Vzn1Vs4H3jkY088z60QSQCvYfLLM1GAyQ28TwmTTph2C7yHQzfbp12i
05lnnmlmEi9cuNDu7rHkvGcpCLnrrrt67A/c2BO6Bba/t9c3vvA7mXD+bTLlil9L6cJ/6fyhaBNu
Oyw6TtY++YseXseD0S3joFOEkNnkisaDOlCAz136/VNw2vdNSG57rK2+WjY8+1upWv6G3SVFbzxk
Xv4d3SuECh8x5RgDnhu2Bgnx3F3OhtmOVC/s3kIbEd1e32ExCdLR5AsL37tcsO2OloYekDqwTOr0
efqZGGpAduD+A2G9q7mjB6QOHJPn4DRzn2S8ewMO4EFNbmRCUHMsdHTfoXwCqvVYDTsxR0I013Tb
Txf32N9jQ6F3x9sBkww0LHdIgk6ImzbC5JnuXFUj3k+3+aoMpWyPTnZsdPx7s/DaSRRse2apLbSP
ri31/sPt6rEd8a1JEvGD6eJ9S714Vb+wI0caD/O2h/QaDvSe1lrDYTd/58O4slyjx/BC8DhO1vuK
HA2jfZV+H8fphJU7N68dtt7I80wflXofGUwqNZoQkq4TPb3cNwyybH+Ad5zeN9HWD/Ue+zgNL26l
WnW4e8N6eb1qx4SlwZYdyjj6083q4pbOAs4CzgLOAs4CzgLOAs4Cw2cBfvs7cRZwFnAWcBZwFnAW
2PctsLe+s2FGiHlUB0q0oJh9+tInjt0g2hzQPVqomyvrhj4X1rDbJpWj7jT7tZY+szJiq/TY4KAe
sKDQV7Lvv20hYdKqalS0tmnO4i6pUW8hAExKono/x2r+YfUGG5GZIdFdHulSuDcjK8+AsPKVq6RV
H3CNzM6SaAVCMWnxBhh+um69ws0oydI8yF0ahro4TB+8K/SsCvVKg3r0dinczVJv1Iy0VMkfP1qi
tnTKwfnjZJN6C29SL+GkjDTj0Ro+QqFkZ4y0tCswjI9Wr+w2adJ80mH6oE0VlDAFM/WaWzkuRR+4
6a4MffB2260/k0svu8h4LDc1tahjk/oLG1tgVvi+vtjmpSbhFdEN8Vr0wWCdeqy0KXwA0AIgAYkA
aSCePZHAr5i4WDl23jxzPtQ/WlvtlEf+9lfZUrhBZqaPlO+dda5kbmuSJS//Uzo+WCoji6ukQ0OQ
Exq6NL9A1qxZI088/7ScddG5Mj67QFsQGTt+nEydPs14SQNwLeC1Z46JCwGTF4zyOgypVOhGefQD
4JL/GIAHJCXfMGMgfDfHmDxgPWc5x0DNwQjXEiAMyEk/9sV+oB9h0YHxwF88eukX/fE+xkuYemzz
Akaji/WuBjYDVS1gpR/2WWht+wa2ch6A0uhOGaAg0Jht+iBcOOEcOHeMEyBNu7YN9GYffeP5Cqgl
HzG2AmRbL2Hanjt3rqlHXeoxYQC7ojv7uEas0D9tVldX+6E3IZCBqdYTdeTIkUZfoDf1Byu2f8oD
WekLwU6AUOArejNePLXJfQwUpR7l9xdhJhTnDe/zvgT4i2BLQqVjS+vhfthhh8nXv/51YYZ9X6C2
r3a51gjFzjUwf/588/ljy3L9PP7442Z2WGAoDK5lPPyZgIDsCd2OPvpo481Pbmt73q1eLDn35Bln
EgXv8b5kT+jWV197Y3/Vp29J4ujnTe7n5Alz/F0Srrpy6av+7cGseDQiRf7J35Gm8o1CCOreAnzG
O9gTHiWr/n6L8T5OKJgpucdfIZMuvlOW31cjtRt29ii27YTq99+4c38iMel5UvTmw9LeGMQLt7tw
c3WxyQedOv1Yhdh/VS/qQtuMZB+j32vd3tMR8alDgs/+RnqtJOo4xpxxrXRoqHN0+6IIeaLDLxgn
XU36nfTSlh7DDr90gnQ1tkv784U99g92IzQnzsDjtgdW+fInD7JixMUTTE5minfVtErbnz8L6pXN
8aGUpXyfouA54usTJUTDe3e8tFnv73ZMvPB+XKn5oJNM7mfyVlvxLioXXr1ld+3Wu709sZ0VGSXP
H3Kov+k/FG6St/U7e7gEb2qkWSPlBBPrYU25oZQN1pbdNy5W75P1uz5K7wduXLVSKvQ+lrzU38rN
k7smTZaa5cvko1rfZ85gyw6XblZHt3QWcBZwFnAWcBZwFnAWcBZwFnAWcBZwFnAWcBZwFnAW2DMW
6Ml/oIVARN8iRGEiPBH8jJhUcIaI+rYtolJiy2F1lYaa6vMtNnGcpqKvqNlhDlisBYwbjACuAFXA
C/KbjhqVZbaTFSLSRmNXhyRpiOE2DYENJMTrk3yoMVoPIWdtvYbD3uxtlBQtBxSr11DdK7shW/Yh
sw1I9OpDsQgFh60KECO1HVs3Uh8I1mlYQ0LKEkY5d2Se6jFCJueOM4DvldffNKDRo543xpgKAtGr
WfV9+G8Py1VXX2vAjEc9q4lPjzfxrbfeqpAyUtoUqA8keDgDNI884khdEl4aT90OhUqNEq6gMlr1
I/x2h0K/Ms0r+9prrxnQN33GdNN0h2ZlbNHw5OSQxT7AXvLBvvPuIuOhOT4uUQFtpVS2thhwSXhs
xvmhtgUsnZg7xrQDFM3PzzeAFtiJHVkOBCr/9re/yde+9jV/3hbCA/z0pz81UA4gB7DlnAGB//73
v8t3vvMdA/nQdbDXCHrwAoChD7pZwXYAQKA34BkAzXn485//bKA01weAmvDEhAbesmWLCZts4b71
ZAb4IrQH8ONcAwXtOv2ybuEz+mBL68kNBHz//fcNiMUG7MemjN++CamDAGrREw9b8jFTFkBnrncF
oOg0YcIE0z/laRuoixBSiJw2wEc8SpHAyQnoSFuAaK4VoDx2w2Z467KOXgOdV9Ow/qEcdmAM9Imd
OHfoDKglXDgQEmESwo9+9CO59tprhRzIg+3DVP4c/zCJgHDav/3tb419+lLF2ptc0uRQBxRbwdP+
pptuMnkl8F7nc20wAsi+8MILTZ5noDVh0wOFkObkU+fawd7Ylc/JuXPnmigDzzzzjLnuhls3rvMT
TjjBXEd8TvQWjhPGHU9vcon3J8OtW3997eljwNwJF96hXshzNcfzB5pLeb56JneoZ7GC+llfFkJX
f/bQDYPO+Tzy8LMlIiFVCl/+k35/7gyNKhRIA7VLFz2rx33fqXWbNXfy5uUy4zt/ltGnXyNLf3dZ
0GHHZo6R8ef9xOSyJo/05lfvC1rO7iSE+KaX/qhe3bfKjKvvl60LHpfW7eWSNO5gGTH5aA2brTnj
R88Sb+vOoZptG4NZAtOz514ieV/+hnS0NMqKv1w7aHsNpv19tozGmQk7OVfCv5IvXS0a6eSeZT3y
FnsOzxDP7DRpvUM/69UTeMiiaT3Cr5ws3qVVJo/yUOp3zC8S75IKCcmKNcA38g4NIf/gavV+3hmO
DqVsXzqEjoqVcPXwJue1d0GptGtua78Apa+abGzh1RzP3sUKmzX0tmdWqngOy5DItGhp+59P/bbb
bbv5O96zK9va2+SHn60w+ZqP1c/wq/MLZILC21vXrt4pTPauaGLvvYlUHky4wbdi1wZT1tYJtnyx
olxeriyXZ/R7yd7x4+m9TF8PzJgp140eIxcuXWKqDrbscOkWTF+3z1nAWcBZwFnAWcBZwFnAWcBZ
wFnAWcBZwFnAWcBZwFlg+CwQyPdM2l59sAMx5jkRbhJdSp8Jva0g2Qj71P/YgGh2UF8TvvpWqGUq
8ses+eqZTd1DG6bD7sYoNZB4FbaG6wP9ytoqiWislRz1SAaQVWrOOABXbZuC3qJyiVUPaaCaRxSk
6hOzSeNzDAhMUMazZeUq2aAAukPLJMyaJm0K9t5dtcZAvMLSMimPi5ftCqcnaLjalJQ4idF2pieM
kOIi9fSKUHi58GPZJu2SN26CjDn0INN/dVmNLNPwzGH5o6SydIu0R2n+2jj1gNYH5+T37Gypk1de
eFkSUkZqEvGLNM10kwK6MLn88q/Lh4uXyLPPPqdwkBDd3cbogtoDTTHxjldEhA+kfunoL8m8efOM
uToVQoSquzmnCcSPdCgYWLxosYnHDgzE07W9Q3MZ6wmq2KBheqsbJFJzIcZlhMozf3tE8tV7aqyG
FpfyGolsUiM11UvD5hJJU0/bpC4NYd3YKksXfCAXnnGOaYc+8LwETALOLBzuDRA519YDmiXgFxhK
2F2gNmAV6EwIYQtvaRuPYOAZ3rEW6AZCZMr0JUBPC5+BXtRDL641gCc5rfHwJZk71wgwlnEQSpwy
vCwABsqSmxavUUAfYIyxAnyBvPRlISt9IWzbdtjHNjoA+qlvoTKhsSlHGWxoQS1toC/bvKiLbaiH
XgBl+qaM9XbHw9kKdQDn9MV7gjqMk/cJ/VGP/oDeQG32YxcmIVCWthkj55dtXvRNvYGEMpS3YutQ
H+jIixDf2Jw+CAeNB/BPfvKTHvVs/X1tSSh48kFzbeLJ3Z9ge4SxMtkjUPDqZ4LAkUceaTyjmVjQ
n3ANELIdeM+5e/TRR2Xx4p3D5BJ+nWuFEOp4yFuhL3Jl4Hn8wQcfmOuCY8OhG+0wsYLPGCZUcI31
ltNOO81MZnnqqad6H9ppezjttlPje3lH4tiDDXgu//DfsvaJO/29V3z8quSfVCQ5x10uaTOOl5L3
nvQf628l4+BTNNR2m1SteCtoMaBxMKnbtMyEqo7LmaTfR5oiICBnMt9POfMuk9zjrhBvW7MJ513+
0YvBmtlpX8WSlzT3dJMUnPp9hcPf5AtdGkvXycq/Xi+Zh51hyrc37Awkd2qojx2xWeNk/Lk/lbhR
42Xb6vdlnYYpb6ur6qP0gbPbeCQDW3PjxLu8WtofXiNd23dE/ggZESXkjm5/XnN5F+2cz3gwlgg/
a7RGi9HvnkfWDqZ4jzKdhRrymhfg+sMKibrtEAk7syAofB5K2R6dsKH3bmGn5kn4afnS1aoA/sFV
4n2vrEcxzySdRKgQ3vtuqbT9dbX/mHdhuXp1a/SZ0/KEPNYdbxTLcNjN38EeXmnS7+V3tvneO/9W
aPvjsePlLJ18xPqC7v27o4LN8xwR8H0d2F6ECWEk0qb3l0MpG9hG7/V/aZqXYPJJXa3JVT1Z773D
9R6iXT9HBlt2uHQLppfb5yzgLOAs4CzgLOAs4CzgLOAs4CzgLOAs4CzgLOAs4CwwfBYwrEjRgQHP
2qzhCPAk1vVlwDPd6Ya69BpU6tsHs4NN6bPCQPbQG1fRiBFdYd0cp51BgC3qdaiXb5R69yLlZeXi
qY8yAKVGQ/XRRlRyuoGaCUkjZJt6z9bqQ3Y8W5PqtqsH6wZpqKxTeB0muepd26qexkuXfuKHk8nq
CQ2UBJR1KRiuUzAXH9ppAN/I1JEG0tXqA0GgU3hqkkyaNNHosV69ZLcWlhlv7NmzZxnA2qygF6gH
CIzUnHlxSYmmXbwl8S6dOm2SqUvOzutvuF5zCy81INDs7OePR2E2YNkCPtaBm9iEvgCZAGh7HMCL
XQzkVGhP5HSAE/sBkhY+tqqn95o1a2W0R6Gjwk1PW6LUqBdwqYaopgxewrZNlujBJACgLf0z1sGc
QyApHs2ANPK/IsA0IDR25/iCBQvk/vvv90NXYNpg27fgizroaXUy57T7wsSr+k9/+pOB4HhAE9Oe
Mdjytg5tMW6A3syZM423NiGNsZ0Fu4TR5hiAHB2ttzPngW08psnpbG3HeGkfmMgxhPHbfVZ/ltSh
DQuvaZP2Oc/UAfZxDBAOyKUO7XB+OWess7TwmrK8OO8AZtrHTrRHXQv9rO1o1+pNPdobSGjH9kN9
dEZY5xw8+eSTxtvXTpxgPHjqAi0HArAD9b03jjNJAlvzmWJDlNMv7wPk5JNPlmOOOUbwMMbrGAE0
cx57CxMbEIB2f2PnWrvyyiuloKDAAOtnn33WXIO92+M9lJOTY663QPBMuVrNbY9H8lFHHWXC6aMT
sru6mUb0zyGHHGJWmVwSTJhggg2+973v9TjM5AmutxtvvNHAckJ28/5Chku3Hh3u5Y2UiUeYHkve
3xm6b13wTwOfkyccNij4HJc9SWIyCoQw3l71AB6qtNaWS3zeVIlMSpeWat/EibDoeJny9d9KQv40
qfj4Fdn4wr1D9ipGH160hZeyDdWdd9JVJkR277zUg9U7ffaJBjzT3qq/3Wz6GGzd/bmcZ45O6lLw
3KWTw9r+d4UQUrq3AFtDNOUInr2AVSsh3ZPTwr9aIGEnZEv7o+ukc03w0Omeo0YaD+GIG2ba6mYZ
qp7Cot7EkbcfIl2lTSakdkh6tBD+u3Ptdumq2JHCgQpse1dvF8/0EZpyRD/vVa/Blg0Mnd1DCd0w
eZmvmS6hYxPF+0G5tD+x3u+9HFg2dLovzHbHm75rOvAYXtfA59ApWkbh83DYLbD94V4/vjsP8vyq
nc/5Mwpugc9HJqcMC3wmzzL34Fn6fRZMsqIize5KvU8eStlgbQ1mX5neC0yLT5AMvZct1gg//Ulg
2XKN0jPYcfTXpjvmLOAs4CzgLOAs4CzgLOAs4CzgLOAs4CzgLOAs4CzgLLAXLKCIyYBlmLD5182J
/eiJZMQ87fHtYM06t+KWG4aKxgNXjwOjTDldsNpdhyI7Vm05s7f/P21d7VLf0iCx0eHSpEBsa6N6
36i0xiUYqFbZFirt8SlSpJC1SXnPiPgYOWT2DGnXh+11oW2yvW2NelFlSXZcioFyXQoAAUc5iWkm
3HN6UoZs2rBRYnOTTfjlzuQQqW6qltVryw3wW1HlC3tN8us16iVds6HQwLb0saPluK+eIYs/WS5V
+rCuJTJUmhW84SmtaE8iwjzSqrmlK9Ztknv/5w/y+9/fY2BMrOapzsgcJcJFnqcAAEAASURBVFd9
+2qTExYTISxxItfgkb4XOax1vVE9vGPUQ7pSH04ClJL0YR3wpqZmu3R2Ay62O9XY1eodk6LhGlsV
LtZo2Yz0KPE0d8mE1Bwda5KBlCvVLnn5eVKnY1mzYauUqbfLjMyJkj66QJJUh00KmENjFXJq/urU
1ExU80NIG84Z+3GeLag0hbr/dOq5JSAolwpjAkwCHH/3u98ZaAtYAzgDmqz3LnCNsNfkyQWkAvsA
qMHa7+7Gv0APytIuegE8EQv/aANAV1xcbMKd44kJBCdccV5enrkG8AIGCALzEHQGUBMmmfzX77zz
jmmP8OBnnnmmXH311X7drI70x/khl/I999xjwC4gGGgMkEVH2uRcmfeI9sM642WbF+XYZ8EvdQDW
vDjOGAGY6AuwI7wyZRg3oa2xqYXSFjYDkHlRDv2AwtidMPaEh0aoj3CcvimDDAY+B46fPtimDcaB
LvSFVy5hqxkfOtPP9ddfL3feucMz1HS4D/7hmid0dG9hIgBj4Txgd65xzhO5ujk/2M6eZ1uX/Qih
3vsS6gGec3NzhZD1hOjuT4L1E6z8cOhm2+U65P1DuHoL3O0xu1yxYoX/urL7WPIe4hrBrtYOw6lb
YF+fxzow1kiQENk79OHTcWBJm3mCKVS1/I2ghQmbPeHC26Vs4bMSDHZHjcjRSN06QWZ7ha++XltT
vv4biVdv6NX/+KmGBH89aLv97Rw550xpb6oTdCIXs5Xw2CSJz50i1SvetruGtCQ39vjzfyZ4bK98
+KZhyRk9JAU+p8LkK4745mQDeQHP5HMOJl0VTUGhtKgnM6C4q07BYnWL3hjtPOnFttf5iU5+0fuU
3tKVoGkWdEohULlrm7ahgsdwxBUTTcjrtod2eBf763IJd3/JD6Wsv37vFW0rAvBckCBt933Wf1hw
vY6N2JunwLbsPltkGOwW2Pxwr1+QNUpm6oS3UxcvFABroPhnfgbu3I11vIu3aHSOAr2fJG+y9SCm
Scw1Qe9/8L4uU7jbMYSyfak0Vr/7fz5hkjxdViJPlJTsVCwnKlqjpXcJMHkoZYcyjp06dTucBZwF
nAWcBZwFnAWcBZwFnAWcBZwFnAWcBZwFnAWcBfaaBXrzEd9jPd+DO427q/RTRVM588TSUD19tsfj
PZsejvUwU5x8z2yp6PMk8zCrxzNCLcR+U6a7nCk8wB+ADbDKox4+wC2P5sUDbMFdAT4d3nAFGonS
ouCHnLW5mUnGszNGAdq0aVOluLlNioqKpKG+1HgB5iukw+OzNTrRBz87QmS7gtwObRtv4ri4cFM+
3uuDR2mpuSY881YF4HgremJihRyw2yu3y6bCTQqf6n2wTYEtIEjxmyH1GBaoh/6Eb541a7qBSoTM
TlCATAhoPH4HEsAzdQi7i5dgtI4LiAewsR6t9AswxKMVoAMYwzZtaqtopcGx6tmMty6hrSePzTYQ
dMaUqerl+6FsX7ZaNm7aJJXVdSYMd3VtnQFqHXo+jz/ueKMeYDVUPaO2lmw1tsM7GKg6GMEOeAsT
fhko+/Of/9zUBfYi//jHPwTvYoAWL86x9egGkA4ktM/1QF0E+MwLnbEL68BBQkoDf/Fif+ihh0wd
zg+2JKw19fHOveiii4y+jI/jgGoAIDAXmIxu9Ee7tn10AKgxJmxPOQAsHte0Ydsar2Hdgc2UAczS
Jv3TFu0ivmvba/SnHiAS3Szc5lrCLkDOMWPGmDp4k06ZMsWEZQagowtt0zcv3j9AYNsHevMeAPbT
ty0PTOS6sW3Q50BCW5wzhPLYgjYR+qNt7AeA/vWvf232cf3gUdzbK9ZU2sf+kD+eV2/Jz883OZV5
DxOm3QqhzMmFfOihh/bYj/353OBcMBECYR+h0LlW7D7KFBQUGE/qgcAz4JtrjEkEXAPWs9q2PWPG
DHPtlXQ/+N9d3YzS+oc81JxXq7PdH7h85JFHAjf969/+9rfNe/HBBx/072NlKLr1qLiPbdQXrZSR
h39NMg79ijT869c9tMuc81WzXb9lhX8/YaZDwyOlparY70FsDxJ6GmnYusbu6rFsriqSmPQ8GXX0
BVKu4bADcy0njTvEhK6uWf2BP+R2+uyT1ON5umx49jeDAs/BdMs45DQhlPfS3xZKY9kGvz7Zx1xk
vKDRY6gCsB9zxnXSVlshnz1wnQkFPtQ29svyShfDLxwnXTUt0nqvTnDpBxx7l1ULr94SOjpBIn98
kOAFTBhqKyF6HwOUVooonVt8kwTa/rLSHu6xjLh2hoRmxRiva3ugq1ijEWhe6dCD00TUm1radnwX
hGreZ8/EJB+sVm9tGUpZ7SCYbp45mcbjGc9t7+LuyRJWmV5LE9Zb93m+NFI6/7FjAgTFPHOzTOnO
Db57h6HazVTei39W6f3jLOBzeoY8ULSlR8/nKZhGltfX+vePj40z4BhP4Zruewb/wUGsvKOT1y7J
zpbLc3Llvs2F/hqnZ2TKSL3/xQMb8IwMpSzle+sG6M6PiZaLR2XLi5oSojHgfuKwpGSZqPcq79Vo
Qhvtbyhld0U36jhxFnAWcBbYExboHXloT/Th2nQWcBZwFhgOC2zSZ35OnAWcBZwFnAWcBZwFnAX2
tgVgU1YMUOaxk3JHnwe0bihbMrxYlzYntM8L2uctzT7cdbWgr5xB1N1Bu9ntF9rSDbsPaDUY6Wys
keQo9Qbt1BDTeOXWa8hij1diNfx0mEKv1nCvhHeRgzhU5h05RUbHpEp1VbW0eSI0bPIkqW2OkZS0
MsmZkav7PLKlYpNExUdJW02xFIw/SMqK6qRDfZVjwkfIiPyR0tSsD/o66qVKywCG8jJTJVQfoKVp
eyOnp0tk8gjZsmWLFJVVGdjYoQ9fk6L0AbC6XWc0icS3KJTVflr0X3REl0LxeklNTpQ//fGPMnvm
LDnksEONISKiIuSoY46WdgV1Hg9hrQGPnUry1aTYSp/pdrWoqcM1/68erFUP6DKFqNERPtAcoTmZ
6+rrJELhJbCzVnUEXCZq+PHaukZZ+OYiueDic1QX1UdDiZ91zvny9oL3ZdPGbTJ2zEFy+jeuke/+
91h5+YWnBBD02tIlsqlphHqXt8umxmr5yqWXyJRZmi+0U3ModrSqzaNlxZKFkqCe2962FgWMvhDj
oeGqu47Xo3lEIyM19HSbgkcF94yBCwqdgKiA8ldffdVAx/PPP9+cenIg33333SbUNeDSTCbo9poF
yAHnuE5oA9jFkrECb9mmDhAXGHviiSeaNoGueFfikUkZC4nxtATQUx7wCihmyT68roHAeGuSK/ex
xx4zQJB9hFtGB9rBuxi4DyijD+ozdpbohM7AbeAqepBr99prrzX64SV7zjnnmBDkwEC2LaT12c9j
7GTtxWAImUxuZOyCnvPnz5cXX3zRtI2e6MZ+9Dv99NNNXmIAJCCSsQOC0Ymx8nAEe6IbMJVQ8IB1
6mJH9H/ttdfMceoxduCmBessKYtwPq3O6AYct/1Rxn6oWBiN3fAIJ0/w5ZdfbtrAPsB+9LPC2KlP
X7z2R3njjTfMZJXzzjvPTHYgFzfXCrbGTtjBTgJgMsJll11mAPLtt99uhmtDe3OeTjrppKAmAHYD
nRHCfX/jG98w+Z25fjm3vNfmzp1rlk888YQ5v5TdXd1oAwE+I0yAGC4Zim7D1eeeaIdQ1sDnrCPO
loS86VK1bL40a7SJlElHSMZBpwjAmPDbViZedKcByOSHJk90oMRmjDb5nluqfZMVAo+xTi7owlfu
0/zLV8usa/6q7T6u+ZEr1bN5igHSwOgNz/3GX41c0whhuE2+Zv+RHStli/+tntK+8xpMt63vPCYT
L75TJl/xKxO2u0kBdNL4wyRTYfv2dR8KsHuoEps1XqLTck2O6uy5FwWt3lxdIuSbPpCE/M4hGTq5
bKOmBjkpN+jQOis1xPX7Q3+fhU5OloirphhP5pYbhn5OCI/d/sJmzaFcYOC2981i6arVey/VOeyE
HBG9L2n7u29SxFDKMshgunkOTTfjD0nWyXVnFAS1RceCUjMe7wdl0qmQOWzeKF+Ibs1Bjdc2YcA9
R2RKV3mzdLxeFLSNfW3n/QqcT1Lw/O28fEnW79wlTBTTe4qTdd/hmhbmQ73feKVyR0juuyZOUqAb
I7etXSPPlw/9uni4eIucrhPxvq7RYHL0Xuhdvac8KDFJ+0uXNr3H+WMAkB5KWezaWzfTXmGhXFMw
Wv4+a7Y8pvdGFZruZSqTL0dlGy/ruzesN6dkKGWpMFTdTCfuj7OAs4CzwB6wAJObnTgLOAs4C+zr
FuBZ0N78vGLCvX1msK/bxunnLOAs4CzgLOAs4CywZy1gGA+c0HQDW+pmPj7M1L2pG+w2UFQhNOtd
6gwb4nN4DKOubvta0ZYoZ8U0qTzSkGcWtmFbYIClhWOKo6RFw/NFagOEUY7XkNaAq4ZK9WpWSJaZ
mmFgXkNjgwGEabqdrR4e0ybN9IXFjSHH8RoDtwBf3tYO2bB+vdTXdBrvZG83RAS6AYeaNVw1EI82
3nvvPckvUA8lBWKrly0znoa5YyYYCE1ZICIAsqNDjaAADSFX9bbqbQYOAuia1FPlz/f9WUaPHWMA
X1hEmEK6cFOns1O9k7QubeDRbCEc3t4N6rkdG0uYa5+hAFnApZCwBgNSCb2NjTyaY5qbPPplfMCc
c849xzczQMsAo0499VR5+ZkXZOHChXLXXc0GWGZpSPLRo0fL9oY645VbrHkGyed69tlnaxpIhf5N
tZrbM1pefO45YbZkTEKysQ/wEfDZpICDZWtTq9E/Vr1Z9JCG7dbn0+E+73Q0pzzQ/t577zWeztjS
hvHmPAIqGQfgkrII25TjOC+2gcfYh3POEu/La665xkBt2gPqsq9QH3oCSQGuAG4AKHUBZnfddZcZ
C1AWmzHJAHgKsGabJd7Q6MQ1wPhoiz6Bfa+//ro/XDZluAYog8cw5QDU6E3uZwA0HsbsQzdCdtM/
AJqw35wrvKHpH11ZAtPxWr355puNDlyTCP1yfeBN//LLL5txWxA8Z84cc87+8pe/GECPPoyXtgGV
3PyjJyGkJ0yYIN/85jeNvoyX9sgPvGrVKqM31zM6UB/90Il+WHJ+eNEWerHOfupwnTNuK9aDGh0A
r3juMy688LmOOaecQyu0wT7apc3AtmyZfX3JWO+77z5zLngfkQ+acVQqQODcBPOiDhwn4baR4447
rs+hrtW87BY+MxHigQceMO9tvKZ5IXj7433MJAUru6ubbYdIBshwwudd0c3qsy8tu3RSFN67eV/+
lno/ny75p3zXqNel13bF0lel8KU/6ndPkPymAe8bKoTHJEq4ppNoLN2gobP5Ag0uxW89Yjyec4//
uoz92o2mEFC6dsMSWf/03dJSU+qvSFhsJHvuJf59vVe2r/vID5/9xwJ0q1SYjqc2+Z3pEyEfNdB9
3ZO/MGG+/fUGuRKfO9mURD+rY++q29d/dODBZw0xjeC9zCuYdK6q2SX47G+r70vHX6SvlY4XN6vb
vUb6OCNfwi+d4C/WuUnTSTy9QdDNylDK2jq+WDq+LcJtI2En+z7/fHt7/vVqfyYsuLdL2tRTPEwh
dZh6P4eeNdpXUO+jvAs1V7Tq1p8Xec9WP9+tWv0evWLZUrl+9Bg5Xz2dLxyVbRRq1vuKh4uLjDc0
KVV6C/fDuyLbtL8rP10mPx473gDuUxRyIxuaGuXnOgmvUL/vrQylrK3DMlA3xoDH85W5efKjseNM
MUDzR7Xb5Rfr10mJfl9aGUrZXdXN9uWWzgLOAs4CzgLOAs4CzgLOAvuGBUoXbJHkiakSlRazbyjk
tDigLNCl0bzK3i+S1mqNyvTViX4usbcGybOc8n89K8lHHiGR3c/R9lbfn1c/1fPfkPgZ0yVCn7MP
Rr6INhqMXVwZZ4EDyQLwPMuFDWE2bFj/8LxLnXADDpph88TLV8QeI1Exe/TFwjwS617xb1M28FmZ
HggELnq0TwnTsNGArihViDqjI+JlZkauxOiXCF6e8eoxVaigsWZTsSwof1rGjp5goFpyRpqERHlk
ZVmxAXAh+pCrUh94RWsu5Xj19BidP0pzlpbLux+8LZMmTRJvoi9scHRKrEQnxisci5XI+DiJ+HC1
xC3fKJ6wWElQb8QQzavcUBim+aSLpUIhZ1HhGvVWbpMmza/cMiJCWtR7uaW9RWK7wiQhMlZK20oN
aItU7+U3FBg+OnWK/PC//ksa6zWPtcLKEB2Th5MQHqZ5raMkPjbK2CJEvZX1Sb5CTZ9repI6MMc3
d0qEeiSFtDdJSbPCQW+btHZD2WiFhYDQePWKiVOv6vfWLJY3P1kgRx8+RxrbGjWPc5Rc96vbpC0h
WvNP/142vF0pz3+8SEZlpBr7NNX58hOPnX6IXKKhcY8+5nhp0ZCdkTHx+vy5RZ566RXpiIjS8Nsx
sr26XLwKuYHE0VEaNlpnG5ATO1zDp7Y01UuTAtJ2rZsY6QsBzXnDsxbICYQFElu4aMEqg7bwkXXG
ApACyANlgam0wwvvZ+AaYPhb3/qWgbBAS6A8xwF8QDm8R+mXEMjM9ORiJ/cw3qdLliwxbQJPqQtc
BbTiTQyoZZtj/5+98wDMurr6/8neg4QkEEJIwp6KCogo4sC6i7NV+77V2n9dtVprW61Wbftqa1tb
W0e1ttXWuuuWOqsiiKICoiBTRiBkkb3Hk/zP5zy5McQAYYiB3qMPv3XHud978zy/e7/3nMMuUQhf
yoUw5Zw2oCs60Q4IVHQlP/fQizK5fuKJJ8zK2JGtZ599thGHEJSQ8ehHPZCzjGfyQSCec8455lab
9vOMNrGhAIHUxSXzo48+aiQn/QDxixtr/lYgI9EPshxdKAPykzbl5OTI+eefL6eeeqqRvPQJehJ3
G9IdnGgT+FMvz+gjiGjuUa7rJ+5BUiOco4fbMIAelIM4/bB0v1s9APzyl780Ip62uro4gjFlI2DK
c+7tDSEWOJ/eCt85V155ZY/JwQRvAmDBxgYIfvqnu+CKHhL52GODFqk8x9J9Z4Wxzsf9jVE/fd+T
7I5urrwnn3xS+OyK3HPPPdvM1lvdtlnAXnrQUlcpc3946DZr4/map3+jVse/U08Z6k5YvUJgudse
UHcW3WThb74m4759u5LMq7d60qKbfrZXR9fEhe88JXwik9IkXH9zsK4m1nN3efem47vf2u71tnQr
/mC2ufmOSkyTsCj9jtANYPxW7Ug+ffq3wqe7FM5/Uvjsr9Ly0Crh011a3ygQPrsjWE03XPjG54rA
dXXTlkYJP2nI5551v9H8+yXdbwWv9bu39U3VUT8hSRoXOkF/67VMafz82NIv6l6n7Um3xivn9azD
Nu6atfU/FVd1003MaYK/tJeqbvpe2BvZFm69ybun02zU3+crli2VSP0NzNLf0YaALlDoRsueWnL6
wvflrnHjZbW+h2xLfvXpauGzLVmjeSG8Y/X3OlPrK9Hfpmr9re1JdibttnT7V+Fm4ZMeGSVx4boJ
UdtLrOeeZGfS7oxuPdXl73kEPAIeAY+AR8Aj4BHwCHz5CCy86U2ZeN0RMujo3C9FmcW/nCeZM4ZI
xtTBO6z/kksukfnz58tzzz1nhiSs32FswNoIBh5e+h4CL536iISpJ9XEvH4y5NSR6tFT1973orTr
uujyK6+SCff/dY+Sz+Vz3pLlV10t4/9yryw+42zJOG2WjLrtN9ay1T+9UZp0/XfcPXfvxZZ+VtWa
m2+R4T+7ST3Q9pJ8/oIw+kwjf+YR8Ah82Qh8xu10/w7Wa27ZGlGQQ9IL44KCKdUTsV7zpMN0URf/
ujDMwaUl/VfJY7WRpiR7apl7XnfqEQtHYPEQki4jLUiObdy0QYo2F0r/CcMs1nONuvNzVpwQPbwI
QO5tUbIWEisuOVSJuWAcXgi18VnDlTirMXIOUs2RbbVKCteri+uAkrUbN26S1jXrzYI1P9AoQ3Jz
5JO1nypPHC7DR48zN80Qe+hIHZB7+CuHbFPbzc77xKKmTnR6+KGHZcL4CXL0cTOlWfWE2GOnD/Wj
N+WQv00XILFqDlO31vX1LdYPEHzURxrV2DoDkg9is76qxo6QspCwJSUVctfddymZOl5ddcdIo5ID
8UoGX3XVVUbG3vuHO81FNBhBkiVqLOszzjhDzv/2RWpFPFYdkQfJYHDHDbUjPiFjcdk8ZtRoI2mX
fLjQrGYrNVY0/cMHspguVvWtLRBhtAlCEXLWkZgMPu5RPxhyTjr3oRyIYIcLR8rHXTEkMi96uCZ2
5B7pwceRr6TFOhPLdVxe8wyC7vLLL7cjbqzJS/1YOv/P//yPEYrohY4ILo7dHwkEM+KIWM4hS52+
jjilfxDSEaMZl9i4XUZoJ66W2fDwj3/8w7CDdKMOiEqI8osuusjaB24QzTz/85//bOMHQt1ZPxND
GQywRAVXPvQvFrc8o6/oX+6DzbRp06zu6dOnG9bUSdufVat2XKJTNuOJ9jAuiQENXtQHHtx3ZDTX
jGd0Jh1t50MfuT6lLIR6yEta6pkyZYpccMEFls79fXftf3SiLPJT1r4qtBtstiWMD8bvEvWmsCeE
vuHTG9nbuvVGJ5dmR7q5dH39CAHcqC63tycpo6eZy+nazdsmi7aXv+uz5irdYCKfuejt+mxXzrer
m47tJo3R7KWPIhATbpbBbQv3zHjA5Taf3sgO0+5J3dTauV1dk+8PgkXw2h18fx+RkirZMbGychub
i3YGh3r9DYfA7Y30Ju2OdMPltn5B9Up2Jm1vdOtVpT6RR8Aj4BHwCHgEPAIeAY/ATiGAgcN7771n
IfB2dd3m2MfOlIjEqJ2qd08mLv1gs4aRSu1VkazzsSbI2tzNN9/cuR7r1gF7VYhPtNcQaCipk4pl
pfK1Vd/VTfP77rpiT4BtuPMuGfz/LlTSRr1Q6rpp4eNPSM73r5DorCzlEdSIp2Mttqe8X/S9g595
SsJ0/dmLR8Aj4BFwCMDzmHQc3H2OePsLaVde0Nxtq1GiPeywYtZnoWYZjeWzCURWkKzeils24jp4
p7MOPemsOJh5m/+2t2jMX1FCU3/oU5P6yYGpg9TyRpOX1EhSe5S0FWh8ZyV9I5QszoxR95X1DbJp
7VoJ0etWXewKaCzkyAiNU6ixj9Vbo7RU1aolcLnI8BpJU1Ju0oSxRu5tiQiR+KQYqa1QclcX5dqV
JAxR4qu8OF9SEiKl7O33pGTVOpmmxGdaYbl8XPiS9NcGB5qr1XK5SWI1PnOULhxGaR0RrSFSGyFS
Hxl0UwzJlJmZaVaOvKDdoi8q0w5Ttxtav7G0RrwqWalWIeHhkNZKYKslT6juymrSxdXo2AgjDY89
5liJUFfcEHXlGhQ6oIuVIWotDclaX7LFyMCbr/+xktlNoobYsnjOy3LzFVfL7+66S2KVDkfiUvrL
106eJScd8xV5Z/47UrJB3dxobMHxo8ZKzshhlqaxghjakUqyh8l/XntJHn3g75pb40krOVlfF5DL
L7tSDjnoEOmXEiuNNQ1myfrsM09YDOoGtXxuU4vsECUb1RbKyEssaN3LKC9mkEvuBY1zXuLcB1KT
9vGcFzvIO6xzz1dr3SOOOMJ0wJoXgp1yITvRC6GMH/7wh+Y+uitBjFXviSeeaEQu5Y0ZM0Zuu+02
c0mMi24smWfOnGnkKFgilI1VKtawjC9IYEfAkgZilDFMuzhHX5eXdHx4zvGGG24w199YNKMjuh99
9NHmWhnrVwhy8g4dOtRcykPUko86IRMh/3GzjU4IJDqkPMQyMaWxgAYHBJKZthAvGuvu9WqhC34Q
9nzQl7JJz/jDgpo2UhYkNkQ3Lp9nzZplulI/brJpHx/IaFx28xyMN27caNbMWE3TBnR3H1NI/wEf
XI5TFvl5Wc/NzbV6wINywYp0jAfO3dGVsT8eCR/w/vvvWz/1tfb1Zd36Gla7o0/ikPGy5M5vB384
d6egLyBvX9btC2juflVkaE6CuesOLCjuc+3qy7r1ObC6KTRBNxqer1bLW71jd0vzZV32Zd2+LEx8
vR4Bj4BHwCPgEfAIeAT2VwQwepk3b17nWtjOtnPTq2tl8c1v6bqPyKG3HivphwbDzzw3/X4rqk09
GmGtWrWqTA6/6yRJGZ8uLxz9D+k3Ll02v7FOEoelyBF3nygJuf0s/Ye3vi2r//mRehtrlyGnjJDJ
Nx+t67lBK6pXz3pCBh6RLWufXC51m6pl0i+OUjffcbLo53OkrqBGqj/V9d3b37V8B/xo2nabgkHH
888/b14H3fqfy/Dggw+aIQxrXBi/4KWR9S+MSn7yk5/I3LlzbY0Pj4Vf//rXXTZ//AIQmHfZv6X0
/QINb9kms4990Go45Y1v2pjY+NIaWf/MCiOk819cLbED4uWUN8+X1roWeecHL8vmN9dLRHyUjP/+
oTLifybIqgc/ktUPLpGa9ZVmoY+r+KyZeXLY7TvnWW5PNbPqg4VSu3yFWlP/Teo0lCiSMuNI2XDX
3TLyl7dsVU2brqmvvunnUvrvFyVKvVwOuuCbknnuOZam9KWXZc3P/0+alaNImnSIjP79bZZmqwK6
XNQuXabW1j+QpqJiiR87Ro9FEq5r1uNVj8j+qZJ/z71S+Mij+jfYpmX9VsucZLnb9e9h5bXXSfmb
cySga9lpJxwvo35za5eSez5lnRhjHbwK3HHHHT0n8nc9Ah6BfQsBFrMgmc3c2dkrd7LF1pYgJ8Qp
5DFpsYTuavnMlZKlyh5ZMUojdRyDeXisj0wgl3orEGYhGhMZ8g3CDLKQc0jITS1VSt4VKxkbtEDN
r6wysjBj4nizBG6LjLc8ZYVrzfVwoxJgkGPE3MVyMxCZaIRdpSpWWRF0j0vZvDBAhqUpsblhwwbJ
0pjBvFwsVfe2EH+rwpuMJNus7gRrlLALi1Fr3y5tgiDkGiKVGK0XXnih5edFZa2S4zfeeKP86jfq
FsMB0gEGxCBfshxBFxIaSPsrMdhfrXMtuLbq36KuQ5Da9qCeqSNGS/7GfCMV6aiU/ilW/0svvSQx
V18tP7zmeklO668ur8uVCEyxts2cebSENilJqiSzrWZqlYEWJbuVbG+tbZf5b8yXW357i5G0I0cd
YBaw8fHJMmrUKCOeW9SKJTo+xshUpzeEaajq16QPIyMijSgFA8TapEdHRNMPjnx0WIEx+pOHD2m4
hjAmrjHYcJ+yHJnJkf7EnTjWzJDGY8eOtdjPEL3EXb7zzjvt5Q8LZ4hX6pk4caJ9qAOhz2wjg1r9
MjaIFU1fkdbVyZE0fBiLEOTowsfp6460CTKYWNm///3vzSqZNtBmMEAPdGCcoQPpOae9XFM2bqof
eughu8YaGR2xdKeNtGX27Nly8cUXy/e+9z3DiHZQNp8ZM2Zw2YkZOtMu/m4on/jPP//5z40AhUhG
KB/iEQK7q9A+sEewOic/17Th/vvvt75wfePy0R7qJLY2rtJpG/0BYY375XHjxpmbb9KTFgFrVzY4
7s+yWmNs9lXpy7r1Vcx2Ra/1L92zK9n2Sp6+rNteAWAfrqRrPOa+1oy+rFtfw6q7PnetX9f9Vp+5
7su69RmQvCIeAY+AR8Aj4BHwCHgE9hMEWJs64YQT5JVXXtmlFkHe4Wp79nEPSot6enRSu6FKjp99
riz40avS/+BMSTskU9Y9tVz6jU2Tmg2VknH4YJn17rflgxvekOV/XiSTf3mMkGfFfQvlmMfOUqOk
CHn9G09LyayCTlfaEM5r//WJTLl1piSPTJX6olrpNybNCMRXznhchp87XnLPGO1U2O4xLy/PjHf+
8pe/yKWXXtqZtqCgQG6//XYjn7Ozs80o5qmnnpJvfOMb5v0PYw/W7pYvX27rgs6Yo7MAf7JHETj8
rhOlanW5vHjiQ3Lq3Au2Krultlk2PL9Kxl95qMx6+0KpXltha7D5s1cZwXzK69+UcrWYnnfpbBl6
1hhpVgO1+OwkOeDqw+Tt770oX533LXnmsL/KQddPl+j+249VHqrrm4fMfk5icnO30mF3LrB6zjr/
mxIW/5l1cc73LpcPz/2G5Fzxva2KLnl+ttR8vFQO+fcLAhG9+GvnSNLBB0mcErprbvqZDL74Ikk/
6URZfsVVsvmhRyT3qp5DC1JoQPM3l5XL5NdelvmTp8qBjz4s6//wR6nU9fb0U06WbC2Lz4KjjlGS
Oeg1lHyQ3BDPU+a8LuBR+8kn3O6U7WEEF8MashePgEdg30bA8UntSiYbU6y8F2cagDXIR3Y2T5/q
rWCajptw0Gr9bGldaigkLcO4zM68mm2rAHYk6qVERWmcYY0lDDmFshUac3lzgcZx1vjNRRvWS2tJ
qeQqQTw+fYAMDA2XBI2Vl6tEcHh5lQQKS6Vd3QrW6U6eqsISqSgokrLNpZKdkWXxliuqq6SiUWPW
xqiVc1SIlNWWWSxm1VbTV0jR2s1SXLZJsvMGSmNbrSz48F1p3LxJrZzrZHBhpUyP7idHJKbLgSGx
0k9fviKUaKOpoZEREtsUIv0kWuqUHG6PUUI1OkqGqOVpP91t1F+toP+i1sTPPf+CodDWEpCGWo1v
3IjLbY2vGxVr5CGEH7So8s/Sqtxga6yScXFKOkdrfGXlAfkkh2ib29SaVRGvb26URK07Ul1sZ1fW
S051k8aeDpNXn35ervzWd2TO0y9IYr9kaVE2O6CuL/k5aNN2t4S1SnVjlbRG6EtffIgsXbNcbr3t
/+TKqy+TwKIlclxGpoxSojVSX6giFd9PFy+yEJ/KLSv5GJC6JnXJqX0UEq4uxHWTgJqOS6jqgGd2
+owX065EIn0JsQoxCdEKiQvhD+nIPUdIkw8SlXuU48YAoJGWZ5DODzzwgJx//vny+uuvW94hQ4aY
y2mITEhVSE9ccRNrGCKY+qjXlYNbaUhU7pGH+LlsDiBuL+Sx24xA/ejm9HFEMeWRDn2djpSFflyz
2xECHIL41ltvtc0TjsylvK74kAesPvjgA4tljWtuXmQhnKmP8miTc4UNKY9r7yuuuMKO4Aoxjc5g
RvnoQn0cIZ55DlGPm/WVK1fa7kvugwG4kpaP6wfqRdCTMh1BTHkOOzBAN8pw+Wm3w4F0pIHcxtIe
d+bsDGUXKOnRm3qonzycU5cXj4BHwCPgEfAIeAQ8Ah4Bj4BHwCPgEdhzCECAMB/bk8Lm4rfeemtP
FunL8gh4BLoh0FcsZiGEnAFDNxV7fbmt+LsJQ5IlRq1RE5Twix2YIM26rulk2DnjJDo1RvKULMZC
FSn4z1pJnThQ0g4eKMmj+svA6dmy6ZW19sz9M/wbE5SMzpKolBgjnt39XTlCOkMs49XSyQsvvGDr
WL/73e8slB8eFrmHvPnmm2bcgTdMvAziFZDY0V6+PAQik6Jlglo2R6fFSvqUQbaOX/CfdTL4hOES
l5Uog78yVGLS4wQrZyQ+K0niBiVKtHr/hHCOSo7ealxusyW6tpmgxjvhe4hAxeK58t0FknXhBVtV
GTt8mPTX0J4b7/3zVveL1Qtoi3opWPGDq2XVddcrARCQ4mefk7oVK6R5S5lknneuRGp4xIzTZ0mZ
GnLtSKLS0yRSjaDCdK03Zki2xbFuVWO87UmCWkm36Br0yh9fKyXPPW/E91bpt4ER6+K8U9x3331b
JfcXHgGPwL6HQFdO0L5wjXPGxTYn+jGKrhtZzKXdUipavyfC1TV3p4Soy+iuydsx26WU4P9aZpfE
nbm2fQIBBqEVqQSVI/NQOkpJwk0Fm6U+tFkGZKRLqcburVIyOaN/hgzRL8HiLVvMwjIyLkFqamtM
UcgxyMoMJYBHK2m3XnfRNCtRbVaZSnJD8AVilTRO6ScxCQG12EyVlvyPZN3adbJiySrJTEuVkVm5
Vla9uvfGXXKUuuNAL8izFfoF3qjlQaZFhkQKrmgQXCCvXr1GkpKTBNfL7HiDIL3llls0HnOUEW68
vEEKAmizWg1/+umnMmfOHKmorTMysqktSMrGKQEYFhYurbo7EBwCSvhibVxRVynlFeWat8VeAjP0
hYYym3RXF66UmWBec801kvXEY/bCM3bKwZYuRXGE8CtXi1jqnP/OAnn33XelRl2LQ/6NUItr3F3n
V9WZBXiVWhljRVxc12D5Fy5839zONKmL81iNRUgZxFhuVdIdkpa6wQPiEZwcuYjuEKTgxjlp6Rvc
EENIQnASP4a2EZd5/fr1phcY8QFriOSlS5fatSOqIYEhOLmmbMqlX6mbF0R+vA5Tl+fHHnusWfjy
woxu1EmZxLYmDdbUOTk5Vhb6M3YoA1KUPnLEKnXw3LWL/iaNI5VJ6+pAr7vUBTr9D2mMCxGsgqmf
MtB1jbpNwVqddoE/+XHHzVhCB9Ji+U+bqJu6wAh34sSsJp4z5WKdToxl8KAcxjj4ginls/OS5/xt
gRW6cU75jGvIb16maSf56SN0cek5Rx/aCVZgwws2/cczygRP6sfaGivtrgQ0+vMSwQs4z8AIK3P0
pD2UgS6U78Uj4BHwCHgEPAIeAY+AR8Aj4BHwCOwLCDB32pEwt+pJtugaxte+9jV7xJoFc2JCJ11y
ySW2gbenPLty7wHdvL1kyRKbF+5K/u55mJfi4a24uNjmo92fd73GCxYbs6dMmWJrIl2f+XOPgEfA
IwApHRqm6096JA5kcE05iEtoRNBrYWikelFsCBpJtGLEExW8TyqeBfReV0lRd917SlifO+qoo8xY
xZXJdyCe/TA2ccIaGcIzvsudcM66mpcvD4Hk0f073bI7LWwc6dhx0nUc2VhkPOoHCdHxaS5KXeJd
ONao0ZMutho5rQugnSXgBrtJ124heaPU62pXweo585yvSYQa9HSXnCu/JwtPmSUp04/ofIQF8oDT
T5PM/zmv8x7xmOs/XavtVw+zHe8ioaxJ6zh1EtA13nr11Eja2GHD3G394wriQ5hN+5DfOJ/PknQ/
w+p7ypuvS4mug2+87y+Sf++fZdLLL3ZP1uM170FePAIegf0Mgc++7pQq1gv9n7jPwdjOdqkN/oxL
hntS3wtmmKu3yaJ+uB0mLp0jo7s+6FKRS76tI1+GVlSyfkFq2OIm3aEUaIuXwpoSicxOleTY4A93
W3WDNCppO23gIMnLypH31qyUZS+8JEcNGCJD+6fL6upKCa2qkS1qOf30s88IHHiLWiQ3RoUaURah
JC7uXuLCY6RaybIYtWaua6uQsJZW2VK6RXityc4aJDnZQ9QydqlkKSmb0i9F3XaHSL4WFqGtv/O2
30tjbLy9SKQkBF0NRyREyQeLFipJGJDJkydLnMbfzdaXlQ3r8qW1pk4u/t4VRrK1NDYYyZeUkGwk
5NtvvSsvv/iaxGncZIAOCW01gjJFiTlIvObmoEvq6sggedoYotbTSiDmxelLmJaFZfiFF5wvS8ua
zcVxrP5ItLW0ydxXX5XFOtlrT4wy4jIvOtb0DWisZohMtYk2onFsXLqShuVy8vChMj0lTZZFx0ua
/ui8VlwiBcuXyHU3/Ni6rK3DUjVcyfuA/mA+9ui/5NFHnrCdC+gdqrGjeblyJKI7Qk7ywgVpSzrS
QLASF4Vr9+E+JDqENwQxFrpMaiEnIU/RGUtajo4A5hlYkJf7ri4IT8ogxvHLL79saSBXnQ5M9rmG
MIUAJS3PEPfiaG3q+IGGLGbhgAUGznlGOvI4Yp1rdKFcntMWyGNI7ueee876Hv0h2CGgSUdZrl1g
hB6Qs9RDGZy7I+VD/qIH7uA//PBDI4C5jw60g3zUyREsKNtZRnOPvNRJu9EBC3LnPqnrfdIiHMGW
dqELfYreWGDTJvJQP2n4gAf1s8MTgpr2koe8119/velEGtdn6IMetNGLR8Aj4BHwCHgEPAIeAY+A
R8Aj4BHYVxB49tlnbTPvtvQdoOsIp512Wo+PmQM5wUKOuR3zRuZWP/rRj9yjPndkXvfII4/YnHBH
yrHZ+t5775VkXRdhQ74Xj4BHwCPQWwTyZ6+WfqPThLi9mTNyLNugY/Jk6R/fs3jOYTERUqTWqof8
4qiti9zGGnT8YA1p94l60+yl221XKNbPJ598sru0c7wWsn6H223WbAsLC239csaMGbZWdt5558l6
NarBEAQDJS9fHgK6ZPw5GXRMrmx4bqWMPP9AqV5XIbUa4zlzxhBZqedfhCz66um6Rt8i01d+YpbE
ro7Cx56Qtbf+WrIv+o4Mvf4n7rY06NjZ8sqrcujcNzvvdT2JGz5cUo8+SkrUwypW0MiA02ZJ0dPP
SNb/u1Ai9De3aXOhQCwnTBivoUOjpew/r1u86NIXX5L++s7hBAvrRbNON2Ict+G7I9QZnpRo7UlW
TmTR6WdqmM9aixe9o3LhUHhXcOvTO0rvn3sEPAJ9EwHHJ1kIZ1he/Q424jl4ErR+NtWVWeaZEcF6
Q7+s4ZqVFJXgdq6OzBw60neccAgW3MklcdnTt32XHO6UCRiTmebmBrOgbIxNsElNlJKQQQm6E07T
eMYQYDSopKTY4jBXVFTaj/yBGld3fdE62Zi/0Z4vWbLMiK7h+uU8SmPwQt5BdPGllhiuFsiVFVJT
XGMWmQEl8A6aeKCEjmy1PFhm9u+fKs2aHsvMsFBl35XQS00KxiHY3NhsemDxm5OTIxmjhwpxQRr1
/jAlnePj1bpaXV1EhEUaiVqhRDcC4Ub9ufqiAtnYqMReVJW6o25vtp1yCYnRdmQ3EgRmbGyK6ROm
5DNtjogMlUEal3qgWoKPHj1axitmIzWOQ1wgVl588UVpa2qzOMgjIgLmanlDZXGQINWdULwgRWn9
EJIJCXGmS1RrpFnXQh5Cysak9rfJYUx1jVkz03ZIRkhD+tLtD9N9T0FRfMDUDQd3u/uxO8HYdVxw
Tts4okeSulcHJ0hM6oVE5bkjmBkrEJikYSxAcKInfcYYIh31QX6SFiKb9OCJa2vIW+rB8jeIcbAM
6nLksNOBdnCfDwIW6Ol0ZncjdXBN3Yax6kL9vIhSDrohjlxGb/KxuAARjL7c45q2QBxD4vKMdlMm
97hGP3TBkppn5ONe1zIcIUw66kE38oMV45UPuqKjaxeEPRiRlw/PKJ97tAHdOSJuRyfjiLajc1c9
GUfoilAPFuxsIOA+6Rn/6MM5Qn509OIR8Ah4BDwCHgGPgEfAI+AR8Ah4BPYFBPBExWZn5kHdhTka
z3ckxx13nFx44YU2jyU2qHPvetNNNxmhkaPrDLhtJYwRG7jvuOMOm+ND5n7rW9+SSZMm2byNMFIs
2jLPw4L6Bz/4gREjXevHYvnRRx8V6oEU/+Y3v2letJh34tXsgAMOMOKbeRzrJriVXbhwoc1lacvF
F19sdWGdzUIx4aCcnqxHsLF5/PjxFoKK+R+6In/605/MMxcxUe+++27z+sb8lvquuuoqm6t31dOf
ewQ8An0PgVNPPXWXlJpz4XNSvrTE4i+/c+VLSoRFyBH3nGQLzdsrsODVtbLyb4slNCJUjv7n6ZaU
OM4Qh89O+5tZpBInesC0wdsrpvPZ8PMmyNuX/1vWPLpUcOlNHN9tCWtTbn2KteSvfOUrZtRCeqyh
8VqBF0LWFVmLI+zeMDXg4d7jjz8u06ZNszU8vttZb/TyxSKw/aXEz68zDjl5hKx56GP518R7zHJ+
zCWTBGMy7fQvRlFXrju6Wty1O3bcz//TvZIx66vm6vrzSYM65lxxuZS8MNs9lvRZp0qpGl7NP2iS
WVFD+o7/630SpRbFOVdeIUsvukTCdG02HC7iB1d15nMnbry76105Vqp3zJXXXGt6B9Sza96Pru4V
8cx6MOvOgwf37m95V3TzeTwCHoG9gwDzn6B0fJ8aTUywXuUNlWkOC1HDVJfCnXDNOd+FpI9KSIWT
srv2/chF8P9gmuDDjnvt0tJQLWedeaZ80i3QPCV0l/Y2dbGtJF1dY9Byc5qSs5Bb6Ur2QYxtXL3C
rlNbNPi0NiY9JGiJWV5fZ8TbJ2rtnJAQLwsL10u9Eq3Jw7Nt8tWkaXEnnTRwgJGZzUp6MSkLbw7T
eNDqujl/i5Kt2RL+wVy7PyAqSZZ8uETCEhNsMvZpWLORZR9VlBoBV1PbIOn6Bd7U2q76RGuMkjRz
sZ3QQUA2t4UYSVdcWWUkeq0Si0wiA4E2I6HVqYwRh81KTOJ+OCY8SE5nqgUz8pUDxhthV7S5QA46
+CDJPHq6LF78obQPG2H4NLYGyb6W0gJ19zJWajevkZEjRsrIUVPlH+pWK7S+TY7Xl6O0iWOkWMnV
oqoSI/revPPPFuO4vbLMSL9+HeTzoPogDm1FmyRVCc2YSUrAK2Z3v/eOTXBrMtLtxalZBwgSHQgO
oHA3x+44toZ9tnvbEnb7p+uPWccgssmrSwYJ6khj7nFOv5MP4tNN6pkcQ6JCwONemh8qXuiYIENq
8qNFHsYOJCkTW0fiUi/ksSPUqYNz0jImOKc8dKE+PuQlHUK5YINe1Ef5pIesRSiHtM7tNM9Ix45I
9HD30YNyHHFLfejNfUhlSHTaSFtxVU05fKifOklPeejrCG/ygANpEFxggxH3yUtbIOHRgXvUg7i2
85z6aRtHFjcg6BGwIT060x6eUw7tBh+HC7qhE23BEhuy2bkSd2WgO2VQNh/yIJDRXjwCHgGPgEfA
I+AR8Ah4BDwCHgGPQF9BAMJ2e+4gIYZxa91dIFYJAbUtwcPXueeea4/PPvtsWbZsmW2SxlvURN1Q
f/nll9saCuVM0DiSZ5xxhlxwwQU2Rzz//PMtvBNrLJDSzPt+9atf2ZpEVlaWkb5Y20EM//jHPzb9
OP/pT39qLmSvvfZamx9ClCBY9TE/JBTYiSeeaMT1jTfeKPPmzZP//d//tbUMNrkT+okPhDnrK5Tp
9IScYT75qnpfo10Q3H//+99NT+qhXOa2N9xwgxE3EDWPPfaYxUc9U9eLvHgEPAJbI0DMZzaL7Izw
vbK976udKas3aSFeIWD3pBB28NHhd8hZH1+i1qJqoJQa+zm3yc1VjdKm67HEhP6yhHVF1nkxmGEN
rKtwn3Uy1vS89F0EGkrqJCIuUsLj+s5aZLOGWXxn2nSZ/MqLghvrnZVW/S0P1Gh4S13Hx122kzZd
PyYmdJR6ZNEFXHd7l4/tusY8d9wBcsjs5yV2aF5nOW26vkuM6ajMgZ2uvjsfbuOETW68N9x+++1y
wgknbCOVv+0R8AjsCwjAF4Xqd09UfJp910A4E1Yj+L0DoazkNJf8E2SclZQOfifZv3oeHjzpYJs5
aAGYRZNOy1fpONGDpeVWLwUCC5IMggtli9WqOUxdSCcoGcaPNuQXP+zN+cWWJi0lzQiwQETQSnNI
copN2JLUzUN6epo0x8UayVWrX7IQaa2REVYGhBkEW11preCCO1G/lAcOzJSN+iW5bt16ScweLoOz
B0uLkmFJiUkyMDFojcruYgi0pctWSJVOnPJGjDbCrCkyXJYtXSbD1CIbUi09c7ASag3mYoWXECaA
tGuzuqCAeGtXEnq9utGoKt1ipOpgrRsCbtz4cUbYlW5Yb9e4/sbSNDpaLbIPmigFagmOJW+l7iBi
ZzJ4bVQ3Lu+//orF9/3+lcPkNI3xENMaIeFKijdruyFj07IzDK/B//MNfXl9TFrLSoyADTQ1WHta
axqDVqjhOjiiIq1cJp+QqPQFR/qDDnXEZtcu5Z4973pzB+euHHckOZNV8KFOjjyDYGXXNAQsu6uZ
iPMSh/UyO6t52WUX9sEHH2wvvbwAMuH96KOP7KWbeM9Mcol/TL9TJhNkYiFDns6cOVNee+0121V+
zjnnmOW602Hx4sVWBzGW6XtHaqMn9TKm2JnFB3KcF33q51lOTo5N/mnLggULbCzQd/SnI22Z5NMO
JvmUcfrpp9vOcuJwI+hG++fOnWvYcI/yIbLJS6xmYlZDYE+dOtUwYlGAv5FTTjnFdmYSK5s2UzZj
EHfZENDscueFmJ36PAdT8oA12IAVCxxjx461uhmfLA4w7hjPYAVp7Qhy8oATCyJYOIMRxPNDDz1k
uDAOTzrpJMnNzTX92JVPvHAIZ8pBB0fw004vHgGPgEfAI+AR8Ah4BDwCHgGPgEegryOA5THupZnj
OWFuxf3eCvNH1g2YgzNHYs6LsFH317/+tc3NVqxYYXM15mu46GauxdzwY40lSUzSH/7wh3Yf96/M
zdmk7YR51nXXXWeXkNHMvZww3/v+979veZYuXWrlMZdjMZi4pswbKY95J/NPyOfuwmZo6qce5ujo
ypyTdszW2I8Q6NSDrtRNGvDCNS0Wgl48Av/tCEA09yQ93d9ZQrqncveJe/pdEZMR36OqkRqi8csW
vp8x9uhJWBPz0vcRiEkPemvsS5pG6tiZvnypxWneFb3C1SCJT3ch1nP3uNLd0/TmOqCGRsuv+L7U
r10ncSNHbEU8kz9U3weis3r+u9hW+aybs07vNsRtK52/7xHwCPR9BDrnGJ1TDdxrB6lmnQQYeWxk
NMSz8tDKKGuj+FePPNfzcOOXYaz1wnHNdmIXgNB5wsXnLoM3e/43QtnwlmZ1RRwXJaE64Smpqg6S
u0kpsrG0XJLUuLRVrW8h+iACI0sqlVhUd8MaA5kJUUtohESrq+gRY3ONtHu3oNDS1gVClRxeJVPi
lRzeolafpZVGykYnxEhMYqw0tNfJnKXvS1ZknMRlDJLykUNk7JgxUhJolY+VHIyI1DRaHxbMDYFw
ST9gnE0wM6IgR+skrlaBUQJt7bznZdTIUZIZnyz9wtQidHCWTSALCgukpmCTVJWVGilXvKXUCLlM
jU/d2NCuRLbulktNlLR6dW8cESmFmwolTUnKERHa1o+WSJPWc6BO2MrbWqVay6pQt9qbNmyU6JYm
3Q29Rtu22kjA/3zwlhyqrsVjo5J1ptomgdhQm7AGdMtAVUOtNGv+QrV6jmptkcbmJilTS26Iy0i1
1K5pbpHIzCyJURcymxTH5QVFsgVLbm1XTWPQ5XNYu1rGtmn/dhg4Y6mOtIbqENHProobmEyenfUr
ejEBh3zNzMyU83V3N27FIIrpa8hoJsBMtH/5y1+axS+k85QpU4Sd48TJghD97W9/a4QvcbQo78gj
j5TLLrvMJrwQorgMW758uZHD7LSifmJtjRo1yn74jj76aGFnOJsOeIY+1M8EG8L329/+tsyYEYzr
wqSdtjBJZ5GADQ4Qvrgnww0PixLkY4MCBDETCRYOIJchpnE5xoSc9CwaMFk/8MAD5cknn7T2MpmH
qOUllzasXr3aCGR22vMjTb0vvPCCtZd42rgUZwc9ejjy+amnnjLymDaxeEA8bPSBvL9Jd66DBfeo
C8ypD0Ibt0Jj9G8C12rsbKV8Ficg+dEHi2v677vf/a4sWrTI6sYtEy/j7LBnUQG3bU888YS1lbIg
5ckDJhzdONjVceTzeQQ8Ah4Bj4BHwCPgEfAIeAQ8Ah6BvYkAc0TmOl3jFHLt5rU70gUrYhfjGQL3
6aef7rSIZqMvm4IR5pUI82DmY3iZYtM0860333xTfvGLX9jcEbfXyLbmVszhIIOduPJJzwIw9TDf
dRvDXVk8Y47YkzCfIz/zQldeT+nQ7bbbbpM33nhDPbsttrkrc0bmmF48Av/NCPREKO+K5fP+gGFY
dLgc/eBp6gY56IVvf2iTb4NHoNcI6G9pSMfvfq/z7MWEofrOM/Ccr0uEchaJaiS3J4S1b7fpbk+U
58vwCHgEvjwEmEOYcIBP1oMxyGb93Mkvuwd2JIt+9WnC4EmQbeRGRwEWGFovEW67f7uebWviY8l7
+MdZvbYrAZ2gkyqILXb4rlnzqZJdH0tJcYm0qfUwRGBiorrGHj1ScnKHSImSuuFqvUv+Lermoby8
yqyG2XnMJIrdv+ywZdLErmIE4o17EHnZat06Rnfk1tRoTFx9Tj6Ibqw+mXxlDMiQJCUsIeQQCLON
GzfaRIvJ2MqVq8zl1bJln6iF6FojOwsLi0xvXN84C0+XHz3pFCxQ2blcrO3atGmTWlsnqi7ZVmej
Er/oQBoseHHTjVst9N+wYYPtKoZcZNLWCqdDAABAAElEQVSJRSplEmc6pENPdlHX1Kk75pgEtf5d
oET1UnPfBfG3YMGHqv8maVIiuqUlaHEO6Yt166pVq6RB2027+DCRdAOIY9cPWLhnnO+suLKYqDJW
6B+HO+e49IJ4ZkJ96aWXyne+8x3buc2ElZ3XtBkrXchb0mFNfOWVV1qfQ5wSo4UfMjCDhAZrdnKD
JwQ044jxwQQeq2Mmv5DKDz/8sJHbLB64NOiDvmxGANuVK1cagc9YgNwGKxYQIMyJaXXRRRcZGYwV
M9hSjvt7oG7GAvdoA2OMGN7s+KK/ERYceEbZCGU4N9XsHkdPdEFIA0nu2kL70NUtIDDW3SICOkBs
syOf8Q/JTtmMJXBASPPOO+/INddcI3feeafMUJLdEcXo/Je//MWIchYQIP7pP3SA8IeshpimDtpA
+yGlwRYLaFywkZ6/bfoFXL14BDwCHgGPgEfAI+AR8Ah4BDwCHoF9DQHCDLlYhRy57q3g2prNyJBP
bBxm7sScrLswp+UZ8yc28jKPZL7FfI+1DASPYKw7MI9jXtpVcM9N/ptvvtnmse4ZZTygobv++Mc/
2hyUTdjMP52lMm7H//rXv9qcjbndzoibV9I+1jHw+PXPf/7T5rzMMdGTubkXj4BHwCPgEMCwJfPo
XAkN3/o7zD33R4+AR+DLQwBiPPWoGXuMeP7yWuJr9gh4BL4IBHi3N+k4QD1j1Wx2zPqgg5rWk84E
QZ7MLoNPg263XWJ9wDOd73zGOXeW8tl9JkS9kdDWNolUm+t2jesRonGNI0Kj1Io3XuKUOI2KiJFB
mUOMlGxt0hi78WGSpDGLIbBaW5vUerhcDhs/RqLV3XRpRqq0qhVxrk6umPA0tYbb5CwuTF13RyRI
W1KUkc6R8RpTV8m6QEyYDJt8oJRmpimRVy+fLlyixHWhZCbESoWmCai7b0i7ulq1yo5PklR1ez08
ZbAEttRIgVodx2udMS0xcsrIsRJZXS9lVWulXi2yF69fJx+pVWp71gCJDzRLnKIXER0h/ZIzZUvR
ZomPjbB6G6prZb264c6NSLL21LfUyCerl0rOoP4yYsRwqdP41f2amkVqyiS9LUxWq0vvLRXlsuaj
j83CdIR2WFRpk/zx6mtsQjk0OUvOOussGXHyTElRi9pAW6M0lFXIxlX50lzdKIH2gNTWKcGr3RJW
2yRFEQ0SmtAukXlDZbmSsAuVuN+i7sjrozSmdmikuj5XAlMtniM6BkYEFtDap1wyqNo73gltnPSm
ozvSdB8X9CXCLnE+kKaQuiNGjDAX10x8qY8JNeTnAI1VAakMQYp7adxRQ8hj3YtlLxN0SFEmtkzE
sQTGDfdzzz1n5brJMH1LfdQFyZ6Xl2fnEKS4l4YQxrqYuFnoCMGLOzSslNksgLU5ZTliF70gU9lV
DhnLZgF2eVMHiwAsGJAWgt0Rwl3LhaiFcEd4ziIBBC15aLdz3Y3lN6Qx8bXYWAGRbP2hfcOCAfg6
vagbcpl71I+LbOoEF1ySUw5jkGfkpR7q4/6tt94q56sV9D/+8Q+zEGe3PZbbEPn0BSQ6LrnBBaFM
ysnJyTGSn7KIhUY5WKnj+ptFDvQBH3SmTY5Et0L8Px4Bj4BHwCPgEfAIeAQ8Ah4Bj4BHYB9BgPkb
IY3cPK63ajPfu0k9UDE3Y/7E5mXOuwvzpv/7v/8zD1tsumbOhncr5srMF99U62cI5JEjR9rcqmt+
5rhsjsYbF7Gh2SxM7GWEuS6WyMxrmT/jGQxhDo1ef/jDH6wu5sJs9HbCHG5HctBBBxmJzXwdN7TE
j2ZO/5vf/MbmpczfcevtxSPgEdj/ESicmy/9RvWX6DQfB3n/7+2938J25ROK5m+UprIGyZk16jOO
Yi+pgvFc8dPPSL9phwXjKu+ler/Maspe+48kHDBBcBXeG/lvxKg3uPg0HoH9EgGmCco7GiOs52a8
rBfMH3CorGyiMsBKS3fwi3qwu6QL54J5hrHW3HecNYls/qGMtiYwk+qOiixZL/6B7EIgAREmXRBU
3IecClOX3GlKfIU0txqZHBUeadar7S0hSnbFS1R0rJQpcVqmc7VMDW6fPCjLJmIV1UGXvnHqPhv3
xh9tXG0uf48+81SbBG1SIg5r34w4rDTjbMIGWUdDsfRkMteibqkDTUqK670ctZAeOHCAErhV1s7C
2jJzk3xqXIasUEvYhOxgrOblm/IlS3c+H3jS8bJArY7zhuWZpTKkI1bVuLtCn6JNm2WAus4KLPhY
Cck6GZCicZ2VvP5wyUol5BplQ12zWVXXjjlQJ4TDpExdMmMZSzmQfFVFhVJTXyMBDesUG6vke0iB
6X2Iuqk5UgnCkPhII2+JoQ2JGabkc0BdisdGBWNlgzWEaZLqgiUvu49pN/jTF6GxQffXUUpIQ152
TjQVC87dhx+S3kpX4tmdUw5WvfS5I02ZZDMJXq/EKO0FL7DDupk4zJCgEJmkg/AlthT6Y83LMyyZ
IYFxkc2Rdj7zzDM2gaY+CE9Ibs6ZwDP5Rx/qd7uwKZuymCyTFuKZD2OSHefsTIfYdthACp922mnm
Mo3yWBBgwk3b3EICbeScsUW9jHHK+tvf/mbtYmGBdlEH7XZxlKmDfOh377332qIBbtpw6U356Ep5
9BvXLDS4NvGMelhgID41fY1VN7jQhnvuucesrimbtIwV8mNRD05gx4dzCGV2w7OIgYU1+DEWqRPC
Hrfc9McDuosegfDHe8HPfvYzOV+J7BtvvNF2vbu/BcqgTi8eAY+AR8Aj4BHwCHgEPAIeAY+AR2Bf
Q4B5G2Qwx94Im3gJ97QtueOOOz73iPWDhx56yCyXmRO7uSXW1txnDsz9rsIGYCdscuaDOM9TzDOp
izkjc1MnzKvdfephXuikq97d9WSjsRPmpRDibp7MfYhvNwdn/ujFI+AR+O9AYOFNb8rE646QQWrV
/GXI4l/Ok8wZQyRj6uBeVY+RCWtYGJBg9ILXQYwzvPRNBF469RHBZXtiXj8ZcupICQkzgmKvKduu
65/Lr7xKJtz/150mn1t0nL0z9XA5+JknJU69j8w74CBpKS/X8JahkqghErMvuUj6zzx2r7WltxWt
ufkWGf6zmySlt+TzbmDUW518Oo+AR6CPIEDYXvc1DJkMk6zcETRyGCraMw3zo6ehQetWe05StXEN
5iSbziL4Pyjk7zhnckFh7lFHih0e+KFo1fjNLdDckXqulsINyofHqBJhTS0StaVCovWTqJbLERrT
+NPGLVIV3y79swbK4BF5smVwhrSMHyEt48ZK6/hxEqZWw61DsiW+f6K0a9zktKg6mX5gtoxLDsjA
gJK3SxdJdHG+jI5KlKzmUNlSE5D84mqJjY6RgRkDpL2sROKa6kXa1No0MVrClJguVlJ4ecFmKayt
l9rwRpl64nQ5Q+s+JSdLomorZOLgATKkUV18vzFPspWwPrR/mqTXNcqUtIHSqDoPP3istS+xf4r0
T0iTkUNGyYGx2XLC0CkSlRiQVRuWyxatY8jQPInrnyGvfPypDIgfKLlpeTJe40Mnr9ooQzRWc/ya
FRKv6Iwboq7ANVZ1ckyi5EbFyCGZg+W4MXmSF9EuS/7weyl77GGpXjRfit5+TWM5K0k4JEHSlVwc
m5srZ2WNlOmRyRIbUi1pcc0SnpktBS3t0hgWoVbRirn2Ax/RGNHR6s68VYnLgPZtS5jGguJa+6dF
R0xLaECaQ4IxqLbXyYwL9+majsHHB2IX0p+JLedMiLnGahaSFKITQrRcf4SZAEOAsmng5JNPDpLq
OrmFlCeuMxNaCFbKZQKMizDcdeP6GStmrHUhYnmRdPVzzoe8WCvzssnknTogaM8880yLv8Xub9pB
WshWzl0Z6IVLc3aMYxnNJJ56cGMOuUqbXHoIaD60lTS0m3Kuv/56I9whsPPz820RwOkKbrSbPMh1
111nmyV4CaZs6mDRgfSQ88SOpkwm/tQFnuSlXew6T1GrfnbAY/3scEEP2sXCCSQ7pPsFF1xgFtYT
JkywdlM+ZPWJJ55oLs6du28WECCYuQ9hjxU0dVMnsaTJj5U0lun0p2u7Ncb/4xHwCHgEPAIeAY+A
R8Aj4BHwCHgE9lEE2Ci9N4R5miOeu9bXnXju+qz7OXNE5o626V4fdiWeu6blflfiueuz3p5TV1dh
07Unnrsi4s89An0XAcLNEc4Og4L1ahSyq3LsY2fKgMOzdzX7bucr/WCz1G+u7XU5rNv9/ve/t3AB
U6ZMMS9+3PPS9xBoKKmTimWlcswjZ8ihvz1urxPPu4vIpvv/LslTJhvxbGXpOBt7950y9b13pN/U
Q2XNz37xGeGyu5XtwfwHP/OU9Dts6h4s0RflEfAI7C8ItNu7f/D9f6tZAPe5YT+nGiZIr4NpO77m
9Fmoht/oIJU7LGDJ0CFKIdpZ5+TCmGv3dMdHCC2IKj5Iq5JlLWrBCamGNWaJEovV1TVqkVqmboaL
jGAj1nG/fslK8jWYhWhKvxSNt5SlFrApEtOxc5fyILpcvFrcBh+griFGjR6lpDLufhtt0gWpieDC
GOIyPj5O8nJzjLzDkpSJFwQeEyVIUHYJ19YG3SGjB/GZizQfk75xSoAzqYL8g4DEshQ9IARzcnJs
59xhUw+zeFDURxykKiWdJ00ar7vrqmw3M5alQ5W8xtobQpQ6Ec4jlORMT0u3iSCTRnZOx6j771Wr
1sjixUuMgGxV6+Y777pbvn3hhfKmuuFK07JGjxotw4YPk4FqGZ6TM8Ta11+xYkKJNTGWqEhXUpbr
vfWSBUbO8p0+h0jFpTZWyFj4jhs3zsYCu7659/rrrwtxqXBPRr6vf/3r5h77tddeMzfQkMykYXKO
qzDiTNGHjClIXCbbbrxxThkcIXMhdrHIxQIZfEjHGKL/uaZM0tIfXFMuO8TBEOtndoQPVIt2dktS
L2lZkGCcOyKYMtzCAfcon3jUxFNmHDHmKJ9nELXgQX8ztsCHcnEPTv9TLjHIaRtj6qijjrKxNmPG
DHPJ/aaOAUjiXN14QFm4JAdbrrEGp2zXRrChTbSHsQ3ejphnPJCWMY1VN67d+JunfehJOty2vfLK
K8JLOvcO1t169BN/M/w9oB/toD6OvbUQoG4vHgGPgEfAI+AR8Ah4BDwCHgGPgEfAI7DrCDAHZZM2
m4K9eAQ8An0PAeLA9wXBEIM486wvLV68eKdV2vTqWnl+xgPyyhmPS9miws78z02/X/g8c9hf5fVv
PCVPT75PSt/fLAE15nn2sL/JW995QR4dfof8+4SHpGZdRWe+D299W54Y/yd5fMzdsuDHrwnulp28
etYTsvSPC+S5Ix+QR4b+UdY8rKHytP7njrhfyhYXycJfzLHzJb9+22XZ7pH1ONaPsXxmDYu1Pgxe
zj77bFvjwsMiIQxYP0NY+2IdESMMwuJx7gQjlVNPPdXy/eQnPzFDE/fMH3cdgXmX/VteOvlhadNx
MPvYB61/3ZjY+NIamXvxCzL/ipfk0RF32HhrV2u8lppmHV/P270nD/qzrHrwI1OA4+zjHrT75Ht8
7N0y/8qXdl25XuQM6Npqwf0PyJDvXrZV6jAde1G6zpt4yMHSqGv1rTr2mtVr68JTZ8nc0eNk3oEH
ycprfqK2csGx165rvCt++GOZP+lQmTvuADt3BVbMf0feP+54y7fiBz+UBg1XuT2pXbrM0s+bMFE+
POc8WXDUMbLwlK9Ks3IxSP4998qCI4+SD046Vaq7fCdsT4ft1cda9nHHHWeeOLeXzj/zCHgE9k0E
lEE2xds1jK/534Z4tlt64rhjvTY+WW+F87xrGkur/3CPAkI0E5vBlIvaaWlRshQCS/koI9Jwvt2m
ZOCWxjqJV8IvSX/0IeciG0OlLaJNydQUiYuMkQ2lW5TsKpAFdfWSV1Utg/qlmXtgtZlWU+5QCUtM
UZfc0VLRqFbL+mXZnJgs/caMk9QBuVZPzcYiiYvtJ8s3FUm/BI3vHBkh5fV1El5bbQRfQC2YIzR/
e1OtDE9NlozMDIkIaZP+Kf2NSIsPVRvkygZZ014va4rypTEuVrLiI6RarZQLNhfKoNg0Ga4E3cdh
zZIaGiYzDp8q63XH4OIl7xoh2qQbpMuaa6Wl3wBpVlIxdsoAydcflbasNMkbe6bUx8RKm9afMyjX
SPHC5QWSNG6UDMvMMv3bitXKV9s1ASIvIkytwrXN2lMHDciR9U3rZXNRtUxNGy6Pbl4j69ZvUuvl
JCM2i2taJH3QUGkbMFTW6A/WJ6vV5XZ1pbSpe5L2cDVy116l4/n0RD5jFI2EfvauF7yxi//ywgYR
yRhwZCZHXGffpPGmmBhDyEOKkhaL3QcffNDIz0svvdSscyGbcXF99913G0GKZS9E6Lx588z6efbs
2Ua8Ui518QKJ8GMHyYurNOJCu2cQ3pDBxIGG/CcdeXmphDjlZZSXT8hcromlzEaH3/3ud6YX9eKC
2llhQxjbGNY2oBfpIbMhvdn8AKmMHi+88ILMmjXL6oSwpj7E7XLHqpq0LBpgwcyLLYLLNVyA33nn
nUIssCeffNLIaMh4YnmRBzIca27OsXiGLKY89F67dq3VQZ2MUV6aH3nkEbNYxkXaJ5980mmxjHU3
1uS0/b777rMNFGwIQFcsx9GD/JDoWHGfdNJJtmEA4pq43MTnZlxBRjurbWtEH/qHvqa/INrBickG
n57+HlCb8YDVOOOkt8J4pv3bKnNb5aAP2PIBc8Ynde8JYSwjbtztiTJ9GR4Bj4BHwCPgEfAIeAQ8
Ah4Bj4BHwCPgEfAI7DsIDB061LzasTawM+scroVZM/PM1TakXkt9i7sttRuq5PjZ58qCH70q/Q/O
lLRDMmXdU8ul39g0qdlQKRmHD5ZZ735bPrjhDVn+50Uy+ZfHWJ4V9y2UYx47SyLiIpS0flpKZhV0
utKu21Qta//1iUy5daYkj0yV+iIN3TcmTdAB8nv4ueMl94zRnTrs6ASvfoTEw8gDIpm1O9Ztrr76
ajnkkENsDe+ss84S1hlZS8TAA8MivP6xzrN8+fLOKiCcWT875ZRTzIsg62uEJfCyewgcfteJUrW6
XF488SE5de4FWxXWUtssG55fJeOvPFRmvX2hVK+tsPXc/NmrpGZ9pZzy+jelXC2m5106W4aeNUaa
KxokPjtJDrj6MHn7ey/KV+d9yzZHHHT9dInu/1lYiq0q6bgI1f4+ZPZzEqPGPTsjBf98SOLUqCdp
0iFbZVt1/U8l5IabpEG9YQ7/2Y0SrmMPb6RDf3KtJE2eJC265goRXfLc8zLgrDOl9KWXpfzNOTJl
zuuCLrW6dutkxdU/kiGXXSIZs74qG+68Sz695Vcy7t4/ucefOwZ0XbG5rFwmv/ayzJ88VQ589GFZ
/4c/SqWutaefcrJkX3yRfSClA2rM52R7OpBmexixPszflxePgEdg/0HAQjJbczqYZOVYunLGoSEa
hhb+GFJa2eh2iEa91mjKBIRG+Df40J4Y/RxkI7UsaEuycWJf7pZlB/848oUjLzXhWhDEFqQcpA7x
ZiF+OE9OSpb4RCXS1DJ17YZ8vV8n7PdZsuQjaRk42CxOqQ5yLlJJRixYY9VddHl5mcSlxCmhFNVJ
cJIGC9Uydc2NQLxB4kAIQaIlqjU1hNmYYQeYRTJkFFacH3z0tqXLKigyoi62ptasrouKS+TD5Stk
fEauWhqPMHIN69kto/sZibW2eIuRhFLbpIRRrYwfP04tRCdL04rlej5eouJj7YVlun6pJynp9fTz
L8ihUw6V+qp6jRm93EhD3EinDxocJJ8mHy0ffPCBrH3+ccHyO1yJYyzEo6XZ2jIiKcGIMzDgC71f
YrZhSPvilbhqjg+xWNT5upkQIjBU80O62Y4ExYNzk2D3Bs+/gH8hfHmhhVSDXGYcQLZCzGJFC6lM
/GGe8wxCFwIXEnTy5Mk2VrgPkcoRIpa8jCFeGvkhW716tfU14wsiFYKWI6QwBDZpGA+MOazW6X/K
ASv6HVKOsikXXSFbiXPF0Vk9Q9recsstNuYYN5RD+eDorNc5ko82QDZDgl+oFuorVqww/SCBL774
YnuGtTLkJ3WiA2PJ7ZTEkph4zz//+c87d1vSXghjiGUs7cm/bNkyGyvo+PDDD9s55PNf//pXu4ZA
528LPCCm2QDwq1/9yvB37URnzmkP8W4YK846Gpfd/F2ed955pgeY/eIXv7AdsuBJrDHiWaM/7cAN
Of1Iu9DX4foFDKvdKpI2DRumcdZ1HKAvO37xEMC460mwBKcPd4YE5m+ZPt2ZPOBF7G7GpftOpK/B
lf7eXcHanX5xmzN2tzyf3yPgEfAIeAQ8Ah4Bj4BHwCPgEfAIeAQ8Ah6BfQsB1mFZG8CjIJ7tdkW2
FX83YUiyxAyIlwQl/LBchUR0MuyccRKdGiN5Sha/d93rdrvgP2sldeJASTt4oF0PnJ4tm15Z20k+
c3P4NybodZY9j0qJseOu/sMaIes1tP322283AxHWDDG0IFwepDTrOFwjrNGw7vrTn/7UDDG+8pWv
2H0sxllDgqTmwxog65AcWZfz8sUhEJkULRO+f6iE6Dp3dFqQQC74zzoZfMJwictKtE9MepwUzs03
JeKz1FhrUKJEp8Qa4RyVrGuY1U07JJ91wVcSNMzgzgjGdhv//BcZfdtvPpct53uXS+JBE2XLq/+R
tb/5rQw443QJ1/XTJl07Xvmja8x6OaDjp1HXZ5GEsWOE2NErf3ytpB41Q9JOOtHuVy1cJI06TiGp
+QR0HbdGLZs5Yl29LYlKT5NINQAkTcyQbItj3bqDtcZt6dBZxzYwYq0V76GsQ3vxCHgE9h8EoBFh
h41X7OAUjWHs+Ae6Mcgu6wn/6wc+OTxE/W7jpoIb/GPkdFdcuA/hbPf0X/0fsq430qZlt2iBuMgI
0Txt+uMASbi+tlLaG5IkNjxM6rQ8dRItIa0hSvhV6Y98seTXKSGt1sZxMfoSoMRZYX6hVI+skfBk
tRjW0LhN7UpWhkdLU2yYvRg0hoZLhRqSVpfXGDkbFq0/LAnJMlEJbYjD6romI3Cy1Xq4SL/IY8M3
yTolLbeEzzWiZ9SMI42Imr9grlm3JrbGS1hViBQoYrmDB0lxe74UNYicNPkA+/Isyy82km3E6BES
HhUhFWWF0lAXI6FKHCXpy1B4nsZhzhos2VOnG5lU3Vgr2TPjZWNyvGyJjZK8E4+RAn3Zq9cfkrih
Q+TwpAmSm5srFbUNSiLGyoETDpMwJRU3PPuIDEhPlQHR8dJYUSMrKwvkIP2xSs1IlcffeE3WNTQp
YZ8hxZFR0q4W2PHjh8tHGlv7EyXL1paUSVNLpPV6u1pPN+vGAnZVIfQlPwbaGcHrbt1p5vD6BEv5
3REINV5qGS/86HDkA8HJNbFm+LjxhFUzltDERYa8Q0dIayxBSc/LHS9yENhY+/JiCPkKgQppR7kQ
tKQhH8Q8OiBuRyc4Ux/12oYIJVL5oyEd9XCEQKZ8rimLcikLEpC01EkZEK8QhRy57whHF3965cqV
RswSK5n0EMZshCA/dVM27YL0heAEK1wAcY0rJMh7XoT5gAWEMrqRDpIaIhxhjFM+kwj05j7l0EZ2
ZoIFOpEXopU6IYzRGRKdF2TSoQ/n4AyevGRDwtN+dKCcDz/8sJOURw8wce2gLPJBTqMD9fQ1gXwG
Kwh3+oBJBf2MMK4Yf2BNf9B2J7QJIppNLeDDpgfwGz58uFmO014IezZT0De4NefaEdAubXZ2tmHP
M/rHCeWCM/3uhA0T3CMvRDQfMCcNeamDTQ1sIqC/0Zv+YBzQFvqcjQfohp60m/5BR8qmPEh40qAn
ZTBWmTR58Qh4BDwCHgGPgEfAI+AR8Ah4BDwCHgGPgEdg/0KANQU86bH2wdrAnhRI6VA1EuJoXjR1
rdlJqK5LIqGRuk7YELSYblWX3GFRwfvuGW66u0rKuPSul7t1zloNayMYJDzwwAPy9ttv2/obngax
iMYqHAMO1hgR1kxeeukli5F9//33m7HHs88+a+snrCNh4OHWHEnP2qCXLxaB5NH9jXjuWouNIx1X
ThhjbhzZWGQ86gcJ0fEpXcaly7Mzxxo1kNIFxSA5ret1Tooe/5dA8qYox9BdIH7j1IMqVtEbNSxj
+Vtz1cq4Qdb//nYZ+etfSZyOyWWXfU/5k+DYw+J6ypuvS4lubth4318k/94/y6SXX5Q2zRMWHyej
fndbsC0dFYXpei4CCV2v65VhOj5jtcxOUc4ACdE1b/vo+uGOcNiWDp1lbueEUJJePAIegX0fAcen
QSbqr7s1CH5Bv1XVO7V6EuaO/tTDXQT0vp4EP3qTSx7qt00wAQkd2/iZGXXwhaGjaMvQmZ6THQhk
CEqiFMK1I6Yg7RCIK4itmtoaJfjylfCqMnIGQgWCJSQE62a1WtXdQJTDBxIMkiQmNsbyUw73ydPY
1GikHfXyEhClxCwvBRB5bYE2I1sol/TLln1idUHIvKbuVCBf+EDA5eTkGMGMvrhfmXb4tGB5Wg7W
klgSkg4LZUg2yh+ieQ4/4ggjGCsrK0x/dIXoQ5eExATThzYSv5r8xNeF1IK4S89Il2QlJ5s7dto1
NQUJwnT98crUmM55ebkySXXhJRESEeIoTPWr1PZAxOLyGcITIrFZ2wQGYM4AoL1I13O78QX+A6EF
ftTJx1nJQmqiG0Ss63/GAMQpBCnEGaQbukMWkob03OMcLGkP/crREXykcem4T1qE9JSJMEaog7LQ
jTroH/oCko5rpxtl8IwP/QhByDPGC33OuHTPuEZX6uGc+xwhmqmTfPQx9yAIeeGnPj60A+IdDLhG
X7BCP8pBN/qa/Iwz0kNQO+FHnWeko3yHJc855+P6gnLRBV3pE8qhHu5Tr8OE53ywZCadw4V75Oce
bYDgdGWCEdiAm3tZdzr2laMjfIlZzd8x3yP0D+OBXa0Qr2wiYBIGHk64BkMmJ7Qdl+Z8OCfWD2OK
v2VH3EPo0ndO6Df6Zv78+UYY8/3RVRirXclunjnyn/7le2nRokVGiqO36x+nI/1G+VwzTtfrhgQ2
CuDRgT7muwGrZ/7GGA/0K5sh6DOuaQd1QMp78Qh4BDwCHgGPgEfAI+AR8Ah4BDwCHgGPgEdg/0MA
D4SsW7DuQXi4vSX5s1dLe6BdiNubOSPHqh10TJ6UflAouNduLGuQIrVWHTQzb2uVggvSW9/Tq/jB
iVLxSenn7u/oBmsghNNjbYT1OtZJWDeZNm2aGZeAixPWR1gvwavhTRo6ECME1rKxGGddDi+NrNew
roSxCOsqXr5YBHqCeNAxuYIVfWtdi5QvLZFadcGdOWPIF6bIoq+eLh+c/FUjj10l7bphIf9P90j2
ZZe6W587Es+5fM5b0lJeIZE6Zho13Gj86DGSojwCMaBrdA3PSdPmQglPSpTsi74jI265WepWrbY0
yYdNlfC4eEsbpYYnkbqhgtjROvgsa616bUW3T664yhW1y8dt6dCbAvFmStxnLx4Bj8C+jQB8EALZ
HGQWO9rDV45u5glXHgLuFgnyyaTq+C1Ufohzdbsd/I7iGtIIOpoCg2Q0iYJZrRLycqu3opbPEL5O
0RbND0lSHR4iVcrrNKmr7OqWJmkMhEp9c4hUNympFRYldRFBQjGkKSCpseo2WQ10q4tLpTGrykiX
hpCAWvEqoauEUVSMkoXKs6dqXOiGULV+jVDSrn+cEWSlZQXSHtku2UrMDVTyp0RjJQxsbJZRKcky
dGCaDNZ4EVlZGdJeXyNDo9RV9/ARsu7TtbJyTYGc941vSE7MwYI7ldDcwXLIUUdKi5ZVqNaQYQnp
RvaFtWpcZyXbCldtkIMPOliOPOZIqVH32IWbN9gLyYiJBxhJnDc029q9qnitWSWOGjRY6jWedWog
RLLVqrlF293eWC+JgzKMKFr06cfy2oI5EpoQJ2X64xQIjZCBQzQedFhAFpcXymubq6QgKVzCY1Kk
UvusJpqOaZLSgk+NEIzR9ODcqp1JrOdW7dM23dlFP/AyFFDyEBfc5EKchXNY0BC6874ao++WQOhZ
ffojDFHJOSQcBBlEGS99nHMkLS91nLu0tIHnkIPkhXCDAOQ5Y5X0jjCmXJ5B4pLWkXHcoy4IU+7x
gfQmDeWQD6EeCFPK5WXSkdMQiBB11IOVrNMTopD6Se90pgw+Tn/K40N53Ec3niHo4erjSBvpH0dG
UzZji3t8IJZJhz7o7MqhXZCLjuikXHR0xLwjViGnEcrnQ/shPCkXoWzaAcaII7fRAwwhVymD547A
pByunUU49VIfuoGZ08kK3EP/7OzuOfTuKuiE5TA40R/senUTBfBwpDD6u80L5MeaGHy4B9nOGILI
ZtIGDuDl+p4xwTV944S865UQZqctpDWYdhf6pLtwD4LfWTjznHpdP3VPzzWkNX2EoAPjh3bzoW+4
xySKDQ0ImFIm6Vw+e9Dxz85i3jWvP9+7CHQf73u3dl+bR8Aj4BHwCHgEPAIeAY+AR8Aj4BHwCPRl
BI5QoovPrsqcC58zgo/4y+9c+ZKExUTIEfecFFxY3k6hBa/qWuvfdH01IlSO/ufplpI4zhCHz077
m1lxEid6wLTB2ynls0fDz5sgb1/+b1nz6FLBpTdxfLcnrK1cdNFFtj6IF7lrr73Wwv1haIB1M+Qz
glGBk4ULF8oNN9xgayas+2AV7dbWyE/caMLTsd5Dflx5e9l9BHpYGutS6OfXzYacPELWPPSx/Gvi
PWbxPOaSSRKRoGu92y+oS5k7eerKdUfNXqLhNUPUu2vaiSd8vjBN99H539KxHyGJEyfKsBt+KslT
D5Vo9Yz40QvflLcPmmR54tQgxknl++/LymuuNffYgdo6yfvR1RLesa477Mafyoof/lhWaQxpCO2U
6UfI2LvvdFnt2NP64lYJenGxPR22l511R9aaCd/oxSPgEdhfEOC7F444aGDKOfxieJhyd/ooYDyj
+36GPNZz/e7jTkhMUv8gu6yX7ZopmAw2u4M4IT0EtpKXnDbVV8pZZ57ZK9esGmfayA5H/rW0BYy4
CVSUC+5nvzIwxyz58hpDjBjZXFFixMja0GB85tCYZGlSkqY1PtkIm5yJh6j1b560KAnbpBbOEhkk
CyGfIYsaqluNlImPTLXyYmJDzV1yRkSQDHv7vnulf1p/GZqabLFUi9aXyITxYyV8SK6RSwuqK2XO
nDkysCVaLvvud+XdJfONpInUuCTm9nbMUCOuajeXm5uWjer2mxeQ1i019qU6dPhg2Vy4WdYVrzMy
b2zaVBk3bpxUVZdZXJG1Zeq+WwnMoWr1OOetOZIdEiMTNIZESESk4VQbG2kEVcH6TfLGm2/IlLoq
s6aeMWqC1Go9i7YUKAm1Tp4u3SgtzRobNr6/veQEJMIIx/bmIKGVov0FcdncFmqEGC63IcRCImyv
gbQEggRoWMfOhLCODQWfI5/p990QyEhILY6QdhBy/ABC3vFjBOHJOaQYP0xYDaMnmPJCRxvIQ99y
DmnGWOIc8s0RpxCJfCDT2LlIfuqE4KN8SEFIUfKQ1xHVNI17pOce+kDAOZKRI+Vwj7ooi3PKQlf0
RmgTH9KjH+e0j7To7Mhirl3byOvSUgYENSQfxCHluPajOzqDX1fCkjJ5RvmUSfvRj3P398Zz8pAX
/cEWMpk8fNCT57QRof3gAeboyn3ISCxpIZgpD71de1z/oTtkN9cI9VMuZexpAaPdIdhoC7o5khUd
2bWKJwG+kyB5wYW2cw8rY1xw83eKpTvYgAPCuMTjANiAP9ekmTlzZqf7Jtd+yGpcOLGrljohlLu6
2Ib0RjcmN/QTkpOTYyQ3fcdmB2cZjecDLJlxFYWXA8YMEyb05pwXPOc6G12wtuY5fbdu3To5/PDD
bYcuf5v0FVbgxJZmTPPcSxCB3R1r28Kxr5SbMSh7Wyr6+30MgeKC/F3SyPfxLsH2pWTa1T7+UpT1
lXoEPAIegX0cgeeff97mXft4M7z6HgGPwH8BAqx9MH/cW8IaAesSe1Ja61vk0eF3yFkfXyJtLboG
mKpe+NRIpqs0VzVqiEUNbadrr1+WYLmMYQLrKl2F9SPWeTBI6L7Gxboaa7yss/Hx8uUi0FCi66Fx
6uUybu+HAHx/5vGS9e1vycCvnb3TIGC5jAWzDr6t8rbp2GveUiZR6gk1pNv6KvxNU2GRxo1Wg709
MPbadQ177rgD5JDZz0vs0LxOPbanQ2eibiesa5577rm2GeOEE3og47ul95ceAY9A30aA75+ohLTP
iGf7qtJ/4Bq7fjfZdxgP4TX0d96ulaA2DrrjPo/a1VrZEc3cNuIZMkQzmIE1iXop7Uo2h2H9rC8R
WoAqFC5Nza0SHhsn+foFuikpTQaNHyfFH3ysVs8alyBCLaGxAB2UJhH6RZqlpGqlElp1Si6H1VZJ
3ZZNIgP7SXRSnFo+N0lbVZ1aVgckMzVN4trV/XSo0rBKrDZrjrKaMglpC5G4zETJa2k3AilDj/HV
DdIY0iq1+mKRN7i/DMlMleTMAUbsvPbOG3LoYYdKuVokv1D4iWzYVCRjcIERp1aq2oSNgWZZWVMp
4f003nRArWMblPCub5MNS9dJTWm9zH93nhFHk/VlDeLq1bVL5XUlqmYePV0mpWic4PJNcpCSTAs/
WigbVyyVaUd9RRKiQ+WJJx+X3NxcCVNr7EXvzJMPl3xk7lyGDx4pic2h8n55qZFCW7aU2ovn2JZm
I0A/bm+RFo0nHaUkfagGww5tCBKJDYpDuwZuDmhsbD0LYq/4K+NoPedIZ9eNzvLZXYfsRB+7PD0d
IbsgPhHOIegQyFSEFzfuI6Rz5xB/7pz7XdM7gpgXQPdSyD0+ELYQt9TDSyDlOKIVYpZziEOIYacL
9TiylvIg/shHea4c8pHG1UNZ1OPEkYWk55yPeynl6PQnP3kdMc21E+7zoo8OLg3nTmf0dGWShzJd
ueiGuLZTv8vr2sIRcbjahf5DXqc/5XcljUkLqQy5iqCvw49rztHBkdHcQ7rrGrzbN/4Fezaw4B4J
3bFE5h5kLqQtfcB90nTtHyYiCBbDbESB5AdjrJgh38kLxkxKwJNziGonkM0Qw5DPkNCuz9xzymeH
bU5Ojm2YYQxQNnoyriGa0Y2/B4hsSHK3SYH+YYLIpGdbgk7Uic6I63Pais6Uj6twL/9NCOyhL/r/
Jsj2ubb6Pt7nuswr7BHwCHgEPAIeAY+AR8Aj4BHYHxHQtYiYjKBHvu7Ni0z68mMlszbUk7i1mZ6e
sYbGuo2XvoFATHrcl6bIIS9i+Rxc895ZJYgH3ZOE6rpgdNbWIftcOgif6EG7P/aIO738iu9L/dp1
GpN6xFbEM3VtTwenS/cjfxeXX365HH/88d0f+WuPgEdgX0VADVhDlVuw/5RINHrB/oEHgzZWvoEl
yNCOay54oBL8ZrRr2GqjlzsIZ32KZayaTQdL1GvyBLkLPdl9wWoQgidElYGw2qIkSKuSxwPTRpil
Xu3yNUbg1GsDaATkCWRcmRJF5A1T19s5StZwDwIoMirO0tRpWRBiIVGhZo1Yo5bEmwo2SYTGUE5O
Dpe4+DgZN3a0xEbGSElpiVS0BS2HsW4kvvPmuiZ57733ZIJaLZfoTsPmmiBR2h7fYuRva2uwvvZA
i+mFLujXHhO0LGzPz1frzBKJDSQbWfTWW29Jelq61CcG9Zk0aZJMVFcb/ZR3heyD4INQWqHEFGlX
rlqtbWqXOUUL5J33F0i0fnG3ahsHDcywdoE8lpJlyhKbBbDyoLQ/UfGh3ZUNFZ8jt3a/t3wJHoF9
HwGs4/l7w9qZ7w0IXKyH+TvEwhlPBfwtYwHMdxMEMulwrw05fOihhxoJnK9/45DvxGvnHgQw+RGI
YchcLJspF4F0xrXT1KlTzUKfjQrsjMWKHuH7j3jSWFozeYEcRgee87cN6cz3BrqgL9bQxBvCChqr
ZqyiaQs688wJhDX32DFN2Vh8Uyb3nKAbu3idLu6+P+7fCLTrb4yX/RsB38f7d//61nkEPAIeAY+A
R8Aj4BHwCHgE+joCYdHhcvSDp6kb5KBBRF/X1+vnEdgVBHaVeN6VuvZkHlyBDzzn6xKhnhATD5q4
R4qG7+DjxSPgEdj3EYCHCEqXNWSzWnUEsSOiP58sHD5T+Y1w5VmM6FTGRYnljoKMwdZzGGruc+w4
pShjszvK3N7BuXFWQ+IOCbpWcS6916s1c6RkSKrGVA7pp/F716hFcl2tpEbESHtsomQmxUtbTZW0
KZkSoRbHtRvWyBp1zb2pptwsFcPUam/S0FwZonGe12s81dCUfpKgcVzr1C13jForS2uzZESE6Q6e
AildvFyG1bUreRwndVXNUl/bIBtLNioZUymZWQ0y7fBpcvahR6rVYb6UavzlwUOyZUV5mazM/1RO
zxqqrmkPlE9rN0p5WaXGkY6RmJZwKalQS2Mle9sCYVJVWS8JIer+ORAhI1riZNrIyVJTtkVdbldL
CO6gqyqlX/pAaS0pkrXtNWbpXB3VLhsrNTZr/2QlkgOydNVKqda649QyvKisRojaShdna0dnpqTJ
uNQMCSurllDVMSY9TU4ee4CUqWP10vRYWV+/XtY31ajld5jGyFaXybqvoLYDd+dWO7RjvNCliOsX
d+zwwq0W48Hn/l+PwP6GAF+afFdAHrMbD6tnJxDTWAEjzjIYd9ROIJPJ4754OS5btmyre6SFfObT
VSCG39eYLXx3kq9rOS4daYgx39XinmfoQnnOJbbTDbJ4wYIFlt3d48Kl45xNNAgk+DvvvGPnzoqb
Czb0QDxjNQ0B7uW/CQH9UfeynyPg+3g/72DfPI+AR8Aj4BHoYwi8u3yzvPreSt3UWdsrzRIS4mXm
ZN3gOnr3rZd6VaFP5BHwCHgE9jICGDllHp27l2v11XkEPAK9QQDSPPWoGb1J6tN4BDwC/4UIwF+Y
BKnhzxCAW+SechZ4YiD+M8bFoWGhyn1oHq41TXS4MpQYPylH3VFOiHnZttx6T71Wdzzh5LNFzK5E
x2e17vwZZAukSm1IlKSkpsj48eONmGmKjpQ1a9bI4Wrth8VfpFrpQZ5s1LRY9ZUHgu6l4zSodXFR
sfSPTDBXubXq1hYLYmdRSMyCRYsWycbXXlM32JtlSFyyrF23XtZWFZjFcI66rxg/fqyaNcfK2k+V
LMobYBaK/ZTQxo1tVX2rWhaOkUPaItXVbrbkrywysiZadwTlb9igZSSbBeEBB0zQo8bRDa21uLFx
ta0WP1Wam6RSLQ8ztazlK5ZLceFqmTVrlsVyoPPCItRNhrrRINYqOEB8nXLKyUq2t8rf//F3Ce/w
2jswuZ9ZOKZHhJvFd2Nj0MIRC04IqJycHLPQXLG6NKiflok7XdFY0l48Ah6BzyMAAexI5K5Pd/Td
1lOenu51LdOdU7Yrf3t5uhLiLi9Hl3dH97o+39E5MY3wloA1tZf/LgRwleJl/0bA9/H+3b++dR4B
j4BHwCPQ9xD499vLJEHn7oOHjrCNnV29kLAYwybTrhv5S4sKhTyefO57fek18gj0hMCfHntDVpYG
1097et6beyMywuXCUyd1ejXsTZ6+mKZwbr70G9VfotNi+6J6Xqd9HIF29ThaNH+jNJU1SM6sUY6c
2GutIqZy8dPPSL9ph0mUGmx42b8QaFSOqF5DD6ZMP6LXDatdukya1BNv6tFH9TqPT+gR2NcR6OQi
YJJVWGc09rhjSZl5TaBVjYBjCJ8RIo3K24aE6Zneb1HSOUQtYXX2oxk7SOzgWjSFBUsI04dtHefu
mz5YFdXtWMI7LGjVGNfE8dehapmLtCl5WqxubYtC6yStKUwy4tPVlW2kNG6pVUu8YpmUN1Ci4qNl
gKpTreRue02TWkY3CzGK45W4ratrkLkvvigFmYPNVW167hCJDjRJe0O71FZskfjoJKms15i+8QmS
rjFZ2yMSJTo5SQZFDhZIl5SYeNmgE77QkGa1YI6VcDX8a20Lk+FJAyUlOkWyBieYnkkrlBgu3izx
9Y2SGBcvEereOyw+WdZovGcI9Oy84UGyubXaCK1Bq/Nl9ZrVsm7Zh5KVkSJThw6TleqSd93yckk6
fpbE/n/2rgOwiiprn/TeC4EAKfRepDepumLD3lddy9q7/rtr711Zu2tdy1qwAAoiiHQV6b0nECBA
AgnpPfm/77zc5+SZlwZBwDnwMjN3bpszM3fuPd8p0a3VDW5AdCxw7wiA7xmIbe0hvQefKKNHj5ad
W1Jk2brNchCANd3+xnv4SgcA50FSBItwP/GOi5KQQF8J2QZX4gDli+BBN7C4TEqDAqQ4wE9CS6Bx
UIJoz9XYs7Fkhtt1JWPYbO670/K5+uZWP0+OzPZfmwM2B45bDjCGNX82/fk4AF2IQ6ZIeBrxgiA1
M3P/IddlV3D4OXCo95hKclG4x1R0o2v/fMS6t+no4UBwcLA89thj8vXXX8u8efOarWP0kMGwDVQK
LXDzDDBG3r333isff/yxevlw7cxJJ50k48ePl7vvvtuhHOmaoRHHnTt3luuuu07uu+8+DUvRkKLs
XyxiqdFbSXMRlVZvuukmeeCBB2qEtmB7DKdxyimn6Jbz+vXr18usWbNqeF9x7VdoaKicdtppkpiY
6PSA8v3338tBKNoaogIrY6l16NBBfH19VUF12rRpGt7D5HHd8r3mWoOhhvgMMSzHjz/+qKE8TN6+
fftqeBJzbLaff/55nXWbfPbW5sCfmQNUmE+Oayn5UBAvgQe3EKzdDR0sKJY8yCbCoSwfERWhQpkY
5CUAfTiJ4wvDAlEh/2gmKtwyfBlDCPFbY5PNgWOBAwSeJxecdEhd9VuzXSJC1sj54/poKK9DquwP
LLzsobnS597hEv8HWTWveHKhtBqZIC0Gt/kDuWA33VwcmHHGJ0KX7aHJEZJwRieAGdUC6+Zq0KXe
Khh0bbjtDun53juHFXzOmjdfNtxxlwxZ/FOTY0S7dLXRh0dDHxrb6dVXXiVdXnhOfDCHOhyUC0PF
Xe+82yjwed8330r2goU2+Hw4boBdxzHDgd+UZilEpvkyx2IjUHaMywpIIyksPFTyISPOL4A1LbYQ
ZEgpxlJvAwg7iuEvyjnsnwFRAuWFsTSq5FlnjhrauofCLcZM5aLIy9dLLZtpfcxFiG+Zp1omMy4p
Yxr7A3wl0u4TFAiwN0LKcjMByhbBpLtKtQW30XoacVHb9+yuQq1VqzeqECa0baRaDHf3j4I77R3i
sTNDBTQ+rUJV6zh/f5ZeS2yLVuIP6780CHoonKL73W3QgInqlKDtdsov1Hq5MIqKipISOLXmvl9m
nloe+/kGq0DJxwPoPpDbni3aSF5+nmxZKxISGuJoG+msm0JC332pcON9AgD1fQoukw8U9PQ6oZ/y
gUKpQFh8xyOeq8aTzi5VUNvbz0co7C/z9tIYs1v3bZOEtm21DPvs5w8X4NDOIihPvpUKrJ9tsjlg
c8DmgM2Bw84BjvVODTBL7e7SLVmOil2rJU5TO3TKSePEF8LCd//7YVOrsMs1Iweaeo85Jxk8cIAM
Gzq4hjD4wIEsmTbjewWrhg8dKnOwcHbnqaEZL8uu+ghzgMoHV155pbz88ss6Nz7CzR+W5rphPj12
7FgFrA9LhS6V0IPR+eefr4oavy3OHJk4b7/tttvggWm3TJ8+XcLDw+Xkk09WJdgPP6x97CQIwzIE
qgkiscxQvHNJSUny3HPP6XvHdq666iqJj4+XGTNm6Fpg1KhRWu7JJ5/Usi7d1EN6YBo4cKAQyKYy
Qf/+/eX666+XiRMnakgSZiLATzCb6xErUeHWJpsDNgcaxgF6Kj