<?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>211043</bug_id>
          
          <creation_ts>2020-04-25 22:47:41 -0700</creation_ts>
          <short_desc>IndexedDB: Support IDBFactory databases method</short_desc>
          <delta_ts>2020-09-24 16:13:15 -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>WebCore Misc.</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, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darryl Pogue">dvpdiner2</reporter>
          <assigned_to name="Darryl Pogue">dvpdiner2</assigned_to>
          <cc>alecflett</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mjs</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1645757</commentid>
    <comment_count>0</comment_count>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-04-25 22:47:41 -0700</bug_when>
    <thetext>Link to spec: https://w3c.github.io/IndexedDB/#dom-idbfactory-databases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645796</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-26 11:07:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/62402059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1645907</commentid>
    <comment_count>2</comment_count>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-04-27 00:04:31 -0700</bug_when>
    <thetext>I am working on a patch for this :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648292</commentid>
    <comment_count>3</comment_count>
      <attachid>398299</attachid>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-05-02 17:36:07 -0700</bug_when>
    <thetext>Created attachment 398299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648293</commentid>
    <comment_count>4</comment_count>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-05-02 17:37:42 -0700</bug_when>
    <thetext>There remains some work to do in IDBFactory for web workers to resolve the promise on the correct thread. I&apos;d love suggestions on how best to do that, and any suggested improvements to the rest of the changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648543</commentid>
    <comment_count>5</comment_count>
      <attachid>398366</attachid>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-05-04 08:14:24 -0700</bug_when>
    <thetext>Created attachment 398366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651010</commentid>
    <comment_count>6</comment_count>
      <attachid>398366</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-09 17:16:07 -0700</bug_when>
    <thetext>Comment on attachment 398366
Patch

Next step would be to investigate and fix the failing tests seen on EWS and post a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651322</commentid>
    <comment_count>7</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-05-11 10:54:11 -0700</bug_when>
    <thetext>(In reply to Darryl Pogue from comment #4)
&gt; There remains some work to do in IDBFactory for web workers to resolve the
&gt; promise on the correct thread. I&apos;d love suggestions on how best to do that,
&gt; and any suggested improvements to the rest of the changes.

Probably remember the ScriptExecutionContext with the callback and invoke the the callback on the context&apos;s thread. You can subclass IDBActiveDomObject, which has the needed functions. Then replace the class in m_databaseInfoCallbacks. Also remember to do proper cleanup of the map for situations like connection is lost, see IDBConnectionProxy::forgetActivityForCurrentThread.

Again, for the rest of the change, I suggest to merge your IDBConnectionProxy::getAllDatabaseNamesAndVersions with the existing IDBConnectionProxy::getAllDatabaseNames (You can rename it to getAllDatabaseNamesAndVersions). Current getAllDatabaseNamesAndVersions is basically the same as IDBConnectionProxy::getAllDatabaseNames on the server side but including the version number in results. You can throw away the version info in result or use a parameter to indicate whether version is needed in the function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656704</commentid>
    <comment_count>8</comment_count>
      <attachid>400412</attachid>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-05-27 17:50:49 -0700</bug_when>
    <thetext>Created attachment 400412
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656727</commentid>
    <comment_count>9</comment_count>
      <attachid>400418</attachid>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-05-27 18:51:15 -0700</bug_when>
    <thetext>Created attachment 400418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657161</commentid>
    <comment_count>10</comment_count>
      <attachid>400552</attachid>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-05-28 22:50:28 -0700</bug_when>
    <thetext>Created attachment 400552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657162</commentid>
    <comment_count>11</comment_count>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-05-28 22:54:47 -0700</bug_when>
    <thetext>This latest patch should address the feedback and sends both getAllDatabaseNames and getAllDatabaseNamesAndVersions through the same code path, as well as handling the threading properly for web workers.

Note that this patch exposes new web-facing API (IDBFactory.prototype.databases) and I think there&apos;s an additional review step involved?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657719</commentid>
    <comment_count>12</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2020-05-30 19:57:08 -0700</bug_when>
    <thetext>The new web-facing API is a minor addition and clearly per-spec according to the test cases, so seems fine. Unfortunately, I don&apos;t know enough about IndexedDB internals to review this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660144</commentid>
    <comment_count>13</comment_count>
      <attachid>400552</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-08 01:41:32 -0700</bug_when>
    <thetext>Comment on attachment 400552
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        `IDBFactory.prototype.databases()`.

Let&apos;s add a reference to https://w3c.github.io/IndexedDB/#dom-idbfactory-databases.
I see that this is not supported yet in Firefox, do you know what their plan is?

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.cpp:62
&gt; +    m_callback = WTFMove(callback);

We could probably add an ASSERT(!callback);

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:42
&gt; +

two lines

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:56
&gt; +

Two lines

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:57
&gt; +    virtual ~IDBDatabaseNameAndVersionRequest();

No need for virtual

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:63
&gt; +    void contextDestroyed() final

We usually try to only have one liners here.
You can probably put it in the source file.

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:72
&gt; +    void performCallbackOnOriginThread(T&amp; object, void (T::*method)(Parameters...), Arguments&amp;&amp;... arguments)

Ditto for one liner.
You could move it out of of the class declaration but keep it in the header file as well.

These two methods seem similar to IDBActiveDOMObject. Should we make IDBDatabaseNameAndVersionRequest derive from it instead of ActiveDOMObject?

&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:156
&gt; +    RefPtr&lt;IDBDatabaseNameAndVersionRequest&gt; request = IDBDatabaseNameAndVersionRequest::create(&amp;context, m_connectionProxy, origin);

auto

&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:158
&gt; +    request-&gt;setCallback([promise = WTFMove(promise)](const Vector&lt;IDBDatabaseNameAndVersion&gt;&amp; result) mutable {

auto&amp;

&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:164
&gt; +    m_connectionProxy-&gt;getAllDatabaseNamesAndVersions(*request);

Ideally, we would directly write it as something like:

m_connectionProxy-&gt;getAllDatabaseNamesAndVersions(context, [promise = WTFMove(promise)](auto&amp;&amp; result) {
    promise.resolve(...);
});

And it would be up to m_connectionProxy to isolate the complexity.
It might indeed have to create an IDBDatabaseNameAndVersionRequest.

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:504
&gt; +        ASSERT(!m_databaseInfoCallbacks.contains(request.resourceIdentifier()));

The id value could probably be generated by IDBConnectionProxy.

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:511
&gt; +void IDBConnectionProxy::didGetAllDatabaseNamesAndVersions(const IDBResourceIdentifier&amp; requestIdentifier, const Vector&lt;IDBDatabaseNameAndVersion&gt;&amp; databases)

We can pass requestIdentifier by value. Ditto for other methods.

We could probably have a Vector&lt;IDBDatabaseNameAndVersion&gt;&amp;&amp; here.
That might allow to reduce count churning and optimise isolated copy to not have to reallocate strings when hopping to another thread.

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:519
&gt; +    request-&gt;performCallbackOnOriginThread(*request, &amp;IDBDatabaseNameAndVersionRequest::fireCallback, databases);

We should probably check that request is not null here.

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h:175
&gt; +    HashMap&lt;IDBResourceIdentifier, RefPtr&lt;IDBDatabaseNameAndVersionRequest&gt;&gt; m_databaseInfoCallbacks;

s/RefPtr/Ref

&gt; Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h:31
&gt; +#include &quot;IDBDatabaseNameAndVersion.h&quot;

We can probably forward declare IDBDatabaseNameAndVersion.

&gt; Source/WebCore/Modules/indexeddb/server/IDBConnectionToClientDelegate.h:30
&gt; +#include &quot;IDBDatabaseNameAndVersion.h&quot;

Ditto

&gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:522
&gt; +            databases.append(databaseTuple);

WTFMove

&gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:530
&gt; +            databases.append(databaseTuple);

WTFMove.

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:915
&gt; +IDBDatabaseNameAndVersion SQLiteIDBBackingStore::databaseNameAndVersionFromFile(const String&amp; databasePath)

It might be better to return an Optional&lt;IDBDatabaseNameAndVersion&gt;.
That will make it clearer whether there is a database or not.

&gt; LayoutTests/imported/w3c/web-platform-tests/IndexedDB/get-databases.any-expected.txt:6
&gt; +FAIL Ensure that databases() doesn&apos;t pick up changes that haven&apos;t commited. assert_equals: The result of databases() should be only those databases which have been created at the time of calling, regardless of versionchange transactions currently running. expected 1 but got 2

Nice to see some PASS.
Do you know why the last test fails?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660213</commentid>
    <comment_count>14</comment_count>
      <attachid>400552</attachid>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-06-08 08:15:05 -0700</bug_when>
    <thetext>Comment on attachment 400552
Patch

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

Thanks for the review! I&apos;ll address a bunch of those suggestions/cleanups.

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        `IDBFactory.prototype.databases()`.
&gt; 
&gt; Let&apos;s add a reference to https://w3c.github.io/IndexedDB/#dom-idbfactory-databases.
&gt; I see that this is not supported yet in Firefox, do you know what their plan is?

Firefox bug is https://bugzilla.mozilla.org/show_bug.cgi?id=934640
It looks like there&apos;s been some interest, but no substantial progress.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:72
&gt;&gt; +    void performCallbackOnOriginThread(T&amp; object, void (T::*method)(Parameters...), Arguments&amp;&amp;... arguments)
&gt; 
&gt; Ditto for one liner.
&gt; You could move it out of of the class declaration but keep it in the header file as well.
&gt; 
&gt; These two methods seem similar to IDBActiveDOMObject. Should we make IDBDatabaseNameAndVersionRequest derive from it instead of ActiveDOMObject?

That was my original plan, but IDBActiveDOMObject has an assertion that the ScriptExecutionContext is not null, and when calling getDatabaseNames for the Web Inspector we don&apos;t have a ScriptExecutionContext. :(

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:164
&gt;&gt; +    m_connectionProxy-&gt;getAllDatabaseNamesAndVersions(*request);
&gt; 
&gt; Ideally, we would directly write it as something like:
&gt; 
&gt; m_connectionProxy-&gt;getAllDatabaseNamesAndVersions(context, [promise = WTFMove(promise)](auto&amp;&amp; result) {
&gt;     promise.resolve(...);
&gt; });
&gt; 
&gt; And it would be up to m_connectionProxy to isolate the complexity.
&gt; It might indeed have to create an IDBDatabaseNameAndVersionRequest.

getAllDatabaseNames (used by the Web Inspector) complicates this because it is called without context, taking in the origins as arguments.

&gt;&gt; LayoutTests/imported/w3c/web-platform-tests/IndexedDB/get-databases.any-expected.txt:6
&gt;&gt; +FAIL Ensure that databases() doesn&apos;t pick up changes that haven&apos;t commited. assert_equals: The result of databases() should be only those databases which have been created at the time of calling, regardless of versionchange transactions currently running. expected 1 but got 2
&gt; 
&gt; Nice to see some PASS.
&gt; Do you know why the last test fails?

This test fails because we get our name/version pairs by looping over the databases that exist on the filesystem, and I&apos;m not aware of a way to check whether versionchange has fired for a given database. Happy to hear any suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660241</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-08 09:18:25 -0700</bug_when>
    <thetext>&gt; That was my original plan, but IDBActiveDOMObject has an assertion that the
&gt; ScriptExecutionContext is not null, and when calling getDatabaseNames for
&gt; the Web Inspector we don&apos;t have a ScriptExecutionContext. :(

Web Inspector is probably calling this method for a particular Document which is a ScriptExecutionContext. Not sure about service worker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660721</commentid>
    <comment_count>16</comment_count>
      <attachid>400552</attachid>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-06-09 09:37:04 -0700</bug_when>
    <thetext>Comment on attachment 400552
Patch

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

&gt;&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:504
&gt;&gt; +        ASSERT(!m_databaseInfoCallbacks.contains(request.resourceIdentifier()));
&gt; 
&gt; The id value could probably be generated by IDBConnectionProxy.

You&apos;re suggesting using a uint64_t identifier instead of an IDBResourceIdentifier?

&gt;&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h:175
&gt;&gt; +    HashMap&lt;IDBResourceIdentifier, RefPtr&lt;IDBDatabaseNameAndVersionRequest&gt;&gt; m_databaseInfoCallbacks;
&gt; 
&gt; s/RefPtr/Ref

Can you explain the rationale behind changing this to Ref? All the other HashMaps here are using RefPtr, and my attempts to change it to Ref are resulting in a bunch of compiler errors about assignments and `=`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660752</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-09 11:19:27 -0700</bug_when>
    <thetext>Any place where a value is always non-null should use Ref rather than a RefPtr to clearly communicate a null value is not allowed, just as we use &amp; rather than * throughout WebKit for the same reason. Typically there are a few relatively straightforward changes needed, but occasionally we run into things that just can&apos;t easily be made to work without nullptr. From the phrase alone, it&apos;s not clear if &quot;a bunch of compiler errors&quot; is what&apos;s normally expected or if you are running into a more serious problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660754</commentid>
    <comment_count>18</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-09 11:21:58 -0700</bug_when>
    <thetext>RefPtr is copiable while Ref is not. WTFMove() or copyRef() might help removing some of these compilation issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660757</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-09 11:27:11 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #18)
&gt; RefPtr is copiable while Ref is not. WTFMove() or copyRef() might help
&gt; removing some of these compilation issues.

That was true before r261467, but it is no longer the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661228</commentid>
    <comment_count>20</comment_count>
      <attachid>400552</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-06-10 10:54:00 -0700</bug_when>
    <thetext>Comment on attachment 400552
Patch

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

Thanks for updates on the patch.

&gt;&gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:72
&gt;&gt;&gt; +    void performCallbackOnOriginThread(T&amp; object, void (T::*method)(Parameters...), Arguments&amp;&amp;... arguments)
&gt;&gt; 
&gt;&gt; Ditto for one liner.
&gt;&gt; You could move it out of of the class declaration but keep it in the header file as well.
&gt;&gt; 
&gt;&gt; These two methods seem similar to IDBActiveDOMObject. Should we make IDBDatabaseNameAndVersionRequest derive from it instead of ActiveDOMObject?
&gt; 
&gt; That was my original plan, but IDBActiveDOMObject has an assertion that the ScriptExecutionContext is not null, and when calling getDatabaseNames for the Web Inspector we don&apos;t have a ScriptExecutionContext. :(

WebInspector should have a ScriptExecutionContext or at least have access to one (otherwise it will not be able to inspect database data I think). 
InspectorIndexedDBAgent seems to confirm that. In InspectorIndexedDBAgent it uses document as context, so maybe you can use that document too.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:158
&gt;&gt; +    request-&gt;setCallback([promise = WTFMove(promise)](const Vector&lt;IDBDatabaseNameAndVersion&gt;&amp; result) mutable {
&gt; 
&gt; auto&amp;

Maybe change const Vector&lt;IDBDatabaseNameAndVersion&gt;&amp; result to Optional&lt;Vector&lt;IDBDatabaseNameAndVersion&gt;&gt; so that you can reject the promise when result is null in cases like connection is lost or database errors on server side. 
As in spec:
If this cannot be determined for any reason, then reject p with an appropriate error (e.g. an &quot;UnknownError&quot; DOMException) and terminate these steps.

&gt;&gt;&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:164
&gt;&gt;&gt; +    m_connectionProxy-&gt;getAllDatabaseNamesAndVersions(*request);
&gt;&gt; 
&gt;&gt; Ideally, we would directly write it as something like:
&gt;&gt; 
&gt;&gt; m_connectionProxy-&gt;getAllDatabaseNamesAndVersions(context, [promise = WTFMove(promise)](auto&amp;&amp; result) {
&gt;&gt;     promise.resolve(...);
&gt;&gt; });
&gt;&gt; 
&gt;&gt; And it would be up to m_connectionProxy to isolate the complexity.
&gt;&gt; It might indeed have to create an IDBDatabaseNameAndVersionRequest.
&gt; 
&gt; getAllDatabaseNames (used by the Web Inspector) complicates this because it is called without context, taking in the origins as arguments.

I think it&apos;s possible to make getAllDatabaseNames be called with context. WebInspector does access IDBDatabases with document and document is ScriptExecutionContext. Please check InspectorIndexedDBAgent::requestDatabaseNames.

&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:171
&gt; +    RefPtr&lt;IDBDatabaseNameAndVersionRequest&gt; request = IDBDatabaseNameAndVersionRequest::create(nullptr, m_connectionProxy, origin);

As comment above, maybe try creating IDBDatabaseNameAndVersionRequest with ScriptExecutionContext, which should make thing less complicated.

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:617
&gt; +    {
&gt; +        Locker&lt;Lock&gt; lock(m_databaseInfoMapLock);
&gt; +        removeItemsMatchingCurrentThread(m_databaseInfoCallbacks);
&gt; +    }

You probably also need to complete the callbacks in IDBConnectionProxy::connectionToServerLost, which means the request won&apos;t be answered.

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h:32
&gt; +#include &quot;IDBDatabaseNameAndVersion.h&quot;

Maybe forward declaration.

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:924
&gt; +        database.close();

This is not needed. ~SQLiteDatabase() does the close.

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:937
&gt; +        database.close();

close() is not needed.

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:941
&gt; +    database.close();

close() is not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661600</commentid>
    <comment_count>21</comment_count>
      <attachid>401650</attachid>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-06-11 08:49:13 -0700</bug_when>
    <thetext>Created attachment 401650
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661652</commentid>
    <comment_count>22</comment_count>
      <attachid>401650</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-11 11:09:46 -0700</bug_when>
    <thetext>Comment on attachment 401650
Patch

Good progress.
Some additional comments below.

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

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.cpp:66
&gt; +void IDBDatabaseNameAndVersionRequest::fireCallback(Optional&lt;Vector&lt;IDBDatabaseNameAndVersion&gt;&gt; databases)

&amp;&amp;

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.cpp:71
&gt; +        callback(databases);

WTFMove()

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:30
&gt; +#include &quot;ClientOrigin.h&quot;

Is this one needed?

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:60
&gt; +    using InfoCallback = Function&lt;void(Optional&lt;Vector&lt;IDBDatabaseNameAndVersion&gt;&gt;)&gt;;

Optional&lt;&gt;&amp;&amp;

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:62
&gt; +    void fireCallback(Optional&lt;Vector&lt;IDBDatabaseNameAndVersion&gt;&gt;);

Optional&lt;&gt;&amp;&amp;.
fireCallback name could be improved. How about complete?.
Also, it seems this callback will always be called, so we could migrate it to a CompletionHandler.

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:67
&gt; +    InfoCallback m_callback;

We usually put the members at the end and the private methods before.

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:75
&gt; +    const char* activeDOMObjectName() const final;

This is fine like this given the current model, but it seems a bit weird to have these methods given this is not exposed to JS.

&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:139
&gt; +void IDBFactory::databases(ScriptExecutionContext&amp; context, Ref&lt;DeferredPromise&gt;&amp;&amp; deferred)

You can write it as IDBFactory::databases(..., IDBDatabasesResponsePromise&amp;&amp; promise)

&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:152
&gt; +    m_connectionProxy-&gt;getAllDatabaseNamesAndVersions(context, [promise = WTFMove(promise)](Optional&lt;Vector&lt;IDBDatabaseNameAndVersion&gt;&gt; result) mutable {

s/Optional&lt;&gt;/auto&amp;&amp;

&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:154
&gt; +            promise.reject(Exception { UnknownError });

We usually early return:
if (!result) {
    promise.reject(Exception { UnknownError });
    return;
}

This is fine as is but an improvement would be to use something like ExceptionOr&lt;Vector&gt; to allow passing back an exception code.
Ditto below for IDBFactory::getAllDatabaseNames.

&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:156
&gt; +            promise.resolve(WTF::map(*result, [](const auto&amp; info) {

s/const auto&amp;/auto&amp;&amp;/
and you can move info.name

&gt; Source/WebCore/Modules/indexeddb/IDBFactory.h:70
&gt; +    WEBCORE_EXPORT void getAllDatabaseNames(ScriptExecutionContext&amp;, WTF::Function&lt;void(const Vector&lt;String&gt;&amp;)&gt;&amp;&amp;);

No need for WTF:: anymore I believe.
Given your implementation, you could probably have a Function&lt;void(Vector&lt;String&gt;&amp;&amp;)&gt;, but this could be left as is for now.

&gt; Source/WebCore/Modules/indexeddb/IDBTransaction.h:32
&gt; +#include &quot;IDBDatabaseNameAndVersionRequest.h&quot;

Is it needed?

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:484
&gt; +            request = m_databaseInfoCallbacks.get(requestIdentifier);

This is pre-existing model but it seems to me we should take the request here.
Otherwise we will keep it in the map and call again the request next time the connection is lost.

Ideally we would reuse didGetAllDatabaseNamesAndVersions(requestIdentifier, { }) but this is not straightforward.

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:528
&gt; +        request-&gt;setCallback(WTFMove(callback));

Given we create the request and have the callback, it seems best to pass it in constructor instead of setting it.
Then we can remove the setter probably.

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:529
&gt; +        m_databaseInfoCallbacks.set(request-&gt;resourceIdentifier(), request.get());

add is a bit more efficient than set.
If you want, you can add ASSERT(!m_databaseInfoCallbacks.set.contains(request-&gt;resourceIdentifier())).

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h:31
&gt; +#include &quot;IDBDatabaseNameAndVersion.h&quot;

Can we forward declare IDBDatabaseNameAndVersion?
Ditto below.

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h:120
&gt; +    void getAllDatabaseNamesAndVersions(ScriptExecutionContext&amp;, Function&lt;void(Optional&lt;Vector&lt;IDBDatabaseNameAndVersion&gt;&gt;)&gt;&amp;&amp;);

Function&lt;void(Optional&lt;Vector&lt;IDBDatabaseNameAndVersion&gt;&gt;&amp;&amp;)&gt;

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp:503
&gt; +        m_delegate-&gt;getAllDatabaseNamesAndVersions(requestIdentifier, origin);

We usually early return.

&gt; Source/WebCore/Modules/indexeddb/server/IDBConnectionToClient.h:31
&gt; +#include &quot;IDBDatabaseNameAndVersion.h&quot;

Can we forward declare it?

&gt; Source/WebCore/Modules/indexeddb/server/IDBConnectionToClientDelegate.h:30
&gt; +#include &quot;IDBDatabaseNameAndVersion.h&quot;

Can we forward declare it?

&gt; Source/WebCore/Modules/indexeddb/shared/IDBDatabaseNameAndVersion.h:39
&gt; +    template&lt;class Decoder&gt; static WARN_UNUSED_RETURN bool decode(Decoder&amp;, IDBDatabaseNameAndVersion&amp;);

The modern way is Optional&lt;IDBDatabaseNameAndVersion&gt; decode(Decoder&amp;)

&gt; Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:210
&gt; +void WebIDBConnectionToServer::getAllDatabaseNamesAndVersions(const IDBResourceIdentifier&amp; requestIdentifier, const WebCore::ClientOrigin&amp; origin)

WebCore:: probably not needed.

&gt; Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:325
&gt; +void WebIDBConnectionToServer::didGetAllDatabaseNamesAndVersions(const IDBResourceIdentifier&amp; requestIdentifier, const Vector&lt;WebCore::IDBDatabaseNameAndVersion&gt;&amp; databases)

You can replace it by a Vector&lt;WebCore::IDBDatabaseNameAndVersion&gt;&amp;&amp;
WebCore:: probably not needed.

&gt; Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:327
&gt; +    m_connectionToServer-&gt;didGetAllDatabaseNamesAndVersions(requestIdentifier, databases);

And WTFMove(databases) here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662336</commentid>
    <comment_count>23</comment_count>
      <attachid>401829</attachid>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-06-13 00:56:55 -0700</bug_when>
    <thetext>Created attachment 401829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662571</commentid>
    <comment_count>24</comment_count>
      <attachid>401829</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-15 01:15:56 -0700</bug_when>
    <thetext>Comment on attachment 401829
Patch

LGTM

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

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:50
&gt; +    using InfoCallback = CompletionHandler&lt;void(Optional&lt;Vector&lt;IDBDatabaseNameAndVersion&gt;&gt;&amp;&amp;)&gt;;

I take this suggestion back.
There is no guarantee right now that complete will be called, so it is best to change it back to a Function.

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:64
&gt; +    bool m_hasPendingActivity { true };

Should be moved with other members.
Given it stays true though, we could probably remove it.

&gt; Source/WebCore/Modules/indexeddb/IDBFactory.h:48
&gt; +class DeferredPromise;

Not needed?

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:482
&gt; +        Optional&lt;Vector&lt;IDBDatabaseNameAndVersion&gt;&gt; result = WTF::nullopt;

By default optional is null, so no need for assignment here.

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:483
&gt; +        didGetAllDatabaseNamesAndVersions(requestIdentifier, WTFMove(result));

Can we write it as didGetAllDatabaseNamesAndVersions(requestIdentifier, { });?

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:519
&gt; +        auto req = IDBDatabaseNameAndVersionRequest::create(context, *this, WTFMove(callback));

s/req/newRequest/

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:535
&gt; +        if (!req)

s/req/takenRequest/

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:538
&gt; +        request = (*req).ptr();

request = WTFMove(*req)

&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h:54
&gt; +struct IDBDatabaseNameAndVersion;

Might not be needed if IDBDatabaseNameAndVersionRequest.h declares it

&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:196
&gt; +void WebIDBConnectionToClient::didGetAllDatabaseNamesAndVersions(const WebCore::IDBResourceIdentifier&amp; requestIdentifier, Vector&lt;WebCore::IDBDatabaseNameAndVersion&gt;&amp;&amp; databases)

We can keep a const &amp; here since that is what Messages::WebIDBConnectionToServer::DidGetAllDatabaseNamesAndVersions is taking

&gt; Source/WebKitLegacy/Storage/InProcessIDBServer.cpp:489
&gt; +    dispatchTaskReply([this, protectedThis = makeRef(*this), requestIdentifier, databases = WTFMove(databases)]() mutable {

It is safer to keep isolatedCopying databases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662652</commentid>
    <comment_count>25</comment_count>
      <attachid>401829</attachid>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-06-15 08:15:59 -0700</bug_when>
    <thetext>Comment on attachment 401829
Patch

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

Thanks so much for working through this with me. I really appreciate the review &amp; feedback!

&gt;&gt; Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp:483
&gt;&gt; +        didGetAllDatabaseNamesAndVersions(requestIdentifier, WTFMove(result));
&gt; 
&gt; Can we write it as didGetAllDatabaseNamesAndVersions(requestIdentifier, { });?

We can.
Will { } be considered nullopt here or an empty Vector? I think we want the null optional so that the promise will reject.

&gt;&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:196
&gt;&gt; +void WebIDBConnectionToClient::didGetAllDatabaseNamesAndVersions(const WebCore::IDBResourceIdentifier&amp; requestIdentifier, Vector&lt;WebCore::IDBDatabaseNameAndVersion&gt;&amp;&amp; databases)
&gt; 
&gt; We can keep a const &amp; here since that is what Messages::WebIDBConnectionToServer::DidGetAllDatabaseNamesAndVersions is taking

If I make this const, then WTFMove(databases) fails due to the static_assert: T is const qualified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662657</commentid>
    <comment_count>26</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-15 08:29:15 -0700</bug_when>
    <thetext>&gt; &gt; Can we write it as didGetAllDatabaseNamesAndVersions(requestIdentifier, { });?
&gt; 
&gt; We can.
&gt; Will { } be considered nullopt here or an empty Vector? I think we want the
&gt; null optional so that the promise will reject.

It will be nullopt, so this promise should reject.
You can use WTF::nullopt as well.

Maybe we should have some tests in that area if we do not have already.
As a follow-up, we could write a with testRunner.terminateNetworkProcess, though that might not be easy to make it non racy.
Or we could add a testRunner/internals API to trigger the same code path.

&gt; &gt;&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:196
&gt; &gt;&gt; +void WebIDBConnectionToClient::didGetAllDatabaseNamesAndVersions(const WebCore::IDBResourceIdentifier&amp; requestIdentifier, Vector&lt;WebCore::IDBDatabaseNameAndVersion&gt;&amp;&amp; databases)
&gt; &gt; 
&gt; &gt; We can keep a const &amp; here since that is what Messages::WebIDBConnectionToServer::DidGetAllDatabaseNamesAndVersions is taking
&gt; 
&gt; If I make this const, then WTFMove(databases) fails due to the
&gt; static_assert: T is const qualified.

You can remove WTFMove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662659</commentid>
    <comment_count>27</comment_count>
      <attachid>401899</attachid>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-06-15 08:38:13 -0700</bug_when>
    <thetext>Created attachment 401899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663001</commentid>
    <comment_count>28</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-16 00:27:18 -0700</bug_when>
    <thetext>Committed r263079: &lt;https://trac.webkit.org/changeset/263079&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401899.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663091</commentid>
    <comment_count>29</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2020-06-16 08:19:17 -0700</bug_when>
    <thetext>Reverted r263079 for reason:

Broke Internal builds.

Committed r263093: &lt;https://trac.webkit.org/changeset/263093&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663092</commentid>
    <comment_count>30</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-16 08:23:01 -0700</bug_when>
    <thetext>I&apos;ll have a look at the build error tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663418</commentid>
    <comment_count>31</comment_count>
      <attachid>402094</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-17 02:02:19 -0700</bug_when>
    <thetext>Created attachment 402094
Patch + build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663509</commentid>
    <comment_count>32</comment_count>
      <attachid>402111</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-17 09:08:39 -0700</bug_when>
    <thetext>Created attachment 402111
Patch + build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663542</commentid>
    <comment_count>33</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-17 09:51:47 -0700</bug_when>
    <thetext>Committed r263157: &lt;https://trac.webkit.org/changeset/263157&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402111.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663561</commentid>
    <comment_count>34</comment_count>
      <attachid>402111</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-17 10:20:18 -0700</bug_when>
    <thetext>Comment on attachment 402111
Patch + build fix

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

&gt; Source/WebCore/rendering/RenderThemeMac.mm:2813
&gt; +#endif

Why this change? This seems to have broken the build for me..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663562</commentid>
    <comment_count>35</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-17 10:21:05 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #34)
&gt; Comment on attachment 402111 [details]
&gt; Patch + build fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402111&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeMac.mm:2813
&gt; &gt; +#endif
&gt; 
&gt; Why this change? This seems to have broken the build for me..

My mistake, we should revert that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663565</commentid>
    <comment_count>36</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-17 10:23:20 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663566</commentid>
    <comment_count>37</comment_count>
      <attachid>402126</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-17 10:23:23 -0700</bug_when>
    <thetext>Created attachment 402126
Build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663567</commentid>
    <comment_count>38</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-17 10:24:01 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #35)
&gt; (In reply to Chris Dumez from comment #34)
&gt; &gt; Comment on attachment 402111 [details]
&gt; &gt; Patch + build fix
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=402111&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/RenderThemeMac.mm:2813
&gt; &gt; &gt; +#endif
&gt; &gt; 
&gt; &gt; Why this change? This seems to have broken the build for me..
&gt; 
&gt; My mistake, we should revert that change.

&lt;https://trac.webkit.org/changeset/263163&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663568</commentid>
    <comment_count>39</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-17 10:24:08 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 402126 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691701</commentid>
    <comment_count>40</comment_count>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-09-24 16:02:13 -0700</bug_when>
    <thetext>This has been landed, and has shipped in iOS 14 and Safari 14 for macOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691704</commentid>
    <comment_count>41</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-24 16:11:30 -0700</bug_when>
    <thetext>Does anyone have the revision number for when we landed this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691705</commentid>
    <comment_count>42</comment_count>
    <who name="Darryl Pogue">dvpdiner2</who>
    <bug_when>2020-09-24 16:13:15 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #41)
&gt; Does anyone have the revision number for when we landed this?

Looks like r263157: https://trac.webkit.org/changeset/263157/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398299</attachid>
            <date>2020-05-02 17:36:07 -0700</date>
            <delta_ts>2020-05-04 08:14:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211043-20200502173606.patch</filename>
            <type>text/plain</type>
            <size>55582</size>
            <attacher name="Darryl Pogue">dvpdiner2</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZmMDIyMmVlNzhmZjVk
YjE1MTJkZTIwNjc3YmI1YzI0N2YwY2NhMC4uOTQyNjc3MTg2NDIxNDQ2YWRjYTM2ZjEwYTg2OGVh
NGVhYmFlMDE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTA1LTAyICBEYXJy
eWwgUG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9y
dCBJREJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBmZXRjaGluZyB0aGUgbGlzdCBv
ZiBJREIgZGF0YWJhc2UgbmFtZXMgYW5kIHZlcnNpb25zCisgICAgICAgIGZyb20gdGhlIElEQlNl
cnZlciwgYW5kIGV4cG9zZSB0aGUgZnVuY3Rpb25hbGl0eSBhcworICAgICAgICBgSURCRmFjdG9y
eS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpkYXRhYmFzZXMp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5OjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmRp
ZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNB
bmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmg6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRl
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmg6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb246OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOjpkZWNvZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjo6aXNvbGF0ZWRDb3B5IGNv
bnN0KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisKIDIwMjAtMDUtMDIgIERhbmllbCBCYXRl
cyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJ
blJlY3QoKSBzaG91bGQgcmV0dXJuIHJvb3QgZWRpdGFibGUgZWxlbWVudHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
OWE4MjRlZDg2N2FiYTI4YTRiOTAwNDhkMWQ3ZmE5OTc5OWY1NTVhYi4uMTNkZDBmOTA5MGNkMGJh
ZGZlOTY4NDJjMDZhYzdlMjNkOTU3YmEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAy
MC0wNS0wMiAgRGFycnlsIFBvZ3VlICA8ZGFycnlsQGRwb2d1ZS5jYT4KKworICAgICAgICBJbmRl
eGVkREI6IFN1cHBvcnQgSURCRmFjdG9yeSBkYXRhYmFzZXMgbWV0aG9kCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbHVtYmluZyBmb3IgcmV0dXJuaW5n
IGEgbGlzdCBvZiBJREIgZGF0YWJhc2VzIGFuZCB2ZXJzaW9ucy4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFt
ZXNBbmRWZXJzaW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWRE
Qi9XZWJJREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQlNlcnZlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWRE
Qi9XZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNp
b25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRB
bGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3Nh
Z2VzLmluOgorCiAyMDIwLTA1LTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIGhhbmRsZVdoZWVsRXZlbnRQaGFzZSgpIHNob3VsZCBpbmNsdWRlIHRo
ZSByZWxldmFudCBTY3JvbGxpbmdOb2RlSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggNTJlNDZj
YWQ3ZjdiM2NiMjhiYTNmOGI2ZTdiZTkwMWIyODkwZjFkZS4uZjlmZjYxYTMzMmIyMTg0NzJjNjM1
OWIxMGQxZmU3N2Y1NjkzZGFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMC0wNS0wMiAgRGFycnlsIFBvZ3VlICA8ZGFycnlsQGRwb2d1ZS5jYT4KKworICAgICAg
ICBJbmRleGVkREI6IFN1cHBvcnQgSURCRmFjdG9yeSBkYXRhYmFzZXMgbWV0aG9kCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbHVtYmluZyBmb3IgcmV0
dXJuaW5nIGEgbGlzdCBvZiBJREIgZGF0YWJhc2VzIGFuZCB2ZXJzaW9ucy4KKworICAgICAgICAq
IFN0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoKKyAgICAgICAgKEluUHJvY2Vzc0lEQlNl
cnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKEluUHJvY2Vz
c0lEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAg
KiBTdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5oOgorCiAyMDIwLTA1LTAxICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBGaXggQXBwbGVXaW4g
YnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5j
cHAKaW5kZXggYjEzYzcxZTg5MWNiYjIyOTQ3NTRmZDViNzAzMTJjZjZkMmZlYzgwMC4uYTNmNTNj
OWU2ZDI4MjBiZTcxMmY0ZTJjMmEyZDA0N2NkZjAyOWZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKQEAgLTM0LDYgKzM0LDggQEAKICNp
bmNsdWRlICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJREJLZXkuaCIKICNp
bmNsdWRlICJJREJPcGVuREJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJy
ZWQuaCIKKyNpbmNsdWRlICJKU0lEQkZhY3RvcnkuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAg
LTQzLDYgKzQ1LDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKK3VzaW5nIElEQkRhdGFiYXNlc1Jlc3BvbnNlUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJl
ZDxJRExTZXF1ZW5jZTxJRExEaWN0aW9uYXJ5PElEQkZhY3Rvcnk6OkRhdGFiYXNlSW5mbz4+PjsK
Kwogc3RhdGljIGJvb2wgc2hvdWxkVGhyb3dTZWN1cml0eUV4Y2VwdGlvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0KQogewogICAgIEFTU0VSVChpczxEb2N1bWVudD4oY29udGV4dCkg
fHwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwpAQCAtMTMzLDYgKzEzNywyNiBAQCBF
eGNlcHRpb25PcjxzaG9ydD4gSURCRmFjdG9yeTo6Y21wKEpTR2xvYmFsT2JqZWN0JiBleGVjU3Rh
dGUsIEpTVmFsdWUgZmlyc3RWYWx1ZQogICAgIHJldHVybiBmaXJzdC0+Y29tcGFyZShzZWNvbmQu
Z2V0KCkpOwogfQogCit2b2lkIElEQkZhY3Rvcnk6OmRhdGFiYXNlcyhTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIGRlZmVycmVkKQoreworICAg
IExPRyhJbmRleGVkREIsICJJREJGYWN0b3J5OjpkYXRhYmFzZXMiKTsKKworICAgIElEQkRhdGFi
YXNlc1Jlc3BvbnNlUHJvbWlzZSBwcm9taXNlID0gV1RGTW92ZShkZWZlcnJlZCk7CisKKyAgICBp
ZiAoc2hvdWxkVGhyb3dTZWN1cml0eUV4Y2VwdGlvbihjb250ZXh0KSkgeworICAgICAgICBwcm9t
aXNlLnJlamVjdChTZWN1cml0eUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IEFTU0VSVChjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCkpOworCisgICAgbV9jb25uZWN0aW9uUHJv
eHktPmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb250ZXh0LCBbcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYg
cmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFdURjo6bWFwKHJlc3Vs
dCwgW10oY29uc3QgYXV0byYgaW5mbykgeworICAgICAgICAgICAgcmV0dXJuIElEQkZhY3Rvcnk6
OkRhdGFiYXNlSW5mbyB7IGluZm8ubmFtZSwgaW5mby52ZXJzaW9uIH07CisgICAgICAgIH0pKTsK
KyAgICB9KTsKK30KKwogdm9pZCBJREJGYWN0b3J5OjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBv
cGVuaW5nT3JpZ2luLCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNh
bGxiYWNrKQogewogICAgIG1fY29ubmVjdGlvblByb3h5LT5nZXRBbGxEYXRhYmFzZU5hbWVzKG1h
aW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgV1RGTW92ZShjYWxsYmFjaykpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCmluZGV4IDEzNDU2NTEx
OWYyNzRhODJjNTM4MTY0OTIzNmYwNTVkMzI1OWFhNzMuLjVlZGMzYTAzNGY2ZDFmOTk1ZDE2MTQx
Zjg4MDk5YWQ2MTQzNTMyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJGYWN0b3J5LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgSURCT3BlbkRCUmVxdWVzdDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFz
cyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsKIAogbmFtZXNwYWNlIElE
QkNsaWVudCB7CiBjbGFzcyBJREJDb25uZWN0aW9uUHJveHk7CkBAIC01NCwxMSArNTUsMTggQEAg
cHVibGljOgogICAgIHN0YXRpYyBSZWY8SURCRmFjdG9yeT4gY3JlYXRlKElEQkNsaWVudDo6SURC
Q29ubmVjdGlvblByb3h5Jik7CiAgICAgfklEQkZhY3RvcnkoKTsKIAorICAgIHN0cnVjdCBEYXRh
YmFzZUluZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgdWludDY0X3QgdmVyc2lv
bjsKKyAgICB9OworCiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQk9wZW5EQlJlcXVlc3Q+PiBvcGVu
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5hbWUsIE9wdGlvbmFsPHVp
bnQ2NF90PiB2ZXJzaW9uKTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCT3BlbkRCUmVxdWVzdD4+
IGRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5h
bWUpOwogCiAgICAgRXhjZXB0aW9uT3I8c2hvcnQ+IGNtcChKU0M6OkpTR2xvYmFsT2JqZWN0Jiwg
SlNDOjpKU1ZhbHVlIGZpcnN0LCBKU0M6OkpTVmFsdWUgc2Vjb25kKTsKIAorICAgIHZvaWQgZGF0
YWJhc2VzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsK
KwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1
cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3Blbmlu
Z09yaWdpbiwgV1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmKTsK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5pZGwKaW5kZXggZjk4ZjNmODM5YmM0YTM4M2RkNDM5OTI5OWI3OTI2YjA3Njg3YTBiMS4u
OTVlYTY2MTJkZTdlNThlMjU2MDE1MDY5Y2M5M2Y2OGQwMjNhNzZmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKQEAgLTI5LDUgKzI5LDE0
IEBACiBdIGludGVyZmFjZSBJREJGYWN0b3J5IHsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIElEQk9wZW5EQlJlcXVlc3Qgb3BlbihET01T
dHJpbmcgbmFtZSwgb3B0aW9uYWwgW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBsb25nIHZl
cnNpb24pOwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4
Y2VwdGlvbl0gSURCT3BlbkRCUmVxdWVzdCBkZWxldGVEYXRhYmFzZShET01TdHJpbmcgbmFtZSk7
CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFByb21pc2U8c2VxdWVuY2U8
SURCRGF0YWJhc2VJbmZvPj4gZGF0YWJhc2VzKCk7CiAgICAgW0NhbGxXaXRoPUdsb2JhbE9iamVj
dCwgTWF5VGhyb3dFeGNlcHRpb25dIHNob3J0IGNtcChhbnkgZmlyc3QsIGFueSBzZWNvbmQpOwog
fTsKKworWworICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UsCisgICAgSlNHZW5lcmF0
ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgSURCRGF0YWJhc2VJbmZvIHsKKyAgICBET01TdHJp
bmcgbmFtZTsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbjsKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uUHJveHkuY3BwCmluZGV4IDk1NmRmYWU2NDUxNzQ5OGRlMzhlNTQ4MzFiNTkxYjRmNjM1
NWM5NTkuLmQ1OTQ2Y2EyZGIwMWZlMWEyNmQwNGU1NjJiNTlkZGY5MWQ4NWRhYzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9u
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uUHJveHkuY3BwCkBAIC01MDQsNiArNTA0LDMwIEBAIHZvaWQgSURCQ29ubmVj
dGlvblByb3h5OjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWlu
RnJhbWVPcmlnCiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXIuZ2V0QWxsRGF0YWJhc2VOYW1lcyht
YWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAor
dm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3Rv
cjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpPiYmIGNhbGxiYWNrKQoreworICAgIElEQlJl
c291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllcigqdGhpcyk7CisgICAgQ2xpZW50T3Jp
Z2luIG9yaWdpbiB7IGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKS0+ZGF0YSgpLCBjb250ZXh0LnRv
cE9yaWdpbigpLmRhdGEoKSB9OworICAgIAorICAgIHsKKyAgICAgICAgTG9ja2VyPExvY2s+IGxv
Y2tlcihtX2RhdGFiYXNlSW5mb01hcExvY2spOworICAgICAgICBtX2RhdGFiYXNlSW5mb0NhbGxi
YWNrcy5hZGQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICB9Cisg
ICAgCisgICAgY2FsbENvbm5lY3Rpb25Pbk1haW5UaHJlYWQoJklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zLCByZXF1ZXN0SWRlbnRpZmllciwgV1RG
TW92ZShvcmlnaW4pKTsKK30KKwordm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmRpZEdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRh
dGFiYXNlcykKK3sKKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb24+Jik+IGNhbGxiYWNrOworICAgIHsKKyAgICAgICAgTG9ja2VyPExv
Y2s+IGxvY2tlcihtX2RhdGFiYXNlSW5mb01hcExvY2spOworICAgICAgICBjYWxsYmFjayA9IG1f
ZGF0YWJhc2VJbmZvQ2FsbGJhY2tzLnRha2UocmVxdWVzdElkZW50aWZpZXIpOworICAgIH0KKyAg
ICAKKyAgICBjYWxsYmFjayhkYXRhYmFzZXMpOworfQorCiB2b2lkIElEQkNvbm5lY3Rpb25Qcm94
eTo6cmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oSURCRGF0YWJhc2UmIGRhdGFiYXNlKQogewog
ICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZUNvbm5lY3Rpb25NYXBMb2NrKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uUHJveHkuaAppbmRleCA0NjQyZjA5M2U3MzgyOWQ2NmFmYjYxMDk0OTQ2YWUx
OTcwMTljZjdlLi42MWE1OGMzNjA4MDJkOTk3NmJlY2U1MzIxNGU4NjJkNWM3MDZjMTE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Qcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCIKKyNpbmNs
dWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCiAjaW5jbHVkZSAiSURCUmVzb3VyY2VJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVHJhbnNhY3Rpb25PcGVyYXRpb24uaCIKICNpbmNsdWRl
IDx3dGYvQ3Jvc3NUaHJlYWRRdWV1ZS5oPgpAQCAtMTE1LDcgKzExNiw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHJlZigpOwogICAgIHZvaWQgZGVyZWYoKTsKIAotICAgIHZvaWQgZ2V0QWxsRGF0YWJh
c2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1
cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgV1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0
b3I8U3RyaW5nPiYpPiYmKTsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2Vj
dXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5p
bmdPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmKTsK
KyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uPiYpPiYmKTsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBWZWN0b3I8SURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvbj4mKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rp
b24oSURCRGF0YWJhc2UmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24o
SURCRGF0YWJhc2UmKTsKQEAgLTE2OCw2ICsxNzEsOSBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1h
cDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxUcmFuc2FjdGlvbk9wZXJhdGlvbj4+IG1f
YWN0aXZlT3BlcmF0aW9uczsKICAgICBMb2NrIG1fdHJhbnNhY3Rpb25PcGVyYXRpb25Mb2NrOwor
ICAgIAorICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+Jik+PiBtX2RhdGFiYXNl
SW5mb0NhbGxiYWNrczsKKyAgICBMb2NrIG1fZGF0YWJhc2VJbmZvTWFwTG9jazsKIAogICAgIENy
b3NzVGhyZWFkUXVldWU8Q3Jvc3NUaHJlYWRUYXNrPiBtX21haW5UaHJlYWRRdWV1ZTsKICAgICBM
b2NrIG1fbWFpblRocmVhZFRhc2tMb2NrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNw
cAppbmRleCA2MTk0YTk4MWEwMWZmYWY0YTg4NjcwNmVhZGVhYWNhODExM2Y0NmIwLi5hZWI5MmVl
ODZkODg0YjRlNjZkMTUzYzhkMzRjNmI5NjM4ZjY3MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blRvU2VydmVyLmNwcApAQCAtNTE3LDYgKzUxNywyOCBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBW
ZQogICAgIGNhbGxiYWNrKGRhdGFiYXNlTmFtZXMpOwogfQogCit2b2lkIElEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2lu
KQoreworICAgIExPRyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyIpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisK
KyAgICBpZiAobV9zZXJ2ZXJDb25uZWN0aW9uSXNWYWxpZCkKKyAgICAgICAgbV9kZWxlZ2F0ZS0+
Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4p
OworICAgIGVsc2UgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyXSB7CisgICAgICAgICAgICBk
aWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIHsgfSk7
CisgICAgICAgIH0pOworICAgIH0KK30KKwordm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRp
ZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbj4mIGRhdGFiYXNlcykKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRv
U2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMiKTsKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworCisgICAgbV9wcm94eS0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBkYXRhYmFzZXMpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBJREJDbGllbnQKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5oCmluZGV4IDVlZDI0ZmU1NjhmMWFjMjU5NjBhOTZjNDAzOTVmY2E1MGI4NDRh
YzUuLjE5NzNmNjAyMzU2NTQ3ODlhM2EwMmJmMmY1YzZiYmM0YTIxNTI2YjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIklEQkNv
bm5lY3Rpb25Qcm94eS5oIgogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRl
LmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgogI2luY2x1ZGUgIklE
QlJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC00NSw2ICs0Niw3IEBAIGNsYXNzIElEQlJlc3VsdERhdGE7
CiBjbGFzcyBJREJWYWx1ZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogCitzdHJ1Y3QgQ2xpZW50
T3JpZ2luOwogc3RydWN0IElEQkdldEFsbFJlY29yZHNEYXRhOwogc3RydWN0IElEQkdldFJlY29y
ZERhdGE7CiBzdHJ1Y3QgSURCSXRlcmF0ZUN1cnNvckRhdGE7CkBAIC0xMzYsMTkgKzEzOCwyMiBA
QCBwdWJsaWM6CiAgICAgLy8gdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiwgYnV0IHRoZSBwYWdl
IGlzIGFscmVhZHkgdG9ybiBkb3duLgogICAgIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRl
ZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAKLSAgICB2b2lkIGdldEFsbERh
dGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3Qg
VmVjdG9yPFN0cmluZz4mKT4mJik7CisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBv
cGVuaW5nT3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4m
Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2
NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKTsKIAor
ICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpOworCiBw
cml2YXRlOgogICAgIElEQkNvbm5lY3Rpb25Ub1NlcnZlcihJREJDb25uZWN0aW9uVG9TZXJ2ZXJE
ZWxlZ2F0ZSYpOwogCiAgICAgdHlwZWRlZiB2b2lkIChJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OipS
ZXN1bHRGdW5jdGlvbikoY29uc3QgSURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgY2FsbFJlc3Vs
dEZ1bmN0aW9uV2l0aEVycm9yTGF0ZXIoUmVzdWx0RnVuY3Rpb24sIGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpOwotICAgIAorCiAgICAgV2Vha1B0cjxJREJD
b25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKICAgICBib29sIG1fc2VydmVy
Q29ubmVjdGlvbklzVmFsaWQgeyB0cnVlIH07CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6
OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+PiBtX2dldEFsbERhdGFiYXNl
TmFtZXNDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lk
KGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+PiBtX2dldEFsbERhdGFiYXNlTmFtZXNDYWxsYmFja3M7
CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCQ29ubmVjdGlvblByb3h5PiBtX3Byb3h5OwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKaW5kZXggMGVmN2Zi
NTRhMTYxODA3ZWQ3NTcwMjM4MzQ5NDhiZmE3NzFjZTYxNi4uMzMwZDQ1NWY1NTI2ODEyNWUzMjBl
Nzg0MDYzZjJlMjNmNGYwNDhmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZl
ckRlbGVnYXRlLmgKQEAgLTQxLDYgKzQxLDcgQEAgY2xhc3MgSURCUmVxdWVzdERhdGE7CiBjbGFz
cyBJREJUcmFuc2FjdGlvbkluZm87CiBjbGFzcyBJREJWYWx1ZTsKIAorc3RydWN0IENsaWVudE9y
aWdpbjsKIHN0cnVjdCBJREJHZXRBbGxSZWNvcmRzRGF0YTsKIHN0cnVjdCBJREJHZXRSZWNvcmRE
YXRhOwogc3RydWN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhOwpAQCAtODgsNiArODksNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVx
dWVzdERhdGEmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImLCBjb25zdCBDbGllbnRPcmlnaW4mKSA9IDA7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBJREJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXgg
NjQ2ZjliMjU5NjFmMzkyNmMyMWVkMDE0NzJmNTA3NzAwZmZiMWU4OC4uZTliNjJiZTlhYWIxOWQw
NGFjZDhmZWY3Y2Q5ODRiZmRlNjdlMGRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5jcHAKQEAgLTE4Nyw2ICsxODcsMTIgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRp
ZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmUKICAgICAg
ICAgbV9kZWxlZ2F0ZS0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFz
ZU5hbWVzKTsKIH0KIAordm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFi
YXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJ
ZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFi
YXNlcykKK3sKKyAgICBpZiAobV9kZWxlZ2F0ZSkKKyAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkR2V0
QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBkYXRhYmFzZXMp
OworfQorCiB2b2lkIElEQkNvbm5lY3Rpb25Ub0NsaWVudDo6cmVnaXN0ZXJEYXRhYmFzZUNvbm5l
Y3Rpb24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAgIEFT
U0VSVCghbV9kYXRhYmFzZUNvbm5lY3Rpb25zLmNvbnRhaW5zKCZjb25uZWN0aW9uKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVj
dGlvblRvQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCQ29ubmVjdGlvblRvQ2xpZW50LmgKaW5kZXggY2U1YzgyZGZlNjBlMWExYzFlMmVkMzUyYWMy
MzRmNDBhODUxMTM5Ny4uZjI1ZjQ4NzY2OGFmZTdiMWE0ZmVkM2RjMzMwZmQ5ZTVjNGZiMjhhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNv
bm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvQ2xpZW50
RGVsZWdhdGUuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KQEAgLTc1LDYgKzc2LDcgQEAgcHVibGljOgogICAgIHZvaWQgbm90aWZ5
T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0
SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbik7CiAK
ICAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpOworICAgIHZvaWQgZGlkR2V0QWxsRGF0
YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0
IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpOwogCiAgICAgdm9pZCByZWdpc3Rl
ckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKICAgICB2
b2lkIHVucmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCmluZGV4
IDVlYTVhMmU3ZDJkMDRlOTc2ZjFhY2MyOTE1ZjBiNTMxMjJjZGIzMTEuLjg4N2RiNzM2MzZkMzZl
YWI3ZmQ5ZTVhNDM5YmEyMjkwN2IwNWVhMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9u
VG9DbGllbnREZWxlZ2F0ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCIKICNp
bmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNzEsNiArNzIsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNp
b24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRHZXRB
bGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBkYXRhYmFzZU5hbWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEdldEFsbERhdGFiYXNl
TmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBWZWN0
b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBJREJTZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggZGU5MTZjNjYzNTYwNmJhOWQzNWMzMzFlNzhiYTE5
MjA0ZmE0YzJhNS4uOWVlYWEzMjY3MDVlMzJlOTJjYzU2MGY5OTYyNzFkMWM5OTc5MWUzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cnZlci5jcHAKQEAgLTUzNiw2ICs1MzYsMzYgQEAgdm9pZCBJREJTZXJ2ZXI6OmdldEFsbERhdGFi
YXNlTmFtZXMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW4KICAg
ICBjb25uZWN0aW9uLT5kaWRHZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxiYWNrSUQsIGRhdGFiYXNl
cyk7CiB9CiAKK3ZvaWQgSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMo
SURCQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IENsaWVudE9y
aWdpbiYgb3JpZ2luKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VS
VChtX2xvY2suaXNIZWxkKCkpOworCisgICAgYXV0byBkYXRhYmFzZURpcmVjdG9yeVBhdGggPSB0
aGlzLT5kYXRhYmFzZURpcmVjdG9yeVBhdGhJc29sYXRlZENvcHkoKTsKKyAgICBTdHJpbmcgb2xk
RGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0
aXZlVG9Sb290KG9yaWdpbi50b3BPcmlnaW4sIG9yaWdpbi5jbGllbnRPcmlnaW4sIGRhdGFiYXNl
RGlyZWN0b3J5UGF0aCwgInYwIik7CisgICAgVmVjdG9yPFN0cmluZz4gZmlsZXMgPSBGaWxlU3lz
dGVtOjpsaXN0RGlyZWN0b3J5KG9sZERpcmVjdG9yeSwgIioiX3MpOworICAgIFZlY3RvcjxJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uPiBkYXRhYmFzZXM7CisgICAgZm9yIChhdXRvJiBmaWxlIDog
ZmlsZXMpIHsKKyAgICAgICAgYXV0byBkYXRhYmFzZVR1cGxlID0gU1FMaXRlSURCQmFja2luZ1N0
b3JlOjpkYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbUZpbGUoU1FMaXRlSURCQmFja2luZ1N0b3Jl
OjpmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5KGZpbGUpKTsKKyAgICAgICAgaWYgKCFkYXRh
YmFzZVR1cGxlLm5hbWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgZGF0YWJhc2VzLmFwcGVuZChk
YXRhYmFzZVR1cGxlKTsKKyAgICB9CisKKyAgICBTdHJpbmcgZGlyZWN0b3J5ID0gSURCRGF0YWJh
c2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbi50b3BP
cmlnaW4sIG9yaWdpbi5jbGllbnRPcmlnaW4sIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7
CisgICAgZmlsZXMgPSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGRpcmVjdG9yeSwgIioiX3Mp
OworICAgIGZvciAoYXV0byYgZmlsZSA6IGZpbGVzKSB7CisgICAgICAgIGF1dG8gZGF0YWJhc2VU
dXBsZSA9IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21G
aWxlKFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeShm
aWxlKSk7CisgICAgICAgIGlmICghZGF0YWJhc2VUdXBsZS5uYW1lLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIGRhdGFiYXNlcy5hcHBlbmQoZGF0YWJhc2VUdXBsZSk7CisgICAgfQorCisgICAgYXV0
byBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uTWFwLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
Zmllcik7CisgICAgaWYgKCFjb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25u
ZWN0aW9uLT5kaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZp
ZXIsIGRhdGFiYXNlcyk7Cit9CisKIHZvaWQgSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFi
YXNlc01vZGlmaWVkU2luY2UoV2FsbFRpbWUgbW9kaWZpY2F0aW9uVGltZSkKIHsKICAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAppbmRleCA0MDk4NzQ5ZjU3ODdiMDc5YzdhMWVlYTg0
MThlNjEyOThlNzdkY2JkLi5mMWQ5OWFmYjBkZmZmMzQzMTZiMDBiNmEzOWRmMGY3OWRmZDczODQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5oCkBAIC05MCw2ICs5MCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmKTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhJREJDb25uZWN0aW9uSWRl
bnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09y
aWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRB
bGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworCiAKICAgICB2
b2lkIHJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlv
biYpOwogICAgIHZvaWQgdW5yZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXgg
NTYzZGVhODgwZmE4NzhmNTQyMjk4MGRjN2FmYjNlYTQ4OTk4NTIyNy4uOGExYzc5MTBmZDE5MjI2
ZTg3ZTIxYmNkMTRlMWFjOTljZTE1MmQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9y
ZS5jcHAKQEAgLTkzMCw2ICs5MzAsMzcgQEAgU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZGF0YWJhc2VOYW1lRnJvbUZpbGUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCiAgICAgcmV0
dXJuIGRhdGFiYXNlTmFtZTsKIH0KIAorSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbiBTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShjb25zdCBTdHJp
bmcmIGRhdGFiYXNlUGF0aCkKK3sKKyAgICBTUUxpdGVEYXRhYmFzZSBkYXRhYmFzZTsKKyAgICBp
ZiAoIWRhdGFiYXNlLm9wZW4oZGF0YWJhc2VQYXRoKSkgeworICAgICAgICBMT0dfRVJST1IoIkZh
aWxlZCB0byBvcGVuIFNRTGl0ZSBkYXRhYmFzZSBhdCBwYXRoICclcycgd2hlbiBnZXR0aW5nIGRh
dGFiYXNlIG5hbWUiLCBkYXRhYmFzZVBhdGgudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIHJldHVy
biB7IH07CisgICAgfQorICAgIGlmICghZGF0YWJhc2UudGFibGVFeGlzdHMoIklEQkRhdGFiYXNl
SW5mbyJfcykpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZmluZCBJREJEYXRhYmFz
ZUluZm8gdGFibGUgYW5kIGdldCBkYXRhYmFzZSBuYW1lKCVpKSAtICVzIiwgZGF0YWJhc2UubGFz
dEVycm9yKCksIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgZGF0YWJhc2UuY2xv
c2UoKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBTUUxpdGVTdGF0ZW1lbnQg
bmFtZXNxbChkYXRhYmFzZSwgIlNFTEVDVCB2YWx1ZSBGUk9NIElEQkRhdGFiYXNlSW5mbyBXSEVS
RSBrZXkgPSAnRGF0YWJhc2VOYW1lJzsiKTsKKyAgICBhdXRvIGRhdGFiYXNlTmFtZSA9IG5hbWVz
cWwuZ2V0Q29sdW1uVGV4dCgwKTsKKworICAgIFNRTGl0ZVN0YXRlbWVudCB2ZXJzcWwoZGF0YWJh
c2UsICJTRUxFQ1QgdmFsdWUgRlJPTSBJREJEYXRhYmFzZUluZm8gV0hFUkUga2V5ID0gJ0RhdGFi
YXNlVmVyc2lvbic7Il9zKTsKKyAgICBTdHJpbmcgc3RyaW5nVmVyc2lvbiA9IHZlcnNxbC5nZXRD
b2x1bW5UZXh0KDApOworICAgIGJvb2wgb2s7CisgICAgdWludDY0X3QgZGF0YWJhc2VWZXJzaW9u
ID0gc3RyaW5nVmVyc2lvbi50b1VJbnQ2NFN0cmljdCgmb2spOworICAgIGlmICghb2spIHsKKyAg
ICAgICAgTE9HX0VSUk9SKCJEYXRhYmFzZSB2ZXJzaW9uIG9uIGRpc2sgKCclcycpIGRvZXMgbm90
IGNsZWFubHkgY29udmVydCB0byBhbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB2ZXJzaW9uIiwg
c3RyaW5nVmVyc2lvbi51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgZGF0YWJhc2UuY2xvc2UoKTsK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBkYXRhYmFzZS5jbG9zZSgpOworCisg
ICAgcmV0dXJuIHsgZGF0YWJhc2VOYW1lLCBkYXRhYmFzZVZlcnNpb24gfTsKK30KKwogU3RyaW5n
IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlRGlyZWN0b3J5V2l0aFVwZ3JhZGUo
KQogewogICAgIGF1dG8gZGF0YWJhc2VSb290RGlyZWN0b3J5ID0gdGhpcy0+ZGF0YWJhc2VSb290
RGlyZWN0b3J5SXNvbGF0ZWRDb3B5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKaW5k
ZXggNDk0MGMxNTE2MTEwNGFkOTY5NThmZDIzNDM3ZGFjNjk5NDBjYzcxOC4uYmYwMmI4Y2Q3NWRk
NGJjNjA4YmQzNDhmNTQ5N2Y3ODE4MWE5NGM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3Rv
cmUuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIklEQkJhY2tpbmdTdG9yZS5oIgogI2lu
Y2x1ZGUgIklEQkRhdGFiYXNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlSW5m
by5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCIKICNpbmNsdWRlICJJ
REJSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTUUxpdGVJREJUcmFuc2FjdGlvbi5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgpAQCAtOTksNiArMTAwLDcgQEAg
cHVibGljOgogICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGF0YWJhc2VEaXJlY3Rvcnk7IH07CiAgICAgc3RhdGljIFN0cmluZyBmdWxsRGF0YWJhc2VQYXRo
Rm9yRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyBTdHJpbmcgZGF0YWJhc2VO
YW1lRnJvbUZpbGUoY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb24gZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKGNvbnN0IFN0cmluZyYpOwog
CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9u
SUQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzljZjc3YjVmMzZiMGQwN2E5ODkzMDM0NTkyMGFmZDQzZjAzNmE0NwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBEYXJyeWwgUG9ndWUgKGRhcnJ5bEBkcG9ndWUuY2EpCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvbiB7CisgICAgU3RyaW5nIG5hbWU7CisgICAgdWludDY0X3QgdmVyc2lvbiB7
IDAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgV0FSTl9VTlVTRURf
UkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uJik7
CisKKyAgICBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0Owor
fTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBu
YW1lIDw8IHZlcnNpb247Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIElEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uJiBpbmZvKQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5u
YW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
bmZvLnZlcnNpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworaW5saW5lIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24gSURCRGF0YWJhc2VOYW1lQW5k
VmVyc2lvbjo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sKKyAgICByZXR1cm4geyBuYW1lLmlzb2xh
dGVkQ29weSgpLCB2ZXJzaW9uIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIyZDY5OWQ2ZTMyNTQ2ZDBiNTRl
YmFjNjNjYWNlMzlkMWVlNDdiNTYuLmFmMGEyMjZmZmJiNDhlMmEzZDk3YWI3ZTIzZjRhOTVhODRl
MTVmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI1OTEsNiArMjU5MSw3IEBACiAJCThGNjc1NjFCMTI4OEIxN0IwMDQ3QUNB
MyAvKiBFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkwMDE3NzQxMTJFMDM0
NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzczRTEyRTAzNDc4MDA2NDg0NjIgLyog
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5MDAxNzg4MTEyRTAzNzA3MDA2NDg0
NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNT
dGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkwMTZFQTREMjQ1NEQ4MTMwMDIxRDlEMSAv
KiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MDE2RUE0QzI0NTREODEzMDAyMUQ5RDEgLyogSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkxMDlFOUM4MjIyQ0FCQ0EwMEJCNjI2NCAvKiBJbnNwZWN0b3JBdWRpdFJl
c291cmNlc09iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTEwOUU5QzUyMjJDQUJDODAwQkI2MjY0IC8qIEluc3BlY3RvckF1ZGl0UmVzb3VyY2Vz
T2JqZWN0LmggKi87IH07CiAJCTkxMDlFOUM4MjIyQ0FCQ0EwMEJCNjI2NSAvKiBKU0luc3BlY3Rv
ckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MTA5RTlDNTIyMkNBQkM4MDBCQjYyNjUgLyogSlNJbnNwZWN0b3JBdWRp
dFJlc291cmNlc09iamVjdC5oICovOyB9OwogCQk5MTI3OEQ1RTIxREVEQUQ2MDBCNTcxODQgLyog
UGFnZUF1ZGl0QWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkxMjc4RDVDMjFERURBRDUwMEI1NzE4NCAvKiBQYWdlQXVkaXRBZ2VudC5oICovOyB9
OwpAQCAtMTA3MDEsNiArMTA3MDIsNyBAQAogCQk5MDAxNzczRjEyRTAzNDc4MDA2NDg0NjIgLyog
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3
ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNTdGFuZGFyZERlcml2YXRpdmVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4
NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTAxNkVBNEMyNDU0RDgxMzAwMjFEOUQxIC8qIElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTA5RTlDNTIyMkNBQkM4MDBCQjYyNjQgLyog
SW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTEwOUU5QzUyMjJDQUJDODAwQkI2MjY1IC8qIEpTSW5zcGVjdG9yQXVk
aXRSZXNvdXJjZXNPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJ
bnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MTA5RTlDNzIyMkNBQkM5MDBCQjYyNjQgLyogSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNP
YmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9y
QXVkaXRSZXNvdXJjZXNPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTkyODgsNiArMTkyOTAsNyBAQAogCQkJCTUxMTBGQ0ZCMUUwMzYyQTUwMDZGOEQwQiAvKiBJREJD
dXJzb3JSZWNvcmQuaCAqLywKIAkJCQk1MUJBNEFDMTFCQkI1Q0JGMDBERjNENkQgLyogSURCRGF0
YWJhc2VJbmZvLmNwcCAqLywKIAkJCQk1MUJBNEFDMjFCQkI1Q0JGMDBERjNENkQgLyogSURCRGF0
YWJhc2VJbmZvLmggKi8sCisJCQkJOTAxNkVBNEMyNDU0RDgxMzAwMjFEOUQxIC8qIElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb24uaCAqLywKIAkJCQk1MTQ4NDUzQzFCQjlEMDc2MDA2QTcyRUQgLyog
SURCRXJyb3IuY3BwICovLAogCQkJCTUxNDg0NTNEMUJCOUQwNzYwMDZBNzJFRCAvKiBJREJFcnJv
ci5oICovLAogCQkJCTUxOURCQzZEMURDMDBGQjkwMDMyOUJGNSAvKiBJREJHZXRBbGxSZWNvcmRz
RGF0YS5jcHAgKi8sCkBAIC0zMDc4NSw2ICszMDc4OCw3IEBACiAJCQkJNTE4NUZDODExQkI0QzRF
ODAwMTI4OThGIC8qIElEQkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg1RkM4NzFC
QjRDNEU4MDAxMjg5OEYgLyogSURCRGF0YWJhc2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUJBNEFDNDFCQkI1Q0Q4MDBERjNENkQgLyogSURCRGF0YWJhc2VJbmZvLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5MDE2RUE0RDI0NTREODEzMDAyMUQ5RDEgLyogSURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0ODQ1M0YxQkI5RDA3RTAwNkE3MkVE
IC8qIElEQkVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg1RkM4RDFCQjRDNEU4MDAxMjg5
OEYgLyogSURCRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE5REJDNkYxREMwMTFBNzAw
MzI5QkY1IC8qIElEQkdldEFsbFJlY29yZHNEYXRhLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggNzliMGIzMTkzMTA5OTllZTkzOGM0NjVi
NTE4MzUxMGY1OTUyNzU5ZC4uYTAyMWEzM2U1M2E2NjNlNjgxOGQ4YTMwMGU1MmFiZmVmNTQ5NWNh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTE1Myw2ICsxNTMs
NyBAQCBjbGFzcyBFbXB0eURhdGFiYXNlUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgRGF0YWJhc2VQ
cm92aWRlciB7CiAgICAgICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRf
dCwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgSW5kZXhlZERCOjpDb25uZWN0
aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikgZmluYWwgeyB9CiAgICAgICAgIHZvaWQgb3BlbkRC
UmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYpIGZpbmFsIHsgfQogICAgICAg
ICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgdWludDY0X3QpIGZpbmFsIHsgfQorICAgICAgICB2b2lk
IGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImLCBjb25zdCBDbGllbnRPcmlnaW4mKSBmaW5hbCB7IH0KICAgICAgICAgfkVtcHR5SURCQ29u
bmVjdGlvblRvU2VydmVyRGVsZXRlZ2F0ZSgpIHsgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9DbGllbnQuY3BwCmluZGV4IGYyYWZlMWE4YjhhYjhjZWFhYTFjYzcxMmVmYTRl
YWMxNzZlZjYzZDQuLmZlYzM5OTMzODJmNDgzZTdkMTBhZmRhNDMxNTFjYzNkM2NhOWZlYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApAQCAtMTk4LDYgKzE5OCwxMSBA
QCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1
aW50NjRfdCBjYWxsYmFja0lELCBjb25zdAogICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6RGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFz
ZU5hbWVzKSk7CiB9CiAKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlm
aWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OklEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24+JiBkYXRhYmFzZXMpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURC
Q29ubmVjdGlvblRvU2VydmVyOjpEaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVx
dWVzdElkZW50aWZpZXIsIGRhdGFiYXNlcykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9DbGllbnQuaAppbmRleCA5OTUwODNiMDQ2YWQwZGQ5N2VlMzE5ODcyMDk1MmJkZWNiYzg5
MzZlLi44MWIwYjQ5Y2YxZjU4NTNjY2Q3YmE0MTNjZmNjZjk5MjMwNTYxMTI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaApAQCAtODMsNiArODMsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWlu
dDY0X3QgbmV3VmVyc2lvbikgZmluYWw7CiAKICAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFt
ZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFt
ZXMpIGZpbmFsOworICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNv
bnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpIGZpbmFsOwogCiAgICAgdGVtcGxhdGU8Y2xh
c3MgTWVzc2FnZVR5cGU+IHZvaWQgaGFuZGxlR2V0UmVzdWx0KGNvbnN0IFdlYkNvcmU6OklEQlJl
c3VsdERhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKaW5kZXggNTA4YmQ5MjkxMzQ5MDdhMTY5YjY1MWM3
YjhhZWUxYzkyNzcyZjhkMy4uOThlN2ZhNTA3MWE4Y2U4ZDUyODBiM2I2NTY0YzA0NzJjM2Y5OGZm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWRE
Qi9XZWJJREJTZXJ2ZXIuY3BwCkBAIC0zMjYsNiArMzI2LDE3IEBAIHZvaWQgV2ViSURCU2VydmVy
OjpnZXRBbGxEYXRhYmFzZU5hbWVzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3Qg
V2ViQ29yCiAgICAgbV9zZXJ2ZXItPmdldEFsbERhdGFiYXNlTmFtZXMod2ViSURCQ29ubmVjdGlv
bi0+aWRlbnRpZmllcigpLCBtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNr
SUQpOwogfQogCit2b2lkIFdlYklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNp
b25zKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiBvcmlnaW4pCit7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBh
dXRvKiB3ZWJJREJDb25uZWN0aW9uID0gbV9jb25uZWN0aW9uTWFwLmdldChjb25uZWN0aW9uLnVu
aXF1ZUlEKCkpOworICAgIEFTU0VSVCh3ZWJJREJDb25uZWN0aW9uKTsKKworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOworICAgIG1fc2VydmVyLT5nZXRBbGxEYXRhYmFz
ZU5hbWVzQW5kVmVyc2lvbnMod2ViSURCQ29ubmVjdGlvbi0+aWRlbnRpZmllcigpLCByZXF1ZXN0
SWRlbnRpZmllciwgb3JpZ2luKTsKK30KKwogdm9pZCBXZWJJREJTZXJ2ZXI6OmFkZENvbm5lY3Rp
b24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmll
ciBwcm9jZXNzSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
U2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJT
ZXJ2ZXIuaAppbmRleCBkNDAzZjZjODQwYzMwMjUyMjc0ZDJkM2E3ODI0NWUyMjk4NzMwMjY3Li45
NTI0YTYwMDMyOWZjMTZjMTFmZWYyODE3MjUyODUxZmViODU3NjBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaApAQCAt
ODEsNiArODEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklE
QlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Oklu
ZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogICAgIHZvaWQgb3Bl
bkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpOwogICAg
IHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRW
ZXJzaW9ucyhJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50
aWZpZXImLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKIAogICAgIHZvaWQgYWRkQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7CiAg
ICAgdm9pZCByZW1vdmVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLm1lc3NhZ2VzLmluCmluZGV4IDIwOWY1NDAyNjE1MDUxZTY5N2UyZmRkZDU3NzM4OTQxMmIz
ZGQ2ZDMuLjFjNjIwYjljMjUzODYzMzAyMTQ3MjhiN2Y1NDBjNWM5MjAwYWY4NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4KQEAgLTUxLDYgKzUxLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
SURCU2VydmVyIHsKICAgICBPcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKFdlYkNvcmU6OklEQlJlcXVl
c3REYXRhIHJlcXVlc3REYXRhKQogCiAgICAgR2V0QWxsRGF0YWJhc2VOYW1lcyhzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKSBXYW50c0Nv
bm5lY3Rpb24KKyAgICBHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoV2ViQ29yZTo6SURC
UmVzb3VyY2VJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luIG9yaWdpbikgV2FudHNDb25uZWN0aW9uCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuY3BwCmluZGV4IDBlOTc4MzY3NzlkNjYwZDYwOGIzMGYxYjQxNmE1NDFjOGUzMWNiYWMu
LjExODdmYjU4M2RkMWEyOGEyOTQ3YzI5YzUxNDJmOTUzZWUwNDU4Y2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtMjEyLDYgKzIxMiwxMSBA
QCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbgogICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQlNlcnZl
cjo6R2V0QWxsRGF0YWJhc2VOYW1lcyh0b3BPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNr
SUQpKTsKIH0KIAordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNl
TmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbikKK3sKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXI6OkdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhy
ZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luKSk7Cit9CisKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyOjpkaWREZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCiB7
CiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZERlbGV0ZURhdGFiYXNlKHJlc3VsdCk7CkBA
IC0zMjcsNiArMzMyLDExIEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRB
bGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0CiAgICAgbV9jb25uZWN0
aW9uVG9TZXJ2ZXItPmRpZEdldEFsbERhdGFiYXNlTmFtZXMoY2FsbGJhY2tJRCwgZGF0YWJhc2VO
YW1lcyk7CiB9CiAKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0
SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b24+JiBkYXRhYmFzZXMpCit7CisgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZEdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzKTsKK30K
Kwogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3Qo
KQogewogICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5jb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KElE
QkVycm9yIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQW4gaW50ZXJuYWwgZXJyb3Igd2FzIGVu
Y291bnRlcmVkIGluIHRoZSBJbmRleGVkIERhdGFiYXNlIHNlcnZlciJfcyB9KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggOTcwNThkM2VlMThhY2I5
MDZmNDNjZDVkNWZkOTliNmY2Mjg0ODcxYS4uMmZlZDI2MmJlZTFjMDUxM2UyNjIwODRiMDk2Y2E5
YWQ4MDgyMjE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
LmgKQEAgLTgxLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5j
ZWxsZWQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmKSBmaW5hbDsKIAogICAgIHZvaWQg
Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRv
cE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2lu
LCB1aW50NjRfdCBjYWxsYmFja0lEKSBmaW5hbDsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFt
ZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKSBmaW5hbDsKIAogICAgIC8vIE1lc3NhZ2VzIHJlY2Vp
dmVkIGZyb20gTmV0d29yayBQcm9jZXNzCiAgICAgdm9pZCBkaWREZWxldGVEYXRhYmFzZShjb25z
dCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJik7CkBAIC0xMDYsNiArMTA3LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpOwogICAgIHZvaWQgbm90aWZ5T3Bl
bkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiBy
ZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lv
bik7CiAgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKTsKKyAgICB2b2lkIGRpZEdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50
aWZpZXImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4m
KTsKIAogICAgIFJlZjxXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4g
bV9jb25uZWN0aW9uVG9TZXJ2ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluCmluZGV4IDhkOTdlNDRlMzVjM2MwZmZl
NTNkMDZjM2I2ZGJiMzIyZTdkNmYxYzAuLjIwMDU4NmNkY2UxYTI3M2E0ZTEzOWY0OGEwNTFlZTFi
MTlmNGM2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIubWVzc2FnZXMuaW4KQEAgLTQ4LDYgKzQ4LDcgQEAgbWVzc2FnZXMgLT4gV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyIHsKICAgICBOb3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChXZWJD
b3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9s
ZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pCiAKICAgICBEaWRHZXRBbGxEYXRhYmFzZU5h
bWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIFZlY3RvcjxTdHJpbmc+IGRhdGFiYXNlTmFtZXMpCisg
ICAgRGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKFdlYkNvcmU6OklEQlJlc291cmNl
SWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OklEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24+IGRhdGFiYXNlcykKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJv
Y2Vzc0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNz
SURCU2VydmVyLmNwcAppbmRleCBhNTQ5YjA0OTA1YzZhMjIzY2Q2NzZjMDkwYzA0YTRiNzE3MmU3
ZmEwLi44YTk0OGI4YTQ0ZDhmMzU4M2I1NjBlZjE2OWRhNTUzNDlhODRkNGQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcApAQCAt
NDkxLDYgKzQ5MSwyMSBAQCB2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJh
c2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0bwogICAgIH0pOwogfQogCit2
b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNv
bnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNv
bnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQoreworICAgIGRpc3BhdGNoVGFzayhbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyID0gbV9jb25uZWN0aW9uVG9T
ZXJ2ZXItPmlkZW50aWZpZXIoKSwgcmVxdWVzdElkZW50aWZpZXIsIG9yaWdpbiA9IG9yaWdpbi5p
c29sYXRlZENvcHkoKV0geworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NlcnZlci0+bG9j
aygpKTsKKyAgICAgICAgbV9zZXJ2ZXItPmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhp
ZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luKTsKKyAgICB9KTsKK30KKwordm9p
ZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhj
b25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNl
cykKK3sKKyAgICBkaXNwYXRjaFRhc2tSZXBseShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzID0gZGF0YWJhc2VzLmlzb2xh
dGVkQ29weSgpXSB7CisgICAgICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRHZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIGRhdGFiYXNlcyk7CisgICAg
fSk7Cit9CisKIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNl
c01vZGlmaWVkU2luY2UoV2FsbFRpbWUgbW9kaWZpY2F0aW9uVGltZSkKIHsKICAgICBkaXNwYXRj
aFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbW9kaWZpY2F0aW9u
VGltZV0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vz
c0lEQlNlcnZlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNl
cnZlci5oCmluZGV4IDYwNDdkZDlmOTViMTNkYzExNmRiOGJlZWYwODliNjRkZjQzY2NmYTQuLjIy
NDBlMmNhMzRhODRkNmUxODFlNmQxYzA0OTBjY2ExMTljZDkzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmgKQEAgLTkxLDYgKzkxLDcg
QEAgcHVibGljOgogICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbmRleGVkREI6OkNv
bm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKSBmaW5hbDsKICAgICB2b2lkIG9wZW5EQlJl
cXVlc3RDYW5jZWxsZWQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmKSBmaW5hbDsKICAg
ICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
b3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CisgICAgdm9pZCBnZXRB
bGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVu
dGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJikgZmluYWw7CiAKICAgICAvLyBJ
REJDb25uZWN0aW9uVG9DbGllbnQKICAgICBXZWJDb3JlOjpJREJDb25uZWN0aW9uSWRlbnRpZmll
ciBpZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CkBAIC0xMTcsNiArMTE4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlkQ2xvc2VGcm9tU2VydmVyKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURC
RGF0YWJhc2VDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKSBmaW5hbDsKICAg
ICB2b2lkIG5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IFdlYkNvcmU6OklEQlJlc291
cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVp
bnQ2NF90IG5ld1ZlcnNpb24pIGZpbmFsOwogICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1l
cyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1l
cykgZmluYWw7CisgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29u
c3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JikgZmluYWw7CiAKICAgICB2b2lkIGNsb3NlQW5k
RGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShXYWxsVGltZSk7CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IDYwMzgxNTJjOWZhZWI0NTYyNGJjOWZkMzY2YmNkNzYyY2I0OTAy
ZDYuLjdiY2Y5MTZkODFlYWZmNTY0Nzc4MjYxYTdiNjE3Yzk4ZGExZDE2ZDYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA1LTAyICBEYXJyeWwg
UG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9ydCBJ
REJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkanVzdCB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgYElEQkZhY3Rv
cnkucHJvdG90eXBlLmRhdGFiYXNlcygpYC4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9y
aWdpbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkud29y
a2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNS0wMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBFYXNpbmcgMV0gaW1wbGVtZW50IGBqdW1wLSpgIHN0
ZXAgcG9zaXRpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQt
ZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQKaW5kZXggZTJkZmZhYzc0Nzg3YWM1MTg1NTg4NTAy
YjZkMGNkNzFlZmVkNzkwZS4uMDY1MDE5ZDEzMDEwOWM3MjRiNTNiOGE2MGRlYmM5ZjY2NDUzMGM0
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFz
ZXMuYW55LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAotRkFJTCBFbnN1cmUgdGhhdCBk
YXRhYmFzZXMoKSByZXR1cm5zIGEgcHJvbWlzZS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2Vz
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVk
REIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBFbnVtZXJhdGUgb25lIGRhdGFiYXNl
LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJU
eXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5k
ZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCki
Ci1GQUlMIEVudW1lcmF0ZSBtdWx0aXBsZSBkYXRhYmFzZXMuIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRh
dGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAn
aW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTWFrZSBzdXJlIGFuIGVt
cHR5IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5k
YXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBF
bnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVu
J3QgY29tbWl0ZWQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlv
bi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMg
dW5kZWZpbmVkKSIKK1BBU1MgRW5zdXJlIHRoYXQgZGF0YWJhc2VzKCkgcmV0dXJucyBhIHByb21p
c2UuIAorUEFTUyBFbnVtZXJhdGUgb25lIGRhdGFiYXNlLiAKK1BBU1MgRW51bWVyYXRlIG11bHRp
cGxlIGRhdGFiYXNlcy4gCitQQVNTIE1ha2Ugc3VyZSBhbiBlbXB0eSBsaXN0IGlzIHJldHVybmVk
IGZvciB0aGUgY2FzZSBvZiBubyBkYXRhYmFzZXMuIAorRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFz
ZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIGFzc2Vy
dF9lcXVhbHM6IFRoZSByZXN1bHQgb2YgZGF0YWJhc2VzKCkgc2hvdWxkIGJlIG9ubHkgdGhvc2Ug
ZGF0YWJhc2VzIHdoaWNoIGhhdmUgYmVlbiBjcmVhdGVkIGF0IHRoZSB0aW1lIG9mIGNhbGxpbmcs
IHJlZ2FyZGxlc3Mgb2YgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbnMgY3VycmVudGx5IHJ1bm5p
bmcuIGV4cGVjdGVkIDEgYnV0IGdvdCAyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnktZGF0YWJhc2Vz
LW9wYXF1ZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9y
aWdpbi1leHBlY3RlZC50eHQKaW5kZXggMDY3OWYzOTJlYjVmYWVkMGJkYzE3ZTgxY2I5YjVhY2Iy
MjFiNTJkNC4uZGZhNzEwMmIwMGNjM2FkOGMwMWRiZmQ3ZDBiYzk1OTMxNzZlZTQyMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
ZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0
IEBACiAKLUZBSUwgSURCRmFjdG9yeS5kYXRhYmFzZXMoKSBpbiBub24tc2FuZGJveGVkIGlmcmFt
ZSBzaG91bGQgbm90IHJlamVjdCBhc3NlcnRfZXF1YWxzOiBJREJGYWN0b3J5LmRhdGFiYXNlcygp
IHNob3VsZCBub3QgcmVqZWN0IGV4cGVjdGVkICJubyBleGNlcHRpb24iIGJ1dCBnb3QgImluZGV4
ZWREQi5kYXRhYmFzZXMgdW5kZWZpbmVkIgotRkFJTCBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGlu
IHNhbmRib3hlZCBpZnJhbWUgc2hvdWxkIHJlamVjdCBhc3NlcnRfZXF1YWxzOiBQcm9taXNlIHNo
b3VsZCBiZSByZWplY3RlZCB3aXRoIFNlY3VyaXR5RXJyb3IgZXhwZWN0ZWQgIlNlY3VyaXR5RXJy
b3IiIGJ1dCBnb3QgImluZGV4ZWREQi5kYXRhYmFzZXMgdW5kZWZpbmVkIgorUEFTUyBJREJGYWN0
b3J5LmRhdGFiYXNlcygpIGluIG5vbi1zYW5kYm94ZWQgaWZyYW1lIHNob3VsZCBub3QgcmVqZWN0
IAorUEFTUyBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGluIHNhbmRib3hlZCBpZnJhbWUgc2hvdWxk
IHJlamVjdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0aW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmZhY3Rvcnktb3JpZ2luLWlzb2xhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYTMzMDk4
ZWI4ZjY1ZmZjMTljYzdkYWZkNzk5NWU4MjAxNDEzZDY1NC4uY2I5ODVmYzVmMmU2Zjg0ZThlOTU5
NTMwZTM4N2VkYTlhYTE1ZWNmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0aW9u
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRpb24tZXhwZWN0ZWQudHh0
CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgb3JpZ2lucyBo
YXZlIHNlcGFyYXRlIGxvY2tpbmcgc2NoZW1lcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMg
aXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWRE
Qi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCitQQVNTIFRlc3QgdG8gbWFrZSBzdXJlIHRoYXQg
b3JpZ2lucyBoYXZlIHNlcGFyYXRlIGxvY2tpbmcgc2NoZW1lcyAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFy
bmVzcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGQ5
ZGUyN2U0N2JkNWViNzg2ZmM4NGZkYzRjNjNiMWVjODY3Mjk1OTguLmFlOWEyYThhYWJlNTEzZDZi
MmJhYjg3YmMzNDRjNzAzMzA1OWU0YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQKQEAgLTUyLDcgKzUyLDcgQEAgUEFT
UyBJREJGYWN0b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWMKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29w
YWJsZXMgcHJvcGVydHkgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24gb3Bl
bihET01TdHJpbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJm
YWNlOiBvcGVyYXRpb24gZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nKSAKLUZBSUwgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4
cGVjdGVkIHByb3BlcnR5ICJkYXRhYmFzZXMiIG1pc3NpbmcKK1BBU1MgSURCRmFjdG9yeSBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBjbXAoYW55LCBhbnkpIAogUEFTUyBJREJGYWN0b3J5IG11c3QgYmUgcHJpbWFy
eSBpbnRlcmZhY2Ugb2YgW29iamVjdCBJREJGYWN0b3J5XSAKIFBBU1MgU3RyaW5naWZpY2F0aW9u
IG9mIFtvYmplY3QgSURCRmFjdG9yeV0gCkBAIC02MCw3ICs2MCw3IEBAIFBBU1MgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJv
cGVuKERPTVN0CiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBjYWxsaW5nIG9wZW4oRE9NU3Ry
aW5nLCB1bnNpZ25lZCBsb25nIGxvbmcpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgSURCRmFjdG9yeSBpbnRl
cmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkZWxldGVE
YXRhYmFzZShET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nKSBvbiBbb2JqZWN0
IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3Ig
Ci1GQUlMIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0IElEQkZhY3RvcnldIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9p
bmhlcml0czogcHJvcGVydHkgImRhdGFiYXNlcyIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFp
bgorUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImRhdGFiYXNlcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1Mg
SURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJjbXAoYW55LCBhbnkpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFj
dG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgY21wKGFueSwgYW55KSBvbiBbb2JqZWN0IElEQkZhY3Rv
cnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIElE
QkRhdGFiYXNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRs
aGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA2MTllZDg0NDQ3ZTI2YmMxMGUy
NTNhMjU2MjI0YjQ0YmNiNWQ0ZWQyLi5jZjEzZmNjMjg4YTFlMjFhZWQyMmFlOTgxMWRkZDY1NTBj
Y2ZhOGIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
bGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTUyLDcgKzUyLDcgQEAgUEFTUyBJ
REJGYWN0b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWMKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJs
ZXMgcHJvcGVydHkgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24gb3BlbihE
T01TdHJpbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNl
OiBvcGVyYXRpb24gZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nKSAKLUZBSUwgSURCRmFjdG9yeSBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVj
dGVkIHByb3BlcnR5ICJkYXRhYmFzZXMiIG1pc3NpbmcKK1BBU1MgSURCRmFjdG9yeSBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBjbXAoYW55LCBhbnkpIAogUEFTUyBJREJGYWN0b3J5IG11c3QgYmUgcHJpbWFyeSBp
bnRlcmZhY2Ugb2YgW29iamVjdCBJREJGYWN0b3J5XSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9m
IFtvYmplY3QgSURCRmFjdG9yeV0gCkBAIC02MCw3ICs2MCw3IEBAIFBBU1MgSURCRmFjdG9yeSBp
bnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvcGVu
KERPTVN0CiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBjYWxsaW5nIG9wZW4oRE9NU3RyaW5n
LCB1bnNpZ25lZCBsb25nIGxvbmcpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZh
Y2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkZWxldGVEYXRh
YmFzZShET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBp
bnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nKSBvbiBbb2JqZWN0IElE
QkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1G
QUlMIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0IElEQkZhY3RvcnldIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhl
cml0czogcHJvcGVydHkgImRhdGFiYXNlcyIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgor
UEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImRhdGFiYXNlcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURC
RmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJjbXAoYW55LCBhbnkpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IGNhbGxpbmcgY21wKGFueSwgYW55KSBvbiBbb2JqZWN0IElEQkZhY3Rvcnld
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIElEQkRh
dGFiYXNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398366</attachid>
            <date>2020-05-04 08:14:24 -0700</date>
            <delta_ts>2020-05-27 17:50:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211043-20200504081423.patch</filename>
            <type>text/plain</type>
            <size>56220</size>
            <attacher name="Darryl Pogue">dvpdiner2</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZmMDIyMmVlNzhmZjVk
YjE1MTJkZTIwNjc3YmI1YzI0N2YwY2NhMC4uOTQyNjc3MTg2NDIxNDQ2YWRjYTM2ZjEwYTg2OGVh
NGVhYmFlMDE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTA1LTAyICBEYXJy
eWwgUG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9y
dCBJREJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBmZXRjaGluZyB0aGUgbGlzdCBv
ZiBJREIgZGF0YWJhc2UgbmFtZXMgYW5kIHZlcnNpb25zCisgICAgICAgIGZyb20gdGhlIElEQlNl
cnZlciwgYW5kIGV4cG9zZSB0aGUgZnVuY3Rpb25hbGl0eSBhcworICAgICAgICBgSURCRmFjdG9y
eS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpkYXRhYmFzZXMp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5OjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmRp
ZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNB
bmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmg6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRl
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmg6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb246OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOjpkZWNvZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjo6aXNvbGF0ZWRDb3B5IGNv
bnN0KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisKIDIwMjAtMDUtMDIgIERhbmllbCBCYXRl
cyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJ
blJlY3QoKSBzaG91bGQgcmV0dXJuIHJvb3QgZWRpdGFibGUgZWxlbWVudHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
OWE4MjRlZDg2N2FiYTI4YTRiOTAwNDhkMWQ3ZmE5OTc5OWY1NTVhYi4uMTNkZDBmOTA5MGNkMGJh
ZGZlOTY4NDJjMDZhYzdlMjNkOTU3YmEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAy
MC0wNS0wMiAgRGFycnlsIFBvZ3VlICA8ZGFycnlsQGRwb2d1ZS5jYT4KKworICAgICAgICBJbmRl
eGVkREI6IFN1cHBvcnQgSURCRmFjdG9yeSBkYXRhYmFzZXMgbWV0aG9kCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbHVtYmluZyBmb3IgcmV0dXJuaW5n
IGEgbGlzdCBvZiBJREIgZGF0YWJhc2VzIGFuZCB2ZXJzaW9ucy4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFt
ZXNBbmRWZXJzaW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWRE
Qi9XZWJJREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQlNlcnZlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWRE
Qi9XZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNp
b25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRB
bGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3Nh
Z2VzLmluOgorCiAyMDIwLTA1LTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIGhhbmRsZVdoZWVsRXZlbnRQaGFzZSgpIHNob3VsZCBpbmNsdWRlIHRo
ZSByZWxldmFudCBTY3JvbGxpbmdOb2RlSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggNTJlNDZj
YWQ3ZjdiM2NiMjhiYTNmOGI2ZTdiZTkwMWIyODkwZjFkZS4uZjlmZjYxYTMzMmIyMTg0NzJjNjM1
OWIxMGQxZmU3N2Y1NjkzZGFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMC0wNS0wMiAgRGFycnlsIFBvZ3VlICA8ZGFycnlsQGRwb2d1ZS5jYT4KKworICAgICAg
ICBJbmRleGVkREI6IFN1cHBvcnQgSURCRmFjdG9yeSBkYXRhYmFzZXMgbWV0aG9kCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbHVtYmluZyBmb3IgcmV0
dXJuaW5nIGEgbGlzdCBvZiBJREIgZGF0YWJhc2VzIGFuZCB2ZXJzaW9ucy4KKworICAgICAgICAq
IFN0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoKKyAgICAgICAgKEluUHJvY2Vzc0lEQlNl
cnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKEluUHJvY2Vz
c0lEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAg
KiBTdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5oOgorCiAyMDIwLTA1LTAxICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBGaXggQXBwbGVXaW4g
YnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY1YzdjYWY3ZmYxYTIzZjZiZDkyZjE1MTIxYzMw
OTA5NWZlYmMzZDYuLjEyYjIyYTkxNGRiNjczZTQyODMxY2ZjN2YyZTA2NzVkYmRlYTZmYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQpAQCAtNzEsNiArNzEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvcklu
Zm8uaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJDdXJzb3JSZWNvcmQuaAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uaAorICAgIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgKICAgICBNb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJHZXRBbGxSZWNvcmRzRGF0YS5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
QkdldFJlY29yZERhdGEuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmNwcAppbmRleCBiMTNjNzFlODkxY2JiMjI5NDc1NGZkNWI3MDMxMmNmNmQyZmVj
ODAwLi5hM2Y1M2M5ZTZkMjgyMGJlNzEyZjRlMmMyYTJkMDQ3Y2RmMDI5ZmY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtMzQsNiAr
MzQsOCBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklE
QktleS5oIgogI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJKU0RPTVBy
b21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIkpTSURCRmFjdG9yeS5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgpAQCAtNDMsNiArNDUsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAordXNpbmcgSURCRGF0YWJhc2VzUmVzcG9uc2VQcm9taXNlID0gRE9NUHJv
bWlzZURlZmVycmVkPElETFNlcXVlbmNlPElETERpY3Rpb25hcnk8SURCRmFjdG9yeTo6RGF0YWJh
c2VJbmZvPj4+OworCiBzdGF0aWMgYm9vbCBzaG91bGRUaHJvd1NlY3VyaXR5RXhjZXB0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKGlzPERvY3VtZW50
Pihjb250ZXh0KSB8fCBjb250ZXh0LmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CkBAIC0xMzMsNiAr
MTM3LDI2IEBAIEV4Y2VwdGlvbk9yPHNob3J0PiBJREJGYWN0b3J5OjpjbXAoSlNHbG9iYWxPYmpl
Y3QmIGV4ZWNTdGF0ZSwgSlNWYWx1ZSBmaXJzdFZhbHVlCiAgICAgcmV0dXJuIGZpcnN0LT5jb21w
YXJlKHNlY29uZC5nZXQoKSk7CiB9CiAKK3ZvaWQgSURCRmFjdG9yeTo6ZGF0YWJhc2VzKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgZGVmZXJy
ZWQpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkZhY3Rvcnk6OmRhdGFiYXNlcyIpOworCisg
ICAgSURCRGF0YWJhc2VzUmVzcG9uc2VQcm9taXNlIHByb21pc2UgPSBXVEZNb3ZlKGRlZmVycmVk
KTsKKworICAgIGlmIChzaG91bGRUaHJvd1NlY3VyaXR5RXhjZXB0aW9uKGNvbnRleHQpKSB7Cisg
ICAgICAgIHByb21pc2UucmVqZWN0KFNlY3VyaXR5RXJyb3IpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgQVNTRVJUKGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKSk7CisKKyAgICBtX2Nv
bm5lY3Rpb25Qcm94eS0+Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnRleHQsIFtw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb24+JiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnJlc29sdmUoV1RG
OjptYXAocmVzdWx0LCBbXShjb25zdCBhdXRvJiBpbmZvKSB7CisgICAgICAgICAgICByZXR1cm4g
SURCRmFjdG9yeTo6RGF0YWJhc2VJbmZvIHsgaW5mby5uYW1lLCBpbmZvLnZlcnNpb24gfTsKKyAg
ICAgICAgfSkpOworICAgIH0pOworfQorCiB2b2lkIElEQkZhY3Rvcnk6OmdldEFsbERhdGFiYXNl
TmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJp
dHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJp
bmc+Jik+JiYgY2FsbGJhY2spCiB7CiAgICAgbV9jb25uZWN0aW9uUHJveHktPmdldEFsbERhdGFi
YXNlTmFtZXMobWFpbkZyYW1lT3JpZ2luLCBvcGVuaW5nT3JpZ2luLCBXVEZNb3ZlKGNhbGxiYWNr
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKaW5k
ZXggMTM0NTY1MTE5ZjI3NGE4MmM1MzgxNjQ5MjM2ZjA1NWQzMjU5YWE3My4uNWVkYzNhMDM0ZjZk
MWY5OTVkMTYxNDFmODgwOTlhZDYxNDM1MzJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaApAQCAtNDQsNiArNDQsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBJREJPcGVuREJSZXF1ZXN0OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOworY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogCiBu
YW1lc3BhY2UgSURCQ2xpZW50IHsKIGNsYXNzIElEQkNvbm5lY3Rpb25Qcm94eTsKQEAgLTU0LDEx
ICs1NSwxOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxJREJGYWN0b3J5PiBjcmVhdGUoSURC
Q2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmKTsKICAgICB+SURCRmFjdG9yeSgpOwogCisgICAg
c3RydWN0IERhdGFiYXNlSW5mbyB7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICB1aW50
NjRfdCB2ZXJzaW9uOworICAgIH07CisKICAgICBFeGNlcHRpb25PcjxSZWY8SURCT3BlbkRCUmVx
dWVzdD4+IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgbmFtZSwg
T3B0aW9uYWw8dWludDY0X3Q+IHZlcnNpb24pOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJPcGVu
REJSZXF1ZXN0Pj4gZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0
IFN0cmluZyYgbmFtZSk7CiAKICAgICBFeGNlcHRpb25PcjxzaG9ydD4gY21wKEpTQzo6SlNHbG9i
YWxPYmplY3QmLCBKU0M6OkpTVmFsdWUgZmlyc3QsIEpTQzo6SlNWYWx1ZSBzZWNvbmQpOwogCisg
ICAgdm9pZCBkYXRhYmFzZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVz
KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBvcGVuaW5nT3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJp
bmc+Jik+JiYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5LmlkbAppbmRleCBmOThmM2Y4MzliYzRhMzgzZGQ0Mzk5Mjk5Yjc5MjZi
MDc2ODdhMGIxLi45NWVhNjYxMmRlN2U1OGUyNTYwMTUwNjljYzkzZjY4ZDAyM2E3NmY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbApAQCAt
MjksNSArMjksMTQgQEAKIF0gaW50ZXJmYWNlIElEQkZhY3RvcnkgewogICAgIFtDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCT3BlbkRCUmVxdWVz
dCBvcGVuKERPTVN0cmluZyBuYW1lLCBvcHRpb25hbCBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBs
b25nIGxvbmcgdmVyc2lvbik7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IE1heVRocm93RXhjZXB0aW9uXSBJREJPcGVuREJSZXF1ZXN0IGRlbGV0ZURhdGFiYXNlKERPTVN0
cmluZyBuYW1lKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gUHJvbWlz
ZTxzZXF1ZW5jZTxJREJEYXRhYmFzZUluZm8+PiBkYXRhYmFzZXMoKTsKICAgICBbQ2FsbFdpdGg9
R2xvYmFsT2JqZWN0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gc2hvcnQgY21wKGFueSBmaXJzdCwgYW55
IHNlY29uZCk7CiB9OworCitbCisgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwKKyAg
ICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFyeSBJREJEYXRhYmFzZUluZm8gewor
ICAgIERPTVN0cmluZyBuYW1lOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKaW5kZXggOTU2ZGZhZTY0NTE3NDk4ZGUzOGU1NDgz
MWI1OTFiNGY2MzU1Yzk1OS4uZDU5NDZjYTJkYjAxZmUxYTI2ZDA0ZTU2MmI1OWRkZjkxZDg1ZGFj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKQEAgLTUwNCw2ICs1MDQsMzAgQEAgdm9p
ZCBJREJDb25uZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlP
cmlnaW4mIG1haW5GcmFtZU9yaWcKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci5nZXRBbGxEYXRh
YmFzZU5hbWVzKG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgV1RGTW92ZShjYWxsYmFj
aykpOwogfQogCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZ1bmN0aW9uPHZvaWQo
Y29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+Jik+JiYgY2FsbGJhY2spCit7
CisgICAgSURCUmVzb3VyY2VJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyKCp0aGlzKTsKKyAg
ICBDbGllbnRPcmlnaW4gb3JpZ2luIHsgY29udGV4dC5zZWN1cml0eU9yaWdpbigpLT5kYXRhKCks
IGNvbnRleHQudG9wT3JpZ2luKCkuZGF0YSgpIH07CisgICAgCisgICAgeworICAgICAgICBMb2Nr
ZXI8TG9jaz4gbG9ja2VyKG1fZGF0YWJhc2VJbmZvTWFwTG9jayk7CisgICAgICAgIG1fZGF0YWJh
c2VJbmZvQ2FsbGJhY2tzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykp
OworICAgIH0KKyAgICAKKyAgICBjYWxsQ29ubmVjdGlvbk9uTWFpblRocmVhZCgmSURCQ29ubmVj
dGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMsIHJlcXVlc3RJZGVu
dGlmaWVyLCBXVEZNb3ZlKG9yaWdpbikpOworfQorCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uPiYgZGF0YWJhc2VzKQoreworICAgIFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBWZWN0
b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKT4gY2FsbGJhY2s7CisgICAgeworICAgICAg
ICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fZGF0YWJhc2VJbmZvTWFwTG9jayk7CisgICAgICAgIGNh
bGxiYWNrID0gbV9kYXRhYmFzZUluZm9DYWxsYmFja3MudGFrZShyZXF1ZXN0SWRlbnRpZmllcik7
CisgICAgfQorICAgIAorICAgIGNhbGxiYWNrKGRhdGFiYXNlcyk7Cit9CisKIHZvaWQgSURCQ29u
bmVjdGlvblByb3h5OjpyZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihJREJEYXRhYmFzZSYgZGF0
YWJhc2UpCiB7CiAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlQ29ubmVjdGlvbk1h
cExvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCmluZGV4IDQ2NDJmMDkzZTczODI5ZDY2YWZi
NjEwOTQ5NDZhZTE5NzAxOWNmN2UuLjYxYTU4YzM2MDgwMmQ5OTc2YmVjZTUzMjE0ZTg2MmQ1Yzcw
NmMxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDb25uZWN0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCIKICNpbmNsdWRlICJJ
REJSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJUcmFuc2FjdGlvbk9wZXJhdGlvbi5o
IgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFF1ZXVlLmg+CkBAIC0xMTUsNyArMTE2LDkgQEAg
cHVibGljOgogICAgIHZvaWQgcmVmKCk7CiAgICAgdm9pZCBkZXJlZigpOwogCi0gICAgdm9pZCBn
ZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4s
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQg
KGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYpOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1l
cyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9y
aWdpbiYgb3BlbmluZ09yaWdpbiwgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxTdHJp
bmc+Jik+JiYpOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPElEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb24+Jik+JiYpOworICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VO
YW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IFZlY3Rv
cjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpOwogCiAgICAgdm9pZCByZWdpc3RlckRhdGFi
YXNlQ29ubmVjdGlvbihJREJEYXRhYmFzZSYpOwogICAgIHZvaWQgdW5yZWdpc3RlckRhdGFiYXNl
Q29ubmVjdGlvbihJREJEYXRhYmFzZSYpOwpAQCAtMTY4LDYgKzE3MSw5IEBAIHByaXZhdGU6CiAK
ICAgICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPFRyYW5zYWN0aW9uT3Bl
cmF0aW9uPj4gbV9hY3RpdmVPcGVyYXRpb25zOwogICAgIExvY2sgbV90cmFuc2FjdGlvbk9wZXJh
dGlvbkxvY2s7CisgICAgCisgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIFdURjo6
RnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKT4+
IG1fZGF0YWJhc2VJbmZvQ2FsbGJhY2tzOworICAgIExvY2sgbV9kYXRhYmFzZUluZm9NYXBMb2Nr
OwogCiAgICAgQ3Jvc3NUaHJlYWRRdWV1ZTxDcm9zc1RocmVhZFRhc2s+IG1fbWFpblRocmVhZFF1
ZXVlOwogICAgIExvY2sgbV9tYWluVGhyZWFkVGFza0xvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9u
VG9TZXJ2ZXIuY3BwCmluZGV4IDYxOTRhOTgxYTAxZmZhZjRhODg2NzA2ZWFkZWFhY2E4MTEzZjQ2
YjAuLmFlYjkyZWU4NmQ4ODRiNGU2NmQxNTNjOGQzNGM2Yjk2MzhmNjcxYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC01MTcsNiArNTE3LDI4IEBAIHZvaWQgSURCQ29u
bmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNr
SUQsIGNvbnN0IFZlCiAgICAgY2FsbGJhY2soZGF0YWJhc2VOYW1lcyk7CiB9CiAKK3ZvaWQgSURC
Q29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgQ2xpZW50T3Jp
Z2luJiBvcmlnaW4pCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zIik7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKworICAgIGlmIChtX3NlcnZlckNvbm5lY3Rpb25Jc1ZhbGlkKQorICAgICAgICBt
X2RlbGVnYXRlLT5nZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZp
ZXIsIG9yaWdpbik7CisgICAgZWxzZSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXJdIHsKKyAg
ICAgICAgICAgIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRp
ZmllciwgeyB9KTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCit2b2lkIElEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uPiYgZGF0YWJhc2VzKQoreworICAgIExPRyhJbmRleGVkREIsICJJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyIpOwor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBtX3Byb3h5LT5kaWRHZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIGRhdGFiYXNlcyk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIElEQkNsaWVudAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggNWVkMjRmZTU2OGYxYWMyNTk2MGE5NmM0MDM5
NWZjYTUwYjg0NGFjNS4uMTk3M2Y2MDIzNTY1NDc4OWEzYTAyYmYyZjVjNmJiYzRhMjE1MjZiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5j
bHVkZSAiSURCQ29ubmVjdGlvblByb3h5LmgiCiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvU2Vy
dmVyRGVsZWdhdGUuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCiAj
aW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQ1LDYgKzQ2LDcgQEAgY2xhc3MgSURC
UmVzdWx0RGF0YTsKIGNsYXNzIElEQlZhbHVlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKK3N0
cnVjdCBDbGllbnRPcmlnaW47CiBzdHJ1Y3QgSURCR2V0QWxsUmVjb3Jkc0RhdGE7CiBzdHJ1Y3Qg
SURCR2V0UmVjb3JkRGF0YTsKIHN0cnVjdCBJREJJdGVyYXRlQ3Vyc29yRGF0YTsKQEAgLTEzNiwx
OSArMTM4LDIyIEBAIHB1YmxpYzoKICAgICAvLyB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uLCBi
dXQgdGhlIHBhZ2UgaXMgYWxyZWFkeSB0b3JuIGRvd24uCiAgICAgdm9pZCBhYm9ydE9wZW5BbmRV
cGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIAotICAgIHZv
aWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3Jp
Z2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgV1RGOjpGdW5jdGlvbjx2
b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmKTsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNl
TmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJp
dHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8
U3RyaW5nPiYpPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEdldEFsbERhdGFiYXNl
TmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNl
TmFtZXMpOwogCisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgQ2xpZW50T3JpZ2luJik7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b24+Jik7CisKIHByaXZhdGU6CiAgICAgSURCQ29ubmVjdGlvblRvU2VydmVyKElEQkNvbm5lY3Rp
b25Ub1NlcnZlckRlbGVnYXRlJik7CiAKICAgICB0eXBlZGVmIHZvaWQgKElEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6KlJlc3VsdEZ1bmN0aW9uKShjb25zdCBJREJSZXN1bHREYXRhJik7CiAgICAgdm9p
ZCBjYWxsUmVzdWx0RnVuY3Rpb25XaXRoRXJyb3JMYXRlcihSZXN1bHRGdW5jdGlvbiwgY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7Ci0gICAgCisKICAgICBX
ZWFrUHRyPElEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlPiBtX2RlbGVnYXRlOwogICAgIGJv
b2wgbV9zZXJ2ZXJDb25uZWN0aW9uSXNWYWxpZCB7IHRydWUgfTsKIAotICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4+IG1fZ2V0
QWxsRGF0YWJhc2VOYW1lc0NhbGxiYWNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1
bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4+IG1fZ2V0QWxsRGF0YWJhc2VOYW1l
c0NhbGxiYWNrczsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJDb25uZWN0aW9uUHJveHk+IG1f
cHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaApp
bmRleCAwZWY3ZmI1NGExNjE4MDdlZDc1NzAyMzgzNDk0OGJmYTc3MWNlNjE2Li4zMzBkNDU1ZjU1
MjY4MTI1ZTMyMGU3ODQwNjNmMmUyM2Y0ZjA0OGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblRvU2VydmVyRGVsZWdhdGUuaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBJREJSZXF1ZXN0
RGF0YTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uSW5mbzsKIGNsYXNzIElEQlZhbHVlOwogCitzdHJ1
Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0IElEQkdldEFsbFJlY29yZHNEYXRhOwogc3RydWN0IElE
QkdldFJlY29yZERhdGE7CiBzdHJ1Y3QgSURCSXRlcmF0ZUN1cnNvckRhdGE7CkBAIC04OCw2ICs4
OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChj
b25zdCBJREJSZXF1ZXN0RGF0YSYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRBbGxEYXRh
YmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgbWFpbkZyYW1lT3JpZ2luLCBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IENsaWVudE9yaWdpbiYpID0gMDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIElEQkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcAppbmRleCA2NDZmOWIyNTk2MWYzOTI2YzIxZWQwMTQ3MmY1MDc3MDBmZmIxZTg4Li5lOWI2
MmJlOWFhYjE5ZDA0YWNkOGZlZjdjZDk4NGJmZGU2N2UwZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVj
dGlvblRvQ2xpZW50LmNwcApAQCAtMTg3LDYgKzE4NywxMiBAQCB2b2lkIElEQkNvbm5lY3Rpb25U
b0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25z
dCBWZQogICAgICAgICBtX2RlbGVnYXRlLT5kaWRHZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxiYWNr
SUQsIGRhdGFiYXNlTmFtZXMpOwogfQogCit2b2lkIElEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlk
R2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uPiYgZGF0YWJhc2VzKQoreworICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICBtX2RlbGVn
YXRlLT5kaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIs
IGRhdGFiYXNlcyk7Cit9CisKIHZvaWQgSURCQ29ubmVjdGlvblRvQ2xpZW50OjpyZWdpc3RlckRh
dGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24p
CiB7CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlQ29ubmVjdGlvbnMuY29udGFpbnMoJmNvbm5lY3Rp
b24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJDb25uZWN0aW9uVG9DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaAppbmRleCBjZTVjODJkZmU2MGUxYTFj
MWUyZWQzNTJhYzIzNGY0MGE4NTExMzk3Li5mMjVmNDg3NjY4YWZlN2IxYTRmZWQzZGMzMzBmZDll
NWM0ZmIyOGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBAIC0yOCw2ICsyOCw3
IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJDb25uZWN0
aW9uVG9DbGllbnREZWxlZ2F0ZS5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b24uaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNzUsNiArNzYsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdW
ZXJzaW9uKTsKIAogICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxs
YmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1lcyk7CisgICAgdm9pZCBk
aWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiwgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+Jik7CiAKICAgICB2
b2lkIHJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlv
biYpOwogICAgIHZvaWQgdW5yZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVn
YXRlLmgKaW5kZXggNWVhNWEyZTdkMmQwNGU5NzZmMWFjYzI5MTVmMGI1MzEyMmNkYjMxMS4uODg3
ZGI3MzYzNmQzNmVhYjdmZDllNWE0MzliYTIyOTA3YjA1ZWEyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudERl
bGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbi5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC03MSw2ICs3
Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2Nr
ZWQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0
X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikgPSAwOwogCiAgICAgdmlydHVhbCB2
b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0
QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYs
IGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAppbmRleCBkZTkxNmM2NjM1NjA2YmE5ZDM1
YzMzMWU3OGJhMTkyMDRmYTRjMmE1Li45ZWVhYTMyNjcwNWUzMmU5MmNjNTYwZjk5NjI3MWQxYzk5
NzkxZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAtNTM2LDYgKzUzNiwzNiBAQCB2b2lkIElEQlNlcnZlcjo6
Z2V0QWxsRGF0YWJhc2VOYW1lcyhJREJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0
aW9uSWRlbgogICAgIGNvbm5lY3Rpb24tPmRpZEdldEFsbERhdGFiYXNlTmFtZXMoY2FsbGJhY2tJ
RCwgZGF0YWJhc2VzKTsKIH0KIAordm9pZCBJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNB
bmRWZXJzaW9ucyhJREJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29u
c3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
CisgICAgQVNTRVJUKG1fbG9jay5pc0hlbGQoKSk7CisKKyAgICBhdXRvIGRhdGFiYXNlRGlyZWN0
b3J5UGF0aCA9IHRoaXMtPmRhdGFiYXNlRGlyZWN0b3J5UGF0aElzb2xhdGVkQ29weSgpOworICAg
IFN0cmluZyBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGly
ZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLnRvcE9yaWdpbiwgb3JpZ2luLmNsaWVudE9yaWdp
biwgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiKTsKKyAgICBWZWN0b3I8U3RyaW5nPiBmaWxl
cyA9IEZpbGVTeXN0ZW06Omxpc3REaXJlY3Rvcnkob2xkRGlyZWN0b3J5LCAiKiJfcyk7CisgICAg
VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+IGRhdGFiYXNlczsKKyAgICBmb3IgKGF1
dG8mIGZpbGUgOiBmaWxlcykgeworICAgICAgICBhdXRvIGRhdGFiYXNlVHVwbGUgPSBTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoZmlsZSkpOworICAgICAg
ICBpZiAoIWRhdGFiYXNlVHVwbGUubmFtZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBkYXRhYmFz
ZXMuYXBwZW5kKGRhdGFiYXNlVHVwbGUpOworICAgIH0KKworICAgIFN0cmluZyBkaXJlY3Rvcnkg
PSBJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qo
b3JpZ2luLnRvcE9yaWdpbiwgb3JpZ2luLmNsaWVudE9yaWdpbiwgZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoLCAidjEiKTsKKyAgICBmaWxlcyA9IEZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkoZGlyZWN0
b3J5LCAiKiJfcyk7CisgICAgZm9yIChhdXRvJiBmaWxlIDogZmlsZXMpIHsKKyAgICAgICAgYXV0
byBkYXRhYmFzZVR1cGxlID0gU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uRnJvbUZpbGUoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoRm9y
RGlyZWN0b3J5KGZpbGUpKTsKKyAgICAgICAgaWYgKCFkYXRhYmFzZVR1cGxlLm5hbWUuaXNFbXB0
eSgpKQorICAgICAgICAgICAgZGF0YWJhc2VzLmFwcGVuZChkYXRhYmFzZVR1cGxlKTsKKyAgICB9
CisKKyAgICBhdXRvIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAuZ2V0KHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIWNvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsK
KworICAgIGNvbm5lY3Rpb24tPmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1
ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzKTsKK30KKwogdm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5k
RGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQog
ewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IDQwOTg3NDlmNTc4N2Iw
NzljN2ExZWVhODQxOGU2MTI5OGU3N2RjYmQuLmYxZDk5YWZiMGRmZmYzNDMxNmIwMGI2YTM5ZGYw
Zjc5ZGZkNzM4NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyLmgKQEAgLTkwLDYgKzkwLDggQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0
YSYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKElEQkNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhJREJDb25uZWN0aW9uSWRlbnRp
ZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgQ2xpZW50T3JpZ2luJik7
CisKIAogICAgIHZvaWQgcmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKFVu
aXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3Jl
LmNwcAppbmRleCA1NjNkZWE4ODBmYTg3OGY1NDIyOTgwZGM3YWZiM2VhNDg5OTg1MjI3Li44YTFj
NzkxMGZkMTkyMjZlODdlMjFiY2QxNGUxYWM5OWNlMTUyZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURC
QmFja2luZ1N0b3JlLmNwcApAQCAtOTMwLDYgKzkzMCwzNyBAQCBTdHJpbmcgU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVGcm9tRmlsZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0
aCkKICAgICByZXR1cm4gZGF0YWJhc2VOYW1lOwogfQogCitJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxl
KGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQoreworICAgIFNRTGl0ZURhdGFiYXNlIGRhdGFi
YXNlOworICAgIGlmICghZGF0YWJhc2Uub3BlbihkYXRhYmFzZVBhdGgpKSB7CisgICAgICAgIExP
R19FUlJPUigiRmFpbGVkIHRvIG9wZW4gU1FMaXRlIGRhdGFiYXNlIGF0IHBhdGggJyVzJyB3aGVu
IGdldHRpbmcgZGF0YWJhc2UgbmFtZSIsIGRhdGFiYXNlUGF0aC51dGY4KCkuZGF0YSgpKTsKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisgICAgaWYgKCFkYXRhYmFzZS50YWJsZUV4aXN0cygi
SURCRGF0YWJhc2VJbmZvIl9zKSkgeworICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBmaW5k
IElEQkRhdGFiYXNlSW5mbyB0YWJsZSBhbmQgZ2V0IGRhdGFiYXNlIG5hbWUoJWkpIC0gJXMiLCBk
YXRhYmFzZS5sYXN0RXJyb3IoKSwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBk
YXRhYmFzZS5jbG9zZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIFNRTGl0
ZVN0YXRlbWVudCBuYW1lc3FsKGRhdGFiYXNlLCAiU0VMRUNUIHZhbHVlIEZST00gSURCRGF0YWJh
c2VJbmZvIFdIRVJFIGtleSA9ICdEYXRhYmFzZU5hbWUnOyIpOworICAgIGF1dG8gZGF0YWJhc2VO
YW1lID0gbmFtZXNxbC5nZXRDb2x1bW5UZXh0KDApOworCisgICAgU1FMaXRlU3RhdGVtZW50IHZl
cnNxbChkYXRhYmFzZSwgIlNFTEVDVCB2YWx1ZSBGUk9NIElEQkRhdGFiYXNlSW5mbyBXSEVSRSBr
ZXkgPSAnRGF0YWJhc2VWZXJzaW9uJzsiX3MpOworICAgIFN0cmluZyBzdHJpbmdWZXJzaW9uID0g
dmVyc3FsLmdldENvbHVtblRleHQoMCk7CisgICAgYm9vbCBvazsKKyAgICB1aW50NjRfdCBkYXRh
YmFzZVZlcnNpb24gPSBzdHJpbmdWZXJzaW9uLnRvVUludDY0U3RyaWN0KCZvayk7CisgICAgaWYg
KCFvaykgeworICAgICAgICBMT0dfRVJST1IoIkRhdGFiYXNlIHZlcnNpb24gb24gZGlzayAoJyVz
JykgZG9lcyBub3QgY2xlYW5seSBjb252ZXJ0IHRvIGFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2Vy
IHZlcnNpb24iLCBzdHJpbmdWZXJzaW9uLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBkYXRhYmFz
ZS5jbG9zZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGRhdGFiYXNlLmNs
b3NlKCk7CisKKyAgICByZXR1cm4geyBkYXRhYmFzZU5hbWUsIGRhdGFiYXNlVmVyc2lvbiB9Owor
fQorCiBTdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VEaXJlY3RvcnlX
aXRoVXBncmFkZSgpCiB7CiAgICAgYXV0byBkYXRhYmFzZVJvb3REaXJlY3RvcnkgPSB0aGlzLT5k
YXRhYmFzZVJvb3REaXJlY3RvcnlJc29sYXRlZENvcHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5n
U3RvcmUuaAppbmRleCA0OTQwYzE1MTYxMTA0YWQ5Njk1OGZkMjM0MzdkYWM2OTk0MGNjNzE4Li5i
ZjAyYjhjZDc1ZGQ0YmM2MDhiZDM0OGY1NDk3Zjc4MTgxYTk0YzUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3Jl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QkJhY2tpbmdTdG9yZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSURCQmFja2luZ1N0
b3JlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURC
RGF0YWJhc2VJbmZvLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgog
I2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNRTGl0ZUlEQlRy
YW5zYWN0aW9uLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CkBAIC05OSw2
ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3Qg
eyByZXR1cm4gbV9kYXRhYmFzZURpcmVjdG9yeTsgfTsKICAgICBzdGF0aWMgU3RyaW5nIGZ1bGxE
YXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIFN0cmlu
ZyBkYXRhYmFzZU5hbWVGcm9tRmlsZShjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvbiBkYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbUZpbGUoY29uc3Qg
U3RyaW5nJik7CiAKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVy
biBtX3Nlc3Npb25JRDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jOWNmNzdiNWYzNmIwZDA3YTk4OTMwMzQ1OTIwYWZkNDNmMDM2YTQ3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIERhcnJ5bCBQb2d1ZSAoZGFycnlsQGRwb2d1ZS5jYSkKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIHsKKyAgICBTdHJpbmcgbmFtZTsKKyAgICB1aW50NjRf
dCB2ZXJzaW9uIHsgMCB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBX
QVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb24mKTsKKworICAgIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24gaXNvbGF0ZWRDb3B5
KCkgY29uc3Q7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IG5hbWUgPDwgdmVyc2lvbjsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K2Jvb2wgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24mIGluZm8pCit7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpbmZvLm5hbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGluZm8udmVyc2lvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
dHVybiB0cnVlOworfQorCitpbmxpbmUgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbiBJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uOjppc29sYXRlZENvcHkoKSBjb25zdAoreworICAgIHJldHVybiB7
IG5hbWUuaXNvbGF0ZWRDb3B5KCksIHZlcnNpb24gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjJkNjk5ZDZl
MzI1NDZkMGI1NGViYWM2M2NhY2UzOWQxZWU0N2I1Ni4uYWYwYTIyNmZmYmI0OGUyYTNkOTdhYjdl
MjNmNGE5NWE4NGUxNWYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjU5MSw2ICsyNTkxLDcgQEAKIAkJOEY2NzU2MUIxMjg4
QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDhGNjc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTAw
MTc3NDExMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3NzNFMTJFMDM0Nzgw
MDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CiAJCTkwMDE3ODgxMTJF
MDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMDE3ODdGMTJFMDM3MDcwMDY0ODQ2
MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKKwkJOTAxNkVBNEQyNDU0RDgx
MzAwMjFEOUQxIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwMTZFQTRDMjQ1NEQ4MTMwMDIxRDlEMSAv
KiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTEwOUU5QzgyMjJDQUJDQTAwQkI2MjY0IC8qIEluc3Bl
Y3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MTA5RTlDNTIyMkNBQkM4MDBCQjYyNjQgLyogSW5zcGVjdG9yQXVk
aXRSZXNvdXJjZXNPYmplY3QuaCAqLzsgfTsKIAkJOTEwOUU5QzgyMjJDQUJDQTAwQkI2MjY1IC8q
IEpTSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxMDlFOUM1MjIyQ0FCQzgwMEJCNjI2NSAvKiBKU0lu
c3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi87IH07CiAJCTkxMjc4RDVFMjFERURBRDYw
MEI1NzE4NCAvKiBQYWdlQXVkaXRBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTEyNzhENUMyMURFREFENTAwQjU3MTg0IC8qIFBhZ2VBdWRpdEFn
ZW50LmggKi87IH07CkBAIC0xMDcwMSw2ICsxMDcwMiw3IEBACiAJCTkwMDE3NzNGMTJFMDM0Nzgw
MDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU1N0YW5kYXJk
RGVyaXZhdGl2ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RjEy
RTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MDE2RUE0QzI0NTREODEzMDAyMUQ5RDEgLyogSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxMDlFOUM1MjIyQ0FCQzgw
MEJCNjI2NCAvKiBJbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTA5RTlDNTIyMkNBQkM4MDBCQjYyNjUgLyogSlNJ
bnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkxMDlFOUM3MjIyQ0FCQzkwMEJCNjI2NCAvKiBJbnNwZWN0b3JBdWRp
dFJlc291cmNlc09iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xOTI4OCw2ICsxOTI5MCw3IEBACiAJCQkJNTExMEZDRkIxRTAzNjJBNTAwNkY4
RDBCIC8qIElEQkN1cnNvclJlY29yZC5oICovLAogCQkJCTUxQkE0QUMxMUJCQjVDQkYwMERGM0Q2
RCAvKiBJREJEYXRhYmFzZUluZm8uY3BwICovLAogCQkJCTUxQkE0QUMyMUJCQjVDQkYwMERGM0Q2
RCAvKiBJREJEYXRhYmFzZUluZm8uaCAqLywKKwkJCQk5MDE2RUE0QzI0NTREODEzMDAyMUQ5RDEg
LyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oICovLAogCQkJCTUxNDg0NTNDMUJCOUQwNzYw
MDZBNzJFRCAvKiBJREJFcnJvci5jcHAgKi8sCiAJCQkJNTE0ODQ1M0QxQkI5RDA3NjAwNkE3MkVE
IC8qIElEQkVycm9yLmggKi8sCiAJCQkJNTE5REJDNkQxREMwMEZCOTAwMzI5QkY1IC8qIElEQkdl
dEFsbFJlY29yZHNEYXRhLmNwcCAqLywKQEAgLTMwNzg1LDYgKzMwNzg4LDcgQEAKIAkJCQk1MTg1
RkM4MTFCQjRDNEU4MDAxMjg5OEYgLyogSURCRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxODVGQzg3MUJCNEM0RTgwMDEyODk4RiAvKiBJREJEYXRhYmFzZUlkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxQkE0QUM0MUJCQjVDRDgwMERGM0Q2RCAvKiBJREJEYXRhYmFzZUlu
Zm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTkwMTZFQTREMjQ1NEQ4MTMwMDIxRDlEMSAvKiBJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTQ4NDUzRjFCQjlE
MDdFMDA2QTcyRUQgLyogSURCRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQzhEMUJC
NEM0RTgwMDEyODk4RiAvKiBJREJGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTlEQkM2
RjFEQzAxMUE3MDAzMjlCRjUgLyogSURCR2V0QWxsUmVjb3Jkc0RhdGEuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCA3OWIwYjMxOTMxMDk5
OWVlOTM4YzQ2NWI1MTgzNTEwZjU5NTI3NTlkLi5hMDIxYTMzZTUzYTY2M2U2ODE4ZDhhMzAwZTUy
YWJmZWY1NDk1Y2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAt
MTUzLDYgKzE1Myw3IEBAIGNsYXNzIEVtcHR5RGF0YWJhc2VQcm92aWRlciBmaW5hbCA6IHB1Ymxp
YyBEYXRhYmFzZVByb3ZpZGVyIHsKICAgICAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2
ZW50KHVpbnQ2NF90LCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJbmRleGVk
REI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKSBmaW5hbCB7IH0KICAgICAgICAg
dm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJikgZmluYWwg
eyB9CiAgICAgICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCB1aW50NjRfdCkgZmluYWwgeyB9Cisg
ICAgICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYsIGNvbnN0IENsaWVudE9yaWdpbiYpIGZpbmFsIHsgfQogICAgICAgICB+
RW1wdHlJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxldGVnYXRlKCkgeyB9CiAgICAgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggZjJhZmUxYThiOGFiOGNlYWFh
MWNjNzEyZWZhNGVhYzE3NmVmNjNkNC4uZmVjMzk5MzM4MmY0ODNlN2QxMGFmZGE0MzE1MWNjM2Qz
Y2E5ZmViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC0xOTgs
NiArMTk4LDExIEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRh
YmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0CiAgICAgc2VuZChNZXNzYWdlczo6
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRHZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxiYWNr
SUQsIGRhdGFiYXNlTmFtZXMpKTsKIH0KIAordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNlcykKK3sKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRW
ZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IDk5NTA4M2IwNDZhZDBkZDk3ZWUzMTk4NzIw
OTUyYmRlY2JjODkzNmUuLjgxYjBiNDljZjFmNTg1M2NjZDdiYTQxM2NmY2NmOTkyMzA1NjExMjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBAIC04Myw2ICs4Myw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3Jl
OjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRW
ZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9uKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkR2V0QWxs
RGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZGF0YWJhc2VOYW1lcykgZmluYWw7CisgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5k
VmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgVmVj
dG9yPFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JikgZmluYWw7CiAKICAgICB0
ZW1wbGF0ZTxjbGFzcyBNZXNzYWdlVHlwZT4gdm9pZCBoYW5kbGVHZXRSZXN1bHQoY29uc3QgV2Vi
Q29yZTo6SURCUmVzdWx0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAppbmRleCA1MDhiZDkyOTEzNDkw
N2ExNjliNjUxYzdiOGFlZTFjOTI3NzJmOGQzLi45OGU3ZmE1MDcxYThjZThkNTI4MGIzYjY1NjRj
MDQ3MmMzZjk4ZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0lu
ZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTMyNiw2ICszMjYsMTcgQEAgdm9pZCBX
ZWJJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBjb25zdCBXZWJDb3IKICAgICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1lcyh3ZWJJ
REJDb25uZWN0aW9uLT5pZGVudGlmaWVyKCksIG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdp
biwgY2FsbGJhY2tJRCk7CiB9CiAKK3ZvaWQgV2ViSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5h
bWVzQW5kVmVyc2lvbnMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3Jl
OjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mIG9yaWdpbikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKKworICAgIGF1dG8qIHdlYklEQkNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAuZ2V0KGNv
bm5lY3Rpb24udW5pcXVlSUQoKSk7CisgICAgQVNTRVJUKHdlYklEQkNvbm5lY3Rpb24pOworCisg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7CisgICAgbV9zZXJ2ZXItPmdl
dEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyh3ZWJJREJDb25uZWN0aW9uLT5pZGVudGlmaWVy
KCksIHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pOworfQorCiB2b2lkIFdlYklEQlNlcnZlcjo6
YWRkQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQlNlcnZlci5oCmluZGV4IGQ0MDNmNmM4NDBjMzAyNTIyNzRkMmQzYTc4MjQ1ZTIy
OTg3MzAyNjcuLjk1MjRhNjAwMzI5ZmMxNmMxMWZlZjI4MTcyNTI4NTFmZWI4NTc2MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNl
cnZlci5oCkBAIC04MSw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZpcmVWZXJzaW9u
Q2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6SW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiAg
ICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3RE
YXRhJik7CiAgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKElQQzo6Q29ubmVjdGlvbiYsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OklEQlJl
c291cmNlSWRlbnRpZmllciYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpOwogCiAgICAg
dm9pZCBhZGRDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJT
ZXJ2ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWRE
Qi9XZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4KaW5kZXggMjA5ZjU0MDI2MTUwNTFlNjk3ZTJmZGRk
NTc3Mzg5NDEyYjNkZDZkMy4uMWM2MjBiOWMyNTM4NjMzMDIxNDcyOGI3ZjU0MGM1YzkyMDBhZjg1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCU2VydmVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbgpAQCAtNTEsNiArNTEsNyBAQCBtZXNz
YWdlcyAtPiBXZWJJREJTZXJ2ZXIgewogICAgIE9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoV2ViQ29y
ZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEpCiAKICAgICBHZXRBbGxEYXRhYmFzZU5hbWVz
KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNr
SUQpIFdhbnRzQ29ubmVjdGlvbgorICAgIEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhX
ZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIHN0cnVjdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSBXYW50c0Nvbm5lY3Rpb24KIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5jcHAKaW5kZXggMGU5NzgzNjc3OWQ2NjBkNjA4YjMwZjFiNDE2YTU0
MWM4ZTMxY2JhYy4uMTE4N2ZiNTgzZGQxYTI4YTI5NDdjMjljNTE0MmY5NTNlZTA0NThjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
RGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC0yMTIs
NiArMjEyLDExIEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFz
ZU5hbWVzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luCiAgICAgc2VuZChNZXNzYWdlczo6
V2ViSURCU2VydmVyOjpHZXRBbGxEYXRhYmFzZU5hbWVzKHRvcE9yaWdpbiwgb3BlbmluZ09yaWdp
biwgY2FsbGJhY2tJRCkpOwogfQogCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0
QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
cmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luKQor
eworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQlNlcnZlcjo6R2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pKTsKK30KKwogdm9pZCBXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlc3VsdERhdGEm
IHJlc3VsdCkKIHsKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkRGVsZXRlRGF0YWJhc2Uo
cmVzdWx0KTsKQEAgLTMyNyw2ICszMzIsMTEgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QKICAg
ICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lE
LCBkYXRhYmFzZU5hbWVzKTsKIH0KIAordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRp
ZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNlcykKK3sKKyAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBkYXRh
YmFzZXMpOworfQorCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y29ubmVjdGlvblRv
U2VydmVyTG9zdCgpCiB7CiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmNvbm5lY3Rpb25Ub1Nl
cnZlckxvc3QoSURCRXJyb3IgeyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJBbiBpbnRlcm5hbCBl
cnJvciB3YXMgZW5jb3VudGVyZWQgaW4gdGhlIEluZGV4ZWQgRGF0YWJhc2Ugc2VydmVyIl9zIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
RGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAppbmRleCA5NzA1
OGQzZWUxOGFjYjkwNmY0M2NkNWQ1ZmQ5OWI2ZjYyODQ4NzFhLi4yZmVkMjYyYmVlMWMwNTEzZTI2
MjA4NGIwOTZjYTlhZDgwODIyMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaApAQCAtODEsNiArODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgb3BlbkRC
UmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpIGZpbmFsOwog
CiAgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9w
ZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFsOworICAgIHZvaWQgZ2V0QWxs
RGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRp
ZmllciYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGZpbmFsOwogCiAgICAgLy8gTWVz
c2FnZXMgcmVjZWl2ZWQgZnJvbSBOZXR3b3JrIFByb2Nlc3MKICAgICB2b2lkIGRpZERlbGV0ZURh
dGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsKQEAgLTEwNiw2ICsxMDcsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJik7CiAgICAgdm9p
ZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRf
dCBuZXdWZXJzaW9uKTsKICAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3Qg
Y2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpOworICAgIHZv
aWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJl
c291cmNlSWRlbnRpZmllciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uPiYpOwogCiAgICAgUmVmPFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlv
blRvU2VydmVyPiBtX2Nvbm5lY3Rpb25Ub1NlcnZlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4KaW5kZXggOGQ5N2U0
NGUzNWMzYzBmZmU1M2QwNmMzYjZkYmIzMjJlN2Q2ZjFjMC4uMjAwNTg2Y2RjZTFhMjczYTRlMTM5
ZjQ4YTA1MWVlMWIxOWY0YzY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbgpAQCAtNDgsNiArNDgsNyBAQCBtZXNzYWdl
cyAtPiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIgewogICAgIE5vdGlmeU9wZW5EQlJlcXVlc3RC
bG9ja2VkKFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwg
dWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikKIAogICAgIERpZEdldEFs
bERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgVmVjdG9yPFN0cmluZz4gZGF0YWJh
c2VOYW1lcykKKyAgICBEaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoV2ViQ29yZTo6
SURCUmVzb3VyY2VJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4gZGF0YWJhc2VzKQogfQogCiAjZW5kaWYgLy8gRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0
b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFn
ZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCmluZGV4IGE1NDliMDQ5MDVjNmEyMjNjZDY3NmMwOTBj
MDRhNGI3MTcyZTdmYTAuLjhhOTQ4YjhhNDRkOGYzNTgzYjU2MGVmMTY5ZGE1NTM0OWE4NGQ0ZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2
ZXIuY3BwCkBAIC00OTEsNiArNDkxLDIxIEBAIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRH
ZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvCiAgICAg
fSk7CiB9CiAKK3ZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5k
VmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRl
bnRpZmllciwgY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCit7CisgICAgZGlzcGF0Y2hUYXNr
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBtX2Nv
bm5lY3Rpb25Ub1NlcnZlci0+aWRlbnRpZmllcigpLCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2lu
ID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpXSB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
c2VydmVyLT5sb2NrKCkpOworICAgICAgICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKGlkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pOworICAgIH0p
OworfQorCit2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
PiYgZGF0YWJhc2VzKQoreworICAgIGRpc3BhdGNoVGFza1JlcGx5KFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBkYXRhYmFzZXMgPSBkYXRh
YmFzZXMuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRp
ZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJh
c2VzKTsKKyAgICB9KTsKK30KKwogdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmNsb3NlQW5kRGVs
ZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQogewog
ICAgIGRpc3BhdGNoVGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBt
b2RpZmljYXRpb25UaW1lXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3Jh
Z2UvSW5Qcm9jZXNzSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Q
cm9jZXNzSURCU2VydmVyLmgKaW5kZXggNjA0N2RkOWY5NWIxM2RjMTE2ZGI4YmVlZjA4OWI2NGRm
NDNjY2ZhNC4uMjI0MGUyY2EzNGE4NGQ2ZTE4MWU2ZDFjMDQ5MGNjYTExOWNkOTM0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuaApAQCAt
OTEsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklE
QlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Oklu
ZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpIGZpbmFsOwogICAgIHZv
aWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYp
IGZpbmFsOwogICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKSBmaW5hbDsKKyAg
ICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJS
ZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKSBmaW5hbDsK
IAogICAgIC8vIElEQkNvbm5lY3Rpb25Ub0NsaWVudAogICAgIFdlYkNvcmU6OklEQkNvbm5lY3Rp
b25JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKQEAgLTExNyw2ICsxMTgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6SURCU2VydmVy
OjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYp
IGZpbmFsOwogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29y
ZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xk
VmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikgZmluYWw7CiAgICAgdm9pZCBkaWRHZXRBbGxE
YXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBk
YXRhYmFzZU5hbWVzKSBmaW5hbDsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRW
ZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBWZWN0
b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKSBmaW5hbDsKIAogICAgIHZv
aWQgY2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNjAzODE1MmM5ZmFlYjQ1NjI0YmM5ZmQzNjZi
Y2Q3NjJjYjQ5MDJkNi4uN2JjZjkxNmQ4MWVhZmY1NjQ3NzgyNjFhN2I2MTdjOThkYTFkMTZkNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDUt
MDIgIERhcnJ5bCBQb2d1ZSAgPGRhcnJ5bEBkcG9ndWUuY2E+CisKKyAgICAgICAgSW5kZXhlZERC
OiBTdXBwb3J0IElEQkZhY3RvcnkgZGF0YWJhc2VzIG1ldGhvZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDQzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRqdXN0IHRlc3QgZXhwZWN0YXRpb25zIGZv
ciBgSURCRmFjdG9yeS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LWRhdGFiYXNl
cy1vcGFxdWUtb3JpZ2luLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYmZhY3Rvcnktb3JpZ2luLWlzb2xhdGlvbi1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJu
ZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA1LTAyICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ1NTIEVhc2luZyAxXSBpbXBsZW1lbnQg
YGp1bXAtKmAgc3RlcCBwb3NpdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4dAppbmRleCBlMmRmZmFjNzQ3ODdh
YzUxODU1ODg1MDJiNmQwY2Q3MWVmZWQ3OTBlLi4wNjUwMTlkMTMwMTA5YzcyNGI1M2I4YTYwZGVi
YzlmNjY0NTMwYzQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
Z2V0LWRhdGFiYXNlcy5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1GQUlMIEVu
c3VyZSB0aGF0IGRhdGFiYXNlcygpIHJldHVybnMgYSBwcm9taXNlLiBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWRE
Qi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygp
JywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVudW1lcmF0ZSBv
bmUgZGF0YWJhc2UuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVl
OiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlv
bi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMg
dW5kZWZpbmVkKSIKLUZBSUwgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBp
bmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRh
YmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBNYWtl
IHN1cmUgYW4gZW1wdHkgbGlzdCBpcyByZXR1cm5lZCBmb3IgdGhlIGNhc2Ugb2Ygbm8gZGF0YWJh
c2VzLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
aW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5l
ZCkiCi1GQUlMIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBjaGFuZ2Vz
IHRoYXQgaGF2ZW4ndCBjb21taXRlZC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0
YWJhc2VzJyBpcyB1bmRlZmluZWQpIgorUEFTUyBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSByZXR1
cm5zIGEgcHJvbWlzZS4gCitQQVNTIEVudW1lcmF0ZSBvbmUgZGF0YWJhc2UuIAorUEFTUyBFbnVt
ZXJhdGUgbXVsdGlwbGUgZGF0YWJhc2VzLiAKK1BBU1MgTWFrZSBzdXJlIGFuIGVtcHR5IGxpc3Qg
aXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gCitGQUlMIEVuc3VyZSB0
aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBjaGFuZ2VzIHRoYXQgaGF2ZW4ndCBjb21t
aXRlZC4gYXNzZXJ0X2VxdWFsczogVGhlIHJlc3VsdCBvZiBkYXRhYmFzZXMoKSBzaG91bGQgYmUg
b25seSB0aG9zZSBkYXRhYmFzZXMgd2hpY2ggaGF2ZSBiZWVuIGNyZWF0ZWQgYXQgdGhlIHRpbWUg
b2YgY2FsbGluZywgcmVnYXJkbGVzcyBvZiB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9ucyBjdXJy
ZW50bHkgcnVubmluZy4gZXhwZWN0ZWQgMSBidXQgZ290IDIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9y
eS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LWRhdGFiYXNl
cy1vcGFxdWUtb3JpZ2luLWV4cGVjdGVkLnR4dAppbmRleCAwNjc5ZjM5MmViNWZhZWQwYmRjMTdl
ODFjYjliNWFjYjIyMWI1MmQ0Li5kZmE3MTAyYjAwY2MzYWQ4YzAxZGJmZDdkMGJjOTU5MzE3NmVl
NDIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LWRhdGFiYXNlcy1vcGFxdWUtb3JpZ2luLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJmYWN0b3J5LWRhdGFiYXNlcy1vcGFxdWUtb3JpZ2luLWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDQgQEAKIAotRkFJTCBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGluIG5vbi1zYW5k
Ym94ZWQgaWZyYW1lIHNob3VsZCBub3QgcmVqZWN0IGFzc2VydF9lcXVhbHM6IElEQkZhY3Rvcnku
ZGF0YWJhc2VzKCkgc2hvdWxkIG5vdCByZWplY3QgZXhwZWN0ZWQgIm5vIGV4Y2VwdGlvbiIgYnV0
IGdvdCAiaW5kZXhlZERCLmRhdGFiYXNlcyB1bmRlZmluZWQiCi1GQUlMIElEQkZhY3RvcnkuZGF0
YWJhc2VzKCkgaW4gc2FuZGJveGVkIGlmcmFtZSBzaG91bGQgcmVqZWN0IGFzc2VydF9lcXVhbHM6
IFByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkIHdpdGggU2VjdXJpdHlFcnJvciBleHBlY3RlZCAi
U2VjdXJpdHlFcnJvciIgYnV0IGdvdCAiaW5kZXhlZERCLmRhdGFiYXNlcyB1bmRlZmluZWQiCitQ
QVNTIElEQkZhY3RvcnkuZGF0YWJhc2VzKCkgaW4gbm9uLXNhbmRib3hlZCBpZnJhbWUgc2hvdWxk
IG5vdCByZWplY3QgCitQQVNTIElEQkZhY3RvcnkuZGF0YWJhc2VzKCkgaW4gc2FuZGJveGVkIGlm
cmFtZSBzaG91bGQgcmVqZWN0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0aW9uLWV4cGVjdGVkLnR4dApp
bmRleCBhMzMwOThlYjhmNjVmZmMxOWNjN2RhZmQ3OTk1ZTgyMDE0MTNkNjU0Li5jYjk4NWZjNWYy
ZTZmODRlOGU5NTk1MzBlMzg3ZWRhOWFhMTVlY2Y3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdp
bi1pc29sYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnktb3JpZ2luLWlzb2xhdGlvbi1l
eHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgVGVzdCB0byBtYWtlIHN1cmUgdGhh
dCBvcmlnaW5zIGhhdmUgc2VwYXJhdGUgbG9ja2luZyBzY2hlbWVzIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERC
LmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCkn
LCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKK1BBU1MgVGVzdCB0byBtYWtl
IHN1cmUgdGhhdCBvcmlnaW5zIGhhdmUgc2VwYXJhdGUgbG9ja2luZyBzY2hlbWVzIAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50
eHQKaW5kZXggZDlkZTI3ZTQ3YmQ1ZWI3ODZmYzg0ZmRjNGM2M2IxZWM4NjcyOTU5OC4uYWU5YTJh
OGFhYmU1MTNkNmIyYmFiODdiYzM0NGM3MDMzMDU5ZTRhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5h
bnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dApAQCAtNTIsNyAr
NTIsNyBAQCBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplYwogUEFTUyBJREJGYWN0b3J5IGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBvcGVuKERPTVN0cmluZywgdW5zaWduZWQgbG9uZyBsb25nKSAKIFBBU1MgSURCRmFj
dG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIAotRkFJ
TCBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNlcygpIGFzc2VydF9vd25f
cHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBv
cGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImRhdGFiYXNlcyIgbWlzc2luZworUEFTUyBJREJG
YWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNlcygpIAogUEFTUyBJREJGYWN0b3J5
IGludGVyZmFjZTogb3BlcmF0aW9uIGNtcChhbnksIGFueSkgCiBQQVNTIElEQkZhY3RvcnkgbXVz
dCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBbb2JqZWN0IElEQkZhY3RvcnldIAogUEFTUyBTdHJp
bmdpZmljYXRpb24gb2YgW29iamVjdCBJREJGYWN0b3J5XSAKQEAgLTYwLDcgKzYwLDcgQEAgUEFT
UyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm9wZW4oRE9NU3QKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcg
b3BlbihET01TdHJpbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgb24gW29iamVjdCBJREJGYWN0b3J5
XSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBJREJG
YWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImRlbGV0ZURhdGFiYXNlKERPTVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFT
UyBJREJGYWN0b3J5IGludGVyZmFjZTogY2FsbGluZyBkZWxldGVEYXRhYmFzZShET01TdHJpbmcp
IG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKLUZBSUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9y
eV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkYXRhYmFzZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZGF0YWJhc2VzIiBub3QgZm91bmQgaW4gcHJv
dG90eXBlIGNoYWluCitQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0IElEQkZhY3Rv
cnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhlIHByb3BlciB0
eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImNtcChhbnksIGFueSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAog
UEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogY2FsbGluZyBjbXAoYW55LCBhbnkpIG9uIFtvYmpl
Y3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJv
ciAKIFBBU1MgSURCRGF0YWJhc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDYxOWVkODQ0
NDdlMjZiYzEwZTI1M2EyNTYyMjRiNDRiY2I1ZDRlZDIuLmNmMTNmY2MyODhhMWUyMWFlZDIyYWU5
ODExZGRkNjU1MGNjZmE4YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNTIsNyArNTIs
NyBAQCBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplYwogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
QEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBvcGVuKERPTVN0cmluZywgdW5zaWduZWQgbG9uZyBsb25nKSAKIFBBU1MgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIAotRkFJTCBJ
REJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNlcygpIGFzc2VydF9vd25fcHJv
cGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVy
YXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImRhdGFiYXNlcyIgbWlzc2luZworUEFTUyBJREJGYWN0
b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNlcygpIAogUEFTUyBJREJGYWN0b3J5IGlu
dGVyZmFjZTogb3BlcmF0aW9uIGNtcChhbnksIGFueSkgCiBQQVNTIElEQkZhY3RvcnkgbXVzdCBi
ZSBwcmltYXJ5IGludGVyZmFjZSBvZiBbb2JqZWN0IElEQkZhY3RvcnldIAogUEFTUyBTdHJpbmdp
ZmljYXRpb24gb2YgW29iamVjdCBJREJGYWN0b3J5XSAKQEAgLTYwLDcgKzYwLDcgQEAgUEFTUyBJ
REJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm9wZW4oRE9NU3QKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgb3Bl
bihET01TdHJpbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgb24gW29iamVjdCBJREJGYWN0b3J5XSB3
aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBJREJGYWN0
b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImRlbGV0ZURhdGFiYXNlKERPTVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJ
REJGYWN0b3J5IGludGVyZmFjZTogY2FsbGluZyBkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIG9u
IFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5
cGVFcnJvciAKLUZBSUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0g
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJkYXRhYmFzZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
YXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZGF0YWJhc2VzIiBub3QgZm91bmQgaW4gcHJvdG90
eXBlIGNoYWluCitQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0IElEQkZhY3Rvcnld
IG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhlIHByb3BlciB0eXBl
IAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImNtcChhbnksIGFueSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFT
UyBJREJGYWN0b3J5IGludGVyZmFjZTogY2FsbGluZyBjbXAoYW55LCBhbnkpIG9uIFtvYmplY3Qg
SURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
IFBBU1MgSURCRGF0YWJhc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdCAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400412</attachid>
            <date>2020-05-27 17:50:49 -0700</date>
            <delta_ts>2020-05-27 18:51:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211043-20200527175048.patch</filename>
            <type>text/plain</type>
            <size>71848</size>
            <attacher name="Darryl Pogue">dvpdiner2</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAwMzM0YzNmYjJlODg1
NWI4Njg1MGI3ZjU1NjAyZDdiZTM0NGVjYy4uMWNjMjc5MzMyOGE2NWVmM2Y0YjQ3ZjhmYjIwN2Zh
MGVmZTZjNzgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTA1LTI3ICBEYXJy
eWwgUG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9y
dCBJREJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBmZXRjaGluZyB0aGUgbGlzdCBvZiBJREIgZGF0YWJhc2UgbmFtZXMgYW5k
IHZlcnNpb25zCisgICAgICAgIGZyb20gdGhlIElEQlNlcnZlciwgYW5kIGV4cG9zZSB0aGUgZnVu
Y3Rpb25hbGl0eSBhcworICAgICAgICBgSURCRmFjdG9yeS5wcm90b3R5cGUuZGF0YWJhc2VzKClg
LgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6SURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3Q6On5JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6c2V0
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3Q6OmZpcmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6dmlydHVhbEhhc1BlbmRp
bmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdDo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaDogQWRkZWQKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkZhY3Rvcnk6OmRh
dGFiYXNlcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJD
bGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5OjpkaWRH
ZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmZvcmdldEFjdGl2aXR5Rm9yQ3VycmVudFRocmVhZCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5o
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblRvU2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZl
cnNpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlv
blRvQ2xpZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5l
Y3Rpb25Ub0NsaWVudERlbGVnYXRlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZl
cjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21G
aWxlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2lu
Z1N0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24uaDogQWRkZWQKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvbjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisKIDIwMjAtMDUtMjcgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlcGxhY2UgYGZl
YXR1cmVHdWFyZGAgYW5kIGBhdmFpbGFiaWxpdHlgIHdpdGggYSBjb21iaW5lZCBgY29uZGl0aW9u
YCB0aGF0IGFjY2VwdHMgYW55IG1hY3JvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk4NWFjZGRlNjhhODA2OWE0OTVm
NDI2MDM3NGY2YmNhYzYzY2YzNGIuLmE3MTQzYTBlNTNiZGE5ZjI0MWY1NWJiMDcyNjQzOWY2Y2Y0
Mzc3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDUtMjcgIERhcnJ5bCBQb2d1
ZSAgPGRhcnJ5bEBkcG9ndWUuY2E+CisKKyAgICAgICAgSW5kZXhlZERCOiBTdXBwb3J0IElEQkZh
Y3RvcnkgZGF0YWJhc2VzIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjExMDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUGx1bWJpbmcgZm9yIHJldHVybmluZyBhIGxpc3Qgb2YgSURCIGRhdGFi
YXNlcyBhbmQgdmVyc2lvbnMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZl
cnNpb25zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbjoKKwogMjAyMC0wNS0y
NyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGp1c3Qg
SFRUUDMgbGFiZWwgdG8gdGhlIG1vcmUgY29ycmVjdCBIVFRQLzMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cK
aW5kZXggYTczZjUzMDYwMDRmOGM2OTg5ZGZkMTVjOTdkMTYzYmNmMzRjZTE3Ny4uNDJiZTNkODMy
YzYxMWQ3NWY4NjNlN2ZlNTZmZTg0YTdiNDcyOWU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMC0wNS0yNyAgRGFycnlsIFBvZ3VlICA8ZGFycnlsQGRwb2d1ZS5j
YT4KKworICAgICAgICBJbmRleGVkREI6IFN1cHBvcnQgSURCRmFjdG9yeSBkYXRhYmFzZXMgbWV0
aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEw
NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbHVt
YmluZyBmb3IgcmV0dXJuaW5nIGEgbGlzdCBvZiBJREIgZGF0YWJhc2VzIGFuZCB2ZXJzaW9ucy4K
KworICAgICAgICAqIFN0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoKKyAgICAgICAgKElu
UHJvY2Vzc0lEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAg
ICAgKEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KToKKyAgICAgICAgKiBTdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5oOgorCiAyMDIwLTA1LTI3
ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgdGhl
IHVzZSBvZiBYQ0J1aWxkIGJ5IGRlZmF1bHQgaW4gQXBwbGUgYnVpbGRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCA5YmFkZjQ1NGIwNTYyNjRiOWU1ZDFmMzQ5M2VhZWQxODdkMzUxZDczLi43ZWY2ZTk4
NzgyMzgxZWU5Mjc1MWU5MTUzOGQ2YmI4ZjA4NjY5YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTQwLDYgKzQwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0aXZlRE9NT2JqZWN0LmgKICAgICBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuaAorICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9J
REJHZXRBbGxSZXN1bHQuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkdldFJlc3VsdC5oCiAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKQEAgLTcyLDYgKzczLDcgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJDdXJzb3JJbmZvLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vyc29y
UmVjb3JkLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmgK
KyAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5o
CiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmgKICAgICBNb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCR2V0QWxsUmVjb3Jkc0RhdGEuaAogICAgIE1vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOGEwMTI0NDIyZDM3ZGI3ZTM3NTMyYzRhMWRmMjUw
ZjQzYWFlODVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsOTIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgRGFycnlsIFBvZ3VlIChkYXJyeWxAZHBvZ3Vl
LmNhKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQorCisjaW5jbHVkZSAiSURCQ29ubmVjdGlvblByb3h5LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KTsKKworUmVmPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b25SZXF1ZXN0PiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
JiBjb25uZWN0aW9uUHJveHksIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQoreworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KGNvbnRl
eHQsIGNvbm5lY3Rpb25Qcm94eSwgb3JpZ2luKSk7Cit9CisKK0lEQkRhdGFiYXNlTmFtZUFuZFZl
cnNpb25SZXF1ZXN0OjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYgY29u
bmVjdGlvblByb3h5LCBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKKyAgICA6IElEQkFjdGl2
ZURPTU9iamVjdCgmY29udGV4dCkKKyAgICAsIG1fY29ubmVjdGlvblByb3h5KGNvbm5lY3Rpb25Q
cm94eSkKKyAgICAsIG1fcmVzb3VyY2VJZGVudGlmaWVyKGNvbm5lY3Rpb25Qcm94eSkKKyAgICAs
IG1fb3JpZ2luKG9yaWdpbikKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1Ro
cmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOworCisgICAgc3VzcGVuZElmTmVlZGVkKCk7
Cit9CisKK0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojp+SURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvblJlcXVlc3QoKQoreworICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNz
VGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSk7Cit9CisKK3ZvaWQgSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3Q6OnNldENhbGxiYWNrKEluZm9DYWxsYmFjayYmIGNhbGxiYWNr
KQoreworICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwordm9pZCBJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6ZmlyZUNhbGxiYWNrKGNvbnN0IFZlY3RvcjxJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYgZGF0YWJhc2VzKQoreworICAgIEFTU0VSVChjYW5D
dXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSk7CisgICAg
CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQorICAgICAgICBj
YWxsYmFjayhkYXRhYmFzZXMpOworfQorCitjb25zdCBjaGFyKiBJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsK
KyAgICByZXR1cm4gIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0IjsKK30KKworYm9v
bCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRM
b2NhbERhdGEob3JpZ2luVGhyZWFkKCkpIHx8IFRocmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKKyAg
ICByZXR1cm4gbV9oYXNQZW5kaW5nQWN0aXZpdHk7Cit9CisKK3ZvaWQgSURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvblJlcXVlc3Q6OnN0b3AoKQoreworICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFk
QWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5k
VmVyc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY4OTM5MTE3MmQyYWE2
ZWViNTNmNjAzNmM5MjM0YmFlOWMyYjc3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgK
QEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBEYXJyeWwgUG9ndWUg
KGRhcnJ5bEBkcG9ndWUuY2EpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJDbGllbnRPcmlnaW4uaCIKKyNpbmNsdWRl
ICJJREJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uLmgiCisjaW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CisKK25hbWVzcGFjZSBJREJDbGllbnQgeworY2xhc3MgSURCQ29ubmVjdGlv
blByb3h5OworfQorCitjbGFzcyBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCBmaW5h
bCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
UmVxdWVzdD4sIHB1YmxpYyBJREJBY3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QpOworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmLCBjb25z
dCBDbGllbnRPcmlnaW4mKTsKKworCisgICAgdmlydHVhbCB+SURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvblJlcXVlc3QoKTsKKworICAgIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVzb3Vy
Y2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUlkZW50aWZpZXI7IH0KKyAg
ICBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luOyB9
CisKKyAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uUmVxdWVzdD46OnJlZjsKKyAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD46OmRlcmVmOworCisgICAgdXNpbmcgSW5mb0NhbGxi
YWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bj4mKT47CisgICAgdm9pZCBzZXRDYWxsYmFjayhJbmZvQ2FsbGJhY2smJik7CisgICAgdm9pZCBm
aXJlQ2FsbGJhY2soY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+Jik7CisK
K3ByaXZhdGU6CisgICAgUmVmPElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5PiBtX2Nvbm5l
Y3Rpb25Qcm94eTsKKyAgICBJREJSZXNvdXJjZUlkZW50aWZpZXIgbV9yZXNvdXJjZUlkZW50aWZp
ZXI7CisgICAgQ2xpZW50T3JpZ2luIG1fb3JpZ2luOworICAgIEluZm9DYWxsYmFjayBtX2NhbGxi
YWNrOworCisgICAgYm9vbCBtX2hhc1BlbmRpbmdBY3Rpdml0eSB7IHRydWUgfTsKKworICAgIElE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBJ
REJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworCisg
ICAgLy8gQWN0aXZlRE9NT2JqZWN0LgorICAgIGJvb2wgdmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0
eSgpIGNvbnN0IGZpbmFsOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBmaW5hbDsKKyAgICB2b2lkIHN0b3AoKSBmaW5hbDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAppbmRleCBiMTNjNzFl
ODkxY2JiMjI5NDc1NGZkNWI3MDMxMmNmNmQyZmVjODAwLi4zNDE0YjgwMDc1YTE1ZjFiN2ZmMDky
ZThkM2Y0YTg2YzBjODMwMzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtMzIsOCArMzIsMTEgQEAKICNpbmNsdWRlICJJREJCaW5k
aW5nVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblByb3h5LmgiCiAjaW5jbHVk
ZSAiSURCRGF0YWJhc2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5k
VmVyc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJJREJPcGVu
REJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRl
ICJKU0lEQkZhY3RvcnkuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAgLTQzLDYgKzQ2LDggQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKK3VzaW5nIElEQkRh
dGFiYXNlc1Jlc3BvbnNlUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExTZXF1ZW5jZTxJ
RExEaWN0aW9uYXJ5PElEQkZhY3Rvcnk6OkRhdGFiYXNlSW5mbz4+PjsKKwogc3RhdGljIGJvb2wg
c2hvdWxkVGhyb3dTZWN1cml0eUV4Y2VwdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0KQogewogICAgIEFTU0VSVChpczxEb2N1bWVudD4oY29udGV4dCkgfHwgY29udGV4dC5pc1dv
cmtlckdsb2JhbFNjb3BlKCkpOwpAQCAtMTMzLDYgKzEzOCwzMiBAQCBFeGNlcHRpb25PcjxzaG9y
dD4gSURCRmFjdG9yeTo6Y21wKEpTR2xvYmFsT2JqZWN0JiBleGVjU3RhdGUsIEpTVmFsdWUgZmly
c3RWYWx1ZQogICAgIHJldHVybiBmaXJzdC0+Y29tcGFyZShzZWNvbmQuZ2V0KCkpOwogfQogCit2
b2lkIElEQkZhY3Rvcnk6OmRhdGFiYXNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIGRlZmVycmVkKQoreworICAgIExPRyhJbmRleGVkREIs
ICJJREJGYWN0b3J5OjpkYXRhYmFzZXMiKTsKKworICAgIElEQkRhdGFiYXNlc1Jlc3BvbnNlUHJv
bWlzZSBwcm9taXNlID0gV1RGTW92ZShkZWZlcnJlZCk7CisKKyAgICBpZiAoc2hvdWxkVGhyb3dT
ZWN1cml0eUV4Y2VwdGlvbihjb250ZXh0KSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChTZWN1
cml0eUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVChjb250ZXh0
LnNlY3VyaXR5T3JpZ2luKCkpOworICAgIAorICAgIENsaWVudE9yaWdpbiBvcmlnaW4geyBjb250
ZXh0LnNlY3VyaXR5T3JpZ2luKCktPmRhdGEoKSwgY29udGV4dC50b3BPcmlnaW4oKS5kYXRhKCkg
fTsKKyAgICAKKyAgICBSZWZQdHI8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+IHJl
cXVlc3QgPSBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQs
IG1fY29ubmVjdGlvblByb3h5LCBvcmlnaW4pOworICAgIAorICAgIHJlcXVlc3QtPnNldENhbGxi
YWNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oY29uc3QgVmVjdG9yPElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24+JiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnJlc29s
dmUoV1RGOjptYXAocmVzdWx0LCBbXShjb25zdCBhdXRvJiBpbmZvKSB7CisgICAgICAgICAgICBy
ZXR1cm4gSURCRmFjdG9yeTo6RGF0YWJhc2VJbmZvIHsgaW5mby5uYW1lLCBpbmZvLnZlcnNpb24g
fTsKKyAgICAgICAgfSkpOworICAgIH0pOworCisgICAgbV9jb25uZWN0aW9uUHJveHktPmdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucygqcmVxdWVzdCk7Cit9CisKIHZvaWQgSURCRmFjdG9y
eTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3Jp
Z2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgRnVuY3Rpb248dm9pZCAo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX2Nvbm5lY3Rpb25Q
cm94eS0+Z2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4s
IFdURk1vdmUoY2FsbGJhY2spKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuaAppbmRleCAxMzQ1NjUxMTlmMjc0YTgyYzUzODE2NDkyMzZmMDU1ZDMyNTlh
YTczLi41ZWRjM2EwMzRmNmQxZjk5NWQxNjE0MWY4ODA5OWFkNjE0MzUzMmVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCkBAIC00NCw2ICs0NCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElEQk9wZW5EQlJlcXVlc3Q7CiBjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBEZWZl
cnJlZFByb21pc2U7CiAKIG5hbWVzcGFjZSBJREJDbGllbnQgewogY2xhc3MgSURCQ29ubmVjdGlv
blByb3h5OwpAQCAtNTQsMTEgKzU1LDE4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPElEQkZh
Y3Rvcnk+IGNyZWF0ZShJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYpOwogICAgIH5JREJG
YWN0b3J5KCk7CiAKKyAgICBzdHJ1Y3QgRGF0YWJhc2VJbmZvIHsKKyAgICAgICAgU3RyaW5nIG5h
bWU7CisgICAgICAgIHVpbnQ2NF90IHZlcnNpb247CisgICAgfTsKKwogICAgIEV4Y2VwdGlvbk9y
PFJlZjxJREJPcGVuREJSZXF1ZXN0Pj4gb3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29u
c3QgU3RyaW5nJiBuYW1lLCBPcHRpb25hbDx1aW50NjRfdD4gdmVyc2lvbik7CiAgICAgRXhjZXB0
aW9uT3I8UmVmPElEQk9wZW5EQlJlcXVlc3Q+PiBkZWxldGVEYXRhYmFzZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAogICAgIEV4Y2VwdGlvbk9yPHNob3J0
PiBjbXAoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSBmaXJzdCwgSlNDOjpKU1Zh
bHVlIHNlY29uZCk7CiAKKyAgICB2b2lkIGRhdGFiYXNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdl
dEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZCAo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsCmluZGV4IGY5OGYzZjgzOWJjNGEz
ODNkZDQzOTkyOTliNzkyNmIwNzY4N2EwYjEuLjk1ZWE2NjEyZGU3ZTU4ZTI1NjAxNTA2OWNjOTNm
NjhkMDIzYTc2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnkuaWRsCkBAIC0yOSw1ICsyOSwxNCBAQAogXSBpbnRlcmZhY2UgSURCRmFjdG9yeSB7
CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9u
XSBJREJPcGVuREJSZXF1ZXN0IG9wZW4oRE9NU3RyaW5nIG5hbWUsIG9wdGlvbmFsIFtFbmZvcmNl
UmFuZ2VdIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIElEQk9wZW5EQlJlcXVlc3QgZGVs
ZXRlRGF0YWJhc2UoRE9NU3RyaW5nIG5hbWUpOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0XSBQcm9taXNlPHNlcXVlbmNlPElEQkRhdGFiYXNlSW5mbz4+IGRhdGFiYXNlcygp
OwogICAgIFtDYWxsV2l0aD1HbG9iYWxPYmplY3QsIE1heVRocm93RXhjZXB0aW9uXSBzaG9ydCBj
bXAoYW55IGZpcnN0LCBhbnkgc2Vjb25kKTsKIH07CisKK1sKKyAgICBDb25kaXRpb25hbD1JTkRF
WEVEX0RBVEFCQVNFLAorICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9uYXJ5IElE
QkRhdGFiYXNlSW5mbyB7CisgICAgRE9NU3RyaW5nIG5hbWU7CisgICAgdW5zaWduZWQgbG9uZyBs
b25nIHZlcnNpb247Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uLmgKaW5kZXggY2RiZWU2OTNlZGI2MzM3MGExYjg4ZDA0NTJjM2YzMjVk
M2NmOWQ0MS4uYTgxYjAxYjJhODMzNjRiZGVlZWM5ZmU5MjI5M2RjYTg5NmQ4NjU1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCkBA
IC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIklE
QkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25S
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSURCRXJyb3IuaCIKICNpbmNsdWRlICJJREJHZXRBbGxSZWNv
cmRzRGF0YS5oIgogI2luY2x1ZGUgIklEQkdldFJlY29yZERhdGEuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHku
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Qcm94eS5jcHAKaW5kZXggOTU2ZGZhZTY0NTE3NDk4ZGUzOGU1NDgzMWI1OTFiNGY2MzU1Yzk1
OS4uYjBjMmZlOThhZmVjNjI1NTgxZDU5Y2EwMjMwN2U4YTY5MWRmMDJjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Qcm94eS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIklEQkN1cnNv
ckluZm8uaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSURCR2V0UmVjb3JkRGF0YS5oIgog
I2luY2x1ZGUgIklEQkl0ZXJhdGVDdXJzb3JEYXRhLmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2VE
YXRhLmgiCkBAIC01MDQsNiArNTA1LDI4IEBAIHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpnZXRB
bGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnCiAgICAg
bV9jb25uZWN0aW9uVG9TZXJ2ZXIuZ2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVPcmlnaW4s
IG9wZW5pbmdPcmlnaW4sIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAordm9pZCBJREJDb25uZWN0
aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICB7CisgICAgICAgIExvY2tlcjxMb2Nr
PiBsb2NrZXIobV9kYXRhYmFzZUluZm9NYXBMb2NrKTsKKyAgICAgICAgQVNTRVJUKCFtX2RhdGFi
YXNlSW5mb0NhbGxiYWNrcy5jb250YWlucyhyZXF1ZXN0LnJlc291cmNlSWRlbnRpZmllcigpKSk7
CisgICAgICAgIG1fZGF0YWJhc2VJbmZvQ2FsbGJhY2tzLnNldChyZXF1ZXN0LnJlc291cmNlSWRl
bnRpZmllcigpLCAmcmVxdWVzdCk7CisgICAgfQorICAgIAorICAgIGNhbGxDb25uZWN0aW9uT25N
YWluVGhyZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRW
ZXJzaW9ucywgcmVxdWVzdC5yZXNvdXJjZUlkZW50aWZpZXIoKSwgcmVxdWVzdC5vcmlnaW4oKSk7
Cit9CisKK3ZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5k
VmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwg
Y29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiBkYXRhYmFzZXMpCit7Cisg
ICAgUmVmUHRyPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0PiByZXF1ZXN0OworICAg
IHsKKyAgICAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlSW5mb01hcExvY2spOwor
ICAgICAgICByZXF1ZXN0ID0gbV9kYXRhYmFzZUluZm9DYWxsYmFja3MudGFrZShyZXF1ZXN0SWRl
bnRpZmllcik7CisgICAgfQorICAgIAorICAgIHJlcXVlc3QtPnBlcmZvcm1DYWxsYmFja09uT3Jp
Z2luVGhyZWFkKCpyZXF1ZXN0LCAmSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmZp
cmVDYWxsYmFjaywgZGF0YWJhc2VzKTsKK30KKwogdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OnJl
Z2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKElEQkRhdGFiYXNlJiBkYXRhYmFzZSkKIHsKICAgICBM
b2NrZXI8TG9jaz4gbG9ja2VyKG1fZGF0YWJhc2VDb25uZWN0aW9uTWFwTG9jayk7CkBAIC01OTYs
NiArNjE5LDEwIEBAIHZvaWQgSURCQ29ubmVjdGlvblByb3h5Ojpmb3JnZXRBY3Rpdml0eUZvckN1
cnJlbnRUaHJlYWQoKQogICAgICAgICBMb2NrZXI8TG9jaz4gbG9jayhtX3RyYW5zYWN0aW9uT3Bl
cmF0aW9uTG9jayk7CiAgICAgICAgIHJlbW92ZUl0ZW1zTWF0Y2hpbmdDdXJyZW50VGhyZWFkKG1f
YWN0aXZlT3BlcmF0aW9ucyk7CiAgICAgfQorICAgIHsKKyAgICAgICAgTG9ja2VyPExvY2s+IGxv
Y2sobV9kYXRhYmFzZUluZm9NYXBMb2NrKTsKKyAgICAgICAgcmVtb3ZlSXRlbXNNYXRjaGluZ0N1
cnJlbnRUaHJlYWQobV9kYXRhYmFzZUluZm9DYWxsYmFja3MpOworICAgIH0KIH0KIAogdm9pZCBJ
REJDb25uZWN0aW9uUHJveHk6OnNldENvbnRleHRTdXNwZW5kZWQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY3VycmVudENvbnRleHQsIGJvb2wgaXNDb250ZXh0U3VzcGVuZGVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Q
cm94eS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Qcm94eS5oCmluZGV4IDQ2NDJmMDkzZTczODI5ZDY2YWZiNjEwOTQ5NDZhZTE5NzAxOWNm
N2UuLjM3YmY3OWExZDJlZGI5NjQzZmJmMzQ0YTA0ZGE1ZWQ5MDUyMDBiYzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblByb3h5LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIgorI2luY2x1ZGUgIklE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCIKICNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJUcmFuc2FjdGlvbk9wZXJhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9D
cm9zc1RocmVhZFF1ZXVlLmg+CkBAIC00Myw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgSURCRGF0YWJhc2U7CiBjbGFzcyBJREJEYXRhYmFzZUlkZW50aWZpZXI7CitjbGFz
cyBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDsKIGNsYXNzIElEQkVycm9yOwogY2xh
c3MgSURCT3BlbkRCUmVxdWVzdDsKIGNsYXNzIElEQlJlc3VsdERhdGE7CkBAIC0xMTUsNyArMTE3
LDkgQEAgcHVibGljOgogICAgIHZvaWQgcmVmKCk7CiAgICAgdm9pZCBkZXJlZigpOwogCi0gICAg
dm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVP
cmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBXVEY6OkZ1bmN0aW9u
PHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYpOworICAgIHZvaWQgZ2V0QWxsRGF0YWJh
c2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1
cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+Jik+JiYpOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBkaWRHZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29u
c3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+Jik7CiAKICAgICB2b2lkIHJlZ2lz
dGVyRGF0YWJhc2VDb25uZWN0aW9uKElEQkRhdGFiYXNlJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
RGF0YWJhc2VDb25uZWN0aW9uKElEQkRhdGFiYXNlJik7CkBAIC0xNjgsNiArMTcyLDkgQEAgcHJp
dmF0ZToKIAogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8VHJhbnNh
Y3Rpb25PcGVyYXRpb24+PiBtX2FjdGl2ZU9wZXJhdGlvbnM7CiAgICAgTG9jayBtX3RyYW5zYWN0
aW9uT3BlcmF0aW9uTG9jazsKKyAgICAKKyAgICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmll
ciwgUmVmUHRyPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Pj4gbV9kYXRhYmFzZUlu
Zm9DYWxsYmFja3M7CisgICAgTG9jayBtX2RhdGFiYXNlSW5mb01hcExvY2s7CiAKICAgICBDcm9z
c1RocmVhZFF1ZXVlPENyb3NzVGhyZWFkVGFzaz4gbV9tYWluVGhyZWFkUXVldWU7CiAgICAgTG9j
ayBtX21haW5UaHJlYWRUYXNrTG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAK
aW5kZXggNjE5NGE5ODFhMDFmZmFmNGE4ODY3MDZlYWRlYWFjYTgxMTNmNDZiMC4uYWViOTJlZTg2
ZDg4NGI0ZTY2ZDE1M2M4ZDM0YzZiOTYzOGY2NzFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25U
b1NlcnZlci5jcHAKQEAgLTUxNyw2ICs1MTcsMjggQEAgdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmUK
ICAgICBjYWxsYmFjayhkYXRhYmFzZU5hbWVzKTsKIH0KIAordm9pZCBJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikK
K3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMiKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisg
ICAgaWYgKG1fc2VydmVyQ29ubmVjdGlvbklzVmFsaWQpCisgICAgICAgIG1fZGVsZWdhdGUtPmdl
dEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luKTsK
KyAgICBlbHNlIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllcl0geworICAgICAgICAgICAgZGlk
R2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCB7IH0pOwor
ICAgICAgICB9KTsKKyAgICB9Cit9CisKK3ZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRH
ZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b24+JiBkYXRhYmFzZXMpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zIik7CisgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKworICAgIG1fcHJveHktPmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRW
ZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgSURCQ2xpZW50CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9u
VG9TZXJ2ZXIuaAppbmRleCA1ZWQyNGZlNTY4ZjFhYzI1OTYwYTk2YzQwMzk1ZmNhNTBiODQ0YWM1
Li4xOTczZjYwMjM1NjU0Nzg5YTNhMDJiZjJmNWM2YmJjNGEyMTUyNmI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJJREJDb25u
ZWN0aW9uUHJveHkuaCIKICNpbmNsdWRlICJJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5o
IgorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCIKICNpbmNsdWRlICJJREJS
ZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgpAQCAtNDUsNiArNDYsNyBAQCBjbGFzcyBJREJSZXN1bHREYXRhOwog
Y2xhc3MgSURCVmFsdWU7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIAorc3RydWN0IENsaWVudE9y
aWdpbjsKIHN0cnVjdCBJREJHZXRBbGxSZWNvcmRzRGF0YTsKIHN0cnVjdCBJREJHZXRSZWNvcmRE
YXRhOwogc3RydWN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhOwpAQCAtMTM2LDE5ICsxMzgsMjIgQEAg
cHVibGljOgogICAgIC8vIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24sIGJ1dCB0aGUgcGFnZSBp
cyBhbHJlYWR5IHRvcm4gZG93bi4KICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQo
dWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogCi0gICAgdm9pZCBnZXRBbGxEYXRh
YmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+Jik+JiYpOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBT
ZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3Bl
bmluZ09yaWdpbiwgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRf
dCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1lcyk7CiAKKyAg
ICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImLCBjb25zdCBDbGllbnRPcmlnaW4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKTsKKwogcHJp
dmF0ZToKICAgICBJREJDb25uZWN0aW9uVG9TZXJ2ZXIoSURCQ29ubmVjdGlvblRvU2VydmVyRGVs
ZWdhdGUmKTsKIAogICAgIHR5cGVkZWYgdm9pZCAoSURCQ29ubmVjdGlvblRvU2VydmVyOjoqUmVz
dWx0RnVuY3Rpb24pKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGNhbGxSZXN1bHRG
dW5jdGlvbldpdGhFcnJvckxhdGVyKFJlc3VsdEZ1bmN0aW9uLCBjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyKTsKLSAgICAKKwogICAgIFdlYWtQdHI8SURCQ29u
bmVjdGlvblRvU2VydmVyRGVsZWdhdGU+IG1fZGVsZWdhdGU7CiAgICAgYm9vbCBtX3NlcnZlckNv
bm5lY3Rpb25Jc1ZhbGlkIHsgdHJ1ZSB9OwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpG
dW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPj4gbV9nZXRBbGxEYXRhYmFzZU5h
bWVzQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZChj
b25zdCBWZWN0b3I8U3RyaW5nPiYpPj4gbV9nZXRBbGxEYXRhYmFzZU5hbWVzQ2FsbGJhY2tzOwog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPElEQkNvbm5lY3Rpb25Qcm94eT4gbV9wcm94eTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCmluZGV4IDBlZjdmYjU0
YTE2MTgwN2VkNzU3MDIzODM0OTQ4YmZhNzcxY2U2MTYuLjMzMGQ0NTVmNTUyNjgxMjVlMzIwZTc4
NDA2M2YyZTIzZjRmMDQ4ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJE
ZWxlZ2F0ZS5oCkBAIC00MSw2ICs0MSw3IEBAIGNsYXNzIElEQlJlcXVlc3REYXRhOwogY2xhc3Mg
SURCVHJhbnNhY3Rpb25JbmZvOwogY2xhc3MgSURCVmFsdWU7CiAKK3N0cnVjdCBDbGllbnRPcmln
aW47CiBzdHJ1Y3QgSURCR2V0QWxsUmVjb3Jkc0RhdGE7CiBzdHJ1Y3QgSURCR2V0UmVjb3JkRGF0
YTsKIHN0cnVjdCBJREJJdGVyYXRlQ3Vyc29yRGF0YTsKQEAgLTg4LDYgKzg5LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVl
c3REYXRhJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiwgY29uc3QgQ2xpZW50T3JpZ2luJikgPSAwOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSURCQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCmluZGV4IDY0
NmY5YjI1OTYxZjM5MjZjMjFlZDAxNDcyZjUwNzcwMGZmYjFlODguLmU5YjYyYmU5YWFiMTlkMDRh
Y2Q4ZmVmN2NkOTg0YmZkZTY3ZTBkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
Y3BwCkBAIC0xODcsNiArMTg3LDEyIEBAIHZvaWQgSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRH
ZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlCiAgICAgICAg
IG1fZGVsZWdhdGUtPmRpZEdldEFsbERhdGFiYXNlTmFtZXMoY2FsbGJhY2tJRCwgZGF0YWJhc2VO
YW1lcyk7CiB9CiAKK3ZvaWQgSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRhYmFz
ZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRl
bnRpZmllciwgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiBkYXRhYmFz
ZXMpCit7CisgICAgaWYgKG1fZGVsZWdhdGUpCisgICAgICAgIG1fZGVsZWdhdGUtPmRpZEdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzKTsK
K30KKwogdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0
aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKICAgICBBU1NF
UlQoIW1fZGF0YWJhc2VDb25uZWN0aW9ucy5jb250YWlucygmY29ubmVjdGlvbikpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IGNlNWM4MmRmZTYwZTFhMWMxZTJlZDM1MmFjMjM0
ZjQwYTg1MTEzOTcuLmYyNWY0ODc2NjhhZmU3YjFhNGZlZDNkYzMzMGZkOWU1YzRmYjI4YTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25u
ZWN0aW9uVG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub0NsaWVudERl
bGVnYXRlLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CkBAIC03NSw2ICs3Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG5vdGlmeU9w
ZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElk
ZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pOwogCiAg
ICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKTsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFi
YXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBW
ZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJE
YXRhYmFzZUNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlv
biYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaAppbmRleCA1
ZWE1YTJlN2QyZDA0ZTk3NmYxYWNjMjkxNWYwYjUzMTIyY2RiMzExLi44ODdkYjczNjM2ZDM2ZWFi
N2ZkOWU1YTQzOWJhMjI5MDdiMDVlYTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRv
Q2xpZW50RGVsZWdhdGUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCiAKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCiAjaW5j
bHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTcxLDYgKzcyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9u
LCB1aW50NjRfdCBuZXdWZXJzaW9uKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0QWxs
RGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZGF0YWJhc2VOYW1lcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5h
bWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgVmVjdG9y
PElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SURCU2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IGRlOTE2YzY2MzU2MDZiYTlkMzVjMzMxZTc4YmExOTIw
NGZhNGMyYTUuLjllZWFhMzI2NzA1ZTMyZTkyY2M1NjBmOTk2MjcxZDFjOTk3OTFlMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuY3BwCkBAIC01MzYsNiArNTM2LDM2IEBAIHZvaWQgSURCU2VydmVyOjpnZXRBbGxEYXRhYmFz
ZU5hbWVzKElEQkNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVuCiAgICAg
Y29ubmVjdGlvbi0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFzZXMp
OwogfQogCit2b2lkIElEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKElE
QkNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGllbnRPcmln
aW4mIG9yaWdpbikKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQo
bV9sb2NrLmlzSGVsZCgpKTsKKworICAgIGF1dG8gZGF0YWJhc2VEaXJlY3RvcnlQYXRoID0gdGhp
cy0+ZGF0YWJhc2VEaXJlY3RvcnlQYXRoSXNvbGF0ZWRDb3B5KCk7CisgICAgU3RyaW5nIG9sZERp
cmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2
ZVRvUm9vdChvcmlnaW4udG9wT3JpZ2luLCBvcmlnaW4uY2xpZW50T3JpZ2luLCBkYXRhYmFzZURp
cmVjdG9yeVBhdGgsICJ2MCIpOworICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVzID0gRmlsZVN5c3Rl
bTo6bGlzdERpcmVjdG9yeShvbGREaXJlY3RvcnksICIqIl9zKTsKKyAgICBWZWN0b3I8SURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvbj4gZGF0YWJhc2VzOworICAgIGZvciAoYXV0byYgZmlsZSA6IGZp
bGVzKSB7CisgICAgICAgIGF1dG8gZGF0YWJhc2VUdXBsZSA9IFNRTGl0ZUlEQkJhY2tpbmdTdG9y
ZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeShmaWxlKSk7CisgICAgICAgIGlmICghZGF0YWJh
c2VUdXBsZS5uYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGRhdGFiYXNlcy5hcHBlbmQoZGF0
YWJhc2VUdXBsZSk7CisgICAgfQorCisgICAgU3RyaW5nIGRpcmVjdG9yeSA9IElEQkRhdGFiYXNl
SWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4udG9wT3Jp
Z2luLCBvcmlnaW4uY2xpZW50T3JpZ2luLCBkYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpOwor
ICAgIGZpbGVzID0gRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShkaXJlY3RvcnksICIqIl9zKTsK
KyAgICBmb3IgKGF1dG8mIGZpbGUgOiBmaWxlcykgeworICAgICAgICBhdXRvIGRhdGFiYXNlVHVw
bGUgPSBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmls
ZShTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoZmls
ZSkpOworICAgICAgICBpZiAoIWRhdGFiYXNlVHVwbGUubmFtZS5pc0VtcHR5KCkpCisgICAgICAg
ICAgICBkYXRhYmFzZXMuYXBwZW5kKGRhdGFiYXNlVHVwbGUpOworICAgIH0KKworICAgIGF1dG8g
Y29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIpOworICAgIGlmICghY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgY29ubmVj
dGlvbi0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVy
LCBkYXRhYmFzZXMpOworfQorCiB2b2lkIElEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFz
ZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lIG1vZGlmaWNhdGlvblRpbWUpCiB7CiAgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKaW5kZXggNDA5ODc0OWY1Nzg3YjA3OWM3YTFlZWE4NDE4
ZTYxMjk4ZTc3ZGNiZC4uZjFkOTlhZmIwZGZmZjM0MzE2YjAwYjZhMzlkZjBmNzlkZmQ3Mzg0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuaApAQCAtOTAsNiArOTAsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJik7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoSURCQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0
YSYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmln
aW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxs
RGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKElEQkNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBDbGllbnRPcmlnaW4mKTsKKwogCiAgICAgdm9p
ZCByZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24m
KTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IGVh
YWQ3ZTkwYmVkZjZlZGRiNGU5ZTFkNWZiNzAwNjhmYTE0ZmUzNzguLjljZmM4Mzk0YmNhZjIxZWEz
NzY4NGQ5OGI5ZmYyNzlkNzIxYjM2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUu
Y3BwCkBAIC05MjcsNiArOTI3LDM3IEBAIFN0cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRh
dGFiYXNlTmFtZUZyb21GaWxlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQogICAgIHJldHVy
biBzcWwuZ2V0Q29sdW1uVGV4dCgwKTsKIH0KIAorSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbiBT
UUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShjb25z
dCBTdHJpbmcmIGRhdGFiYXNlUGF0aCkKK3sKKyAgICBTUUxpdGVEYXRhYmFzZSBkYXRhYmFzZTsK
KyAgICBpZiAoIWRhdGFiYXNlLm9wZW4oZGF0YWJhc2VQYXRoKSkgeworICAgICAgICBMT0dfRVJS
T1IoIkZhaWxlZCB0byBvcGVuIFNRTGl0ZSBkYXRhYmFzZSBhdCBwYXRoICclcycgd2hlbiBnZXR0
aW5nIGRhdGFiYXNlIG5hbWUiLCBkYXRhYmFzZVBhdGgudXRmOCgpLmRhdGEoKSk7CisgICAgICAg
IHJldHVybiB7IH07CisgICAgfQorICAgIGlmICghZGF0YWJhc2UudGFibGVFeGlzdHMoIklEQkRh
dGFiYXNlSW5mbyJfcykpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZmluZCBJREJE
YXRhYmFzZUluZm8gdGFibGUgYW5kIGdldCBkYXRhYmFzZSBuYW1lKCVpKSAtICVzIiwgZGF0YWJh
c2UubGFzdEVycm9yKCksIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgZGF0YWJh
c2UuY2xvc2UoKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBTUUxpdGVTdGF0
ZW1lbnQgbmFtZXNxbChkYXRhYmFzZSwgIlNFTEVDVCB2YWx1ZSBGUk9NIElEQkRhdGFiYXNlSW5m
byBXSEVSRSBrZXkgPSAnRGF0YWJhc2VOYW1lJzsiKTsKKyAgICBhdXRvIGRhdGFiYXNlTmFtZSA9
IG5hbWVzcWwuZ2V0Q29sdW1uVGV4dCgwKTsKKworICAgIFNRTGl0ZVN0YXRlbWVudCB2ZXJzcWwo
ZGF0YWJhc2UsICJTRUxFQ1QgdmFsdWUgRlJPTSBJREJEYXRhYmFzZUluZm8gV0hFUkUga2V5ID0g
J0RhdGFiYXNlVmVyc2lvbic7Il9zKTsKKyAgICBTdHJpbmcgc3RyaW5nVmVyc2lvbiA9IHZlcnNx
bC5nZXRDb2x1bW5UZXh0KDApOworICAgIGJvb2wgb2s7CisgICAgdWludDY0X3QgZGF0YWJhc2VW
ZXJzaW9uID0gc3RyaW5nVmVyc2lvbi50b1VJbnQ2NFN0cmljdCgmb2spOworICAgIGlmICghb2sp
IHsKKyAgICAgICAgTE9HX0VSUk9SKCJEYXRhYmFzZSB2ZXJzaW9uIG9uIGRpc2sgKCclcycpIGRv
ZXMgbm90IGNsZWFubHkgY29udmVydCB0byBhbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB2ZXJz
aW9uIiwgc3RyaW5nVmVyc2lvbi51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgZGF0YWJhc2UuY2xv
c2UoKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBkYXRhYmFzZS5jbG9zZSgp
OworCisgICAgcmV0dXJuIHsgZGF0YWJhc2VOYW1lLCBkYXRhYmFzZVZlcnNpb24gfTsKK30KKwog
U3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlRGlyZWN0b3J5V2l0aFVw
Z3JhZGUoKQogewogICAgIGF1dG8gZGF0YWJhc2VSb290RGlyZWN0b3J5ID0gdGhpcy0+ZGF0YWJh
c2VSb290RGlyZWN0b3J5SXNvbGF0ZWRDb3B5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3Jl
LmgKaW5kZXggYmI1ZWJiNTU5MGU3NDczMDc5Mjc0OWZlZTJjZjFhYWM1YzY5NDM4Zi4uMzhhN2Ux
MDVmZWRjZmM0YmVkYjUzZjhkMzMzODlkODhjNmVkMjBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNr
aW5nU3RvcmUuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIklEQkJhY2tpbmdTdG9yZS5o
IgogI2luY2x1ZGUgIklEQkRhdGFiYXNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklEQkRhdGFi
YXNlSW5mby5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCIKICNpbmNs
dWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTUUxpdGVJREJUcmFuc2Fj
dGlvbi5oIgogI2luY2x1ZGUgIlNRTGl0ZVN0YXRlbWVudEF1dG9SZXNldFNjb3BlLmgiCkBAIC0x
MDIsNiArMTAzLDcgQEAgcHVibGljOgogICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGF0YWJhc2VEaXJlY3Rvcnk7IH07CiAgICAgc3RhdGljIFN0cmluZyBm
dWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyBT
dHJpbmcgZGF0YWJhc2VOYW1lRnJvbUZpbGUoY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIElE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb24gZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKGNv
bnN0IFN0cmluZyYpOwogCiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzljZjc3YjVmMzZiMGQwN2E5ODkzMDM0NTkyMGFmZDQzZjAzNmE0Nwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBEYXJyeWwgUG9ndWUgKGRhcnJ5bEBkcG9ndWUuY2EpCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1
Y3QgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbiB7CisgICAgU3RyaW5nIG5hbWU7CisgICAgdWlu
dDY0X3QgdmVyc2lvbiB7IDAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBJREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uJik7CisKKyAgICBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIGlzb2xhdGVk
Q29weSgpIGNvbnN0OworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBuYW1lIDw8IHZlcnNpb247Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+Citib29sIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb246OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uJiBpbmZvKQoreworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaW5mby5uYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShpbmZvLnZlcnNpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworaW5saW5lIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24gSURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvbjo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sKKyAgICByZXR1
cm4geyBuYW1lLmlzb2xhdGVkQ29weSgpLCB2ZXJzaW9uIH07Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCA1MTgzYjllMzg3NTFiMWM4ODIxYzcyOWNjZmUyNDAxYzk1MmMxYjgzLi5iY2Q2MTkw
ZDBmZGE1NTU3ZGE0YTVmYTUxNDAxN2JiYjUwOThmZjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtODcs
NiArODcsNyBAQCBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuY3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZS5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAKK01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcAogTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkdldEFsbFJl
c3VsdC5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkdldFJlc3VsdC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMTkwMzQy
ZDUzNjFmNGE1NzQyNmQyYWY4NDYwMDU5YzhmZjlkMjdlLi4wNDM3OWFmYWE5ZmNlNTdmZTE3MDY5
NDI1ZWE4MjAxMjU0OTMxMDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTkzLDYgKzI1OTMsOCBAQAogCQk4RjY3NTYxQjEy
ODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOEY2NzU2MTkxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVl
dWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0UxMkUwMzQ3
ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKIAkJOTAwMTc4ODEx
MkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc4N0YxMkUwMzcwNzAwNjQ4
NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OworCQk5MDE2RUE0RDI0NTRE
ODEzMDAyMUQ5RDEgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAxNkVBNEMyNDU0RDgxMzAwMjFEOUQx
IC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MEUzNTFDMjI0N0U0NkU0MDBGQkYyNEYgLyogSURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRTM1MUJEMjQ3RTNENDgwMEZCRjI0RiAvKiBJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkxMDlFOUM4MjIyQ0FCQ0EwMEJCNjI2NCAvKiBJbnNwZWN0
b3JBdWRpdFJlc291cmNlc09iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTEwOUU5QzUyMjJDQUJDODAwQkI2MjY0IC8qIEluc3BlY3RvckF1ZGl0
UmVzb3VyY2VzT2JqZWN0LmggKi87IH07CiAJCTkxMDlFOUM4MjIyQ0FCQ0EwMEJCNjI2NSAvKiBK
U0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTA5RTlDNTIyMkNBQkM4MDBCQjYyNjUgLyogSlNJbnNw
ZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oICovOyB9OwogCQk5MTI3OEQ1RTIxREVEQUQ2MDBC
NTcxODQgLyogUGFnZUF1ZGl0QWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkxMjc4RDVDMjFERURBRDUwMEI1NzE4NCAvKiBQYWdlQXVkaXRBZ2Vu
dC5oICovOyB9OwpAQCAtMTA3MjUsNiArMTA3MjcsOSBAQAogCQk5MDAxNzczRjEyRTAzNDc4MDA2
NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkwMDE3ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNTdGFuZGFyZERl
cml2YXRpdmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc4N0YxMkUw
MzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTAxNkVBNEMyNDU0RDgxMzAwMjFEOUQxIC8qIElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MEUzNTFCQzI0N0UzRDQ4MDBG
QkYyNEYgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MEUzNTFCRDI0N0UzRDQ4MDBG
QkYyNEYgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTEwOUU5QzUyMjJDQUJDODAwQkI2MjY0IC8q
IEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkxMDlFOUM1MjIyQ0FCQzgwMEJCNjI2NSAvKiBKU0luc3BlY3RvckF1
ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
SW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTEwOUU5QzcyMjJDQUJDOTAwQkI2MjY0IC8qIEluc3BlY3RvckF1ZGl0UmVzb3VyY2Vz
T2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rv
ckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5MzQ3LDYgKzE5MzUyLDcgQEAKIAkJCQk1MTEwRkNGQjFFMDM2MkE1MDA2RjhEMEIgLyogSURC
Q3Vyc29yUmVjb3JkLmggKi8sCiAJCQkJNTFCQTRBQzExQkJCNUNCRjAwREYzRDZEIC8qIElEQkRh
dGFiYXNlSW5mby5jcHAgKi8sCiAJCQkJNTFCQTRBQzIxQkJCNUNCRjAwREYzRDZEIC8qIElEQkRh
dGFiYXNlSW5mby5oICovLAorCQkJCTkwMTZFQTRDMjQ1NEQ4MTMwMDIxRDlEMSAvKiBJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uLmggKi8sCiAJCQkJNTE0ODQ1M0MxQkI5RDA3NjAwNkE3MkVEIC8q
IElEQkVycm9yLmNwcCAqLywKIAkJCQk1MTQ4NDUzRDFCQjlEMDc2MDA2QTcyRUQgLyogSURCRXJy
b3IuaCAqLywKIAkJCQk1MTlEQkM2RDFEQzAwRkI5MDAzMjlCRjUgLyogSURCR2V0QWxsUmVjb3Jk
c0RhdGEuY3BwICovLApAQCAtMjI4MjQsNiArMjI4MzAsOCBAQAogCQkJCTUxRDcxOTdFMTgxMTA2
REYwMDE2REM1MSAvKiBJREJEYXRhYmFzZS5pZGwgKi8sCiAJCQkJNTEwMzEwNUUxQkE4RTA5MDAw
MzMyOUMwIC8qIElEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAgKi8sCiAJCQkJNTEwMzEwNUYxQkE4
RTA5MDAwMzMyOUMwIC8qIElEQkRhdGFiYXNlSWRlbnRpZmllci5oICovLAorCQkJCTkwRTM1MUJD
MjQ3RTNENDgwMEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAg
Ki8sCisJCQkJOTBFMzUxQkQyNDdFM0Q0ODAwRkJGMjRGIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZl
cnNpb25SZXF1ZXN0LmggKi8sCiAJCQkJNTE2NDVCNDYxQjlGODg5QjAwRjc4OUNFIC8qIElEQkZh
Y3RvcnkuY3BwICovLAogCQkJCTUxNjQ1QjQ3MUI5Rjg4OUIwMEY3ODlDRSAvKiBJREJGYWN0b3J5
LmggKi8sCiAJCQkJNTFENzE5OEExODExMDZERjAwMTZEQzUxIC8qIElEQkZhY3RvcnkuaWRsICov
LApAQCAtMzA4NzcsNiArMzA4ODUsOCBAQAogCQkJCTUxODVGQzgxMUJCNEM0RTgwMDEyODk4RiAv
KiBJREJEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NUZDODcxQkI0QzRFODAwMTI4
OThGIC8qIElEQkRhdGFiYXNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCQTRB
QzQxQkJCNUNEODAwREYzRDZEIC8qIElEQkRhdGFiYXNlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTAxNkVBNEQyNDU0RDgxMzAwMjFEOUQxIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24u
aCBpbiBIZWFkZXJzICovLAorCQkJCTkwRTM1MUMyMjQ3RTQ2RTQwMEZCRjI0RiAvKiBJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0ODQ1M0Yx
QkI5RDA3RTAwNkE3MkVEIC8qIElEQkVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg1RkM4
RDFCQjRDNEU4MDAxMjg5OEYgLyogSURCRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE5
REJDNkYxREMwMTFBNzAwMzI5QkY1IC8qIElEQkdldEFsbFJlY29yZHNEYXRhLmggaW4gSGVhZGVy
cyAqLywKQEAgLTMyOTgwLDYgKzMyOTkwLDcgQEAKIAkJCQk5MzMwOUVBMzA5OUVCNzhDMDA1NkU1
ODEgLyogU2hhcmVkVGltZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCURGMTlFMkFDMjQ3NzJCQzEw
MDdCREFDQiAvKiBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODM2MkU4QzEyMENFRjlDQjAwMjQ1ODg2IC8qIFNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0MzMUM4OEUyNDdBRDU5NTAwNUJGMzE5
IC8qIFNpbXBsZUNvbG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg5NDRBMzE4MEI1N0Q4MDBG
MTY1RDggLyogU2ltcGxlTGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTFFMDY3RUUx
RTYyNDZFNTAwMTYyRDE2IC8qIFNpbXBsZUxpbmVMYXlvdXRDb3ZlcmFnZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTg1RDZFMDQxQTFBNzkyRTAwRkE0RjEyIC8qIFNpbXBsZUxpbmVMYXlvdXRGbG93
Q29udGVudHMuaCBpbiBIZWFkZXJzICovLApAQCAtMzM1NDIsNyArMzM1NTMsNiBAQAogCQkJCUNE
MzM2RjY0MTdGQTBBNEQwMERERENEMCAvKiBWaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0QzMzZGNjgxN0ZBMEFDNjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRl
QVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q4QjVBNDMxODBEMTQ5QTAwOEI4RTY1IC8q
IFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk3QzMxQzg4RTI0N0FENTk1MDA1QkYzMTkgLyogU2ltcGxlQ29sb3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3MEU4MUQxMUJGMjc2NTYwMDFGREE0OCAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUY0MThDRjExNzk2NzhDMDA5RDExMkMgLyog
Vmlld3BvcnRBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2RjlBODM5MThBMDQ2QUMw
MEFFQjg4QSAvKiBWaWV3cG9ydENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCA3OWIwYjMxOTMxMDk5OWVlOTM4YzQ2
NWI1MTgzNTEwZjU5NTI3NTlkLi5hMDIxYTMzZTUzYTY2M2U2ODE4ZDhhMzAwZTUyYWJmZWY1NDk1
Y2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMTUzLDYgKzE1
Myw3IEBAIGNsYXNzIEVtcHR5RGF0YWJhc2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBEYXRhYmFz
ZVByb3ZpZGVyIHsKICAgICAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2
NF90LCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJbmRleGVkREI6OkNvbm5l
Y3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBvcGVu
REJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJikgZmluYWwgeyB9CiAgICAg
ICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCB1aW50NjRfdCkgZmluYWwgeyB9CisgICAgICAgIHZv
aWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYsIGNvbnN0IENsaWVudE9yaWdpbiYpIGZpbmFsIHsgfQogICAgICAgICB+RW1wdHlJREJD
b25uZWN0aW9uVG9TZXJ2ZXJEZWxldGVnYXRlKCkgeyB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggZjJhZmUxYThiOGFiOGNlYWFhMWNjNzEyZWZh
NGVhYzE3NmVmNjNkNC4uZmVjMzk5MzM4MmY0ODNlN2QxMGFmZGE0MzE1MWNjM2QzY2E5ZmViOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC0xOTgsNiArMTk4LDEx
IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVz
KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0CiAgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29u
bmVjdGlvblRvU2VydmVyOjpEaWRHZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxiYWNrSUQsIGRhdGFi
YXNlTmFtZXMpKTsKIH0KIAordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50
aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNlcykKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhy
ZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5oCmluZGV4IDk5NTA4M2IwNDZhZDBkZDk3ZWUzMTk4NzIwOTUyYmRlY2Jj
ODkzNmUuLjgxYjBiNDljZjFmNTg1M2NjZDdiYTQxM2NmY2NmOTkyMzA1NjExMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBAIC04Myw2ICs4Myw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1
aW50NjRfdCBuZXdWZXJzaW9uKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VO
YW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VO
YW1lcykgZmluYWw7CisgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMo
Y29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JikgZmluYWw7CiAKICAgICB0ZW1wbGF0ZTxj
bGFzcyBNZXNzYWdlVHlwZT4gdm9pZCBoYW5kbGVHZXRSZXN1bHQoY29uc3QgV2ViQ29yZTo6SURC
UmVzdWx0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAppbmRleCA1MDhiZDkyOTEzNDkwN2ExNjliNjUx
YzdiOGFlZTFjOTI3NzJmOGQzLi45OGU3ZmE1MDcxYThjZThkNTI4MGIzYjY1NjRjMDQ3MmMzZjk4
ZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTMyNiw2ICszMjYsMTcgQEAgdm9pZCBXZWJJREJTZXJ2
ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25z
dCBXZWJDb3IKICAgICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1lcyh3ZWJJREJDb25uZWN0
aW9uLT5pZGVudGlmaWVyKCksIG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgY2FsbGJh
Y2tJRCk7CiB9CiAKK3ZvaWQgV2ViSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mIG9yaWdpbikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAg
IGF1dG8qIHdlYklEQkNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAuZ2V0KGNvbm5lY3Rpb24u
dW5pcXVlSUQoKSk7CisgICAgQVNTRVJUKHdlYklEQkNvbm5lY3Rpb24pOworCisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7CisgICAgbV9zZXJ2ZXItPmdldEFsbERhdGFi
YXNlTmFtZXNBbmRWZXJzaW9ucyh3ZWJJREJDb25uZWN0aW9uLT5pZGVudGlmaWVyKCksIHJlcXVl
c3RJZGVudGlmaWVyLCBvcmlnaW4pOworfQorCiB2b2lkIFdlYklEQlNlcnZlcjo6YWRkQ29ubmVj
dGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyIHByb2Nlc3NJZGVudGlmaWVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5oCmluZGV4IGQ0MDNmNmM4NDBjMzAyNTIyNzRkMmQzYTc4MjQ1ZTIyOTg3MzAyNjcu
Ljk1MjRhNjAwMzI5ZmMxNmMxMWZlZjI4MTcyNTI4NTFmZWI4NTc2MGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCkBA
IC04MSw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
SW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiAgICAgdm9pZCBv
cGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJik7CiAg
ICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRl
bnRpZmllciYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpOwogCiAgICAgdm9pZCBhZGRD
b25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJT
ZXJ2ZXIubWVzc2FnZXMuaW4KaW5kZXggMjA5ZjU0MDI2MTUwNTFlNjk3ZTJmZGRkNTc3Mzg5NDEy
YjNkZDZkMy4uMWM2MjBiOWMyNTM4NjMzMDIxNDcyOGI3ZjU0MGM1YzkyMDBhZjg1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVy
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbgpAQCAtNTEsNiArNTEsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJJREJTZXJ2ZXIgewogICAgIE9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoV2ViQ29yZTo6SURCUmVx
dWVzdERhdGEgcmVxdWVzdERhdGEpCiAKICAgICBHZXRBbGxEYXRhYmFzZU5hbWVzKHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpIFdhbnRz
Q29ubmVjdGlvbgorICAgIEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhXZWJDb3JlOjpJ
REJSZXNvdXJjZUlkZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4gb3JpZ2luKSBXYW50c0Nvbm5lY3Rpb24KIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlci5jcHAKaW5kZXggMGU5NzgzNjc3OWQ2NjBkNjA4YjMwZjFiNDE2YTU0MWM4ZTMxY2Jh
Yy4uMTE4N2ZiNTgzZGQxYTI4YTI5NDdjMjljNTE0MmY5NTNlZTA0NThjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC0yMTIsNiArMjEyLDEx
IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luCiAgICAgc2VuZChNZXNzYWdlczo6V2ViSURCU2Vy
dmVyOjpHZXRBbGxEYXRhYmFzZU5hbWVzKHRvcE9yaWdpbiwgb3BlbmluZ09yaWdpbiwgY2FsbGJh
Y2tJRCkpOwogfQogCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luKQoreworICAgIHNl
bmQoTWVzc2FnZXM6OldlYklEQlNlcnZlcjo6R2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pKTsKK30KKwogdm9pZCBXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OmRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdCkK
IHsKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkRGVsZXRlRGF0YWJhc2UocmVzdWx0KTsK
QEAgLTMyNyw2ICszMzIsMTEgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdl
dEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QKICAgICBtX2Nvbm5l
Y3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFz
ZU5hbWVzKTsKIH0KIAordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbj4mIGRhdGFiYXNlcykKK3sKKyAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxs
RGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBkYXRhYmFzZXMpOwor
fQorCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y29ubmVjdGlvblRvU2VydmVyTG9z
dCgpCiB7CiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmNvbm5lY3Rpb25Ub1NlcnZlckxvc3Qo
SURCRXJyb3IgeyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJBbiBpbnRlcm5hbCBlcnJvciB3YXMg
ZW5jb3VudGVyZWQgaW4gdGhlIEluZGV4ZWQgRGF0YWJhc2Ugc2VydmVyIl9zIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAppbmRleCA5NzA1OGQzZWUxOGFj
YjkwNmY0M2NkNWQ1ZmQ5OWI2ZjYyODQ4NzFhLi4yZmVkMjYyYmVlMWMwNTEzZTI2MjA4NGIwOTZj
YTlhZDgwODIyMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuaApAQCAtODEsNiArODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENh
bmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpIGZpbmFsOwogCiAgICAgdm9p
ZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmln
aW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFsOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VO
YW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYsIGNv
bnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGZpbmFsOwogCiAgICAgLy8gTWVzc2FnZXMgcmVj
ZWl2ZWQgZnJvbSBOZXR3b3JrIFByb2Nlc3MKICAgICB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNv
bnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsKQEAgLTEwNiw2ICsxMDcsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJik7CiAgICAgdm9pZCBub3RpZnlP
cGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJz
aW9uKTsKICAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJ
RCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpOworICAgIHZvaWQgZGlkR2V0
QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRl
bnRpZmllciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
PiYpOwogCiAgICAgUmVmPFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVy
PiBtX2Nvbm5lY3Rpb25Ub1NlcnZlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4KaW5kZXggOGQ5N2U0NGUzNWMzYzBm
ZmU1M2QwNmMzYjZkYmIzMjJlN2Q2ZjFjMC4uMjAwNTg2Y2RjZTFhMjczYTRlMTM5ZjQ4YTA1MWVl
MWIxOWY0YzY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlci5tZXNzYWdlcy5pbgpAQCAtNDgsNiArNDgsNyBAQCBtZXNzYWdlcyAtPiBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIgewogICAgIE5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKFdl
YkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qg
b2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikKIAogICAgIERpZEdldEFsbERhdGFiYXNl
TmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgVmVjdG9yPFN0cmluZz4gZGF0YWJhc2VOYW1lcykK
KyAgICBEaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoV2ViQ29yZTo6SURCUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvbj4gZGF0YWJhc2VzKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Q
cm9jZXNzSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nl
c3NJREJTZXJ2ZXIuY3BwCmluZGV4IGE1NDliMDQ5MDVjNmEyMjNjZDY3NmMwOTBjMDRhNGI3MTcy
ZTdmYTAuLjhhOTQ4YjhhNDRkOGYzNTgzYjU2MGVmMTY5ZGE1NTM0OWE4NGQ0ZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBA
IC00OTEsNiArNDkxLDIxIEBAIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRHZXRBbGxEYXRh
YmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvCiAgICAgfSk7CiB9CiAK
K3ZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMo
Y29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwg
Y29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCit7CisgICAgZGlzcGF0Y2hUYXNrKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBtX2Nvbm5lY3Rpb25U
b1NlcnZlci0+aWRlbnRpZmllcigpLCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3JpZ2lu
Lmlzb2xhdGVkQ29weSgpXSB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5s
b2NrKCkpOworICAgICAgICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KGlkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pOworICAgIH0pOworfQorCit2
b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYgZGF0YWJh
c2VzKQoreworICAgIGRpc3BhdGNoVGFza1JlcGx5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBkYXRhYmFzZXMgPSBkYXRhYmFzZXMuaXNv
bGF0ZWRDb3B5KCldIHsKKyAgICAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZEdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzKTsKKyAg
ICB9KTsKK30KKwogdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJh
c2VzTW9kaWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQogewogICAgIGRpc3Bh
dGNoVGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtb2RpZmljYXRp
b25UaW1lXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9j
ZXNzSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURC
U2VydmVyLmgKaW5kZXggNjA0N2RkOWY5NWIxM2RjMTE2ZGI4YmVlZjA4OWI2NGRmNDNjY2ZhNC4u
MjI0MGUyY2EzNGE4NGQ2ZTE4MWU2ZDFjMDQ5MGNjYTExOWNkOTM0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuaApAQCAtOTEsNiArOTEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNl
SWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkluZGV4ZWREQjo6
Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpIGZpbmFsOwogICAgIHZvaWQgb3BlbkRC
UmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpIGZpbmFsOwog
ICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKSBmaW5hbDsKKyAgICB2b2lkIGdl
dEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlk
ZW50aWZpZXImLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKSBmaW5hbDsKIAogICAgIC8v
IElEQkNvbm5lY3Rpb25Ub0NsaWVudAogICAgIFdlYkNvcmU6OklEQkNvbm5lY3Rpb25JZGVudGlm
aWVyIGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKQEAgLTExNyw2ICsxMTgsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpIGZpbmFsOwog
ICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURCUmVz
b3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwg
dWludDY0X3QgbmV3VmVyc2lvbikgZmluYWw7CiAgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5h
bWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5h
bWVzKSBmaW5hbDsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhj
b25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKSBmaW5hbDsKIAogICAgIHZvaWQgY2xvc2VB
bmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lKTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggZjU1ODU4OTllZWFkMGNmMzlkYjExYWMwZjBkMWQ4NjgyZmVh
NzQxOS4uNjI4MjZlODcyYmYxNGFlMDRmMzQ4ZDliMjc3MzEzM2VmYmUxMmNmNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDUtMjcgIERhcnJ5
bCBQb2d1ZSAgPGRhcnJ5bEBkcG9ndWUuY2E+CisKKyAgICAgICAgSW5kZXhlZERCOiBTdXBwb3J0
IElEQkZhY3RvcnkgZGF0YWJhc2VzIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRqdXN0IHRlc3QgZXhwZWN0YXRpb25zIGZvciBgSURCRmFj
dG9yeS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFj
dG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRpb24tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFy
bmVzcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNS0xOSAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV2Vi
WFJdIEltcGxlbWVudCBYUlNlc3Npb246OnJlcXVlc3RBbmltYXRpb25GcmFtZSgpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3Rl
ZC50eHQKaW5kZXggZTJkZmZhYzc0Nzg3YWM1MTg1NTg4NTAyYjZkMGNkNzFlZmVkNzkwZS4uMDY1
MDE5ZDEzMDEwOWM3MjRiNTNiOGE2MGRlYmM5ZjY2NDUzMGM0NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFi
YXNlcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4dApA
QCAtMSw3ICsxLDcgQEAKIAotRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSByZXR1cm5zIGEg
cHJvbWlzZS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAo
SW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRl
ZmluZWQpIgotRkFJTCBFbnVtZXJhdGUgb25lIGRhdGFiYXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5k
YXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywg
J2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVudW1lcmF0ZSBtdWx0
aXBsZSBkYXRhYmFzZXMuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycg
aXMgdW5kZWZpbmVkKSIKLUZBSUwgTWFrZSBzdXJlIGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQg
Zm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2Vz
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVk
REIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMo
KSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
aW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0
YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKK1BBU1MgRW5z
dXJlIHRoYXQgZGF0YWJhc2VzKCkgcmV0dXJucyBhIHByb21pc2UuIAorUEFTUyBFbnVtZXJhdGUg
b25lIGRhdGFiYXNlLiAKK1BBU1MgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4gCitQQVNT
IE1ha2Ugc3VyZSBhbiBlbXB0eSBsaXN0IGlzIHJldHVybmVkIGZvciB0aGUgY2FzZSBvZiBubyBk
YXRhYmFzZXMuIAorRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAg
Y2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIGFzc2VydF9lcXVhbHM6IFRoZSByZXN1bHQg
b2YgZGF0YWJhc2VzKCkgc2hvdWxkIGJlIG9ubHkgdGhvc2UgZGF0YWJhc2VzIHdoaWNoIGhhdmUg
YmVlbiBjcmVhdGVkIGF0IHRoZSB0aW1lIG9mIGNhbGxpbmcsIHJlZ2FyZGxlc3Mgb2YgdmVyc2lv
bmNoYW5nZSB0cmFuc2FjdGlvbnMgY3VycmVudGx5IHJ1bm5pbmcuIGV4cGVjdGVkIDEgYnV0IGdv
dCAyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQt
ZGF0YWJhc2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGUyZGZmYWM3NDc4N2FjNTE4
NTU4ODUwMmI2ZDBjZDcxZWZlZDc5MGUuLjA2NTAxOWQxMzAxMDljNzI0YjUzYjhhNjBkZWJjOWY2
NjQ1MzBjNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvZ2V0LWRhdGFiYXNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAK
IAotRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSByZXR1cm5zIGEgcHJvbWlzZS4gcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5k
YXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBF
bnVtZXJhdGUgb25lIGRhdGFiYXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRh
YmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVudW1lcmF0ZSBtdWx0aXBsZSBkYXRhYmFzZXMu
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRl
eGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIK
LUZBSUwgTWFrZSBzdXJlIGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9m
IG5vIGRhdGFiYXNlcy4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBp
cyB1bmRlZmluZWQpIgotRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sg
dXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFi
YXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5k
ZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKK1BBU1MgRW5zdXJlIHRoYXQgZGF0YWJh
c2VzKCkgcmV0dXJucyBhIHByb21pc2UuIAorUEFTUyBFbnVtZXJhdGUgb25lIGRhdGFiYXNlLiAK
K1BBU1MgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4gCitQQVNTIE1ha2Ugc3VyZSBhbiBl
bXB0eSBsaXN0IGlzIHJldHVybmVkIGZvciB0aGUgY2FzZSBvZiBubyBkYXRhYmFzZXMuIAorRkFJ
TCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhh
dmVuJ3QgY29tbWl0ZWQuIGFzc2VydF9lcXVhbHM6IFRoZSByZXN1bHQgb2YgZGF0YWJhc2VzKCkg
c2hvdWxkIGJlIG9ubHkgdGhvc2UgZGF0YWJhc2VzIHdoaWNoIGhhdmUgYmVlbiBjcmVhdGVkIGF0
IHRoZSB0aW1lIG9mIGNhbGxpbmcsIHJlZ2FyZGxlc3Mgb2YgdmVyc2lvbmNoYW5nZSB0cmFuc2Fj
dGlvbnMgY3VycmVudGx5IHJ1bm5pbmcuIGV4cGVjdGVkIDEgYnV0IGdvdCAyCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmZhY3RvcnktZGF0YWJhc2VzLW9wYXF1ZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9y
eS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggMDY3OWYzOTJlYjVm
YWVkMGJkYzE3ZTgxY2I5YjVhY2IyMjFiNTJkNC4uZGZhNzEwMmIwMGNjM2FkOGMwMWRiZmQ3ZDBi
Yzk1OTMxNzZlZTQyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdp
bi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgSURCRmFjdG9yeS5kYXRhYmFzZXMoKSBp
biBub24tc2FuZGJveGVkIGlmcmFtZSBzaG91bGQgbm90IHJlamVjdCBhc3NlcnRfZXF1YWxzOiBJ
REJGYWN0b3J5LmRhdGFiYXNlcygpIHNob3VsZCBub3QgcmVqZWN0IGV4cGVjdGVkICJubyBleGNl
cHRpb24iIGJ1dCBnb3QgImluZGV4ZWREQi5kYXRhYmFzZXMgdW5kZWZpbmVkIgotRkFJTCBJREJG
YWN0b3J5LmRhdGFiYXNlcygpIGluIHNhbmRib3hlZCBpZnJhbWUgc2hvdWxkIHJlamVjdCBhc3Nl
cnRfZXF1YWxzOiBQcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCB3aXRoIFNlY3VyaXR5RXJyb3Ig
ZXhwZWN0ZWQgIlNlY3VyaXR5RXJyb3IiIGJ1dCBnb3QgImluZGV4ZWREQi5kYXRhYmFzZXMgdW5k
ZWZpbmVkIgorUEFTUyBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGluIG5vbi1zYW5kYm94ZWQgaWZy
YW1lIHNob3VsZCBub3QgcmVqZWN0IAorUEFTUyBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGluIHNh
bmRib3hlZCBpZnJhbWUgc2hvdWxkIHJlamVjdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1vcmln
aW4taXNvbGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnktb3JpZ2luLWlzb2xhdGlvbi1leHBl
Y3RlZC50eHQKaW5kZXggYTMzMDk4ZWI4ZjY1ZmZjMTljYzdkYWZkNzk5NWU4MjAxNDEzZDY1NC4u
Y2I5ODVmYzVmMmU2Zjg0ZThlOTU5NTMwZTM4N2VkYTlhYTE1ZWNmNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFj
dG9yeS1vcmlnaW4taXNvbGF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1p
c29sYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFRlc3QgdG8gbWFr
ZSBzdXJlIHRoYXQgb3JpZ2lucyBoYXZlIHNlcGFyYXRlIGxvY2tpbmcgc2NoZW1lcyBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRh
dGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCitQQVNTIFRl
c3QgdG8gbWFrZSBzdXJlIHRoYXQgb3JpZ2lucyBoYXZlIHNlcGFyYXRlIGxvY2tpbmcgc2NoZW1l
cyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkt
ZXhwZWN0ZWQudHh0CmluZGV4IGQ5ZGUyN2U0N2JkNWViNzg2ZmM4NGZkYzRjNjNiMWVjODY3Mjk1
OTguLmFlOWEyYThhYWJlNTEzZDZiMmJhYjg3YmMzNDRjNzAzMzA1OWU0YWIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
bGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQK
QEAgLTUyLDcgKzUyLDcgQEAgUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWMKIFBBU1MgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCiBQQVNTIElEQkZhY3RvcnkgaW50
ZXJmYWNlOiBvcGVyYXRpb24gb3BlbihET01TdHJpbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgCiBQ
QVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGVsZXRlRGF0YWJhc2UoRE9NU3Ry
aW5nKSAKLUZBSUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5v
bi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJkYXRhYmFzZXMiIG1pc3NpbmcK
K1BBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSAKIFBBU1Mg
SURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjbXAoYW55LCBhbnkpIAogUEFTUyBJREJG
YWN0b3J5IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgW29iamVjdCBJREJGYWN0b3J5XSAK
IFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIFtvYmplY3QgSURCRmFjdG9yeV0gCkBAIC02MCw3ICs2
MCw3IEBAIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJvcGVuKERPTVN0CiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNl
OiBjYWxsaW5nIG9wZW4oRE9NU3RyaW5nLCB1bnNpZ25lZCBsb25nIGxvbmcpIG9uIFtvYmplY3Qg
SURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
IFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlRGF0YWJhc2Uo
RE9NU3RyaW5nKSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0
IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImRhdGFiYXNlcyIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVj
dCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRhdGFiYXNlcygpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFj
dG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbXAoYW55LCBhbnkpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgY21wKGFueSwgYW55
KSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIElEQkRhdGFiYXNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRl
eCA2MTllZDg0NDQ3ZTI2YmMxMGUyNTNhMjU2MjI0YjQ0YmNiNWQ0ZWQyLi5jZjEzZmNjMjg4YTFl
MjFhZWQyMmFlOTgxMWRkZDY1NTBjY2ZhOGIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAg
LTUyLDcgKzUyLDcgQEAgUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWMKIFBBU1MgSURCRmFjdG9yeSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJm
YWNlOiBvcGVyYXRpb24gb3BlbihET01TdHJpbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgCiBQQVNT
IElEQkZhY3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5n
KSAKLUZBSUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1z
dGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJkYXRhYmFzZXMiIG1pc3NpbmcKK1BB
U1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSAKIFBBU1MgSURC
RmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjbXAoYW55LCBhbnkpIAogUEFTUyBJREJGYWN0
b3J5IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgW29iamVjdCBJREJGYWN0b3J5XSAKIFBB
U1MgU3RyaW5naWZpY2F0aW9uIG9mIFtvYmplY3QgSURCRmFjdG9yeV0gCkBAIC02MCw3ICs2MCw3
IEBAIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJvcGVuKERPTVN0CiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBj
YWxsaW5nIG9wZW4oRE9NU3RyaW5nLCB1bnNpZ25lZCBsb25nIGxvbmcpIG9uIFtvYmplY3QgSURC
RmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBB
U1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlRGF0YWJhc2UoRE9N
U3RyaW5nKSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0IElE
QkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImRhdGFiYXNlcyIgbm90IGZvdW5k
IGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJ
REJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRhdGFiYXNlcygpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9y
eV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbXAoYW55LCBhbnkpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgY21wKGFueSwgYW55KSBv
biBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBQQVNTIElEQkRhdGFiYXNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400418</attachid>
            <date>2020-05-27 18:51:15 -0700</date>
            <delta_ts>2020-05-28 22:50:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211043-20200527185114.patch</filename>
            <type>text/plain</type>
            <size>71335</size>
            <attacher name="Darryl Pogue">dvpdiner2</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhNjVmMjZkODI0OTk5
MTQyZDY3MWU4OTc1ZTNjN2I0ODJhNjhhNS4uYjg5OWIzNzlmMDVkN2ZmMGU3MjJmNzI1ZDQwZDI0
MzczNTQ0NWMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTA1LTI3ICBEYXJy
eWwgUG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9y
dCBJREJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBmZXRjaGluZyB0aGUgbGlzdCBvZiBJREIgZGF0YWJhc2UgbmFtZXMgYW5k
IHZlcnNpb25zCisgICAgICAgIGZyb20gdGhlIElEQlNlcnZlciwgYW5kIGV4cG9zZSB0aGUgZnVu
Y3Rpb25hbGl0eSBhcworICAgICAgICBgSURCRmFjdG9yeS5wcm90b3R5cGUuZGF0YWJhc2VzKClg
LgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6SURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3Q6On5JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6c2V0
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3Q6OmZpcmVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6dmlydHVhbEhhc1BlbmRp
bmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdDo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaDogQWRkZWQKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkZhY3Rvcnk6OmRh
dGFiYXNlcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJD
bGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5OjpkaWRH
ZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmZvcmdldEFjdGl2aXR5Rm9yQ3VycmVudFRocmVhZCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5o
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblRvU2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZl
cnNpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlv
blRvQ2xpZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5l
Y3Rpb25Ub0NsaWVudERlbGVnYXRlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZl
cjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21G
aWxlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2lu
Z1N0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24uaDogQWRkZWQKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvbjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisKIDIwMjAtMDUtMjcgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjYwMDIzKTogSVRQ
IHNwYXJzZSBwbGlzdCBkZWNvZGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWJjNTk1ZjdmOWMxNGE0MzBkNWRi
NjE3MjJkNmQ2NWZjMDQxZjRkMC4uNDdmYjA5MGExNDg3YTE2N2NmZmE1YzU2MWNkMDk3ODNjNzQ1
MmY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wNS0yNyAgRGFycnlsIFBvZ3Vl
ICA8ZGFycnlsQGRwb2d1ZS5jYT4KKworICAgICAgICBJbmRleGVkREI6IFN1cHBvcnQgSURCRmFj
dG9yeSBkYXRhYmFzZXMgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTEwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQbHVtYmluZyBmb3IgcmV0dXJuaW5nIGEgbGlzdCBvZiBJREIgZGF0YWJh
c2VzIGFuZCB2ZXJzaW9ucy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluOgorCiAyMDIwLTA1LTI3
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKFBTT04pOiBSZXNpemluZyBXS1dlYlZpZXcgZHVyaW5nIGNyb3NzLXNpdGUgbmF2aWdh
dGlvbiByZXN1bHRzIGluIHRoZSBwYWdlIGxheWluZyBvdXQgYXQgdGhlIHdyb25nIHNpemUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cKaW5kZXggYTczZjUzMDYwMDRmOGM2OTg5ZGZkMTVjOTdkMTYzYmNmMzRj
ZTE3Ny4uNDJiZTNkODMyYzYxMWQ3NWY4NjNlN2ZlNTZmZTg0YTdiNDcyOWU0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNS0yNyAgRGFycnlsIFBvZ3VlICA8
ZGFycnlsQGRwb2d1ZS5jYT4KKworICAgICAgICBJbmRleGVkREI6IFN1cHBvcnQgSURCRmFjdG9y
eSBkYXRhYmFzZXMgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTEwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQbHVtYmluZyBmb3IgcmV0dXJuaW5nIGEgbGlzdCBvZiBJREIgZGF0YWJhc2Vz
IGFuZCB2ZXJzaW9ucy4KKworICAgICAgICAqIFN0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNw
cDoKKyAgICAgICAgKEluUHJvY2Vzc0lEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZl
cnNpb25zKToKKyAgICAgICAgKEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VO
YW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKiBTdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5o
OgorCiAyMDIwLTA1LTI3ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBFbmFibGUgdGhlIHVzZSBvZiBYQ0J1aWxkIGJ5IGRlZmF1bHQgaW4gQXBwbGUgYnVpbGRz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQppbmRleCAzNjE2ODVlODA3YjU0ZTk1NzI4N2QzZmQ1NzNjYzJiOTdj
YzEwYTllLi5hMWYyYWJiZGRlZTMxOTYxNTYyMzc0M2MwNmE0MDg3NGFhNzkzNDU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKQEAgLTQwLDYgKzQwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBREVSUwogCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0aXZlRE9NT2JqZWN0LmgK
ICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuaAorICAgIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgKICAgICBNb2R1
bGVzL2luZGV4ZWRkYi9JREJHZXRBbGxSZXN1bHQuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkdldFJlc3VsdC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKQEAgLTcyLDYgKzcz
LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJDdXJzb3JJbmZvLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCQ3Vyc29yUmVjb3JkLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURC
RGF0YWJhc2VJbmZvLmgKKyAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvbi5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmgK
ICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCR2V0QWxsUmVjb3Jkc0RhdGEuaAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzAwZmRjZDE0NWNjODcw
NDIxNGYxNGE3NGE2MmRjOWYwNzIzY2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3Bw
CkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgRGFycnlsIFBvZ3Vl
IChkYXJyeWxAZHBvZ3VlLmNhKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCQ29ubmVjdGlvblByb3h5LmgiCisjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KTsKKworUmVmPElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0PiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIElEQkNsaWVudDo6SURC
Q29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJveHksIGNvbnN0IENsaWVudE9yaWdpbiYgb3Jp
Z2luKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b25SZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rpb25Qcm94eSwgb3JpZ2luKSk7Cit9CisKK0lEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVx
dWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikK
KyAgICA6IElEQkFjdGl2ZURPTU9iamVjdChjb250ZXh0KQorICAgICwgbV9jb25uZWN0aW9uUHJv
eHkoY29ubmVjdGlvblByb3h5KQorICAgICwgbV9yZXNvdXJjZUlkZW50aWZpZXIoY29ubmVjdGlv
blByb3h5KQorICAgICwgbV9vcmlnaW4ob3JpZ2luKQoreworICAgIEFTU0VSVChjYW5DdXJyZW50
VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSk7CisKKyAgICBzdXNw
ZW5kSWZOZWVkZWQoKTsKK30KKworSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6On5J
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCgpCit7CisgICAgQVNTRVJUKGNhbkN1cnJl
bnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsKK30KKwordm9p
ZCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6c2V0Q2FsbGJhY2soSW5mb0NhbGxi
YWNrJiYgY2FsbGJhY2spCit7CisgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwor
fQorCit2b2lkIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpmaXJlQ2FsbGJhY2so
Y29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiBkYXRhYmFzZXMpCit7Cisg
ICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhy
ZWFkKCkpKTsKKyAgICAKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFj
aykpCisgICAgICAgIGNhbGxiYWNrKGRhdGFiYXNlcyk7Cit9CisKK2NvbnN0IGNoYXIqIElEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QK
K3sKKyAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmln
aW5UaHJlYWQoKSkpOworICAgIHJldHVybiAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3QiOworfQorCitib29sIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojp2aXJ0dWFs
SGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVh
ZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkgfHwgVGhyZWFkOjptYXlCZUdD
VGhyZWFkKCkpOworICAgIHJldHVybiBtX2hhc1BlbmRpbmdBY3Rpdml0eTsKK30KKwordm9pZCBJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6c3RvcCgpCit7CisgICAgQVNTRVJUKGNh
bkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
ZTlmNTFlOTJlMmQ4YzMyMTY1NTc2MmU2ZDFkZDFlNmI3MmVlMzg4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IERhcnJ5bCBQb2d1ZSAoZGFycnlsQGRwb2d1ZS5jYSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkNsaWVudE9yaWdp
bi5oIgorI2luY2x1ZGUgIklEQkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIklEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb24uaCIKKyNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIK
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8
d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworbmFtZXNwYWNlIElEQkNsaWVudCB7CitjbGFz
cyBJREJDb25uZWN0aW9uUHJveHk7Cit9CisKK2NsYXNzIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b25SZXF1ZXN0IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb25SZXF1ZXN0PiwgcHVibGljIElEQkFjdGl2ZURPTU9iamVjdCB7CisgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCk7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworCisKKyAgICB2aXJ0dWFsIH5JREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCgpOworCisgICAgY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiByZXNvdXJjZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlSWRl
bnRpZmllcjsgfQorICAgIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKCkgY29uc3QgeyByZXR1
cm4gbV9vcmlnaW47IH0KKworICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Pjo6cmVmOworICAgIHVzaW5nIFRocmVhZFNhZmVSZWZD
b3VudGVkPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Pjo6ZGVyZWY7CisKKyAgICB1
c2luZyBJbmZvQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uPiYpPjsKKyAgICB2b2lkIHNldENhbGxiYWNrKEluZm9DYWxsYmFjayYm
KTsKKyAgICB2b2lkIGZpcmVDYWxsYmFjayhjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5k
VmVyc2lvbj4mKTsKKworcHJpdmF0ZToKKyAgICBSZWY8SURCQ2xpZW50OjpJREJDb25uZWN0aW9u
UHJveHk+IG1fY29ubmVjdGlvblByb3h5OworICAgIElEQlJlc291cmNlSWRlbnRpZmllciBtX3Jl
c291cmNlSWRlbnRpZmllcjsKKyAgICBDbGllbnRPcmlnaW4gbV9vcmlnaW47CisgICAgSW5mb0Nh
bGxiYWNrIG1fY2FsbGJhY2s7CisKKyAgICBib29sIG1faGFzUGVuZGluZ0FjdGl2aXR5IHsgdHJ1
ZSB9OworCisgICAgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiwgY29uc3QgQ2xpZW50
T3JpZ2luJik7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QuCisgICAgYm9vbCB2aXJ0dWFsSGFz
UGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc3RvcCgpIGZpbmFsOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3Bw
CmluZGV4IGIxM2M3MWU4OTFjYmIyMjk0NzU0ZmQ1YjcwMzEyY2Y2ZDJmZWM4MDAuLmZhMTdlZWMw
YmFhNTY1ODYzN2UyNDExY2I3ZDVmNmVjYjk3NTRjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCkBAIC0zMiw4ICszMiwxMSBAQAogI2lu
Y2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJJREJDb25uZWN0aW9uUHJv
eHkuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2lu
Y2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJl
ZC5oIgorI2luY2x1ZGUgIkpTSURCRmFjdG9yeS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAt
NDMsNiArNDYsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAordXNpbmcgSURCRGF0YWJhc2VzUmVzcG9uc2VQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVk
PElETFNlcXVlbmNlPElETERpY3Rpb25hcnk8SURCRmFjdG9yeTo6RGF0YWJhc2VJbmZvPj4+Owor
CiBzdGF0aWMgYm9vbCBzaG91bGRUaHJvd1NlY3VyaXR5RXhjZXB0aW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKGlzPERvY3VtZW50Pihjb250ZXh0KSB8
fCBjb250ZXh0LmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CkBAIC0xMzMsOCArMTM4LDQ3IEBAIEV4
Y2VwdGlvbk9yPHNob3J0PiBJREJGYWN0b3J5OjpjbXAoSlNHbG9iYWxPYmplY3QmIGV4ZWNTdGF0
ZSwgSlNWYWx1ZSBmaXJzdFZhbHVlCiAgICAgcmV0dXJuIGZpcnN0LT5jb21wYXJlKHNlY29uZC5n
ZXQoKSk7CiB9CiAKK3ZvaWQgSURCRmFjdG9yeTo6ZGF0YWJhc2VzKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgZGVmZXJyZWQpCit7CisgICAg
TE9HKEluZGV4ZWREQiwgIklEQkZhY3Rvcnk6OmRhdGFiYXNlcyIpOworCisgICAgSURCRGF0YWJh
c2VzUmVzcG9uc2VQcm9taXNlIHByb21pc2UgPSBXVEZNb3ZlKGRlZmVycmVkKTsKKworICAgIGlm
IChzaG91bGRUaHJvd1NlY3VyaXR5RXhjZXB0aW9uKGNvbnRleHQpKSB7CisgICAgICAgIHByb21p
c2UucmVqZWN0KFNlY3VyaXR5RXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
QVNTRVJUKGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKSk7CisgICAgCisgICAgQ2xpZW50T3JpZ2lu
IG9yaWdpbiB7IGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKS0+ZGF0YSgpLCBjb250ZXh0LnRvcE9y
aWdpbigpLmRhdGEoKSB9OworICAgIAorICAgIFJlZlB0cjxJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uUmVxdWVzdD4gcmVxdWVzdCA9IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojpj
cmVhdGUoJmNvbnRleHQsIG1fY29ubmVjdGlvblByb3h5LCBvcmlnaW4pOworICAgIAorICAgIHJl
cXVlc3QtPnNldENhbGxiYWNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oY29uc3QgVmVj
dG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiByZXN1bHQpIG11dGFibGUgeworICAgICAg
ICBwcm9taXNlLnJlc29sdmUoV1RGOjptYXAocmVzdWx0LCBbXShjb25zdCBhdXRvJiBpbmZvKSB7
CisgICAgICAgICAgICByZXR1cm4gSURCRmFjdG9yeTo6RGF0YWJhc2VJbmZvIHsgaW5mby5uYW1l
LCBpbmZvLnZlcnNpb24gfTsKKyAgICAgICAgfSkpOworICAgIH0pOworCisgICAgbV9jb25uZWN0
aW9uUHJveHktPmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucygqcmVxdWVzdCk7Cit9CisK
IHZvaWQgSURCRmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdp
biYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwg
RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJiBjYWxsYmFjaykKIHsKKyAg
ICAvKgorICAgIENsaWVudE9yaWdpbiBvcmlnaW4geyBvcGVuaW5nT3JpZ2luLmRhdGEoKSwgbWFp
bkZyYW1lT3JpZ2luLmRhdGEoKSB9OworICAgIAorICAgIFJlZlB0cjxJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdD4gcmVxdWVzdCA9IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1
ZXN0OjpjcmVhdGUobnVsbHB0ciwgbV9jb25uZWN0aW9uUHJveHksIG9yaWdpbik7CisgICAgCisg
ICAgcmVxdWVzdC0+c2V0Q2FsbGJhY2soW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGNv
bnN0IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYgcmVzdWx0KSBtdXRhYmxlIHsK
KyAgICAgICAgY2FsbGJhY2soV1RGOjptYXAocmVzdWx0LCBbXShjb25zdCBhdXRvJiBpbmZvKSB7
CisgICAgICAgICAgICByZXR1cm4gaW5mby5uYW1lOworICAgICAgICB9KSk7CisgICAgfSk7Cisg
ICAgCisgICAgbV9jb25uZWN0aW9uUHJveHktPmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9u
cygqcmVxdWVzdCk7CisgICAgKi8KICAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+Z2V0QWxsRGF0YWJh
c2VOYW1lcyhtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIFdURk1vdmUoY2FsbGJhY2sp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5o
CmluZGV4IDEzNDU2NTExOWYyNzRhODJjNTM4MTY0OTIzNmYwNTVkMzI1OWFhNzMuLjVlZGMzYTAz
NGY2ZDFmOTk1ZDE2MTQxZjg4MDk5YWQ2MTQzNTMyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgSURCT3BlbkRCUmVxdWVzdDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsK
IAogbmFtZXNwYWNlIElEQkNsaWVudCB7CiBjbGFzcyBJREJDb25uZWN0aW9uUHJveHk7CkBAIC01
NCwxMSArNTUsMTggQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8SURCRmFjdG9yeT4gY3JlYXRl
KElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5Jik7CiAgICAgfklEQkZhY3RvcnkoKTsKIAor
ICAgIHN0cnVjdCBEYXRhYmFzZUluZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAg
dWludDY0X3QgdmVyc2lvbjsKKyAgICB9OworCiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQk9wZW5E
QlJlcXVlc3Q+PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5h
bWUsIE9wdGlvbmFsPHVpbnQ2NF90PiB2ZXJzaW9uKTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURC
T3BlbkRCUmVxdWVzdD4+IGRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBj
b25zdCBTdHJpbmcmIG5hbWUpOwogCiAgICAgRXhjZXB0aW9uT3I8c2hvcnQ+IGNtcChKU0M6OkpT
R2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlIGZpcnN0LCBKU0M6OkpTVmFsdWUgc2Vjb25kKTsK
IAorICAgIHZvaWQgZGF0YWJhc2VzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmKTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxsRGF0YWJhc2VO
YW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0
eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgV1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8
U3RyaW5nPiYpPiYmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeS5pZGwKaW5kZXggZjk4ZjNmODM5YmM0YTM4M2RkNDM5OTI5OWI3
OTI2YjA3Njg3YTBiMS4uOTVlYTY2MTJkZTdlNThlMjU2MDE1MDY5Y2M5M2Y2OGQwMjNhNzZmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwK
QEAgLTI5LDUgKzI5LDE0IEBACiBdIGludGVyZmFjZSBJREJGYWN0b3J5IHsKICAgICBbQ2FsbFdp
dGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIElEQk9wZW5EQlJl
cXVlc3Qgb3BlbihET01TdHJpbmcgbmFtZSwgb3B0aW9uYWwgW0VuZm9yY2VSYW5nZV0gdW5zaWdu
ZWQgbG9uZyBsb25nIHZlcnNpb24pOwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCT3BlbkRCUmVxdWVzdCBkZWxldGVEYXRhYmFzZShE
T01TdHJpbmcgbmFtZSk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFBy
b21pc2U8c2VxdWVuY2U8SURCRGF0YWJhc2VJbmZvPj4gZGF0YWJhc2VzKCk7CiAgICAgW0NhbGxX
aXRoPUdsb2JhbE9iamVjdCwgTWF5VGhyb3dFeGNlcHRpb25dIHNob3J0IGNtcChhbnkgZmlyc3Qs
IGFueSBzZWNvbmQpOwogfTsKKworWworICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0Us
CisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgSURCRGF0YWJhc2VJbmZv
IHsKKyAgICBET01TdHJpbmcgbmFtZTsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbjsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uaAppbmRleCBjZGJlZTY5M2VkYjYzMzcwYTFiODhkMDQ1MmMzZjMyNWQzY2Y5ZDQxLi5hODFi
MDFiMmE4MzM2NGJkZWVlYzlmZTkyMjkzZGNhODk2ZDg2NTVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSURCQWN0aXZlRE9NT2Jq
ZWN0LmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCIKICNp
bmNsdWRlICJJREJFcnJvci5oIgogI2luY2x1ZGUgIklEQkdldEFsbFJlY29yZHNEYXRhLmgiCiAj
aW5jbHVkZSAiSURCR2V0UmVjb3JkRGF0YS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcApp
bmRleCA5NTZkZmFlNjQ1MTc0OThkZTM4ZTU0ODMxYjU5MWI0ZjYzNTVjOTU5Li5iMGMyZmU5OGFm
ZWM2MjU1ODFkNTljYTAyMzA3ZThhNjkxZGYwMmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiSURCQ3Vyc29ySW5mby5oIgogI2lu
Y2x1ZGUgIklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJHZXRSZWNvcmREYXRhLmgiCiAjaW5jbHVkZSAiSURC
SXRlcmF0ZUN1cnNvckRhdGEuaCIKICNpbmNsdWRlICJJREJLZXlSYW5nZURhdGEuaCIKQEAgLTUw
NCw2ICs1MDUsMjggQEAgdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFt
ZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWcKICAgICBtX2Nvbm5lY3Rpb25U
b1NlcnZlci5nZXRBbGxEYXRhYmFzZU5hbWVzKG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdp
biwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0
QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1
ZXN0JiByZXF1ZXN0KQoreworICAgIHsKKyAgICAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX2Rh
dGFiYXNlSW5mb01hcExvY2spOworICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2VJbmZvQ2FsbGJh
Y2tzLmNvbnRhaW5zKHJlcXVlc3QucmVzb3VyY2VJZGVudGlmaWVyKCkpKTsKKyAgICAgICAgbV9k
YXRhYmFzZUluZm9DYWxsYmFja3Muc2V0KHJlcXVlc3QucmVzb3VyY2VJZGVudGlmaWVyKCksICZy
ZXF1ZXN0KTsKKyAgICB9CisgICAgCisgICAgY2FsbENvbm5lY3Rpb25Pbk1haW5UaHJlYWQoJklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zLCByZXF1
ZXN0LnJlc291cmNlSWRlbnRpZmllcigpLCByZXF1ZXN0Lm9yaWdpbigpKTsKK30KKwordm9pZCBJ
REJDb25uZWN0aW9uUHJveHk6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNlcykKK3sKKyAgICBSZWZQdHI8SURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+IHJlcXVlc3Q7CisgICAgeworICAgICAgICBM
b2NrZXI8TG9jaz4gbG9ja2VyKG1fZGF0YWJhc2VJbmZvTWFwTG9jayk7CisgICAgICAgIHJlcXVl
c3QgPSBtX2RhdGFiYXNlSW5mb0NhbGxiYWNrcy50YWtlKHJlcXVlc3RJZGVudGlmaWVyKTsKKyAg
ICB9CisgICAgCisgICAgcmVxdWVzdC0+cGVyZm9ybUNhbGxiYWNrT25PcmlnaW5UaHJlYWQoKnJl
cXVlc3QsICZJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6ZmlyZUNhbGxiYWNrLCBk
YXRhYmFzZXMpOworfQorCiB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6cmVnaXN0ZXJEYXRhYmFz
ZUNvbm5lY3Rpb24oSURCRGF0YWJhc2UmIGRhdGFiYXNlKQogewogICAgIExvY2tlcjxMb2NrPiBs
b2NrZXIobV9kYXRhYmFzZUNvbm5lY3Rpb25NYXBMb2NrKTsKQEAgLTU5Niw2ICs2MTksMTAgQEAg
dm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmZvcmdldEFjdGl2aXR5Rm9yQ3VycmVudFRocmVhZCgp
CiAgICAgICAgIExvY2tlcjxMb2NrPiBsb2NrKG1fdHJhbnNhY3Rpb25PcGVyYXRpb25Mb2NrKTsK
ICAgICAgICAgcmVtb3ZlSXRlbXNNYXRjaGluZ0N1cnJlbnRUaHJlYWQobV9hY3RpdmVPcGVyYXRp
b25zKTsKICAgICB9CisgICAgeworICAgICAgICBMb2NrZXI8TG9jaz4gbG9jayhtX2RhdGFiYXNl
SW5mb01hcExvY2spOworICAgICAgICByZW1vdmVJdGVtc01hdGNoaW5nQ3VycmVudFRocmVhZCht
X2RhdGFiYXNlSW5mb0NhbGxiYWNrcyk7CisgICAgfQogfQogCiB2b2lkIElEQkNvbm5lY3Rpb25Q
cm94eTo6c2V0Q29udGV4dFN1c3BlbmRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjdXJyZW50
Q29udGV4dCwgYm9vbCBpc0NvbnRleHRTdXNwZW5kZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgK
aW5kZXggNDY0MmYwOTNlNzM4MjlkNjZhZmI2MTA5NDk0NmFlMTk3MDE5Y2Y3ZS4uMzdiZjc5YTFk
MmVkYjk2NDNmYmYzNDRhMDRkYTVlZDkwNTIwMGJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHku
aApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5j
bHVkZSAiSURCQ29ubmVjdGlvblRvU2VydmVyLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvbi5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIlRyYW5zYWN0aW9uT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkUXVl
dWUuaD4KQEAgLTQzLDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJE
YXRhYmFzZTsKIGNsYXNzIElEQkRhdGFiYXNlSWRlbnRpZmllcjsKK2NsYXNzIElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb25SZXF1ZXN0OwogY2xhc3MgSURCRXJyb3I7CiBjbGFzcyBJREJPcGVuREJS
ZXF1ZXN0OwogY2xhc3MgSURCUmVzdWx0RGF0YTsKQEAgLTExNSw3ICsxMTcsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZWYoKTsKICAgICB2b2lkIGRlcmVmKCk7CiAKLSAgICB2b2lkIGdldEFsbERh
dGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3Qg
VmVjdG9yPFN0cmluZz4mKT4mJik7CisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBv
cGVuaW5nT3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4m
Jik7CisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3QmKTsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNB
bmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBWZWN0b3I8SURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJEYXRhYmFzZUNv
bm5lY3Rpb24oSURCRGF0YWJhc2UmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRhYmFzZUNvbm5l
Y3Rpb24oSURCRGF0YWJhc2UmKTsKQEAgLTE2OCw2ICsxNzIsOSBAQCBwcml2YXRlOgogCiAgICAg
SGFzaE1hcDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxUcmFuc2FjdGlvbk9wZXJhdGlv
bj4+IG1fYWN0aXZlT3BlcmF0aW9uczsKICAgICBMb2NrIG1fdHJhbnNhY3Rpb25PcGVyYXRpb25M
b2NrOworICAgIAorICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8SURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+PiBtX2RhdGFiYXNlSW5mb0NhbGxiYWNrczsK
KyAgICBMb2NrIG1fZGF0YWJhc2VJbmZvTWFwTG9jazsKIAogICAgIENyb3NzVGhyZWFkUXVldWU8
Q3Jvc3NUaHJlYWRUYXNrPiBtX21haW5UaHJlYWRRdWV1ZTsKICAgICBMb2NrIG1fbWFpblRocmVh
ZFRhc2tMb2NrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCA2MTk0YTk4
MWEwMWZmYWY0YTg4NjcwNmVhZGVhYWNhODExM2Y0NmIwLi5hZWI5MmVlODZkODg0YjRlNjZkMTUz
YzhkMzRjNmI5NjM4ZjY3MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApA
QCAtNTE3LDYgKzUxNywyOCBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxs
RGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZQogICAgIGNhbGxiYWNr
KGRhdGFiYXNlTmFtZXMpOwogfQogCit2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxs
RGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVx
dWVzdElkZW50aWZpZXIsIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQoreworICAgIExPRyhJ
bmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRW
ZXJzaW9ucyIpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICBpZiAobV9zZXJ2
ZXJDb25uZWN0aW9uSXNWYWxpZCkKKyAgICAgICAgbV9kZWxlZ2F0ZS0+Z2V0QWxsRGF0YWJhc2VO
YW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pOworICAgIGVsc2Ugewor
ICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIHJlcXVlc3RJZGVudGlmaWVyXSB7CisgICAgICAgICAgICBkaWRHZXRBbGxEYXRhYmFz
ZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIHsgfSk7CisgICAgICAgIH0pOwor
ICAgIH0KK30KKwordm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNl
TmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVu
dGlmaWVyLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNl
cykKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRB
bGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMiKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworCisgICAgbV9wcm94eS0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVl
c3RJZGVudGlmaWVyLCBkYXRhYmFzZXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmlu
ZGV4IDVlZDI0ZmU1NjhmMWFjMjU5NjBhOTZjNDAzOTVmY2E1MGI4NDRhYzUuLjE5NzNmNjAyMzU2
NTQ3ODlhM2EwMmJmMmY1YzZiYmM0YTIxNTI2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94eS5o
IgogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgiCisjaW5jbHVkZSAi
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRp
Zmllci5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CkBAIC00NSw2ICs0Niw3IEBAIGNsYXNzIElEQlJlc3VsdERhdGE7CiBjbGFzcyBJREJWYWx1
ZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogCitzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0
IElEQkdldEFsbFJlY29yZHNEYXRhOwogc3RydWN0IElEQkdldFJlY29yZERhdGE7CiBzdHJ1Y3Qg
SURCSXRlcmF0ZUN1cnNvckRhdGE7CkBAIC0xMzYsMTkgKzEzOCwyMiBAQCBwdWJsaWM6CiAgICAg
Ly8gdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiwgYnV0IHRoZSBwYWdlIGlzIGFscmVhZHkgdG9y
biBkb3duLgogICAgIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRh
YmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllcik7CiAKLSAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29u
c3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4m
IG9wZW5pbmdPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4m
KT4mJik7CisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKTsKIAorICAgIHZvaWQgZ2V0QWxs
RGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNv
bnN0IENsaWVudE9yaWdpbiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkR2V0QWxsRGF0
YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0
IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpOworCiBwcml2YXRlOgogICAgIElE
QkNvbm5lY3Rpb25Ub1NlcnZlcihJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZSYpOwogCiAg
ICAgdHlwZWRlZiB2b2lkIChJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OipSZXN1bHRGdW5jdGlvbiko
Y29uc3QgSURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgY2FsbFJlc3VsdEZ1bmN0aW9uV2l0aEVy
cm9yTGF0ZXIoUmVzdWx0RnVuY3Rpb24sIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVx
dWVzdElkZW50aWZpZXIpOwotICAgIAorCiAgICAgV2Vha1B0cjxJREJDb25uZWN0aW9uVG9TZXJ2
ZXJEZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKICAgICBib29sIG1fc2VydmVyQ29ubmVjdGlvbklzVmFs
aWQgeyB0cnVlIH07CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQg
KGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+PiBtX2dldEFsbERhdGFiYXNlTmFtZXNDYWxsYmFja3M7
CisgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxT
dHJpbmc+Jik+PiBtX2dldEFsbERhdGFiYXNlTmFtZXNDYWxsYmFja3M7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8SURCQ29ubmVjdGlvblByb3h5PiBtX3Byb3h5OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2
ZXJEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKaW5kZXggMGVmN2ZiNTRhMTYxODA3ZWQ3NTcw
MjM4MzQ5NDhiZmE3NzFjZTYxNi4uMzMwZDQ1NWY1NTI2ODEyNWUzMjBlNzg0MDYzZjJlMjNmNGYw
NDhmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKQEAg
LTQxLDYgKzQxLDcgQEAgY2xhc3MgSURCUmVxdWVzdERhdGE7CiBjbGFzcyBJREJUcmFuc2FjdGlv
bkluZm87CiBjbGFzcyBJREJWYWx1ZTsKIAorc3RydWN0IENsaWVudE9yaWdpbjsKIHN0cnVjdCBJ
REJHZXRBbGxSZWNvcmRzRGF0YTsKIHN0cnVjdCBJREJHZXRSZWNvcmREYXRhOwogc3RydWN0IElE
Qkl0ZXJhdGVDdXJzb3JEYXRhOwpAQCAtODgsNiArODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmKSA9IDA7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVu
aW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdl
dEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
LCBjb25zdCBDbGllbnRPcmlnaW4mKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGll
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJDb25uZWN0aW9uVG9DbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggNjQ2ZjliMjU5NjFmMzky
NmMyMWVkMDE0NzJmNTA3NzAwZmZiMWU4OC4uZTliNjJiZTlhYWIxOWQwNGFjZDhmZWY3Y2Q5ODRi
ZmRlNjdlMGRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTE4Nyw2
ICsxODcsMTIgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNl
TmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmUKICAgICAgICAgbV9kZWxlZ2F0ZS0+
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFzZU5hbWVzKTsKIH0KIAor
dm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25z
dCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNlcykKK3sKKyAgICBp
ZiAobV9kZWxlZ2F0ZSkKKyAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1l
c0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBkYXRhYmFzZXMpOworfQorCiB2b2lkIElE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6cmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5pcXVlSURC
RGF0YWJhc2VDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAgIEFTU0VSVCghbV9kYXRhYmFz
ZUNvbm5lY3Rpb25zLmNvbnRhaW5zKCZjb25uZWN0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRv
Q2xpZW50LmgKaW5kZXggY2U1YzgyZGZlNjBlMWExYzFlMmVkMzUyYWMyMzRmNDBhODUxMTM5Ny4u
ZjI1ZjQ4NzY2OGFmZTdiMWE0ZmVkM2RjMzMwZmQ5ZTVjNGZiMjhhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25u
ZWN0aW9uVG9DbGllbnQuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQogCiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaCIKKyNp
bmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
QEAgLTc1LDYgKzc2LDcgQEAgcHVibGljOgogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJs
b2NrZWQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWlu
dDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbik7CiAKICAgICB2b2lkIGRpZEdl
dEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGRhdGFiYXNlTmFtZXMpOworICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZl
cnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IFZlY3RvcjxJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uPiYpOwogCiAgICAgdm9pZCByZWdpc3RlckRhdGFiYXNlQ29ubmVj
dGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKICAgICB2b2lkIHVucmVnaXN0ZXJE
YXRhYmFzZUNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlv
blRvQ2xpZW50RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCmluZGV4IDVlYTVhMmU3ZDJkMDRl
OTc2ZjFhY2MyOTE1ZjBiNTMxMjJjZGIzMTEuLjg4N2RiNzM2MzZkMzZlYWI3ZmQ5ZTVhNDM5YmEy
MjkwN2IwNWVhMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0
ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAor
I2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCIKICNpbmNsdWRlICJJREJSZXNv
dXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNzEsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5l
d1ZlcnNpb24pID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVz
KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVz
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9u
cyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvbj4mKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJREJTZXJ2ZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5jcHAKaW5kZXggZGU5MTZjNjYzNTYwNmJhOWQzNWMzMzFlNzhiYTE5MjA0ZmE0YzJhNS4uOWVl
YWEzMjY3MDVlMzJlOTJjYzU2MGY5OTYyNzFkMWM5OTc5MWUzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTUz
Niw2ICs1MzYsMzYgQEAgdm9pZCBJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMoSURCQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW4KICAgICBjb25uZWN0aW9uLT5k
aWRHZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxiYWNrSUQsIGRhdGFiYXNlcyk7CiB9CiAKK3ZvaWQg
SURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQor
eworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChtX2xvY2suaXNIZWxk
KCkpOworCisgICAgYXV0byBkYXRhYmFzZURpcmVjdG9yeVBhdGggPSB0aGlzLT5kYXRhYmFzZURp
cmVjdG9yeVBhdGhJc29sYXRlZENvcHkoKTsKKyAgICBTdHJpbmcgb2xkRGlyZWN0b3J5ID0gSURC
RGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdp
bi50b3BPcmlnaW4sIG9yaWdpbi5jbGllbnRPcmlnaW4sIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwg
InYwIik7CisgICAgVmVjdG9yPFN0cmluZz4gZmlsZXMgPSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0
b3J5KG9sZERpcmVjdG9yeSwgIioiX3MpOworICAgIFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uPiBkYXRhYmFzZXM7CisgICAgZm9yIChhdXRvJiBmaWxlIDogZmlsZXMpIHsKKyAgICAg
ICAgYXV0byBkYXRhYmFzZVR1cGxlID0gU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5h
bWVBbmRWZXJzaW9uRnJvbUZpbGUoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQ
YXRoRm9yRGlyZWN0b3J5KGZpbGUpKTsKKyAgICAgICAgaWYgKCFkYXRhYmFzZVR1cGxlLm5hbWUu
aXNFbXB0eSgpKQorICAgICAgICAgICAgZGF0YWJhc2VzLmFwcGVuZChkYXRhYmFzZVR1cGxlKTsK
KyAgICB9CisKKyAgICBTdHJpbmcgZGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpk
YXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbi50b3BPcmlnaW4sIG9yaWdpbi5j
bGllbnRPcmlnaW4sIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7CisgICAgZmlsZXMgPSBG
aWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGRpcmVjdG9yeSwgIioiX3MpOworICAgIGZvciAoYXV0
byYgZmlsZSA6IGZpbGVzKSB7CisgICAgICAgIGF1dG8gZGF0YWJhc2VUdXBsZSA9IFNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKFNRTGl0ZUlEQkJh
Y2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeShmaWxlKSk7CisgICAgICAg
IGlmICghZGF0YWJhc2VUdXBsZS5uYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGRhdGFiYXNl
cy5hcHBlbmQoZGF0YWJhc2VUdXBsZSk7CisgICAgfQorCisgICAgYXV0byBjb25uZWN0aW9uID0g
bV9jb25uZWN0aW9uTWFwLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgaWYg
KCFjb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25uZWN0aW9uLT5kaWRHZXRB
bGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIGRhdGFiYXNlcyk7
Cit9CisKIHZvaWQgSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2lu
Y2UoV2FsbFRpbWUgbW9kaWZpY2F0aW9uVGltZSkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuaAppbmRleCA0MDk4NzQ5ZjU3ODdiMDc5YzdhMWVlYTg0MThlNjEyOThlNzdkY2Jk
Li5mMWQ5OWFmYjBkZmZmMzQzMTZiMDBiNmEzOWRmMGY3OWRmZDczODQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCkBAIC05
MCw2ICs5MCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG9wZW5EQlJlcXVl
c3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhJREJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVP
cmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3Qg
Y2FsbGJhY2tJRCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworCiAKICAgICB2b2lkIHJlZ2lzdGVyRGF0
YWJhc2VDb25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOwogICAgIHZvaWQg
dW5yZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24m
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9T
UUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggZWFhZDdlOTBiZWRmNmVk
ZGI0ZTllMWQ1ZmI3MDA2OGZhMTRmZTM3OC4uOWNmYzgzOTRiY2FmMjFlYTM3Njg0ZDk4YjlmZjI3
OWQ3MjFiMzYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTkyNyw2
ICs5MjcsMzcgQEAgU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lRnJv
bUZpbGUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCiAgICAgcmV0dXJuIHNxbC5nZXRDb2x1
bW5UZXh0KDApOwogfQogCitJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIFNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VQYXRoKQoreworICAgIFNRTGl0ZURhdGFiYXNlIGRhdGFiYXNlOworICAgIGlmICghZGF0
YWJhc2Uub3BlbihkYXRhYmFzZVBhdGgpKSB7CisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRv
IG9wZW4gU1FMaXRlIGRhdGFiYXNlIGF0IHBhdGggJyVzJyB3aGVuIGdldHRpbmcgZGF0YWJhc2Ug
bmFtZSIsIGRhdGFiYXNlUGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIHsgfTsK
KyAgICB9CisgICAgaWYgKCFkYXRhYmFzZS50YWJsZUV4aXN0cygiSURCRGF0YWJhc2VJbmZvIl9z
KSkgeworICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBmaW5kIElEQkRhdGFiYXNlSW5mbyB0
YWJsZSBhbmQgZ2V0IGRhdGFiYXNlIG5hbWUoJWkpIC0gJXMiLCBkYXRhYmFzZS5sYXN0RXJyb3Io
KSwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBkYXRhYmFzZS5jbG9zZSgpOwor
ICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIFNRTGl0ZVN0YXRlbWVudCBuYW1lc3Fs
KGRhdGFiYXNlLCAiU0VMRUNUIHZhbHVlIEZST00gSURCRGF0YWJhc2VJbmZvIFdIRVJFIGtleSA9
ICdEYXRhYmFzZU5hbWUnOyIpOworICAgIGF1dG8gZGF0YWJhc2VOYW1lID0gbmFtZXNxbC5nZXRD
b2x1bW5UZXh0KDApOworCisgICAgU1FMaXRlU3RhdGVtZW50IHZlcnNxbChkYXRhYmFzZSwgIlNF
TEVDVCB2YWx1ZSBGUk9NIElEQkRhdGFiYXNlSW5mbyBXSEVSRSBrZXkgPSAnRGF0YWJhc2VWZXJz
aW9uJzsiX3MpOworICAgIFN0cmluZyBzdHJpbmdWZXJzaW9uID0gdmVyc3FsLmdldENvbHVtblRl
eHQoMCk7CisgICAgYm9vbCBvazsKKyAgICB1aW50NjRfdCBkYXRhYmFzZVZlcnNpb24gPSBzdHJp
bmdWZXJzaW9uLnRvVUludDY0U3RyaWN0KCZvayk7CisgICAgaWYgKCFvaykgeworICAgICAgICBM
T0dfRVJST1IoIkRhdGFiYXNlIHZlcnNpb24gb24gZGlzayAoJyVzJykgZG9lcyBub3QgY2xlYW5s
eSBjb252ZXJ0IHRvIGFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIHZlcnNpb24iLCBzdHJpbmdW
ZXJzaW9uLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBkYXRhYmFzZS5jbG9zZSgpOworICAgICAg
ICByZXR1cm4geyB9OworICAgIH0KKworICAgIGRhdGFiYXNlLmNsb3NlKCk7CisKKyAgICByZXR1
cm4geyBkYXRhYmFzZU5hbWUsIGRhdGFiYXNlVmVyc2lvbiB9OworfQorCiBTdHJpbmcgU1FMaXRl
SURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VEaXJlY3RvcnlXaXRoVXBncmFkZSgpCiB7CiAg
ICAgYXV0byBkYXRhYmFzZVJvb3REaXJlY3RvcnkgPSB0aGlzLT5kYXRhYmFzZVJvb3REaXJlY3Rv
cnlJc29sYXRlZENvcHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAppbmRleCBiYjVl
YmI1NTkwZTc0NzMwNzkyNzQ5ZmVlMmNmMWFhYzVjNjk0MzhmLi4zOGE3ZTEwNWZlZGNmYzRiZWRi
NTNmOGQzMzM4OWQ4OGM2ZWQyMGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSURCQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAi
SURCRGF0YWJhc2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VJbmZvLmgiCisj
aW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgogI2luY2x1ZGUgIklEQlJlc291
cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNRTGl0ZUlEQlRyYW5zYWN0aW9uLmgiCiAjaW5j
bHVkZSAiU1FMaXRlU3RhdGVtZW50QXV0b1Jlc2V0U2NvcGUuaCIKQEAgLTEwMiw2ICsxMDMsNyBA
QCBwdWJsaWM6CiAgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4g
bV9kYXRhYmFzZURpcmVjdG9yeTsgfTsKICAgICBzdGF0aWMgU3RyaW5nIGZ1bGxEYXRhYmFzZVBh
dGhGb3JEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIFN0cmluZyBkYXRhYmFz
ZU5hbWVGcm9tRmlsZShjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgSURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvbiBkYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbUZpbGUoY29uc3QgU3RyaW5nJik7
CiAKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Np
b25JRDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jOWNmNzdiNWYzNmIwZDA3YTk4OTMwMzQ1OTIwYWZkNDNmMDM2YTQ3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24uaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIERhcnJ5bCBQb2d1ZSAoZGFycnlsQGRwb2d1ZS5jYSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uIHsKKyAgICBTdHJpbmcgbmFtZTsKKyAgICB1aW50NjRfdCB2ZXJzaW9u
IHsgMCB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNF
RF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24m
KTsKKworICAgIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24gaXNvbGF0ZWRDb3B5KCkgY29uc3Q7
Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8
IG5hbWUgPDwgdmVyc2lvbjsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgSURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb24mIGluZm8pCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
Lm5hbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGluZm8udmVyc2lvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVl
OworfQorCitpbmxpbmUgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbiBJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uOjppc29sYXRlZENvcHkoKSBjb25zdAoreworICAgIHJldHVybiB7IG5hbWUuaXNv
bGF0ZWRDb3B5KCksIHZlcnNpb24gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDQ3NjIy
Yjk1YzI1MGRiZmRiNWY2MGMyM2Y5MDMzNDJjMDQ5ZmFjM2IuLmE5M2U0MDYwZTg1YzM2N2NjMjIy
MDMwYWQ1ZTc1NjQ4YWZhMDIzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04OCw2ICs4OCw3IEBAIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
cldpdGhWYWx1ZS5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAogTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmNwcAorTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0QWxsUmVzdWx0LmNwcAogTW9k
dWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlMTdhMzA3OWRhN2ZkYTMxMmMy
N2MwNzUyMDIwMTJlYzE2YTAyNzQuLjFkMDRmODZjNGYwYzM1MjFkYjFjMDYyOTc0ZmQxZDE3NzNj
ZWU1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI1OTQsNiArMjU5NCw4IEBACiAJCThGNjc1NjFCMTI4OEIxN0IwMDQ3QUNB
MyAvKiBFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkwMDE3NzQxMTJFMDM0
NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzczRTEyRTAzNDc4MDA2NDg0NjIgLyog
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5MDAxNzg4MTEyRTAzNzA3MDA2NDg0
NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNT
dGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkwMTZFQTREMjQ1NEQ4MTMwMDIxRDlEMSAv
KiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MDE2RUE0QzI0NTREODEzMDAyMUQ5RDEgLyogSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTkwRTM1MUMyMjQ3RTQ2RTQwMEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTBFMzUxQkQyNDdFM0Q0ODAwRkJGMjRGIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZl
cnNpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTEwOUU5QzgyMjJDQUJDQTAwQkI2MjY0IC8qIEluc3BlY3RvckF1ZGl0UmVzb3Vy
Y2VzT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MTA5RTlDNTIyMkNBQkM4MDBCQjYyNjQgLyogSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmpl
Y3QuaCAqLzsgfTsKIAkJOTEwOUU5QzgyMjJDQUJDQTAwQkI2MjY1IC8qIEpTSW5zcGVjdG9yQXVk
aXRSZXNvdXJjZXNPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkxMDlFOUM1MjIyQ0FCQzgwMEJCNjI2NSAvKiBKU0luc3BlY3RvckF1ZGl0UmVz
b3VyY2VzT2JqZWN0LmggKi87IH07CiAJCTkxMjc4RDVFMjFERURBRDYwMEI1NzE4NCAvKiBQYWdl
QXVkaXRBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTEyNzhENUMyMURFREFENTAwQjU3MTg0IC8qIFBhZ2VBdWRpdEFnZW50LmggKi87IH07CkBA
IC0xMDcyOSw2ICsxMDczMSw5IEBACiAJCTkwMDE3NzNGMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNT
dGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBPRVNTdGFuZGFy
ZERlcml2YXRpdmVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc4N0Ux
MkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIg
LyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MDE2RUE0QzI0NTREODEzMDAyMUQ5RDEgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkwRTM1MUJDMjQ3RTNENDgwMEZCRjI0RiAvKiBJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkwRTM1MUJEMjQ3RTNENDgwMEZCRjI0RiAvKiBJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MTA5RTlDNTIyMkNBQkM4MDBCQjYyNjQgLyogSW5zcGVjdG9yQXVk
aXRSZXNvdXJjZXNPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5z
cGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTEwOUU5QzUyMjJDQUJDODAwQkI2MjY1IC8qIEpTSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNP
YmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbnNwZWN0b3JBdWRp
dFJlc291cmNlc09iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTA5RTlD
NzIyMkNBQkM5MDBCQjYyNjQgLyogSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRSZXNvdXJj
ZXNPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkzNTUsNiArMTkz
NjAsNyBAQAogCQkJCTUxMTBGQ0ZCMUUwMzYyQTUwMDZGOEQwQiAvKiBJREJDdXJzb3JSZWNvcmQu
aCAqLywKIAkJCQk1MUJBNEFDMTFCQkI1Q0JGMDBERjNENkQgLyogSURCRGF0YWJhc2VJbmZvLmNw
cCAqLywKIAkJCQk1MUJBNEFDMjFCQkI1Q0JGMDBERjNENkQgLyogSURCRGF0YWJhc2VJbmZvLmgg
Ki8sCisJCQkJOTAxNkVBNEMyNDU0RDgxMzAwMjFEOUQxIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZl
cnNpb24uaCAqLywKIAkJCQk1MTQ4NDUzQzFCQjlEMDc2MDA2QTcyRUQgLyogSURCRXJyb3IuY3Bw
ICovLAogCQkJCTUxNDg0NTNEMUJCOUQwNzYwMDZBNzJFRCAvKiBJREJFcnJvci5oICovLAogCQkJ
CTUxOURCQzZEMURDMDBGQjkwMDMyOUJGNSAvKiBJREJHZXRBbGxSZWNvcmRzRGF0YS5jcHAgKi8s
CkBAIC0yMjgzMiw2ICsyMjgzOCw4IEBACiAJCQkJNTFENzE5N0UxODExMDZERjAwMTZEQzUxIC8q
IElEQkRhdGFiYXNlLmlkbCAqLywKIAkJCQk1MTAzMTA1RTFCQThFMDkwMDAzMzI5QzAgLyogSURC
RGF0YWJhc2VJZGVudGlmaWVyLmNwcCAqLywKIAkJCQk1MTAzMTA1RjFCQThFMDkwMDAzMzI5QzAg
LyogSURCRGF0YWJhc2VJZGVudGlmaWVyLmggKi8sCisJCQkJOTBFMzUxQkMyNDdFM0Q0ODAwRkJG
MjRGIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcCAqLywKKwkJCQk5MEUz
NTFCRDI0N0UzRDQ4MDBGQkYyNEYgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Qu
aCAqLywKIAkJCQk1MTY0NUI0NjFCOUY4ODlCMDBGNzg5Q0UgLyogSURCRmFjdG9yeS5jcHAgKi8s
CiAJCQkJNTE2NDVCNDcxQjlGODg5QjAwRjc4OUNFIC8qIElEQkZhY3RvcnkuaCAqLywKIAkJCQk1
MUQ3MTk4QTE4MTEwNkRGMDAxNkRDNTEgLyogSURCRmFjdG9yeS5pZGwgKi8sCkBAIC0zMDkwOSw2
ICszMDkxNyw4IEBACiAJCQkJNTE4NUZDODExQkI0QzRFODAwMTI4OThGIC8qIElEQkRhdGFiYXNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg1RkM4NzFCQjRDNEU4MDAxMjg5OEYgLyogSURCRGF0
YWJhc2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUJBNEFDNDFCQkI1Q0Q4MDBE
RjNENkQgLyogSURCRGF0YWJhc2VJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MDE2RUE0RDI0
NTREODEzMDAyMUQ5RDEgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTBFMzUxQzIyNDdFNDZFNDAwRkJGMjRGIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZl
cnNpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTQ4NDUzRjFCQjlEMDdFMDA2QTcy
RUQgLyogSURCRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQzhEMUJCNEM0RTgwMDEy
ODk4RiAvKiBJREJGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTlEQkM2RjFEQzAxMUE3
MDAzMjlCRjUgLyogSURCR2V0QWxsUmVjb3Jkc0RhdGEuaCBpbiBIZWFkZXJzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCA3OWIwYjMxOTMxMDk5OWVlOTM4YzQ2
NWI1MTgzNTEwZjU5NTI3NTlkLi5hMDIxYTMzZTUzYTY2M2U2ODE4ZDhhMzAwZTUyYWJmZWY1NDk1
Y2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMTUzLDYgKzE1
Myw3IEBAIGNsYXNzIEVtcHR5RGF0YWJhc2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBEYXRhYmFz
ZVByb3ZpZGVyIHsKICAgICAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2
NF90LCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJbmRleGVkREI6OkNvbm5l
Y3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBvcGVu
REJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJikgZmluYWwgeyB9CiAgICAg
ICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCB1aW50NjRfdCkgZmluYWwgeyB9CisgICAgICAgIHZv
aWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYsIGNvbnN0IENsaWVudE9yaWdpbiYpIGZpbmFsIHsgfQogICAgICAgICB+RW1wdHlJREJD
b25uZWN0aW9uVG9TZXJ2ZXJEZWxldGVnYXRlKCkgeyB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggZjJhZmUxYThiOGFiOGNlYWFhMWNjNzEyZWZh
NGVhYzE3NmVmNjNkNC4uZmVjMzk5MzM4MmY0ODNlN2QxMGFmZGE0MzE1MWNjM2QzY2E5ZmViOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC0xOTgsNiArMTk4LDEx
IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVz
KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0CiAgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29u
bmVjdGlvblRvU2VydmVyOjpEaWRHZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxiYWNrSUQsIGRhdGFi
YXNlTmFtZXMpKTsKIH0KIAordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50
aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNlcykKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhy
ZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5oCmluZGV4IDk5NTA4M2IwNDZhZDBkZDk3ZWUzMTk4NzIwOTUyYmRlY2Jj
ODkzNmUuLjgxYjBiNDljZjFmNTg1M2NjZDdiYTQxM2NmY2NmOTkyMzA1NjExMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBAIC04Myw2ICs4Myw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1
aW50NjRfdCBuZXdWZXJzaW9uKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VO
YW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VO
YW1lcykgZmluYWw7CisgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMo
Y29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JikgZmluYWw7CiAKICAgICB0ZW1wbGF0ZTxj
bGFzcyBNZXNzYWdlVHlwZT4gdm9pZCBoYW5kbGVHZXRSZXN1bHQoY29uc3QgV2ViQ29yZTo6SURC
UmVzdWx0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAppbmRleCA1MDhiZDkyOTEzNDkwN2ExNjliNjUx
YzdiOGFlZTFjOTI3NzJmOGQzLi45OGU3ZmE1MDcxYThjZThkNTI4MGIzYjY1NjRjMDQ3MmMzZjk4
ZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTMyNiw2ICszMjYsMTcgQEAgdm9pZCBXZWJJREJTZXJ2
ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25z
dCBXZWJDb3IKICAgICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1lcyh3ZWJJREJDb25uZWN0
aW9uLT5pZGVudGlmaWVyKCksIG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgY2FsbGJh
Y2tJRCk7CiB9CiAKK3ZvaWQgV2ViSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mIG9yaWdpbikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAg
IGF1dG8qIHdlYklEQkNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAuZ2V0KGNvbm5lY3Rpb24u
dW5pcXVlSUQoKSk7CisgICAgQVNTRVJUKHdlYklEQkNvbm5lY3Rpb24pOworCisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7CisgICAgbV9zZXJ2ZXItPmdldEFsbERhdGFi
YXNlTmFtZXNBbmRWZXJzaW9ucyh3ZWJJREJDb25uZWN0aW9uLT5pZGVudGlmaWVyKCksIHJlcXVl
c3RJZGVudGlmaWVyLCBvcmlnaW4pOworfQorCiB2b2lkIFdlYklEQlNlcnZlcjo6YWRkQ29ubmVj
dGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyIHByb2Nlc3NJZGVudGlmaWVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5oCmluZGV4IGQ0MDNmNmM4NDBjMzAyNTIyNzRkMmQzYTc4MjQ1ZTIyOTg3MzAyNjcu
Ljk1MjRhNjAwMzI5ZmMxNmMxMWZlZjI4MTcyNTI4NTFmZWI4NTc2MGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCkBA
IC04MSw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
SW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiAgICAgdm9pZCBv
cGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJik7CiAg
ICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRl
bnRpZmllciYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpOwogCiAgICAgdm9pZCBhZGRD
b25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJT
ZXJ2ZXIubWVzc2FnZXMuaW4KaW5kZXggMjA5ZjU0MDI2MTUwNTFlNjk3ZTJmZGRkNTc3Mzg5NDEy
YjNkZDZkMy4uMWM2MjBiOWMyNTM4NjMzMDIxNDcyOGI3ZjU0MGM1YzkyMDBhZjg1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVy
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbgpAQCAtNTEsNiArNTEsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJJREJTZXJ2ZXIgewogICAgIE9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoV2ViQ29yZTo6SURCUmVx
dWVzdERhdGEgcmVxdWVzdERhdGEpCiAKICAgICBHZXRBbGxEYXRhYmFzZU5hbWVzKHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpIFdhbnRz
Q29ubmVjdGlvbgorICAgIEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhXZWJDb3JlOjpJ
REJSZXNvdXJjZUlkZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4gb3JpZ2luKSBXYW50c0Nvbm5lY3Rpb24KIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlci5jcHAKaW5kZXggMGU5NzgzNjc3OWQ2NjBkNjA4YjMwZjFiNDE2YTU0MWM4ZTMxY2Jh
Yy4uMTE4N2ZiNTgzZGQxYTI4YTI5NDdjMjljNTE0MmY5NTNlZTA0NThjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC0yMTIsNiArMjEyLDEx
IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luCiAgICAgc2VuZChNZXNzYWdlczo6V2ViSURCU2Vy
dmVyOjpHZXRBbGxEYXRhYmFzZU5hbWVzKHRvcE9yaWdpbiwgb3BlbmluZ09yaWdpbiwgY2FsbGJh
Y2tJRCkpOwogfQogCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luKQoreworICAgIHNl
bmQoTWVzc2FnZXM6OldlYklEQlNlcnZlcjo6R2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pKTsKK30KKwogdm9pZCBXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OmRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdCkK
IHsKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkRGVsZXRlRGF0YWJhc2UocmVzdWx0KTsK
QEAgLTMyNyw2ICszMzIsMTEgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdl
dEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QKICAgICBtX2Nvbm5l
Y3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFz
ZU5hbWVzKTsKIH0KIAordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbj4mIGRhdGFiYXNlcykKK3sKKyAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxs
RGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBkYXRhYmFzZXMpOwor
fQorCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y29ubmVjdGlvblRvU2VydmVyTG9z
dCgpCiB7CiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmNvbm5lY3Rpb25Ub1NlcnZlckxvc3Qo
SURCRXJyb3IgeyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJBbiBpbnRlcm5hbCBlcnJvciB3YXMg
ZW5jb3VudGVyZWQgaW4gdGhlIEluZGV4ZWQgRGF0YWJhc2Ugc2VydmVyIl9zIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAppbmRleCA5NzA1OGQzZWUxOGFj
YjkwNmY0M2NkNWQ1ZmQ5OWI2ZjYyODQ4NzFhLi4yZmVkMjYyYmVlMWMwNTEzZTI2MjA4NGIwOTZj
YTlhZDgwODIyMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuaApAQCAtODEsNiArODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENh
bmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpIGZpbmFsOwogCiAgICAgdm9p
ZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmln
aW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFsOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VO
YW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYsIGNv
bnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGZpbmFsOwogCiAgICAgLy8gTWVzc2FnZXMgcmVj
ZWl2ZWQgZnJvbSBOZXR3b3JrIFByb2Nlc3MKICAgICB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNv
bnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsKQEAgLTEwNiw2ICsxMDcsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJik7CiAgICAgdm9pZCBub3RpZnlP
cGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJz
aW9uKTsKICAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJ
RCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpOworICAgIHZvaWQgZGlkR2V0
QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRl
bnRpZmllciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
PiYpOwogCiAgICAgUmVmPFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVy
PiBtX2Nvbm5lY3Rpb25Ub1NlcnZlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4KaW5kZXggOGQ5N2U0NGUzNWMzYzBm
ZmU1M2QwNmMzYjZkYmIzMjJlN2Q2ZjFjMC4uMjAwNTg2Y2RjZTFhMjczYTRlMTM5ZjQ4YTA1MWVl
MWIxOWY0YzY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlci5tZXNzYWdlcy5pbgpAQCAtNDgsNiArNDgsNyBAQCBtZXNzYWdlcyAtPiBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIgewogICAgIE5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKFdl
YkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qg
b2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikKIAogICAgIERpZEdldEFsbERhdGFiYXNl
TmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgVmVjdG9yPFN0cmluZz4gZGF0YWJhc2VOYW1lcykK
KyAgICBEaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoV2ViQ29yZTo6SURCUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvbj4gZGF0YWJhc2VzKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Q
cm9jZXNzSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nl
c3NJREJTZXJ2ZXIuY3BwCmluZGV4IGE1NDliMDQ5MDVjNmEyMjNjZDY3NmMwOTBjMDRhNGI3MTcy
ZTdmYTAuLjhhOTQ4YjhhNDRkOGYzNTgzYjU2MGVmMTY5ZGE1NTM0OWE4NGQ0ZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBA
IC00OTEsNiArNDkxLDIxIEBAIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRHZXRBbGxEYXRh
YmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvCiAgICAgfSk7CiB9CiAK
K3ZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMo
Y29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwg
Y29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCit7CisgICAgZGlzcGF0Y2hUYXNrKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBtX2Nvbm5lY3Rpb25U
b1NlcnZlci0+aWRlbnRpZmllcigpLCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3JpZ2lu
Lmlzb2xhdGVkQ29weSgpXSB7CisgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5s
b2NrKCkpOworICAgICAgICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KGlkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pOworICAgIH0pOworfQorCit2
b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYgZGF0YWJh
c2VzKQoreworICAgIGRpc3BhdGNoVGFza1JlcGx5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBkYXRhYmFzZXMgPSBkYXRhYmFzZXMuaXNv
bGF0ZWRDb3B5KCldIHsKKyAgICAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZEdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzKTsKKyAg
ICB9KTsKK30KKwogdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJh
c2VzTW9kaWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQogewogICAgIGRpc3Bh
dGNoVGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtb2RpZmljYXRp
b25UaW1lXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9j
ZXNzSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURC
U2VydmVyLmgKaW5kZXggNjA0N2RkOWY5NWIxM2RjMTE2ZGI4YmVlZjA4OWI2NGRmNDNjY2ZhNC4u
MjI0MGUyY2EzNGE4NGQ2ZTE4MWU2ZDFjMDQ5MGNjYTExOWNkOTM0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuaApAQCAtOTEsNiArOTEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNl
SWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkluZGV4ZWREQjo6
Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpIGZpbmFsOwogICAgIHZvaWQgb3BlbkRC
UmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpIGZpbmFsOwog
ICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKSBmaW5hbDsKKyAgICB2b2lkIGdl
dEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlk
ZW50aWZpZXImLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKSBmaW5hbDsKIAogICAgIC8v
IElEQkNvbm5lY3Rpb25Ub0NsaWVudAogICAgIFdlYkNvcmU6OklEQkNvbm5lY3Rpb25JZGVudGlm
aWVyIGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKQEAgLTExNyw2ICsxMTgsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpIGZpbmFsOwog
ICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURCUmVz
b3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwg
dWludDY0X3QgbmV3VmVyc2lvbikgZmluYWw7CiAgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5h
bWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5h
bWVzKSBmaW5hbDsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhj
b25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKSBmaW5hbDsKIAogICAgIHZvaWQgY2xvc2VB
bmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lKTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggZjU1ODU4OTllZWFkMGNmMzlkYjExYWMwZjBkMWQ4NjgyZmVh
NzQxOS4uNjI4MjZlODcyYmYxNGFlMDRmMzQ4ZDliMjc3MzEzM2VmYmUxMmNmNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDUtMjcgIERhcnJ5
bCBQb2d1ZSAgPGRhcnJ5bEBkcG9ndWUuY2E+CisKKyAgICAgICAgSW5kZXhlZERCOiBTdXBwb3J0
IElEQkZhY3RvcnkgZGF0YWJhc2VzIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRqdXN0IHRlc3QgZXhwZWN0YXRpb25zIGZvciBgSURCRmFj
dG9yeS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFj
dG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRpb24tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFy
bmVzcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNS0xOSAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV2Vi
WFJdIEltcGxlbWVudCBYUlNlc3Npb246OnJlcXVlc3RBbmltYXRpb25GcmFtZSgpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3Rl
ZC50eHQKaW5kZXggZTJkZmZhYzc0Nzg3YWM1MTg1NTg4NTAyYjZkMGNkNzFlZmVkNzkwZS4uMDY1
MDE5ZDEzMDEwOWM3MjRiNTNiOGE2MGRlYmM5ZjY2NDUzMGM0NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFi
YXNlcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4dApA
QCAtMSw3ICsxLDcgQEAKIAotRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSByZXR1cm5zIGEg
cHJvbWlzZS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAo
SW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRl
ZmluZWQpIgotRkFJTCBFbnVtZXJhdGUgb25lIGRhdGFiYXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5k
YXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywg
J2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVudW1lcmF0ZSBtdWx0
aXBsZSBkYXRhYmFzZXMuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycg
aXMgdW5kZWZpbmVkKSIKLUZBSUwgTWFrZSBzdXJlIGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQg
Zm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2Vz
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVk
REIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMo
KSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
aW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0
YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKK1BBU1MgRW5z
dXJlIHRoYXQgZGF0YWJhc2VzKCkgcmV0dXJucyBhIHByb21pc2UuIAorUEFTUyBFbnVtZXJhdGUg
b25lIGRhdGFiYXNlLiAKK1BBU1MgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4gCitQQVNT
IE1ha2Ugc3VyZSBhbiBlbXB0eSBsaXN0IGlzIHJldHVybmVkIGZvciB0aGUgY2FzZSBvZiBubyBk
YXRhYmFzZXMuIAorRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAg
Y2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIGFzc2VydF9lcXVhbHM6IFRoZSByZXN1bHQg
b2YgZGF0YWJhc2VzKCkgc2hvdWxkIGJlIG9ubHkgdGhvc2UgZGF0YWJhc2VzIHdoaWNoIGhhdmUg
YmVlbiBjcmVhdGVkIGF0IHRoZSB0aW1lIG9mIGNhbGxpbmcsIHJlZ2FyZGxlc3Mgb2YgdmVyc2lv
bmNoYW5nZSB0cmFuc2FjdGlvbnMgY3VycmVudGx5IHJ1bm5pbmcuIGV4cGVjdGVkIDEgYnV0IGdv
dCAyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQt
ZGF0YWJhc2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGUyZGZmYWM3NDc4N2FjNTE4
NTU4ODUwMmI2ZDBjZDcxZWZlZDc5MGUuLjA2NTAxOWQxMzAxMDljNzI0YjUzYjhhNjBkZWJjOWY2
NjQ1MzBjNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvZ2V0LWRhdGFiYXNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAK
IAotRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSByZXR1cm5zIGEgcHJvbWlzZS4gcHJvbWlz
ZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9y
OiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5k
YXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBF
bnVtZXJhdGUgb25lIGRhdGFiYXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90
IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRh
YmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVudW1lcmF0ZSBtdWx0aXBsZSBkYXRhYmFzZXMu
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRl
eGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIK
LUZBSUwgTWFrZSBzdXJlIGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9m
IG5vIGRhdGFiYXNlcy4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBp
cyB1bmRlZmluZWQpIgotRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sg
dXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFi
YXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5k
ZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKK1BBU1MgRW5zdXJlIHRoYXQgZGF0YWJh
c2VzKCkgcmV0dXJucyBhIHByb21pc2UuIAorUEFTUyBFbnVtZXJhdGUgb25lIGRhdGFiYXNlLiAK
K1BBU1MgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4gCitQQVNTIE1ha2Ugc3VyZSBhbiBl
bXB0eSBsaXN0IGlzIHJldHVybmVkIGZvciB0aGUgY2FzZSBvZiBubyBkYXRhYmFzZXMuIAorRkFJ
TCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhh
dmVuJ3QgY29tbWl0ZWQuIGFzc2VydF9lcXVhbHM6IFRoZSByZXN1bHQgb2YgZGF0YWJhc2VzKCkg
c2hvdWxkIGJlIG9ubHkgdGhvc2UgZGF0YWJhc2VzIHdoaWNoIGhhdmUgYmVlbiBjcmVhdGVkIGF0
IHRoZSB0aW1lIG9mIGNhbGxpbmcsIHJlZ2FyZGxlc3Mgb2YgdmVyc2lvbmNoYW5nZSB0cmFuc2Fj
dGlvbnMgY3VycmVudGx5IHJ1bm5pbmcuIGV4cGVjdGVkIDEgYnV0IGdvdCAyCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYmZhY3RvcnktZGF0YWJhc2VzLW9wYXF1ZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9y
eS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggMDY3OWYzOTJlYjVm
YWVkMGJkYzE3ZTgxY2I5YjVhY2IyMjFiNTJkNC4uZGZhNzEwMmIwMGNjM2FkOGMwMWRiZmQ3ZDBi
Yzk1OTMxNzZlZTQyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdp
bi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwgSURCRmFjdG9yeS5kYXRhYmFzZXMoKSBp
biBub24tc2FuZGJveGVkIGlmcmFtZSBzaG91bGQgbm90IHJlamVjdCBhc3NlcnRfZXF1YWxzOiBJ
REJGYWN0b3J5LmRhdGFiYXNlcygpIHNob3VsZCBub3QgcmVqZWN0IGV4cGVjdGVkICJubyBleGNl
cHRpb24iIGJ1dCBnb3QgImluZGV4ZWREQi5kYXRhYmFzZXMgdW5kZWZpbmVkIgotRkFJTCBJREJG
YWN0b3J5LmRhdGFiYXNlcygpIGluIHNhbmRib3hlZCBpZnJhbWUgc2hvdWxkIHJlamVjdCBhc3Nl
cnRfZXF1YWxzOiBQcm9taXNlIHNob3VsZCBiZSByZWplY3RlZCB3aXRoIFNlY3VyaXR5RXJyb3Ig
ZXhwZWN0ZWQgIlNlY3VyaXR5RXJyb3IiIGJ1dCBnb3QgImluZGV4ZWREQi5kYXRhYmFzZXMgdW5k
ZWZpbmVkIgorUEFTUyBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGluIG5vbi1zYW5kYm94ZWQgaWZy
YW1lIHNob3VsZCBub3QgcmVqZWN0IAorUEFTUyBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGluIHNh
bmRib3hlZCBpZnJhbWUgc2hvdWxkIHJlamVjdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1vcmln
aW4taXNvbGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnktb3JpZ2luLWlzb2xhdGlvbi1leHBl
Y3RlZC50eHQKaW5kZXggYTMzMDk4ZWI4ZjY1ZmZjMTljYzdkYWZkNzk5NWU4MjAxNDEzZDY1NC4u
Y2I5ODVmYzVmMmU2Zjg0ZThlOTU5NTMwZTM4N2VkYTlhYTE1ZWNmNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFj
dG9yeS1vcmlnaW4taXNvbGF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1p
c29sYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFRlc3QgdG8gbWFr
ZSBzdXJlIHRoYXQgb3JpZ2lucyBoYXZlIHNlcGFyYXRlIGxvY2tpbmcgc2NoZW1lcyBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRh
dGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCitQQVNTIFRl
c3QgdG8gbWFrZSBzdXJlIHRoYXQgb3JpZ2lucyBoYXZlIHNlcGFyYXRlIGxvY2tpbmcgc2NoZW1l
cyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkt
ZXhwZWN0ZWQudHh0CmluZGV4IGQ5ZGUyN2U0N2JkNWViNzg2ZmM4NGZkYzRjNjNiMWVjODY3Mjk1
OTguLmFlOWEyYThhYWJlNTEzZDZiMmJhYjg3YmMzNDRjNzAzMzA1OWU0YWIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
bGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQK
QEAgLTUyLDcgKzUyLDcgQEAgUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWMKIFBBU1MgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90
eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCiBQQVNTIElEQkZhY3RvcnkgaW50
ZXJmYWNlOiBvcGVyYXRpb24gb3BlbihET01TdHJpbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgCiBQ
QVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGVsZXRlRGF0YWJhc2UoRE9NU3Ry
aW5nKSAKLUZBSUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5v
bi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJkYXRhYmFzZXMiIG1pc3NpbmcK
K1BBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSAKIFBBU1Mg
SURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjbXAoYW55LCBhbnkpIAogUEFTUyBJREJG
YWN0b3J5IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgW29iamVjdCBJREJGYWN0b3J5XSAK
IFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIFtvYmplY3QgSURCRmFjdG9yeV0gCkBAIC02MCw3ICs2
MCw3IEBAIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJvcGVuKERPTVN0CiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNl
OiBjYWxsaW5nIG9wZW4oRE9NU3RyaW5nLCB1bnNpZ25lZCBsb25nIGxvbmcpIG9uIFtvYmplY3Qg
SURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
IFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlRGF0YWJhc2Uo
RE9NU3RyaW5nKSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0
IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImRhdGFiYXNlcyIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVj
dCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRhdGFiYXNlcygpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFj
dG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbXAoYW55LCBhbnkpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgY21wKGFueSwgYW55
KSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIElEQkRhdGFiYXNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRl
eCA2MTllZDg0NDQ3ZTI2YmMxMGUyNTNhMjU2MjI0YjQ0YmNiNWQ0ZWQyLi5jZjEzZmNjMjg4YTFl
MjFhZWQyMmFlOTgxMWRkZDY1NTBjY2ZhOGIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAg
LTUyLDcgKzUyLDcgQEAgUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWMKIFBBU1MgSURCRmFjdG9yeSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJm
YWNlOiBvcGVyYXRpb24gb3BlbihET01TdHJpbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgCiBQQVNT
IElEQkZhY3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5n
KSAKLUZBSUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1z
dGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJkYXRhYmFzZXMiIG1pc3NpbmcKK1BB
U1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSAKIFBBU1MgSURC
RmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjbXAoYW55LCBhbnkpIAogUEFTUyBJREJGYWN0
b3J5IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgW29iamVjdCBJREJGYWN0b3J5XSAKIFBB
U1MgU3RyaW5naWZpY2F0aW9uIG9mIFtvYmplY3QgSURCRmFjdG9yeV0gCkBAIC02MCw3ICs2MCw3
IEBAIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJvcGVuKERPTVN0CiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBj
YWxsaW5nIG9wZW4oRE9NU3RyaW5nLCB1bnNpZ25lZCBsb25nIGxvbmcpIG9uIFtvYmplY3QgSURC
RmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBB
U1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlRGF0YWJhc2UoRE9N
U3RyaW5nKSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVz
dCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0IElE
QkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhlIHBy
b3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImRhdGFiYXNlcyIgbm90IGZvdW5k
IGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJ
REJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRhdGFiYXNlcygpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9y
eV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbXAoYW55LCBhbnkpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgY21wKGFueSwgYW55KSBv
biBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgCiBQQVNTIElEQkRhdGFiYXNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400552</attachid>
            <date>2020-05-28 22:50:28 -0700</date>
            <delta_ts>2020-06-11 08:49:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211043-20200528225027.patch</filename>
            <type>text/plain</type>
            <size>79162</size>
            <attacher name="Darryl Pogue">dvpdiner2</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMjc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM2NjY4YTZmM2EzYTNj
Y2YyYzM4OWE1N2U5MmRiM2ZhMTcwODU1NS4uNTA2NTE2ZTkwMGMwMmVmODQ5MDA5MzViZjJjNjhi
MTQ5YTBiZWM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTA1LTI4ICBEYXJy
eWwgUG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9y
dCBJREJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBmZXRjaGluZyB0aGUgbGlzdCBv
ZiBJREIgZGF0YWJhc2UgbmFtZXMgYW5kIHZlcnNpb25zCisgICAgICAgIGZyb20gdGhlIElEQlNl
cnZlciwgYW5kIGV4cG9zZSB0aGUgZnVuY3Rpb25hbGl0eSBhcworICAgICAgICBgSURCRmFjdG9y
eS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdDo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6On5JREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uUmVxdWVzdDo6c2V0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6SURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmZpcmVDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0
TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
UmVxdWVzdDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6c3RvcCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJGYWN0b3J5OjpkYXRhYmFzZXMpOgorICAgICAgICAoV2ViQ29yZTo6SURC
RmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCRmFjdG9yeS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rvcnku
aWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmg6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0QWxsRGF0
YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURC
Q29ubmVjdGlvblByb3h5OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmZvcmdldEFjdGl2
aXR5Rm9yQ3VycmVudFRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNv
bm5lY3Rpb25Qcm94eTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRB
bGxEYXRhYmFzZU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6
SURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKTogRGVsZXRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVy
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1Nl
cnZlckRlbGVnYXRlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNv
bm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNv
bm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRB
bGxEYXRhYmFzZU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmg6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVGcm9tRmlsZSk6
IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJh
Y2tpbmdTdG9yZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb246OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKwogMjAyMC0wNS0yOCAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW0FwcGxlIFBheV0gQnV0dG9ucyByZW5k
ZXIgd2l0aCBhIGNvcm5lciByYWRpdXMgb2YgUEtBcHBsZVBheUJ1dHRvbkRlZmF1bHRDb3JuZXJS
YWRpdXMgZXZlbiB3aGVuIGV4cGxpY2l0bHkgc3BlY2lmeWluZyAiYm9yZGVyLXJhZGl1czogMHB4
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBlODU2OTMwMDA0ZjAyZmIwOTlkNGFiMzExMWYzMzBmMzg1OTdlYjhmLi4y
NjYwNTg4MzVkZTgyNTQ0NjQ5MzI2YTA4N2FjNWM2ODdkNDYyNWJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI5IEBACisyMDIwLTA1LTI4ICBEYXJyeWwgUG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgor
CisgICAgICAgIEluZGV4ZWREQjogU3VwcG9ydCBJREJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdW1iaW5n
IGZvciByZXR1cm5pbmcgYSBsaXN0IG9mIElEQiBkYXRhYmFzZXMgYW5kIHZlcnNpb25zLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0
QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNp
b25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVz
KTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVj
dGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNB
bmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6
Z2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW46CisKIDIwMjAtMDUtMjggIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSBtYWNPUyBidWls
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCBhNzNmNTMwNjAwNGY4YzY5ODlkZmQxNWM5N2QxNjNi
Y2YzNGNlMTc3Li4wYzgyODJlMjYzNzY2YmJhY2ViYzMwMTJlODQ3NDZlYjViNjA1ZWQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA1LTI4ICBEYXJyeWwgUG9n
dWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9ydCBJREJG
YWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFBsdW1iaW5nIGZvciByZXR1cm5pbmcgYSBsaXN0IG9mIElEQiBkYXRh
YmFzZXMgYW5kIHZlcnNpb25zLgorCisgICAgICAgICogU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2
ZXIuY3BwOgorICAgICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMpOgorICAgICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRHZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRB
bGxEYXRhYmFzZU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKEluUHJvY2Vzc0lEQlNlcnZlcjo6
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogU3RvcmFnZS9JblBy
b2Nlc3NJREJTZXJ2ZXIuaDoKKwogMjAyMC0wNS0yNyAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIHRoZSB1c2Ugb2YgWENCdWlsZCBieSBkZWZhdWx0
IGluIEFwcGxlIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMTQzYjg3NGJkOGYyZTFkY2Q3
ZmExN2E2YmNjY2I4NTdlMWYxMWRhZC4uMzUyNTMyYTZhODg5YmEwZDk1OWY2OWQ4MGI5N2EwODEw
MTc4N2JhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC00MCw2ICs0MCw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFj
dGl2ZURPTU9iamVjdC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlm
aWVyLmgKKyAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVx
dWVzdC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0QWxsUmVzdWx0LmgKICAgICBNb2R1
bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eS5oCkBAIC03Miw2ICs3Myw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vyc29ySW5mby5oCiAgICAgTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvclJlY29yZC5oCiAgICAgTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5oCisgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJFcnJvci5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkdldEFsbFJl
Y29yZHNEYXRhLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCR2V0UmVjb3JkRGF0
YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2U4M2Q3M2YxZjBkZDU1ZWJiZjIxNjNiY2JlNGYwZjdkOGQ4ZmE4MwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZl
cnNpb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIERhcnJ5bCBQb2d1ZSAoZGFycnlsQGRwb2d1ZS5jYSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Lmgi
CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIklEQkNvbm5lY3Rp
b25Qcm94eS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCk7
CisKK1JlZjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD4gSURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvblJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBjb25zdCBD
bGllbnRPcmlnaW4mIG9yaWdpbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdChjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIG9yaWdp
bikpOworfQorCitJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6SURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgSURC
Q2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29uc3QgQ2xpZW50
T3JpZ2luJiBvcmlnaW4pCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKKyAgICAsIG1f
Y29ubmVjdGlvblByb3h5KGNvbm5lY3Rpb25Qcm94eSkKKyAgICAsIG1fcmVzb3VyY2VJZGVudGlm
aWVyKGNvbm5lY3Rpb25Qcm94eSkKKyAgICAsIG1fb3JpZ2luKG9yaWdpbikKK3sKKyAgICBBU1NF
UlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkp
OworCisgICAgc3VzcGVuZElmTmVlZGVkKCk7Cit9CisKK0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b25SZXF1ZXN0Ojp+SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoKQoreworICAgIEFT
U0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgp
KSk7Cit9CisKK3ZvaWQgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OnNldENhbGxi
YWNrKEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIG1fY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKTsKK30KKwordm9pZCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6
ZmlyZUNhbGxiYWNrKGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYgZGF0
YWJhc2VzKQoreworICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxE
YXRhKG9yaWdpblRocmVhZCgpKSk7CisgICAgCisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZN
b3ZlKG1fY2FsbGJhY2spKQorICAgICAgICBjYWxsYmFjayhkYXRhYmFzZXMpOworfQorCitjb25z
dCBjaGFyKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRM
b2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsKKyAgICByZXR1cm4gIklEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb25SZXF1ZXN0IjsKK30KKworYm9vbCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVx
dWVzdDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGNh
bkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpIHx8IFRo
cmVhZDo6bWF5QmVHQ1RocmVhZCgpKTsKKyAgICByZXR1cm4gbV9oYXNQZW5kaW5nQWN0aXZpdHk7
Cit9CisKK3ZvaWQgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OnN0b3AoKQorewor
ICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRo
cmVhZCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTI0MTRlMjg3ZGMzZDE4ZGY5YjE3MWYwYWIwMjg3MGVlNjdlZTQ1ZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgRGFycnlsIFBvZ3VlIChkYXJyeWxAZHBvZ3VlLmNhKQorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVk
ZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiQ2xpZW50T3JpZ2luLmgiCisjaW5jbHVk
ZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgorI2luY2x1ZGUgIklEQlJlc291cmNlSWRl
bnRpZmllci5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworbmFtZXNw
YWNlIElEQkNsaWVudCB7CitjbGFzcyBJREJDb25uZWN0aW9uUHJveHk7Cit9CisKK2NsYXNzIElE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0PiwgcHVibGljIEFjdGl2
ZURPTU9iamVjdCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdCk7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxJREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBJREJD
bGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworCisKKyAg
ICB2aXJ0dWFsIH5JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCgpOworCisgICAgY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXNvdXJjZUlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX3Jlc291cmNlSWRlbnRpZmllcjsgfQorICAgIGNvbnN0IENsaWVudE9yaWdpbiYgb3Jp
Z2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KKyAgICBUaHJlYWQmIG9yaWdpblRocmVh
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luVGhyZWFkLmdldCgpOyB9CisKKyAgICB2b2lkIGNv
bnRleHREZXN0cm95ZWQoKSBmaW5hbAorICAgIHsKKyAgICAgICAgQVNTRVJUKGNhbkN1cnJlbnRU
aHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsKKworICAgICAgICBM
b2NrZXI8TG9jaz4gbG9jayhtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHRMb2NrKTsKKyAgICAgICAg
QWN0aXZlRE9NT2JqZWN0Ojpjb250ZXh0RGVzdHJveWVkKCk7CisgICAgfQorCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gUGFyYW1ldGVycywgdHlwZW5hbWUuLi4gQXJndW1l
bnRzPgorICAgIHZvaWQgcGVyZm9ybUNhbGxiYWNrT25PcmlnaW5UaHJlYWQoVCYgb2JqZWN0LCB2
b2lkIChUOjoqbWV0aG9kKShQYXJhbWV0ZXJzLi4uKSwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRz
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKCZvcmlnaW5UaHJlYWQoKSA9PSAmb2JqZWN0Lm9yaWdp
blRocmVhZCgpKTsKKworICAgICAgICBpZiAoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExv
Y2FsRGF0YShvYmplY3Qub3JpZ2luVGhyZWFkKCkpKSB7CisgICAgICAgICAgICAob2JqZWN0Lipt
ZXRob2QpKGFyZ3VtZW50cy4uLik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBMb2NrZXI8TG9jaz4gbG9jayhtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHRMb2NrKTsK
KworICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgY29udGV4dC0+cG9zdENyb3NzVGhyZWFkVGFzayhvYmplY3QsIG1ldGhvZCwg
YXJndW1lbnRzLi4uKTsKKyAgICB9CisKKyAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD46OnJlZjsKKyAgICB1c2luZyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD46OmRlcmVmOwor
CisgICAgdXNpbmcgSW5mb0NhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8SURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKT47CisgICAgdm9pZCBzZXRDYWxsYmFjayhJbmZvQ2Fs
bGJhY2smJik7CisgICAgdm9pZCBmaXJlQ2FsbGJhY2soY29uc3QgVmVjdG9yPElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24+Jik7CisKK3ByaXZhdGU6CisgICAgUmVmPFRocmVhZD4gbV9vcmlnaW5U
aHJlYWQgeyBUaHJlYWQ6OmN1cnJlbnQoKSB9OworICAgIExvY2sgbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0TG9jazsKKyAgICBSZWY8SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk+IG1fY29u
bmVjdGlvblByb3h5OworICAgIElEQlJlc291cmNlSWRlbnRpZmllciBtX3Jlc291cmNlSWRlbnRp
ZmllcjsKKyAgICBDbGllbnRPcmlnaW4gbV9vcmlnaW47CisgICAgSW5mb0NhbGxiYWNrIG1fY2Fs
bGJhY2s7CisKKyAgICBib29sIG1faGFzUGVuZGluZ0FjdGl2aXR5IHsgdHJ1ZSB9OworCisgICAg
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiwgY29uc3QgQ2xpZW50T3JpZ2luJik7CisK
KyAgICAvLyBBY3RpdmVET01PYmplY3QuCisgICAgYm9vbCB2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3QgZmluYWw7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgc3RvcCgpIGZpbmFsOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCmluZGV4IGIxM2M3
MWU4OTFjYmIyMjk0NzU0ZmQ1YjcwMzEyY2Y2ZDJmZWM4MDAuLjMzNzQ5ZmRkYmRkNjFhMDJkNGQx
MDM1ZjJjYmJiZjBiY2EzZmI2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuY3BwCkBAIC0zMiw4ICszMiwxMSBAQAogI2luY2x1ZGUgIklEQkJp
bmRpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJJREJDb25uZWN0aW9uUHJveHkuaCIKICNpbmNs
dWRlICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIklEQk9w
ZW5EQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1
ZGUgIkpTSURCRmFjdG9yeS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtNDMsNiArNDYsOCBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAordXNpbmcgSURC
RGF0YWJhc2VzUmVzcG9uc2VQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETFNlcXVlbmNl
PElETERpY3Rpb25hcnk8SURCRmFjdG9yeTo6RGF0YWJhc2VJbmZvPj4+OworCiBzdGF0aWMgYm9v
bCBzaG91bGRUaHJvd1NlY3VyaXR5RXhjZXB0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpCiB7CiAgICAgQVNTRVJUKGlzPERvY3VtZW50Pihjb250ZXh0KSB8fCBjb250ZXh0Lmlz
V29ya2VyR2xvYmFsU2NvcGUoKSk7CkBAIC0xMzMsOSArMTM4LDQ1IEBAIEV4Y2VwdGlvbk9yPHNo
b3J0PiBJREJGYWN0b3J5OjpjbXAoSlNHbG9iYWxPYmplY3QmIGV4ZWNTdGF0ZSwgSlNWYWx1ZSBm
aXJzdFZhbHVlCiAgICAgcmV0dXJuIGZpcnN0LT5jb21wYXJlKHNlY29uZC5nZXQoKSk7CiB9CiAK
K3ZvaWQgSURCRmFjdG9yeTo6ZGF0YWJhc2VzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgZGVmZXJyZWQpCit7CisgICAgTE9HKEluZGV4ZWRE
QiwgIklEQkZhY3Rvcnk6OmRhdGFiYXNlcyIpOworCisgICAgSURCRGF0YWJhc2VzUmVzcG9uc2VQ
cm9taXNlIHByb21pc2UgPSBXVEZNb3ZlKGRlZmVycmVkKTsKKworICAgIGlmIChzaG91bGRUaHJv
d1NlY3VyaXR5RXhjZXB0aW9uKGNvbnRleHQpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KFNl
Y3VyaXR5RXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKGNvbnRl
eHQuc2VjdXJpdHlPcmlnaW4oKSk7CisgICAgCisgICAgQ2xpZW50T3JpZ2luIG9yaWdpbiB7IGNv
bnRleHQuc2VjdXJpdHlPcmlnaW4oKS0+ZGF0YSgpLCBjb250ZXh0LnRvcE9yaWdpbigpLmRhdGEo
KSB9OworICAgIAorICAgIFJlZlB0cjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD4g
cmVxdWVzdCA9IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpjcmVhdGUoJmNvbnRl
eHQsIG1fY29ubmVjdGlvblByb3h5LCBvcmlnaW4pOworICAgIAorICAgIHJlcXVlc3QtPnNldENh
bGxiYWNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oY29uc3QgVmVjdG9yPElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb24+JiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnJl
c29sdmUoV1RGOjptYXAocmVzdWx0LCBbXShjb25zdCBhdXRvJiBpbmZvKSB7CisgICAgICAgICAg
ICByZXR1cm4gSURCRmFjdG9yeTo6RGF0YWJhc2VJbmZvIHsgaW5mby5uYW1lLCBpbmZvLnZlcnNp
b24gfTsKKyAgICAgICAgfSkpOworICAgIH0pOworCisgICAgbV9jb25uZWN0aW9uUHJveHktPmdl
dEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucygqcmVxdWVzdCk7Cit9CisKIHZvaWQgSURCRmFj
dG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1l
T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgRnVuY3Rpb248dm9p
ZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJiBjYWxsYmFjaykKIHsKLSAgICBtX2Nvbm5lY3Rp
b25Qcm94eS0+Z2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmln
aW4sIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBDbGllbnRPcmlnaW4gb3JpZ2luIHsgb3Blbmlu
Z09yaWdpbi5kYXRhKCksIG1haW5GcmFtZU9yaWdpbi5kYXRhKCkgfTsKKyAgICAKKyAgICBSZWZQ
dHI8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+IHJlcXVlc3QgPSBJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKG51bGxwdHIsIG1fY29ubmVjdGlvblByb3h5
LCBvcmlnaW4pOworICAgIAorICAgIHJlcXVlc3QtPnNldENhbGxiYWNrKFtjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXShjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4m
IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGNhbGxiYWNrKFdURjo6bWFwKHJlc3VsdCwgW10o
Y29uc3QgYXV0byYgaW5mbykgeworICAgICAgICAgICAgcmV0dXJuIGluZm8ubmFtZTsKKyAgICAg
ICAgfSkpOworICAgIH0pOworICAgIAorICAgIG1fY29ubmVjdGlvblByb3h5LT5nZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMoKnJlcXVlc3QpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKaW5k
ZXggMTM0NTY1MTE5ZjI3NGE4MmM1MzgxNjQ5MjM2ZjA1NWQzMjU5YWE3My4uNWVkYzNhMDM0ZjZk
MWY5OTVkMTYxNDFmODgwOTlhZDYxNDM1MzJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaApAQCAtNDQsNiArNDQsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBJREJPcGVuREJSZXF1ZXN0OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOworY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogCiBu
YW1lc3BhY2UgSURCQ2xpZW50IHsKIGNsYXNzIElEQkNvbm5lY3Rpb25Qcm94eTsKQEAgLTU0LDEx
ICs1NSwxOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxJREJGYWN0b3J5PiBjcmVhdGUoSURC
Q2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmKTsKICAgICB+SURCRmFjdG9yeSgpOwogCisgICAg
c3RydWN0IERhdGFiYXNlSW5mbyB7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICB1aW50
NjRfdCB2ZXJzaW9uOworICAgIH07CisKICAgICBFeGNlcHRpb25PcjxSZWY8SURCT3BlbkRCUmVx
dWVzdD4+IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgbmFtZSwg
T3B0aW9uYWw8dWludDY0X3Q+IHZlcnNpb24pOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJPcGVu
REJSZXF1ZXN0Pj4gZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0
IFN0cmluZyYgbmFtZSk7CiAKICAgICBFeGNlcHRpb25PcjxzaG9ydD4gY21wKEpTQzo6SlNHbG9i
YWxPYmplY3QmLCBKU0M6OkpTVmFsdWUgZmlyc3QsIEpTQzo6SlNWYWx1ZSBzZWNvbmQpOwogCisg
ICAgdm9pZCBkYXRhYmFzZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVz
KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBvcGVuaW5nT3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJp
bmc+Jik+JiYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5LmlkbAppbmRleCBmOThmM2Y4MzliYzRhMzgzZGQ0Mzk5Mjk5Yjc5MjZi
MDc2ODdhMGIxLi45NWVhNjYxMmRlN2U1OGUyNTYwMTUwNjljYzkzZjY4ZDAyM2E3NmY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbApAQCAt
MjksNSArMjksMTQgQEAKIF0gaW50ZXJmYWNlIElEQkZhY3RvcnkgewogICAgIFtDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCT3BlbkRCUmVxdWVz
dCBvcGVuKERPTVN0cmluZyBuYW1lLCBvcHRpb25hbCBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBs
b25nIGxvbmcgdmVyc2lvbik7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IE1heVRocm93RXhjZXB0aW9uXSBJREJPcGVuREJSZXF1ZXN0IGRlbGV0ZURhdGFiYXNlKERPTVN0
cmluZyBuYW1lKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gUHJvbWlz
ZTxzZXF1ZW5jZTxJREJEYXRhYmFzZUluZm8+PiBkYXRhYmFzZXMoKTsKICAgICBbQ2FsbFdpdGg9
R2xvYmFsT2JqZWN0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gc2hvcnQgY21wKGFueSBmaXJzdCwgYW55
IHNlY29uZCk7CiB9OworCitbCisgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwKKyAg
ICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFyeSBJREJEYXRhYmFzZUluZm8gewor
ICAgIERPTVN0cmluZyBuYW1lOworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5o
CmluZGV4IGNkYmVlNjkzZWRiNjMzNzBhMWI4OGQwNDUyYzNmMzI1ZDNjZjlkNDEuLmE4MWIwMWIy
YTgzMzY0YmRlZWVjOWZlOTIyOTNkY2E4OTZkODY1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtMjksNiArMjksNyBAQAog
CiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJJREJBY3RpdmVET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIgogI2luY2x1
ZGUgIklEQkVycm9yLmgiCiAjaW5jbHVkZSAiSURCR2V0QWxsUmVjb3Jkc0RhdGEuaCIKICNpbmNs
dWRlICJJREJHZXRSZWNvcmREYXRhLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCmluZGV4
IDk1NmRmYWU2NDUxNzQ5OGRlMzhlNTQ4MzFiNTkxYjRmNjM1NWM5NTkuLmIzNWRkZWI5ZmUwNDM2
N2VlMzczOWVlMDRjMDg4ZWQ0YzkxYWIzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3Bw
CkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJJREJDdXJzb3JJbmZvLmgiCiAjaW5jbHVk
ZSAiSURCRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVx
dWVzdC5oIgogI2luY2x1ZGUgIklEQkdldFJlY29yZERhdGEuaCIKICNpbmNsdWRlICJJREJJdGVy
YXRlQ3Vyc29yRGF0YS5oIgogI2luY2x1ZGUgIklEQktleVJhbmdlRGF0YS5oIgpAQCAtNDk2LDEy
ICs0OTcsMjYgQEAgdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmhhbmRsZU1haW5UaHJlYWRUYXNr
cygpCiAgICAgICAgIHRhc2stPnBlcmZvcm1UYXNrKCk7CiB9CiAKLXZvaWQgSURCQ29ubmVjdGlv
blByb3h5OjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJh
bWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBGdW5jdGlvbjx2
b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNhbGxiYWNrKQordm9pZCBJREJDb25uZWN0
aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICAvLyBUaGlzIG1ldGhvZCBpcyBvbmx5
IG1lYW50IHRvIGJlIGNhbGxlZCBieSB0aGUgd2ViIGluc3BlY3RvciBvbiB0aGUgbWFpbiB0aHJl
YWQuCi0gICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHsKKyAgICAgICAg
TG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlSW5mb01hcExvY2spOworICAgICAgICBBU1NF
UlQoIW1fZGF0YWJhc2VJbmZvQ2FsbGJhY2tzLmNvbnRhaW5zKHJlcXVlc3QucmVzb3VyY2VJZGVu
dGlmaWVyKCkpKTsKKyAgICAgICAgbV9kYXRhYmFzZUluZm9DYWxsYmFja3Muc2V0KHJlcXVlc3Qu
cmVzb3VyY2VJZGVudGlmaWVyKCksICZyZXF1ZXN0KTsKKyAgICB9CisgICAgCisgICAgY2FsbENv
bm5lY3Rpb25Pbk1haW5UaHJlYWQoJklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zLCByZXF1ZXN0LnJlc291cmNlSWRlbnRpZmllcigpLCByZXF1ZXN0
Lm9yaWdpbigpKTsKK30KIAotICAgIG1fY29ubmVjdGlvblRvU2VydmVyLmdldEFsbERhdGFiYXNl
TmFtZXMobWFpbkZyYW1lT3JpZ2luLCBvcGVuaW5nT3JpZ2luLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
Cit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNp
b25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0
IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYgZGF0YWJhc2VzKQoreworICAgIFJl
ZlB0cjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD4gcmVxdWVzdDsKKyAgICB7Cisg
ICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZUluZm9NYXBMb2NrKTsKKyAgICAg
ICAgcmVxdWVzdCA9IG1fZGF0YWJhc2VJbmZvQ2FsbGJhY2tzLnRha2UocmVxdWVzdElkZW50aWZp
ZXIpOworICAgIH0KKyAgICAKKyAgICByZXF1ZXN0LT5wZXJmb3JtQ2FsbGJhY2tPbk9yaWdpblRo
cmVhZCgqcmVxdWVzdCwgJklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpmaXJlQ2Fs
bGJhY2ssIGRhdGFiYXNlcyk7CiB9CiAKIHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpyZWdpc3Rl
ckRhdGFiYXNlQ29ubmVjdGlvbihJREJEYXRhYmFzZSYgZGF0YWJhc2UpCkBAIC01OTYsNiArNjEx
LDEwIEBAIHZvaWQgSURCQ29ubmVjdGlvblByb3h5Ojpmb3JnZXRBY3Rpdml0eUZvckN1cnJlbnRU
aHJlYWQoKQogICAgICAgICBMb2NrZXI8TG9jaz4gbG9jayhtX3RyYW5zYWN0aW9uT3BlcmF0aW9u
TG9jayk7CiAgICAgICAgIHJlbW92ZUl0ZW1zTWF0Y2hpbmdDdXJyZW50VGhyZWFkKG1fYWN0aXZl
T3BlcmF0aW9ucyk7CiAgICAgfQorICAgIHsKKyAgICAgICAgTG9ja2VyPExvY2s+IGxvY2sobV9k
YXRhYmFzZUluZm9NYXBMb2NrKTsKKyAgICAgICAgcmVtb3ZlSXRlbXNNYXRjaGluZ0N1cnJlbnRU
aHJlYWQobV9kYXRhYmFzZUluZm9DYWxsYmFja3MpOworICAgIH0KIH0KIAogdm9pZCBJREJDb25u
ZWN0aW9uUHJveHk6OnNldENvbnRleHRTdXNwZW5kZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y3VycmVudENvbnRleHQsIGJvb2wgaXNDb250ZXh0U3VzcGVuZGVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Q
cm94eS5oCmluZGV4IDQ2NDJmMDkzZTczODI5ZDY2YWZiNjEwOTQ5NDZhZTE5NzAxOWNmN2UuLjdj
MjgzMjlkMWNmOGZhNWRiMmViNWJiY2EyZTNlYTc5ZGRkZmRkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blByb3h5LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
IAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIgorI2luY2x1ZGUgIklEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb24uaCIKICNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJUcmFuc2FjdGlvbk9wZXJhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1Ro
cmVhZFF1ZXVlLmg+CkBAIC00Myw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSURCRGF0YWJhc2U7CiBjbGFzcyBJREJEYXRhYmFzZUlkZW50aWZpZXI7CitjbGFzcyBJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDsKIGNsYXNzIElEQkVycm9yOwogY2xhc3MgSURC
T3BlbkRCUmVxdWVzdDsKIGNsYXNzIElEQlJlc3VsdERhdGE7CkBAIC0xMTUsNyArMTE3LDggQEAg
cHVibGljOgogICAgIHZvaWQgcmVmKCk7CiAgICAgdm9pZCBkZXJlZigpOwogCi0gICAgdm9pZCBn
ZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4s
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQg
KGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYpOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1l
c0FuZFZlcnNpb25zKElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Jik7CisgICAgdm9p
ZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiwgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+Jik7CiAKICAg
ICB2b2lkIHJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKElEQkRhdGFiYXNlJik7CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKElEQkRhdGFiYXNlJik7CkBAIC0xNjgsNiAr
MTcxLDkgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBS
ZWZQdHI8VHJhbnNhY3Rpb25PcGVyYXRpb24+PiBtX2FjdGl2ZU9wZXJhdGlvbnM7CiAgICAgTG9j
ayBtX3RyYW5zYWN0aW9uT3BlcmF0aW9uTG9jazsKKyAgICAKKyAgICBIYXNoTWFwPElEQlJlc291
cmNlSWRlbnRpZmllciwgUmVmUHRyPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Pj4g
bV9kYXRhYmFzZUluZm9DYWxsYmFja3M7CisgICAgTG9jayBtX2RhdGFiYXNlSW5mb01hcExvY2s7
CiAKICAgICBDcm9zc1RocmVhZFF1ZXVlPENyb3NzVGhyZWFkVGFzaz4gbV9tYWluVGhyZWFkUXVl
dWU7CiAgICAgTG9jayBtX21haW5UaHJlYWRUYXNrTG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25U
b1NlcnZlci5jcHAKaW5kZXggNjE5NGE5ODFhMDFmZmFmNGE4ODY3MDZlYWRlYWFjYTgxMTNmNDZi
MC4uYWJhZmQ1OWM2NzdjNmM5OTAxNTVlZTE0Yjk5MTRjNGM5NmJkZDM5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKQEAgLTQ5NCwyNyArNDk0LDI2IEBAIHZvaWQgSURCQ29u
bmVjdGlvblRvU2VydmVyOjphYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvCiAgICAgICAgIG1fZGVsZWdhdGUtPmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVk
ZWQoZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyKTsK
IH0KIAotdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMoY29u
c3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4m
IG9wZW5pbmdPcmlnaW4sIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYg
Y2FsbGJhY2spCit2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1l
c0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZp
ZXIsIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQogewotICAgIHN0YXRpYyB1aW50NjRfdCBj
YWxsYmFja0lEID0gMDsKLQotICAgIG1fZ2V0QWxsRGF0YWJhc2VOYW1lc0NhbGxiYWNrcy5hZGQo
KytjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgTE9HKEluZGV4ZWREQiwgIklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zIik7Cisg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlmIChtX3NlcnZlckNvbm5lY3Rpb25J
c1ZhbGlkKQotICAgICAgICBtX2RlbGVnYXRlLT5nZXRBbGxEYXRhYmFzZU5hbWVzKG1haW5GcmFt
ZU9yaWdpbi5kYXRhKCksIG9wZW5pbmdPcmlnaW4uZGF0YSgpLCBjYWxsYmFja0lEKTsKKyAgICAg
ICAgbV9kZWxlZ2F0ZS0+Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVu
dGlmaWVyLCBvcmlnaW4pOwogICAgIGVsc2UgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrSUQgPSBjYWxsYmFj
a0lEXSB7Ci0gICAgICAgICAgICBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxiYWNrSUQsIHsg
fSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXJdIHsKKyAgICAgICAgICAgIGRpZEdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgeyB9KTsKICAgICAgICAg
fSk7CiAgICAgfQogfQogCi12b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0
YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0
YWJhc2VOYW1lcykKK3ZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFz
ZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRl
bnRpZmllciwgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiBkYXRhYmFz
ZXMpCiB7Ci0gICAgYXV0byBjYWxsYmFjayA9IG1fZ2V0QWxsRGF0YWJhc2VOYW1lc0NhbGxiYWNr
cy50YWtlKGNhbGxiYWNrSUQpOwotICAgIEFTU0VSVChjYWxsYmFjayk7CisgICAgTE9HKEluZGV4
ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZl
cnNpb25zIik7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGNhbGxiYWNrKGRh
dGFiYXNlTmFtZXMpOworICAgIG1fcHJveHktPmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
SURCQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggNWVkMjRmZTU2OGYx
YWMyNTk2MGE5NmM0MDM5NWZjYTUwYjg0NGFjNS4uMjRkNzI0YzI3NTgxMWIzYTY3MDJhYjhiOGE2
NzYzZGFlY2Q4YjBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtMjksNiAr
MjksNyBAQAogCiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblByb3h5LmgiCiAjaW5jbHVkZSAiSURC
Q29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uLmgiCiAjaW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQ1LDYgKzQ2
LDcgQEAgY2xhc3MgSURCUmVzdWx0RGF0YTsKIGNsYXNzIElEQlZhbHVlOwogY2xhc3MgU2VjdXJp
dHlPcmlnaW47CiAKK3N0cnVjdCBDbGllbnRPcmlnaW47CiBzdHJ1Y3QgSURCR2V0QWxsUmVjb3Jk
c0RhdGE7CiBzdHJ1Y3QgSURCR2V0UmVjb3JkRGF0YTsKIHN0cnVjdCBJREJJdGVyYXRlQ3Vyc29y
RGF0YTsKQEAgLTEzNiwyMCArMTM4LDE4IEBAIHB1YmxpYzoKICAgICAvLyB2ZXJzaW9uY2hhbmdl
IHRyYW5zYWN0aW9uLCBidXQgdGhlIHBhZ2UgaXMgYWxyZWFkeSB0b3JuIGRvd24uCiAgICAgdm9p
ZCBhYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyKTsKIAotICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdp
biYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwg
V1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJ
RCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpOworICAgIHZvaWQgZ2V0QWxs
RGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNv
bnN0IENsaWVudE9yaWdpbiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkR2V0QWxsRGF0
YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0
IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpOwogCiBwcml2YXRlOgogICAgIElE
QkNvbm5lY3Rpb25Ub1NlcnZlcihJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZSYpOwogCiAg
ICAgdHlwZWRlZiB2b2lkIChJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OipSZXN1bHRGdW5jdGlvbiko
Y29uc3QgSURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgY2FsbFJlc3VsdEZ1bmN0aW9uV2l0aEVy
cm9yTGF0ZXIoUmVzdWx0RnVuY3Rpb24sIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVx
dWVzdElkZW50aWZpZXIpOwotICAgIAorCiAgICAgV2Vha1B0cjxJREJDb25uZWN0aW9uVG9TZXJ2
ZXJEZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKICAgICBib29sIG1fc2VydmVyQ29ubmVjdGlvbklzVmFs
aWQgeyB0cnVlIH07CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQg
KGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+PiBtX2dldEFsbERhdGFiYXNlTmFtZXNDYWxsYmFja3M7
Ci0KICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCQ29ubmVjdGlvblByb3h5PiBtX3Byb3h5OwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaAppbmRleCAwZWY3
ZmI1NGExNjE4MDdlZDc1NzAyMzgzNDk0OGJmYTc3MWNlNjE2Li42OTZlNGRlYjU1M2E4ZWQyMjVm
YTIyMDA5YzZkYjQwODVkOThmOGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2Vy
dmVyRGVsZWdhdGUuaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBJREJSZXF1ZXN0RGF0YTsKIGNs
YXNzIElEQlRyYW5zYWN0aW9uSW5mbzsKIGNsYXNzIElEQlZhbHVlOwogCitzdHJ1Y3QgQ2xpZW50
T3JpZ2luOwogc3RydWN0IElEQkdldEFsbFJlY29yZHNEYXRhOwogc3RydWN0IElEQkdldFJlY29y
ZERhdGE7CiBzdHJ1Y3QgSURCSXRlcmF0ZUN1cnNvckRhdGE7CkBAIC04Nyw3ICs4OCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRP
bkJlaGFsZk9mU2VydmVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5EQlJlcXVlc3RDYW5j
ZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0
QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG1haW5GcmFtZU9yaWdp
biwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxs
YmFja0lEKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBDbGllbnRPcmlnaW4mKSA9
IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25U
b0NsaWVudC5jcHAKaW5kZXggNjQ2ZjliMjU5NjFmMzkyNmMyMWVkMDE0NzJmNTA3NzAwZmZiMWU4
OC4uMTBjM2E0ZDY2MmY0NzEzODQ1NTQyZWEyZDQ2NTM2ZTZhOTY3MzVmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTE4MSwxMCArMTgxLDEwIEBAIHZvaWQgSURCQ29u
bmVjdGlvblRvQ2xpZW50Ojpub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpCiAgICAgICAgIG1fZGVsZWdhdGUtPm5vdGlmeU9wZW5EQlJlcXVlc3RCbG9j
a2VkKHJlcXVlc3RJZGVudGlmaWVyLCBvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTsKIH0KIAotdm9p
ZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3Qg
Y2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpCit2b2lkIElE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3Rv
cjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYgZGF0YWJhc2VzKQogewogICAgIGlmIChtX2Rl
bGVnYXRlKQotICAgICAgICBtX2RlbGVnYXRlLT5kaWRHZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxi
YWNrSUQsIGRhdGFiYXNlTmFtZXMpOworICAgICAgICBtX2RlbGVnYXRlLT5kaWRHZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIGRhdGFiYXNlcyk7CiB9CiAK
IHZvaWQgSURCQ29ubmVjdGlvblRvQ2xpZW50OjpyZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihV
bmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlv
blRvQ2xpZW50LmgKaW5kZXggY2U1YzgyZGZlNjBlMWExYzFlMmVkMzUyYWMyMzRmNDBhODUxMTM5
Ny4uZTRlYjlmY2Y1NTIzMTBmNTBkNDFmNDZiNDU0ZjVlMzNhOWYwYmEwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJD
b25uZWN0aW9uVG9DbGllbnQuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaCIK
KyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KQEAgLTc0LDcgKzc1LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBub3RpZnlPcGVuREJSZXF1
ZXN0QmxvY2tlZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVy
LCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9uKTsKIAotICAgIHZvaWQg
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZGF0YWJhc2VOYW1lcyk7CisgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgVmVjdG9yPElE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+Jik7CiAKICAgICB2b2lkIHJlZ2lzdGVyRGF0YWJhc2VD
b25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOwogICAgIHZvaWQgdW5yZWdp
c3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25u
ZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmgKaW5kZXggNWVhNWEyZTdk
MmQwNGU5NzZmMWFjYzI5MTVmMGI1MzEyMmNkYjMxMS4uZDI0OTFkNWIwOTllMzE4YTBkMjAzYmYz
ZmQxNTdiMjhlNjhmZTMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudERl
bGVnYXRlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgogI2luY2x1ZGUgIklE
QlJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC03MCw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2xvc2VGcm9tU2VydmVyKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlv
biYsIGNvbnN0IElEQkVycm9yJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlPcGVuREJS
ZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlm
aWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9uKSA9IDA7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lE
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1lcykgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiwgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JikgPSAw
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IGRlOTE2YzY2
MzU2MDZiYTlkMzVjMzMxZTc4YmExOTIwNGZhNGMyYTUuLjFkY2FkM2U2Yjg5NDU2N2I2N2U2ZWMx
YzE4ZTUzZjNkYjAzNzU3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC01MDcsMzMgKzUwNywzNCBAQCB2b2lk
IElEQlNlcnZlcjo6b3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYg
cmVxdWVzdERhdGEpCiAgICAgICAgIG1fdW5pcXVlSURCRGF0YWJhc2VNYXAucmVtb3ZlKHVuaXF1
ZUlEQkRhdGFiYXNlLT5pZGVudGlmaWVyKCkpOwogfQogCi12b2lkIElEQlNlcnZlcjo6Z2V0QWxs
RGF0YWJhc2VOYW1lcyhJREJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkK
K3ZvaWQgSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSURCQ29ubmVj
dGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IENsaWVudE9yaWdpbiYgb3Jp
Z2luKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2xvY2su
aXNIZWxkKCkpOwogCiAgICAgYXV0byBkYXRhYmFzZURpcmVjdG9yeVBhdGggPSB0aGlzLT5kYXRh
YmFzZURpcmVjdG9yeVBhdGhJc29sYXRlZENvcHkoKTsKLSAgICBTdHJpbmcgb2xkRGlyZWN0b3J5
ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290
KG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAi
djAiKTsKKyAgICBTdHJpbmcgb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpk
YXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbi50b3BPcmlnaW4sIG9yaWdpbi5j
bGllbnRPcmlnaW4sIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYwIik7CiAgICAgVmVjdG9yPFN0
cmluZz4gZmlsZXMgPSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KG9sZERpcmVjdG9yeSwgIioi
X3MpOwotICAgIFZlY3RvcjxTdHJpbmc+IGRhdGFiYXNlczsKKyAgICBWZWN0b3I8SURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvbj4gZGF0YWJhc2VzOwogICAgIGZvciAoYXV0byYgZmlsZSA6IGZpbGVz
KSB7Ci0gICAgICAgIFN0cmluZyBlbmNvZGVkTmFtZSA9IEZpbGVTeXN0ZW06Omxhc3RDb21wb25l
bnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goZmlsZSk7Ci0gICAgICAgIGRhdGFiYXNlcy5h
cHBlbmQoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVGcm9tRW5jb2RlZEZpbGVu
YW1lKGVuY29kZWROYW1lKSk7CisgICAgICAgIGF1dG8gZGF0YWJhc2VUdXBsZSA9IFNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKFNRTGl0ZUlEQkJh
Y2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeShmaWxlKSk7CisgICAgICAg
IGlmICghZGF0YWJhc2VUdXBsZS5uYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGRhdGFiYXNl
cy5hcHBlbmQoZGF0YWJhc2VUdXBsZSk7CiAgICAgfQogCi0gICAgU3RyaW5nIGRpcmVjdG9yeSA9
IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdCht
YWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYx
Iik7CisgICAgU3RyaW5nIGRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJh
c2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4udG9wT3JpZ2luLCBvcmlnaW4uY2xpZW50
T3JpZ2luLCBkYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpOwogICAgIGZpbGVzID0gRmlsZVN5
c3RlbTo6bGlzdERpcmVjdG9yeShkaXJlY3RvcnksICIqIl9zKTsKICAgICBmb3IgKGF1dG8mIGZp
bGUgOiBmaWxlcykgewotICAgICAgICBhdXRvIGRhdGFiYXNlTmFtZSA9IFNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6ZGF0YWJhc2VOYW1lRnJvbUZpbGUoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxs
RGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5KGZpbGUpKTsKLSAgICAgICAgaWYgKCFkYXRhYmFzZU5h
bWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgZGF0YWJhc2VzLmFwcGVuZChkYXRhYmFzZU5hbWUp
OworICAgICAgICBhdXRvIGRhdGFiYXNlVHVwbGUgPSBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRh
dGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxE
YXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoZmlsZSkpOworICAgICAgICBpZiAoIWRhdGFiYXNlVHVw
bGUubmFtZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBkYXRhYmFzZXMuYXBwZW5kKGRhdGFiYXNl
VHVwbGUpOwogICAgIH0KIAogICAgIGF1dG8gY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5n
ZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIGlmICghY29ubmVjdGlvbikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgY29ubmVjdGlvbi0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhj
YWxsYmFja0lELCBkYXRhYmFzZXMpOworICAgIGNvbm5lY3Rpb24tPmRpZEdldEFsbERhdGFiYXNl
TmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzKTsKIH0KIAogdm9p
ZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShXYWxsVGlt
ZSBtb2RpZmljYXRpb25UaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IDQwOTg3NDlmNTc4N2IwNzljN2ExZWVhODQx
OGU2MTI5OGU3N2RjYmQuLjc3YjdmNTg0OTI4OGZlMDFkZWI0ZjJiODQ2ZWEzNWFjZjZkNzE2YTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmgKQEAgLTg5LDcgKzg5LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVy
LCBJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERh
dGEmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhJREJD
b25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0
YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IENsaWVudE9yaWdpbiYp
OworCiAKICAgICB2b2lkIHJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFi
YXNlQ29ubmVjdGlvbiYpOwogICAgIHZvaWQgdW5yZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihV
bmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9y
ZS5jcHAKaW5kZXggZWFhZDdlOTBiZWRmNmVkZGI0ZTllMWQ1ZmI3MDA2OGZhMTRmZTM3OC4uYzlk
MDg3NDVhYzViODczZWNkZjEzNmM4YjI4OGM2NTg2YmEwZmNmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QkJhY2tpbmdTdG9yZS5jcHAKQEAgLTkxMiw3ICs5MTIsNyBAQCBTdHJpbmcgU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoKCkgY29uc3QKICAgICByZXR1cm4gZnVsbERhdGFi
YXNlUGF0aEZvckRpcmVjdG9yeShtX2RhdGFiYXNlRGlyZWN0b3J5KTsKIH0KIAotU3RyaW5nIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lRnJvbUZpbGUoY29uc3QgU3RyaW5nJiBk
YXRhYmFzZVBhdGgpCitJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKGNvbnN0IFN0cmluZyYgZGF0YWJh
c2VQYXRoKQogewogICAgIFNRTGl0ZURhdGFiYXNlIGRhdGFiYXNlOwogICAgIGlmICghZGF0YWJh
c2Uub3BlbihkYXRhYmFzZVBhdGgpKSB7CkBAIC05MjEsMTAgKzkyMSwyNiBAQCBTdHJpbmcgU1FM
aXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVGcm9tRmlsZShjb25zdCBTdHJpbmcmIGRh
dGFiYXNlUGF0aCkKICAgICB9CiAgICAgaWYgKCFkYXRhYmFzZS50YWJsZUV4aXN0cygiSURCRGF0
YWJhc2VJbmZvIl9zKSkgewogICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBmaW5kIElEQkRh
dGFiYXNlSW5mbyB0YWJsZSBhbmQgZ2V0IGRhdGFiYXNlIG5hbWUoJWkpIC0gJXMiLCBkYXRhYmFz
ZS5sYXN0RXJyb3IoKSwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBkYXRhYmFz
ZS5jbG9zZSgpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KLSAgICBTUUxpdGVTdGF0ZW1l
bnQgc3FsKGRhdGFiYXNlLCAiU0VMRUNUIHZhbHVlIEZST00gSURCRGF0YWJhc2VJbmZvIFdIRVJF
IGtleSA9ICdEYXRhYmFzZU5hbWUnOyIpOwotICAgIHJldHVybiBzcWwuZ2V0Q29sdW1uVGV4dCgw
KTsKKworICAgIFNRTGl0ZVN0YXRlbWVudCBuYW1lc3FsKGRhdGFiYXNlLCAiU0VMRUNUIHZhbHVl
IEZST00gSURCRGF0YWJhc2VJbmZvIFdIRVJFIGtleSA9ICdEYXRhYmFzZU5hbWUnOyIpOworICAg
IGF1dG8gZGF0YWJhc2VOYW1lID0gbmFtZXNxbC5nZXRDb2x1bW5UZXh0KDApOworCisgICAgU1FM
aXRlU3RhdGVtZW50IHZlcnNxbChkYXRhYmFzZSwgIlNFTEVDVCB2YWx1ZSBGUk9NIElEQkRhdGFi
YXNlSW5mbyBXSEVSRSBrZXkgPSAnRGF0YWJhc2VWZXJzaW9uJzsiX3MpOworICAgIFN0cmluZyBz
dHJpbmdWZXJzaW9uID0gdmVyc3FsLmdldENvbHVtblRleHQoMCk7CisgICAgYm9vbCBvazsKKyAg
ICB1aW50NjRfdCBkYXRhYmFzZVZlcnNpb24gPSBzdHJpbmdWZXJzaW9uLnRvVUludDY0U3RyaWN0
KCZvayk7CisgICAgaWYgKCFvaykgeworICAgICAgICBMT0dfRVJST1IoIkRhdGFiYXNlIHZlcnNp
b24gb24gZGlzayAoJyVzJykgZG9lcyBub3QgY2xlYW5seSBjb252ZXJ0IHRvIGFuIHVuc2lnbmVk
IDY0LWJpdCBpbnRlZ2VyIHZlcnNpb24iLCBzdHJpbmdWZXJzaW9uLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICBkYXRhYmFzZS5jbG9zZSgpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKwor
ICAgIGRhdGFiYXNlLmNsb3NlKCk7CisKKyAgICByZXR1cm4geyBkYXRhYmFzZU5hbWUsIGRhdGFi
YXNlVmVyc2lvbiB9OwogfQogCiBTdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0
YWJhc2VEaXJlY3RvcnlXaXRoVXBncmFkZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgK
aW5kZXggYmI1ZWJiNTU5MGU3NDczMDc5Mjc0OWZlZTJjZjFhYWM1YzY5NDM4Zi4uY2YyNTA1YTgw
OGQzNGFiMWEwODllNGY5MjlkYTJkMTA0YWMzODA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5n
U3RvcmUuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIklEQkJhY2tpbmdTdG9yZS5oIgog
I2luY2x1ZGUgIklEQkRhdGFiYXNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNl
SW5mby5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCIKICNpbmNsdWRl
ICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTUUxpdGVJREJUcmFuc2FjdGlv
bi5oIgogI2luY2x1ZGUgIlNRTGl0ZVN0YXRlbWVudEF1dG9SZXNldFNjb3BlLmgiCkBAIC0xMDEs
NyArMTAyLDcgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5KCkgY29u
c3QgeyByZXR1cm4gbV9kYXRhYmFzZURpcmVjdG9yeTsgfTsKICAgICBzdGF0aWMgU3RyaW5nIGZ1
bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIFN0
cmluZyBkYXRhYmFzZU5hbWVGcm9tRmlsZShjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgSURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvbiBkYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbUZpbGUoY29u
c3QgU3RyaW5nJik7CiAKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJl
dHVybiBtX3Nlc3Npb25JRDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jOWNmNzdiNWYzNmIwZDA3YTk4OTMwMzQ1OTIwYWZkNDNmMDM2YTQ3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIERhcnJ5bCBQb2d1ZSAoZGFycnlsQGRwb2d1ZS5jYSkKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVj
dCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIHsKKyAgICBTdHJpbmcgbmFtZTsKKyAgICB1aW50
NjRfdCB2ZXJzaW9uIHsgMCB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIElEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb24mKTsKKworICAgIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24gaXNvbGF0ZWRD
b3B5KCkgY29uc3Q7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IG5hbWUgPDwgdmVyc2lvbjsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4KK2Jvb2wgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24mIGluZm8pCit7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShpbmZvLm5hbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGluZm8udmVyc2lvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHJldHVybiB0cnVlOworfQorCitpbmxpbmUgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbiBJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uOjppc29sYXRlZENvcHkoKSBjb25zdAoreworICAgIHJldHVy
biB7IG5hbWUuaXNvbGF0ZWRDb3B5KCksIHZlcnNpb24gfTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CmluZGV4IDQ3NjIyYjk1YzI1MGRiZmRiNWY2MGMyM2Y5MDMzNDJjMDQ5ZmFjM2IuLmE5M2U0MDYw
ZTg1YzM2N2NjMjIyMDMwYWQ1ZTc1NjQ4YWZhMDIzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04OCw2
ICs4OCw3IEBAIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
LmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmNwcAorTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwCiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0QWxsUmVz
dWx0LmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZmNjk4NWIx
NmM3ZGQ4NGZhMGU4NDBhMTM2MTZhNzNhMjBmZjBjYmQuLjlmZDM4MTVkYTkxY2IwODBjMzUzNmY2
NzA1OTI3YzRhNmYxYzQzZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI1OTUsNiArMjU5NSw4IEBACiAJCThGNjc1NjFCMTI4
OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkw
MDE3NzQxMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzczRTEyRTAzNDc4
MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5MDAxNzg4MTEy
RTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEyRTAzNzA3MDA2NDg0
NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkwMTZFQTREMjQ1NEQ4
MTMwMDIxRDlEMSAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDE2RUE0QzI0NTREODEzMDAyMUQ5RDEg
LyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkwRTM1MUMyMjQ3RTQ2RTQwMEZCRjI0RiAvKiBJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTBFMzUxQkQyNDdFM0Q0ODAwRkJGMjRGIC8qIElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTEwOUU5QzgyMjJDQUJDQTAwQkI2MjY0IC8qIEluc3BlY3Rv
ckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MTA5RTlDNTIyMkNBQkM4MDBCQjYyNjQgLyogSW5zcGVjdG9yQXVkaXRS
ZXNvdXJjZXNPYmplY3QuaCAqLzsgfTsKIAkJOTEwOUU5QzgyMjJDQUJDQTAwQkI2MjY1IC8qIEpT
SW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxMDlFOUM1MjIyQ0FCQzgwMEJCNjI2NSAvKiBKU0luc3Bl
Y3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi87IH07CiAJCTkxMjc4RDVFMjFERURBRDYwMEI1
NzE4NCAvKiBQYWdlQXVkaXRBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTEyNzhENUMyMURFREFENTAwQjU3MTg0IC8qIFBhZ2VBdWRpdEFnZW50
LmggKi87IH07CkBAIC0xMDczMSw2ICsxMDczMyw5IEBACiAJCTkwMDE3NzNGMTJFMDM0NzgwMDY0
ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVy
aXZhdGl2ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzg3RjEyRTAz
NzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MDE2RUE0QzI0NTREODEzMDAyMUQ5RDEgLyogSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkwRTM1MUJDMjQ3RTNENDgwMEZC
RjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkwRTM1MUJEMjQ3RTNENDgwMEZC
RjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTA5RTlDNTIyMkNBQkM4MDBCQjYyNjQgLyog
SW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTEwOUU5QzUyMjJDQUJDODAwQkI2MjY1IC8qIEpTSW5zcGVjdG9yQXVk
aXRSZXNvdXJjZXNPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJ
bnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MTA5RTlDNzIyMkNBQkM5MDBCQjYyNjQgLyogSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNP
YmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9y
QXVkaXRSZXNvdXJjZXNPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTkzNTcsNiArMTkzNjIsNyBAQAogCQkJCTUxMTBGQ0ZCMUUwMzYyQTUwMDZGOEQwQiAvKiBJREJD
dXJzb3JSZWNvcmQuaCAqLywKIAkJCQk1MUJBNEFDMTFCQkI1Q0JGMDBERjNENkQgLyogSURCRGF0
YWJhc2VJbmZvLmNwcCAqLywKIAkJCQk1MUJBNEFDMjFCQkI1Q0JGMDBERjNENkQgLyogSURCRGF0
YWJhc2VJbmZvLmggKi8sCisJCQkJOTAxNkVBNEMyNDU0RDgxMzAwMjFEOUQxIC8qIElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb24uaCAqLywKIAkJCQk1MTQ4NDUzQzFCQjlEMDc2MDA2QTcyRUQgLyog
SURCRXJyb3IuY3BwICovLAogCQkJCTUxNDg0NTNEMUJCOUQwNzYwMDZBNzJFRCAvKiBJREJFcnJv
ci5oICovLAogCQkJCTUxOURCQzZEMURDMDBGQjkwMDMyOUJGNSAvKiBJREJHZXRBbGxSZWNvcmRz
RGF0YS5jcHAgKi8sCkBAIC0yMjgzNCw2ICsyMjg0MCw4IEBACiAJCQkJNTFENzE5N0UxODExMDZE
RjAwMTZEQzUxIC8qIElEQkRhdGFiYXNlLmlkbCAqLywKIAkJCQk1MTAzMTA1RTFCQThFMDkwMDAz
MzI5QzAgLyogSURCRGF0YWJhc2VJZGVudGlmaWVyLmNwcCAqLywKIAkJCQk1MTAzMTA1RjFCQThF
MDkwMDAzMzI5QzAgLyogSURCRGF0YWJhc2VJZGVudGlmaWVyLmggKi8sCisJCQkJOTBFMzUxQkMy
NDdFM0Q0ODAwRkJGMjRGIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcCAq
LywKKwkJCQk5MEUzNTFCRDI0N0UzRDQ4MDBGQkYyNEYgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvblJlcXVlc3QuaCAqLywKIAkJCQk1MTY0NUI0NjFCOUY4ODlCMDBGNzg5Q0UgLyogSURCRmFj
dG9yeS5jcHAgKi8sCiAJCQkJNTE2NDVCNDcxQjlGODg5QjAwRjc4OUNFIC8qIElEQkZhY3Rvcnku
aCAqLywKIAkJCQk1MUQ3MTk4QTE4MTEwNkRGMDAxNkRDNTEgLyogSURCRmFjdG9yeS5pZGwgKi8s
CkBAIC0yOTk3MCw2ICsyOTk3OCw3IEBACiAJCQkJQzMzMEEyMjMxM0VDMTk2QjAwMDBCNDVCIC8q
IENvbG9yQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzM3Q0RFQkQxNDlFRjIwMzAwNDIw
OTBEIC8qIENvbG9yQ2hvb3NlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ4RDJBQTUy
MTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAorCQkJCTdDQUM2
QUYwMjQ3RjQxMTAwMEU2MUQ1OSAvKiBDb2xvckNvbXBvbmVudHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxMDNCN0RGMURCMDE1NjcwMDhCQjg5MCAvKiBDb2xvckhhc2guaCBpbiBIZWFkZXJzICov
LAogCQkJCUY1NUIzREI0MTI1MUYxMkQwMDNFRjI2OSAvKiBDb2xvcklucHV0VHlwZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0U1MTY5RTcyMUYxQjg0NzAwRUE0Rjc4IC8qIENvbG9ySU9TLmggaW4g
SGVhZGVycyAqLywKQEAgLTMwOTEyLDYgKzMwOTIxLDggQEAKIAkJCQk1MTg1RkM4MTFCQjRDNEU4
MDAxMjg5OEYgLyogSURCRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQzg3MUJC
NEM0RTgwMDEyODk4RiAvKiBJREJEYXRhYmFzZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxQkE0QUM0MUJCQjVDRDgwMERGM0Q2RCAvKiBJREJEYXRhYmFzZUluZm8uaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkwMTZFQTREMjQ1NEQ4MTMwMDIxRDlEMSAvKiBJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MEUzNTFDMjI0N0U0NkU0MDBGQkYyNEYg
LyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxNDg0NTNGMUJCOUQwN0UwMDZBNzJFRCAvKiBJREJFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE4NUZDOEQxQkI0QzRFODAwMTI4OThGIC8qIElEQkZhY3RvcnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxOURCQzZGMURDMDExQTcwMDMyOUJGNSAvKiBJREJHZXRBbGxSZWNvcmRzRGF0YS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zMjgwMCw3ICszMjgxMSw2IEBACiAJCQkJQTUwNzFFODcxQzU2
RDBFMTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxODkzOEIyMjQyOUY5QjQwMDdGREM0MSAvKiBSZXRyaWV2ZVJlY29yZHNPcHRpb25zLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDMxNjBBNTEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJiLmggaW4g
SGVhZGVycyAqLywKLQkJCQk3Q0FDNkFGMDI0N0Y0MTEwMDBFNjFENTkgLyogQ29sb3JDb21wb25l
bnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjBBNzEyQjAyNkY3MDBDMUEzNTkgLyogUmV2
ZXJiQWNjdW11bGF0aW9uQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjBBOTEyQjAy
NkY3MDBDMUEzNTkgLyogUmV2ZXJiQ29udm9sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMx
NjBBQjEyQjAyNkY3MDBDMUEzNTkgLyogUmV2ZXJiQ29udm9sdmVyU3RhZ2UuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCA3OWIwYjMxOTMx
MDk5OWVlOTM4YzQ2NWI1MTgzNTEwZjU5NTI3NTlkLi4xM2I1MzYwY2M1N2VlN2VhMjViNGUyMTM3
NTExOWMzM2JmOWZiMjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApA
QCAtMTUyLDcgKzE1Miw3IEBAIGNsYXNzIEVtcHR5RGF0YWJhc2VQcm92aWRlciBmaW5hbCA6IHB1
YmxpYyBEYXRhYmFzZVByb3ZpZGVyIHsKICAgICAgICAgdm9pZCBhYm9ydE9wZW5BbmRVcGdyYWRl
TmVlZGVkKHVpbnQ2NF90LCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKSBmaW5hbCB7IH0K
ICAgICAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90LCBjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRP
bkJlaGFsZk9mU2VydmVyKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2Fu
Y2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJikgZmluYWwgeyB9Ci0gICAgICAgIHZvaWQgZ2V0
QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmLCB1aW50NjRfdCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQgZ2V0QWxsRGF0
YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0
IENsaWVudE9yaWdpbiYpIGZpbmFsIHsgfQogICAgICAgICB+RW1wdHlJREJDb25uZWN0aW9uVG9T
ZXJ2ZXJEZWxldGVnYXRlKCkgeyB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b0NsaWVudC5jcHAKaW5kZXggZjJhZmUxYThiOGFiOGNlYWFhMWNjNzEyZWZhNGVhYzE3NmVmNjNk
NC4uZDBiODhmMjNmZDdkYTRlYzZlYzYzYTQ2MjJlM2MwMmQ3NjRmMjQ2MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC0xOTMsOSArMTkzLDkgQEAgdm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6Om5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IFdl
YkNvcmU6OklEQlJlc28KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6Ok5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKHJlcXVlc3RJZGVudGlmaWVyLCBvbGRWZXJz
aW9uLCBuZXdWZXJzaW9uKSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpk
aWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBkYXRhYmFzZU5hbWVzKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRp
ZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNlcykKIHsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZEdldEFsbERhdGFiYXNlTmFtZXMoY2FsbGJh
Y2tJRCwgZGF0YWJhc2VOYW1lcykpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6RGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVu
dGlmaWVyLCBkYXRhYmFzZXMpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IDk5NTA4M2IwNDZhZDBkZDk3ZWUzMTk4NzIw
OTUyYmRlY2JjODkzNmUuLjczMTVmMTBhZmMzN2ExZjE1NDY1MjQyYWIwZDJjZDE5OWFkM2Y4NjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBAIC04Miw3ICs4Miw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6SURCU2VydmVyOjpV
bmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpIGZp
bmFsOwogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6
SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVy
c2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikgZmluYWw7CiAKLSAgICB2b2lkIGRpZEdldEFsbERh
dGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRh
dGFiYXNlTmFtZXMpIGZpbmFsOworICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZl
cnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpIGZpbmFsOwogCiAgICAgdGVt
cGxhdGU8Y2xhc3MgTWVzc2FnZVR5cGU+IHZvaWQgaGFuZGxlR2V0UmVzdWx0KGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKaW5kZXggNTA4YmQ5MjkxMzQ5MDdh
MTY5YjY1MWM3YjhhZWUxYzkyNzcyZjhkMy4uOTg5MTFmNTI0ZmZmYzJiNjI1ZWYyMWIwOWJiNzEz
YzBmOTBiMWNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRl
eGVkREIvV2ViSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCkBAIC0zMTUsNyArMzE1LDcgQEAgdm9pZCBXZWJJ
REJTZXJ2ZXI6Om9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVz
dERhdGEmIHJlcXVlc3QKICAgICBtX3NlcnZlci0+b3BlbkRCUmVxdWVzdENhbmNlbGxlZChyZXF1
ZXN0RGF0YSk7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
b3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViSURCU2VydmVyOjpn
ZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbikKIHsKICAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzIzLDcgKzMyMyw3IEBAIHZvaWQgV2ViSURCU2VydmVy
OjpnZXRBbGxEYXRhYmFzZU5hbWVzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3Qg
V2ViQ29yCiAgICAgQVNTRVJUKHdlYklEQkNvbm5lY3Rpb24pOwogCiAgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7Ci0gICAgbV9zZXJ2ZXItPmdldEFsbERhdGFiYXNlTmFt
ZXMod2ViSURCQ29ubmVjdGlvbi0+aWRlbnRpZmllcigpLCBtYWluRnJhbWVPcmlnaW4sIG9wZW5p
bmdPcmlnaW4sIGNhbGxiYWNrSUQpOworICAgIG1fc2VydmVyLT5nZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMod2ViSURCQ29ubmVjdGlvbi0+aWRlbnRpZmllcigpLCByZXF1ZXN0SWRlbnRp
Zmllciwgb3JpZ2luKTsKIH0KIAogdm9pZCBXZWJJREJTZXJ2ZXI6OmFkZENvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9j
ZXNzSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQlNlcnZlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCU2VydmVyLmgKaW5kZXggZDQwM2Y2Yzg0MGMzMDI1MjI3NGQyZDNhNzgy
NDVlMjI5ODczMDI2Ny4uODUzODI3N2I2ZDJjOWQ4MWRjNzNhMzc3Nzk1YjU0ODAwZjk4MGEyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCU2VydmVyLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWJvcnRPcGVu
QW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
cik7CiAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmll
ciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkluZGV4ZWREQjo6Q29ubmVjdGlv
bkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxl
ZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpOwotICAgIHZvaWQgZ2V0QWxsRGF0YWJh
c2VOYW1lcyhJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCB1aW50NjRfdCBjYWxsYmFj
a0lEKTsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhJUEM6OkNvbm5l
Y3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mKTsKIAogICAgIHZvaWQgYWRkQ29ubmVjdGlvbihJUEM6OkNvbm5l
Y3Rpb24mLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmVDb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCmlu
ZGV4IDIwOWY1NDAyNjE1MDUxZTY5N2UyZmRkZDU3NzM4OTQxMmIzZGQ2ZDMuLmYxNWQ2M2Y5OGYy
NDE5OGU3MzFjMjA3ZWQ4N2Y5ZDA1ZDExYjk2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2Fn
ZXMuaW4KQEAgLTUwLDcgKzUwLDcgQEAgbWVzc2FnZXMgLT4gV2ViSURCU2VydmVyIHsKICAgICBE
aWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwg
V2ViQ29yZTo6SW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlciBjb25u
ZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikKICAgICBPcGVuREJSZXF1ZXN0Q2FuY2VsbGVk
KFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhKQogCi0gICAgR2V0QWxsRGF0YWJh
c2VOYW1lcyhzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgc3Ry
dWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBj
YWxsYmFja0lEKSBXYW50c0Nvbm5lY3Rpb24KKyAgICBHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMoV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBz
dHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgV2FudHNDb25uZWN0aW9uCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IDBlOTc4MzY3NzlkNjYwZDYwOGIzMGYx
YjQxNmE1NDFjOGUzMWNiYWMuLmEwZjViNDIwN2MxM2FjMjBiYjIyMjRkMWNjOTg3MDljMzA4MjVl
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApA
QCAtMjA3LDkgKzIwNyw5IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpvcGVuREJS
ZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1CiAgICAgc2VuZChNZXNz
YWdlczo6V2ViSURCU2VydmVyOjpPcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKHJlcXVlc3REYXRhKSk7
CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVz
KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luKQogewotICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYklEQlNlcnZlcjo6R2V0QWxsRGF0YWJhc2VOYW1lcyh0b3BPcmlnaW4sIG9wZW5pbmdP
cmlnaW4sIGNhbGxiYWNrSUQpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXI6Okdl
dEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luKSk7
CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWREZWxldGVEYXRhYmFzZShj
b25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCkBAIC0zMjIsOSArMzIyLDkgQEAgdm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6Om5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IElE
QlJlc291cmNlSWRlbnQKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+bm90aWZ5T3BlbkRCUmVx
dWVzdEJsb2NrZWQocmVxdWVzdElkZW50aWZpZXIsIG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pOwog
fQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1l
cyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1l
cykKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmll
ciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiBkYXRh
YmFzZXMpCiB7Ci0gICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZEdldEFsbERhdGFiYXNlTmFt
ZXMoY2FsbGJhY2tJRCwgZGF0YWJhc2VOYW1lcyk7CisgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXIt
PmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgZGF0
YWJhc2VzKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNvbm5lY3Rpb25U
b1NlcnZlckxvc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFi
YXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
aAppbmRleCA5NzA1OGQzZWUxOGFjYjkwNmY0M2NkNWQ1ZmQ5OWI2ZjYyODQ4NzFhLi4yMDRiOGZm
MTBiZmQ0ZjA4ODNlNTY0YjdlOWNkYjM2MDJhNTA4Y2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtODAsNyArODAsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRP
bkJlaGFsZk9mU2VydmVyKSBmaW5hbDsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQo
Y29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmKSBmaW5hbDsKIAotICAgIHZvaWQgZ2V0QWxs
RGF0YWJhc2VOYW1lcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50
NjRfdCBjYWxsYmFja0lEKSBmaW5hbDsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRW
ZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mKSBmaW5hbDsKIAogICAgIC8vIE1lc3NhZ2VzIHJlY2VpdmVkIGZy
b20gTmV0d29yayBQcm9jZXNzCiAgICAgdm9pZCBkaWREZWxldGVEYXRhYmFzZShjb25zdCBXZWJD
b3JlOjpJREJSZXN1bHREYXRhJik7CkBAIC0xMDUsNyArMTA1LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZFN0YXJ0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJik7CiAg
ICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKTsKICAgICB2b2lkIG5vdGlmeU9wZW5E
QlJlcXVlc3RCbG9ja2VkKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVx
dWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24p
OwotICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1lcyk7CisgICAgdm9pZCBkaWRHZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlm
aWVyJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+Jik7
CiAKICAgICBSZWY8V2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1f
Y29ubmVjdGlvblRvU2VydmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbgppbmRleCA4ZDk3ZTQ0ZTM1YzNjMGZmZTUz
ZDA2YzNiNmRiYjMyMmU3ZDZmMWMwLi42NGYyNjM5YzBhNDRjMmM3OGNlZjBiMmYwZmJmZWUyZDUz
NjU1YjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyLm1lc3NhZ2VzLmluCkBAIC00Nyw3ICs0Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlciB7CiAgICAgRGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFi
YXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OklEQkVycm9yIGVycm9yKSBmaW5hbDsK
ICAgICBOb3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50
aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5l
d1ZlcnNpb24pCiAKLSAgICBEaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNr
SUQsIFZlY3RvcjxTdHJpbmc+IGRhdGFiYXNlTmFtZXMpCisgICAgRGlkR2V0QWxsRGF0YWJhc2VO
YW1lc0FuZFZlcnNpb25zKFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRl
bnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+IGRhdGFi
YXNlcykKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcAppbmRleCBh
NTQ5YjA0OTA1YzZhMjIzY2Q2NzZjMDkwYzA0YTRiNzE3MmU3ZmEwLi45NjIzOTJkNzk1ZWFhOTA0
ZGIzNmJlYjAxY2Q3YTRmMDZkYWM5MzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcApAQCAtNDc2LDE4ICs0NzYsMTggQEAgdm9p
ZCBJblByb2Nlc3NJREJTZXJ2ZXI6Om9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgV2ViQ29y
ZTo6SURCUmVxdWVzdERhdGEmIHIKICAgICB9KTsKIH0KIAotdm9pZCBJblByb2Nlc3NJREJTZXJ2
ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBtYWluRnJh
bWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0
X3QgY2FsbGJhY2tJRCkKK3ZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5h
bWVzQW5kVmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1
ZXN0SWRlbnRpZmllciwgY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCiB7Ci0gICAgZGlzcGF0
Y2hUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIg
PSBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+aWRlbnRpZmllcigpLCBtYWluRnJhbWVPcmlnaW4gPSBt
YWluRnJhbWVPcmlnaW4uaXNvbGF0ZWRDb3B5KCksIG9wZW5pbmdPcmlnaW4gPSBvcGVuaW5nT3Jp
Z2luLmlzb2xhdGVkQ29weSgpLCBjYWxsYmFja0lEXSB7CisgICAgZGlzcGF0Y2hUYXNrKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBtX2Nvbm5lY3Rp
b25Ub1NlcnZlci0+aWRlbnRpZmllcigpLCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3Jp
Z2luLmlzb2xhdGVkQ29weSgpXSB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVy
LT5sb2NrKCkpOwotICAgICAgICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1lcyhpZGVudGlm
aWVyLCBtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNrSUQpOworICAgICAg
ICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGlkZW50aWZpZXIsIHJl
cXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pOwogICAgIH0pOwogfQogCi12b2lkIEluUHJvY2Vzc0lE
QlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1lcykKK3ZvaWQgSW5Qcm9jZXNzSURCU2VydmVy
OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVz
b3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiBkYXRhYmFzZXMpCiB7Ci0gICAgZGlzcGF0Y2hU
YXNrUmVwbHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2tJ
RCwgZGF0YWJhc2VOYW1lcyA9IGRhdGFiYXNlTmFtZXMuaXNvbGF0ZWRDb3B5KCldIHsKLSAgICAg
ICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZEdldEFsbERhdGFiYXNlTmFtZXMoY2FsbGJhY2tJ
RCwgZGF0YWJhc2VOYW1lcyk7CisgICAgZGlzcGF0Y2hUYXNrUmVwbHkoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIGRhdGFiYXNlcyA9IGRh
dGFiYXNlcy5pc29sYXRlZENvcHkoKV0geworICAgICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBkYXRh
YmFzZXMpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0
b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2Uv
SW5Qcm9jZXNzSURCU2VydmVyLmgKaW5kZXggNjA0N2RkOWY5NWIxM2RjMTE2ZGI4YmVlZjA4OWI2
NGRmNDNjY2ZhNC4uZjY3ZGQzMWRiY2VlMzIyZDAyMzJhNmYyZWRjYmRkYTM0OTE4MDFlMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuaApA
QCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhYm9ydE9wZW5BbmRVcGdyYWRlTmVl
ZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSBmaW5hbDsKICAg
ICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1
ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2Vk
T25CZWhhbGZPZlNlcnZlcikgZmluYWw7CiAgICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVk
KGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJikgZmluYWw7Ci0gICAgdm9pZCBnZXRBbGxE
YXRhYmFzZU5hbWVzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgbWFpbkZyYW1l
T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4s
IHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFsOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1l
c0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGZpbmFsOwogCiAgICAgLy8gSURCQ29ubmVjdGlvblRv
Q2xpZW50CiAgICAgV2ViQ29yZTo6SURCQ29ubmVjdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0IGZpbmFsOwpAQCAtMTE2LDcgKzExNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFN0
YXJ0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmluYWw7CiAgICAg
dm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpIGZpbmFsOwogICAgIHZv
aWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0
X3QgbmV3VmVyc2lvbikgZmluYWw7Ci0gICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVp
bnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKSBm
aW5hbDsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBX
ZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKSBmaW5hbDsKIAogICAgIHZvaWQgY2xvc2VBbmREZWxl
dGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggNTc0NDRhMDJhZTQwMmE2M2IxNmRjMWZlNzFlMDJlYzZjZTk0M2JiNi4u
OGU4MjRlODQwYzZjMjc2NmY5YzQ2ODViMWY4YmY2MmZiZDMzYWZhMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDUtMjggIERhcnJ5bCBQb2d1
ZSAgPGRhcnJ5bEBkcG9ndWUuY2E+CisKKyAgICAgICAgSW5kZXhlZERCOiBTdXBwb3J0IElEQkZh
Y3RvcnkgZGF0YWJhc2VzIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjExMDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRqdXN0IHRlc3QgZXhwZWN0YXRpb25zIGZvciBgSURCRmFjdG9yeS5w
cm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1k
YXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRpb24tZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5h
bnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNS0yOCAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB3ZWItcGxhdGZvcm0t
dGVzdHMvaW50ZXJmYWNlcyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFu
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQKaW5kZXggZTJkZmZh
Yzc0Nzg3YWM1MTg1NTg4NTAyYjZkMGNkNzFlZmVkNzkwZS4uMDY1MDE5ZDEzMDEwOWM3MjRiNTNi
OGE2MGRlYmM5ZjY2NDUzMGM0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnktZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAot
RkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSByZXR1cm5zIGEgcHJvbWlzZS4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBp
bmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRh
YmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBFbnVt
ZXJhdGUgb25lIGRhdGFiYXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEg
ZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFz
ZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVudW1lcmF0ZSBtdWx0aXBsZSBkYXRhYmFzZXMuIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVk
REIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKLUZB
SUwgTWFrZSBzdXJlIGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5v
IGRhdGFiYXNlcy4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1
bmRlZmluZWQpIgotRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAg
Y2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNl
cyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhl
ZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKK1BBU1MgRW5zdXJlIHRoYXQgZGF0YWJhc2Vz
KCkgcmV0dXJucyBhIHByb21pc2UuIAorUEFTUyBFbnVtZXJhdGUgb25lIGRhdGFiYXNlLiAKK1BB
U1MgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4gCitQQVNTIE1ha2Ugc3VyZSBhbiBlbXB0
eSBsaXN0IGlzIHJldHVybmVkIGZvciB0aGUgY2FzZSBvZiBubyBkYXRhYmFzZXMuIAorRkFJTCBF
bnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVu
J3QgY29tbWl0ZWQuIGFzc2VydF9lcXVhbHM6IFRoZSByZXN1bHQgb2YgZGF0YWJhc2VzKCkgc2hv
dWxkIGJlIG9ubHkgdGhvc2UgZGF0YWJhc2VzIHdoaWNoIGhhdmUgYmVlbiBjcmVhdGVkIGF0IHRo
ZSB0aW1lIG9mIGNhbGxpbmcsIHJlZ2FyZGxlc3Mgb2YgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
bnMgY3VycmVudGx5IHJ1bm5pbmcuIGV4cGVjdGVkIDEgYnV0IGdvdCAyCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dl
dC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CmluZGV4IGUyZGZmYWM3NDc4N2FjNTE4NTU4ODUwMmI2ZDBjZDcxZWZl
ZDc5MGUuLjA2NTAxOWQxMzAxMDljNzI0YjUzYjhhNjBkZWJjOWY2NjQ1MzBjNDYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2dldC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAotRkFJTCBFbnN1cmUgdGhh
dCBkYXRhYmFzZXMoKSByZXR1cm5zIGEgcHJvbWlzZS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJh
c2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRl
eGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBFbnVtZXJhdGUgb25lIGRhdGFi
YXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
aW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5l
ZCkiCi1GQUlMIEVudW1lcmF0ZSBtdWx0aXBsZSBkYXRhYmFzZXMuIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERC
LmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCkn
LCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTWFrZSBzdXJlIGFu
IGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWRE
Qi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJ
TCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhh
dmVuJ3QgY29tbWl0ZWQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycg
aXMgdW5kZWZpbmVkKSIKK1BBU1MgRW5zdXJlIHRoYXQgZGF0YWJhc2VzKCkgcmV0dXJucyBhIHBy
b21pc2UuIAorUEFTUyBFbnVtZXJhdGUgb25lIGRhdGFiYXNlLiAKK1BBU1MgRW51bWVyYXRlIG11
bHRpcGxlIGRhdGFiYXNlcy4gCitQQVNTIE1ha2Ugc3VyZSBhbiBlbXB0eSBsaXN0IGlzIHJldHVy
bmVkIGZvciB0aGUgY2FzZSBvZiBubyBkYXRhYmFzZXMuIAorRkFJTCBFbnN1cmUgdGhhdCBkYXRh
YmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIGFz
c2VydF9lcXVhbHM6IFRoZSByZXN1bHQgb2YgZGF0YWJhc2VzKCkgc2hvdWxkIGJlIG9ubHkgdGhv
c2UgZGF0YWJhc2VzIHdoaWNoIGhhdmUgYmVlbiBjcmVhdGVkIGF0IHRoZSB0aW1lIG9mIGNhbGxp
bmcsIHJlZ2FyZGxlc3Mgb2YgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbnMgY3VycmVudGx5IHJ1
bm5pbmcuIGV4cGVjdGVkIDEgYnV0IGdvdCAyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnktZGF0YWJh
c2VzLW9wYXF1ZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVl
LW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggMDY3OWYzOTJlYjVmYWVkMGJkYzE3ZTgxY2I5YjVh
Y2IyMjFiNTJkNC4uZGZhNzEwMmIwMGNjM2FkOGMwMWRiZmQ3ZDBiYzk1OTMxNzZlZTQyMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSw0IEBACiAKLUZBSUwgSURCRmFjdG9yeS5kYXRhYmFzZXMoKSBpbiBub24tc2FuZGJveGVkIGlm
cmFtZSBzaG91bGQgbm90IHJlamVjdCBhc3NlcnRfZXF1YWxzOiBJREJGYWN0b3J5LmRhdGFiYXNl
cygpIHNob3VsZCBub3QgcmVqZWN0IGV4cGVjdGVkICJubyBleGNlcHRpb24iIGJ1dCBnb3QgImlu
ZGV4ZWREQi5kYXRhYmFzZXMgdW5kZWZpbmVkIgotRkFJTCBJREJGYWN0b3J5LmRhdGFiYXNlcygp
IGluIHNhbmRib3hlZCBpZnJhbWUgc2hvdWxkIHJlamVjdCBhc3NlcnRfZXF1YWxzOiBQcm9taXNl
IHNob3VsZCBiZSByZWplY3RlZCB3aXRoIFNlY3VyaXR5RXJyb3IgZXhwZWN0ZWQgIlNlY3VyaXR5
RXJyb3IiIGJ1dCBnb3QgImluZGV4ZWREQi5kYXRhYmFzZXMgdW5kZWZpbmVkIgorUEFTUyBJREJG
YWN0b3J5LmRhdGFiYXNlcygpIGluIG5vbi1zYW5kYm94ZWQgaWZyYW1lIHNob3VsZCBub3QgcmVq
ZWN0IAorUEFTUyBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGluIHNhbmRib3hlZCBpZnJhbWUgc2hv
dWxkIHJlamVjdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmZhY3Rvcnktb3JpZ2luLWlzb2xhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYTMz
MDk4ZWI4ZjY1ZmZjMTljYzdkYWZkNzk5NWU4MjAxNDEzZDY1NC4uY2I5ODVmYzVmMmU2Zjg0ZThl
OTU5NTMwZTM4N2VkYTlhYTE1ZWNmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0
aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgb3JpZ2lu
cyBoYXZlIHNlcGFyYXRlIGxvY2tpbmcgc2NoZW1lcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFz
ZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4
ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCitQQVNTIFRlc3QgdG8gbWFrZSBzdXJlIHRo
YXQgb3JpZ2lucyBoYXZlIHNlcGFyYXRlIGxvY2tpbmcgc2NoZW1lcyAKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRs
aGFybmVzcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4
IDExMjhkYTYyYjhjZDQ0MmM3MTIwMjY3ZDIxNjdjMTRlODU3ZWFlNTMuLmIxZWVjZDc5YzBkMzM5
ODU3NjE5ZTE0Y2RkOWYzMDZhNDU5YTAzM2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQKQEAgLTUyLDcgKzUyLDcgQEAg
UEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWMKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24g
b3BlbihET01TdHJpbmcsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9uZykgCiBQQVNTIElEQkZh
Y3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nKSAKLUZB
SUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMg
b3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJkYXRhYmFzZXMiIG1pc3NpbmcKK1BBU1MgSURC
RmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSAKIFBBU1MgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjbXAoYW55LCBhbnkpIAogUEFTUyBJREJGYWN0b3J5IG11
c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgW29iamVjdCBJREJGYWN0b3J5XSAKIFBBU1MgU3Ry
aW5naWZpY2F0aW9uIG9mIFtvYmplY3QgSURCRmFjdG9yeV0gCkBAIC02MCw3ICs2MCw3IEBAIFBB
U1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJvcGVuKERPTVN0CiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBjYWxsaW5n
IG9wZW4oRE9NU3RyaW5nLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGxvbmcpIG9uIFtvYmplY3Qg
SURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
IFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlRGF0YWJhc2Uo
RE9NU3RyaW5nKSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0
IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImRhdGFiYXNlcyIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVj
dCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRhdGFiYXNlcygpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFj
dG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbXAoYW55LCBhbnkpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgY21wKGFueSwgYW55
KSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIElEQkRhdGFiYXNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRl
eCA5MjkyOWUxNjE4YjY2YTEwODk4MDBiYWY4MjVmMjU4ZjUyNWEyYTE3Li5hZjU3NTA0ZDQ1ZDk5
NTgwMTA4MjkwYmM4ZGFhOTVmYjY1NjYzODNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAg
LTUyLDcgKzUyLDcgQEAgUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWMKIFBBU1MgSURCRmFjdG9yeSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJm
YWNlOiBvcGVyYXRpb24gb3BlbihET01TdHJpbmcsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9u
ZykgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGVsZXRlRGF0YWJhc2Uo
RE9NU3RyaW5nKSAKLUZBSUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFz
ZXMoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNz
aW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJkYXRhYmFzZXMiIG1p
c3NpbmcKK1BBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSAK
IFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjbXAoYW55LCBhbnkpIAogUEFT
UyBJREJGYWN0b3J5IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgW29iamVjdCBJREJGYWN0
b3J5XSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIFtvYmplY3QgSURCRmFjdG9yeV0gCkBAIC02
MCw3ICs2MCw3IEBAIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9y
eV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvcGVuKERPTVN0CiBQQVNTIElEQkZhY3RvcnkgaW50
ZXJmYWNlOiBjYWxsaW5nIG9wZW4oRE9NU3RyaW5nLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGxv
bmcpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFj
dG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcg
ZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nKSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIElEQkZhY3RvcnkgaW50
ZXJmYWNlOiBbb2JqZWN0IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJh
c2VzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImRh
dGFiYXNlcyIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBJREJGYWN0b3J5IGlu
dGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRhdGFi
YXNlcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6
IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbXAoYW55LCBhbnkp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxp
bmcgY21wKGFueSwgYW55KSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIElEQkRhdGFiYXNlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401650</attachid>
            <date>2020-06-11 08:49:13 -0700</date>
            <delta_ts>2020-06-13 00:56:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211043-20200611084912.patch</filename>
            <type>text/plain</type>
            <size>79504</size>
            <attacher name="Darryl Pogue">dvpdiner2</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRjOTAyN2YzNWQwN2Y3
Mjk0MDI1ZmNmN2RmOTYzOTM0M2E5ZTZjOS4uYjgyNTQ2NmJkYjdjMGQ4MTUzNTQ5OTg3NTc3YjQ3
ODczNmY0MjBiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIwLTA2LTExICBEYXJy
eWwgUG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9y
dCBJREJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBmZXRjaGluZyB0aGUgbGlzdCBv
ZiBJREIgZGF0YWJhc2UgbmFtZXMgYW5kIHZlcnNpb25zCisgICAgICAgIGZyb20gdGhlIElEQlNl
cnZlciwgYW5kIGV4cG9zZSB0aGUgZnVuY3Rpb25hbGl0eSBhcworICAgICAgICBgSURCRmFjdG9y
eS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9JbmRleGVkREIvI2RvbS1pZGJmYWN0b3J5LWRhdGFiYXNlcworCisgICAgICAgICog
SGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uUmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3Q6On5JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6c2V0Q2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmZpcmVDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6
c3RvcCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvblJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpkYXRhYmFzZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eTo6Y29ubmVjdGlvblRvU2VydmVyTG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJD
bGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5OjpkaWRH
ZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmZvcmdldEFjdGl2aXR5Rm9yQ3VycmVudFRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0QWxs
RGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9u
cyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVy
OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmg6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmg6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlk
R2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNl
cnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRv
Q2xpZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rp
b25Ub0NsaWVudERlbGVnYXRlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6
Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNl
cnZlcjo6SURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmg6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lQW5k
VmVyc2lvbkZyb21GaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURC
QmFja2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVGcm9tRmlsZSk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb246
OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOjpp
c29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckluZGV4ZWREQkFnZW50OjpyZXF1ZXN0RGF0YWJhc2VOYW1lcyk6CisgICAgICAgICogbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisKIDIwMjAtMDYtMTEgIFJvYiBCdWlzICA8cmJ1aXNAaWdh
bGlhLmNvbT4KIAogICAgICAgICBJbXByb3ZlIHVybC1zZXR0ZXJzLmh0bWwgV1BUIHRlc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggZTdmODQ5ZDZmODg3M2IwNzYxYmQ4NWI0YzAzNjU2YTk5MGFhOTVjYy4uYzE0MTgw
NmUxZTExY2I5NGZjYjJkMTA2OTE1MDhlNGE4NDFiMDYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OSBAQAorMjAyMC0wNi0xMSAgRGFycnlsIFBvZ3VlICA8ZGFycnlsQGRwb2d1ZS5jYT4KKworICAg
ICAgICBJbmRleGVkREI6IFN1cHBvcnQgSURCRmFjdG9yeSBkYXRhYmFzZXMgbWV0aG9kCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbHVtYmluZyBmb3Ig
cmV0dXJuaW5nIGEgbGlzdCBvZiBJREIgZGF0YWJhc2VzIGFuZCB2ZXJzaW9ucy4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6IERl
bGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFs
bERhdGFiYXNlTmFtZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXMpOiBEZWxldGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLm1lc3NhZ2VzLmluOgorCiAyMDIwLTA2LTExICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gTWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYSBzaG91bGQgdXNlIGEgZGlmZmVyZW50IFVTVmlkZW9Vc2FnZSBpbml0aWFsaXplcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L0NoYW5nZUxvZwppbmRleCAwZWE1OGJjMmQyODcyYzhiNjg1NmJkODM0NWNhM2Y0ODJi
ZmNkOWIxLi43YTkxOTNjNzM2YWI5NjcxY2FjM2U4MjNkMTc1ODVmZmQ1YTNkODA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA2LTExICBEYXJyeWwgUG9ndWUg
IDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9ydCBJREJGYWN0
b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBsdW1iaW5nIGZvciByZXR1cm5pbmcgYSBsaXN0IG9mIElEQiBkYXRhYmFz
ZXMgYW5kIHZlcnNpb25zLgorCisgICAgICAgICogU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIu
Y3BwOgorICAgICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5k
VmVyc2lvbnMpOgorICAgICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFz
ZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRBbGxE
YXRhYmFzZU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlk
R2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogU3RvcmFnZS9JblByb2Nl
c3NJREJTZXJ2ZXIuaDoKKwogMjAyMC0wNS0yOSAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IHN3aXRjaCB0byBYQ0J1aWxkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAwMTUxMGZhNGEwZWYyNzY2ZjdmMTBiZjcyMDUyYWY3YTNlM2VjNjY0Li41NmI3YzU5
NjEzYmU2NDljOTRjZjQxODhjZjVmN2ZkNWJmY2Y3NDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTQwLDYgKzQwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvSURCQWN0aXZlRE9NT2JqZWN0LmgKICAgICBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuaAorICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9J
REJHZXRBbGxSZXN1bHQuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkdldFJlc3VsdC5oCiAg
ICAgTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgKQEAgLTcyLDYgKzczLDcgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJDdXJzb3JJbmZvLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vyc29y
UmVjb3JkLmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmgK
KyAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5o
CiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmgKICAgICBNb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCR2V0QWxsUmVjb3Jkc0RhdGEuaAogICAgIE1vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWE4NjdiYmQ4NWEzYjJhNzA1NWZmM2MxNTk5MmZh
ZTc3NGFiMTI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsOTMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgRGFycnlsIFBvZ3VlIChkYXJyeWxAZHBvZ3Vl
LmNhKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQorCisjaW5jbHVkZSAiSURCQ29ubmVjdGlvblByb3h5LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KTsKKworUmVmPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b25SZXF1ZXN0PiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
JiBjb25uZWN0aW9uUHJveHkpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoY29udGV4dCwgY29ubmVjdGlvblByb3h5KSk7Cit9CisK
K0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklE
QkNvbm5lY3Rpb25Qcm94eSYgY29ubmVjdGlvblByb3h5KQorICAgIDogSURCQWN0aXZlRE9NT2Jq
ZWN0KCZjb250ZXh0KQorICAgICwgbV9jb25uZWN0aW9uUHJveHkoY29ubmVjdGlvblByb3h5KQor
ICAgICwgbV9yZXNvdXJjZUlkZW50aWZpZXIoY29ubmVjdGlvblByb3h5KQoreworICAgIEFTU0VS
VChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSk7
CisKKyAgICBzdXNwZW5kSWZOZWVkZWQoKTsKK30KKworSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3Q6On5JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCgpCit7CisgICAgQVNT
RVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkp
KTsKK30KKwordm9pZCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6c2V0Q2FsbGJh
Y2soSW5mb0NhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgQVNTRVJUKGNhbGxiYWNrKTsKKwor
ICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKK30KKwordm9pZCBJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6ZmlyZUNhbGxiYWNrKE9wdGlvbmFsPFZlY3RvcjxJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uPj4gZGF0YWJhc2VzKQoreworICAgIEFTU0VSVChjYW5DdXJy
ZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSk7CisKKyAgICBp
ZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFjaykpCisgICAgICAgIGNhbGxiYWNr
KGRhdGFiYXNlcyk7Cit9CisKK2NvbnN0IGNoYXIqIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25S
ZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoY2FuQ3Vy
cmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOworICAgIHJl
dHVybiAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QiOworfQorCitib29sIElEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0
YShvcmlnaW5UaHJlYWQoKSkgfHwgVGhyZWFkOjptYXlCZUdDVGhyZWFkKCkpOworICAgIHJldHVy
biBtX2hhc1BlbmRpbmdBY3Rpdml0eTsKK30KKwordm9pZCBJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uUmVxdWVzdDo6c3RvcCgpCit7CisgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NU
aHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTU3ZWM1MGM2NGE0MWMzODJlZTdl
NmNhYTEwOWM3YTc3ZjRiYzZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaApAQCAtMCww
ICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIERhcnJ5bCBQb2d1ZSAoZGFycnls
QGRwb2d1ZS5jYSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkNsaWVudE9yaWdpbi5oIgorI2luY2x1ZGUgIklEQkFj
dGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCIK
KyNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2Mu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3Vu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKKworbmFtZXNwYWNlIElEQkNsaWVudCB7CitjbGFzcyBJREJDb25uZWN0aW9uUHJveHk7
Cit9CisKK2NsYXNzIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0IGZpbmFsIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0
PiwgcHVibGljIElEQkFjdGl2ZURPTU9iamVjdCB7CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RChJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCk7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYpOworCisgICAgfklE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KCk7CisKKyAgICBjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHJlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3Vy
Y2VJZGVudGlmaWVyOyB9CisKKyAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD46OnJlZjsKKyAgICB1c2luZyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD46OmRlcmVmOworCisgICAg
dXNpbmcgSW5mb0NhbGxiYWNrID0gRnVuY3Rpb248dm9pZChPcHRpb25hbDxWZWN0b3I8SURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvbj4+KT47CisgICAgdm9pZCBzZXRDYWxsYmFjayhJbmZvQ2FsbGJh
Y2smJik7CisgICAgdm9pZCBmaXJlQ2FsbGJhY2soT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24+Pik7CisKK3ByaXZhdGU6CisgICAgUmVmPElEQkNsaWVudDo6SURCQ29u
bmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Qcm94eTsKKyAgICBJREJSZXNvdXJjZUlkZW50aWZp
ZXIgbV9yZXNvdXJjZUlkZW50aWZpZXI7CisgICAgSW5mb0NhbGxiYWNrIG1fY2FsbGJhY2s7CisK
KyAgICBib29sIG1faGFzUGVuZGluZ0FjdGl2aXR5IHsgdHJ1ZSB9OworCisgICAgSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIElEQkNsaWVu
dDo6SURCQ29ubmVjdGlvblByb3h5Jik7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QuCisgICAg
Ym9vbCB2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CisgICAgY29uc3Qg
Y2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc3RvcCgp
IGZpbmFsOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuY3BwCmluZGV4IGIxM2M3MWU4OTFjYmIyMjk0NzU0ZmQ1YjcwMzEyY2Y2ZDJm
ZWM4MDAuLjU1YTAyMzAzYTljZDM1YTE3ZGI2MjM2ZGJiYWYwMGRhZmUyYTBjOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCkBAIC0zNCwx
NSArMzQsMTggQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJJREJLZXkuaCIKICNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJKU0lEQkZhY3RvcnkuaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKK3VzaW5nIElEQkRhdGFiYXNlc1Jlc3Bv
bnNlUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExTZXF1ZW5jZTxJRExEaWN0aW9uYXJ5
PElEQkZhY3Rvcnk6OkRhdGFiYXNlSW5mbz4+PjsKKwogc3RhdGljIGJvb2wgc2hvdWxkVGhyb3dT
ZWN1cml0eUV4Y2VwdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewogICAg
IEFTU0VSVChpczxEb2N1bWVudD4oY29udGV4dCkgfHwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNj
b3BlKCkpOwpAQCAtMTMzLDkgKzEzNiw0MSBAQCBFeGNlcHRpb25PcjxzaG9ydD4gSURCRmFjdG9y
eTo6Y21wKEpTR2xvYmFsT2JqZWN0JiBleGVjU3RhdGUsIEpTVmFsdWUgZmlyc3RWYWx1ZQogICAg
IHJldHVybiBmaXJzdC0+Y29tcGFyZShzZWNvbmQuZ2V0KCkpOwogfQogCi12b2lkIElEQkZhY3Rv
cnk6OmdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9y
aWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIEZ1bmN0aW9uPHZvaWQg
KGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYgY2FsbGJhY2spCit2b2lkIElEQkZhY3Rvcnk6OmRh
dGFiYXNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIGRlZmVycmVkKQoreworICAgIExPRyhJbmRleGVkREIsICJJREJGYWN0b3J5OjpkYXRh
YmFzZXMiKTsKKworICAgIElEQkRhdGFiYXNlc1Jlc3BvbnNlUHJvbWlzZSBwcm9taXNlID0gV1RG
TW92ZShkZWZlcnJlZCk7CisKKyAgICBpZiAoc2hvdWxkVGhyb3dTZWN1cml0eUV4Y2VwdGlvbihj
b250ZXh0KSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChTZWN1cml0eUVycm9yKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVChjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCkp
OworCisgICAgbV9jb25uZWN0aW9uUHJveHktPmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9u
cyhjb250ZXh0LCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9wdGlvbmFsPFZlY3RvcjxJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPj4gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYg
KCFyZXN1bHQpCisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBVbmtub3du
RXJyb3IgfSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFdU
Rjo6bWFwKCpyZXN1bHQsIFtdKGNvbnN0IGF1dG8mIGluZm8pIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gSURCRmFjdG9yeTo6RGF0YWJhc2VJbmZvIHsgaW5mby5uYW1lLCBpbmZvLnZlcnNpb24g
fTsKKyAgICAgICAgICAgIH0pKTsKKyAgICAgICAgfQorICAgIH0pOworfQorCit2b2lkIElEQkZh
Y3Rvcnk6OmdldEFsbERhdGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgRnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNhbGxiYWNrKQogewot
ICAgIG1fY29ubmVjdGlvblByb3h5LT5nZXRBbGxEYXRhYmFzZU5hbWVzKG1haW5GcmFtZU9yaWdp
biwgb3BlbmluZ09yaWdpbiwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY29ubmVjdGlvblBy
b3h5LT5nZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29udGV4dCwgW2NhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldKE9wdGlvbmFsPFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uPj4gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAg
ICBjYWxsYmFjayh7IH0pOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKFdU
Rjo6bWFwKCpyZXN1bHQsIFtdKGNvbnN0IGF1dG8mIGluZm8pIHsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gaW5mby5uYW1lOworICAgICAgICAgICAgfSkpOworICAgICAgICB9CisgICAgfSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuaAppbmRleCAxMzQ1NjUxMTlmMjc0YTgyYzUzODE2NDkyMzZmMDU1
ZDMyNTlhYTczLi40NThmYjFhMGNmNjRkZjhiYjljNmI0OTg5ZDEwN2M1YzRiMTkyZjk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCkBAIC00NCw2
ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElEQk9wZW5EQlJlcXVlc3Q7CiBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFz
cyBEZWZlcnJlZFByb21pc2U7CiAKIG5hbWVzcGFjZSBJREJDbGllbnQgewogY2xhc3MgSURCQ29u
bmVjdGlvblByb3h5OwpAQCAtNTQsMTIgKzU1LDE5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PElEQkZhY3Rvcnk+IGNyZWF0ZShJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYpOwogICAg
IH5JREJGYWN0b3J5KCk7CiAKKyAgICBzdHJ1Y3QgRGF0YWJhc2VJbmZvIHsKKyAgICAgICAgU3Ry
aW5nIG5hbWU7CisgICAgICAgIHVpbnQ2NF90IHZlcnNpb247CisgICAgfTsKKwogICAgIEV4Y2Vw
dGlvbk9yPFJlZjxJREJPcGVuREJSZXF1ZXN0Pj4gb3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgY29uc3QgU3RyaW5nJiBuYW1lLCBPcHRpb25hbDx1aW50NjRfdD4gdmVyc2lvbik7CiAgICAg
RXhjZXB0aW9uT3I8UmVmPElEQk9wZW5EQlJlcXVlc3Q+PiBkZWxldGVEYXRhYmFzZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAogICAgIEV4Y2VwdGlvbk9y
PHNob3J0PiBjbXAoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSBmaXJzdCwgSlND
OjpKU1ZhbHVlIHNlY29uZCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldEFsbERhdGFi
YXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2Vj
dXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgVmVj
dG9yPFN0cmluZz4mKT4mJik7CisgICAgdm9pZCBkYXRhYmFzZXMoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBnZXRBbGxEYXRhYmFzZU5hbWVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXVEY6OkZ1bmN0
aW9uPHZvaWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJik7CiAKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgSURCRmFjdG9yeShJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAppbmRleCBmOThm
M2Y4MzliYzRhMzgzZGQ0Mzk5Mjk5Yjc5MjZiMDc2ODdhMGIxLi45NWVhNjYxMmRlN2U1OGUyNTYw
MTUwNjljYzkzZjY4ZDAyM2E3NmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmlkbApAQCAtMjksNSArMjksMTQgQEAKIF0gaW50ZXJmYWNlIElE
QkZhY3RvcnkgewogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJv
d0V4Y2VwdGlvbl0gSURCT3BlbkRCUmVxdWVzdCBvcGVuKERPTVN0cmluZyBuYW1lLCBvcHRpb25h
bCBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbik7CiAgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9uXSBJREJPcGVuREJS
ZXF1ZXN0IGRlbGV0ZURhdGFiYXNlKERPTVN0cmluZyBuYW1lKTsKKyAgICBbQ2FsbFdpdGg9U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dF0gUHJvbWlzZTxzZXF1ZW5jZTxJREJEYXRhYmFzZUluZm8+PiBk
YXRhYmFzZXMoKTsKICAgICBbQ2FsbFdpdGg9R2xvYmFsT2JqZWN0LCBNYXlUaHJvd0V4Y2VwdGlv
bl0gc2hvcnQgY21wKGFueSBmaXJzdCwgYW55IHNlY29uZCk7CiB9OworCitbCisgICAgQ29uZGl0
aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGlj
dGlvbmFyeSBJREJEYXRhYmFzZUluZm8geworICAgIERPTVN0cmluZyBuYW1lOworICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyB2ZXJzaW9uOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IGNkYmVlNjkzZWRiNjMzNzBhMWI4OGQw
NDUyYzNmMzI1ZDNjZjlkNDEuLmE4MWIwMWIyYTgzMzY0YmRlZWVjOWZlOTIyOTNkY2E4OTZkODY1
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb24uaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNp
bmNsdWRlICJJREJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQkVycm9yLmgiCiAjaW5jbHVkZSAiSURC
R2V0QWxsUmVjb3Jkc0RhdGEuaCIKICNpbmNsdWRlICJJREJHZXRSZWNvcmREYXRhLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uUHJveHkuY3BwCmluZGV4IDk1NmRmYWU2NDUxNzQ5OGRlMzhlNTQ4MzFiNTkx
YjRmNjM1NWM5NTkuLjg1ZTc2MTdhYTQxNGJhMDc2OWNkMzU2ODU4MmI4NWU3NmJkZGE2NzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRl
ICJJREJDdXJzb3JJbmZvLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQkdldFJlY29y
ZERhdGEuaCIKICNpbmNsdWRlICJJREJJdGVyYXRlQ3Vyc29yRGF0YS5oIgogI2luY2x1ZGUgIklE
QktleVJhbmdlRGF0YS5oIgpAQCAtNDY5LDYgKzQ3MCwyNSBAQCB2b2lkIElEQkNvbm5lY3Rpb25Q
cm94eTo6Y29ubmVjdGlvblRvU2VydmVyTG9zdChjb25zdCBJREJFcnJvciYgZXJyb3IpCiAgICAg
ICAgIGF1dG8gcmVzdWx0ID0gSURCUmVzdWx0RGF0YTo6ZXJyb3IocmVxdWVzdElkZW50aWZpZXIs
IGVycm9yKTsKICAgICAgICAgcmVxdWVzdC0+cGVyZm9ybUNhbGxiYWNrT25PcmlnaW5UaHJlYWQo
KnJlcXVlc3QsICZJREJPcGVuREJSZXF1ZXN0OjpyZXF1ZXN0Q29tcGxldGVkLCByZXN1bHQpOwog
ICAgIH0KKworICAgIFZlY3RvcjxJREJSZXNvdXJjZUlkZW50aWZpZXI+IGluZm9DYWxsYmFja0lk
ZW50aWZpZXJzOworICAgIHsKKyAgICAgICAgTG9ja2VyPExvY2s+IGxvY2sobV9kYXRhYmFzZUlu
Zm9NYXBMb2NrKTsKKyAgICAgICAgaW5mb0NhbGxiYWNrSWRlbnRpZmllcnMgPSBjb3B5VG9WZWN0
b3IobV9kYXRhYmFzZUluZm9DYWxsYmFja3Mua2V5cygpKTsKKyAgICB9CisKKyAgICBmb3IgKGF1
dG8mIHJlcXVlc3RJZGVudGlmaWVyIDogaW5mb0NhbGxiYWNrSWRlbnRpZmllcnMpIHsKKyAgICAg
ICAgUmVmUHRyPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0PiByZXF1ZXN0OworICAg
ICAgICB7CisgICAgICAgICAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fZGF0YWJhc2VJbmZvTWFw
TG9jayk7CisgICAgICAgICAgICByZXF1ZXN0ID0gbV9kYXRhYmFzZUluZm9DYWxsYmFja3MuZ2V0
KHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghcmVxdWVzdCkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHJlcXVlc3QtPnBlcmZvcm1DYWxsYmFj
a09uT3JpZ2luVGhyZWFkKCpyZXF1ZXN0LCAmSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3Q6OmZpcmVDYWxsYmFjaywgT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b24+PiB7IFdURjo6bnVsbG9wdCB9KTsKKyAgICB9CiB9CiAKIHZvaWQgSURCQ29ubmVjdGlvblBy
b3h5OjpzY2hlZHVsZU1haW5UaHJlYWRUYXNrcygpCkBAIC00OTYsMTIgKzUxNiwzNCBAQCB2b2lk
IElEQkNvbm5lY3Rpb25Qcm94eTo6aGFuZGxlTWFpblRocmVhZFRhc2tzKCkKICAgICAgICAgdGFz
ay0+cGVyZm9ybVRhc2soKTsKIH0KIAotdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmdldEFsbERh
dGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+Jik+JiYgY2FsbGJhY2spCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0QWxs
RGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+
Pik+JiYgY2FsbGJhY2spCiB7Ci0gICAgLy8gVGhpcyBtZXRob2QgaXMgb25seSBtZWFudCB0byBi
ZSBjYWxsZWQgYnkgdGhlIHdlYiBpbnNwZWN0b3Igb24gdGhlIG1haW4gdGhyZWFkLgotICAgIFJF
TEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBDbGllbnRPcmlnaW4gb3JpZ2luIHsg
Y29udGV4dC5zZWN1cml0eU9yaWdpbigpLT5kYXRhKCksIGNvbnRleHQudG9wT3JpZ2luKCkuZGF0
YSgpIH07CiAKLSAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci5nZXRBbGxEYXRhYmFzZU5hbWVzKG1h
aW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIFJl
ZlB0cjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD4gcmVxdWVzdDsKKyAgICB7Cisg
ICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZUluZm9NYXBMb2NrKTsKKyAgICAg
ICAgcmVxdWVzdCA9IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpjcmVhdGUoY29u
dGV4dCwgKnRoaXMpOworICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2VJbmZvQ2FsbGJhY2tzLmNv
bnRhaW5zKHJlcXVlc3QtPnJlc291cmNlSWRlbnRpZmllcigpKSk7CisgICAgICAgIHJlcXVlc3Qt
PnNldENhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgbV9kYXRhYmFzZUluZm9D
YWxsYmFja3Muc2V0KHJlcXVlc3QtPnJlc291cmNlSWRlbnRpZmllcigpLCByZXF1ZXN0LmdldCgp
KTsKKyAgICB9CisKKyAgICBjYWxsQ29ubmVjdGlvbk9uTWFpblRocmVhZCgmSURCQ29ubmVjdGlv
blRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMsIHJlcXVlc3QtPnJlc291
cmNlSWRlbnRpZmllcigpLCBvcmlnaW4pOworfQorCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uPiYgZGF0YWJhc2VzKQoreworICAgIFJlZlB0cjxJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uUmVxdWVzdD4gcmVxdWVzdDsKKyAgICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIo
bV9kYXRhYmFzZUluZm9NYXBMb2NrKTsKKyAgICAgICAgcmVxdWVzdCA9IG1fZGF0YWJhc2VJbmZv
Q2FsbGJhY2tzLnRha2UocmVxdWVzdElkZW50aWZpZXIpOworICAgIH0KKworICAgIGlmICghcmVx
dWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVxdWVzdC0+cGVyZm9ybUNhbGxiYWNrT25P
cmlnaW5UaHJlYWQoKnJlcXVlc3QsICZJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6
ZmlyZUNhbGxiYWNrLCBkYXRhYmFzZXMpOwogfQogCiB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6
cmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oSURCRGF0YWJhc2UmIGRhdGFiYXNlKQpAQCAtNTk2
LDYgKzYzOCwxMCBAQCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Zm9yZ2V0QWN0aXZpdHlGb3JD
dXJyZW50VGhyZWFkKCkKICAgICAgICAgTG9ja2VyPExvY2s+IGxvY2sobV90cmFuc2FjdGlvbk9w
ZXJhdGlvbkxvY2spOwogICAgICAgICByZW1vdmVJdGVtc01hdGNoaW5nQ3VycmVudFRocmVhZCht
X2FjdGl2ZU9wZXJhdGlvbnMpOwogICAgIH0KKyAgICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBs
b2NrKG1fZGF0YWJhc2VJbmZvTWFwTG9jayk7CisgICAgICAgIHJlbW92ZUl0ZW1zTWF0Y2hpbmdD
dXJyZW50VGhyZWFkKG1fZGF0YWJhc2VJbmZvQ2FsbGJhY2tzKTsKKyAgICB9CiB9CiAKIHZvaWQg
SURCQ29ubmVjdGlvblByb3h5OjpzZXRDb250ZXh0U3VzcGVuZGVkKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGN1cnJlbnRDb250ZXh0LCBib29sIGlzQ29udGV4dFN1c3BlbmRlZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9u
UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uUHJveHkuaAppbmRleCA0NjQyZjA5M2U3MzgyOWQ2NmFmYjYxMDk0OTQ2YWUxOTcwMTlj
ZjdlLi4xYjhhMjE3ODk5YTI2ZDA1MGYxOWVhOTBjYjUwYjNkNTg0ZjI3NjczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblBy
b3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Qcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCiAKICNpbmNsdWRlICJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCIKKyNpbmNsdWRlICJJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCiAjaW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiVHJhbnNhY3Rpb25PcGVyYXRpb24uaCIKICNpbmNsdWRlIDx3dGYv
Q3Jvc3NUaHJlYWRRdWV1ZS5oPgpAQCAtNDMsNiArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIElEQkRhdGFiYXNlOwogY2xhc3MgSURCRGF0YWJhc2VJZGVudGlmaWVyOworY2xh
c3MgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q7CiBjbGFzcyBJREJFcnJvcjsKIGNs
YXNzIElEQk9wZW5EQlJlcXVlc3Q7CiBjbGFzcyBJREJSZXN1bHREYXRhOwpAQCAtMTE1LDcgKzEx
Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZigpOwogICAgIHZvaWQgZGVyZWYoKTsKIAotICAg
IHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1l
T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgV1RGOjpGdW5jdGlv
bjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmKTsKKyAgICB2b2lkIGdldEFsbERhdGFi
YXNlTmFtZXNBbmRWZXJzaW9ucyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRnVuY3Rpb248dm9p
ZChPcHRpb25hbDxWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4+KT4mJik7CisgICAg
dm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiwgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+Jik7CiAK
ICAgICB2b2lkIHJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKElEQkRhdGFiYXNlJik7CiAgICAg
dm9pZCB1bnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKElEQkRhdGFiYXNlJik7CkBAIC0xNjks
NiArMTcyLDkgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmllciwg
UmVmUHRyPFRyYW5zYWN0aW9uT3BlcmF0aW9uPj4gbV9hY3RpdmVPcGVyYXRpb25zOwogICAgIExv
Y2sgbV90cmFuc2FjdGlvbk9wZXJhdGlvbkxvY2s7CiAKKyAgICBIYXNoTWFwPElEQlJlc291cmNl
SWRlbnRpZmllciwgUmVmUHRyPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Pj4gbV9k
YXRhYmFzZUluZm9DYWxsYmFja3M7CisgICAgTG9jayBtX2RhdGFiYXNlSW5mb01hcExvY2s7CisK
ICAgICBDcm9zc1RocmVhZFF1ZXVlPENyb3NzVGhyZWFkVGFzaz4gbV9tYWluVGhyZWFkUXVldWU7
CiAgICAgTG9jayBtX21haW5UaHJlYWRUYXNrTG9jazsKICAgICBSZWZQdHI8SURCQ29ubmVjdGlv
blRvU2VydmVyPiBtX21haW5UaHJlYWRQcm90ZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuY3BwCmluZGV4IDYxOTRhOTgxYTAxZmZhZjRhODg2NzA2ZWFkZWFhY2E4MTEzZjQ2YjAu
LmFiYWZkNTljNjc3YzZjOTkwMTU1ZWUxNGI5OTE0YzRjOTZiZGQzOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC00OTQsMjcgKzQ5NCwyNiBAQCB2b2lkIElEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3RpbwogICAgICAgICBtX2RlbGVnYXRlLT5hYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVk
KGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiB9
CiAKLXZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBv
cGVuaW5nT3JpZ2luLCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNh
bGxiYWNrKQordm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNB
bmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKIHsKLSAgICBzdGF0aWMgdWludDY0X3QgY2Fs
bGJhY2tJRCA9IDA7Ci0KLSAgICBtX2dldEFsbERhdGFiYXNlTmFtZXNDYWxsYmFja3MuYWRkKCsr
Y2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIExPRyhJbmRleGVkREIsICJJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyIpOworICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBpZiAobV9zZXJ2ZXJDb25uZWN0aW9uSXNW
YWxpZCkKLSAgICAgICAgbV9kZWxlZ2F0ZS0+Z2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVP
cmlnaW4uZGF0YSgpLCBvcGVuaW5nT3JpZ2luLmRhdGEoKSwgY2FsbGJhY2tJRCk7CisgICAgICAg
IG1fZGVsZWdhdGUtPmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRp
Zmllciwgb3JpZ2luKTsKICAgICBlbHNlIHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFja0lEID0gY2FsbGJhY2tJ
RF0gewotICAgICAgICAgICAgZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lELCB7IH0p
OworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyXSB7CisgICAgICAgICAgICBkaWRHZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIHsgfSk7CiAgICAgICAgIH0p
OwogICAgIH0KIH0KIAotdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFi
YXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFi
YXNlTmFtZXMpCit2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VO
YW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50
aWZpZXIsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYgZGF0YWJhc2Vz
KQogewotICAgIGF1dG8gY2FsbGJhY2sgPSBtX2dldEFsbERhdGFiYXNlTmFtZXNDYWxsYmFja3Mu
dGFrZShjYWxsYmFja0lEKTsKLSAgICBBU1NFUlQoY2FsbGJhY2spOworICAgIExPRyhJbmRleGVk
REIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyIpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBjYWxsYmFjayhkYXRh
YmFzZU5hbWVzKTsKKyAgICBtX3Byb3h5LT5kaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lv
bnMocmVxdWVzdElkZW50aWZpZXIsIGRhdGFiYXNlcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIElE
QkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IDVlZDI0ZmU1NjhmMWFj
MjU5NjBhOTZjNDAzOTVmY2E1MGI4NDRhYzUuLjI0ZDcyNGMyNzU4MTFiM2E2NzAyYWI4YjhhNjc2
M2RhZWNkOGIwZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94eS5oIgogI2luY2x1ZGUgIklEQkNv
bm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5k
VmVyc2lvbi5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC00NSw2ICs0Niw3
IEBAIGNsYXNzIElEQlJlc3VsdERhdGE7CiBjbGFzcyBJREJWYWx1ZTsKIGNsYXNzIFNlY3VyaXR5
T3JpZ2luOwogCitzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0IElEQkdldEFsbFJlY29yZHNE
YXRhOwogc3RydWN0IElEQkdldFJlY29yZERhdGE7CiBzdHJ1Y3QgSURCSXRlcmF0ZUN1cnNvckRh
dGE7CkBAIC0xMzYsMjAgKzEzOCwxOCBAQCBwdWJsaWM6CiAgICAgLy8gdmVyc2lvbmNoYW5nZSB0
cmFuc2FjdGlvbiwgYnV0IHRoZSBwYWdlIGlzIGFscmVhZHkgdG9ybiBkb3duLgogICAgIHZvaWQg
YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
cik7CiAKLSAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4m
IG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIFdU
Rjo6RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJik7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKTsKKyAgICB2b2lkIGdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25z
dCBDbGllbnRPcmlnaW4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEdldEFsbERhdGFi
YXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBW
ZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKTsKIAogcHJpdmF0ZToKICAgICBJREJD
b25uZWN0aW9uVG9TZXJ2ZXIoSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUmKTsKIAogICAg
IHR5cGVkZWYgdm9pZCAoSURCQ29ubmVjdGlvblRvU2VydmVyOjoqUmVzdWx0RnVuY3Rpb24pKGNv
bnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGNhbGxSZXN1bHRGdW5jdGlvbldpdGhFcnJv
ckxhdGVyKFJlc3VsdEZ1bmN0aW9uLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVl
c3RJZGVudGlmaWVyKTsKLSAgICAKKwogICAgIFdlYWtQdHI8SURCQ29ubmVjdGlvblRvU2VydmVy
RGVsZWdhdGU+IG1fZGVsZWdhdGU7CiAgICAgYm9vbCBtX3NlcnZlckNvbm5lY3Rpb25Jc1ZhbGlk
IHsgdHJ1ZSB9OwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lkIChj
b25zdCBWZWN0b3I8U3RyaW5nPiYpPj4gbV9nZXRBbGxEYXRhYmFzZU5hbWVzQ2FsbGJhY2tzOwot
CiAgICAgc3RkOjp1bmlxdWVfcHRyPElEQkNvbm5lY3Rpb25Qcm94eT4gbV9wcm94eTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKaW5kZXggMGVmN2Zi
NTRhMTYxODA3ZWQ3NTcwMjM4MzQ5NDhiZmE3NzFjZTYxNi4uNjk2ZTRkZWI1NTNhOGVkMjI1ZmEy
MjAwOWM2ZGI0MDg1ZDk4ZjhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZl
ckRlbGVnYXRlLmgKQEAgLTQxLDYgKzQxLDcgQEAgY2xhc3MgSURCUmVxdWVzdERhdGE7CiBjbGFz
cyBJREJUcmFuc2FjdGlvbkluZm87CiBjbGFzcyBJREJWYWx1ZTsKIAorc3RydWN0IENsaWVudE9y
aWdpbjsKIHN0cnVjdCBJREJHZXRBbGxSZWNvcmRzRGF0YTsKIHN0cnVjdCBJREJHZXRSZWNvcmRE
YXRhOwogc3RydWN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhOwpAQCAtODcsNyArODgsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3Qg
ZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgSW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25C
ZWhhbGZPZlNlcnZlcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2Vs
bGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGdldEFs
bERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4s
IGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJh
Y2tJRCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lv
bnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgQ2xpZW50T3JpZ2luJikgPSAw
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwCmluZGV4IDY0NmY5YjI1OTYxZjM5MjZjMjFlZDAxNDcyZjUwNzcwMGZmYjFlODgu
LjEwYzNhNGQ2NjJmNDcxMzg0NTU0MmVhMmQ0NjUzNmU2YTk2NzM1ZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJD
b25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC0xODEsMTAgKzE4MSwxMCBAQCB2b2lkIElEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6bm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaQogICAgICAgICBtX2RlbGVnYXRlLT5ub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tl
ZChyZXF1ZXN0SWRlbnRpZmllciwgb2xkVmVyc2lvbiwgbmV3VmVyc2lvbik7CiB9CiAKLXZvaWQg
SURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNh
bGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKQordm9pZCBJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNlcykKIHsKICAgICBpZiAobV9kZWxl
Z2F0ZSkKLSAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFj
a0lELCBkYXRhYmFzZU5hbWVzKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkR2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBkYXRhYmFzZXMpOwogfQogCiB2
b2lkIElEQkNvbm5lY3Rpb25Ub0NsaWVudDo6cmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiBjb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25U
b0NsaWVudC5oCmluZGV4IGNlNWM4MmRmZTYwZTFhMWMxZTJlZDM1MmFjMjM0ZjQwYTg1MTEzOTcu
LmU0ZWI5ZmNmNTUyMzEwZjUwZDQxZjQ2YjQ1NGY1ZTMzYTlmMGJhMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29u
bmVjdGlvblRvQ2xpZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmgiCisj
aW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CkBAIC03NCw3ICs3NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVz
dEJsb2NrZWQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwg
dWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbik7CiAKLSAgICB2b2lkIGRp
ZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGRhdGFiYXNlTmFtZXMpOworICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IFZlY3RvcjxJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpOwogCiAgICAgdm9pZCByZWdpc3RlckRhdGFiYXNlQ29u
bmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKICAgICB2b2lkIHVucmVnaXN0
ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVj
dGlvblRvQ2xpZW50RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCmluZGV4IDVlYTVhMmU3ZDJk
MDRlOTc2ZjFhY2MyOTE1ZjBiNTMxMjJjZGIzMTEuLmQyNDkxZDViMDk5ZTMxOGEwZDIwM2JmM2Zk
MTU3YjI4ZTY4ZmUzMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxl
Z2F0ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
IAorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCIKICNpbmNsdWRlICJJREJS
ZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNzAsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRpZENsb3NlRnJvbVNlcnZlcihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24m
LCBjb25zdCBJREJFcnJvciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5T3BlbkRCUmVx
dWVzdEJsb2NrZWQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmll
ciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikgPSAwOwogCi0gICAg
dmlydHVhbCB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpID0gMDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAppbmRleCBkZTkxNmM2NjM1
NjA2YmE5ZDM1YzMzMWU3OGJhMTkyMDRmYTRjMmE1Li5jZGYzMzhlY2Y1Y2NjM2QzMmFiODBjNmYw
OWU4MGIxMjRlZGQ4MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAtNTA3LDMzICs1MDcsMzQgQEAgdm9pZCBJ
REJTZXJ2ZXI6Om9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJl
cXVlc3REYXRhKQogICAgICAgICBtX3VuaXF1ZUlEQkRhdGFiYXNlTWFwLnJlbW92ZSh1bmlxdWVJ
REJEYXRhYmFzZS0+aWRlbnRpZmllcigpKTsKIH0KIAotdm9pZCBJREJTZXJ2ZXI6OmdldEFsbERh
dGFiYXNlTmFtZXMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2
b2lkIElEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKElEQkNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdp
bikKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV9sb2NrLmlz
SGVsZCgpKTsKIAogICAgIGF1dG8gZGF0YWJhc2VEaXJlY3RvcnlQYXRoID0gdGhpcy0+ZGF0YWJh
c2VEaXJlY3RvcnlQYXRoSXNvbGF0ZWRDb3B5KCk7Ci0gICAgU3RyaW5nIG9sZERpcmVjdG9yeSA9
IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdCht
YWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYw
Iik7CisgICAgU3RyaW5nIG9sZERpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0
YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4udG9wT3JpZ2luLCBvcmlnaW4uY2xp
ZW50T3JpZ2luLCBkYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCIpOwogICAgIFZlY3RvcjxTdHJp
bmc+IGZpbGVzID0gRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShvbGREaXJlY3RvcnksICIqIl9z
KTsKLSAgICBWZWN0b3I8U3RyaW5nPiBkYXRhYmFzZXM7CisgICAgVmVjdG9yPElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24+IGRhdGFiYXNlczsKICAgICBmb3IgKGF1dG8mIGZpbGUgOiBmaWxlcykg
ewotICAgICAgICBTdHJpbmcgZW5jb2RlZE5hbWUgPSBGaWxlU3lzdGVtOjpsYXN0Q29tcG9uZW50
T2ZQYXRoSWdub3JpbmdUcmFpbGluZ1NsYXNoKGZpbGUpOwotICAgICAgICBkYXRhYmFzZXMuYXBw
ZW5kKFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lRnJvbUVuY29kZWRGaWxlbmFt
ZShlbmNvZGVkTmFtZSkpOworICAgICAgICBhdXRvIGRhdGFiYXNlVHVwbGUgPSBTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoZmlsZSkpOworICAgICAgICBp
ZiAoZGF0YWJhc2VUdXBsZSkKKyAgICAgICAgICAgIGRhdGFiYXNlcy5hcHBlbmQoV1RGTW92ZSgq
ZGF0YWJhc2VUdXBsZSkpOwogICAgIH0KIAotICAgIFN0cmluZyBkaXJlY3RvcnkgPSBJREJEYXRh
YmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QobWFpbkZyYW1l
T3JpZ2luLCBvcGVuaW5nT3JpZ2luLCBkYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpOworICAg
IFN0cmluZyBkaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0
b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLnRvcE9yaWdpbiwgb3JpZ2luLmNsaWVudE9yaWdpbiwg
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiKTsKICAgICBmaWxlcyA9IEZpbGVTeXN0ZW06Omxp
c3REaXJlY3RvcnkoZGlyZWN0b3J5LCAiKiJfcyk7CiAgICAgZm9yIChhdXRvJiBmaWxlIDogZmls
ZXMpIHsKLSAgICAgICAgYXV0byBkYXRhYmFzZU5hbWUgPSBTUUxpdGVJREJCYWNraW5nU3RvcmU6
OmRhdGFiYXNlTmFtZUZyb21GaWxlKFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNl
UGF0aEZvckRpcmVjdG9yeShmaWxlKSk7Ci0gICAgICAgIGlmICghZGF0YWJhc2VOYW1lLmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIGRhdGFiYXNlcy5hcHBlbmQoZGF0YWJhc2VOYW1lKTsKKyAgICAg
ICAgYXV0byBkYXRhYmFzZVR1cGxlID0gU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5h
bWVBbmRWZXJzaW9uRnJvbUZpbGUoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQ
YXRoRm9yRGlyZWN0b3J5KGZpbGUpKTsKKyAgICAgICAgaWYgKGRhdGFiYXNlVHVwbGUpCisgICAg
ICAgICAgICBkYXRhYmFzZXMuYXBwZW5kKFdURk1vdmUoKmRhdGFiYXNlVHVwbGUpKTsKICAgICB9
CiAKICAgICBhdXRvIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAuZ2V0KHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKICAgICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsK
IAotICAgIGNvbm5lY3Rpb24tPmRpZEdldEFsbERhdGFiYXNlTmFtZXMoY2FsbGJhY2tJRCwgZGF0
YWJhc2VzKTsKKyAgICBjb25uZWN0aW9uLT5kaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lv
bnMocmVxdWVzdElkZW50aWZpZXIsIGRhdGFiYXNlcyk7CiB9CiAKIHZvaWQgSURCU2VydmVyOjpj
bG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRpbWUgbW9kaWZpY2F0aW9u
VGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuaAppbmRleCA0MDk4NzQ5ZjU3ODdiMDc5YzdhMWVlYTg0MThlNjEyOThlNzdkY2Jk
Li43N2I3ZjU4NDkyODhmZTAxZGViNGYyYjg0NmVhMzVhY2Y2ZDcxNmE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCkBAIC04
OSw3ICs4OSw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgSW5kZXhlZERCOjpD
b25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJik7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoSURCQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0
YSYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmln
aW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxs
RGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKElEQkNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBDbGllbnRPcmlnaW4mKTsKKwogCiAgICAgdm9p
ZCByZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24m
KTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IGVh
YWQ3ZTkwYmVkZjZlZGRiNGU5ZTFkNWZiNzAwNjhmYTE0ZmUzNzguLjRmOTdkZTcyMTNkMDY4MTE0
NTE2OWQzMGFjNDcxYzE4NzQxZjUzZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUu
Y3BwCkBAIC05MTIsMTkgKzkxMiwzMSBAQCBTdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpm
dWxsRGF0YWJhc2VQYXRoKCkgY29uc3QKICAgICByZXR1cm4gZnVsbERhdGFiYXNlUGF0aEZvckRp
cmVjdG9yeShtX2RhdGFiYXNlRGlyZWN0b3J5KTsKIH0KIAotU3RyaW5nIFNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6ZGF0YWJhc2VOYW1lRnJvbUZpbGUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgp
CitPcHRpb25hbDxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShjb25zdCBTdHJpbmcmIGRhdGFiYXNl
UGF0aCkKIHsKICAgICBTUUxpdGVEYXRhYmFzZSBkYXRhYmFzZTsKICAgICBpZiAoIWRhdGFiYXNl
Lm9wZW4oZGF0YWJhc2VQYXRoKSkgewogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBvcGVu
IFNRTGl0ZSBkYXRhYmFzZSBhdCBwYXRoICclcycgd2hlbiBnZXR0aW5nIGRhdGFiYXNlIG5hbWUi
LCBkYXRhYmFzZVBhdGgudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIHJldHVybiB7IH07CisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQogICAgIGlmICghZGF0YWJhc2UudGFibGVF
eGlzdHMoIklEQkRhdGFiYXNlSW5mbyJfcykpIHsKICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBu
b3QgZmluZCBJREJEYXRhYmFzZUluZm8gdGFibGUgYW5kIGdldCBkYXRhYmFzZSBuYW1lKCVpKSAt
ICVzIiwgZGF0YWJhc2UubGFzdEVycm9yKCksIGRhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKLSAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9Ci0g
ICAgU1FMaXRlU3RhdGVtZW50IHNxbChkYXRhYmFzZSwgIlNFTEVDVCB2YWx1ZSBGUk9NIElEQkRh
dGFiYXNlSW5mbyBXSEVSRSBrZXkgPSAnRGF0YWJhc2VOYW1lJzsiKTsKLSAgICByZXR1cm4gc3Fs
LmdldENvbHVtblRleHQoMCk7CisKKyAgICBTUUxpdGVTdGF0ZW1lbnQgbmFtZXNxbChkYXRhYmFz
ZSwgIlNFTEVDVCB2YWx1ZSBGUk9NIElEQkRhdGFiYXNlSW5mbyBXSEVSRSBrZXkgPSAnRGF0YWJh
c2VOYW1lJzsiKTsKKyAgICBhdXRvIGRhdGFiYXNlTmFtZSA9IG5hbWVzcWwuZ2V0Q29sdW1uVGV4
dCgwKTsKKworICAgIFNRTGl0ZVN0YXRlbWVudCB2ZXJzcWwoZGF0YWJhc2UsICJTRUxFQ1QgdmFs
dWUgRlJPTSBJREJEYXRhYmFzZUluZm8gV0hFUkUga2V5ID0gJ0RhdGFiYXNlVmVyc2lvbic7Il9z
KTsKKyAgICBTdHJpbmcgc3RyaW5nVmVyc2lvbiA9IHZlcnNxbC5nZXRDb2x1bW5UZXh0KDApOwor
ICAgIGJvb2wgb2s7CisgICAgdWludDY0X3QgZGF0YWJhc2VWZXJzaW9uID0gc3RyaW5nVmVyc2lv
bi50b1VJbnQ2NFN0cmljdCgmb2spOworICAgIGlmICghb2spIHsKKyAgICAgICAgTE9HX0VSUk9S
KCJEYXRhYmFzZSB2ZXJzaW9uIG9uIGRpc2sgKCclcycpIGRvZXMgbm90IGNsZWFubHkgY29udmVy
dCB0byBhbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB2ZXJzaW9uIiwgc3RyaW5nVmVyc2lvbi51
dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9CisKKyAg
ICByZXR1cm4gSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbiB7IGRhdGFiYXNlTmFtZSwgZGF0YWJh
c2VWZXJzaW9uIH07CiB9CiAKIFN0cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRh
YmFzZURpcmVjdG9yeVdpdGhVcGdyYWRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaApp
bmRleCBiYjVlYmI1NTkwZTc0NzMwNzkyNzQ5ZmVlMmNmMWFhYzVjNjk0MzhmLi43M2Y4ZmNmYjM5
NjA5YmM1N2JjZWM1OWEzZmI1ZWMyYzk5ZjJkN2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdT
dG9yZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSURCQmFja2luZ1N0b3JlLmgiCiAj
aW5jbHVkZSAiSURCRGF0YWJhc2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VJ
bmZvLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgogI2luY2x1ZGUg
IklEQlJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNRTGl0ZUlEQlRyYW5zYWN0aW9u
LmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50QXV0b1Jlc2V0U2NvcGUuaCIKQEAgLTEwMSw3
ICsxMDIsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnkoKSBjb25z
dCB7IHJldHVybiBtX2RhdGFiYXNlRGlyZWN0b3J5OyB9OwogICAgIHN0YXRpYyBTdHJpbmcgZnVs
bERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsKLSAgICBzdGF0aWMgU3Ry
aW5nIGRhdGFiYXNlTmFtZUZyb21GaWxlKGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyBPcHRp
b25hbDxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiBkYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJv
bUZpbGUoY29uc3QgU3RyaW5nJik7CiAKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBj
b25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWNmNzdiNWYzNmIwZDA3YTk4OTMwMzQ1OTIwYWZkNDNm
MDM2YTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaApAQCAtMCwwICsxLDY5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIERhcnJ5bCBQb2d1ZSAoZGFycnlsQGRwb2d1ZS5jYSkK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
KworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3N0cnVjdCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIHsKKyAgICBTdHJpbmcgbmFtZTsK
KyAgICB1aW50NjRfdCB2ZXJzaW9uIHsgMCB9OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIElEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb24mKTsKKworICAgIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24g
aXNvbGF0ZWRDb3B5KCkgY29uc3Q7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9p
ZCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKK3sKKyAgICBlbmNvZGVyIDw8IG5hbWUgPDwgdmVyc2lvbjsKK30KKwordGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KK2Jvb2wgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24mIGluZm8pCit7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShpbmZvLm5hbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8udmVyc2lvbikpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHJldHVybiB0cnVlOworfQorCitpbmxpbmUgSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOjppc29sYXRlZENvcHkoKSBjb25zdAorewor
ICAgIHJldHVybiB7IG5hbWUuaXNvbGF0ZWRDb3B5KCksIHZlcnNpb24gfTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IGYyNmFkMTYzZTYzMjM2Njg0YzM1MTM5OWVhNDVlZWQ0YWQzZWUyNmUu
LjZhMzk5ZWIwZWY4ODQ3MTRkOWZhODQ3ZjRiZTFhZTJkYjk3YTg4YWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC04OCw2ICs4OCw3IEBAIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlLmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmNw
cAorTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3Bw
CiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURC
R2V0QWxsUmVzdWx0LmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDYyNDY5YzkyNzgwMDU1MDRjMTc0YmQzOGRmZmJkODE2ZDhhNGVhMjUuLmEwZDdkMjMyNzQ1Yjdk
MDM2MWEzNjA4OGQ1MDA1OTk3ZjFiMTY5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI1ODMsNiArMjU4Myw4IEBACiAJCThG
Njc1NjFCMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMgLyog
RXZlbnRRdWV1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkwMDE3NzQxMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzcz
RTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5
MDAxNzg4MTEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEyRTAz
NzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkwMTZF
QTREMjQ1NEQ4MTMwMDIxRDlEMSAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDE2RUE0QzI0NTREODEz
MDAyMUQ5RDEgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkwRTM1MUMyMjQ3RTQ2RTQwMEZCRjI0
RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBFMzUxQkQyNDdFM0Q0ODAwRkJGMjRGIC8q
IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTEwOUU5QzgyMjJDQUJDQTAwQkI2MjY0IC8q
IEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTA5RTlDNTIyMkNBQkM4MDBCQjYyNjQgLyogSW5zcGVj
dG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCAqLzsgfTsKIAkJOTEwOUU5QzgyMjJDQUJDQTAwQkI2
MjY1IC8qIEpTSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxMDlFOUM1MjIyQ0FCQzgwMEJCNjI2NSAv
KiBKU0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi87IH07CiAJCTkxMjc4RDVFMjFE
RURBRDYwMEI1NzE4NCAvKiBQYWdlQXVkaXRBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTEyNzhENUMyMURFREFENTAwQjU3MTg0IC8qIFBhZ2VB
dWRpdEFnZW50LmggKi87IH07CkBAIC0xMDcxMiw2ICsxMDcxNCw5IEBACiAJCTkwMDE3NzNGMTJF
MDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAx
Nzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MDE2RUE0QzI0NTREODEzMDAyMUQ5RDEgLyog
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkwRTM1MUJDMjQ3
RTNENDgwMEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkwRTM1MUJEMjQ3
RTNENDgwMEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVx
dWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTA5RTlDNTIyMkNBQkM4MDBC
QjYyNjQgLyogSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTEwOUU5QzUyMjJDQUJDODAwQkI2MjY1IC8qIEpTSW5z
cGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNJbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MTA5RTlDNzIyMkNBQkM5MDBCQjYyNjQgLyogSW5zcGVjdG9yQXVkaXRS
ZXNvdXJjZXNPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTkzNzAsNiArMTkzNzUsNyBAQAogCQkJCTUxMTBGQ0ZCMUUwMzYyQTUwMDZGOEQw
QiAvKiBJREJDdXJzb3JSZWNvcmQuaCAqLywKIAkJCQk1MUJBNEFDMTFCQkI1Q0JGMDBERjNENkQg
LyogSURCRGF0YWJhc2VJbmZvLmNwcCAqLywKIAkJCQk1MUJBNEFDMjFCQkI1Q0JGMDBERjNENkQg
LyogSURCRGF0YWJhc2VJbmZvLmggKi8sCisJCQkJOTAxNkVBNEMyNDU0RDgxMzAwMjFEOUQxIC8q
IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCAqLywKIAkJCQk1MTQ4NDUzQzFCQjlEMDc2MDA2
QTcyRUQgLyogSURCRXJyb3IuY3BwICovLAogCQkJCTUxNDg0NTNEMUJCOUQwNzYwMDZBNzJFRCAv
KiBJREJFcnJvci5oICovLAogCQkJCTUxOURCQzZEMURDMDBGQjkwMDMyOUJGNSAvKiBJREJHZXRB
bGxSZWNvcmRzRGF0YS5jcHAgKi8sCkBAIC0yMjg0Nyw2ICsyMjg1Myw4IEBACiAJCQkJNTFENzE5
N0UxODExMDZERjAwMTZEQzUxIC8qIElEQkRhdGFiYXNlLmlkbCAqLywKIAkJCQk1MTAzMTA1RTFC
QThFMDkwMDAzMzI5QzAgLyogSURCRGF0YWJhc2VJZGVudGlmaWVyLmNwcCAqLywKIAkJCQk1MTAz
MTA1RjFCQThFMDkwMDAzMzI5QzAgLyogSURCRGF0YWJhc2VJZGVudGlmaWVyLmggKi8sCisJCQkJ
OTBFMzUxQkMyNDdFM0Q0ODAwRkJGMjRGIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1
ZXN0LmNwcCAqLywKKwkJCQk5MEUzNTFCRDI0N0UzRDQ4MDBGQkYyNEYgLyogSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3QuaCAqLywKIAkJCQk1MTY0NUI0NjFCOUY4ODlCMDBGNzg5Q0Ug
LyogSURCRmFjdG9yeS5jcHAgKi8sCiAJCQkJNTE2NDVCNDcxQjlGODg5QjAwRjc4OUNFIC8qIElE
QkZhY3RvcnkuaCAqLywKIAkJCQk1MUQ3MTk4QTE4MTEwNkRGMDAxNkRDNTEgLyogSURCRmFjdG9y
eS5pZGwgKi8sCkBAIC0zMDkyOSw2ICszMDkzNyw4IEBACiAJCQkJNTE4NUZDODExQkI0QzRFODAw
MTI4OThGIC8qIElEQkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg1RkM4NzFCQjRD
NEU4MDAxMjg5OEYgLyogSURCRGF0YWJhc2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MUJBNEFDNDFCQkI1Q0Q4MDBERjNENkQgLyogSURCRGF0YWJhc2VJbmZvLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5MDE2RUE0RDI0NTREODEzMDAyMUQ5RDEgLyogSURCRGF0YWJhc2VOYW1lQW5k
VmVyc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTBFMzUxQzIyNDdFNDZFNDAwRkJGMjRGIC8q
IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTQ4NDUzRjFCQjlEMDdFMDA2QTcyRUQgLyogSURCRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxODVGQzhEMUJCNEM0RTgwMDEyODk4RiAvKiBJREJGYWN0b3J5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTlEQkM2RjFEQzAxMUE3MDAzMjlCRjUgLyogSURCR2V0QWxsUmVjb3Jkc0RhdGEuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCBjOGViNzFiOTRhYzgxZDU0
OGNlMTI3YTYxYjBjMjEwYzU2NzIyMTgwLi5mZjhmMzBmNDAzZjg1YzdkZGJlMzFiMTBlMDNjZWY1
ZmNkZjdmMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNTk2LDkgKzU5Niw3IEBAIHZv
aWQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OnJlcXVlc3REYXRhYmFzZU5hbWVzKGNvbnN0IFN0
cmluZyYgc2VjdXJpdHlPcmlnaW4sCiAgICAgaWYgKCFnZXREb2N1bWVudEFuZElEQkZhY3RvcnlG
cm9tRnJhbWVPclNlbmRGYWlsdXJlKGZyYW1lLCBkb2N1bWVudCwgaWRiRmFjdG9yeSwgY2FsbGJh
Y2spKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvJiBvcGVuaW5nT3JpZ2luID0gZG9jdW1l
bnQtPnNlY3VyaXR5T3JpZ2luKCk7Ci0gICAgYXV0byYgdG9wT3JpZ2luID0gZG9jdW1lbnQtPnRv
cE9yaWdpbigpOwotICAgIGlkYkZhY3RvcnktPmdldEFsbERhdGFiYXNlTmFtZXModG9wT3JpZ2lu
LCBvcGVuaW5nT3JpZ2luLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYgZGF0
YWJhc2VOYW1lcykgeworICAgIGlkYkZhY3RvcnktPmdldEFsbERhdGFiYXNlTmFtZXMoKmRvY3Vt
ZW50LCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYgZGF0YWJhc2VOYW1lcykg
ewogICAgICAgICBpZiAoIWNhbGxiYWNrLT5pc0FjdGl2ZSgpKQogICAgICAgICAgICAgcmV0dXJu
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDc5YjBiMzE5MzEw
OTk5ZWU5MzhjNDY1YjUxODM1MTBmNTk1Mjc1OWQuLjEzYjUzNjBjYzU3ZWU3ZWEyNWI0ZTIxMzc1
MTE5YzMzYmY5ZmIyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBA
IC0xNTIsNyArMTUyLDcgQEAgY2xhc3MgRW1wdHlEYXRhYmFzZVByb3ZpZGVyIGZpbmFsIDogcHVi
bGljIERhdGFiYXNlUHJvdmlkZXIgewogICAgICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVO
ZWVkZWQodWludDY0X3QsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpIGZpbmFsIHsgfQog
ICAgICAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QsIGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9u
QmVoYWxmT2ZTZXJ2ZXIpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5j
ZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmKSBmaW5hbCB7IH0KLSAgICAgICAgdm9pZCBnZXRB
bGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYsIHVpbnQ2NF90KSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBnZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3Qg
Q2xpZW50T3JpZ2luJikgZmluYWwgeyB9CiAgICAgICAgIH5FbXB0eUlEQkNvbm5lY3Rpb25Ub1Nl
cnZlckRlbGV0ZWdhdGUoKSB7IH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50LmNwcAppbmRleCBmMmFmZTFhOGI4YWI4Y2VhYWExY2M3MTJlZmE0ZWFjMTc2ZWY2M2Q0
Li5kMGI4OGYyM2ZkN2RhNGVjNmVjNjNhNDYyMmUzYzAyZDc2NGYyNDYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTE5Myw5ICsxOTMsOSBAQCB2b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6bm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2Vi
Q29yZTo6SURCUmVzbwogICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6Tm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQocmVxdWVzdElkZW50aWZpZXIsIG9sZFZlcnNp
b24sIG5ld1ZlcnNpb24pKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRp
ZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGRhdGFiYXNlTmFtZXMpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlk
R2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNl
SWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYgZGF0YWJhc2VzKQogewotICAgIHNlbmQoTWVzc2FnZXM6
OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFj
a0lELCBkYXRhYmFzZU5hbWVzKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlv
blRvU2VydmVyOjpEaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50
aWZpZXIsIGRhdGFiYXNlcykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50LmgKaW5kZXggOTk1MDgzYjA0NmFkMGRkOTdlZTMxOTg3MjA5
NTJiZGVjYmM4OTM2ZS4uNzMxNWYxMGFmYzM3YTFmMTU0NjUyNDJhYjBkMmNkMTk5YWQzZjg2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZENsb3NlRnJvbVNlcnZlcihXZWJDb3JlOjpJREJTZXJ2ZXI6OlVu
aXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmlu
YWw7CiAgICAgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJz
aW9uLCB1aW50NjRfdCBuZXdWZXJzaW9uKSBmaW5hbDsKIAotICAgIHZvaWQgZGlkR2V0QWxsRGF0
YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0
YWJhc2VOYW1lcykgZmluYWw7CisgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgVmVjdG9y
PFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JikgZmluYWw7CiAKICAgICB0ZW1w
bGF0ZTxjbGFzcyBNZXNzYWdlVHlwZT4gdm9pZCBoYW5kbGVHZXRSZXN1bHQoY29uc3QgV2ViQ29y
ZTo6SURCUmVzdWx0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAppbmRleCA1MDhiZDkyOTEzNDkwN2Ex
NjliNjUxYzdiOGFlZTFjOTI3NzJmOGQzLi45ODkxMWY1MjRmZmZjMmI2MjVlZjIxYjA5YmI3MTNj
MGY5MGIxY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKQEAgLTMxNSw3ICszMTUsNyBAQCB2b2lkIFdlYklE
QlNlcnZlcjo6b3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0
RGF0YSYgcmVxdWVzdAogICAgIG1fc2VydmVyLT5vcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKHJlcXVl
c3REYXRhKTsKIH0KIAotdm9pZCBXZWJJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBv
cGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBXZWJJREJTZXJ2ZXI6Omdl
dEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luKQogewogICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOwogCkBAIC0zMjMsNyArMzIzLDcgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6
OmdldEFsbERhdGFiYXNlTmFtZXMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBX
ZWJDb3IKICAgICBBU1NFUlQod2ViSURCQ29ubmVjdGlvbik7CiAKICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3NlcnZlci0+bG9jaygpKTsKLSAgICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1l
cyh3ZWJJREJDb25uZWN0aW9uLT5pZGVudGlmaWVyKCksIG1haW5GcmFtZU9yaWdpbiwgb3Blbmlu
Z09yaWdpbiwgY2FsbGJhY2tJRCk7CisgICAgbV9zZXJ2ZXItPmdldEFsbERhdGFiYXNlTmFtZXNB
bmRWZXJzaW9ucyh3ZWJJREJDb25uZWN0aW9uLT5pZGVudGlmaWVyKCksIHJlcXVlc3RJZGVudGlm
aWVyLCBvcmlnaW4pOwogfQogCiB2b2lkIFdlYklEQlNlcnZlcjo6YWRkQ29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nl
c3NJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0lu
ZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaAppbmRleCBkNDAzZjZjODQwYzMwMjUyMjc0ZDJkM2E3ODI0
NWUyMjk4NzMwMjY3Li44NTM4Mjc3YjZkMmM5ZDgxZGM3M2EzNzc3OTViNTQ4MDBmOTgwYTJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJT
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJTZXJ2ZXIuaApAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhYm9ydE9wZW5B
bmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
KTsKICAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SW5kZXhlZERCOjpDb25uZWN0aW9u
Q2xvc2VkT25CZWhhbGZPZlNlcnZlcik7CiAgICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVk
KGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJik7Ci0gICAgdm9pZCBnZXRBbGxEYXRhYmFz
ZU5hbWVzKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKElQQzo6Q29ubmVj
dGlvbiYsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYpOwogCiAgICAgdm9pZCBhZGRDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZUNvbm5l
Y3Rpb24oSVBDOjpDb25uZWN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4KaW5k
ZXggMjA5ZjU0MDI2MTUwNTFlNjk3ZTJmZGRkNTc3Mzg5NDEyYjNkZDZkMy4uZjE1ZDYzZjk4ZjI0
MTk4ZTczMWMyMDdlZDg3ZjlkMDVkMTFiOTZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdl
cy5pbgpAQCAtNTAsNyArNTAsNyBAQCBtZXNzYWdlcyAtPiBXZWJJREJTZXJ2ZXIgewogICAgIERp
ZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRp
ZmllciwgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBX
ZWJDb3JlOjpJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyIGNvbm5l
Y3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKQogICAgIE9wZW5EQlJlcXVlc3RDYW5jZWxsZWQo
V2ViQ29yZTo6SURCUmVxdWVzdERhdGEgcmVxdWVzdERhdGEpCiAKLSAgICBHZXRBbGxEYXRhYmFz
ZU5hbWVzKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNh
bGxiYWNrSUQpIFdhbnRzQ29ubmVjdGlvbgorICAgIEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyhXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIHN0
cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSBXYW50c0Nvbm5lY3Rpb24KIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKaW5kZXggMGU5NzgzNjc3OWQ2NjBkNjA4YjMwZjFi
NDE2YTU0MWM4ZTMxY2JhYy4uYTBmNWI0MjA3YzEzYWMyMGJiMjIyNGQxY2M5ODcwOWMzMDgyNWU3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBA
IC0yMDcsOSArMjA3LDkgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Om9wZW5EQlJl
cXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXUKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJJREJTZXJ2ZXI6Ok9wZW5EQlJlcXVlc3RDYW5jZWxsZWQocmVxdWVzdERhdGEpKTsK
IH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMo
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5k
VmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4pCiB7Ci0gICAgc2VuZChNZXNzYWdl
czo6V2ViSURCU2VydmVyOjpHZXRBbGxEYXRhYmFzZU5hbWVzKHRvcE9yaWdpbiwgb3BlbmluZ09y
aWdpbiwgY2FsbGJhY2tJRCkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQlNlcnZlcjo6R2V0
QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pKTsK
IH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZERlbGV0ZURhdGFiYXNlKGNv
bnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdCkKQEAgLTMyMiw5ICszMjIsOSBAQCB2b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6bm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgSURC
UmVzb3VyY2VJZGVudAogICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5ub3RpZnlPcGVuREJSZXF1
ZXN0QmxvY2tlZChyZXF1ZXN0SWRlbnRpZmllciwgb2xkVmVyc2lvbiwgbmV3VmVyc2lvbik7CiB9
CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVz
KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVz
KQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNB
bmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFi
YXNlcykKIHsKLSAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1l
cyhjYWxsYmFja0lELCBkYXRhYmFzZU5hbWVzKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBkYXRh
YmFzZXMpOwogfQogCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y29ubmVjdGlvblRv
U2VydmVyTG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5o
CmluZGV4IDk3MDU4ZDNlZTE4YWNiOTA2ZjQzY2Q1ZDVmZDk5YjZmNjI4NDg3MWEuLjIwNGI4ZmYx
MGJmZDRmMDg4M2U1NjRiN2U5Y2RiMzYwMmE1MDhjYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVz
dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9u
QmVoYWxmT2ZTZXJ2ZXIpIGZpbmFsOwogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChj
b25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpIGZpbmFsOwogCi0gICAgdm9pZCBnZXRBbGxE
YXRhYmFzZU5hbWVzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2lu
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2
NF90IGNhbGxiYWNrSUQpIGZpbmFsOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZl
cnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYpIGZpbmFsOwogCiAgICAgLy8gTWVzc2FnZXMgcmVjZWl2ZWQgZnJv
bSBOZXR3b3JrIFByb2Nlc3MKICAgICB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKTsKQEAgLTEwNSw3ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGlkU3RhcnRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKTsKICAg
ICB2b2lkIGRpZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpOwogICAgIHZvaWQgbm90aWZ5T3BlbkRC
UmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1
ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbik7
Ci0gICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKTsKKyAgICB2b2lkIGRpZEdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZp
ZXImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKTsK
IAogICAgIFJlZjxXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gbV9j
b25uZWN0aW9uVG9TZXJ2ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluCmluZGV4IDhkOTdlNDRlMzVjM2MwZmZlNTNk
MDZjM2I2ZGJiMzIyZTdkNmYxYzAuLjY0ZjI2MzljMGE0NGMyYzc4Y2VmMGIyZjBmYmZlZTJkNTM2
NTViNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIubWVzc2FnZXMuaW4KQEAgLTQ3LDcgKzQ3LDcgQEAgbWVzc2FnZXMgLT4gV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyIHsKICAgICBEaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0X3QgZGF0YWJh
c2VDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6SURCRXJyb3IgZXJyb3IpIGZpbmFsOwog
ICAgIE5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRp
ZmllciByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3
VmVyc2lvbikKIAotICAgIERpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJ
RCwgVmVjdG9yPFN0cmluZz4gZGF0YWJhc2VOYW1lcykKKyAgICBEaWRHZXRBbGxEYXRhYmFzZU5h
bWVzQW5kVmVyc2lvbnMoV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyIHJlcXVlc3RJZGVu
dGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4gZGF0YWJh
c2VzKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCmluZGV4IGE1
NDliMDQ5MDVjNmEyMjNjZDY3NmMwOTBjMDRhNGI3MTcyZTdmYTAuLjk2MjM5MmQ3OTVlYWE5MDRk
YjM2YmViMDFjZDdhNGYwNmRhYzkzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
U3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
U3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBAIC00NzYsMTggKzQ3NiwxOCBAQCB2b2lk
IEluUHJvY2Vzc0lEQlNlcnZlcjo6b3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3Jl
OjpJREJSZXF1ZXN0RGF0YSYgcgogICAgIH0pOwogfQogCi12b2lkIEluUHJvY2Vzc0lEQlNlcnZl
cjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG1haW5GcmFt
ZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRf
dCBjYWxsYmFja0lEKQordm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFt
ZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKIHsKLSAgICBkaXNwYXRj
aFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciA9
IG1fY29ubmVjdGlvblRvU2VydmVyLT5pZGVudGlmaWVyKCksIG1haW5GcmFtZU9yaWdpbiA9IG1h
aW5GcmFtZU9yaWdpbi5pc29sYXRlZENvcHkoKSwgb3BlbmluZ09yaWdpbiA9IG9wZW5pbmdPcmln
aW4uaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrSURdIHsKKyAgICBkaXNwYXRjaFRhc2soW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciA9IG1fY29ubmVjdGlv
blRvU2VydmVyLT5pZGVudGlmaWVyKCksIHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4gPSBvcmln
aW4uaXNvbGF0ZWRDb3B5KCldIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2ZXIt
PmxvY2soKSk7Ci0gICAgICAgIG1fc2VydmVyLT5nZXRBbGxEYXRhYmFzZU5hbWVzKGlkZW50aWZp
ZXIsIG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgY2FsbGJhY2tJRCk7CisgICAgICAg
IG1fc2VydmVyLT5nZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoaWRlbnRpZmllciwgcmVx
dWVzdElkZW50aWZpZXIsIG9yaWdpbik7CiAgICAgfSk7CiB9CiAKLXZvaWQgSW5Qcm9jZXNzSURC
U2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKQordm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6
OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNlcykKIHsKLSAgICBkaXNwYXRjaFRh
c2tSZXBseShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFja0lE
LCBkYXRhYmFzZU5hbWVzID0gZGF0YWJhc2VOYW1lcy5pc29sYXRlZENvcHkoKV0gewotICAgICAg
ICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lE
LCBkYXRhYmFzZU5hbWVzKTsKKyAgICBkaXNwYXRjaFRhc2tSZXBseShbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzID0gZGF0
YWJhc2VzLmlzb2xhdGVkQ29weSgpXSB7CisgICAgICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5k
aWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIGRhdGFi
YXNlcyk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3Rv
cmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9J
blByb2Nlc3NJREJTZXJ2ZXIuaAppbmRleCA2MDQ3ZGQ5Zjk1YjEzZGMxMTZkYjhiZWVmMDg5YjY0
ZGY0M2NjZmE0Li5mNjdkZDMxZGJjZWUzMjJkMDIzMmE2ZjJlZGNiZGRhMzQ5MTgwMWUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5oCkBA
IC05MCw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVk
ZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpIGZpbmFsOwogICAg
IHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRP
bkJlaGFsZk9mU2VydmVyKSBmaW5hbDsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQo
Y29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGdldEFsbERh
dGFiYXNlTmFtZXMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVP
cmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwg
dWludDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJikgZmluYWw7CiAKICAgICAvLyBJREJDb25uZWN0aW9uVG9D
bGllbnQKICAgICBXZWJDb3JlOjpJREJDb25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKCkg
Y29uc3QgZmluYWw7CkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkU3Rh
cnRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKSBmaW5hbDsKICAgICB2
b2lkIGRpZENsb3NlRnJvbVNlcnZlcihXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFi
YXNlQ29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmluYWw7CiAgICAgdm9p
ZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRf
dCBuZXdWZXJzaW9uKSBmaW5hbDsKLSAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWlu
dDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpIGZp
bmFsOworICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdl
YkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpIGZpbmFsOwogCiAgICAgdm9pZCBjbG9zZUFuZERlbGV0
ZURhdGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRpbWUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwppbmRleCBiZjM3YzcyOTAyN2MyMmExMTZiOTFmZTdjM2QxN2Y1YzQ5OGU3ZDkyLi4w
NDgyNTY5NmE5ZjE3ZDQxNmY4ODY0YTcxZDIxNGRlMTcwYWQxMDUwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wNi0xMSAgRGFycnlsIFBvZ3Vl
ICA8ZGFycnlsQGRwb2d1ZS5jYT4KKworICAgICAgICBJbmRleGVkREI6IFN1cHBvcnQgSURCRmFj
dG9yeSBkYXRhYmFzZXMgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTEwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGp1c3QgdGVzdCBleHBlY3RhdGlvbnMgZm9yIGBJREJGYWN0b3J5LnBy
b3RvdHlwZS5kYXRhYmFzZXMoKWAuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LWRh
dGFiYXNlcy1vcGFxdWUtb3JpZ2luLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnktb3JpZ2luLWlzb2xhdGlvbi1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFu
eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA2LTExICBPcmlvbCBC
cnVmYXUgIDxvYnJ1ZmF1QGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1ncmlkXSBSZWltcG9y
dCBXUFQgdGVzdHMgcmVtb3ZlZCBpbiByMjYyODA5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFu
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQKaW5kZXggZTJkZmZh
Yzc0Nzg3YWM1MTg1NTg4NTAyYjZkMGNkNzFlZmVkNzkwZS4uMDY1MDE5ZDEzMDEwOWM3MjRiNTNi
OGE2MGRlYmM5ZjY2NDUzMGM0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnktZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAot
RkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSByZXR1cm5zIGEgcHJvbWlzZS4gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBp
bmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRh
YmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBFbnVt
ZXJhdGUgb25lIGRhdGFiYXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEg
ZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFz
ZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVudW1lcmF0ZSBtdWx0aXBsZSBkYXRhYmFzZXMuIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVk
REIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKLUZB
SUwgTWFrZSBzdXJlIGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5v
IGRhdGFiYXNlcy4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1
bmRlZmluZWQpIgotRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAg
Y2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNl
cyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhl
ZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKK1BBU1MgRW5zdXJlIHRoYXQgZGF0YWJhc2Vz
KCkgcmV0dXJucyBhIHByb21pc2UuIAorUEFTUyBFbnVtZXJhdGUgb25lIGRhdGFiYXNlLiAKK1BB
U1MgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4gCitQQVNTIE1ha2Ugc3VyZSBhbiBlbXB0
eSBsaXN0IGlzIHJldHVybmVkIGZvciB0aGUgY2FzZSBvZiBubyBkYXRhYmFzZXMuIAorRkFJTCBF
bnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVu
J3QgY29tbWl0ZWQuIGFzc2VydF9lcXVhbHM6IFRoZSByZXN1bHQgb2YgZGF0YWJhc2VzKCkgc2hv
dWxkIGJlIG9ubHkgdGhvc2UgZGF0YWJhc2VzIHdoaWNoIGhhdmUgYmVlbiBjcmVhdGVkIGF0IHRo
ZSB0aW1lIG9mIGNhbGxpbmcsIHJlZ2FyZGxlc3Mgb2YgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
bnMgY3VycmVudGx5IHJ1bm5pbmcuIGV4cGVjdGVkIDEgYnV0IGdvdCAyCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dl
dC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CmluZGV4IGUyZGZmYWM3NDc4N2FjNTE4NTU4ODUwMmI2ZDBjZDcxZWZl
ZDc5MGUuLjA2NTAxOWQxMzAxMDljNzI0YjUzYjhhNjBkZWJjOWY2NjQ1MzBjNDYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2dldC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAotRkFJTCBFbnN1cmUgdGhh
dCBkYXRhYmFzZXMoKSByZXR1cm5zIGEgcHJvbWlzZS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJh
c2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRl
eGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBFbnVtZXJhdGUgb25lIGRhdGFi
YXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
aW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5l
ZCkiCi1GQUlMIEVudW1lcmF0ZSBtdWx0aXBsZSBkYXRhYmFzZXMuIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERC
LmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCkn
LCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTWFrZSBzdXJlIGFu
IGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWRE
Qi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJ
TCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhh
dmVuJ3QgY29tbWl0ZWQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycg
aXMgdW5kZWZpbmVkKSIKK1BBU1MgRW5zdXJlIHRoYXQgZGF0YWJhc2VzKCkgcmV0dXJucyBhIHBy
b21pc2UuIAorUEFTUyBFbnVtZXJhdGUgb25lIGRhdGFiYXNlLiAKK1BBU1MgRW51bWVyYXRlIG11
bHRpcGxlIGRhdGFiYXNlcy4gCitQQVNTIE1ha2Ugc3VyZSBhbiBlbXB0eSBsaXN0IGlzIHJldHVy
bmVkIGZvciB0aGUgY2FzZSBvZiBubyBkYXRhYmFzZXMuIAorRkFJTCBFbnN1cmUgdGhhdCBkYXRh
YmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIGFz
c2VydF9lcXVhbHM6IFRoZSByZXN1bHQgb2YgZGF0YWJhc2VzKCkgc2hvdWxkIGJlIG9ubHkgdGhv
c2UgZGF0YWJhc2VzIHdoaWNoIGhhdmUgYmVlbiBjcmVhdGVkIGF0IHRoZSB0aW1lIG9mIGNhbGxp
bmcsIHJlZ2FyZGxlc3Mgb2YgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbnMgY3VycmVudGx5IHJ1
bm5pbmcuIGV4cGVjdGVkIDEgYnV0IGdvdCAyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnktZGF0YWJh
c2VzLW9wYXF1ZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVl
LW9yaWdpbi1leHBlY3RlZC50eHQKaW5kZXggMDY3OWYzOTJlYjVmYWVkMGJkYzE3ZTgxY2I5YjVh
Y2IyMjFiNTJkNC4uZGZhNzEwMmIwMGNjM2FkOGMwMWRiZmQ3ZDBiYzk1OTMxNzZlZTQyMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSw0IEBACiAKLUZBSUwgSURCRmFjdG9yeS5kYXRhYmFzZXMoKSBpbiBub24tc2FuZGJveGVkIGlm
cmFtZSBzaG91bGQgbm90IHJlamVjdCBhc3NlcnRfZXF1YWxzOiBJREJGYWN0b3J5LmRhdGFiYXNl
cygpIHNob3VsZCBub3QgcmVqZWN0IGV4cGVjdGVkICJubyBleGNlcHRpb24iIGJ1dCBnb3QgImlu
ZGV4ZWREQi5kYXRhYmFzZXMgdW5kZWZpbmVkIgotRkFJTCBJREJGYWN0b3J5LmRhdGFiYXNlcygp
IGluIHNhbmRib3hlZCBpZnJhbWUgc2hvdWxkIHJlamVjdCBhc3NlcnRfZXF1YWxzOiBQcm9taXNl
IHNob3VsZCBiZSByZWplY3RlZCB3aXRoIFNlY3VyaXR5RXJyb3IgZXhwZWN0ZWQgIlNlY3VyaXR5
RXJyb3IiIGJ1dCBnb3QgImluZGV4ZWREQi5kYXRhYmFzZXMgdW5kZWZpbmVkIgorUEFTUyBJREJG
YWN0b3J5LmRhdGFiYXNlcygpIGluIG5vbi1zYW5kYm94ZWQgaWZyYW1lIHNob3VsZCBub3QgcmVq
ZWN0IAorUEFTUyBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGluIHNhbmRib3hlZCBpZnJhbWUgc2hv
dWxkIHJlamVjdCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYmZhY3Rvcnktb3JpZ2luLWlzb2xhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYTMz
MDk4ZWI4ZjY1ZmZjMTljYzdkYWZkNzk5NWU4MjAxNDEzZDY1NC4uY2I5ODVmYzVmMmU2Zjg0ZThl
OTU5NTMwZTM4N2VkYTlhYTE1ZWNmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0
aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgb3JpZ2lu
cyBoYXZlIHNlcGFyYXRlIGxvY2tpbmcgc2NoZW1lcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFz
ZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4
ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCitQQVNTIFRlc3QgdG8gbWFrZSBzdXJlIHRo
YXQgb3JpZ2lucyBoYXZlIHNlcGFyYXRlIGxvY2tpbmcgc2NoZW1lcyAKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRs
aGFybmVzcy5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4
IDExMjhkYTYyYjhjZDQ0MmM3MTIwMjY3ZDIxNjdjMTRlODU3ZWFlNTMuLmIxZWVjZDc5YzBkMzM5
ODU3NjE5ZTE0Y2RkOWYzMDZhNDU5YTAzM2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQKQEAgLTUyLDcgKzUyLDcgQEAg
UEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWMKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24g
b3BlbihET01TdHJpbmcsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9uZykgCiBQQVNTIElEQkZh
Y3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nKSAKLUZB
SUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMg
b3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJkYXRhYmFzZXMiIG1pc3NpbmcKK1BBU1MgSURC
RmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSAKIFBBU1MgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjbXAoYW55LCBhbnkpIAogUEFTUyBJREJGYWN0b3J5IG11
c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgW29iamVjdCBJREJGYWN0b3J5XSAKIFBBU1MgU3Ry
aW5naWZpY2F0aW9uIG9mIFtvYmplY3QgSURCRmFjdG9yeV0gCkBAIC02MCw3ICs2MCw3IEBAIFBB
U1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJvcGVuKERPTVN0CiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBjYWxsaW5n
IG9wZW4oRE9NU3RyaW5nLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGxvbmcpIG9uIFtvYmplY3Qg
SURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
IFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlRGF0YWJhc2Uo
RE9NU3RyaW5nKSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0
IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImRhdGFiYXNlcyIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVj
dCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRhdGFiYXNlcygpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFj
dG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbXAoYW55LCBhbnkpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgY21wKGFueSwgYW55
KSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIElEQkRhdGFiYXNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRl
eCA5MjkyOWUxNjE4YjY2YTEwODk4MDBiYWY4MjVmMjU4ZjUyNWEyYTE3Li5hZjU3NTA0ZDQ1ZDk5
NTgwMTA4MjkwYmM4ZGFhOTVmYjY1NjYzODNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAg
LTUyLDcgKzUyLDcgQEAgUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWMKIFBBU1MgSURCRmFjdG9yeSBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJm
YWNlOiBvcGVyYXRpb24gb3BlbihET01TdHJpbmcsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9u
ZykgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGVsZXRlRGF0YWJhc2Uo
RE9NU3RyaW5nKSAKLUZBSUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFz
ZXMoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNz
aW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJkYXRhYmFzZXMiIG1p
c3NpbmcKK1BBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSAK
IFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjbXAoYW55LCBhbnkpIAogUEFT
UyBJREJGYWN0b3J5IG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgW29iamVjdCBJREJGYWN0
b3J5XSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9mIFtvYmplY3QgSURCRmFjdG9yeV0gCkBAIC02
MCw3ICs2MCw3IEBAIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9y
eV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvcGVuKERPTVN0CiBQQVNTIElEQkZhY3RvcnkgaW50
ZXJmYWNlOiBjYWxsaW5nIG9wZW4oRE9NU3RyaW5nLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGxv
bmcpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRo
cm93IFR5cGVFcnJvciAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFj
dG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcg
ZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nKSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIElEQkZhY3RvcnkgaW50
ZXJmYWNlOiBbb2JqZWN0IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJh
c2VzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImRh
dGFiYXNlcyIgbm90IGZvdW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBJREJGYWN0b3J5IGlu
dGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRhdGFi
YXNlcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6
IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbXAoYW55LCBhbnkp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxp
bmcgY21wKGFueSwgYW55KSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1
bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQQVNTIElEQkRhdGFiYXNlIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401829</attachid>
            <date>2020-06-13 00:56:55 -0700</date>
            <delta_ts>2020-06-15 08:38:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211043-20200613005654.patch</filename>
            <type>text/plain</type>
            <size>79632</size>
            <attacher name="Darryl Pogue">dvpdiner2</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhiZDY0OWM4YmE2ZDNm
NmViYmYzODliZDQxZGJiNGFiYjFiYWI2Yy4uNzk1N2VhY2E1NDBiNDBiZjQzZDhmMDkzMGEzZDA5
YmNhMDY4MjQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIwLTA2LTEzICBEYXJy
eWwgUG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9y
dCBJREJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBmZXRjaGluZyB0aGUgbGlzdCBv
ZiBJREIgZGF0YWJhc2UgbmFtZXMgYW5kIHZlcnNpb25zCisgICAgICAgIGZyb20gdGhlIElEQlNl
cnZlciwgYW5kIGV4cG9zZSB0aGUgZnVuY3Rpb25hbGl0eSBhcworICAgICAgICBgSURCRmFjdG9y
eS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9JbmRleGVkREIvI2RvbS1pZGJmYWN0b3J5LWRhdGFiYXNlcworCisgICAgICAgICog
SGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01P
YmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFjdGl2ZURPTU9iamVjdDo6cGVyZm9ybUNh
bGxiYWNrT25PcmlnaW5UaHJlYWQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdDo6fklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojpjb21wbGV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6YWN0
aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uUmVxdWVzdDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6c3RvcCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3QuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpkYXRhYmFzZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SURCRmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uUHJveHk6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5Ojpmb3JnZXRBY3Rpdml0eUZvckN1cnJlbnRUaHJl
YWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6Omdl
dEFsbERhdGFiYXNlTmFtZXMpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6
IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25u
ZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2
ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFt
ZUFuZFZlcnNpb25Gcm9tRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lRnJvbUZpbGUpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb246
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudDo6cmVxdWVzdERhdGFiYXNlTmFtZXMpOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorCiAyMDIwLTA2LTEyICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI2MTk4NSk6IFVu
YWJsZSB0byByZXNwb25kIHRvIGxhcmdlIGNvbW1lbnRzIG9uIEJ1Z3ppbGxhIHdpdGggYWx3YXlz
LW9uIHNjcm9sbGJhcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOThjYzUxNTEyYzgwZDI4MjY2YTcxZTdjOTVjOTBj
YzcxNTAyM2Q4My4uZDUyZjRkOWU5YjkxYzY1ZDIyZTRhZjk4OGJkZmU4Yjc1ODNmMGFjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMC0wNi0xMyAgRGFycnlsIFBvZ3VlICA8ZGFycnls
QGRwb2d1ZS5jYT4KKworICAgICAgICBJbmRleGVkREI6IFN1cHBvcnQgSURCRmFjdG9yeSBkYXRh
YmFzZXMgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTEwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQbHVtYmluZyBmb3IgcmV0dXJuaW5nIGEgbGlzdCBvZiBJREIgZGF0YWJhc2VzIGFuZCB2
ZXJzaW9ucy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6IERl
bGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJT
ZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNl
TmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Z2V0QWxs
RGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQlNlcnZlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXMpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluOgorCiAyMDIwLTA2LTEy
ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIEF1dG9tYXRpb24uY29t
cHV0ZUVsZW1lbnRMYXlvdXQgc2hvdWxkIHJldHVybiBpZnJhbWUtcmVsYXRpdmUgZWxlbWVudCBy
ZWN0cyAod2hlbiBjb29yZGluYXRlIHN5c3RlbSBpcyAnUGFnZScpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9n
CmluZGV4IDcyNWE1OGEwMDEzYmM2MjFlZmFhMmZkYmI1YTMzNzE4ZTdkZWU5MzcuLmQwZTcyYjY0
NzVkNGU5YWUyNTViYzExZGNiMTQ3YThhMzhjNWVlODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMjAtMDYtMTMgIERhcnJ5bCBQb2d1ZSAgPGRhcnJ5bEBkcG9ndWUu
Y2E+CisKKyAgICAgICAgSW5kZXhlZERCOiBTdXBwb3J0IElEQkZhY3RvcnkgZGF0YWJhc2VzIG1l
dGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEx
MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGx1
bWJpbmcgZm9yIHJldHVybmluZyBhIGxpc3Qgb2YgSURCIGRhdGFiYXNlcyBhbmQgdmVyc2lvbnMu
CisKKyAgICAgICAgKiBTdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHA6CisgICAgICAgIChJ
blByb2Nlc3NJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAg
ICAgIChJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9u
cyk6CisgICAgICAgIChJblByb2Nlc3NJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMpOiBE
ZWxldGVkLgorICAgICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5h
bWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBTdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5oOgor
CiAyMDIwLTA2LTEyICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgZGVwZW5kZW5jaWVzIGZvciBNaWdyYXRlIEhlYWRlcnMgYW5kIEdlbmVyYXRlIEV4cG9y
dCBGaWxlcyBidWlsZCBwaGFzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGVjNjk3NDFhNTdiYWVm
MTNmNjQxMzdiMzViNDNlODQ4YTA5NTg4N2MuLmMxZDQzOTc2NDVhOWVlZTI4YmY2Njk4MmE0Y2Fk
OWJiNzViYTc5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNDAsNiArNDAsNyBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9J
REJBY3RpdmVET01PYmplY3QuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRl
bnRpZmllci5oCisgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3QuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkdldEFsbFJlc3VsdC5oCiAgICAg
TW9kdWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuaApAQCAtNzIsNiArNzMsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvckluZm8uaAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJDdXJzb3JSZWNvcmQuaAogICAgIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uaAorICAgIE1vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgKICAgICBNb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCRXJyb3IuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRB
bGxSZWNvcmRzRGF0YS5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkdldFJlY29y
ZERhdGEuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
QWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJB
Y3RpdmVET01PYmplY3QuaAppbmRleCBkMmY0MGQ5OWI3YjlmNTAzMWY1MTQ0NTRmNzU5NzA4NzBk
N2FiMTFkLi5kZGFkNzM2NjkzMWM5NjlhZmZmYzRjMDNiZGNkZDhiNTAzYTAxMDI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmpl
Y3QuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVCgmb3JpZ2luVGhy
ZWFkKCkgPT0gJm9iamVjdC5vcmlnaW5UaHJlYWQoKSk7CiAKICAgICAgICAgaWYgKGNhbkN1cnJl
bnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob2JqZWN0Lm9yaWdpblRocmVhZCgpKSkgewot
ICAgICAgICAgICAgKG9iamVjdC4qbWV0aG9kKShhcmd1bWVudHMuLi4pOworICAgICAgICAgICAg
KG9iamVjdC4qbWV0aG9kKShzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM3OWMxMDg5ZDhlNWMxN2QyZWE0ZjY2YWE1
OWE4MDg4MmQyNjk5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcApAQCAtMCwwICsx
LDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIERhcnJ5bCBQb2d1ZSAoZGFycnlsQGRw
b2d1ZS5jYSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKworI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94eS5oIgorI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCk7CisKK1JlZjxJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdD4gSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Q
cm94eSYgY29ubmVjdGlvblByb3h5LCBJbmZvQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdChjb250
ZXh0LCBjb25uZWN0aW9uUHJveHksIFdURk1vdmUoY2FsbGJhY2spKSk7Cit9CisKK0lEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBJbmZvQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6
IElEQkFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKKyAgICAsIG1fY29ubmVjdGlvblByb3h5KGNv
bm5lY3Rpb25Qcm94eSkKKyAgICAsIG1fcmVzb3VyY2VJZGVudGlmaWVyKGNvbm5lY3Rpb25Qcm94
eSkKKyAgICAsIG1fY2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCit7CisgICAgQVNTRVJUKGNh
bkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsKKwor
ICAgIHN1c3BlbmRJZk5lZWRlZCgpOworfQorCitJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVx
dWVzdDo6fklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KCkKK3sKKyAgICBBU1NFUlQo
Y2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOwor
fQorCit2b2lkIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojpjb21wbGV0ZShPcHRp
b25hbDxWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4+JiYgZGF0YWJhc2VzKQorewor
ICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRo
cmVhZCgpKSk7CisKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFjaykp
CisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUoZGF0YWJhc2VzKSk7Cit9CisKK2NvbnN0IGNoYXIq
IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0
YShvcmlnaW5UaHJlYWQoKSkpOworICAgIHJldHVybiAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3QiOworfQorCitib29sIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojp2
aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVu
dFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkgfHwgVGhyZWFkOjpt
YXlCZUdDVGhyZWFkKCkpOworICAgIHJldHVybiBtX2hhc1BlbmRpbmdBY3Rpdml0eTsKK30KKwor
dm9pZCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6c3RvcCgpCit7CisgICAgQVNT
RVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mYzYwMDYwYzUzNTNhMjViNjUzNDY4YmZiODY2OGY5OTllZWNjMTQyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIERhcnJ5bCBQb2d1ZSAoZGFycnlsQGRwb2d1ZS5jYSkKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIklEQkFj
dGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCIK
KyNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKKworbmFtZXNwYWNlIElEQkNsaWVudCB7CitjbGFzcyBJREJDb25uZWN0
aW9uUHJveHk7Cit9CisKK2NsYXNzIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0IGZp
bmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b25SZXF1ZXN0PiwgcHVibGljIElEQkFjdGl2ZURPTU9iamVjdCB7CisgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCk7CitwdWJsaWM6Cisg
ICAgdXNpbmcgSW5mb0NhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxW
ZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4+JiYpPjsKKworICAgIHN0YXRpYyBSZWY8
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmLCBJbmZvQ2FsbGJhY2smJik7
CisKKyAgICB+SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoKTsKKworICAgIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVzb3VyY2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV9yZXNvdXJjZUlkZW50aWZpZXI7IH0KKworICAgIHVzaW5nIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Pjo6cmVmOworICAgIHVzaW5nIFRo
cmVhZFNhZmVSZWZDb3VudGVkPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Pjo6ZGVy
ZWY7CisKKyAgICB2b2lkIGNvbXBsZXRlKE9wdGlvbmFsPFZlY3RvcjxJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uPj4mJik7CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX2hhc1BlbmRpbmdBY3Rpdml0
eSB7IHRydWUgfTsKKworICAgIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYsIEluZm9D
YWxsYmFjayYmKTsKKworICAgIC8vIEFjdGl2ZURPTU9iamVjdC4KKyAgICBib29sIHZpcnR1YWxI
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzdG9wKCkgZmluYWw7CisKKyAg
ICBSZWY8SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk+IG1fY29ubmVjdGlvblByb3h5Owor
ICAgIElEQlJlc291cmNlSWRlbnRpZmllciBtX3Jlc291cmNlSWRlbnRpZmllcjsKKyAgICBJbmZv
Q2FsbGJhY2sgbV9jYWxsYmFjazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAppbmRleCBiMTNjNzFlODkxY2JiMjI5NDc1NGZk
NWI3MDMxMmNmNmQyZmVjODAwLi5hNDg3MjdiMDAzYjQ4Njc3NmUwMWY1Yjc0ODI2ZDU2NTUzNGJj
YmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
LmNwcApAQCAtMzQsMTAgKzM0LDEwIEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgor
I2luY2x1ZGUgIkpTSURCRmFjdG9yeS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTMzLDkgKzEz
Myw0MSBAQCBFeGNlcHRpb25PcjxzaG9ydD4gSURCRmFjdG9yeTo6Y21wKEpTR2xvYmFsT2JqZWN0
JiBleGVjU3RhdGUsIEpTVmFsdWUgZmlyc3RWYWx1ZQogICAgIHJldHVybiBmaXJzdC0+Y29tcGFy
ZShzZWNvbmQuZ2V0KCkpOwogfQogCi12b2lkIElEQkZhY3Rvcnk6OmdldEFsbERhdGFiYXNlTmFt
ZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIG9wZW5pbmdPcmlnaW4sIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+
Jik+JiYgY2FsbGJhY2spCit2b2lkIElEQkZhY3Rvcnk6OmRhdGFiYXNlcyhTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBJREJEYXRhYmFzZXNSZXNwb25zZVByb21pc2UmJiBwcm9taXNl
KQogewotICAgIG1fY29ubmVjdGlvblByb3h5LT5nZXRBbGxEYXRhYmFzZU5hbWVzKG1haW5GcmFt
ZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIExPRyhJbmRl
eGVkREIsICJJREJGYWN0b3J5OjpkYXRhYmFzZXMiKTsKKworICAgIGlmIChzaG91bGRUaHJvd1Nl
Y3VyaXR5RXhjZXB0aW9uKGNvbnRleHQpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KFNlY3Vy
aXR5RXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKGNvbnRleHQu
c2VjdXJpdHlPcmlnaW4oKSk7CisKKyAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+Z2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKGNvbnRleHQsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0o
YXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAgICAg
ICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBVbmtub3duRXJyb3IgfSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBwcm9taXNlLnJlc29sdmUoV1RGOjpt
YXAoKnJlc3VsdCwgW10oYXV0byYmIGluZm8pIHsKKyAgICAgICAgICAgIHJldHVybiBJREJGYWN0
b3J5OjpEYXRhYmFzZUluZm8geyBXVEZNb3ZlKGluZm8ubmFtZSksIGluZm8udmVyc2lvbiB9Owor
ICAgICAgICB9KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgSURCRmFjdG9yeTo6Z2V0QWxsRGF0YWJh
c2VOYW1lcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBGdW5jdGlvbjx2b2lkKGNv
bnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYgY2FsbGJhY2spCit7CisgICAgbV9jb25uZWN0aW9uUHJv
eHktPmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb250ZXh0LCBbY2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICgh
cmVzdWx0KSB7CisgICAgICAgICAgICBjYWxsYmFjayh7IH0pOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgY2FsbGJhY2soV1RGOjptYXAoKnJlc3VsdCwgW10oYXV0
byYmIGluZm8pIHsKKyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKGluZm8ubmFtZSk7CisgICAg
ICAgIH0pKTsKKyAgICB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCmluZGV4IDEzNDU2NTExOWYy
NzRhODJjNTM4MTY0OTIzNmYwNTVkMzI1OWFhNzMuLjEzN2I5NjQwMzAwZTgzOTJkMDY4YTNmYWFj
NzYxZWNiMjIxMmY1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KQEAgLTQ0LDYgKzQ1LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgSURCT3BlbkRCUmVxdWVzdDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsKIAog
bmFtZXNwYWNlIElEQkNsaWVudCB7CiBjbGFzcyBJREJDb25uZWN0aW9uUHJveHk7CkBAIC01NCwx
MiArNTYsMjEgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8SURCRmFjdG9yeT4gY3JlYXRlKElE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5Jik7CiAgICAgfklEQkZhY3RvcnkoKTsKIAorICAg
IHN0cnVjdCBEYXRhYmFzZUluZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgdWlu
dDY0X3QgdmVyc2lvbjsKKyAgICB9OworCiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQk9wZW5EQlJl
cXVlc3Q+PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5hbWUs
IE9wdGlvbmFsPHVpbnQ2NF90PiB2ZXJzaW9uKTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCT3Bl
bkRCUmVxdWVzdD4+IGRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25z
dCBTdHJpbmcmIG5hbWUpOwogCiAgICAgRXhjZXB0aW9uT3I8c2hvcnQ+IGNtcChKU0M6OkpTR2xv
YmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlIGZpcnN0LCBKU0M6OkpTVmFsdWUgc2Vjb25kKTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0
eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09y
aWdpbiwgV1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmKTsKKyAg
ICB1c2luZyBJREJEYXRhYmFzZXNSZXNwb25zZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8
SURMU2VxdWVuY2U8SURMRGljdGlvbmFyeTxJREJGYWN0b3J5OjpEYXRhYmFzZUluZm8+Pj47CisK
KyAgICB2b2lkIGRhdGFiYXNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSURCRGF0YWJhc2Vz
UmVzcG9uc2VQcm9taXNlJiYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRBbGxEYXRh
YmFzZU5hbWVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGdW5jdGlvbjx2b2lkKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+Jik+JiYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IElEQkZhY3Rvcnko
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKaW5kZXggZjk4ZjNmODM5YmM0YTM4M2RkNDM5
OTI5OWI3OTI2YjA3Njg3YTBiMS4uOTVlYTY2MTJkZTdlNThlMjU2MDE1MDY5Y2M5M2Y2OGQwMjNh
NzZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9y
eS5pZGwKQEAgLTI5LDUgKzI5LDE0IEBACiBdIGludGVyZmFjZSBJREJGYWN0b3J5IHsKICAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIElEQk9w
ZW5EQlJlcXVlc3Qgb3BlbihET01TdHJpbmcgbmFtZSwgb3B0aW9uYWwgW0VuZm9yY2VSYW5nZV0g
dW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24pOwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCT3BlbkRCUmVxdWVzdCBkZWxldGVEYXRh
YmFzZShET01TdHJpbmcgbmFtZSk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRdIFByb21pc2U8c2VxdWVuY2U8SURCRGF0YWJhc2VJbmZvPj4gZGF0YWJhc2VzKCk7CiAgICAg
W0NhbGxXaXRoPUdsb2JhbE9iamVjdCwgTWF5VGhyb3dFeGNlcHRpb25dIHNob3J0IGNtcChhbnkg
Zmlyc3QsIGFueSBzZWNvbmQpOwogfTsKKworWworICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFU
QUJBU0UsCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgSURCRGF0YWJh
c2VJbmZvIHsKKyAgICBET01TdHJpbmcgbmFtZTsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgdmVy
c2lvbjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCmluZGV4IDk1NmRmYWU2NDUxNzQ5
OGRlMzhlNTQ4MzFiNTkxYjRmNjM1NWM5NTkuLmE3NzY4ZmNkZDE5ZTZjYWMwN2I1ODA5YjczMGFh
MTZiY2QyMjY4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCkBAIC0zMCw2ICszMCw4
IEBACiAKICNpbmNsdWRlICJJREJDdXJzb3JJbmZvLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2Uu
aCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCisjaW5jbHVkZSAiSURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJHZXRSZWNvcmRE
YXRhLmgiCiAjaW5jbHVkZSAiSURCSXRlcmF0ZUN1cnNvckRhdGEuaCIKICNpbmNsdWRlICJJREJL
ZXlSYW5nZURhdGEuaCIKQEAgLTQ2OSw2ICs0NzEsMTcgQEAgdm9pZCBJREJDb25uZWN0aW9uUHJv
eHk6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3QoY29uc3QgSURCRXJyb3ImIGVycm9yKQogICAgICAg
ICBhdXRvIHJlc3VsdCA9IElEQlJlc3VsdERhdGE6OmVycm9yKHJlcXVlc3RJZGVudGlmaWVyLCBl
cnJvcik7CiAgICAgICAgIHJlcXVlc3QtPnBlcmZvcm1DYWxsYmFja09uT3JpZ2luVGhyZWFkKCpy
ZXF1ZXN0LCAmSURCT3BlbkRCUmVxdWVzdDo6cmVxdWVzdENvbXBsZXRlZCwgcmVzdWx0KTsKICAg
ICB9CisKKyAgICBWZWN0b3I8SURCUmVzb3VyY2VJZGVudGlmaWVyPiBpbmZvQ2FsbGJhY2tJZGVu
dGlmaWVyczsKKyAgICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBsb2NrKG1fZGF0YWJhc2VJbmZv
TWFwTG9jayk7CisgICAgICAgIGluZm9DYWxsYmFja0lkZW50aWZpZXJzID0gY29weVRvVmVjdG9y
KG1fZGF0YWJhc2VJbmZvQ2FsbGJhY2tzLmtleXMoKSk7CisgICAgfQorCisgICAgZm9yIChhdXRv
JiByZXF1ZXN0SWRlbnRpZmllciA6IGluZm9DYWxsYmFja0lkZW50aWZpZXJzKSB7CisgICAgICAg
IE9wdGlvbmFsPFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPj4gcmVzdWx0ID0gV1RG
OjpudWxsb3B0OworICAgICAgICBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVx
dWVzdElkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAgfQogfQogCiB2b2lkIElEQkNv
bm5lY3Rpb25Qcm94eTo6c2NoZWR1bGVNYWluVGhyZWFkVGFza3MoKQpAQCAtNDk2LDEyICs1MDks
MzYgQEAgdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmhhbmRsZU1haW5UaHJlYWRUYXNrcygpCiAg
ICAgICAgIHRhc2stPnBlcmZvcm1UYXNrKCk7CiB9CiAKLXZvaWQgSURCQ29ubmVjdGlvblByb3h5
OjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmln
aW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBGdW5jdGlvbjx2b2lkIChj
b25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNhbGxiYWNrKQordm9pZCBJREJDb25uZWN0aW9uUHJv
eHk6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uPj4mJik+JiYgY2FsbGJhY2spCiB7Ci0gICAgLy8gVGhpcyBtZXRob2QgaXMgb25s
eSBtZWFudCB0byBiZSBjYWxsZWQgYnkgdGhlIHdlYiBpbnNwZWN0b3Igb24gdGhlIG1haW4gdGhy
ZWFkLgotICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBDbGllbnRPcmln
aW4gb3JpZ2luIHsgY29udGV4dC5zZWN1cml0eU9yaWdpbigpLT5kYXRhKCksIGNvbnRleHQudG9w
T3JpZ2luKCkuZGF0YSgpIH07CiAKLSAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci5nZXRBbGxEYXRh
YmFzZU5hbWVzKG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgV1RGTW92ZShjYWxsYmFj
aykpOworICAgIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KiByZXF1ZXN0OworICAg
IHsKKyAgICAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlSW5mb01hcExvY2spOwor
ICAgICAgICBhdXRvIHJlcSA9IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpjcmVh
dGUoY29udGV4dCwgKnRoaXMsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgQVNTRVJUKCFt
X2RhdGFiYXNlSW5mb0NhbGxiYWNrcy5jb250YWlucyhyZXEtPnJlc291cmNlSWRlbnRpZmllcigp
KSk7CisgICAgICAgIHJlcXVlc3QgPSByZXEucHRyKCk7CisgICAgICAgIG1fZGF0YWJhc2VJbmZv
Q2FsbGJhY2tzLmFkZChyZXEtPnJlc291cmNlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHJlcSkpOwor
ICAgIH0KKworICAgIGNhbGxDb25uZWN0aW9uT25NYWluVGhyZWFkKCZJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucywgcmVxdWVzdC0+cmVzb3VyY2VJ
ZGVudGlmaWVyKCksIG9yaWdpbik7Cit9CisKK3ZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpkaWRH
ZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXF1ZXN0SWRlbnRpZmllciwgT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZl
cnNpb24+PiYmIGRhdGFiYXNlcykKK3sKKyAgICBSZWZQdHI8SURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvblJlcXVlc3Q+IHJlcXVlc3Q7CisgICAgeworICAgICAgICBMb2NrZXI8TG9jaz4gbG9ja2Vy
KG1fZGF0YWJhc2VJbmZvTWFwTG9jayk7CisgICAgICAgIGF1dG8gcmVxID0gbV9kYXRhYmFzZUlu
Zm9DYWxsYmFja3MudGFrZShyZXF1ZXN0SWRlbnRpZmllcik7CisKKyAgICAgICAgaWYgKCFyZXEp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgcmVxdWVzdCA9ICgqcmVxKS5wdHIoKTsK
KyAgICB9CisKKyAgICByZXF1ZXN0LT5wZXJmb3JtQ2FsbGJhY2tPbk9yaWdpblRocmVhZCgqcmVx
dWVzdCwgJklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojpjb21wbGV0ZSwgV1RGTW92
ZShkYXRhYmFzZXMpKTsKIH0KIAogdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OnJlZ2lzdGVyRGF0
YWJhc2VDb25uZWN0aW9uKElEQkRhdGFiYXNlJiBkYXRhYmFzZSkKQEAgLTU5Niw2ICs2MzMsMTAg
QEAgdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmZvcmdldEFjdGl2aXR5Rm9yQ3VycmVudFRocmVh
ZCgpCiAgICAgICAgIExvY2tlcjxMb2NrPiBsb2NrKG1fdHJhbnNhY3Rpb25PcGVyYXRpb25Mb2Nr
KTsKICAgICAgICAgcmVtb3ZlSXRlbXNNYXRjaGluZ0N1cnJlbnRUaHJlYWQobV9hY3RpdmVPcGVy
YXRpb25zKTsKICAgICB9CisgICAgeworICAgICAgICBMb2NrZXI8TG9jaz4gbG9jayhtX2RhdGFi
YXNlSW5mb01hcExvY2spOworICAgICAgICByZW1vdmVJdGVtc01hdGNoaW5nQ3VycmVudFRocmVh
ZChtX2RhdGFiYXNlSW5mb0NhbGxiYWNrcyk7CisgICAgfQogfQogCiB2b2lkIElEQkNvbm5lY3Rp
b25Qcm94eTo6c2V0Q29udGV4dFN1c3BlbmRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjdXJy
ZW50Q29udGV4dCwgYm9vbCBpc0NvbnRleHRTdXNwZW5kZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5
LmgKaW5kZXggNDY0MmYwOTNlNzM4MjlkNjZhZmI2MTA5NDk0NmFlMTk3MDE5Y2Y3ZS4uYWNjMjlj
MGVjMmIwZjBmNDRkNDEzYzE2ZDQwMDEzMzFlZmYyZDg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJv
eHkuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAj
aW5jbHVkZSAiSURCQ29ubmVjdGlvblRvU2VydmVyLmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJUcmFuc2FjdGlvbk9wZXJhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Dcm9z
c1RocmVhZFF1ZXVlLmg+CkBAIC01MCw2ICs1MSw3IEBAIGNsYXNzIElEQlRyYW5zYWN0aW9uOwog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogCitz
dHJ1Y3QgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjsKIHN0cnVjdCBJREJHZXRSZWNvcmREYXRh
Owogc3RydWN0IElEQkl0ZXJhdGVDdXJzb3JEYXRhOwogCkBAIC0xMTUsNyArMTE3LDggQEAgcHVi
bGljOgogICAgIHZvaWQgcmVmKCk7CiAgICAgdm9pZCBkZXJlZigpOwogCi0gICAgdm9pZCBnZXRB
bGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNv
bnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYpOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGdW5jdGlvbjx2b2lkKE9wdGlvbmFs
PFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPj4mJik+JiYpOworICAgIHZvaWQgZGlk
R2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYsIE9wdGlvbmFsPFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPj4mJik7CiAKICAg
ICB2b2lkIHJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKElEQkRhdGFiYXNlJik7CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKElEQkRhdGFiYXNlJik7CkBAIC0xNjksNiAr
MTcyLDkgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmllciwgUmVm
UHRyPFRyYW5zYWN0aW9uT3BlcmF0aW9uPj4gbV9hY3RpdmVPcGVyYXRpb25zOwogICAgIExvY2sg
bV90cmFuc2FjdGlvbk9wZXJhdGlvbkxvY2s7CiAKKyAgICBIYXNoTWFwPElEQlJlc291cmNlSWRl
bnRpZmllciwgUmVmPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Pj4gbV9kYXRhYmFz
ZUluZm9DYWxsYmFja3M7CisgICAgTG9jayBtX2RhdGFiYXNlSW5mb01hcExvY2s7CisKICAgICBD
cm9zc1RocmVhZFF1ZXVlPENyb3NzVGhyZWFkVGFzaz4gbV9tYWluVGhyZWFkUXVldWU7CiAgICAg
TG9jayBtX21haW5UaHJlYWRUYXNrTG9jazsKICAgICBSZWZQdHI8SURCQ29ubmVjdGlvblRvU2Vy
dmVyPiBtX21haW5UaHJlYWRQcm90ZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwCmluZGV4IDYxOTRhOTgxYTAxZmZhZjRhODg2NzA2ZWFkZWFhY2E4MTEzZjQ2YjAuLjJjZDJh
YmYyZjE5MDgwNDUzYjBmMTUzMTJlOTYzYjdjYjIxYTk1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJJREJDb25uZWN0
aW9uUHJveHkuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgorI2luY2x1ZGUgIklEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb24uaCIKICNpbmNsdWRlICJJREJHZXRSZWNvcmREYXRhLmgiCiAjaW5j
bHVkZSAiSURCS2V5UmFuZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgpA
QCAtNDk0LDI3ICs0OTUsMjcgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmFib3J0T3Bl
bkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW8KICAgICAgICAgbV9k
ZWxlZ2F0ZS0+YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZChkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyLCB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogfQogCi12b2lkIElEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZy
YW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgRnVuY3Rpb248
dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJiBjYWxsYmFjaykKK3ZvaWQgSURCQ29ubmVj
dGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgQ2xpZW50T3JpZ2luJiBv
cmlnaW4pCiB7Ci0gICAgc3RhdGljIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSAwOwotCi0gICAgbV9n
ZXRBbGxEYXRhYmFzZU5hbWVzQ2FsbGJhY2tzLmFkZCgrK2NhbGxiYWNrSUQsIFdURk1vdmUoY2Fs
bGJhY2spKTsKKyAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRB
bGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMiKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogCi0gICAgaWYgKG1fc2VydmVyQ29ubmVjdGlvbklzVmFsaWQpCi0gICAgICAgIG1fZGVsZWdh
dGUtPmdldEFsbERhdGFiYXNlTmFtZXMobWFpbkZyYW1lT3JpZ2luLmRhdGEoKSwgb3BlbmluZ09y
aWdpbi5kYXRhKCksIGNhbGxiYWNrSUQpOwotICAgIGVsc2UgewotICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrSUQg
PSBjYWxsYmFja0lEXSB7Ci0gICAgICAgICAgICBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxi
YWNrSUQsIHsgfSk7Ci0gICAgICAgIH0pOworICAgIGlmIChtX3NlcnZlckNvbm5lY3Rpb25Jc1Zh
bGlkKSB7CisgICAgICAgIG1fZGVsZWdhdGUtPmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9u
cyhyZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKwor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgcmVxdWVzdElkZW50aWZpZXJdIHsKKyAgICAgICAgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCB7IH0pOworICAgIH0pOwogfQogCi12b2lkIElE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxs
YmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1lcykKK3ZvaWQgSURCQ29u
bmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb24+JiYgZGF0YWJhc2VzKQogewotICAgIGF1dG8gY2FsbGJhY2sgPSBt
X2dldEFsbERhdGFiYXNlTmFtZXNDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKLSAgICBBU1NF
UlQoY2FsbGJhY2spOworICAgIExPRyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyIpOworICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKLSAgICBjYWxsYmFjayhkYXRhYmFzZU5hbWVzKTsKKyAgICBtX3Byb3h5LT5k
aWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIFdURk1v
dmUoZGF0YWJhc2VzKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIElEQkNsaWVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25U
b1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IDVlZDI0ZmU1NjhmMWFjMjU5NjBhOTZjNDAzOTVmY2E1
MGI4NDRhYzUuLjI0YzViMzM4MjY1OTM2ZmVmODMwY2Q4YmViYTg1YTFiMDRkMzJjNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTQ1LDYgKzQ1LDggQEAgY2xhc3MgSURCUmVz
dWx0RGF0YTsKIGNsYXNzIElEQlZhbHVlOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKK3N0cnVj
dCBDbGllbnRPcmlnaW47CitzdHJ1Y3QgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjsKIHN0cnVj
dCBJREJHZXRBbGxSZWNvcmRzRGF0YTsKIHN0cnVjdCBJREJHZXRSZWNvcmREYXRhOwogc3RydWN0
IElEQkl0ZXJhdGVDdXJzb3JEYXRhOwpAQCAtMTM2LDIwICsxMzgsMTggQEAgcHVibGljOgogICAg
IC8vIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24sIGJ1dCB0aGUgcGFnZSBpcyBhbHJlYWR5IHRv
cm4gZG93bi4KICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIpOwogCi0gICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiBvcGVuaW5nT3JpZ2luLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+
Jik+JiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1
aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1lcyk7
CisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiwgY29uc3QgQ2xpZW50T3JpZ2luJik7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiwgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiYpOwogCiBwcml2
YXRlOgogICAgIElEQkNvbm5lY3Rpb25Ub1NlcnZlcihJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxl
Z2F0ZSYpOwogCiAgICAgdHlwZWRlZiB2b2lkIChJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OipSZXN1
bHRGdW5jdGlvbikoY29uc3QgSURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgY2FsbFJlc3VsdEZ1
bmN0aW9uV2l0aEVycm9yTGF0ZXIoUmVzdWx0RnVuY3Rpb24sIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIpOwotICAgIAorCiAgICAgV2Vha1B0cjxJREJDb25u
ZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKICAgICBib29sIG1fc2VydmVyQ29u
bmVjdGlvbklzVmFsaWQgeyB0cnVlIH07CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1
bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+PiBtX2dldEFsbERhdGFiYXNlTmFt
ZXNDYWxsYmFja3M7Ci0KICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCQ29ubmVjdGlvblByb3h5PiBt
X3Byb3h5OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUu
aAppbmRleCAwZWY3ZmI1NGExNjE4MDdlZDc1NzAyMzgzNDk0OGJmYTc3MWNlNjE2Li42OTZlNGRl
YjU1M2E4ZWQyMjVmYTIyMDA5YzZkYjQwODVkOThmOGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaApAQCAtNDEsNiArNDEsNyBAQCBjbGFzcyBJREJSZXF1
ZXN0RGF0YTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uSW5mbzsKIGNsYXNzIElEQlZhbHVlOwogCitz
dHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0IElEQkdldEFsbFJlY29yZHNEYXRhOwogc3RydWN0
IElEQkdldFJlY29yZERhdGE7CiBzdHJ1Y3QgSURCSXRlcmF0ZUN1cnNvckRhdGE7CkBAIC04Nyw3
ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VF
dmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBJbmRleGVkREI6OkNvbm5l
Y3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5E
QlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmKSA9IDA7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG1h
aW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1
aW50NjRfdCBjYWxsYmFja0lEKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEFsbERhdGFiYXNl
TmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBDbGll
bnRPcmlnaW4mKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9u
VG9DbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggNjQ2ZjliMjU5NjFmMzkyNmMyMWVkMDE0NzJm
NTA3NzAwZmZiMWU4OC4uZTVhMjc4MzI0YzZjNDc0MDk2NTA4YzA0MDY4YzdjNWIwYmRkN2MxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNv
bm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvbi5oIgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xODEsMTAgKzE4MiwxMCBAQCB2b2lkIElEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6bm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaQogICAgICAgICBtX2RlbGVnYXRlLT5ub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tl
ZChyZXF1ZXN0SWRlbnRpZmllciwgb2xkVmVyc2lvbiwgbmV3VmVyc2lvbik7CiB9CiAKLXZvaWQg
SURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNh
bGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKQordm9pZCBJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8SURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvbj4mJiBkYXRhYmFzZXMpCiB7CiAgICAgaWYgKG1fZGVsZWdhdGUp
Ci0gICAgICAgIG1fZGVsZWdhdGUtPmRpZEdldEFsbERhdGFiYXNlTmFtZXMoY2FsbGJhY2tJRCwg
ZGF0YWJhc2VOYW1lcyk7CisgICAgICAgIG1fZGVsZWdhdGUtPmRpZEdldEFsbERhdGFiYXNlTmFt
ZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShkYXRhYmFzZXMpKTsKIH0K
IAogdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9u
KFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnQuaAppbmRleCBjZTVjODJkZmU2MGUxYTFjMWUyZWQzNTJhYzIzNGY0MGE4NTEx
Mzk3Li5kY2Q5ODkyMDg3ZWZjOGQwNDRkYWVkODU1ZDk4MjcwMjY2YjY5NDcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRv
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBAIC0zOSw2ICszOSw4IEBAIGNsYXNzIElEQkVycm9yOwog
Y2xhc3MgSURCUmVzb3VyY2VJZGVudGlmaWVyOwogY2xhc3MgSURCUmVzdWx0RGF0YTsKIAorc3Ry
dWN0IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb247CisKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewog
CiBjbGFzcyBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb247CkBAIC03NCw3ICs3Niw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwg
dWludDY0X3QgbmV3VmVyc2lvbik7CiAKLSAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXMo
dWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMp
OworICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYsIFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYmKTsK
IAogICAgIHZvaWQgcmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VD
b25uZWN0aW9uJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKFVuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xp
ZW50RGVsZWdhdGUuaAppbmRleCA1ZWE1YTJlN2QyZDA0ZTk3NmYxYWNjMjkxNWYwYjUzMTIyY2Ri
MzExLi4xNjBmOTE4ZDE1MzY0ZWM3M2M4MWUxOTk3YzIyZjJjMzBiNjJkOTc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRv
Q2xpZW50RGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaApAQCAtMzYsNiArMzYsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJREJFcnJvcjsKIGNsYXNzIElEQlJlc3VsdERhdGE7
CiAKK3N0cnVjdCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOworCiBuYW1lc3BhY2UgSURCU2Vy
dmVyIHsKIAogY2xhc3MgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOwpAQCAtNzAsNyArNzIs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlRnJvbVNlcnZlcihVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBJREJFcnJvciYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3
VmVyc2lvbikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXMo
dWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uPiYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBJREJTZXJ2ZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAK
aW5kZXggZGU5MTZjNjYzNTYwNmJhOWQzNWMzMzFlNzhiYTE5MjA0ZmE0YzJhNS4uMWE5N2M3MTQ4
MThkYzE5YTM0ZTE5MWVjZDhlYTg1NDkwMDk4OTQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTUwNywzMyAr
NTA3LDM0IEBAIHZvaWQgSURCU2VydmVyOjpvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElE
QlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKICAgICAgICAgbV91bmlxdWVJREJEYXRhYmFzZU1h
cC5yZW1vdmUodW5pcXVlSURCRGF0YWJhc2UtPmlkZW50aWZpZXIoKSk7CiB9CiAKLXZvaWQgSURC
U2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKElEQkNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG1haW5GcmFt
ZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRf
dCBjYWxsYmFja0lEKQordm9pZCBJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyhJREJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgQ2xp
ZW50T3JpZ2luJiBvcmlnaW4pCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAg
QVNTRVJUKG1fbG9jay5pc0hlbGQoKSk7CiAKICAgICBhdXRvIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCA9IHRoaXMtPmRhdGFiYXNlRGlyZWN0b3J5UGF0aElzb2xhdGVkQ29weSgpOwotICAgIFN0cmlu
ZyBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5
UmVsYXRpdmVUb1Jvb3QobWFpbkZyYW1lT3JpZ2luLCBvcGVuaW5nT3JpZ2luLCBkYXRhYmFzZURp
cmVjdG9yeVBhdGgsICJ2MCIpOworICAgIFN0cmluZyBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFz
ZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLnRvcE9y
aWdpbiwgb3JpZ2luLmNsaWVudE9yaWdpbiwgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiKTsK
ICAgICBWZWN0b3I8U3RyaW5nPiBmaWxlcyA9IEZpbGVTeXN0ZW06Omxpc3REaXJlY3Rvcnkob2xk
RGlyZWN0b3J5LCAiKiJfcyk7Ci0gICAgVmVjdG9yPFN0cmluZz4gZGF0YWJhc2VzOworICAgIFZl
Y3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiBkYXRhYmFzZXM7CiAgICAgZm9yIChhdXRv
JiBmaWxlIDogZmlsZXMpIHsKLSAgICAgICAgU3RyaW5nIGVuY29kZWROYW1lID0gRmlsZVN5c3Rl
bTo6bGFzdENvbXBvbmVudE9mUGF0aElnbm9yaW5nVHJhaWxpbmdTbGFzaChmaWxlKTsKLSAgICAg
ICAgZGF0YWJhc2VzLmFwcGVuZChTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFtZUZy
b21FbmNvZGVkRmlsZW5hbWUoZW5jb2RlZE5hbWUpKTsKKyAgICAgICAgYXV0byBkYXRhYmFzZVR1
cGxlID0gU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbUZp
bGUoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5KGZp
bGUpKTsKKyAgICAgICAgaWYgKGRhdGFiYXNlVHVwbGUpCisgICAgICAgICAgICBkYXRhYmFzZXMu
YXBwZW5kKFdURk1vdmUoKmRhdGFiYXNlVHVwbGUpKTsKICAgICB9CiAKLSAgICBTdHJpbmcgZGly
ZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZl
VG9Sb290KG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoLCAidjEiKTsKKyAgICBTdHJpbmcgZGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVy
OjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbi50b3BPcmlnaW4sIG9yaWdp
bi5jbGllbnRPcmlnaW4sIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7CiAgICAgZmlsZXMg
PSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGRpcmVjdG9yeSwgIioiX3MpOwogICAgIGZvciAo
YXV0byYgZmlsZSA6IGZpbGVzKSB7Ci0gICAgICAgIGF1dG8gZGF0YWJhc2VOYW1lID0gU1FMaXRl
SURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVGcm9tRmlsZShTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoZmlsZSkpOwotICAgICAgICBpZiAoIWRh
dGFiYXNlTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBkYXRhYmFzZXMuYXBwZW5kKGRhdGFi
YXNlTmFtZSk7CisgICAgICAgIGF1dG8gZGF0YWJhc2VUdXBsZSA9IFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKFNRTGl0ZUlEQkJhY2tpbmdTdG9y
ZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeShmaWxlKSk7CisgICAgICAgIGlmIChkYXRh
YmFzZVR1cGxlKQorICAgICAgICAgICAgZGF0YWJhc2VzLmFwcGVuZChXVEZNb3ZlKCpkYXRhYmFz
ZVR1cGxlKSk7CiAgICAgfQogCiAgICAgYXV0byBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uTWFw
LmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCFjb25uZWN0aW9uKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBjb25uZWN0aW9uLT5kaWRHZXRBbGxEYXRhYmFzZU5hbWVz
KGNhbGxiYWNrSUQsIGRhdGFiYXNlcyk7CisgICAgY29ubmVjdGlvbi0+ZGlkR2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFiYXNlcykp
OwogfQogCiB2b2lkIElEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNp
bmNlKFdhbGxUaW1lIG1vZGlmaWNhdGlvblRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKaW5kZXggNDA5ODc0OWY1Nzg3YjA3
OWM3YTFlZWE4NDE4ZTYxMjk4ZTc3ZGNiZC4uNzdiN2Y1ODQ5Mjg4ZmUwMWRlYjRmMmI4NDZlYTM1
YWNmNmQ3MTZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJTZXJ2ZXIuaApAQCAtODksNyArODksOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVz
dElkZW50aWZpZXIsIEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBJ
REJSZXF1ZXN0RGF0YSYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRBbGxEYXRhYmFz
ZU5hbWVzKElEQkNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhJREJDb25u
ZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgQ2xp
ZW50T3JpZ2luJik7CisKIAogICAgIHZvaWQgcmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRGF0YWJhc2VD
b25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURC
QmFja2luZ1N0b3JlLmNwcAppbmRleCBlYWFkN2U5MGJlZGY2ZWRkYjRlOWUxZDVmYjcwMDY4ZmEx
NGZlMzc4Li40Zjk3ZGU3MjEzZDA2ODExNDUxNjlkMzBhYzQ3MWMxODc0MWY1M2RhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFj
a2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcApAQCAtOTEyLDE5ICs5MTIsMzEgQEAgU3RyaW5n
IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aCgpIGNvbnN0CiAgICAgcmV0
dXJuIGZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkobV9kYXRhYmFzZURpcmVjdG9yeSk7CiB9
CiAKLVN0cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFtZUZyb21GaWxlKGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQorT3B0aW9uYWw8SURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbj4gU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbUZp
bGUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCiB7CiAgICAgU1FMaXRlRGF0YWJhc2UgZGF0
YWJhc2U7CiAgICAgaWYgKCFkYXRhYmFzZS5vcGVuKGRhdGFiYXNlUGF0aCkpIHsKICAgICAgICAg
TE9HX0VSUk9SKCJGYWlsZWQgdG8gb3BlbiBTUUxpdGUgZGF0YWJhc2UgYXQgcGF0aCAnJXMnIHdo
ZW4gZ2V0dGluZyBkYXRhYmFzZSBuYW1lIiwgZGF0YWJhc2VQYXRoLnV0ZjgoKS5kYXRhKCkpOwot
ICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0K
ICAgICBpZiAoIWRhdGFiYXNlLnRhYmxlRXhpc3RzKCJJREJEYXRhYmFzZUluZm8iX3MpKSB7CiAg
ICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGZpbmQgSURCRGF0YWJhc2VJbmZvIHRhYmxlIGFu
ZCBnZXQgZGF0YWJhc2UgbmFtZSglaSkgLSAlcyIsIGRhdGFiYXNlLmxhc3RFcnJvcigpLCBkYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CiAgICAgfQotICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoZGF0YWJhc2Us
ICJTRUxFQ1QgdmFsdWUgRlJPTSBJREJEYXRhYmFzZUluZm8gV0hFUkUga2V5ID0gJ0RhdGFiYXNl
TmFtZSc7Iik7Ci0gICAgcmV0dXJuIHNxbC5nZXRDb2x1bW5UZXh0KDApOworCisgICAgU1FMaXRl
U3RhdGVtZW50IG5hbWVzcWwoZGF0YWJhc2UsICJTRUxFQ1QgdmFsdWUgRlJPTSBJREJEYXRhYmFz
ZUluZm8gV0hFUkUga2V5ID0gJ0RhdGFiYXNlTmFtZSc7Iik7CisgICAgYXV0byBkYXRhYmFzZU5h
bWUgPSBuYW1lc3FsLmdldENvbHVtblRleHQoMCk7CisKKyAgICBTUUxpdGVTdGF0ZW1lbnQgdmVy
c3FsKGRhdGFiYXNlLCAiU0VMRUNUIHZhbHVlIEZST00gSURCRGF0YWJhc2VJbmZvIFdIRVJFIGtl
eSA9ICdEYXRhYmFzZVZlcnNpb24nOyJfcyk7CisgICAgU3RyaW5nIHN0cmluZ1ZlcnNpb24gPSB2
ZXJzcWwuZ2V0Q29sdW1uVGV4dCgwKTsKKyAgICBib29sIG9rOworICAgIHVpbnQ2NF90IGRhdGFi
YXNlVmVyc2lvbiA9IHN0cmluZ1ZlcnNpb24udG9VSW50NjRTdHJpY3QoJm9rKTsKKyAgICBpZiAo
IW9rKSB7CisgICAgICAgIExPR19FUlJPUigiRGF0YWJhc2UgdmVyc2lvbiBvbiBkaXNrICgnJXMn
KSBkb2VzIG5vdCBjbGVhbmx5IGNvbnZlcnQgdG8gYW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIg
dmVyc2lvbiIsIHN0cmluZ1ZlcnNpb24udXRmOCgpLmRhdGEoKSk7CisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisgICAgfQorCisgICAgcmV0dXJuIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b24geyBkYXRhYmFzZU5hbWUsIGRhdGFiYXNlVmVyc2lvbiB9OwogfQogCiBTdHJpbmcgU1FMaXRl
SURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VEaXJlY3RvcnlXaXRoVXBncmFkZSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURC
QmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
U1FMaXRlSURCQmFja2luZ1N0b3JlLmgKaW5kZXggYmI1ZWJiNTU5MGU3NDczMDc5Mjc0OWZlZTJj
ZjFhYWM1YzY5NDM4Zi4uNzNmOGZjZmIzOTYwOWJjNTdiY2VjNTlhM2ZiNWVjMmM5OWYyZDdmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0
ZUlEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIklEQkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlSWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIklEQkRhdGFiYXNlSW5mby5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb24uaCIKICNpbmNsdWRlICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJTUUxpdGVJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIlNRTGl0ZVN0YXRlbWVudEF1
dG9SZXNldFNjb3BlLmgiCkBAIC0xMDEsNyArMTAyLDcgQEAgcHVibGljOgogCiAgICAgU3RyaW5n
IGRhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhYmFzZURpcmVjdG9yeTsg
fTsKICAgICBzdGF0aWMgU3RyaW5nIGZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoY29uc3Qg
U3RyaW5nJik7Ci0gICAgc3RhdGljIFN0cmluZyBkYXRhYmFzZU5hbWVGcm9tRmlsZShjb25zdCBT
dHJpbmcmKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4g
ZGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdkOGY2OWQ3
ZGMyZDU2MDkzYmUwZDlkNWM5ZDZkY2E4MDg0ZmYxMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBEYXJyeWwg
UG9ndWUgKGRhcnJ5bEBkcG9ndWUuY2EpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbiB7CisgICAgU3RyaW5nIG5hbWU7CisgICAgdWludDY0X3QgdmVyc2lvbiB7IDAgfTsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8SURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvbj4gZGVjb2RlKERlY29kZXImKTsKKworICAgIElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb24gaXNvbGF0ZWRDb3B5KCkgY29uc3Q7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPgordm9pZCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG5hbWUgPDwgdmVyc2lvbjsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+
IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb246OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24gaW5mbzsKKworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoaW5mby5uYW1lKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaW5mby52ZXJzaW9uKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIHJldHVybiBpbmZvOworfQorCitpbmxpbmUgSURCRGF0YWJhc2VOYW1lQW5k
VmVyc2lvbiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOjppc29sYXRlZENvcHkoKSBjb25zdAor
eworICAgIHJldHVybiB7IG5hbWUuaXNvbGF0ZWRDb3B5KCksIHZlcnNpb24gfTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IDI0ZGI4ZmQyYzMxZDkxNDlkNjJiOTY5YTk1YTM2NDhlZDY1NTcw
ZWYuLjMzNGY4YzQ0MzA4MDE0MDM1MWNhODlkNjAwNjdmODRjYzEzZWNlOWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC04OCw2ICs4OCw3IEBAIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5jcHAKIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlLmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVy
LmNwcAorTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Qu
Y3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAogTW9kdWxlcy9pbmRleGVkZGIv
SURCR2V0QWxsUmVzdWx0LmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDE0NGJiOGE3OWFlOTdjODQwYzQ3M2E1OTZlZTdjOGEwZDZmY2E5N2IuLjcxODQzZjBlYWY2
N2Y5MjRiZmVlNjFiNzdiZDAyN2ExMmRmMTRhNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI1ODMsNiArMjU4Myw4IEBACiAJ
CThGNjc1NjFCMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMg
LyogRXZlbnRRdWV1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkwMDE3NzQxMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRp
dmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAx
NzczRTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9Owog
CQk5MDAxNzg4MTEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDAxNzg3RjEy
RTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi87IH07CisJCTkw
MTZFQTREMjQ1NEQ4MTMwMDIxRDlEMSAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MDE2RUE0QzI0NTRE
ODEzMDAyMUQ5RDEgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkwRTM1MUMyMjQ3RTQ2RTQwMEZC
RjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBFMzUxQkQyNDdFM0Q0ODAwRkJGMjRG
IC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTEwOUU5QzgyMjJDQUJDQTAwQkI2MjY0
IC8qIEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTA5RTlDNTIyMkNBQkM4MDBCQjYyNjQgLyogSW5z
cGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCAqLzsgfTsKIAkJOTEwOUU5QzgyMjJDQUJDQTAw
QkI2MjY1IC8qIEpTSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxMDlFOUM1MjIyQ0FCQzgwMEJCNjI2
NSAvKiBKU0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi87IH07CiAJCTkxMjc4RDVF
MjFERURBRDYwMEI1NzE4NCAvKiBQYWdlQXVkaXRBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTEyNzhENUMyMURFREFENTAwQjU3MTg0IC8qIFBh
Z2VBdWRpdEFnZW50LmggKi87IH07CkBAIC0xMDcxMiw2ICsxMDcxNCw5IEBACiAJCTkwMDE3NzNG
MTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmRE
ZXJpdmF0aXZlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MDAxNzg3RjEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MDE2RUE0QzI0NTREODEzMDAyMUQ5RDEg
LyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkwRTM1MUJD
MjQ3RTNENDgwMEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkwRTM1MUJE
MjQ3RTNENDgwMEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
UmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MTA5RTlDNTIyMkNBQkM4
MDBCQjYyNjQgLyogSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTEwOUU5QzUyMjJDQUJDODAwQkI2MjY1IC8qIEpT
SW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNJbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MTA5RTlDNzIyMkNBQkM5MDBCQjYyNjQgLyogSW5zcGVjdG9yQXVk
aXRSZXNvdXJjZXNPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTkzNzAsNiArMTkzNzUsNyBAQAogCQkJCTUxMTBGQ0ZCMUUwMzYyQTUwMDZG
OEQwQiAvKiBJREJDdXJzb3JSZWNvcmQuaCAqLywKIAkJCQk1MUJBNEFDMTFCQkI1Q0JGMDBERjNE
NkQgLyogSURCRGF0YWJhc2VJbmZvLmNwcCAqLywKIAkJCQk1MUJBNEFDMjFCQkI1Q0JGMDBERjNE
NkQgLyogSURCRGF0YWJhc2VJbmZvLmggKi8sCisJCQkJOTAxNkVBNEMyNDU0RDgxMzAwMjFEOUQx
IC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCAqLywKIAkJCQk1MTQ4NDUzQzFCQjlEMDc2
MDA2QTcyRUQgLyogSURCRXJyb3IuY3BwICovLAogCQkJCTUxNDg0NTNEMUJCOUQwNzYwMDZBNzJF
RCAvKiBJREJFcnJvci5oICovLAogCQkJCTUxOURCQzZEMURDMDBGQjkwMDMyOUJGNSAvKiBJREJH
ZXRBbGxSZWNvcmRzRGF0YS5jcHAgKi8sCkBAIC0yMjg0NSw2ICsyMjg1MSw4IEBACiAJCQkJNTFE
NzE5N0UxODExMDZERjAwMTZEQzUxIC8qIElEQkRhdGFiYXNlLmlkbCAqLywKIAkJCQk1MTAzMTA1
RTFCQThFMDkwMDAzMzI5QzAgLyogSURCRGF0YWJhc2VJZGVudGlmaWVyLmNwcCAqLywKIAkJCQk1
MTAzMTA1RjFCQThFMDkwMDAzMzI5QzAgLyogSURCRGF0YWJhc2VJZGVudGlmaWVyLmggKi8sCisJ
CQkJOTBFMzUxQkMyNDdFM0Q0ODAwRkJGMjRGIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25S
ZXF1ZXN0LmNwcCAqLywKKwkJCQk5MEUzNTFCRDI0N0UzRDQ4MDBGQkYyNEYgLyogSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCAqLywKIAkJCQk1MTY0NUI0NjFCOUY4ODlCMDBGNzg5
Q0UgLyogSURCRmFjdG9yeS5jcHAgKi8sCiAJCQkJNTE2NDVCNDcxQjlGODg5QjAwRjc4OUNFIC8q
IElEQkZhY3RvcnkuaCAqLywKIAkJCQk1MUQ3MTk4QTE4MTEwNkRGMDAxNkRDNTEgLyogSURCRmFj
dG9yeS5pZGwgKi8sCkBAIC0zMDkyNyw2ICszMDkzNSw4IEBACiAJCQkJNTE4NUZDODExQkI0QzRF
ODAwMTI4OThGIC8qIElEQkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg1RkM4NzFC
QjRDNEU4MDAxMjg5OEYgLyogSURCRGF0YWJhc2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUJBNEFDNDFCQkI1Q0Q4MDBERjNENkQgLyogSURCRGF0YWJhc2VJbmZvLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5MDE2RUE0RDI0NTREODEzMDAyMUQ5RDEgLyogSURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTBFMzUxQzIyNDdFNDZFNDAwRkJGMjRG
IC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTQ4NDUzRjFCQjlEMDdFMDA2QTcyRUQgLyogSURCRXJyb3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxODVGQzhEMUJCNEM0RTgwMDEyODk4RiAvKiBJREJGYWN0b3J5LmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTlEQkM2RjFEQzAxMUE3MDAzMjlCRjUgLyogSURCR2V0QWxsUmVjb3Jkc0RhdGEu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCBjOGViNzFiOTRhYzgx
ZDU0OGNlMTI3YTYxYjBjMjEwYzU2NzIyMTgwLi5mZjhmMzBmNDAzZjg1YzdkZGJlMzFiMTBlMDNj
ZWY1ZmNkZjdmMDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNTk2LDkgKzU5Niw3IEBA
IHZvaWQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OnJlcXVlc3REYXRhYmFzZU5hbWVzKGNvbnN0
IFN0cmluZyYgc2VjdXJpdHlPcmlnaW4sCiAgICAgaWYgKCFnZXREb2N1bWVudEFuZElEQkZhY3Rv
cnlGcm9tRnJhbWVPclNlbmRGYWlsdXJlKGZyYW1lLCBkb2N1bWVudCwgaWRiRmFjdG9yeSwgY2Fs
bGJhY2spKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvJiBvcGVuaW5nT3JpZ2luID0gZG9j
dW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7Ci0gICAgYXV0byYgdG9wT3JpZ2luID0gZG9jdW1lbnQt
PnRvcE9yaWdpbigpOwotICAgIGlkYkZhY3RvcnktPmdldEFsbERhdGFiYXNlTmFtZXModG9wT3Jp
Z2luLCBvcGVuaW5nT3JpZ2luLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYg
ZGF0YWJhc2VOYW1lcykgeworICAgIGlkYkZhY3RvcnktPmdldEFsbERhdGFiYXNlTmFtZXMoKmRv
Y3VtZW50LCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYgZGF0YWJhc2VOYW1l
cykgewogICAgICAgICBpZiAoIWNhbGxiYWNrLT5pc0FjdGl2ZSgpKQogICAgICAgICAgICAgcmV0
dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDg3ZDBiODYz
OTU2ZGYwMDUzZjk0OTA0OGQzMGYxNjBjOWZlMWI5YzMuLjMwMTUzODViYmVkZmIxZTA4MTZiZjk4
OTg4ZTYzMmYzMjYzMmE1NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CkBAIC0xNTIsNyArMTUyLDcgQEAgY2xhc3MgRW1wdHlEYXRhYmFzZVByb3ZpZGVyIGZpbmFsIDog
cHVibGljIERhdGFiYXNlUHJvdmlkZXIgewogICAgICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3Jh
ZGVOZWVkZWQodWludDY0X3QsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpIGZpbmFsIHsg
fQogICAgICAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QsIGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3Nl
ZE9uQmVoYWxmT2ZTZXJ2ZXIpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIG9wZW5EQlJlcXVlc3RD
YW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmKSBmaW5hbCB7IH0KLSAgICAgICAgdm9pZCBn
ZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYsIHVpbnQ2NF90KSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCBnZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29u
c3QgQ2xpZW50T3JpZ2luJikgZmluYWwgeyB9CiAgICAgICAgIH5FbXB0eUlEQkNvbm5lY3Rpb25U
b1NlcnZlckRlbGV0ZWdhdGUoKSB7IH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50LmNwcAppbmRleCBmMmFmZTFhOGI4YWI4Y2VhYWExY2M3MTJlZmE0ZWFjMTc2ZWY2
M2Q0Li42YzFjNGUxNDI5YjIxZWZhZmFmMjM4NjJiNjBlMDAxNmM4YjI2MjJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTE5Myw5ICsxOTMsOSBAQCB2b2lkIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6bm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3Qg
V2ViQ29yZTo6SURCUmVzbwogICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6Tm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQocmVxdWVzdElkZW50aWZpZXIsIG9sZFZl
cnNpb24sIG5ld1ZlcnNpb24pKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291
cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uPiYmIGRhdGFiYXNlcykKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZEdldEFsbERhdGFiYXNlTmFtZXMoY2FsbGJhY2tJ
RCwgZGF0YWJhc2VOYW1lcykpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6RGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlm
aWVyLCBXVEZNb3ZlKGRhdGFiYXNlcykpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IDk5NTA4M2IwNDZhZDBkZDk3ZWUz
MTk4NzIwOTUyYmRlY2JjODkzNmUuLjZmMTcwYTU3NzQ2ZDQ4OTVmNTk5M2YyMGQ3NjI0ZDc0ZWJi
NTFkMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBAIC04Miw3ICs4Miw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6SURCU2Vy
dmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJFcnJv
ciYpIGZpbmFsOwogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2Vi
Q29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qg
b2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikgZmluYWw7CiAKLSAgICB2b2lkIGRpZEdl
dEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGRhdGFiYXNlTmFtZXMpIGZpbmFsOworICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1l
c0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYsIFZlY3Rv
cjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYmKSBmaW5hbDsKIAogICAgIHRl
bXBsYXRlPGNsYXNzIE1lc3NhZ2VUeXBlPiB2b2lkIGhhbmRsZUdldFJlc3VsdChjb25zdCBXZWJD
b3JlOjpJREJSZXN1bHREYXRhJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCmluZGV4IDUwOGJkOTI5MTM0OTA3
YTE2OWI2NTFjN2I4YWVlMWM5Mjc3MmY4ZDMuLjk4OTExZjUyNGZmZmMyYjYyNWVmMjFiMDliYjcx
M2MwZjkwYjFjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcApAQCAtMzE1LDcgKzMxNSw3IEBAIHZvaWQgV2Vi
SURCU2VydmVyOjpvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVl
c3REYXRhJiByZXF1ZXN0CiAgICAgbV9zZXJ2ZXItPm9wZW5EQlJlcXVlc3RDYW5jZWxsZWQocmVx
dWVzdERhdGEpOwogfQogCi12b2lkIFdlYklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYklEQlNlcnZlcjo6
Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4pCiB7CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTMyMyw3ICszMjMsNyBAQCB2b2lkIFdlYklEQlNlcnZl
cjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0
IFdlYkNvcgogICAgIEFTU0VSVCh3ZWJJREJDb25uZWN0aW9uKTsKIAogICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwotICAgIG1fc2VydmVyLT5nZXRBbGxEYXRhYmFzZU5h
bWVzKHdlYklEQkNvbm5lY3Rpb24tPmlkZW50aWZpZXIoKSwgbWFpbkZyYW1lT3JpZ2luLCBvcGVu
aW5nT3JpZ2luLCBjYWxsYmFja0lEKTsKKyAgICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1l
c0FuZFZlcnNpb25zKHdlYklEQkNvbm5lY3Rpb24tPmlkZW50aWZpZXIoKSwgcmVxdWVzdElkZW50
aWZpZXIsIG9yaWdpbik7CiB9CiAKIHZvaWQgV2ViSURCU2VydmVyOjphZGRDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJv
Y2Vzc0lkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQlNlcnZlci5oCmluZGV4IGQ0MDNmNmM4NDBjMzAyNTIyNzRkMmQzYTc4
MjQ1ZTIyOTg3MzAyNjcuLjg1MzgyNzdiNmQyYzlkODFkYzczYTM3Nzc5NWI1NDgwMGY5ODBhMmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQlNlcnZlci5oCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFib3J0T3Bl
bkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIpOwogICAgIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbmRleGVkREI6OkNvbm5lY3Rp
b25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKTsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxs
ZWQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmKTsKLSAgICB2b2lkIGdldEFsbERhdGFi
YXNlTmFtZXMoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgdWludDY0X3QgY2FsbGJh
Y2tJRCk7CisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSVBDOjpDb25u
ZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJik7CiAKICAgICB2b2lkIGFkZENvbm5lY3Rpb24oSVBDOjpDb25u
ZWN0aW9uJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbgpp
bmRleCAyMDlmNTQwMjYxNTA1MWU2OTdlMmZkZGQ1NzczODk0MTJiM2RkNmQzLi5mMTVkNjNmOThm
MjQxOThlNzMxYzIwN2VkODdmOWQwNWQxMWI5NmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3Nh
Z2VzLmluCkBAIC01MCw3ICs1MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYklEQlNlcnZlciB7CiAgICAg
RGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIs
IFdlYkNvcmU6OkluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIgY29u
bmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpCiAgICAgT3BlbkRCUmVxdWVzdENhbmNlbGxl
ZChXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSkKIAotICAgIEdldEFsbERhdGFi
YXNlTmFtZXMoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3BlbmluZ09yaWdpbiwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkgV2FudHNDb25uZWN0aW9uCisgICAgR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZl
cnNpb25zKFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwg
c3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIFdhbnRzQ29ubmVjdGlvbgogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCAwZTk3ODM2Nzc5ZDY2MGQ2MDhiMzBm
MWI0MTZhNTQxYzhlMzFjYmFjLi5lNjRkMThlNTY1ZmQwNGIxM2Q3MzFkZDQxOGNmNTEwZjRmMjlh
Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAK
QEAgLTIwNyw5ICsyMDcsOSBAQCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6b3BlbkRC
UmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdQogICAgIHNlbmQoTWVz
c2FnZXM6OldlYklEQlNlcnZlcjo6T3BlbkRCUmVxdWVzdENhbmNlbGxlZChyZXF1ZXN0RGF0YSkp
OwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1l
cyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFj
a0lEKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNB
bmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJ
REJTZXJ2ZXI6OkdldEFsbERhdGFiYXNlTmFtZXModG9wT3JpZ2luLCBvcGVuaW5nT3JpZ2luLCBj
YWxsYmFja0lEKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCU2VydmVyOjpHZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIG9yaWdpbikpOwogfQogCiB2
b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgSURC
UmVzdWx0RGF0YSYgcmVzdWx0KQpAQCAtMzIyLDkgKzMyMiw5IEBAIHZvaWQgV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyOjpub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNvdXJj
ZUlkZW50CiAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPm5vdGlmeU9wZW5EQlJlcXVlc3RCbG9j
a2VkKHJlcXVlc3RJZGVudGlmaWVyLCBvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTsKIH0KIAotdm9p
ZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0
X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpCit2b2lk
IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNp
b25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIFZlY3Rv
cjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYmIGRhdGFiYXNlcykKIHsKLSAgICBtX2Nvbm5l
Y3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFz
ZU5hbWVzKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1l
c0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFiYXNlcykpOwogfQog
CiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y29ubmVjdGlvblRvU2VydmVyTG9zdCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IDk3MDU4
ZDNlZTE4YWNiOTA2ZjQzY2Q1ZDVmZDk5YjZmNjI4NDg3MWEuLjU4ZGNiNGI5NzEyZDNkNGEzNjI5
ZGRhNGExMGUwMmVhZTIzNTBlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlci5oCkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2
ZXIpIGZpbmFsOwogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3Jl
OjpJREJSZXF1ZXN0RGF0YSYpIGZpbmFsOwogCi0gICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVz
KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNr
SUQpIGZpbmFsOworICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0
IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYpIGZpbmFsOwogCiAgICAgLy8gTWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBOZXR3b3JrIFBy
b2Nlc3MKICAgICB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3Vs
dERhdGEmKTsKQEAgLTEwNSw3ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkU3RhcnRU
cmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKTsKICAgICB2b2lkIGRpZENs
b3NlRnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpJREJFcnJvciYpOwogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2Nr
ZWQoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmll
ciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbik7Ci0gICAgdm9pZCBk
aWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBkYXRhYmFzZU5hbWVzKTsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNB
bmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBWZWN0b3I8
V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mJik7CiAKICAgICBSZWY8V2ViQ29y
ZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1fY29ubmVjdGlvblRvU2VydmVy
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5tZXNzYWdlcy5pbgppbmRleCA4ZDk3ZTQ0ZTM1YzNjMGZmZTUzZDA2YzNiNmRiYjMyMmU3ZDZm
MWMwLi42NGYyNjM5YzBhNDRjMmM3OGNlZjBiMmYwZmJmZWUyZDUzNjU1YjZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmlu
CkBAIC00Nyw3ICs0Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciB7
CiAgICAgRGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6OklEQkVycm9yIGVycm9yKSBmaW5hbDsKICAgICBOb3RpZnlPcGVuREJS
ZXF1ZXN0QmxvY2tlZChXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIgcmVxdWVzdElkZW50
aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pCiAKLSAgICBE
aWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIFZlY3RvcjxTdHJpbmc+
IGRhdGFiYXNlTmFtZXMpCisgICAgRGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKFdl
YkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdl
YkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+IGRhdGFiYXNlcykKIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcAppbmRleCBhNTQ5YjA0OTA1YzZhMjIzY2Q2
NzZjMDkwYzA0YTRiNzE3MmU3ZmEwLi4yNmY0MmQ5OWZlMzNjOTJhYmQ4ZjZlOTgyZmE0NmFmZjYx
NzI2Yzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNz
SURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNz
SURCU2VydmVyLmNwcApAQCAtNDc2LDE4ICs0NzYsMTggQEAgdm9pZCBJblByb2Nlc3NJREJTZXJ2
ZXI6Om9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEm
IHIKICAgICB9KTsKIH0KIAotdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNl
TmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3Zv
aWQgSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29u
c3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29u
c3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCiB7Ci0gICAgZGlzcGF0Y2hUYXNrKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBtX2Nvbm5lY3Rpb25Ub1Nl
cnZlci0+aWRlbnRpZmllcigpLCBtYWluRnJhbWVPcmlnaW4gPSBtYWluRnJhbWVPcmlnaW4uaXNv
bGF0ZWRDb3B5KCksIG9wZW5pbmdPcmlnaW4gPSBvcGVuaW5nT3JpZ2luLmlzb2xhdGVkQ29weSgp
LCBjYWxsYmFja0lEXSB7CisgICAgZGlzcGF0Y2hUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+aWRlbnRp
ZmllcigpLCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgp
XSB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwotICAgICAg
ICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1lcyhpZGVudGlmaWVyLCBtYWluRnJhbWVPcmln
aW4sIG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNrSUQpOworICAgICAgICBtX3NlcnZlci0+Z2V0QWxs
RGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGlkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCBv
cmlnaW4pOwogICAgIH0pOwogfQogCi12b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkR2V0QWxs
RGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZGF0YWJhc2VOYW1lcykKK3ZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFz
ZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiBy
ZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b24+JiYgZGF0YWJhc2VzKQogewotICAgIGRpc3BhdGNoVGFza1JlcGx5KFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrSUQsIGRhdGFiYXNlTmFtZXMgPSBkYXRh
YmFzZU5hbWVzLmlzb2xhdGVkQ29weSgpXSB7Ci0gICAgICAgIG1fY29ubmVjdGlvblRvU2VydmVy
LT5kaWRHZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxiYWNrSUQsIGRhdGFiYXNlTmFtZXMpOworICAg
IGRpc3BhdGNoVGFza1JlcGx5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHJlcXVlc3RJZGVudGlmaWVyLCBkYXRhYmFzZXMgPSBXVEZNb3ZlKGRhdGFiYXNlcyldKCkgbXV0
YWJsZSB7CisgICAgICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRHZXRBbGxEYXRhYmFzZU5h
bWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoZGF0YWJhc2VzKSk7CiAg
ICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblBy
b2Nlc3NJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJ
REJTZXJ2ZXIuaAppbmRleCA2MDQ3ZGQ5Zjk1YjEzZGMxMTZkYjhiZWVmMDg5YjY0ZGY0M2NjZmE0
Li44YjMyNDFmZGUxYTkxODE3OWEyYTc1OTBhNjc0ZDlhYmNhZDY5MDIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5oCkBAIC05MCw3ICs5
MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZGlk
RmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9m
U2VydmVyKSBmaW5hbDsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgV2Vi
Q29yZTo6SURCUmVxdWVzdERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFt
ZXMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4sIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkgZmluYWw7CisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lv
bnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJikgZmluYWw7CiAKICAgICAvLyBJREJDb25uZWN0aW9uVG9DbGllbnQKICAg
ICBXZWJDb3JlOjpJREJDb25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgZmlu
YWw7CkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkU3RhcnRUcmFuc2Fj
dGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKSBmaW5hbDsKICAgICB2b2lkIGRpZENs
b3NlRnJvbVNlcnZlcihXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVj
dGlvbiYsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmluYWw7CiAgICAgdm9pZCBub3RpZnlP
cGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJz
aW9uKSBmaW5hbDsKLSAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2Fs
bGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpIGZpbmFsOworICAg
IHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklE
QlJlc291cmNlSWRlbnRpZmllciYsIFZlY3RvcjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uPiYmKSBmaW5hbDsKIAogICAgIHZvaWQgY2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2Rp
ZmllZFNpbmNlKFdhbGxUaW1lKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
YjllYWYzODBhOGFlNzJlYzY4NDMzNzEyZjZlZmQ3NTU2N2I4YjM4ZC4uY2MyNGY4Zjk5YTIwZTJk
YWUyZWM1ZGQxMDg3OGVhMjllMWQ1MWQzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDYtMTMgIERhcnJ5bCBQb2d1ZSAgPGRhcnJ5bEBkcG9n
dWUuY2E+CisKKyAgICAgICAgSW5kZXhlZERCOiBTdXBwb3J0IElEQkZhY3RvcnkgZGF0YWJhc2Vz
IG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExMDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRqdXN0IHRlc3QgZXhwZWN0YXRpb25zIGZvciBgSURCRmFjdG9yeS5wcm90b3R5cGUuZGF0YWJh
c2VzKClgLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0
YWJhc2VzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVl
LW9yaWdpbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnku
d29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNi0xMiAgVGV0c3VoYXJ1IE9oemVraSAgPHRl
dHN1aGFydS5vaHpla2lAZ21haWwuY29tPgogCiAgICAgICAgIENoYW5nZSBGaWxlUmVhZGVyLmVy
cm9yIHRvIERPTUV4Y2VwdGlvbiBmcm9tIG9ic29sZXRlZCBGaWxlRXJyb3IKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dl
dC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4
dAppbmRleCBlMmRmZmFjNzQ3ODdhYzUxODU1ODg1MDJiNmQwY2Q3MWVmZWQ3OTBlLi4wNjUwMTlk
MTMwMTA5YzcyNGI1M2I4YTYwZGViYzlmNjY0NTMwYzQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2Vz
LmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnktZXhwZWN0ZWQudHh0CkBAIC0x
LDcgKzEsNyBAQAogCi1GQUlMIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIHJldHVybnMgYSBwcm9t
aXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
aW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5l
ZCkiCi1GQUlMIEVudW1lcmF0ZSBvbmUgZGF0YWJhc2UuIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFi
YXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5k
ZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKLUZBSUwgRW51bWVyYXRlIG11bHRpcGxl
IGRhdGFiYXNlcy4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1
bmRlZmluZWQpIgotRkFJTCBNYWtlIHN1cmUgYW4gZW1wdHkgbGlzdCBpcyByZXR1cm5lZCBmb3Ig
dGhlIGNhc2Ugb2Ygbm8gZGF0YWJhc2VzLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMg
bm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5k
YXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIGRv
ZXNuJ3QgcGljayB1cCBjaGFuZ2VzIHRoYXQgaGF2ZW4ndCBjb21taXRlZC4gcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRl
eGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFz
ZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgorUEFTUyBFbnN1cmUg
dGhhdCBkYXRhYmFzZXMoKSByZXR1cm5zIGEgcHJvbWlzZS4gCitQQVNTIEVudW1lcmF0ZSBvbmUg
ZGF0YWJhc2UuIAorUEFTUyBFbnVtZXJhdGUgbXVsdGlwbGUgZGF0YWJhc2VzLiAKK1BBU1MgTWFr
ZSBzdXJlIGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFi
YXNlcy4gCitGQUlMIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBjaGFu
Z2VzIHRoYXQgaGF2ZW4ndCBjb21taXRlZC4gYXNzZXJ0X2VxdWFsczogVGhlIHJlc3VsdCBvZiBk
YXRhYmFzZXMoKSBzaG91bGQgYmUgb25seSB0aG9zZSBkYXRhYmFzZXMgd2hpY2ggaGF2ZSBiZWVu
IGNyZWF0ZWQgYXQgdGhlIHRpbWUgb2YgY2FsbGluZywgcmVnYXJkbGVzcyBvZiB2ZXJzaW9uY2hh
bmdlIHRyYW5zYWN0aW9ucyBjdXJyZW50bHkgcnVubmluZy4gZXhwZWN0ZWQgMSBidXQgZ290IDIK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRh
YmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZTJkZmZhYzc0Nzg3YWM1MTg1NTg4
NTAyYjZkMGNkNzFlZmVkNzkwZS4uMDY1MDE5ZDEzMDEwOWM3MjRiNTNiOGE2MGRlYmM5ZjY2NDUz
MGM0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9n
ZXQtZGF0YWJhc2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1G
QUlMIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIHJldHVybnMgYSBwcm9taXNlLiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGlu
ZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFi
YXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVudW1l
cmF0ZSBvbmUgZGF0YWJhc2UuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNl
cycgaXMgdW5kZWZpbmVkKSIKLUZBSUwgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4gcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWRE
Qi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJ
TCBNYWtlIHN1cmUgYW4gZW1wdHkgbGlzdCBpcyByZXR1cm5lZCBmb3IgdGhlIGNhc2Ugb2Ygbm8g
ZGF0YWJhc2VzLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24u
IChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVu
ZGVmaW5lZCkiCi1GQUlMIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBj
aGFuZ2VzIHRoYXQgaGF2ZW4ndCBjb21taXRlZC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2Vz
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVk
REIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgorUEFTUyBFbnN1cmUgdGhhdCBkYXRhYmFzZXMo
KSByZXR1cm5zIGEgcHJvbWlzZS4gCitQQVNTIEVudW1lcmF0ZSBvbmUgZGF0YWJhc2UuIAorUEFT
UyBFbnVtZXJhdGUgbXVsdGlwbGUgZGF0YWJhc2VzLiAKK1BBU1MgTWFrZSBzdXJlIGFuIGVtcHR5
IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gCitGQUlMIEVu
c3VyZSB0aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBjaGFuZ2VzIHRoYXQgaGF2ZW4n
dCBjb21taXRlZC4gYXNzZXJ0X2VxdWFsczogVGhlIHJlc3VsdCBvZiBkYXRhYmFzZXMoKSBzaG91
bGQgYmUgb25seSB0aG9zZSBkYXRhYmFzZXMgd2hpY2ggaGF2ZSBiZWVuIGNyZWF0ZWQgYXQgdGhl
IHRpbWUgb2YgY2FsbGluZywgcmVnYXJkbGVzcyBvZiB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9u
cyBjdXJyZW50bHkgcnVubmluZy4gZXhwZWN0ZWQgMSBidXQgZ290IDIKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
ZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LWRh
dGFiYXNlcy1vcGFxdWUtb3JpZ2luLWV4cGVjdGVkLnR4dAppbmRleCAwNjc5ZjM5MmViNWZhZWQw
YmRjMTdlODFjYjliNWFjYjIyMWI1MmQ0Li5kZmE3MTAyYjAwY2MzYWQ4YzAxZGJmZDdkMGJjOTU5
MzE3NmVlNDIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LWRhdGFiYXNlcy1vcGFxdWUtb3JpZ2luLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LWRhdGFiYXNlcy1vcGFxdWUtb3JpZ2luLWV4cGVjdGVk
LnR4dApAQCAtMSw0ICsxLDQgQEAKIAotRkFJTCBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGluIG5v
bi1zYW5kYm94ZWQgaWZyYW1lIHNob3VsZCBub3QgcmVqZWN0IGFzc2VydF9lcXVhbHM6IElEQkZh
Y3RvcnkuZGF0YWJhc2VzKCkgc2hvdWxkIG5vdCByZWplY3QgZXhwZWN0ZWQgIm5vIGV4Y2VwdGlv
biIgYnV0IGdvdCAiaW5kZXhlZERCLmRhdGFiYXNlcyB1bmRlZmluZWQiCi1GQUlMIElEQkZhY3Rv
cnkuZGF0YWJhc2VzKCkgaW4gc2FuZGJveGVkIGlmcmFtZSBzaG91bGQgcmVqZWN0IGFzc2VydF9l
cXVhbHM6IFByb21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkIHdpdGggU2VjdXJpdHlFcnJvciBleHBl
Y3RlZCAiU2VjdXJpdHlFcnJvciIgYnV0IGdvdCAiaW5kZXhlZERCLmRhdGFiYXNlcyB1bmRlZmlu
ZWQiCitQQVNTIElEQkZhY3RvcnkuZGF0YWJhc2VzKCkgaW4gbm9uLXNhbmRib3hlZCBpZnJhbWUg
c2hvdWxkIG5vdCByZWplY3QgCitQQVNTIElEQkZhY3RvcnkuZGF0YWJhc2VzKCkgaW4gc2FuZGJv
eGVkIGlmcmFtZSBzaG91bGQgcmVqZWN0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1p
c29sYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0aW9uLWV4cGVjdGVk
LnR4dAppbmRleCBhMzMwOThlYjhmNjVmZmMxOWNjN2RhZmQ3OTk1ZTgyMDE0MTNkNjU0Li5jYjk4
NWZjNWYyZTZmODRlOGU5NTk1MzBlMzg3ZWRhOWFhMTVlY2Y3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5
LW9yaWdpbi1pc29sYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnktb3JpZ2luLWlzb2xh
dGlvbi1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgVGVzdCB0byBtYWtlIHN1
cmUgdGhhdCBvcmlnaW5zIGhhdmUgc2VwYXJhdGUgbG9ja2luZyBzY2hlbWVzIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5k
ZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJh
c2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKK1BBU1MgVGVzdCB0
byBtYWtlIHN1cmUgdGhhdCBvcmlnaW5zIGhhdmUgc2VwYXJhdGUgbG9ja2luZyBzY2hlbWVzIAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBl
Y3RlZC50eHQKaW5kZXggMTEyOGRhNjJiOGNkNDQyYzcxMjAyNjdkMjE2N2MxNGU4NTdlYWU1My4u
YjFlZWNkNzljMGQzMzk4NTc2MTllMTRjZGQ5ZjMwNmE0NTlhMDMzYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFy
bmVzcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dApAQCAt
NTIsNyArNTIsNyBAQCBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplYwogUEFTUyBJREJGYWN0b3J5IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBvcGVuKERPTVN0cmluZywgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBsb25n
KSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkZWxldGVEYXRhYmFzZShE
T01TdHJpbmcpIAotRkFJTCBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNl
cygpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Np
bmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImRhdGFiYXNlcyIgbWlz
c2luZworUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNlcygpIAog
UEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGNtcChhbnksIGFueSkgCiBQQVNT
IElEQkZhY3RvcnkgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBbb2JqZWN0IElEQkZhY3Rv
cnldIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgW29iamVjdCBJREJGYWN0b3J5XSAKQEAgLTYw
LDcgKzYwLDcgQEAgUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5
XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9wZW4oRE9NU3QKIFBBU1MgSURCRmFjdG9yeSBpbnRl
cmZhY2U6IGNhbGxpbmcgb3BlbihET01TdHJpbmcsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9u
Zykgb24gW29iamVjdCBJREJGYWN0b3J5XSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0
b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRlbGV0ZURhdGFiYXNlKERPTVN0cmluZykiIHdp
dGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogY2FsbGluZyBk
ZWxldGVEYXRhYmFzZShET01TdHJpbmcpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLUZBSUwgSURCRmFjdG9yeSBpbnRl
cmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkYXRhYmFz
ZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZGF0
YWJhc2VzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIElEQkZhY3RvcnkgaW50
ZXJmYWNlOiBbb2JqZWN0IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJh
c2VzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTog
W29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNtcChhbnksIGFueSki
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogY2FsbGlu
ZyBjbXAoYW55LCBhbnkpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgSURCRGF0YWJhc2UgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
bGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhw
ZWN0ZWQudHh0CmluZGV4IDkyOTI5ZTE2MThiNjZhMTA4OTgwMGJhZjgyNWYyNThmNTI1YTJhMTcu
LmFmNTc1MDRkNDVkOTk1ODAxMDgyOTBiYzhkYWE5NWZiNjU2NjM4M2EgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhh
cm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dApAQCAtNTIsNyArNTIsNyBAQCBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplYwogUEFT
UyBJREJGYWN0b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKIFBBU1MgSURC
RmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBvcGVuKERPTVN0cmluZywgb3B0aW9uYWwgdW5z
aWduZWQgbG9uZyBsb25nKSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBk
ZWxldGVEYXRhYmFzZShET01TdHJpbmcpIAotRkFJTCBJREJGYWN0b3J5IGludGVyZmFjZTogb3Bl
cmF0aW9uIGRhdGFiYXNlcygpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkg
ImRhdGFiYXNlcyIgbWlzc2luZworUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9u
IGRhdGFiYXNlcygpIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGNtcChh
bnksIGFueSkgCiBQQVNTIElEQkZhY3RvcnkgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBb
b2JqZWN0IElEQkZhY3RvcnldIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgW29iamVjdCBJREJG
YWN0b3J5XSAKQEAgLTYwLDcgKzYwLDcgQEAgUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29i
amVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9wZW4oRE9NU3QKIFBBU1Mg
SURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgb3BlbihET01TdHJpbmcsIG9wdGlvbmFsIHVu
c2lnbmVkIGxvbmcgbG9uZykgb24gW29iamVjdCBJREJGYWN0b3J5XSB3aXRoIHRvbyBmZXcgYXJn
dW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTog
W29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRlbGV0ZURhdGFiYXNl
KERPTVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVy
ZmFjZTogY2FsbGluZyBkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIG9uIFtvYmplY3QgSURCRmFj
dG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLUZBSUwg
SURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJkYXRhYmFzZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRz
OiBwcm9wZXJ0eSAiZGF0YWJhc2VzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNT
IElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0
b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
ImNtcChhbnksIGFueSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGlu
dGVyZmFjZTogY2FsbGluZyBjbXAoYW55LCBhbnkpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgSURCRGF0YWJh
c2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dCAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401899</attachid>
            <date>2020-06-15 08:38:13 -0700</date>
            <delta_ts>2020-06-17 02:02:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211043-20200615083812.patch</filename>
            <type>text/plain</type>
            <size>79161</size>
            <attacher name="Darryl Pogue">dvpdiner2</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhiZDY0OWM4YmE2ZDNm
NmViYmYzODliZDQxZGJiNGFiYjFiYWI2Yy4uNzk1N2VhY2E1NDBiNDBiZjQzZDhmMDkzMGEzZDA5
YmNhMDY4MjQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIwLTA2LTEzICBEYXJy
eWwgUG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9y
dCBJREJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBmZXRjaGluZyB0aGUgbGlzdCBv
ZiBJREIgZGF0YWJhc2UgbmFtZXMgYW5kIHZlcnNpb25zCisgICAgICAgIGZyb20gdGhlIElEQlNl
cnZlciwgYW5kIGV4cG9zZSB0aGUgZnVuY3Rpb25hbGl0eSBhcworICAgICAgICBgSURCRmFjdG9y
eS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9JbmRleGVkREIvI2RvbS1pZGJmYWN0b3J5LWRhdGFiYXNlcworCisgICAgICAgICog
SGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01P
YmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFjdGl2ZURPTU9iamVjdDo6cGVyZm9ybUNh
bGxiYWNrT25PcmlnaW5UaHJlYWQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdDo6fklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojpjb21wbGV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6YWN0
aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uUmVxdWVzdDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6c3RvcCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3QuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpkYXRhYmFzZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SURCRmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uUHJveHk6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5Ojpmb3JnZXRBY3Rpdml0eUZvckN1cnJlbnRUaHJl
YWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6Omdl
dEFsbERhdGFiYXNlTmFtZXMpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6
IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25u
ZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2
ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFt
ZUFuZFZlcnNpb25Gcm9tRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lRnJvbUZpbGUpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb246
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudDo6cmVxdWVzdERhdGFiYXNlTmFtZXMpOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorCiAyMDIwLTA2LTEyICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI2MTk4NSk6IFVu
YWJsZSB0byByZXNwb25kIHRvIGxhcmdlIGNvbW1lbnRzIG9uIEJ1Z3ppbGxhIHdpdGggYWx3YXlz
LW9uIHNjcm9sbGJhcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOThjYzUxNTEyYzgwZDI4MjY2YTcxZTdjOTVjOTBj
YzcxNTAyM2Q4My4uZDUyZjRkOWU5YjkxYzY1ZDIyZTRhZjk4OGJkZmU4Yjc1ODNmMGFjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMC0wNi0xMyAgRGFycnlsIFBvZ3VlICA8ZGFycnls
QGRwb2d1ZS5jYT4KKworICAgICAgICBJbmRleGVkREI6IFN1cHBvcnQgSURCRmFjdG9yeSBkYXRh
YmFzZXMgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTEwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQbHVtYmluZyBmb3IgcmV0dXJuaW5nIGEgbGlzdCBvZiBJREIgZGF0YWJhc2VzIGFuZCB2
ZXJzaW9ucy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6IERl
bGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJT
ZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNl
TmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Z2V0QWxs
RGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQlNlcnZlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXMpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluOgorCiAyMDIwLTA2LTEy
ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIEF1dG9tYXRpb24uY29t
cHV0ZUVsZW1lbnRMYXlvdXQgc2hvdWxkIHJldHVybiBpZnJhbWUtcmVsYXRpdmUgZWxlbWVudCBy
ZWN0cyAod2hlbiBjb29yZGluYXRlIHN5c3RlbSBpcyAnUGFnZScpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9n
CmluZGV4IDcyNWE1OGEwMDEzYmM2MjFlZmFhMmZkYmI1YTMzNzE4ZTdkZWU5MzcuLmQwZTcyYjY0
NzVkNGU5YWUyNTViYzExZGNiMTQ3YThhMzhjNWVlODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMjAtMDYtMTMgIERhcnJ5bCBQb2d1ZSAgPGRhcnJ5bEBkcG9ndWUu
Y2E+CisKKyAgICAgICAgSW5kZXhlZERCOiBTdXBwb3J0IElEQkZhY3RvcnkgZGF0YWJhc2VzIG1l
dGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEx
MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGx1
bWJpbmcgZm9yIHJldHVybmluZyBhIGxpc3Qgb2YgSURCIGRhdGFiYXNlcyBhbmQgdmVyc2lvbnMu
CisKKyAgICAgICAgKiBTdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHA6CisgICAgICAgIChJ
blByb2Nlc3NJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAg
ICAgIChJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9u
cyk6CisgICAgICAgIChJblByb2Nlc3NJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMpOiBE
ZWxldGVkLgorICAgICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5h
bWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBTdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5oOgor
CiAyMDIwLTA2LTEyICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgZGVwZW5kZW5jaWVzIGZvciBNaWdyYXRlIEhlYWRlcnMgYW5kIEdlbmVyYXRlIEV4cG9y
dCBGaWxlcyBidWlsZCBwaGFzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGVjNjk3NDFhNTdiYWVm
MTNmNjQxMzdiMzViNDNlODQ4YTA5NTg4N2MuLmMxZDQzOTc2NDVhOWVlZTI4YmY2Njk4MmE0Y2Fk
OWJiNzViYTc5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNDAsNiArNDAsNyBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9J
REJBY3RpdmVET01PYmplY3QuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRl
bnRpZmllci5oCisgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3QuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkdldEFsbFJlc3VsdC5oCiAgICAg
TW9kdWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuaApAQCAtNzIsNiArNzMsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvckluZm8uaAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJDdXJzb3JSZWNvcmQuaAogICAgIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uaAorICAgIE1vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgKICAgICBNb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCRXJyb3IuaAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRB
bGxSZWNvcmRzRGF0YS5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkdldFJlY29y
ZERhdGEuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
QWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJB
Y3RpdmVET01PYmplY3QuaAppbmRleCBkMmY0MGQ5OWI3YjlmNTAzMWY1MTQ0NTRmNzU5NzA4NzBk
N2FiMTFkLi5kZGFkNzM2NjkzMWM5NjlhZmZmYzRjMDNiZGNkZDhiNTAzYTAxMDI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmpl
Y3QuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVCgmb3JpZ2luVGhy
ZWFkKCkgPT0gJm9iamVjdC5vcmlnaW5UaHJlYWQoKSk7CiAKICAgICAgICAgaWYgKGNhbkN1cnJl
bnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob2JqZWN0Lm9yaWdpblRocmVhZCgpKSkgewot
ICAgICAgICAgICAgKG9iamVjdC4qbWV0aG9kKShhcmd1bWVudHMuLi4pOworICAgICAgICAgICAg
KG9iamVjdC4qbWV0aG9kKShzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzYzMzIwNDljNzYyZjRhMGMwMmYwNmQzNjVl
MmIyOWRmYzQzM2QxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcApAQCAtMCwwICsx
LDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIERhcnJ5bCBQb2d1ZSAoZGFycnlsQGRw
b2d1ZS5jYSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKworI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94eS5oIgorI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCk7CisKK1JlZjxJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdD4gSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Q
cm94eSYgY29ubmVjdGlvblByb3h5LCBJbmZvQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdChjb250
ZXh0LCBjb25uZWN0aW9uUHJveHksIFdURk1vdmUoY2FsbGJhY2spKSk7Cit9CisKK0lEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBJbmZvQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6
IElEQkFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKKyAgICAsIG1fY29ubmVjdGlvblByb3h5KGNv
bm5lY3Rpb25Qcm94eSkKKyAgICAsIG1fcmVzb3VyY2VJZGVudGlmaWVyKGNvbm5lY3Rpb25Qcm94
eSkKKyAgICAsIG1fY2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCit7CisgICAgQVNTRVJUKGNh
bkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsKKwor
ICAgIHN1c3BlbmRJZk5lZWRlZCgpOworfQorCitJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVx
dWVzdDo6fklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KCkKK3sKKyAgICBBU1NFUlQo
Y2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOwor
fQorCit2b2lkIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojpjb21wbGV0ZShPcHRp
b25hbDxWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4+JiYgZGF0YWJhc2VzKQorewor
ICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRo
cmVhZCgpKSk7CisKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFjaykp
CisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUoZGF0YWJhc2VzKSk7Cit9CisKK2NvbnN0IGNoYXIq
IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0
YShvcmlnaW5UaHJlYWQoKSkpOworICAgIHJldHVybiAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3QiOworfQorCitib29sIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojp2
aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVu
dFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkgfHwgVGhyZWFkOjpt
YXlCZUdDVGhyZWFkKCkpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpzdG9wKCkKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVudFRo
cmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MDdmY2I2MWJl
MTVlYjViYjliNWQ4MzAwYzAxYzAwMjZkY2NhYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dC5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgRGFycnlsIFBv
Z3VlIChkYXJyeWxAZHBvZ3VlLmNhKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCQWN0aXZlRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgorI2luY2x1ZGUgIklEQlJl
c291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCituYW1lc3Bh
Y2UgSURCQ2xpZW50IHsKK2NsYXNzIElEQkNvbm5lY3Rpb25Qcm94eTsKK30KKworY2xhc3MgSURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+LCBwdWJsaWMgSURCQWN0
aXZlRE9NT2JqZWN0IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKElEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb25SZXF1ZXN0KTsKK3B1YmxpYzoKKyAgICB1c2luZyBJbmZvQ2FsbGJhY2sgPSBG
dW5jdGlvbjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPj4m
Jik+OworCisgICAgc3RhdGljIFJlZjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Q
cm94eSYsIEluZm9DYWxsYmFjayYmKTsKKworICAgIH5JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
UmVxdWVzdCgpOworCisgICAgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXNvdXJjZUlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlSWRlbnRpZmllcjsgfQorCisgICAg
dXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3Q+OjpyZWY7CisgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvblJlcXVlc3Q+OjpkZXJlZjsKKworICAgIHZvaWQgY29tcGxldGUoT3B0aW9uYWw8
VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmKTsKKworcHJpdmF0ZToKKyAgICBJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmLCBJbmZvQ2FsbGJhY2smJik7CisKKyAgICAv
LyBBY3RpdmVET01PYmplY3QuCisgICAgYm9vbCB2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QgZmluYWw7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
IGZpbmFsOworICAgIHZvaWQgc3RvcCgpIGZpbmFsOworCisgICAgUmVmPElEQkNsaWVudDo6SURC
Q29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Qcm94eTsKKyAgICBJREJSZXNvdXJjZUlkZW50
aWZpZXIgbV9yZXNvdXJjZUlkZW50aWZpZXI7CisgICAgSW5mb0NhbGxiYWNrIG1fY2FsbGJhY2s7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5jcHAKaW5kZXggYjEzYzcxZTg5MWNiYjIyOTQ3NTRmZDViNzAzMTJjZjZkMmZlYzgwMC4u
YTQ4NzI3YjAwM2I0ODY3NzZlMDFmNWI3NDgyNmQ1NjU1MzRiY2JjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKQEAgLTM0LDEwICszNCwx
MCBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklEQktl
eS5oIgogI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJKU0lEQkZhY3Rv
cnkuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEzMyw5ICsxMzMsNDEgQEAgRXhjZXB0aW9uT3I8
c2hvcnQ+IElEQkZhY3Rvcnk6OmNtcChKU0dsb2JhbE9iamVjdCYgZXhlY1N0YXRlLCBKU1ZhbHVl
IGZpcnN0VmFsdWUKICAgICByZXR1cm4gZmlyc3QtPmNvbXBhcmUoc2Vjb25kLmdldCgpKTsKIH0K
IAotdm9pZCBJREJGYWN0b3J5OjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2lu
LCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNhbGxiYWNrKQordm9p
ZCBJREJGYWN0b3J5OjpkYXRhYmFzZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
SURCRGF0YWJhc2VzUmVzcG9uc2VQcm9taXNlJiYgcHJvbWlzZSkKIHsKLSAgICBtX2Nvbm5lY3Rp
b25Qcm94eS0+Z2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmln
aW4sIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBMT0coSW5kZXhlZERCLCAiSURCRmFjdG9yeTo6
ZGF0YWJhc2VzIik7CisKKyAgICBpZiAoc2hvdWxkVGhyb3dTZWN1cml0eUV4Y2VwdGlvbihjb250
ZXh0KSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChTZWN1cml0eUVycm9yKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVChjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCkpOwor
CisgICAgbV9jb25uZWN0aW9uUHJveHktPmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhj
b250ZXh0LCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFi
bGUgeworICAgICAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3Qo
RXhjZXB0aW9uIHsgVW5rbm93bkVycm9yIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKFdURjo6bWFwKCpyZXN1bHQsIFtdKGF1dG8m
JiBpbmZvKSB7CisgICAgICAgICAgICByZXR1cm4gSURCRmFjdG9yeTo6RGF0YWJhc2VJbmZvIHsg
V1RGTW92ZShpbmZvLm5hbWUpLCBpbmZvLnZlcnNpb24gfTsKKyAgICAgICAgfSkpOworICAgIH0p
OworfQorCit2b2lkIElEQkZhY3Rvcnk6OmdldEFsbERhdGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgRnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8U3RyaW5nPiYp
PiYmIGNhbGxiYWNrKQoreworICAgIG1fY29ubmVjdGlvblByb3h5LT5nZXRBbGxEYXRhYmFzZU5h
bWVzQW5kVmVyc2lvbnMoY29udGV4dCwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1
dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICAg
ICAgY2FsbGJhY2soeyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIGNhbGxiYWNrKFdURjo6bWFwKCpyZXN1bHQsIFtdKGF1dG8mJiBpbmZvKSB7CisgICAgICAg
ICAgICByZXR1cm4gV1RGTW92ZShpbmZvLm5hbWUpOworICAgICAgICB9KSk7CisgICAgfSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuaAppbmRleCAxMzQ1NjUxMTlmMjc0YTgyYzUzODE2NDkyMzZmMDU1
ZDMyNTlhYTczLi45Mjc3NWRhMjU3YzIyOTg3ZTMzMTEwMTA0MmYzNWZhYWEzZjk4NDc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCkBAIC0yOCw2
ICsyOCw3IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJFeGNl
cHRpb25Pci5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmLmg+CkBAIC01NCwxMiArNTUsMjEgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8SURCRmFj
dG9yeT4gY3JlYXRlKElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5Jik7CiAgICAgfklEQkZh
Y3RvcnkoKTsKIAorICAgIHN0cnVjdCBEYXRhYmFzZUluZm8geworICAgICAgICBTdHJpbmcgbmFt
ZTsKKyAgICAgICAgdWludDY0X3QgdmVyc2lvbjsKKyAgICB9OworCiAgICAgRXhjZXB0aW9uT3I8
UmVmPElEQk9wZW5EQlJlcXVlc3Q+PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25z
dCBTdHJpbmcmIG5hbWUsIE9wdGlvbmFsPHVpbnQ2NF90PiB2ZXJzaW9uKTsKICAgICBFeGNlcHRp
b25PcjxSZWY8SURCT3BlbkRCUmVxdWVzdD4+IGRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCiAgICAgRXhjZXB0aW9uT3I8c2hvcnQ+
IGNtcChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlIGZpcnN0LCBKU0M6OkpTVmFs
dWUgc2Vjb25kKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1l
cyhjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9y
aWdpbiYgb3BlbmluZ09yaWdpbiwgV1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpPiYmKTsKKyAgICB1c2luZyBJREJEYXRhYmFzZXNSZXNwb25zZVByb21pc2UgPSBET01Q
cm9taXNlRGVmZXJyZWQ8SURMU2VxdWVuY2U8SURMRGljdGlvbmFyeTxJREJGYWN0b3J5OjpEYXRh
YmFzZUluZm8+Pj47CisKKyAgICB2b2lkIGRhdGFiYXNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgSURCRGF0YWJhc2VzUmVzcG9uc2VQcm9taXNlJiYpOworCisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGdW5jdGlv
bjx2b2lkKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYpOwogCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IElEQkZhY3RvcnkoSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKaW5kZXggZjk4ZjNm
ODM5YmM0YTM4M2RkNDM5OTI5OWI3OTI2YjA3Njg3YTBiMS4uOTVlYTY2MTJkZTdlNThlMjU2MDE1
MDY5Y2M5M2Y2OGQwMjNhNzZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5pZGwKQEAgLTI5LDUgKzI5LDE0IEBACiBdIGludGVyZmFjZSBJREJG
YWN0b3J5IHsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dF
eGNlcHRpb25dIElEQk9wZW5EQlJlcXVlc3Qgb3BlbihET01TdHJpbmcgbmFtZSwgb3B0aW9uYWwg
W0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24pOwogICAgIFtDYWxsV2l0
aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCT3BlbkRCUmVx
dWVzdCBkZWxldGVEYXRhYmFzZShET01TdHJpbmcgbmFtZSk7CisgICAgW0NhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRdIFByb21pc2U8c2VxdWVuY2U8SURCRGF0YWJhc2VJbmZvPj4gZGF0
YWJhc2VzKCk7CiAgICAgW0NhbGxXaXRoPUdsb2JhbE9iamVjdCwgTWF5VGhyb3dFeGNlcHRpb25d
IHNob3J0IGNtcChhbnkgZmlyc3QsIGFueSBzZWNvbmQpOwogfTsKKworWworICAgIENvbmRpdGlv
bmFsPUlOREVYRURfREFUQUJBU0UsCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rp
b25hcnkgSURCRGF0YWJhc2VJbmZvIHsKKyAgICBET01TdHJpbmcgbmFtZTsKKyAgICB1bnNpZ25l
ZCBsb25nIGxvbmcgdmVyc2lvbjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCmluZGV4
IDk1NmRmYWU2NDUxNzQ5OGRlMzhlNTQ4MzFiNTkxYjRmNjM1NWM5NTkuLjM5NzEyODVjODBkNTQ1
M2ZhMWU1ZGEwMTJiYzJjMWMwODI1MzJjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3Bw
CkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJJREJDdXJzb3JJbmZvLmgiCiAjaW5jbHVk
ZSAiSURCRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgi
CisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCIKICNpbmNsdWRl
ICJJREJHZXRSZWNvcmREYXRhLmgiCiAjaW5jbHVkZSAiSURCSXRlcmF0ZUN1cnNvckRhdGEuaCIK
ICNpbmNsdWRlICJJREJLZXlSYW5nZURhdGEuaCIKQEAgLTQ2OSw2ICs0NzEsMTUgQEAgdm9pZCBJ
REJDb25uZWN0aW9uUHJveHk6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3QoY29uc3QgSURCRXJyb3Im
IGVycm9yKQogICAgICAgICBhdXRvIHJlc3VsdCA9IElEQlJlc3VsdERhdGE6OmVycm9yKHJlcXVl
c3RJZGVudGlmaWVyLCBlcnJvcik7CiAgICAgICAgIHJlcXVlc3QtPnBlcmZvcm1DYWxsYmFja09u
T3JpZ2luVGhyZWFkKCpyZXF1ZXN0LCAmSURCT3BlbkRCUmVxdWVzdDo6cmVxdWVzdENvbXBsZXRl
ZCwgcmVzdWx0KTsKICAgICB9CisKKyAgICBWZWN0b3I8SURCUmVzb3VyY2VJZGVudGlmaWVyPiBp
bmZvQ2FsbGJhY2tJZGVudGlmaWVyczsKKyAgICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBsb2Nr
KG1fZGF0YWJhc2VJbmZvTWFwTG9jayk7CisgICAgICAgIGluZm9DYWxsYmFja0lkZW50aWZpZXJz
ID0gY29weVRvVmVjdG9yKG1fZGF0YWJhc2VJbmZvQ2FsbGJhY2tzLmtleXMoKSk7CisgICAgfQor
CisgICAgZm9yIChhdXRvJiByZXF1ZXN0SWRlbnRpZmllciA6IGluZm9DYWxsYmFja0lkZW50aWZp
ZXJzKQorICAgICAgICBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElk
ZW50aWZpZXIsIHsgfSk7CiB9CiAKIHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpzY2hlZHVsZU1h
aW5UaHJlYWRUYXNrcygpCkBAIC00OTYsMTIgKzUwNywzNiBAQCB2b2lkIElEQkNvbm5lY3Rpb25Q
cm94eTo6aGFuZGxlTWFpblRocmVhZFRhc2tzKCkKICAgICAgICAgdGFzay0+cGVyZm9ybVRhc2so
KTsKIH0KIAotdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXMoY29u
c3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4m
IG9wZW5pbmdPcmlnaW4sIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYg
Y2FsbGJhY2spCit2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Z2V0QWxsRGF0YWJhc2VOYW1lc0Fu
ZFZlcnNpb25zKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZ1bmN0aW9uPHZvaWQo
T3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmKT4mJiBjYWxsYmFj
aykKK3sKKyAgICBDbGllbnRPcmlnaW4gb3JpZ2luIHsgY29udGV4dC5zZWN1cml0eU9yaWdpbigp
LT5kYXRhKCksIGNvbnRleHQudG9wT3JpZ2luKCkuZGF0YSgpIH07CisKKyAgICBJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCogcmVxdWVzdDsKKyAgICB7CisgICAgICAgIExvY2tlcjxM
b2NrPiBsb2NrZXIobV9kYXRhYmFzZUluZm9NYXBMb2NrKTsKKyAgICAgICAgYXV0byBuZXdSZXF1
ZXN0ID0gSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCAq
dGhpcywgV1RGTW92ZShjYWxsYmFjaykpOworICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2VJbmZv
Q2FsbGJhY2tzLmNvbnRhaW5zKG5ld1JlcXVlc3QtPnJlc291cmNlSWRlbnRpZmllcigpKSk7Cisg
ICAgICAgIHJlcXVlc3QgPSBuZXdSZXF1ZXN0LnB0cigpOworICAgICAgICBtX2RhdGFiYXNlSW5m
b0NhbGxiYWNrcy5hZGQobmV3UmVxdWVzdC0+cmVzb3VyY2VJZGVudGlmaWVyKCksIFdURk1vdmUo
bmV3UmVxdWVzdCkpOworICAgIH0KKworICAgIGNhbGxDb25uZWN0aW9uT25NYWluVGhyZWFkKCZJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucywgcmVx
dWVzdC0+cmVzb3VyY2VJZGVudGlmaWVyKCksIG9yaWdpbik7Cit9CisKK3ZvaWQgSURCQ29ubmVj
dGlvblByb3h5OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgT3B0aW9uYWw8VmVjdG9yPElEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmIGRhdGFiYXNlcykKIHsKLSAgICAvLyBUaGlzIG1ldGhv
ZCBpcyBvbmx5IG1lYW50IHRvIGJlIGNhbGxlZCBieSB0aGUgd2ViIGluc3BlY3RvciBvbiB0aGUg
bWFpbiB0aHJlYWQuCi0gICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIFJl
ZlB0cjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD4gcmVxdWVzdDsKKyAgICB7Cisg
ICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZUluZm9NYXBMb2NrKTsKKyAgICAg
ICAgYXV0byB0YWtlblJlcXVlc3QgPSBtX2RhdGFiYXNlSW5mb0NhbGxiYWNrcy50YWtlKHJlcXVl
c3RJZGVudGlmaWVyKTsKKworICAgICAgICBpZiAoIXRha2VuUmVxdWVzdCkKKyAgICAgICAgICAg
IHJldHVybjsKIAotICAgIG1fY29ubmVjdGlvblRvU2VydmVyLmdldEFsbERhdGFiYXNlTmFtZXMo
bWFpbkZyYW1lT3JpZ2luLCBvcGVuaW5nT3JpZ2luLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAg
ICAgIHJlcXVlc3QgPSBXVEZNb3ZlKCp0YWtlblJlcXVlc3QpOworICAgIH0KKworICAgIHJlcXVl
c3QtPnBlcmZvcm1DYWxsYmFja09uT3JpZ2luVGhyZWFkKCpyZXF1ZXN0LCAmSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNvbXBsZXRlLCBXVEZNb3ZlKGRhdGFiYXNlcykpOwogfQog
CiB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6cmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oSURC
RGF0YWJhc2UmIGRhdGFiYXNlKQpAQCAtNTk2LDYgKzYzMSwxMCBAQCB2b2lkIElEQkNvbm5lY3Rp
b25Qcm94eTo6Zm9yZ2V0QWN0aXZpdHlGb3JDdXJyZW50VGhyZWFkKCkKICAgICAgICAgTG9ja2Vy
PExvY2s+IGxvY2sobV90cmFuc2FjdGlvbk9wZXJhdGlvbkxvY2spOwogICAgICAgICByZW1vdmVJ
dGVtc01hdGNoaW5nQ3VycmVudFRocmVhZChtX2FjdGl2ZU9wZXJhdGlvbnMpOwogICAgIH0KKyAg
ICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBsb2NrKG1fZGF0YWJhc2VJbmZvTWFwTG9jayk7Cisg
ICAgICAgIHJlbW92ZUl0ZW1zTWF0Y2hpbmdDdXJyZW50VGhyZWFkKG1fZGF0YWJhc2VJbmZvQ2Fs
bGJhY2tzKTsKKyAgICB9CiB9CiAKIHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpzZXRDb250ZXh0
U3VzcGVuZGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGN1cnJlbnRDb250ZXh0LCBib29sIGlz
Q29udGV4dFN1c3BlbmRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaAppbmRleCA0NjQyZjA5M2U3
MzgyOWQ2NmFmYjYxMDk0OTQ2YWUxOTcwMTljZjdlLi4wYWVhMTI1OWEzOWY3M2M3ZmMxYTY4ODEy
NzAxNGI5NjNmY2ZmZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5oCkBAIC0yOCw2ICsyOCw3
IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dC5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlRyYW5z
YWN0aW9uT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkUXVldWUuaD4KQEAg
LTExNSw3ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWYoKTsKICAgICB2b2lkIGRlcmVm
KCk7CiAKLSAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4m
IG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIFdU
Rjo6RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJik7CisgICAgdm9pZCBn
ZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZ1
bmN0aW9uPHZvaWQoT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+PiYm
KT4mJik7CisgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb24+PiYmKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oSURC
RGF0YWJhc2UmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oSURCRGF0
YWJhc2UmKTsKQEAgLTE2OSw2ICsxNzEsOSBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8SURCUmVz
b3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8VHJhbnNhY3Rpb25PcGVyYXRpb24+PiBtX2FjdGl2ZU9w
ZXJhdGlvbnM7CiAgICAgTG9jayBtX3RyYW5zYWN0aW9uT3BlcmF0aW9uTG9jazsKIAorICAgIEhh
c2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBSZWY8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3Q+PiBtX2RhdGFiYXNlSW5mb0NhbGxiYWNrczsKKyAgICBMb2NrIG1fZGF0YWJhc2VJ
bmZvTWFwTG9jazsKKwogICAgIENyb3NzVGhyZWFkUXVldWU8Q3Jvc3NUaHJlYWRUYXNrPiBtX21h
aW5UaHJlYWRRdWV1ZTsKICAgICBMb2NrIG1fbWFpblRocmVhZFRhc2tMb2NrOwogICAgIFJlZlB0
cjxJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1fbWFpblRocmVhZFByb3RlY3RvcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9u
VG9TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKaW5kZXggNjE5NGE5ODFhMDFmZmFmNGE4ODY3MDZlYWRl
YWFjYTgxMTNmNDZiMC4uMmNkMmFiZjJmMTkwODA0NTNiMGYxNTMxMmU5NjNiN2NiMjFhOTVkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Ub1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAog
I2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Qcm94eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgi
CisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgogI2luY2x1ZGUgIklEQkdl
dFJlY29yZERhdGEuaCIKICNpbmNsdWRlICJJREJLZXlSYW5nZURhdGEuaCIKICNpbmNsdWRlICJJ
REJPcGVuREJSZXF1ZXN0LmgiCkBAIC00OTQsMjcgKzQ5NSwyNyBAQCB2b2lkIElEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNv
bm5lY3RpbwogICAgICAgICBtX2RlbGVnYXRlLT5hYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKGRh
dGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiB9CiAK
LXZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVu
aW5nT3JpZ2luLCBGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNhbGxi
YWNrKQordm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRW
ZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBj
b25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKIHsKLSAgICBzdGF0aWMgdWludDY0X3QgY2FsbGJh
Y2tJRCA9IDA7Ci0KLSAgICBtX2dldEFsbERhdGFiYXNlTmFtZXNDYWxsYmFja3MuYWRkKCsrY2Fs
bGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIExPRyhJbmRleGVkREIsICJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyIpOworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBpZiAobV9zZXJ2ZXJDb25uZWN0aW9uSXNWYWxp
ZCkKLSAgICAgICAgbV9kZWxlZ2F0ZS0+Z2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVPcmln
aW4uZGF0YSgpLCBvcGVuaW5nT3JpZ2luLmRhdGEoKSwgY2FsbGJhY2tJRCk7Ci0gICAgZWxzZSB7
Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgY2FsbGJhY2tJRCA9IGNhbGxiYWNrSURdIHsKLSAgICAgICAgICAgIGRpZEdldEFs
bERhdGFiYXNlTmFtZXMoY2FsbGJhY2tJRCwgeyB9KTsKLSAgICAgICAgfSk7CisgICAgaWYgKG1f
c2VydmVyQ29ubmVjdGlvbklzVmFsaWQpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+Z2V0QWxsRGF0
YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pOworICAgICAg
ICByZXR1cm47CiAgICAgfQorCisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllcl0geworICAgICAgICBkaWRH
ZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIHsgfSk7Cisg
ICAgfSk7CiB9CiAKLXZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFz
ZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFz
ZU5hbWVzKQordm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFt
ZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlm
aWVyLCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mJiBkYXRhYmFzZXMpCiB7Ci0g
ICAgYXV0byBjYWxsYmFjayA9IG1fZ2V0QWxsRGF0YWJhc2VOYW1lc0NhbGxiYWNrcy50YWtlKGNh
bGxiYWNrSUQpOwotICAgIEFTU0VSVChjYWxsYmFjayk7CisgICAgTE9HKEluZGV4ZWREQiwgIklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zIik7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGNhbGxiYWNrKGRhdGFiYXNlTmFt
ZXMpOworICAgIG1fcHJveHktPmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1
ZXN0SWRlbnRpZmllciwgV1RGTW92ZShkYXRhYmFzZXMpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
SURCQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggNWVkMjRmZTU2OGYx
YWMyNTk2MGE5NmM0MDM5NWZjYTUwYjg0NGFjNS4uMjRjNWIzMzgyNjU5MzZmZWY4MzBjZDhiZWJh
ODVhMWIwNGQzMmM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtNDUsNiAr
NDUsOCBAQCBjbGFzcyBJREJSZXN1bHREYXRhOwogY2xhc3MgSURCVmFsdWU7CiBjbGFzcyBTZWN1
cml0eU9yaWdpbjsKIAorc3RydWN0IENsaWVudE9yaWdpbjsKK3N0cnVjdCBJREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uOwogc3RydWN0IElEQkdldEFsbFJlY29yZHNEYXRhOwogc3RydWN0IElEQkdl
dFJlY29yZERhdGE7CiBzdHJ1Y3QgSURCSXRlcmF0ZUN1cnNvckRhdGE7CkBAIC0xMzYsMjAgKzEz
OCwxOCBAQCBwdWJsaWM6CiAgICAgLy8gdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiwgYnV0IHRo
ZSBwYWdlIGlzIGFscmVhZHkgdG9ybiBkb3duLgogICAgIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFk
ZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAKLSAgICB2b2lkIGdl
dEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZCAo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRH
ZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBkYXRhYmFzZU5hbWVzKTsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBDbGllbnRPcmlnaW4mKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9u
cyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5k
VmVyc2lvbj4mJik7CiAKIHByaXZhdGU6CiAgICAgSURCQ29ubmVjdGlvblRvU2VydmVyKElEQkNv
bm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlJik7CiAKICAgICB0eXBlZGVmIHZvaWQgKElEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6KlJlc3VsdEZ1bmN0aW9uKShjb25zdCBJREJSZXN1bHREYXRhJik7CiAg
ICAgdm9pZCBjYWxsUmVzdWx0RnVuY3Rpb25XaXRoRXJyb3JMYXRlcihSZXN1bHRGdW5jdGlvbiwg
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7Ci0gICAgCisK
ICAgICBXZWFrUHRyPElEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlPiBtX2RlbGVnYXRlOwog
ICAgIGJvb2wgbV9zZXJ2ZXJDb25uZWN0aW9uSXNWYWxpZCB7IHRydWUgfTsKIAotICAgIEhhc2hN
YXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4+
IG1fZ2V0QWxsRGF0YWJhc2VOYW1lc0NhbGxiYWNrczsKLQogICAgIHN0ZDo6dW5pcXVlX3B0cjxJ
REJDb25uZWN0aW9uUHJveHk+IG1fcHJveHk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCmluZGV4IDBlZjdmYjU0YTE2MTgwN2VkNzU3MDIzODM0OTQ4
YmZhNzcxY2U2MTYuLjY5NmU0ZGViNTUzYThlZDIyNWZhMjIwMDljNmRiNDA4NWQ5OGY4YjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCkBAIC00MSw2ICs0
MSw3IEBAIGNsYXNzIElEQlJlcXVlc3REYXRhOwogY2xhc3MgSURCVHJhbnNhY3Rpb25JbmZvOwog
Y2xhc3MgSURCVmFsdWU7CiAKK3N0cnVjdCBDbGllbnRPcmlnaW47CiBzdHJ1Y3QgSURCR2V0QWxs
UmVjb3Jkc0RhdGE7CiBzdHJ1Y3QgSURCR2V0UmVjb3JkRGF0YTsKIHN0cnVjdCBJREJJdGVyYXRl
Q3Vyc29yRGF0YTsKQEAgLTg3LDcgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBk
aWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNv
bnN0IEluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0
YSYpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYsIGNvbnN0IENsaWVudE9yaWdpbiYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IElEQkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAppbmRleCA2NDZmOWIy
NTk2MWYzOTI2YzIxZWQwMTQ3MmY1MDc3MDBmZmIxZTg4Li5lNWEyNzgzMjRjNmM0NzQwOTY1MDhj
MDQwNjhjN2M1YjBiZGQ3YzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApA
QCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNs
dWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCiAjaW5jbHVkZSAiVW5pcXVlSURCRGF0
YWJhc2VDb25uZWN0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4MSwxMCArMTgy
LDEwIEBAIHZvaWQgSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpub3RpZnlPcGVuREJSZXF1ZXN0Qmxv
Y2tlZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpCiAgICAgICAgIG1fZGVsZWdhdGUtPm5vdGlm
eU9wZW5EQlJlcXVlc3RCbG9ja2VkKHJlcXVlc3RJZGVudGlmaWVyLCBvbGRWZXJzaW9uLCBuZXdW
ZXJzaW9uKTsKIH0KIAotdm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFi
YXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFi
YXNlTmFtZXMpCit2b2lkIElEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VO
YW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50
aWZpZXIsIFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYmIGRhdGFiYXNlcykKIHsK
ICAgICBpZiAobV9kZWxlZ2F0ZSkKLSAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkR2V0QWxsRGF0YWJh
c2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFzZU5hbWVzKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZN
b3ZlKGRhdGFiYXNlcykpOwogfQogCiB2b2lkIElEQkNvbm5lY3Rpb25Ub0NsaWVudDo6cmVnaXN0
ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiBjb25uZWN0
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IGNlNWM4MmRmZTYwZTFhMWMx
ZTJlZDM1MmFjMjM0ZjQwYTg1MTEzOTcuLmRjZDk4OTIwODdlZmM4ZDA0NGRhZWQ4NTVkOTgyNzAy
NjZiNjk0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTM5LDYgKzM5LDgg
QEAgY2xhc3MgSURCRXJyb3I7CiBjbGFzcyBJREJSZXNvdXJjZUlkZW50aWZpZXI7CiBjbGFzcyBJ
REJSZXN1bHREYXRhOwogCitzdHJ1Y3QgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjsKKwogbmFt
ZXNwYWNlIElEQlNlcnZlciB7CiAKIGNsYXNzIFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjsK
QEAgLTc0LDcgKzc2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0
QmxvY2tlZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1
aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9uKTsKIAotICAgIHZvaWQgZGlk
R2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZGF0YWJhc2VOYW1lcyk7CisgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5k
VmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgVmVjdG9yPElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24+JiYpOwogCiAgICAgdm9pZCByZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlv
bihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRh
YmFzZUNvbm5lY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRv
Q2xpZW50RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCmluZGV4IDVlYTVhMmU3ZDJkMDRlOTc2
ZjFhY2MyOTE1ZjBiNTMxMjJjZGIzMTEuLjY4YWNmNzY0ZGZhNjg2YTE0NTg2YTFiMjIzYWMwODY1
YTYxMmIwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5o
CkBAIC0zNiw2ICszNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElEQkVycm9yOwog
Y2xhc3MgSURCUmVzdWx0RGF0YTsKIAorc3RydWN0IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb247
CisKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCiBjbGFzcyBVbmlxdWVJREJEYXRhYmFzZUNvbm5l
Y3Rpb247CkBAIC03MCw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xv
c2VGcm9tU2VydmVyKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYsIGNvbnN0IElEQkVycm9y
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRW
ZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9uKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
R2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZGF0YWJhc2VOYW1lcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRHZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3Qg
VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JikgPSAwOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSURCU2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IGRlOTE2YzY2MzU2MDZiYTlkMzVjMzMxZTc4
YmExOTIwNGZhNGMyYTUuLjFhOTdjNzE0ODE4ZGMxOWEzNGUxOTFlY2Q4ZWE4NTQ5MDA5ODk0MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuY3BwCkBAIC01MDcsMzMgKzUwNywzNCBAQCB2b2lkIElEQlNlcnZlcjo6b3BlbkRC
UmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCiAgICAg
ICAgIG1fdW5pcXVlSURCRGF0YWJhc2VNYXAucmVtb3ZlKHVuaXF1ZUlEQkRhdGFiYXNlLT5pZGVu
dGlmaWVyKCkpOwogfQogCi12b2lkIElEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhJREJD
b25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0
YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgSURCU2VydmVyOjpn
ZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVx
dWVzdElkZW50aWZpZXIsIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQogewogICAgIEFTU0VS
VCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2xvY2suaXNIZWxkKCkpOwogCiAgICAg
YXV0byBkYXRhYmFzZURpcmVjdG9yeVBhdGggPSB0aGlzLT5kYXRhYmFzZURpcmVjdG9yeVBhdGhJ
c29sYXRlZENvcHkoKTsKLSAgICBTdHJpbmcgb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVu
dGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG1haW5GcmFtZU9yaWdpbiwg
b3BlbmluZ09yaWdpbiwgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiKTsKKyAgICBTdHJpbmcg
b2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJl
bGF0aXZlVG9Sb290KG9yaWdpbi50b3BPcmlnaW4sIG9yaWdpbi5jbGllbnRPcmlnaW4sIGRhdGFi
YXNlRGlyZWN0b3J5UGF0aCwgInYwIik7CiAgICAgVmVjdG9yPFN0cmluZz4gZmlsZXMgPSBGaWxl
U3lzdGVtOjpsaXN0RGlyZWN0b3J5KG9sZERpcmVjdG9yeSwgIioiX3MpOwotICAgIFZlY3RvcjxT
dHJpbmc+IGRhdGFiYXNlczsKKyAgICBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4g
ZGF0YWJhc2VzOwogICAgIGZvciAoYXV0byYgZmlsZSA6IGZpbGVzKSB7Ci0gICAgICAgIFN0cmlu
ZyBlbmNvZGVkTmFtZSA9IEZpbGVTeXN0ZW06Omxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1Ry
YWlsaW5nU2xhc2goZmlsZSk7Ci0gICAgICAgIGRhdGFiYXNlcy5hcHBlbmQoU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVGcm9tRW5jb2RlZEZpbGVuYW1lKGVuY29kZWROYW1lKSk7
CisgICAgICAgIGF1dG8gZGF0YWJhc2VUdXBsZSA9IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0
YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERh
dGFiYXNlUGF0aEZvckRpcmVjdG9yeShmaWxlKSk7CisgICAgICAgIGlmIChkYXRhYmFzZVR1cGxl
KQorICAgICAgICAgICAgZGF0YWJhc2VzLmFwcGVuZChXVEZNb3ZlKCpkYXRhYmFzZVR1cGxlKSk7
CiAgICAgfQogCi0gICAgU3RyaW5nIGRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6
ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdP
cmlnaW4sIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7CisgICAgU3RyaW5nIGRpcmVjdG9y
eSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9v
dChvcmlnaW4udG9wT3JpZ2luLCBvcmlnaW4uY2xpZW50T3JpZ2luLCBkYXRhYmFzZURpcmVjdG9y
eVBhdGgsICJ2MSIpOwogICAgIGZpbGVzID0gRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShkaXJl
Y3RvcnksICIqIl9zKTsKICAgICBmb3IgKGF1dG8mIGZpbGUgOiBmaWxlcykgewotICAgICAgICBh
dXRvIGRhdGFiYXNlTmFtZSA9IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lRnJv
bUZpbGUoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5
KGZpbGUpKTsKLSAgICAgICAgaWYgKCFkYXRhYmFzZU5hbWUuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgZGF0YWJhc2VzLmFwcGVuZChkYXRhYmFzZU5hbWUpOworICAgICAgICBhdXRvIGRhdGFiYXNl
VHVwbGUgPSBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9t
RmlsZShTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3Rvcnko
ZmlsZSkpOworICAgICAgICBpZiAoZGF0YWJhc2VUdXBsZSkKKyAgICAgICAgICAgIGRhdGFiYXNl
cy5hcHBlbmQoV1RGTW92ZSgqZGF0YWJhc2VUdXBsZSkpOwogICAgIH0KIAogICAgIGF1dG8gY29u
bmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIp
OwogICAgIGlmICghY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29ubmVjdGlv
bi0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFzZXMpOworICAgIGNv
bm5lY3Rpb24tPmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRp
ZmllciwgV1RGTW92ZShkYXRhYmFzZXMpKTsKIH0KIAogdm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5k
RGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5oCmluZGV4IDQwOTg3NDlmNTc4N2IwNzljN2ExZWVhODQxOGU2MTI5OGU3N2RjYmQuLjc3Yjdm
NTg0OTI4OGZlMDFkZWI0ZjJiODQ2ZWEzNWFjZjZkNzE2YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKQEAgLTg5LDcgKzg5
LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFu
Z2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBJbmRleGVkREI6OkNvbm5lY3Rp
b25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG9wZW5E
QlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgSURCUmVxdWVzdERhdGEmKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhJREJDb25uZWN0aW9uSWRlbnRpZmllciBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBtYWlu
RnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRBbGxEYXRhYmFz
ZU5hbWVzQW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworCiAKICAgICB2b2lkIHJlZ2lz
dGVyRGF0YWJhc2VDb25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOwogICAg
IHZvaWQgdW5yZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5l
Y3Rpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggZWFhZDdlOTBi
ZWRmNmVkZGI0ZTllMWQ1ZmI3MDA2OGZhMTRmZTM3OC4uNGY5N2RlNzIxM2QwNjgxMTQ1MTY5ZDMw
YWM0NzFjMTg3NDFmNTNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAg
LTkxMiwxOSArOTEyLDMxIEBAIFN0cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRh
YmFzZVBhdGgoKSBjb25zdAogICAgIHJldHVybiBmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5
KG1fZGF0YWJhc2VEaXJlY3RvcnkpOwogfQogCi1TdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3Jl
OjpkYXRhYmFzZU5hbWVGcm9tRmlsZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCkKK09wdGlv
bmFsPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0
YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21GaWxlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQog
ewogICAgIFNRTGl0ZURhdGFiYXNlIGRhdGFiYXNlOwogICAgIGlmICghZGF0YWJhc2Uub3Blbihk
YXRhYmFzZVBhdGgpKSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIG9wZW4gU1FMaXRl
IGRhdGFiYXNlIGF0IHBhdGggJyVzJyB3aGVuIGdldHRpbmcgZGF0YWJhc2UgbmFtZSIsIGRhdGFi
YXNlUGF0aC51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAgICAgaWYgKCFkYXRhYmFzZS50YWJsZUV4aXN0cygi
SURCRGF0YWJhc2VJbmZvIl9zKSkgewogICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBmaW5k
IElEQkRhdGFiYXNlSW5mbyB0YWJsZSBhbmQgZ2V0IGRhdGFiYXNlIG5hbWUoJWkpIC0gJXMiLCBk
YXRhYmFzZS5sYXN0RXJyb3IoKSwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwotICAgICAgICBy
ZXR1cm4geyB9OworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KLSAgICBTUUxp
dGVTdGF0ZW1lbnQgc3FsKGRhdGFiYXNlLCAiU0VMRUNUIHZhbHVlIEZST00gSURCRGF0YWJhc2VJ
bmZvIFdIRVJFIGtleSA9ICdEYXRhYmFzZU5hbWUnOyIpOwotICAgIHJldHVybiBzcWwuZ2V0Q29s
dW1uVGV4dCgwKTsKKworICAgIFNRTGl0ZVN0YXRlbWVudCBuYW1lc3FsKGRhdGFiYXNlLCAiU0VM
RUNUIHZhbHVlIEZST00gSURCRGF0YWJhc2VJbmZvIFdIRVJFIGtleSA9ICdEYXRhYmFzZU5hbWUn
OyIpOworICAgIGF1dG8gZGF0YWJhc2VOYW1lID0gbmFtZXNxbC5nZXRDb2x1bW5UZXh0KDApOwor
CisgICAgU1FMaXRlU3RhdGVtZW50IHZlcnNxbChkYXRhYmFzZSwgIlNFTEVDVCB2YWx1ZSBGUk9N
IElEQkRhdGFiYXNlSW5mbyBXSEVSRSBrZXkgPSAnRGF0YWJhc2VWZXJzaW9uJzsiX3MpOworICAg
IFN0cmluZyBzdHJpbmdWZXJzaW9uID0gdmVyc3FsLmdldENvbHVtblRleHQoMCk7CisgICAgYm9v
bCBvazsKKyAgICB1aW50NjRfdCBkYXRhYmFzZVZlcnNpb24gPSBzdHJpbmdWZXJzaW9uLnRvVUlu
dDY0U3RyaWN0KCZvayk7CisgICAgaWYgKCFvaykgeworICAgICAgICBMT0dfRVJST1IoIkRhdGFi
YXNlIHZlcnNpb24gb24gZGlzayAoJyVzJykgZG9lcyBub3QgY2xlYW5seSBjb252ZXJ0IHRvIGFu
IHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIHZlcnNpb24iLCBzdHJpbmdWZXJzaW9uLnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVy
biBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIHsgZGF0YWJhc2VOYW1lLCBkYXRhYmFzZVZlcnNp
b24gfTsKIH0KIAogU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlRGly
ZWN0b3J5V2l0aFVwZ3JhZGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IGJi
NWViYjU1OTBlNzQ3MzA3OTI3NDlmZWUyY2YxYWFjNWM2OTQzOGYuLjczZjhmY2ZiMzk2MDliYzU3
YmNlYzU5YTNmYjVlYzJjOTlmMmQ3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJJREJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRl
ICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUluZm8uaCIK
KyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCiAjaW5jbHVkZSAiSURCUmVz
b3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU1FMaXRlSURCVHJhbnNhY3Rpb24uaCIKICNp
bmNsdWRlICJTUUxpdGVTdGF0ZW1lbnRBdXRvUmVzZXRTY29wZS5oIgpAQCAtMTAxLDcgKzEwMiw3
IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0
dXJuIG1fZGF0YWJhc2VEaXJlY3Rvcnk7IH07CiAgICAgc3RhdGljIFN0cmluZyBmdWxsRGF0YWJh
c2VQYXRoRm9yRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyBTdHJpbmcgZGF0
YWJhc2VOYW1lRnJvbUZpbGUoY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIE9wdGlvbmFsPElE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+IGRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShj
b25zdCBTdHJpbmcmKTsKIAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsg
cmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM3ZDhmNjlkN2RjMmQ1NjA5M2JlMGQ5ZDVjOWQ2ZGNhODA4NGZmMTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFy
ZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgRGFycnlsIFBvZ3VlIChkYXJyeWxAZHBvZ3VlLmNhKQorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3Ry
dWN0IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24geworICAgIFN0cmluZyBuYW1lOworICAgIHVp
bnQ2NF90IHZlcnNpb24geyAwIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIE9wdGlvbmFsPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+IGRlY29kZShEZWNvZGVyJik7
CisKKyAgICBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0Owor
fTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBu
YW1lIDw8IHZlcnNpb247Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIGlu
Zm87CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubmFtZSkpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8udmVyc2lvbikp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gaW5mbzsKK30KKwor
aW5saW5lIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24gSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bjo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sKKyAgICByZXR1cm4geyBuYW1lLmlzb2xhdGVkQ29w
eSgpLCB2ZXJzaW9uIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAyNGRiOGZkMmMzMWQ5
MTQ5ZDYyYjk2OWE5NWEzNjQ4ZWQ2NTU3MGVmLi4zMzRmOGM0NDMwODAxNDAzNTFjYTg5ZDYwMDY3
Zjg0Y2MxM2VjZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtODgsNiArODgsNyBAQCBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJDdXJzb3IuY3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFs
dWUuY3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9y
eS5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkdldEFsbFJlc3VsdC5jcHAKIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkdldFJlc3VsdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNDRiYjhhNzlhZTk3Yzg0MGM0NzNhNTk2ZWU3
YzhhMGQ2ZmNhOTdiLi43MTg0M2YwZWFmNjdmOTI0YmZlZTYxYjc3YmQwMjdhMTJkZjE0YTRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yNTgzLDYgKzI1ODMsOCBAQAogCQk4RjY3NTYxQjEyODhCMTdCMDA0N0FDQTMgLyogRXZl
bnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEY2NzU2MTkxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0
NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc3M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaCAqLzsgfTsKIAkJOTAwMTc4ODExMkUwMzcwNzAwNjQ4NDYyIC8qIEpT
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTAwMTc4N0YxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmRE
ZXJpdmF0aXZlcy5oICovOyB9OworCQk5MDE2RUE0RDI0NTREODEzMDAyMUQ5RDEgLyogSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTAxNkVBNEMyNDU0RDgxMzAwMjFEOUQxIC8qIElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk5MEUzNTFDMjI0N0U0NkU0MDBGQkYyNEYgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkwRTM1MUJEMjQ3RTNENDgwMEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVx
dWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkxMDlFOUM4MjIyQ0FCQ0EwMEJCNjI2NCAvKiBJbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTEwOUU5
QzUyMjJDQUJDODAwQkI2MjY0IC8qIEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi87
IH07CiAJCTkxMDlFOUM4MjIyQ0FCQ0EwMEJCNjI2NSAvKiBKU0luc3BlY3RvckF1ZGl0UmVzb3Vy
Y2VzT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MTA5RTlDNTIyMkNBQkM4MDBCQjYyNjUgLyogSlNJbnNwZWN0b3JBdWRpdFJlc291cmNlc09i
amVjdC5oICovOyB9OwogCQk5MTI3OEQ1RTIxREVEQUQ2MDBCNTcxODQgLyogUGFnZUF1ZGl0QWdl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxMjc4
RDVDMjFERURBRDUwMEI1NzE4NCAvKiBQYWdlQXVkaXRBZ2VudC5oICovOyB9OwpAQCAtMTA3MTIs
NiArMTA3MTQsOSBAQAogCQk5MDAxNzczRjEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmRE
ZXJpdmF0aXZlcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gT0VTU3RhbmRhcmREZXJpdmF0
aXZlcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdFMTJFMDM3MDcw
MDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VT
U3RhbmRhcmREZXJpdmF0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTAxNkVBNEMyNDU0RDgxMzAwMjFEOUQxIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MEUzNTFCQzI0N0UzRDQ4MDBGQkYyNEYgLyogSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MEUzNTFCRDI0N0UzRDQ4MDBGQkYyNEYgLyogSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTEwOUU5QzUyMjJDQUJDODAwQkI2MjY0IC8qIEluc3BlY3RvckF1ZGl0UmVzb3Vy
Y2VzT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckF1
ZGl0UmVzb3VyY2VzT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxMDlF
OUM1MjIyQ0FCQzgwMEJCNjI2NSAvKiBKU0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW5zcGVjdG9yQXVkaXRSZXNvdXJj
ZXNPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTEwOUU5QzcyMjJDQUJD
OTAwQkI2MjY0IC8qIEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MzcwLDYgKzE5Mzc1LDcgQEAK
IAkJCQk1MTEwRkNGQjFFMDM2MkE1MDA2RjhEMEIgLyogSURCQ3Vyc29yUmVjb3JkLmggKi8sCiAJ
CQkJNTFCQTRBQzExQkJCNUNCRjAwREYzRDZEIC8qIElEQkRhdGFiYXNlSW5mby5jcHAgKi8sCiAJ
CQkJNTFCQTRBQzIxQkJCNUNCRjAwREYzRDZEIC8qIElEQkRhdGFiYXNlSW5mby5oICovLAorCQkJ
CTkwMTZFQTRDMjQ1NEQ4MTMwMDIxRDlEMSAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgg
Ki8sCiAJCQkJNTE0ODQ1M0MxQkI5RDA3NjAwNkE3MkVEIC8qIElEQkVycm9yLmNwcCAqLywKIAkJ
CQk1MTQ4NDUzRDFCQjlEMDc2MDA2QTcyRUQgLyogSURCRXJyb3IuaCAqLywKIAkJCQk1MTlEQkM2
RDFEQzAwRkI5MDAzMjlCRjUgLyogSURCR2V0QWxsUmVjb3Jkc0RhdGEuY3BwICovLApAQCAtMjI4
NDUsNiArMjI4NTEsOCBAQAogCQkJCTUxRDcxOTdFMTgxMTA2REYwMDE2REM1MSAvKiBJREJEYXRh
YmFzZS5pZGwgKi8sCiAJCQkJNTEwMzEwNUUxQkE4RTA5MDAwMzMyOUMwIC8qIElEQkRhdGFiYXNl
SWRlbnRpZmllci5jcHAgKi8sCiAJCQkJNTEwMzEwNUYxQkE4RTA5MDAwMzMyOUMwIC8qIElEQkRh
dGFiYXNlSWRlbnRpZmllci5oICovLAorCQkJCTkwRTM1MUJDMjQ3RTNENDgwMEZCRjI0RiAvKiBJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJOTBFMzUxQkQyNDdF
M0Q0ODAwRkJGMjRGIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmggKi8sCiAJ
CQkJNTE2NDVCNDYxQjlGODg5QjAwRjc4OUNFIC8qIElEQkZhY3RvcnkuY3BwICovLAogCQkJCTUx
NjQ1QjQ3MUI5Rjg4OUIwMEY3ODlDRSAvKiBJREJGYWN0b3J5LmggKi8sCiAJCQkJNTFENzE5OEEx
ODExMDZERjAwMTZEQzUxIC8qIElEQkZhY3RvcnkuaWRsICovLApAQCAtMzA5MjcsNiArMzA5MzUs
OCBAQAogCQkJCTUxODVGQzgxMUJCNEM0RTgwMDEyODk4RiAvKiBJREJEYXRhYmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE4NUZDODcxQkI0QzRFODAwMTI4OThGIC8qIElEQkRhdGFiYXNlSWRl
bnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCQTRBQzQxQkJCNUNEODAwREYzRDZEIC8q
IElEQkRhdGFiYXNlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTAxNkVBNEQyNDU0RDgxMzAw
MjFEOUQxIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkwRTM1MUMyMjQ3RTQ2RTQwMEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0ODQ1M0YxQkI5RDA3RTAwNkE3MkVEIC8qIElE
QkVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg1RkM4RDFCQjRDNEU4MDAxMjg5OEYgLyog
SURCRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE5REJDNkYxREMwMTFBNzAwMzI5QkY1
IC8qIElEQkdldEFsbFJlY29yZHNEYXRhLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHAKaW5kZXggYzhlYjcxYjk0YWM4MWQ1NDhjZTEyN2E2MWIwYzIxMGM1NjcyMjE4MC4uZmY4
ZjMwZjQwM2Y4NWM3ZGRiZTMxYjEwZTAzY2VmNWZjZGY3ZjAwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHAKQEAgLTU5Niw5ICs1OTYsNyBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50Ojpy
ZXF1ZXN0RGF0YWJhc2VOYW1lcyhjb25zdCBTdHJpbmcmIHNlY3VyaXR5T3JpZ2luLAogICAgIGlm
ICghZ2V0RG9jdW1lbnRBbmRJREJGYWN0b3J5RnJvbUZyYW1lT3JTZW5kRmFpbHVyZShmcmFtZSwg
ZG9jdW1lbnQsIGlkYkZhY3RvcnksIGNhbGxiYWNrKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
YXV0byYgb3BlbmluZ09yaWdpbiA9IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwotICAgIGF1
dG8mIHRvcE9yaWdpbiA9IGRvY3VtZW50LT50b3BPcmlnaW4oKTsKLSAgICBpZGJGYWN0b3J5LT5n
ZXRBbGxEYXRhYmFzZU5hbWVzKHRvcE9yaWdpbiwgb3BlbmluZ09yaWdpbiwgW2NhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldKGF1dG8mIGRhdGFiYXNlTmFtZXMpIHsKKyAgICBpZGJGYWN0b3J5
LT5nZXRBbGxEYXRhYmFzZU5hbWVzKCpkb2N1bWVudCwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayldKGF1dG8mIGRhdGFiYXNlTmFtZXMpIHsKICAgICAgICAgaWYgKCFjYWxsYmFjay0+aXNB
Y3RpdmUoKSkKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcAppbmRleCA4N2QwYjg2Mzk1NmRmMDA1M2Y5NDkwNDhkMzBmMTYwYzlmZTFiOWMz
Li4zMDE1Mzg1YmJlZGZiMWUwODE2YmY5ODk4OGU2MzJmMzI2MzJhNTY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMTUyLDcgKzE1Miw3IEBAIGNsYXNzIEVtcHR5
RGF0YWJhc2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBEYXRhYmFzZVByb3ZpZGVyIHsKICAgICAg
ICAgdm9pZCBhYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90LCBjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNo
YW5nZUV2ZW50KHVpbnQ2NF90LCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJ
bmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKSBmaW5hbCB7IH0KICAg
ICAgICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJikg
ZmluYWwgeyB9Ci0gICAgICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCB1aW50NjRfdCkgZmluYWwg
eyB9CisgICAgICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IENsaWVudE9yaWdpbiYpIGZpbmFsIHsgfQogICAg
ICAgICB+RW1wdHlJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxldGVnYXRlKCkgeyB9CiAgICAgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggZjJhZmUxYThiOGFi
OGNlYWFhMWNjNzEyZWZhNGVhYzE3NmVmNjNkNC4uZDBiODhmMjNmZDdkYTRlYzZlYzYzYTQ2MjJl
M2MwMmQ3NjRmMjQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBA
IC0xOTMsOSArMTkzLDkgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om5vdGlmeU9w
ZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IFdlYkNvcmU6OklEQlJlc28KICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Ok5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2Vk
KHJlcXVlc3RJZGVudGlmaWVyLCBvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKSk7CiB9CiAKLXZvaWQg
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90
IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKQordm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9u
cyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFi
YXNlcykKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRp
ZEdldEFsbERhdGFiYXNlTmFtZXMoY2FsbGJhY2tJRCwgZGF0YWJhc2VOYW1lcykpOworICAgIHNl
bmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkR2V0QWxsRGF0YWJhc2VO
YW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBkYXRhYmFzZXMpKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4
IDk5NTA4M2IwNDZhZDBkZDk3ZWUzMTk4NzIwOTUyYmRlY2JjODkzNmUuLjczMTVmMTBhZmMzN2Ex
ZjE1NDY1MjQyYWIwZDJjZDE5OWFkM2Y4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5oCkBAIC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDbG9zZUZyb21T
ZXJ2ZXIoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBj
b25zdCBXZWJDb3JlOjpJREJFcnJvciYpIGZpbmFsOwogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVx
dWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0
SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikgZmlu
YWw7CiAKLSAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJ
RCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpIGZpbmFsOworICAgIHZvaWQg
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291
cmNlSWRlbnRpZmllciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uPiYpIGZpbmFsOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgTWVzc2FnZVR5cGU+IHZvaWQg
aGFuZGxlR2V0UmVzdWx0KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZl
ci5jcHAKaW5kZXggNTA4YmQ5MjkxMzQ5MDdhMTY5YjY1MWM3YjhhZWUxYzkyNzcyZjhkMy4uOTg5
MTFmNTI0ZmZmYzJiNjI1ZWYyMWIwOWJiNzEzYzBmOTBiMWNhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCkBA
IC0zMTUsNyArMzE1LDcgQEAgdm9pZCBXZWJJREJTZXJ2ZXI6Om9wZW5EQlJlcXVlc3RDYW5jZWxs
ZWQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmIHJlcXVlc3QKICAgICBtX3NlcnZlci0+
b3BlbkRCUmVxdWVzdENhbmNlbGxlZChyZXF1ZXN0RGF0YSk7CiB9CiAKLXZvaWQgV2ViSURCU2Vy
dmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJh
Y2tJRCkKK3ZvaWQgV2ViSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
IG9yaWdpbikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzIzLDcg
KzMyMyw3IEBAIHZvaWQgV2ViSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yCiAgICAgQVNTRVJUKHdlYklEQkNvbm5l
Y3Rpb24pOwogCiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7Ci0gICAg
bV9zZXJ2ZXItPmdldEFsbERhdGFiYXNlTmFtZXMod2ViSURCQ29ubmVjdGlvbi0+aWRlbnRpZmll
cigpLCBtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNrSUQpOworICAgIG1f
c2VydmVyLT5nZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMod2ViSURCQ29ubmVjdGlvbi0+
aWRlbnRpZmllcigpLCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luKTsKIH0KIAogdm9pZCBXZWJJ
REJTZXJ2ZXI6OmFkZENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKaW5kZXgg
ZDQwM2Y2Yzg0MGMzMDI1MjI3NGQyZDNhNzgyNDVlMjI5ODczMDI2Ny4uODUzODI3N2I2ZDJjOWQ4
MWRjNzNhMzc3Nzk1YjU0ODAwZjk4MGEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKQEAgLTgwLDcgKzgwLDcgQEAg
cHVibGljOgogICAgIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRh
YmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNo
YW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OkluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogICAg
IHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0
YSYpOwotICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhJUEM6OkNvbm5lY3Rpb24mLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNl
TmFtZXNBbmRWZXJzaW9ucyhJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJSZXNv
dXJjZUlkZW50aWZpZXImLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKIAogICAgIHZv
aWQgYWRkQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
Zmllcik7CiAgICAgdm9pZCByZW1vdmVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCmluZGV4IDIwOWY1NDAyNjE1MDUxZTY5N2UyZmRkZDU3
NzM4OTQxMmIzZGQ2ZDMuLmYxNWQ2M2Y5OGYyNDE5OGU3MzFjMjA3ZWQ4N2Y5ZDA1ZDExYjk2Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0lu
ZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4KQEAgLTUwLDcgKzUwLDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViSURCU2VydmVyIHsKICAgICBEaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2
NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OklEQlJlc291cmNlSWRl
bnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6SW5kZXhlZERCOjpDb25uZWN0aW9u
Q2xvc2VkT25CZWhhbGZPZlNlcnZlciBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikK
ICAgICBPcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVl
c3REYXRhKQogCi0gICAgR2V0QWxsRGF0YWJhc2VOYW1lcyhzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKSBXYW50c0Nvbm5lY3Rpb24KKyAg
ICBHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVu
dGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9y
aWdpbikgV2FudHNDb25uZWN0aW9uCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmlu
ZGV4IDBlOTc4MzY3NzlkNjYwZDYwOGIzMGYxYjQxNmE1NDFjOGUzMWNiYWMuLmU2NGQxOGU1NjVm
ZDA0YjEzZDczMWRkNDE4Y2Y1MTBmNGYyOWFmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtMjA3LDkgKzIwNyw5IEBAIHZvaWQgV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyOjpvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVl
c3REYXRhJiByZXF1CiAgICAgc2VuZChNZXNzYWdlczo6V2ViSURCU2VydmVyOjpPcGVuREJSZXF1
ZXN0Q2FuY2VsbGVkKHJlcXVlc3REYXRhKSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5p
bmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQog
ewotICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQlNlcnZlcjo6R2V0QWxsRGF0YWJhc2VOYW1lcyh0
b3BPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNrSUQpKTsKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJJREJTZXJ2ZXI6OkdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRl
bnRpZmllciwgb3JpZ2luKSk7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpk
aWREZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCkBAIC0zMjIsOSAr
MzIyLDkgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Om5vdGlmeU9wZW5EQlJlcXVl
c3RCbG9ja2VkKGNvbnN0IElEQlJlc291cmNlSWRlbnQKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZl
ci0+bm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQocmVxdWVzdElkZW50aWZpZXIsIG9sZFZlcnNp
b24sIG5ld1ZlcnNpb24pOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlk
R2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgZGF0YWJhc2VOYW1lcykKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRH
ZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiYg
ZGF0YWJhc2VzKQogewotICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRHZXRBbGxEYXRhYmFz
ZU5hbWVzKGNhbGxiYWNrSUQsIGRhdGFiYXNlTmFtZXMpOworICAgIG1fY29ubmVjdGlvblRvU2Vy
dmVyLT5kaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIs
IFdURk1vdmUoZGF0YWJhc2VzKSk7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
Ojpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmgKaW5kZXggOTcwNThkM2VlMThhY2I5MDZmNDNjZDVkNWZkOTliNmY2Mjg0
ODcxYS4uNThkY2I0Yjk3MTJkM2Q0YTM2MjlkZGE0YTEwZTAyZWFlMjM1MGVlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTgwLDcgKzgwLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVu
dGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SW5kZXhlZERCOjpDb25u
ZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikgZmluYWw7CiAgICAgdm9pZCBvcGVuREJSZXF1
ZXN0Q2FuY2VsbGVkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJikgZmluYWw7CiAKLSAg
ICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3Blbmlu
Z09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CisgICAgdm9pZCBnZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVy
JiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJikgZmluYWw7CiAKICAgICAvLyBNZXNzYWdl
cyByZWNlaXZlZCBmcm9tIE5ldHdvcmsgUHJvY2VzcwogICAgIHZvaWQgZGlkRGVsZXRlRGF0YWJh
c2UoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpOwpAQCAtMTA1LDcgKzEwNSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRTdGFydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJ
REJFcnJvciYpOwogICAgIHZvaWQgZGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNl
Q29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJik7CiAgICAgdm9p
ZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRf
dCBuZXdWZXJzaW9uKTsKLSAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3Qg
Y2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpOworICAgIHZv
aWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJl
c291cmNlSWRlbnRpZmllciYsIFZlY3RvcjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uPiYmKTsKIAogICAgIFJlZjxXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcj4gbV9jb25uZWN0aW9uVG9TZXJ2ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluCmluZGV4IDhkOTdlNDRlMzVj
M2MwZmZlNTNkMDZjM2I2ZGJiMzIyZTdkNmYxYzAuLjY0ZjI2MzljMGE0NGMyYzc4Y2VmMGIyZjBm
YmZlZTJkNTM2NTViNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4KQEAgLTQ3LDcgKzQ3LDcgQEAgbWVzc2FnZXMgLT4g
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyIHsKICAgICBEaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6SURCRXJyb3IgZXJyb3Ip
IGZpbmFsOwogICAgIE5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKFdlYkNvcmU6OklEQlJlc291
cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWlu
dDY0X3QgbmV3VmVyc2lvbikKIAotICAgIERpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3Qg
Y2FsbGJhY2tJRCwgVmVjdG9yPFN0cmluZz4gZGF0YWJhc2VOYW1lcykKKyAgICBEaWRHZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyIHJl
cXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bj4gZGF0YWJhc2VzKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVy
LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3Bw
CmluZGV4IGE1NDliMDQ5MDVjNmEyMjNjZDY3NmMwOTBjMDRhNGI3MTcyZTdmYTAuLmE3OTZmMDgy
MTFjZjc0NTI0ZjVkNDgzOTUzMjc2ZjgwNzg1Njg2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBAIC00NzYsMTggKzQ3Niwx
OCBAQCB2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6b3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25z
dCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYgcgogICAgIH0pOwogfQogCi12b2lkIEluUHJvY2Vz
c0lEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2lu
LCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmdldEFsbERh
dGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKIHsKLSAg
ICBkaXNwYXRjaFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRl
bnRpZmllciA9IG1fY29ubmVjdGlvblRvU2VydmVyLT5pZGVudGlmaWVyKCksIG1haW5GcmFtZU9y
aWdpbiA9IG1haW5GcmFtZU9yaWdpbi5pc29sYXRlZENvcHkoKSwgb3BlbmluZ09yaWdpbiA9IG9w
ZW5pbmdPcmlnaW4uaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrSURdIHsKKyAgICBkaXNwYXRjaFRh
c2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciA9IG1f
Y29ubmVjdGlvblRvU2VydmVyLT5pZGVudGlmaWVyKCksIHJlcXVlc3RJZGVudGlmaWVyLCBvcmln
aW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5KCldIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9zZXJ2ZXItPmxvY2soKSk7Ci0gICAgICAgIG1fc2VydmVyLT5nZXRBbGxEYXRhYmFzZU5hbWVz
KGlkZW50aWZpZXIsIG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgY2FsbGJhY2tJRCk7
CisgICAgICAgIG1fc2VydmVyLT5nZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoaWRlbnRp
ZmllciwgcmVxdWVzdElkZW50aWZpZXIsIG9yaWdpbik7CiAgICAgfSk7CiB9CiAKLXZvaWQgSW5Q
cm9jZXNzSURCU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNr
SUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKQordm9pZCBJblByb2Nlc3NJ
REJTZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3Jl
OjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNlcykKIHsKLSAgICBk
aXNwYXRjaFRhc2tSZXBseShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBj
YWxsYmFja0lELCBkYXRhYmFzZU5hbWVzID0gZGF0YWJhc2VOYW1lcy5pc29sYXRlZENvcHkoKV0g
ewotICAgICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhj
YWxsYmFja0lELCBkYXRhYmFzZU5hbWVzKTsKKyAgICBkaXNwYXRjaFRhc2tSZXBseShbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJh
c2VzID0gZGF0YWJhc2VzLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAgICAgICBtX2Nv
bm5lY3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVl
c3RJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFiYXNlcykpOwogICAgIH0pOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmgKaW5kZXggNjA0
N2RkOWY5NWIxM2RjMTE2ZGI4YmVlZjA4OWI2NGRmNDNjY2ZhNC4uZjY3ZGQzMWRiY2VlMzIyZDAy
MzJhNmYyZWRjYmRkYTM0OTE4MDFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9T
dG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3Rv
cmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlv
bklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
SW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikgZmluYWw7CiAgICAg
dm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRh
JikgZmluYWw7Ci0gICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFsOwor
ICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklE
QlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGZpbmFs
OwogCiAgICAgLy8gSURCQ29ubmVjdGlvblRvQ2xpZW50CiAgICAgV2ViQ29yZTo6SURCQ29ubmVj
dGlvbklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwpAQCAtMTE2LDcgKzExNiw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFN0YXJ0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OklEQkVycm9yJikgZmluYWw7CiAgICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29y
ZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpJREJFcnJvciYpIGZpbmFsOwogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQo
Y29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwg
dWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikgZmluYWw7Ci0gICAgdm9p
ZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKSBmaW5hbDsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFi
YXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIm
LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKSBmaW5h
bDsKIAogICAgIHZvaWQgY2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxU
aW1lKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYjllYWYzODBhOGFlNzJl
YzY4NDMzNzEyZjZlZmQ3NTU2N2I4YjM4ZC4uY2MyNGY4Zjk5YTIwZTJkYWUyZWM1ZGQxMDg3OGVh
MjllMWQ1MWQzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMjAtMDYtMTMgIERhcnJ5bCBQb2d1ZSAgPGRhcnJ5bEBkcG9ndWUuY2E+CisKKyAgICAg
ICAgSW5kZXhlZERCOiBTdXBwb3J0IElEQkZhY3RvcnkgZGF0YWJhc2VzIG1ldGhvZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRqdXN0IHRlc3QgZXhw
ZWN0YXRpb25zIGZvciBgSURCRmFjdG9yeS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0
YWJhc2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5
LW9yaWdpbi1pc29sYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dDoKKwogMjAyMC0wNi0xMiAgVGV0c3VoYXJ1IE9oemVraSAgPHRldHN1aGFydS5vaHpla2lA
Z21haWwuY29tPgogCiAgICAgICAgIENoYW5nZSBGaWxlUmVhZGVyLmVycm9yIHRvIERPTUV4Y2Vw
dGlvbiBmcm9tIG9ic29sZXRlZCBGaWxlRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4dAppbmRleCBlMmRmZmFj
NzQ3ODdhYzUxODU1ODg1MDJiNmQwY2Q3MWVmZWQ3OTBlLi4wNjUwMTlkMTMwMTA5YzcyNGI1M2I4
YTYwZGViYzlmNjY0NTMwYzQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvZ2V0LWRhdGFiYXNlcy5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1G
QUlMIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIHJldHVybnMgYSBwcm9taXNlLiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGlu
ZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFi
YXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVudW1l
cmF0ZSBvbmUgZGF0YWJhc2UuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBm
dW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNl
cycgaXMgdW5kZWZpbmVkKSIKLUZBSUwgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4gcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWRE
Qi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJ
TCBNYWtlIHN1cmUgYW4gZW1wdHkgbGlzdCBpcyByZXR1cm5lZCBmb3IgdGhlIGNhc2Ugb2Ygbm8g
ZGF0YWJhc2VzLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24u
IChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVu
ZGVmaW5lZCkiCi1GQUlMIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBj
aGFuZ2VzIHRoYXQgaGF2ZW4ndCBjb21taXRlZC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2Vz
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVk
REIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgorUEFTUyBFbnN1cmUgdGhhdCBkYXRhYmFzZXMo
KSByZXR1cm5zIGEgcHJvbWlzZS4gCitQQVNTIEVudW1lcmF0ZSBvbmUgZGF0YWJhc2UuIAorUEFT
UyBFbnVtZXJhdGUgbXVsdGlwbGUgZGF0YWJhc2VzLiAKK1BBU1MgTWFrZSBzdXJlIGFuIGVtcHR5
IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gCitGQUlMIEVu
c3VyZSB0aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBjaGFuZ2VzIHRoYXQgaGF2ZW4n
dCBjb21taXRlZC4gYXNzZXJ0X2VxdWFsczogVGhlIHJlc3VsdCBvZiBkYXRhYmFzZXMoKSBzaG91
bGQgYmUgb25seSB0aG9zZSBkYXRhYmFzZXMgd2hpY2ggaGF2ZSBiZWVuIGNyZWF0ZWQgYXQgdGhl
IHRpbWUgb2YgY2FsbGluZywgcmVnYXJkbGVzcyBvZiB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9u
cyBjdXJyZW50bHkgcnVubmluZy4gZXhwZWN0ZWQgMSBidXQgZ290IDIKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0
LWRhdGFiYXNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKaW5kZXggZTJkZmZhYzc0Nzg3YWM1MTg1NTg4NTAyYjZkMGNkNzFlZmVk
NzkwZS4uMDY1MDE5ZDEzMDEwOWM3MjRiNTNiOGE2MGRlYmM5ZjY2NDUzMGM0NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
Z2V0LWRhdGFiYXNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1GQUlMIEVuc3VyZSB0aGF0
IGRhdGFiYXNlcygpIHJldHVybnMgYSBwcm9taXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFz
ZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4
ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVudW1lcmF0ZSBvbmUgZGF0YWJh
c2UuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdp
bmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVk
KSIKLUZBSUwgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4gcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIu
ZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScs
ICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBNYWtlIHN1cmUgYW4g
ZW1wdHkgbGlzdCBpcyByZXR1cm5lZCBmb3IgdGhlIGNhc2Ugb2Ygbm8gZGF0YWJhc2VzLiBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERC
LmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlM
IEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBjaGFuZ2VzIHRoYXQgaGF2
ZW4ndCBjb21taXRlZC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBp
cyB1bmRlZmluZWQpIgorUEFTUyBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSByZXR1cm5zIGEgcHJv
bWlzZS4gCitQQVNTIEVudW1lcmF0ZSBvbmUgZGF0YWJhc2UuIAorUEFTUyBFbnVtZXJhdGUgbXVs
dGlwbGUgZGF0YWJhc2VzLiAKK1BBU1MgTWFrZSBzdXJlIGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJu
ZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gCitGQUlMIEVuc3VyZSB0aGF0IGRhdGFi
YXNlcygpIGRvZXNuJ3QgcGljayB1cCBjaGFuZ2VzIHRoYXQgaGF2ZW4ndCBjb21taXRlZC4gYXNz
ZXJ0X2VxdWFsczogVGhlIHJlc3VsdCBvZiBkYXRhYmFzZXMoKSBzaG91bGQgYmUgb25seSB0aG9z
ZSBkYXRhYmFzZXMgd2hpY2ggaGF2ZSBiZWVuIGNyZWF0ZWQgYXQgdGhlIHRpbWUgb2YgY2FsbGlu
ZywgcmVnYXJkbGVzcyBvZiB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9ucyBjdXJyZW50bHkgcnVu
bmluZy4gZXhwZWN0ZWQgMSBidXQgZ290IDIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRhYmFz
ZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LWRhdGFiYXNlcy1vcGFxdWUt
b3JpZ2luLWV4cGVjdGVkLnR4dAppbmRleCAwNjc5ZjM5MmViNWZhZWQwYmRjMTdlODFjYjliNWFj
YjIyMWI1MmQ0Li5kZmE3MTAyYjAwY2MzYWQ4YzAxZGJmZDdkMGJjOTU5MzE3NmVlNDIxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJmYWN0b3J5LWRhdGFiYXNlcy1vcGFxdWUtb3JpZ2luLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJmYWN0b3J5LWRhdGFiYXNlcy1vcGFxdWUtb3JpZ2luLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDQgQEAKIAotRkFJTCBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGluIG5vbi1zYW5kYm94ZWQgaWZy
YW1lIHNob3VsZCBub3QgcmVqZWN0IGFzc2VydF9lcXVhbHM6IElEQkZhY3RvcnkuZGF0YWJhc2Vz
KCkgc2hvdWxkIG5vdCByZWplY3QgZXhwZWN0ZWQgIm5vIGV4Y2VwdGlvbiIgYnV0IGdvdCAiaW5k
ZXhlZERCLmRhdGFiYXNlcyB1bmRlZmluZWQiCi1GQUlMIElEQkZhY3RvcnkuZGF0YWJhc2VzKCkg
aW4gc2FuZGJveGVkIGlmcmFtZSBzaG91bGQgcmVqZWN0IGFzc2VydF9lcXVhbHM6IFByb21pc2Ug
c2hvdWxkIGJlIHJlamVjdGVkIHdpdGggU2VjdXJpdHlFcnJvciBleHBlY3RlZCAiU2VjdXJpdHlF
cnJvciIgYnV0IGdvdCAiaW5kZXhlZERCLmRhdGFiYXNlcyB1bmRlZmluZWQiCitQQVNTIElEQkZh
Y3RvcnkuZGF0YWJhc2VzKCkgaW4gbm9uLXNhbmRib3hlZCBpZnJhbWUgc2hvdWxkIG5vdCByZWpl
Y3QgCitQQVNTIElEQkZhY3RvcnkuZGF0YWJhc2VzKCkgaW4gc2FuZGJveGVkIGlmcmFtZSBzaG91
bGQgcmVqZWN0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRpb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBhMzMw
OThlYjhmNjVmZmMxOWNjN2RhZmQ3OTk1ZTgyMDE0MTNkNjU0Li5jYjk4NWZjNWYyZTZmODRlOGU5
NTk1MzBlMzg3ZWRhOWFhMTVlY2Y3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRp
b24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnktb3JpZ2luLWlzb2xhdGlvbi1leHBlY3RlZC50
eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgVGVzdCB0byBtYWtlIHN1cmUgdGhhdCBvcmlnaW5z
IGhhdmUgc2VwYXJhdGUgbG9ja2luZyBzY2hlbWVzIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNl
cyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhl
ZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKK1BBU1MgVGVzdCB0byBtYWtlIHN1cmUgdGhh
dCBvcmlnaW5zIGhhdmUgc2VwYXJhdGUgbG9ja2luZyBzY2hlbWVzIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxo
YXJuZXNzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQKaW5kZXgg
MTEyOGRhNjJiOGNkNDQyYzcxMjAyNjdkMjE2N2MxNGU4NTdlYWU1My4uYjFlZWNkNzljMGQzMzk4
NTc2MTllMTRjZGQ5ZjMwNmE0NTlhMDMzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dApAQCAtNTIsNyArNTIsNyBAQCBQ
QVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplYwogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNj
b3BhYmxlcyBwcm9wZXJ0eSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBv
cGVuKERPTVN0cmluZywgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBsb25nKSAKIFBBU1MgSURCRmFj
dG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIAotRkFJ
TCBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNlcygpIGFzc2VydF9vd25f
cHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0YXRpYyBv
cGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImRhdGFiYXNlcyIgbWlzc2luZworUEFTUyBJREJG
YWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNlcygpIAogUEFTUyBJREJGYWN0b3J5
IGludGVyZmFjZTogb3BlcmF0aW9uIGNtcChhbnksIGFueSkgCiBQQVNTIElEQkZhY3RvcnkgbXVz
dCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBbb2JqZWN0IElEQkZhY3RvcnldIAogUEFTUyBTdHJp
bmdpZmljYXRpb24gb2YgW29iamVjdCBJREJGYWN0b3J5XSAKQEAgLTYwLDcgKzYwLDcgQEAgUEFT
UyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm9wZW4oRE9NU3QKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcg
b3BlbihET01TdHJpbmcsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9uZykgb24gW29iamVjdCBJ
REJGYWN0b3J5XSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAog
UEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVy
aXQgcHJvcGVydHkgImRlbGV0ZURhdGFiYXNlKERPTVN0cmluZykiIHdpdGggdGhlIHByb3BlciB0
eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogY2FsbGluZyBkZWxldGVEYXRhYmFzZShE
T01TdHJpbmcpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBt
dXN0IHRocm93IFR5cGVFcnJvciAKLUZBSUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3Qg
SURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkYXRhYmFzZXMoKSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZGF0YWJhc2VzIiBub3QgZm91
bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0
IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0
b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNtcChhbnksIGFueSkiIHdpdGggdGhlIHByb3Bl
ciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogY2FsbGluZyBjbXAoYW55LCBhbnkp
IG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93
IFR5cGVFcnJvciAKIFBBU1MgSURCRGF0YWJhc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndv
cmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4
IDkyOTI5ZTE2MThiNjZhMTA4OTgwMGJhZjgyNWYyNThmNTI1YTJhMTcuLmFmNTc1MDRkNDVkOTk1
ODAxMDgyOTBiYzhkYWE5NWZiNjU2NjM4M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
NTIsNyArNTIsNyBAQCBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplYwogUEFTUyBJREJGYWN0b3J5IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBvcGVuKERPTVN0cmluZywgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBsb25n
KSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkZWxldGVEYXRhYmFzZShE
T01TdHJpbmcpIAotRkFJTCBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNl
cygpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Np
bmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImRhdGFiYXNlcyIgbWlz
c2luZworUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNlcygpIAog
UEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGNtcChhbnksIGFueSkgCiBQQVNT
IElEQkZhY3RvcnkgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBbb2JqZWN0IElEQkZhY3Rv
cnldIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgW29iamVjdCBJREJGYWN0b3J5XSAKQEAgLTYw
LDcgKzYwLDcgQEAgUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5
XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9wZW4oRE9NU3QKIFBBU1MgSURCRmFjdG9yeSBpbnRl
cmZhY2U6IGNhbGxpbmcgb3BlbihET01TdHJpbmcsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9u
Zykgb24gW29iamVjdCBJREJGYWN0b3J5XSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhy
b3cgVHlwZUVycm9yIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0
b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRlbGV0ZURhdGFiYXNlKERPTVN0cmluZykiIHdp
dGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogY2FsbGluZyBk
ZWxldGVEYXRhYmFzZShET01TdHJpbmcpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28g
ZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLUZBSUwgSURCRmFjdG9yeSBpbnRl
cmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkYXRhYmFz
ZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZGF0
YWJhc2VzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIElEQkZhY3RvcnkgaW50
ZXJmYWNlOiBbb2JqZWN0IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJh
c2VzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTog
W29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNtcChhbnksIGFueSki
IHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogY2FsbGlu
ZyBjbXAoYW55LCBhbnkpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgSURCRGF0YWJhc2UgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402094</attachid>
            <date>2020-06-17 02:02:19 -0700</date>
            <delta_ts>2020-06-17 09:08:34 -0700</delta_ts>
            <desc>Patch + build fix</desc>
            <filename>bug-211043-20200617110217.patch</filename>
            <type>text/plain</type>
            <size>80441</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEwMzk1ODQzNzIyNWVl
MmJlYmZmOTRkNzc1NDU1NjlmMzZkMzNkYi4uMmE3NzQ3ZDk2MmVkNjI2NmE1NzI2ZWM3YzA4N2Fl
YWEyYzYwZWYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIwLTA2LTE3ICBEYXJy
eWwgUG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9y
dCBJREJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBmZXRjaGluZyB0aGUgbGlzdCBv
ZiBJREIgZGF0YWJhc2UgbmFtZXMgYW5kIHZlcnNpb25zCisgICAgICAgIGZyb20gdGhlIElEQlNl
cnZlciwgYW5kIGV4cG9zZSB0aGUgZnVuY3Rpb25hbGl0eSBhcworICAgICAgICBgSURCRmFjdG9y
eS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9JbmRleGVkREIvI2RvbS1pZGJmYWN0b3J5LWRhdGFiYXNlcworCisgICAgICAgICog
SGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01P
YmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFjdGl2ZURPTU9iamVjdDo6cGVyZm9ybUNh
bGxiYWNrT25PcmlnaW5UaHJlYWQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdDo6fklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojpjb21wbGV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6YWN0
aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uUmVxdWVzdDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6c3RvcCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3QuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpkYXRhYmFzZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SURCRmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uUHJveHk6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5Ojpmb3JnZXRBY3Rpdml0eUZvckN1cnJlbnRUaHJl
YWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6Omdl
dEFsbERhdGFiYXNlTmFtZXMpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6
IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25u
ZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2
ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFt
ZUFuZFZlcnNpb25Gcm9tRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lRnJvbUZpbGUpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb246
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudDo6cmVxdWVzdERhdGFiYXNlTmFtZXMpOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorCiAyMDIwLTA2LTE3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFJlYWRhYmxlU3RyZWFtIHJvYnVzdCBh
Z2FpbnN0IHVzZXIgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkMjI1MWRjYTg3ODNhNmQ3OTRmMWVkOGRhZjEw
N2ZjNDNhOTBiY2NlLi40MTM3ODY0MDZkZjJjZDA5NmJmZGUzOTQyNjNmMjhhNjFhYWIyMmQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA2LTE3ICBEYXJyeWwgUG9ndWUgIDxkYXJy
eWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9ydCBJREJGYWN0b3J5IGRh
dGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFBsdW1iaW5nIGZvciByZXR1cm5pbmcgYSBsaXN0IG9mIElEQiBkYXRhYmFzZXMgYW5k
IHZlcnNpb25zLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpnZXRB
bGxEYXRhYmFzZU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRl
eGVkREIvV2ViSURCU2VydmVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lv
bnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6
IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW46CisKIDIwMjAtMDYt
MTYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjI1NTAzNyk6IEJyb2tlbiBwb3NpdGlvbiB3aGlsZSBjb21wYXJpbmcgd2F0Y2gg
YmFuZHMgb24gd3d3LmFwcGxlLmNvbS9zaG9wL3N0dWRpby9hcHBsZS13YXRjaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZwppbmRleCAzMjlhYWE3ZDgxZDg4MWU2NTI2YWM4YjJlN2RkNDc5NzRmYjhlMzBiLi5h
NDI2ZTU3NzQ4MTIwM2M4MDlhMjBhMmJiNTA1NWEwMjRhMWM4ZjZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA2LTE3ICBEYXJyeWwgUG9ndWUgIDxkYXJyeWxA
ZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9ydCBJREJGYWN0b3J5IGRhdGFi
YXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFBsdW1iaW5nIGZvciByZXR1cm5pbmcgYSBsaXN0IG9mIElEQiBkYXRhYmFzZXMgYW5kIHZl
cnNpb25zLgorCisgICAgICAgICogU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwOgorICAg
ICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMp
OgorICAgICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5k
VmVyc2lvbnMpOgorICAgICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5h
bWVzKTogRGVsZXRlZC4KKyAgICAgICAgKEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0
YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2
ZXIuaDoKKwogMjAyMC0wNi0xNiAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjYzMDc5LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
aW5kZXggNTJkNDM4NjA0MWY3MDZjODM3Y2IyYmNiYzFhODhmYjc2YWY4MDk1OC4uOTYzZjBjMWJk
NWJjNTc4ZGExZGE1ODg3OTBmZTE4YmI4MDgxMzEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC00
MCw2ICs0MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9iamVjdC5oCiAgICAgTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKKyAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURC
R2V0QWxsUmVzdWx0LmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oCkBAIC03Miw2ICs3Myw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCQ3Vyc29ySW5mby5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvclJl
Y29yZC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5oCisg
ICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaAog
ICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5oCiAgICAgTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkdldEFsbFJlY29yZHNEYXRhLmgKICAgICBNb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCR2V0UmVjb3JkRGF0YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9iamVjdC5oCmluZGV4IGQyZjQwZDk5YjdiOWY1
MDMxZjUxNDQ1NGY3NTk3MDg3MGQ3YWIxMWQuLmRkYWQ3MzY2OTMxYzk2OWFmZmZjNGMwM2JkY2Rk
OGI1MDNhMDEwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkFjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkFjdGl2ZURPTU9iamVjdC5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgQVNTRVJUKCZvcmlnaW5UaHJlYWQoKSA9PSAmb2JqZWN0Lm9yaWdpblRocmVhZCgpKTsKIAog
ICAgICAgICBpZiAoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvYmplY3Qu
b3JpZ2luVGhyZWFkKCkpKSB7Ci0gICAgICAgICAgICAob2JqZWN0LiptZXRob2QpKGFyZ3VtZW50
cy4uLik7CisgICAgICAgICAgICAob2JqZWN0LiptZXRob2QpKHN0ZDo6Zm9yd2FyZDxBcmd1bWVu
dHM+KGFyZ3VtZW50cykuLi4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODBjOTFk
NGQ4MTQzMmMzMzZmNTFjMDI2M2U4YzE0MTdhMWY0NDUyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3QuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgRGFy
cnlsIFBvZ3VlIChkYXJyeWxAZHBvZ3VlLmNhKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCIKKworI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCQ29ubmVjdGlvblByb3h5
LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KTsKKworUmVm
PElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0PiBJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNs
aWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJveHksIEluZm9DYWxsYmFjayYm
IGNhbGxiYWNrKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb25SZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rpb25Qcm94eSwgV1RGTW92ZShjYWxsYmFj
aykpKTsKK30KKworSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OklEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb25SZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJveHksIEluZm9DYWxsYmFj
ayYmIGNhbGxiYWNrKQorICAgIDogSURCQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQorICAgICwg
bV9jb25uZWN0aW9uUHJveHkoY29ubmVjdGlvblByb3h5KQorICAgICwgbV9yZXNvdXJjZUlkZW50
aWZpZXIoY29ubmVjdGlvblByb3h5KQorICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNr
KSkKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShv
cmlnaW5UaHJlYWQoKSkpOworCisgICAgc3VzcGVuZElmTmVlZGVkKCk7Cit9CisKK3ZvaWQgSURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNvbXBsZXRlKE9wdGlvbmFsPFZlY3RvcjxJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPj4mJiBkYXRhYmFzZXMpCit7CisgICAgQVNTRVJUKGNh
bkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsKKwor
ICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKKyAgICAgICAgY2Fs
bGJhY2soV1RGTW92ZShkYXRhYmFzZXMpKTsKK30KKworY29uc3QgY2hhciogSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3Q6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAg
IEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVh
ZCgpKSk7CisgICAgcmV0dXJuICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCI7Cit9
CisKK2Jvb2wgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OnZpcnR1YWxIYXNQZW5k
aW5nQWN0aXZpdHkoKSBjb25zdAoreworICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNz
VGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSB8fCBUaHJlYWQ6Om1heUJlR0NUaHJlYWQo
KSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3Q6OnN0b3AoKQoreworICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhy
ZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjYzZjJkMzJkZGM4ZGQ0MTM4YTMyNDYx
MGMzZTgzMzU0ZGZmOWE0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgKQEAgLTAsMCAr
MSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBEYXJyeWwgUG9ndWUgKGRhcnJ5bEBk
cG9ndWUuY2EpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCisjaW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK25hbWVzcGFjZSBJREJDbGllbnQg
eworY2xhc3MgSURCQ29ubmVjdGlvblByb3h5OworfQorCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD4sIHB1YmxpYyBJREJB
Y3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3QpOworcHVibGljOgorICAgIHVzaW5nIEluZm9DYWxsYmFjayA9
IEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+
PiYmKT47CisKKyAgICBzdGF0aWMgUmVmPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIElEQkNsaWVudDo6SURCQ29ubmVjdGlv
blByb3h5JiwgSW5mb0NhbGxiYWNrJiYpOworCisgICAgfklEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b25SZXF1ZXN0KCk7CisKKyAgICBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlc291cmNl
SWRlbnRpZmllcigpIGNvbnN0OworCisgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+OjpyZWY7CisgICAgdXNpbmcgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+OjpkZXJlZjsKKwor
ICAgIHZvaWQgY29tcGxldGUoT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b24+PiYmKTsKKworcHJpdmF0ZToKKyAgICBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkm
LCBJbmZvQ2FsbGJhY2smJik7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QuCisgICAgYm9vbCB2
aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CisgICAgY29uc3QgY2hhciog
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc3RvcCgpIGZpbmFs
OworCisgICAgUmVmPElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Q
cm94eTsKKyAgICBJREJSZXNvdXJjZUlkZW50aWZpZXIgbV9yZXNvdXJjZUlkZW50aWZpZXI7Cisg
ICAgSW5mb0NhbGxiYWNrIG1fY2FsbGJhY2s7Cit9OworCitpbmxpbmUgY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6cmVzb3VyY2VJ
ZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNvdXJjZUlkZW50aWZpZXI7Cit9
CisKK2lubGluZSBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6fklEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb25SZXF1ZXN0KCkKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFj
Y2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKaW5kZXggYjEzYzcx
ZTg5MWNiYjIyOTQ3NTRmZDViNzAzMTJjZjZkMmZlYzgwMC4uYTQ4NzI3YjAwM2I0ODY3NzZlMDFm
NWI3NDgyNmQ1NjU1MzRiY2JjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5jcHAKQEAgLTM0LDEwICszNCwxMCBAQAogI2luY2x1ZGUgIklEQkRh
dGFiYXNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIklEQk9w
ZW5EQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJKU0lEQkZhY3RvcnkuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTEzMyw5ICsxMzMsNDEgQEAgRXhjZXB0aW9uT3I8c2hvcnQ+IElEQkZhY3Rvcnk6OmNt
cChKU0dsb2JhbE9iamVjdCYgZXhlY1N0YXRlLCBKU1ZhbHVlIGZpcnN0VmFsdWUKICAgICByZXR1
cm4gZmlyc3QtPmNvbXBhcmUoc2Vjb25kLmdldCgpKTsKIH0KIAotdm9pZCBJREJGYWN0b3J5Ojpn
ZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4s
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBGdW5jdGlvbjx2b2lkIChjb25z
dCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNhbGxiYWNrKQordm9pZCBJREJGYWN0b3J5OjpkYXRhYmFz
ZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCRGF0YWJhc2VzUmVzcG9uc2VQ
cm9taXNlJiYgcHJvbWlzZSkKIHsKLSAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+Z2V0QWxsRGF0YWJh
c2VOYW1lcyhtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIFdURk1vdmUoY2FsbGJhY2sp
KTsKKyAgICBMT0coSW5kZXhlZERCLCAiSURCRmFjdG9yeTo6ZGF0YWJhc2VzIik7CisKKyAgICBp
ZiAoc2hvdWxkVGhyb3dTZWN1cml0eUV4Y2VwdGlvbihjb250ZXh0KSkgeworICAgICAgICBwcm9t
aXNlLnJlamVjdChTZWN1cml0eUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IEFTU0VSVChjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCkpOworCisgICAgbV9jb25uZWN0aW9uUHJv
eHktPmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb250ZXh0LCBbcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJl
c3VsdCkgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgVW5rbm93bkVy
cm9yIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgcHJvbWlz
ZS5yZXNvbHZlKFdURjo6bWFwKCpyZXN1bHQsIFtdKGF1dG8mJiBpbmZvKSB7CisgICAgICAgICAg
ICByZXR1cm4gSURCRmFjdG9yeTo6RGF0YWJhc2VJbmZvIHsgV1RGTW92ZShpbmZvLm5hbWUpLCBp
bmZvLnZlcnNpb24gfTsKKyAgICAgICAgfSkpOworICAgIH0pOworfQorCit2b2lkIElEQkZhY3Rv
cnk6OmdldEFsbERhdGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
RnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNhbGxiYWNrKQoreworICAg
IG1fY29ubmVjdGlvblByb3h5LT5nZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29udGV4
dCwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiByZXN1bHQpIG11dGFibGUg
eworICAgICAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNhbGxiYWNrKFdURjo6bWFw
KCpyZXN1bHQsIFtdKGF1dG8mJiBpbmZvKSB7CisgICAgICAgICAgICByZXR1cm4gV1RGTW92ZShp
bmZvLm5hbWUpOworICAgICAgICB9KSk7CisgICAgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaApp
bmRleCAxMzQ1NjUxMTlmMjc0YTgyYzUzODE2NDkyMzZmMDU1ZDMyNTlhYTczLi45Mjc3NWRhMjU3
YzIyOTg3ZTMzMTEwMTA0MmYzNWZhYWEzZjk4NDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUg
IkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBAIC01NCwxMiArNTUs
MjEgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8SURCRmFjdG9yeT4gY3JlYXRlKElEQkNsaWVu
dDo6SURCQ29ubmVjdGlvblByb3h5Jik7CiAgICAgfklEQkZhY3RvcnkoKTsKIAorICAgIHN0cnVj
dCBEYXRhYmFzZUluZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgdWludDY0X3Qg
dmVyc2lvbjsKKyAgICB9OworCiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQk9wZW5EQlJlcXVlc3Q+
PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5hbWUsIE9wdGlv
bmFsPHVpbnQ2NF90PiB2ZXJzaW9uKTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCT3BlbkRCUmVx
dWVzdD4+IGRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJp
bmcmIG5hbWUpOwogCiAgICAgRXhjZXB0aW9uT3I8c2hvcnQ+IGNtcChKU0M6OkpTR2xvYmFsT2Jq
ZWN0JiwgSlNDOjpKU1ZhbHVlIGZpcnN0LCBKU0M6OkpTVmFsdWUgc2Vjb25kKTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdp
biYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwg
V1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmKTsKKyAgICB1c2lu
ZyBJREJEYXRhYmFzZXNSZXNwb25zZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMU2Vx
dWVuY2U8SURMRGljdGlvbmFyeTxJREJGYWN0b3J5OjpEYXRhYmFzZUluZm8+Pj47CisKKyAgICB2
b2lkIGRhdGFiYXNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSURCRGF0YWJhc2VzUmVzcG9u
c2VQcm9taXNlJiYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRBbGxEYXRhYmFzZU5h
bWVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxT
dHJpbmc+Jik+JiYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IElEQkZhY3RvcnkoSURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uUHJveHkmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeS5pZGwKaW5kZXggZjk4ZjNmODM5YmM0YTM4M2RkNDM5OTI5OWI3
OTI2YjA3Njg3YTBiMS4uOTVlYTY2MTJkZTdlNThlMjU2MDE1MDY5Y2M5M2Y2OGQwMjNhNzZmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwK
QEAgLTI5LDUgKzI5LDE0IEBACiBdIGludGVyZmFjZSBJREJGYWN0b3J5IHsKICAgICBbQ2FsbFdp
dGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIElEQk9wZW5EQlJl
cXVlc3Qgb3BlbihET01TdHJpbmcgbmFtZSwgb3B0aW9uYWwgW0VuZm9yY2VSYW5nZV0gdW5zaWdu
ZWQgbG9uZyBsb25nIHZlcnNpb24pOwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCT3BlbkRCUmVxdWVzdCBkZWxldGVEYXRhYmFzZShE
T01TdHJpbmcgbmFtZSk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFBy
b21pc2U8c2VxdWVuY2U8SURCRGF0YWJhc2VJbmZvPj4gZGF0YWJhc2VzKCk7CiAgICAgW0NhbGxX
aXRoPUdsb2JhbE9iamVjdCwgTWF5VGhyb3dFeGNlcHRpb25dIHNob3J0IGNtcChhbnkgZmlyc3Qs
IGFueSBzZWNvbmQpOwogfTsKKworWworICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0Us
CisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgSURCRGF0YWJhc2VJbmZv
IHsKKyAgICBET01TdHJpbmcgbmFtZTsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbjsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCmluZGV4IDk1NmRmYWU2NDUxNzQ5OGRlMzhl
NTQ4MzFiNTkxYjRmNjM1NWM5NTkuLjM5NzEyODVjODBkNTQ1M2ZhMWU1ZGEwMTJiYzJjMWMwODI1
MzJjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDb25uZWN0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAK
ICNpbmNsdWRlICJJREJDdXJzb3JJbmZvLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKKyNp
bmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCisjaW5jbHVkZSAiSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJHZXRSZWNvcmREYXRhLmgi
CiAjaW5jbHVkZSAiSURCSXRlcmF0ZUN1cnNvckRhdGEuaCIKICNpbmNsdWRlICJJREJLZXlSYW5n
ZURhdGEuaCIKQEAgLTQ2OSw2ICs0NzEsMTUgQEAgdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmNv
bm5lY3Rpb25Ub1NlcnZlckxvc3QoY29uc3QgSURCRXJyb3ImIGVycm9yKQogICAgICAgICBhdXRv
IHJlc3VsdCA9IElEQlJlc3VsdERhdGE6OmVycm9yKHJlcXVlc3RJZGVudGlmaWVyLCBlcnJvcik7
CiAgICAgICAgIHJlcXVlc3QtPnBlcmZvcm1DYWxsYmFja09uT3JpZ2luVGhyZWFkKCpyZXF1ZXN0
LCAmSURCT3BlbkRCUmVxdWVzdDo6cmVxdWVzdENvbXBsZXRlZCwgcmVzdWx0KTsKICAgICB9CisK
KyAgICBWZWN0b3I8SURCUmVzb3VyY2VJZGVudGlmaWVyPiBpbmZvQ2FsbGJhY2tJZGVudGlmaWVy
czsKKyAgICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBsb2NrKG1fZGF0YWJhc2VJbmZvTWFwTG9j
ayk7CisgICAgICAgIGluZm9DYWxsYmFja0lkZW50aWZpZXJzID0gY29weVRvVmVjdG9yKG1fZGF0
YWJhc2VJbmZvQ2FsbGJhY2tzLmtleXMoKSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiByZXF1
ZXN0SWRlbnRpZmllciA6IGluZm9DYWxsYmFja0lkZW50aWZpZXJzKQorICAgICAgICBkaWRHZXRB
bGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIHsgfSk7CiB9CiAK
IHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpzY2hlZHVsZU1haW5UaHJlYWRUYXNrcygpCkBAIC00
OTYsMTIgKzUwNywzNiBAQCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6aGFuZGxlTWFpblRocmVh
ZFRhc2tzKCkKICAgICAgICAgdGFzay0+cGVyZm9ybVRhc2soKTsKIH0KIAotdm9pZCBJREJDb25u
ZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1h
aW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIEZ1bmN0
aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYgY2FsbGJhY2spCit2b2lkIElEQkNv
bm5lY3Rpb25Qcm94eTo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8VmVjdG9yPElEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBDbGllbnRPcmln
aW4gb3JpZ2luIHsgY29udGV4dC5zZWN1cml0eU9yaWdpbigpLT5kYXRhKCksIGNvbnRleHQudG9w
T3JpZ2luKCkuZGF0YSgpIH07CisKKyAgICBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dCogcmVxdWVzdDsKKyAgICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFz
ZUluZm9NYXBMb2NrKTsKKyAgICAgICAgYXV0byBuZXdSZXF1ZXN0ID0gSURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvblJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCAqdGhpcywgV1RGTW92ZShjYWxsYmFj
aykpOworICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2VJbmZvQ2FsbGJhY2tzLmNvbnRhaW5zKG5l
d1JlcXVlc3QtPnJlc291cmNlSWRlbnRpZmllcigpKSk7CisgICAgICAgIHJlcXVlc3QgPSBuZXdS
ZXF1ZXN0LnB0cigpOworICAgICAgICBtX2RhdGFiYXNlSW5mb0NhbGxiYWNrcy5hZGQobmV3UmVx
dWVzdC0+cmVzb3VyY2VJZGVudGlmaWVyKCksIFdURk1vdmUobmV3UmVxdWVzdCkpOworICAgIH0K
KworICAgIGNhbGxDb25uZWN0aW9uT25NYWluVGhyZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucywgcmVxdWVzdC0+cmVzb3VyY2VJZGVudGlm
aWVyKCksIG9yaWdpbik7Cit9CisKK3ZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpkaWRHZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1
ZXN0SWRlbnRpZmllciwgT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+
PiYmIGRhdGFiYXNlcykKIHsKLSAgICAvLyBUaGlzIG1ldGhvZCBpcyBvbmx5IG1lYW50IHRvIGJl
IGNhbGxlZCBieSB0aGUgd2ViIGluc3BlY3RvciBvbiB0aGUgbWFpbiB0aHJlYWQuCi0gICAgUkVM
RUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIFJlZlB0cjxJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdD4gcmVxdWVzdDsKKyAgICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBs
b2NrZXIobV9kYXRhYmFzZUluZm9NYXBMb2NrKTsKKyAgICAgICAgYXV0byB0YWtlblJlcXVlc3Qg
PSBtX2RhdGFiYXNlSW5mb0NhbGxiYWNrcy50YWtlKHJlcXVlc3RJZGVudGlmaWVyKTsKKworICAg
ICAgICBpZiAoIXRha2VuUmVxdWVzdCkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgIG1fY29u
bmVjdGlvblRvU2VydmVyLmdldEFsbERhdGFiYXNlTmFtZXMobWFpbkZyYW1lT3JpZ2luLCBvcGVu
aW5nT3JpZ2luLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIHJlcXVlc3QgPSBXVEZNb3Zl
KCp0YWtlblJlcXVlc3QpOworICAgIH0KKworICAgIHJlcXVlc3QtPnBlcmZvcm1DYWxsYmFja09u
T3JpZ2luVGhyZWFkKCpyZXF1ZXN0LCAmSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6
OmNvbXBsZXRlLCBXVEZNb3ZlKGRhdGFiYXNlcykpOwogfQogCiB2b2lkIElEQkNvbm5lY3Rpb25Q
cm94eTo6cmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oSURCRGF0YWJhc2UmIGRhdGFiYXNlKQpA
QCAtNTk2LDYgKzYzMSwxMCBAQCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Zm9yZ2V0QWN0aXZp
dHlGb3JDdXJyZW50VGhyZWFkKCkKICAgICAgICAgTG9ja2VyPExvY2s+IGxvY2sobV90cmFuc2Fj
dGlvbk9wZXJhdGlvbkxvY2spOwogICAgICAgICByZW1vdmVJdGVtc01hdGNoaW5nQ3VycmVudFRo
cmVhZChtX2FjdGl2ZU9wZXJhdGlvbnMpOwogICAgIH0KKyAgICB7CisgICAgICAgIExvY2tlcjxM
b2NrPiBsb2NrKG1fZGF0YWJhc2VJbmZvTWFwTG9jayk7CisgICAgICAgIHJlbW92ZUl0ZW1zTWF0
Y2hpbmdDdXJyZW50VGhyZWFkKG1fZGF0YWJhc2VJbmZvQ2FsbGJhY2tzKTsKKyAgICB9CiB9CiAK
IHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpzZXRDb250ZXh0U3VzcGVuZGVkKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGN1cnJlbnRDb250ZXh0LCBib29sIGlzQ29udGV4dFN1c3BlbmRlZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uUHJveHkuaAppbmRleCA0NjQyZjA5M2U3MzgyOWQ2NmFmYjYxMDk0OTQ2YWUx
OTcwMTljZjdlLi5lOGM0MDBhNmFkZjhkYjI0MzBkMGExNDMyMzlmYjBhYjI4M2VmYjg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Qcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCIKKyNpbmNs
dWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQlJl
c291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlRyYW5zYWN0aW9uT3BlcmF0aW9uLmgiCiAj
aW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkUXVldWUuaD4KQEAgLTU3LDcgKzU4LDcgQEAgbmFtZXNw
YWNlIElEQkNsaWVudCB7CiAKIGNsYXNzIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjsKIAotY2xhc3Mg
SURCQ29ubmVjdGlvblByb3h5IHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIElEQkNvbm5lY3Rpb25Q
cm94eSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSURCQ29ubmVjdGlvblByb3h5KTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTExNSw3ICsxMTYsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZWYoKTsKICAgICB2b2lkIGRlcmVmKCk7CiAKLSAgICB2b2lkIGdl
dEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZCAo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJik7CisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZ1bmN0aW9uPHZvaWQoT3B0aW9u
YWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmKT4mJik7CisgICAgdm9pZCBk
aWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiwgT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmKTsKIAog
ICAgIHZvaWQgcmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oSURCRGF0YWJhc2UmKTsKICAgICB2
b2lkIHVucmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oSURCRGF0YWJhc2UmKTsKQEAgLTE2OSw2
ICsxNzEsOSBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBS
ZWZQdHI8VHJhbnNhY3Rpb25PcGVyYXRpb24+PiBtX2FjdGl2ZU9wZXJhdGlvbnM7CiAgICAgTG9j
ayBtX3RyYW5zYWN0aW9uT3BlcmF0aW9uTG9jazsKIAorICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJ
ZGVudGlmaWVyLCBSZWY8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+PiBtX2RhdGFi
YXNlSW5mb0NhbGxiYWNrczsKKyAgICBMb2NrIG1fZGF0YWJhc2VJbmZvTWFwTG9jazsKKwogICAg
IENyb3NzVGhyZWFkUXVldWU8Q3Jvc3NUaHJlYWRUYXNrPiBtX21haW5UaHJlYWRRdWV1ZTsKICAg
ICBMb2NrIG1fbWFpblRocmVhZFRhc2tMb2NrOwogICAgIFJlZlB0cjxJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI+IG1fbWFpblRocmVhZFByb3RlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5jcHAKaW5kZXggNjE5NGE5ODFhMDFmZmFmNGE4ODY3MDZlYWRlYWFjYTgxMTNmNDZiMC4uMmNk
MmFiZjJmMTkwODA0NTNiMGYxNTMxMmU5NjNiN2NiMjFhOTVkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIklEQkNvbm5l
Y3Rpb25Qcm94eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSAiSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgogI2luY2x1ZGUgIklEQkdldFJlY29yZERhdGEuaCIKICNp
bmNsdWRlICJJREJLZXlSYW5nZURhdGEuaCIKICNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0Lmgi
CkBAIC00OTQsMjcgKzQ5NSwyNyBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRP
cGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3RpbwogICAgICAgICBt
X2RlbGVnYXRlLT5hYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKGRhdGFiYXNlQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgSURCQ29ubmVjdGlv
blRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWlu
RnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBGdW5jdGlv
bjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNhbGxiYWNrKQordm9pZCBJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGllbnRPcmlnaW4m
IG9yaWdpbikKIHsKLSAgICBzdGF0aWMgdWludDY0X3QgY2FsbGJhY2tJRCA9IDA7Ci0KLSAgICBt
X2dldEFsbERhdGFiYXNlTmFtZXNDYWxsYmFja3MuYWRkKCsrY2FsbGJhY2tJRCwgV1RGTW92ZShj
YWxsYmFjaykpOworICAgIExPRyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Omdl
dEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyIpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAKLSAgICBpZiAobV9zZXJ2ZXJDb25uZWN0aW9uSXNWYWxpZCkKLSAgICAgICAgbV9kZWxl
Z2F0ZS0+Z2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVPcmlnaW4uZGF0YSgpLCBvcGVuaW5n
T3JpZ2luLmRhdGEoKSwgY2FsbGJhY2tJRCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2tJ
RCA9IGNhbGxiYWNrSURdIHsKLSAgICAgICAgICAgIGRpZEdldEFsbERhdGFiYXNlTmFtZXMoY2Fs
bGJhY2tJRCwgeyB9KTsKLSAgICAgICAgfSk7CisgICAgaWYgKG1fc2VydmVyQ29ubmVjdGlvbklz
VmFsaWQpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNp
b25zKHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pOworICAgICAgICByZXR1cm47CiAgICAgfQor
CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpLCByZXF1ZXN0SWRlbnRpZmllcl0geworICAgICAgICBkaWRHZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIHsgfSk7CisgICAgfSk7CiB9CiAKLXZvaWQg
SURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNh
bGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKQordm9pZCBJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8SURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvbj4mJiBkYXRhYmFzZXMpCiB7Ci0gICAgYXV0byBjYWxsYmFjayA9
IG1fZ2V0QWxsRGF0YWJhc2VOYW1lc0NhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOwotICAgIEFT
U0VSVChjYWxsYmFjayk7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zIik7CisgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIAotICAgIGNhbGxiYWNrKGRhdGFiYXNlTmFtZXMpOworICAgIG1fcHJveHkt
PmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgV1RG
TW92ZShkYXRhYmFzZXMpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSURCQ2xpZW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggNWVkMjRmZTU2OGYxYWMyNTk2MGE5NmM0MDM5NWZj
YTUwYjg0NGFjNS4uMjRjNWIzMzgyNjU5MzZmZWY4MzBjZDhiZWJhODVhMWIwNGQzMmM2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtNDUsNiArNDUsOCBAQCBjbGFzcyBJREJS
ZXN1bHREYXRhOwogY2xhc3MgSURCVmFsdWU7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIAorc3Ry
dWN0IENsaWVudE9yaWdpbjsKK3N0cnVjdCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOwogc3Ry
dWN0IElEQkdldEFsbFJlY29yZHNEYXRhOwogc3RydWN0IElEQkdldFJlY29yZERhdGE7CiBzdHJ1
Y3QgSURCSXRlcmF0ZUN1cnNvckRhdGE7CkBAIC0xMzYsMjAgKzEzOCwxOCBAQCBwdWJsaWM6CiAg
ICAgLy8gdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiwgYnV0IHRoZSBwYWdlIGlzIGFscmVhZHkg
dG9ybiBkb3duLgogICAgIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAKLSAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMo
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIG9wZW5pbmdPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKT4mJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVz
KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVz
KTsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImLCBjb25zdCBDbGllbnRPcmlnaW4mKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImLCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mJik7CiAKIHBy
aXZhdGU6CiAgICAgSURCQ29ubmVjdGlvblRvU2VydmVyKElEQkNvbm5lY3Rpb25Ub1NlcnZlckRl
bGVnYXRlJik7CiAKICAgICB0eXBlZGVmIHZvaWQgKElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6KlJl
c3VsdEZ1bmN0aW9uKShjb25zdCBJREJSZXN1bHREYXRhJik7CiAgICAgdm9pZCBjYWxsUmVzdWx0
RnVuY3Rpb25XaXRoRXJyb3JMYXRlcihSZXN1bHRGdW5jdGlvbiwgY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7Ci0gICAgCisKICAgICBXZWFrUHRyPElEQkNv
bm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlPiBtX2RlbGVnYXRlOwogICAgIGJvb2wgbV9zZXJ2ZXJD
b25uZWN0aW9uSXNWYWxpZCB7IHRydWUgfTsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6
RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4+IG1fZ2V0QWxsRGF0YWJhc2VO
YW1lc0NhbGxiYWNrczsKLQogICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJDb25uZWN0aW9uUHJveHk+
IG1fcHJveHk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0
ZS5oCmluZGV4IDBlZjdmYjU0YTE2MTgwN2VkNzU3MDIzODM0OTQ4YmZhNzcxY2U2MTYuLjY5NmU0
ZGViNTUzYThlZDIyNWZhMjIwMDljNmRiNDA4NWQ5OGY4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxl
Z2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCkBAIC00MSw2ICs0MSw3IEBAIGNsYXNzIElEQlJl
cXVlc3REYXRhOwogY2xhc3MgSURCVHJhbnNhY3Rpb25JbmZvOwogY2xhc3MgSURCVmFsdWU7CiAK
K3N0cnVjdCBDbGllbnRPcmlnaW47CiBzdHJ1Y3QgSURCR2V0QWxsUmVjb3Jkc0RhdGE7CiBzdHJ1
Y3QgSURCR2V0UmVjb3JkRGF0YTsKIHN0cnVjdCBJREJJdGVyYXRlQ3Vyc29yRGF0YTsKQEAgLTg3
LDcgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5n
ZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IEluZGV4ZWREQjo6Q29u
bmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb3Bl
bkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYpID0gMDsKIAotICAgIHZp
cnR1YWwgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
bWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4s
IHVpbnQ2NF90IGNhbGxiYWNrSUQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IENs
aWVudE9yaWdpbiYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQkNsaWVudApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rp
b25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAppbmRleCA2NDZmOWIyNTk2MWYzOTI2YzIxZWQwMTQ3
MmY1MDc3MDBmZmIxZTg4Li5lNWEyNzgzMjRjNmM0NzQwOTY1MDhjMDQwNjhjN2M1YjBiZGQ3YzE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
Q29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApAQCAtMjgsNiArMjgsNyBAQAog
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uLmgiCiAjaW5jbHVkZSAiVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4MSwxMCArMTgyLDEwIEBAIHZvaWQgSURCQ29u
bmVjdGlvblRvQ2xpZW50Ojpub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpCiAgICAgICAgIG1fZGVsZWdhdGUtPm5vdGlmeU9wZW5EQlJlcXVlc3RCbG9j
a2VkKHJlcXVlc3RJZGVudGlmaWVyLCBvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTsKIH0KIAotdm9p
ZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3Qg
Y2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpCit2b2lkIElE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYmIGRhdGFiYXNlcykKIHsKICAgICBpZiAobV9kZWxlZ2F0
ZSkKLSAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lE
LCBkYXRhYmFzZU5hbWVzKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkR2V0QWxsRGF0YWJhc2VO
YW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFiYXNlcykpOwog
fQogCiB2b2lkIElEQkNvbm5lY3Rpb25Ub0NsaWVudDo6cmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rp
b24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiBjb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5oCmluZGV4IGNlNWM4MmRmZTYwZTFhMWMxZTJlZDM1MmFjMjM0ZjQwYTg1
MTEzOTcuLmRjZDk4OTIwODdlZmM4ZDA0NGRhZWQ4NTVkOTgyNzAyNjZiNjk0NzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9u
VG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTM5LDYgKzM5LDggQEAgY2xhc3MgSURCRXJyb3I7
CiBjbGFzcyBJREJSZXNvdXJjZUlkZW50aWZpZXI7CiBjbGFzcyBJREJSZXN1bHREYXRhOwogCitz
dHJ1Y3QgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjsKKwogbmFtZXNwYWNlIElEQlNlcnZlciB7
CiAKIGNsYXNzIFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjsKQEAgLTc0LDcgKzc2LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9u
LCB1aW50NjRfdCBuZXdWZXJzaW9uKTsKIAotICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1l
cyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1l
cyk7CisgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiwgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiYp
OwogCiAgICAgdm9pZCByZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFz
ZUNvbm5lY3Rpb24mKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9D
bGllbnREZWxlZ2F0ZS5oCmluZGV4IDVlYTVhMmU3ZDJkMDRlOTc2ZjFhY2MyOTE1ZjBiNTMxMjJj
ZGIzMTEuLjY4YWNmNzY0ZGZhNjg2YTE0NTg2YTFiMjIzYWMwODY1YTYxMmIwMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9u
VG9DbGllbnREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCkBAIC0zNiw2ICszNiw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElEQkVycm9yOwogY2xhc3MgSURCUmVzdWx0RGF0
YTsKIAorc3RydWN0IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb247CisKIG5hbWVzcGFjZSBJREJT
ZXJ2ZXIgewogCiBjbGFzcyBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb247CkBAIC03MCw3ICs3
Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2VGcm9tU2VydmVyKFVuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYsIGNvbnN0IElEQkVycm9yJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBu
ZXdWZXJzaW9uKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1l
cyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1l
cykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lv
bnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24+JikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuY3BwCmluZGV4IGRlOTE2YzY2MzU2MDZiYTlkMzVjMzMxZTc4YmExOTIwNGZhNGMyYTUuLjFh
OTdjNzE0ODE4ZGMxOWEzNGUxOTFlY2Q4ZWE4NTQ5MDA5ODk0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC01
MDcsMzMgKzUwNywzNCBAQCB2b2lkIElEQlNlcnZlcjo6b3BlbkRCUmVxdWVzdENhbmNlbGxlZChj
b25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCiAgICAgICAgIG1fdW5pcXVlSURCRGF0
YWJhc2VNYXAucmVtb3ZlKHVuaXF1ZUlEQkRhdGFiYXNlLT5pZGVudGlmaWVyKCkpOwogfQogCi12
b2lkIElEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhJREJDb25uZWN0aW9uSWRlbnRpZmll
ciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBt
YWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwg
dWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNv
bnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OwogICAgIEFTU0VSVChtX2xvY2suaXNIZWxkKCkpOwogCiAgICAgYXV0byBkYXRhYmFzZURpcmVj
dG9yeVBhdGggPSB0aGlzLT5kYXRhYmFzZURpcmVjdG9yeVBhdGhJc29sYXRlZENvcHkoKTsKLSAg
ICBTdHJpbmcgb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURp
cmVjdG9yeVJlbGF0aXZlVG9Sb290KG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgZGF0
YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiKTsKKyAgICBTdHJpbmcgb2xkRGlyZWN0b3J5ID0gSURC
RGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdp
bi50b3BPcmlnaW4sIG9yaWdpbi5jbGllbnRPcmlnaW4sIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwg
InYwIik7CiAgICAgVmVjdG9yPFN0cmluZz4gZmlsZXMgPSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0
b3J5KG9sZERpcmVjdG9yeSwgIioiX3MpOwotICAgIFZlY3RvcjxTdHJpbmc+IGRhdGFiYXNlczsK
KyAgICBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4gZGF0YWJhc2VzOwogICAgIGZv
ciAoYXV0byYgZmlsZSA6IGZpbGVzKSB7Ci0gICAgICAgIFN0cmluZyBlbmNvZGVkTmFtZSA9IEZp
bGVTeXN0ZW06Omxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goZmlsZSk7
Ci0gICAgICAgIGRhdGFiYXNlcy5hcHBlbmQoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFz
ZU5hbWVGcm9tRW5jb2RlZEZpbGVuYW1lKGVuY29kZWROYW1lKSk7CisgICAgICAgIGF1dG8gZGF0
YWJhc2VUdXBsZSA9IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lv
bkZyb21GaWxlKFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVj
dG9yeShmaWxlKSk7CisgICAgICAgIGlmIChkYXRhYmFzZVR1cGxlKQorICAgICAgICAgICAgZGF0
YWJhc2VzLmFwcGVuZChXVEZNb3ZlKCpkYXRhYmFzZVR1cGxlKSk7CiAgICAgfQogCi0gICAgU3Ry
aW5nIGRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlS
ZWxhdGl2ZVRvUm9vdChtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCwgInYxIik7CisgICAgU3RyaW5nIGRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRl
bnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4udG9wT3JpZ2lu
LCBvcmlnaW4uY2xpZW50T3JpZ2luLCBkYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpOwogICAg
IGZpbGVzID0gRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShkaXJlY3RvcnksICIqIl9zKTsKICAg
ICBmb3IgKGF1dG8mIGZpbGUgOiBmaWxlcykgewotICAgICAgICBhdXRvIGRhdGFiYXNlTmFtZSA9
IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lRnJvbUZpbGUoU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5KGZpbGUpKTsKLSAgICAgICAg
aWYgKCFkYXRhYmFzZU5hbWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgZGF0YWJhc2VzLmFwcGVu
ZChkYXRhYmFzZU5hbWUpOworICAgICAgICBhdXRvIGRhdGFiYXNlVHVwbGUgPSBTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoZmlsZSkpOworICAgICAgICBp
ZiAoZGF0YWJhc2VUdXBsZSkKKyAgICAgICAgICAgIGRhdGFiYXNlcy5hcHBlbmQoV1RGTW92ZSgq
ZGF0YWJhc2VUdXBsZSkpOwogICAgIH0KIAogICAgIGF1dG8gY29ubmVjdGlvbiA9IG1fY29ubmVj
dGlvbk1hcC5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIGlmICghY29ubmVj
dGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29ubmVjdGlvbi0+ZGlkR2V0QWxsRGF0YWJh
c2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFzZXMpOworICAgIGNvbm5lY3Rpb24tPmRpZEdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShkYXRh
YmFzZXMpKTsKIH0KIAogdm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9k
aWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IDQwOTg3NDlm
NTc4N2IwNzljN2ExZWVhODQxOGU2MTI5OGU3N2RjYmQuLjc3YjdmNTg0OTI4OGZlMDFkZWI0ZjJi
ODQ2ZWEzNWFjZjZkNzE2YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKQEAgLTg5LDcgKzg5LDggQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyLCBJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9m
U2VydmVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQo
Y29uc3QgSURCUmVxdWVzdERhdGEmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxs
RGF0YWJhc2VOYW1lcyhJREJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMo
SURCQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNv
bnN0IENsaWVudE9yaWdpbiYpOworCiAKICAgICB2b2lkIHJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0
aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOwogICAgIHZvaWQgdW5yZWdpc3RlckRh
dGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNr
aW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggZWFhZDdlOTBiZWRmNmVkZGI0ZTllMWQ1ZmI3
MDA2OGZhMTRmZTM3OC4uNGY5N2RlNzIxM2QwNjgxMTQ1MTY5ZDMwYWM0NzFjMTg3NDFmNTNkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0
ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTkxMiwxOSArOTEyLDMxIEBA
IFN0cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGgoKSBjb25zdAog
ICAgIHJldHVybiBmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5KG1fZGF0YWJhc2VEaXJlY3Rv
cnkpOwogfQogCi1TdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVGcm9t
RmlsZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCkKK09wdGlvbmFsPElEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb24+IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lv
bkZyb21GaWxlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQogewogICAgIFNRTGl0ZURhdGFi
YXNlIGRhdGFiYXNlOwogICAgIGlmICghZGF0YWJhc2Uub3BlbihkYXRhYmFzZVBhdGgpKSB7CiAg
ICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIG9wZW4gU1FMaXRlIGRhdGFiYXNlIGF0IHBhdGgg
JyVzJyB3aGVuIGdldHRpbmcgZGF0YWJhc2UgbmFtZSIsIGRhdGFiYXNlUGF0aC51dGY4KCkuZGF0
YSgpKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
ICAgICB9CiAgICAgaWYgKCFkYXRhYmFzZS50YWJsZUV4aXN0cygiSURCRGF0YWJhc2VJbmZvIl9z
KSkgewogICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBmaW5kIElEQkRhdGFiYXNlSW5mbyB0
YWJsZSBhbmQgZ2V0IGRhdGFiYXNlIG5hbWUoJWkpIC0gJXMiLCBkYXRhYmFzZS5sYXN0RXJyb3Io
KSwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwotICAgICAgICByZXR1cm4geyB9OworICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KLSAgICBTUUxpdGVTdGF0ZW1lbnQgc3FsKGRh
dGFiYXNlLCAiU0VMRUNUIHZhbHVlIEZST00gSURCRGF0YWJhc2VJbmZvIFdIRVJFIGtleSA9ICdE
YXRhYmFzZU5hbWUnOyIpOwotICAgIHJldHVybiBzcWwuZ2V0Q29sdW1uVGV4dCgwKTsKKworICAg
IFNRTGl0ZVN0YXRlbWVudCBuYW1lc3FsKGRhdGFiYXNlLCAiU0VMRUNUIHZhbHVlIEZST00gSURC
RGF0YWJhc2VJbmZvIFdIRVJFIGtleSA9ICdEYXRhYmFzZU5hbWUnOyIpOworICAgIGF1dG8gZGF0
YWJhc2VOYW1lID0gbmFtZXNxbC5nZXRDb2x1bW5UZXh0KDApOworCisgICAgU1FMaXRlU3RhdGVt
ZW50IHZlcnNxbChkYXRhYmFzZSwgIlNFTEVDVCB2YWx1ZSBGUk9NIElEQkRhdGFiYXNlSW5mbyBX
SEVSRSBrZXkgPSAnRGF0YWJhc2VWZXJzaW9uJzsiX3MpOworICAgIFN0cmluZyBzdHJpbmdWZXJz
aW9uID0gdmVyc3FsLmdldENvbHVtblRleHQoMCk7CisgICAgYm9vbCBvazsKKyAgICB1aW50NjRf
dCBkYXRhYmFzZVZlcnNpb24gPSBzdHJpbmdWZXJzaW9uLnRvVUludDY0U3RyaWN0KCZvayk7Cisg
ICAgaWYgKCFvaykgeworICAgICAgICBMT0dfRVJST1IoIkRhdGFiYXNlIHZlcnNpb24gb24gZGlz
ayAoJyVzJykgZG9lcyBub3QgY2xlYW5seSBjb252ZXJ0IHRvIGFuIHVuc2lnbmVkIDY0LWJpdCBp
bnRlZ2VyIHZlcnNpb24iLCBzdHJpbmdWZXJzaW9uLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiBJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uIHsgZGF0YWJhc2VOYW1lLCBkYXRhYmFzZVZlcnNpb24gfTsKIH0KIAogU3RyaW5n
IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlRGlyZWN0b3J5V2l0aFVwZ3JhZGUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IGJiNWViYjU1OTBlNzQ3MzA3OTI3
NDlmZWUyY2YxYWFjNWM2OTQzOGYuLjczZjhmY2ZiMzk2MDliYzU3YmNlYzU5YTNmYjVlYzJjOTlm
MmQ3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJJREJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUluZm8uaCIKKyNpbmNsdWRlICJJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uLmgiCiAjaW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiU1FMaXRlSURCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJTUUxpdGVTdGF0
ZW1lbnRBdXRvUmVzZXRTY29wZS5oIgpAQCAtMTAxLDcgKzEwMiw3IEBAIHB1YmxpYzoKIAogICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJhc2VEaXJl
Y3Rvcnk7IH07CiAgICAgc3RhdGljIFN0cmluZyBmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5
KGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyBTdHJpbmcgZGF0YWJhc2VOYW1lRnJvbUZpbGUo
Y29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIE9wdGlvbmFsPElEQkRhdGFiYXNlTmFtZUFuZFZl
cnNpb24+IGRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShjb25zdCBTdHJpbmcmKTsKIAog
ICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklE
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3
ZDhmNjlkN2RjMmQ1NjA5M2JlMGQ5ZDVjOWQ2ZGNhODA4NGZmMTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvbi5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
RGFycnlsIFBvZ3VlIChkYXJyeWxAZHBvZ3VlLmNhKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IElEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb24geworICAgIFN0cmluZyBuYW1lOworICAgIHVpbnQ2NF90IHZlcnNpb24geyAw
IH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPElEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb24+IGRlY29kZShEZWNvZGVyJik7CisKKyAgICBJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0OworfTsKKwordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBuYW1lIDw8IHZlcnNpb247Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uPiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIGluZm87CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGluZm8ubmFtZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8udmVyc2lvbikpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gaW5mbzsKK30KKworaW5saW5lIElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24gSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjo6aXNvbGF0ZWRDb3B5KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4geyBuYW1lLmlzb2xhdGVkQ29weSgpLCB2ZXJzaW9uIH07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmNjUxNzdkNjc4ZDM3MDRlMzc4YTg5YmI4Nzg4ZWZm
YzBmZmNmYWRjLi40MTQ5NDRhYWEzYWE1ZjAwOTJmMWI4MDFlZjZkMjAwODE2MTVmNDViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtODgsNiArODgsNyBAQCBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3Iu
Y3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuY3BwCiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRl
bnRpZmllci5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25S
ZXF1ZXN0LmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkdldEFsbFJlc3VsdC5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkdldFJlc3Vs
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmM2FhMTlmYTQzYTJjMDlkZjY0YTYxZGQ4YjBhOTdkZTMzNzQ0ZjYwLi4wYzFl
MTlhMDBkNGI3ZWM4MjIxZjZkZDZlNDU0NDE3NzkxNGNlZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTg0LDYgKzI1ODQs
OCBAQAogCQk4RjY3NTYxQjEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEY2NzU2MTkxMjg4QjE3QjAw
NDdBQ0EzIC8qIEV2ZW50UXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmRE
ZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTAwMTc3M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAq
LzsgfTsKIAkJOTAwMTc4ODExMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0
aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAw
MTc4N0YxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9
OworCQk5MDE2RUE0RDI0NTREODEzMDAyMUQ5RDEgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAxNkVB
NEMyNDU0RDgxMzAwMjFEOUQxIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MEUzNTFDMjI0N0U0
NkU0MDBGQkYyNEYgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRTM1MUJEMjQ3RTNENDgw
MEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkxMDlFOUM4MjIyQ0FCQ0Ew
MEJCNjI2NCAvKiBJbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTEwOUU5QzUyMjJDQUJDODAwQkI2MjY0
IC8qIEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi87IH07CiAJCTkxMDlFOUM4MjIy
Q0FCQ0EwMEJCNjI2NSAvKiBKU0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTA5RTlDNTIyMkNBQkM4
MDBCQjYyNjUgLyogSlNJbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oICovOyB9OwogCQk5
MTI3OEQ1RTIxREVEQUQ2MDBCNTcxODQgLyogUGFnZUF1ZGl0QWdlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxMjc4RDVDMjFERURBRDUwMEI1NzE4
NCAvKiBQYWdlQXVkaXRBZ2VudC5oICovOyB9OwpAQCAtMTA3MTQsNiArMTA3MTYsOSBAQAogCQk5
MDAxNzczRjEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTAxNkVBNEMyNDU0RDgxMzAw
MjFEOUQxIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MEUzNTFCQzI0N0UzRDQ4MDBGQkYyNEYgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MEUzNTFCRDI0N0UzRDQ4MDBGQkYyNEYgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRGF0YWJhc2VOYW1lQW5k
VmVyc2lvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTEwOUU5QzUy
MjJDQUJDODAwQkI2MjY0IC8qIEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxMDlFOUM1MjIyQ0FCQzgwMEJCNjI2
NSAvKiBKU0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTEwOUU5QzcyMjJDQUJDOTAwQkI2MjY0IC8qIEluc3Bl
Y3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MzcxLDYgKzE5Mzc2LDcgQEAKIAkJCQk1MTEwRkNGQjFFMDM2
MkE1MDA2RjhEMEIgLyogSURCQ3Vyc29yUmVjb3JkLmggKi8sCiAJCQkJNTFCQTRBQzExQkJCNUNC
RjAwREYzRDZEIC8qIElEQkRhdGFiYXNlSW5mby5jcHAgKi8sCiAJCQkJNTFCQTRBQzIxQkJCNUNC
RjAwREYzRDZEIC8qIElEQkRhdGFiYXNlSW5mby5oICovLAorCQkJCTkwMTZFQTRDMjQ1NEQ4MTMw
MDIxRDlEMSAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmggKi8sCiAJCQkJNTE0ODQ1M0Mx
QkI5RDA3NjAwNkE3MkVEIC8qIElEQkVycm9yLmNwcCAqLywKIAkJCQk1MTQ4NDUzRDFCQjlEMDc2
MDA2QTcyRUQgLyogSURCRXJyb3IuaCAqLywKIAkJCQk1MTlEQkM2RDFEQzAwRkI5MDAzMjlCRjUg
LyogSURCR2V0QWxsUmVjb3Jkc0RhdGEuY3BwICovLApAQCAtMjI4NDcsNiArMjI4NTMsOCBAQAog
CQkJCTUxRDcxOTdFMTgxMTA2REYwMDE2REM1MSAvKiBJREJEYXRhYmFzZS5pZGwgKi8sCiAJCQkJ
NTEwMzEwNUUxQkE4RTA5MDAwMzMyOUMwIC8qIElEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAgKi8s
CiAJCQkJNTEwMzEwNUYxQkE4RTA5MDAwMzMyOUMwIC8qIElEQkRhdGFiYXNlSWRlbnRpZmllci5o
ICovLAorCQkJCTkwRTM1MUJDMjQ3RTNENDgwMEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJOTBFMzUxQkQyNDdFM0Q0ODAwRkJGMjRGIC8qIElE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmggKi8sCiAJCQkJNTE2NDVCNDYxQjlGODg5
QjAwRjc4OUNFIC8qIElEQkZhY3RvcnkuY3BwICovLAogCQkJCTUxNjQ1QjQ3MUI5Rjg4OUIwMEY3
ODlDRSAvKiBJREJGYWN0b3J5LmggKi8sCiAJCQkJNTFENzE5OEExODExMDZERjAwMTZEQzUxIC8q
IElEQkZhY3RvcnkuaWRsICovLApAQCAtMzA5MjksNiArMzA5MzcsOCBAQAogCQkJCTUxODVGQzgx
MUJCNEM0RTgwMDEyODk4RiAvKiBJREJEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4
NUZDODcxQkI0QzRFODAwMTI4OThGIC8qIElEQkRhdGFiYXNlSWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTFCQTRBQzQxQkJCNUNEODAwREYzRDZEIC8qIElEQkRhdGFiYXNlSW5mby5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTAxNkVBNEQyNDU0RDgxMzAwMjFEOUQxIC8qIElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkwRTM1MUMyMjQ3RTQ2RTQw
MEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTE0ODQ1M0YxQkI5RDA3RTAwNkE3MkVEIC8qIElEQkVycm9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTg1RkM4RDFCQjRDNEU4MDAxMjg5OEYgLyogSURCRmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE5REJDNkYxREMwMTFBNzAwMzI5QkY1IC8qIElEQkdldEFsbFJlY29y
ZHNEYXRhLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXggYzhlYjcx
Yjk0YWM4MWQ1NDhjZTEyN2E2MWIwYzIxMGM1NjcyMjE4MC4uZmY4ZjMwZjQwM2Y4NWM3ZGRiZTMx
YjEwZTAzY2VmNWZjZGY3ZjAwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTU5Niw5ICs1
OTYsNyBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpyZXF1ZXN0RGF0YWJhc2VOYW1l
cyhjb25zdCBTdHJpbmcmIHNlY3VyaXR5T3JpZ2luLAogICAgIGlmICghZ2V0RG9jdW1lbnRBbmRJ
REJGYWN0b3J5RnJvbUZyYW1lT3JTZW5kRmFpbHVyZShmcmFtZSwgZG9jdW1lbnQsIGlkYkZhY3Rv
cnksIGNhbGxiYWNrKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byYgb3BlbmluZ09yaWdp
biA9IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwotICAgIGF1dG8mIHRvcE9yaWdpbiA9IGRv
Y3VtZW50LT50b3BPcmlnaW4oKTsKLSAgICBpZGJGYWN0b3J5LT5nZXRBbGxEYXRhYmFzZU5hbWVz
KHRvcE9yaWdpbiwgb3BlbmluZ09yaWdpbiwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KGF1dG8mIGRhdGFiYXNlTmFtZXMpIHsKKyAgICBpZGJGYWN0b3J5LT5nZXRBbGxEYXRhYmFzZU5h
bWVzKCpkb2N1bWVudCwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mIGRhdGFi
YXNlTmFtZXMpIHsKICAgICAgICAgaWYgKCFjYWxsYmFjay0+aXNBY3RpdmUoKSkKICAgICAgICAg
ICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCA4
N2QwYjg2Mzk1NmRmMDA1M2Y5NDkwNDhkMzBmMTYwYzlmZTFiOWMzLi4zMDE1Mzg1YmJlZGZiMWUw
ODE2YmY5ODk4OGU2MzJmMzI2MzJhNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtMTUyLDcgKzE1Miw3IEBAIGNsYXNzIEVtcHR5RGF0YWJhc2VQcm92aWRlciBm
aW5hbCA6IHB1YmxpYyBEYXRhYmFzZVByb3ZpZGVyIHsKICAgICAgICAgdm9pZCBhYm9ydE9wZW5B
bmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90LCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKSBm
aW5hbCB7IH0KICAgICAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90
LCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJbmRleGVkREI6OkNvbm5lY3Rp
b25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBvcGVuREJS
ZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJikgZmluYWwgeyB9Ci0gICAgICAg
IHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmLCB1aW50NjRfdCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQg
Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYsIGNvbnN0IENsaWVudE9yaWdpbiYpIGZpbmFsIHsgfQogICAgICAgICB+RW1wdHlJREJDb25u
ZWN0aW9uVG9TZXJ2ZXJEZWxldGVnYXRlKCkgeyB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggZjJhZmUxYThiOGFiOGNlYWFhMWNjNzEyZWZhNGVh
YzE3NmVmNjNkNC4uZDBiODhmMjNmZDdkYTRlYzZlYzYzYTQ2MjJlM2MwMmQ3NjRmMjQ2MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC0xOTMsOSArMTkzLDkgQEAg
dm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2Vk
KGNvbnN0IFdlYkNvcmU6OklEQlJlc28KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6Ok5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKHJlcXVlc3RJZGVudGlmaWVy
LCBvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNlcykKIHsKLSAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZEdldEFsbERhdGFiYXNlTmFt
ZXMoY2FsbGJhY2tJRCwgZGF0YWJhc2VOYW1lcykpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJl
cXVlc3RJZGVudGlmaWVyLCBkYXRhYmFzZXMpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IDk5NTA4M2IwNDZhZDBkZDk3
ZWUzMTk4NzIwOTUyYmRlY2JjODkzNmUuLjczMTVmMTBhZmMzN2ExZjE1NDY1MjQyYWIwZDJjZDE5
OWFkM2Y4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBAIC04Miw3ICs4
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6SURC
U2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJF
cnJvciYpIGZpbmFsOwogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3Qg
V2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0
X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikgZmluYWw7CiAKLSAgICB2b2lkIGRp
ZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGRhdGFiYXNlTmFtZXMpIGZpbmFsOworICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VO
YW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYsIGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYpIGZpbmFsOwog
CiAgICAgdGVtcGxhdGU8Y2xhc3MgTWVzc2FnZVR5cGU+IHZvaWQgaGFuZGxlR2V0UmVzdWx0KGNv
bnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5jcHAKaW5kZXggNTA4YmQ5
MjkxMzQ5MDdhMTY5YjY1MWM3YjhhZWUxYzkyNzcyZjhkMy4uOTg5MTFmNTI0ZmZmYzJiNjI1ZWYy
MWIwOWJiNzEzYzBmOTBiMWNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCkBAIC0zMTUsNyArMzE1LDcgQEAg
dm9pZCBXZWJJREJTZXJ2ZXI6Om9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgV2ViQ29yZTo6
SURCUmVxdWVzdERhdGEmIHJlcXVlc3QKICAgICBtX3NlcnZlci0+b3BlbkRCUmVxdWVzdENhbmNl
bGxlZChyZXF1ZXN0RGF0YSk7CiB9CiAKLXZvaWQgV2ViSURCU2VydmVyOjpnZXRBbGxEYXRhYmFz
ZU5hbWVzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViSURC
U2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbikKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzIzLDcgKzMyMyw3IEBAIHZvaWQgV2Vi
SURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgY29uc3QgV2ViQ29yCiAgICAgQVNTRVJUKHdlYklEQkNvbm5lY3Rpb24pOwogCiAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7Ci0gICAgbV9zZXJ2ZXItPmdldEFsbERh
dGFiYXNlTmFtZXMod2ViSURCQ29ubmVjdGlvbi0+aWRlbnRpZmllcigpLCBtYWluRnJhbWVPcmln
aW4sIG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNrSUQpOworICAgIG1fc2VydmVyLT5nZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMod2ViSURCQ29ubmVjdGlvbi0+aWRlbnRpZmllcigpLCByZXF1
ZXN0SWRlbnRpZmllciwgb3JpZ2luKTsKIH0KIAogdm9pZCBXZWJJREJTZXJ2ZXI6OmFkZENvbm5l
Y3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciBwcm9jZXNzSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKaW5kZXggZDQwM2Y2Yzg0MGMzMDI1MjI3
NGQyZDNhNzgyNDVlMjI5ODczMDI2Ny4uODUzODI3N2I2ZDJjOWQ4MWRjNzNhMzc3Nzk1YjU0ODAw
Zjk4MGEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVk
REIvV2ViSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRl
eGVkREIvV2ViSURCU2VydmVyLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogICAgIHZvaWQg
YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNl
SWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkluZGV4ZWREQjo6
Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpOwogICAgIHZvaWQgb3BlbkRCUmVxdWVz
dENhbmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpOwotICAgIHZvaWQgZ2V0
QWxsRGF0YWJhc2VOYW1lcyhJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCB1aW50NjRf
dCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhJ
UEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKIAogICAgIHZvaWQgYWRkQ29ubmVjdGlvbihJ
UEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7CiAgICAgdm9pZCBy
ZW1vdmVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3Nh
Z2VzLmluCmluZGV4IDIwOWY1NDAyNjE1MDUxZTY5N2UyZmRkZDU3NzM4OTQxMmIzZGQ2ZDMuLmYx
NWQ2M2Y5OGYyNDE5OGU3MzFjMjA3ZWQ4N2Y5ZDA1ZDExYjk2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2
ZXIubWVzc2FnZXMuaW4KQEAgLTUwLDcgKzUwLDcgQEAgbWVzc2FnZXMgLT4gV2ViSURCU2VydmVy
IHsKICAgICBEaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRl
bnRpZmllciwgV2ViQ29yZTo6SW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNl
cnZlciBjb25uZWN0aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikKICAgICBPcGVuREJSZXF1ZXN0
Q2FuY2VsbGVkKFdlYkNvcmU6OklEQlJlcXVlc3REYXRhIHJlcXVlc3REYXRhKQogCi0gICAgR2V0
QWxsRGF0YWJhc2VOYW1lcyhzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9y
aWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcGVuaW5nT3JpZ2luLCB1
aW50NjRfdCBjYWxsYmFja0lEKSBXYW50c0Nvbm5lY3Rpb24KKyAgICBHZXRBbGxEYXRhYmFzZU5h
bWVzQW5kVmVyc2lvbnMoV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyIHJlcXVlc3RJZGVu
dGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbikgV2FudHNDb25uZWN0
aW9uCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IDBlOTc4MzY3NzlkNjYw
ZDYwOGIzMGYxYjQxNmE1NDFjOGUzMWNiYWMuLmU2NGQxOGU1NjVmZDA0YjEzZDczMWRkNDE4Y2Y1
MTBmNGYyOWFmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmNwcApAQCAtMjA3LDkgKzIwNyw5IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
OjpvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1CiAgICAg
c2VuZChNZXNzYWdlczo6V2ViSURCU2VydmVyOjpPcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKHJlcXVl
c3REYXRhKSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRh
YmFzZU5hbWVzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90
IGNhbGxiYWNrSUQpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQogewotICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYklEQlNlcnZlcjo6R2V0QWxsRGF0YWJhc2VOYW1lcyh0b3BPcmlnaW4sIG9wZW5pbmdP
cmlnaW4sIGNhbGxiYWNrSUQpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXI6Okdl
dEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luKSk7
CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWREZWxldGVEYXRhYmFzZShj
b25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCkBAIC0zMjIsOSArMzIyLDkgQEAgdm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6Om5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IElE
QlJlc291cmNlSWRlbnQKICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+bm90aWZ5T3BlbkRCUmVx
dWVzdEJsb2NrZWQocmVxdWVzdElkZW50aWZpZXIsIG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pOwog
fQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1l
cyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1l
cykKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmll
ciwgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiYgZGF0YWJhc2VzKQogewotICAg
IG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRHZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxiYWNrSUQs
IGRhdGFiYXNlTmFtZXMpOworICAgIG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWRHZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoZGF0YWJhc2Vz
KSk7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjb25uZWN0aW9uVG9TZXJ2
ZXJMb3N0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5k
ZXggOTcwNThkM2VlMThhY2I5MDZmNDNjZDVkNWZkOTliNmY2Mjg0ODcxYS4uNThkY2I0Yjk3MTJk
M2Q0YTM2MjlkZGE0YTEwZTAyZWFlMjM1MGVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6SW5kZXhlZERCOjpDb25uZWN0aW9uQ2xvc2VkT25CZWhh
bGZPZlNlcnZlcikgZmluYWw7CiAgICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0
IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJikgZmluYWw7CiAKLSAgICB2b2lkIGdldEFsbERhdGFi
YXNlTmFtZXMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkgZmluYWw7CisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lv
bnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJikgZmluYWw7CiAKICAgICAvLyBNZXNzYWdlcyByZWNlaXZlZCBmcm9tIE5l
dHdvcmsgUHJvY2VzcwogICAgIHZvaWQgZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6
SURCUmVzdWx0RGF0YSYpOwpAQCAtMTA1LDcgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRTdGFydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpOwogICAgIHZv
aWQgZGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJik7CiAgICAgdm9pZCBub3RpZnlPcGVuREJSZXF1
ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJ
ZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9uKTsKLSAg
ICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpOworICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYs
IFZlY3RvcjxXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYmKTsKIAogICAgIFJl
ZjxXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gbV9jb25uZWN0aW9u
VG9TZXJ2ZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFi
YXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyLm1lc3NhZ2VzLmluCmluZGV4IDhkOTdlNDRlMzVjM2MwZmZlNTNkMDZjM2I2ZGJi
MzIyZTdkNmYxYzAuLjY0ZjI2MzljMGE0NGMyYzc4Y2VmMGIyZjBmYmZlZTJkNTM2NTViNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVz
c2FnZXMuaW4KQEAgLTQ3LDcgKzQ3LDcgQEAgbWVzc2FnZXMgLT4gV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyIHsKICAgICBEaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6SURCRXJyb3IgZXJyb3IpIGZpbmFsOwogICAgIE5vdGlm
eU9wZW5EQlJlcXVlc3RCbG9ja2VkKFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1
ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikK
IAotICAgIERpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgVmVjdG9y
PFN0cmluZz4gZGF0YWJhc2VOYW1lcykKKyAgICBEaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMoV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBW
ZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4gZGF0YWJhc2VzKQogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCmluZGV4IGE1NDliMDQ5MDVj
NmEyMjNjZDY3NmMwOTBjMDRhNGI3MTcyZTdmYTAuLmE3OTZmMDgyMTFjZjc0NTI0ZjVkNDgzOTUz
Mjc2ZjgwNzg1Njg2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9J
blByb2Nlc3NJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9J
blByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBAIC00NzYsMTggKzQ3NiwxOCBAQCB2b2lkIEluUHJvY2Vz
c0lEQlNlcnZlcjo6b3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJSZXF1
ZXN0RGF0YSYgcgogICAgIH0pOwogfQogCi12b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6Z2V0QWxs
RGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG1haW5GcmFtZU9yaWdpbiwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFj
a0lEKQordm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlm
aWVyLCBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKIHsKLSAgICBkaXNwYXRjaFRhc2soW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciA9IG1fY29ubmVj
dGlvblRvU2VydmVyLT5pZGVudGlmaWVyKCksIG1haW5GcmFtZU9yaWdpbiA9IG1haW5GcmFtZU9y
aWdpbi5pc29sYXRlZENvcHkoKSwgb3BlbmluZ09yaWdpbiA9IG9wZW5pbmdPcmlnaW4uaXNvbGF0
ZWRDb3B5KCksIGNhbGxiYWNrSURdIHsKKyAgICBkaXNwYXRjaFRhc2soW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciA9IG1fY29ubmVjdGlvblRvU2VydmVy
LT5pZGVudGlmaWVyKCksIHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4gPSBvcmlnaW4uaXNvbGF0
ZWRDb3B5KCldIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXJ2ZXItPmxvY2soKSk7
Ci0gICAgICAgIG1fc2VydmVyLT5nZXRBbGxEYXRhYmFzZU5hbWVzKGlkZW50aWZpZXIsIG1haW5G
cmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgY2FsbGJhY2tJRCk7CisgICAgICAgIG1fc2VydmVy
LT5nZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoaWRlbnRpZmllciwgcmVxdWVzdElkZW50
aWZpZXIsIG9yaWdpbik7CiAgICAgfSk7CiB9CiAKLXZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpk
aWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBkYXRhYmFzZU5hbWVzKQordm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZEdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50
aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvbj4mIGRhdGFiYXNlcykKIHsKLSAgICBkaXNwYXRjaFRhc2tSZXBseShb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFja0lELCBkYXRhYmFz
ZU5hbWVzID0gZGF0YWJhc2VOYW1lcy5pc29sYXRlZENvcHkoKV0gewotICAgICAgICBtX2Nvbm5l
Y3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFz
ZU5hbWVzKTsKKyAgICBkaXNwYXRjaFRhc2tSZXBseShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgZGF0YWJhc2VzID0gZGF0YWJhc2VzLmlz
b2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAgICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZN
b3ZlKGRhdGFiYXNlcykpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmgKaW5kZXggNjA0N2RkOWY5NWIxM2RjMTE2ZGI4
YmVlZjA4OWI2NGRmNDNjY2ZhNC4uZjY3ZGQzMWRiY2VlMzIyZDAyMzJhNmYyZWRjYmRkYTM0OTE4
MDFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lE
QlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJT
ZXJ2ZXIuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhYm9ydE9wZW5BbmRV
cGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSBm
aW5hbDsKICAgICB2b2lkIGRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJh
c2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlm
aWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SW5kZXhlZERCOjpDb25uZWN0
aW9uQ2xvc2VkT25CZWhhbGZPZlNlcnZlcikgZmluYWw7CiAgICAgdm9pZCBvcGVuREJSZXF1ZXN0
Q2FuY2VsbGVkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJikgZmluYWw7Ci0gICAgdm9p
ZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
bWFpbkZyYW1lT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5p
bmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFsOworICAgIHZvaWQgZ2V0QWxsRGF0
YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmll
ciYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGZpbmFsOwogCiAgICAgLy8gSURCQ29u
bmVjdGlvblRvQ2xpZW50CiAgICAgV2ViQ29yZTo6SURCQ29ubmVjdGlvbklkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IGZpbmFsOwpAQCAtMTE2LDcgKzExNiw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpZFN0YXJ0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmlu
YWw7CiAgICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpIGZpbmFs
OwogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURC
UmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lv
biwgdWludDY0X3QgbmV3VmVyc2lvbikgZmluYWw7Ci0gICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFz
ZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFz
ZU5hbWVzKSBmaW5hbDsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9u
cyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKSBmaW5hbDsKIAogICAgIHZvaWQgY2xv
c2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lKTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMDJmNTEyZTU1N2I0OGI3OWUzNGU4ZGRmZGIwMTA5ZWM0
ZjcwOGE3Ny4uZGRiNTVmMTE5MmUyNWNjNGI2NTQyNTAxMjBkZDhiYTFmMDI3MDNiZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDYtMTcgIERh
cnJ5bCBQb2d1ZSAgPGRhcnJ5bEBkcG9ndWUuY2E+CisKKyAgICAgICAgSW5kZXhlZERCOiBTdXBw
b3J0IElEQkZhY3RvcnkgZGF0YWJhc2VzIG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExMDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRqdXN0IHRlc3QgZXhwZWN0YXRpb25zIGZvciBgSURC
RmFjdG9yeS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
ZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRpb24t
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRs
aGFybmVzcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNi0x
NyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBSZWFk
YWJsZVN0cmVhbSByb2J1c3QgYWdhaW5zdCB1c2VyIGNvZGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFz
ZXMuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4dAppbmRleCBl
MmRmZmFjNzQ3ODdhYzUxODU1ODg1MDJiNmQwY2Q3MWVmZWQ3OTBlLi4wNjUwMTlkMTMwMTA5Yzcy
NGI1M2I4YTYwZGViYzlmNjY0NTMwYzQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnktZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBA
QAogCi1GQUlMIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIHJldHVybnMgYSBwcm9taXNlLiBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERC
LmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlM
IEVudW1lcmF0ZSBvbmUgZGF0YWJhc2UuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBu
b3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRh
dGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKLUZBSUwgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNl
cy4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2lu
ZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQp
IgotRkFJTCBNYWtlIHN1cmUgYW4gZW1wdHkgbGlzdCBpcyByZXR1cm5lZCBmb3IgdGhlIGNhc2Ug
b2Ygbm8gZGF0YWJhc2VzLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMn
IGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGlj
ayB1cCBjaGFuZ2VzIHRoYXQgaGF2ZW4ndCBjb21taXRlZC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0
YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdp
bmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgorUEFTUyBFbnN1cmUgdGhhdCBkYXRh
YmFzZXMoKSByZXR1cm5zIGEgcHJvbWlzZS4gCitQQVNTIEVudW1lcmF0ZSBvbmUgZGF0YWJhc2Uu
IAorUEFTUyBFbnVtZXJhdGUgbXVsdGlwbGUgZGF0YWJhc2VzLiAKK1BBU1MgTWFrZSBzdXJlIGFu
IGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gCitG
QUlMIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBjaGFuZ2VzIHRoYXQg
aGF2ZW4ndCBjb21taXRlZC4gYXNzZXJ0X2VxdWFsczogVGhlIHJlc3VsdCBvZiBkYXRhYmFzZXMo
KSBzaG91bGQgYmUgb25seSB0aG9zZSBkYXRhYmFzZXMgd2hpY2ggaGF2ZSBiZWVuIGNyZWF0ZWQg
YXQgdGhlIHRpbWUgb2YgY2FsbGluZywgcmVnYXJkbGVzcyBvZiB2ZXJzaW9uY2hhbmdlIHRyYW5z
YWN0aW9ucyBjdXJyZW50bHkgcnVubmluZy4gZXhwZWN0ZWQgMSBidXQgZ290IDIKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvZ2V0LWRhdGFiYXNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55
Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZTJkZmZhYzc0Nzg3YWM1MTg1NTg4NTAyYjZkMGNk
NzFlZmVkNzkwZS4uMDY1MDE5ZDEzMDEwOWM3MjRiNTNiOGE2MGRlYmM5ZjY2NDUzMGM0NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvZ2V0LWRhdGFiYXNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJh
c2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1GQUlMIEVuc3Vy
ZSB0aGF0IGRhdGFiYXNlcygpIHJldHVybnMgYSBwcm9taXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5k
YXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywg
J2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVudW1lcmF0ZSBvbmUg
ZGF0YWJhc2UuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5k
ZWZpbmVkKSIKLUZBSUwgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4gcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRl
eGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFz
ZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBNYWtlIHN1
cmUgYW4gZW1wdHkgbGlzdCBpcyByZXR1cm5lZCBmb3IgdGhlIGNhc2Ugb2Ygbm8gZGF0YWJhc2Vz
LiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJU
eXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5k
ZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCki
Ci1GQUlMIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBjaGFuZ2VzIHRo
YXQgaGF2ZW4ndCBjb21taXRlZC4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJh
c2VzJyBpcyB1bmRlZmluZWQpIgorUEFTUyBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSByZXR1cm5z
IGEgcHJvbWlzZS4gCitQQVNTIEVudW1lcmF0ZSBvbmUgZGF0YWJhc2UuIAorUEFTUyBFbnVtZXJh
dGUgbXVsdGlwbGUgZGF0YWJhc2VzLiAKK1BBU1MgTWFrZSBzdXJlIGFuIGVtcHR5IGxpc3QgaXMg
cmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gCitGQUlMIEVuc3VyZSB0aGF0
IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBjaGFuZ2VzIHRoYXQgaGF2ZW4ndCBjb21taXRl
ZC4gYXNzZXJ0X2VxdWFsczogVGhlIHJlc3VsdCBvZiBkYXRhYmFzZXMoKSBzaG91bGQgYmUgb25s
eSB0aG9zZSBkYXRhYmFzZXMgd2hpY2ggaGF2ZSBiZWVuIGNyZWF0ZWQgYXQgdGhlIHRpbWUgb2Yg
Y2FsbGluZywgcmVnYXJkbGVzcyBvZiB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9ucyBjdXJyZW50
bHkgcnVubmluZy4gZXhwZWN0ZWQgMSBidXQgZ290IDIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1k
YXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LWRhdGFiYXNlcy1v
cGFxdWUtb3JpZ2luLWV4cGVjdGVkLnR4dAppbmRleCAwNjc5ZjM5MmViNWZhZWQwYmRjMTdlODFj
YjliNWFjYjIyMWI1MmQ0Li5kZmE3MTAyYjAwY2MzYWQ4YzAxZGJmZDdkMGJjOTU5MzE3NmVlNDIx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9pZGJmYWN0b3J5LWRhdGFiYXNlcy1vcGFxdWUtb3JpZ2luLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJmYWN0b3J5LWRhdGFiYXNlcy1vcGFxdWUtb3JpZ2luLWV4cGVjdGVkLnR4dApAQCAt
MSw0ICsxLDQgQEAKIAotRkFJTCBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGluIG5vbi1zYW5kYm94
ZWQgaWZyYW1lIHNob3VsZCBub3QgcmVqZWN0IGFzc2VydF9lcXVhbHM6IElEQkZhY3RvcnkuZGF0
YWJhc2VzKCkgc2hvdWxkIG5vdCByZWplY3QgZXhwZWN0ZWQgIm5vIGV4Y2VwdGlvbiIgYnV0IGdv
dCAiaW5kZXhlZERCLmRhdGFiYXNlcyB1bmRlZmluZWQiCi1GQUlMIElEQkZhY3RvcnkuZGF0YWJh
c2VzKCkgaW4gc2FuZGJveGVkIGlmcmFtZSBzaG91bGQgcmVqZWN0IGFzc2VydF9lcXVhbHM6IFBy
b21pc2Ugc2hvdWxkIGJlIHJlamVjdGVkIHdpdGggU2VjdXJpdHlFcnJvciBleHBlY3RlZCAiU2Vj
dXJpdHlFcnJvciIgYnV0IGdvdCAiaW5kZXhlZERCLmRhdGFiYXNlcyB1bmRlZmluZWQiCitQQVNT
IElEQkZhY3RvcnkuZGF0YWJhc2VzKCkgaW4gbm9uLXNhbmRib3hlZCBpZnJhbWUgc2hvdWxkIG5v
dCByZWplY3QgCitQQVNTIElEQkZhY3RvcnkuZGF0YWJhc2VzKCkgaW4gc2FuZGJveGVkIGlmcmFt
ZSBzaG91bGQgcmVqZWN0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0aW9uLWV4cGVjdGVkLnR4dAppbmRl
eCBhMzMwOThlYjhmNjVmZmMxOWNjN2RhZmQ3OTk1ZTgyMDE0MTNkNjU0Li5jYjk4NWZjNWYyZTZm
ODRlOGU5NTk1MzBlMzg3ZWRhOWFhMTVlY2Y3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1p
c29sYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rvcnktb3JpZ2luLWlzb2xhdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgVGVzdCB0byBtYWtlIHN1cmUgdGhhdCBv
cmlnaW5zIGhhdmUgc2VwYXJhdGUgbG9ja2luZyBzY2hlbWVzIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRh
dGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAn
aW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKK1BBU1MgVGVzdCB0byBtYWtlIHN1
cmUgdGhhdCBvcmlnaW5zIGhhdmUgc2VwYXJhdGUgbG9ja2luZyBzY2hlbWVzIAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQK
aW5kZXggMTEyOGRhNjJiOGNkNDQyYzcxMjAyNjdkMjE2N2MxNGU4NTdlYWU1My4uYjFlZWNkNzlj
MGQzMzk4NTc2MTllMTRjZGQ5ZjMwNmE0NTlhMDMzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dApAQCAtNTIsNyArNTIs
NyBAQCBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMg
b2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplYwogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
QEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBvcGVuKERPTVN0cmluZywgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBsb25nKSAKIFBBU1Mg
SURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkZWxldGVEYXRhYmFzZShET01TdHJpbmcp
IAotRkFJTCBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNlcygpIGFzc2Vy
dF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IG1pc3Npbmcgbm9uLXN0
YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImRhdGFiYXNlcyIgbWlzc2luZworUEFT
UyBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNlcygpIAogUEFTUyBJREJG
YWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGNtcChhbnksIGFueSkgCiBQQVNTIElEQkZhY3Rv
cnkgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBbb2JqZWN0IElEQkZhY3RvcnldIAogUEFT
UyBTdHJpbmdpZmljYXRpb24gb2YgW29iamVjdCBJREJGYWN0b3J5XSAKQEAgLTYwLDcgKzYwLDcg
QEAgUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm9wZW4oRE9NU3QKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNh
bGxpbmcgb3BlbihET01TdHJpbmcsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9uZykgb24gW29i
amVjdCBJREJGYWN0b3J5XSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImRlbGV0ZURhdGFiYXNlKERPTVN0cmluZykiIHdpdGggdGhlIHBy
b3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogY2FsbGluZyBkZWxldGVEYXRh
YmFzZShET01TdHJpbmcpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3Vt
ZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLUZBSUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtv
YmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJkYXRhYmFzZXMoKSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAiZGF0YWJhc2VzIiBu
b3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBb
b2JqZWN0IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdp
dGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJ
REJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNtcChhbnksIGFueSkiIHdpdGggdGhl
IHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogY2FsbGluZyBjbXAoYW55
LCBhbnkpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0
IHRocm93IFR5cGVFcnJvciAKIFBBU1MgSURCRGF0YWJhc2UgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3Mu
YW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IDkyOTI5ZTE2MThiNjZhMTA4OTgwMGJhZjgyNWYyNThmNTI1YTJhMTcuLmFmNTc1MDRk
NDVkOTk1ODAxMDgyOTBiYzhkYWE5NWZiNjU2NjM4M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55
Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dApAQCAtNTIsNyArNTIsNyBAQCBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplYwogUEFTUyBJREJGYWN0
b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSAKIFBBU1MgSURCRmFjdG9yeSBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBvcGVuKERPTVN0cmluZywgb3B0aW9uYWwgdW5zaWduZWQgbG9u
ZyBsb25nKSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkZWxldGVEYXRh
YmFzZShET01TdHJpbmcpIAotRkFJTCBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRh
dGFiYXNlcygpIGFzc2VydF9vd25fcHJvcGVydHk6IGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0
IG1pc3Npbmcgbm9uLXN0YXRpYyBvcGVyYXRpb24gZXhwZWN0ZWQgcHJvcGVydHkgImRhdGFiYXNl
cyIgbWlzc2luZworUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGRhdGFiYXNl
cygpIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogb3BlcmF0aW9uIGNtcChhbnksIGFueSkg
CiBQQVNTIElEQkZhY3RvcnkgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBbb2JqZWN0IElE
QkZhY3RvcnldIAogUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgW29iamVjdCBJREJGYWN0b3J5XSAK
QEAgLTYwLDcgKzYwLDcgQEAgUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJG
YWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9wZW4oRE9NU3QKIFBBU1MgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IGNhbGxpbmcgb3BlbihET01TdHJpbmcsIG9wdGlvbmFsIHVuc2lnbmVkIGxv
bmcgbG9uZykgb24gW29iamVjdCBJREJGYWN0b3J5XSB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11
c3QgdGhyb3cgVHlwZUVycm9yIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJ
REJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRlbGV0ZURhdGFiYXNlKERPTVN0cmlu
ZykiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogY2Fs
bGluZyBkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKLUZBSUwgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJk
YXRhYmFzZXMoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0
eSAiZGF0YWJhc2VzIiBub3QgZm91bmQgaW4gcHJvdG90eXBlIGNoYWluCitQQVNTIElEQkZhY3Rv
cnkgaW50ZXJmYWNlOiBbb2JqZWN0IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
ZGF0YWJhc2VzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVy
ZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNtcChhbnks
IGFueSkiIHdpdGggdGhlIHByb3BlciB0eXBlIAogUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTog
Y2FsbGluZyBjbXAoYW55LCBhbnkpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgSURCRGF0YWJhc2UgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKZGlmZiAt
LWdpdCBhL1dlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3Vy
Y2UueGNzY2hlbWUgYi9XZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9B
bGwgU291cmNlLnhjc2NoZW1lCmluZGV4IDhmN2Q3ZDI2ZTQwNjI2NTQzMjYzNjI1NGZjYjA0Njdh
YTQ5Nzc0MzcuLmVkZWIyY2IwMThhYjAzNDliNjg5YjljZGY3YjZhODk3ZTg3YTA0ZjAgMTAwNjQ0
Ci0tLSBhL1dlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3Vy
Y2UueGNzY2hlbWUJCisrKyBiL1dlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hl
bWVzL0FsbCBTb3VyY2UueGNzY2hlbWUJCkBAIC0xMzksMTUgKzEzOSw2IEBACiAgICAgICBzZWxl
Y3RlZERlYnVnZ2VySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdn
ZXIuTExEQiIKICAgICAgIHNlbGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVn
Z2VyRm91bmRhdGlvbi5MYXVuY2hlci5MTERCIgogICAgICAgc2hvdWxkVXNlTGF1bmNoU2NoZW1l
QXJnc0VudiA9ICJZRVMiPgotICAgICAgPE1hY3JvRXhwYW5zaW9uPgotICAgICAgICAgPEJ1aWxk
YWJsZVJlZmVyZW5jZQotICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5
IgotICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICI4RDExMDcyNjA0ODZDRUI4MDBF
NDcwOTAiCi0gICAgICAgICAgICBCdWlsZGFibGVOYW1lID0gIk1pbmlCcm93c2VyLmFwcCIKLSAg
ICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAiTWluaUJyb3dzZXIiCi0gICAgICAgICAgICBSZWZl
cmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpUb29scy9NaW5pQnJvd3Nlci9NaW5pQnJvd3Nl
ci54Y29kZXByb2oiPgotICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+Ci0gICAgICA8L01h
Y3JvRXhwYW5zaW9uPgogICAgICAgPFRlc3RhYmxlcz4KICAgICAgIDwvVGVzdGFibGVzPgogICAg
PC9UZXN0QWN0aW9uPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402111</attachid>
            <date>2020-06-17 09:08:39 -0700</date>
            <delta_ts>2020-06-17 10:23:14 -0700</delta_ts>
            <desc>Patch + build fix</desc>
            <filename>bug-211043-20200617180837.patch</filename>
            <type>text/plain</type>
            <size>80230</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEwMzk1ODQzNzIyNWVl
MmJlYmZmOTRkNzc1NDU1NjlmMzZkMzNkYi4uMmE3NzQ3ZDk2MmVkNjI2NmE1NzI2ZWM3YzA4N2Fl
YWEyYzYwZWYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIwLTA2LTE3ICBEYXJy
eWwgUG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9y
dCBJREJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBmZXRjaGluZyB0aGUgbGlzdCBv
ZiBJREIgZGF0YWJhc2UgbmFtZXMgYW5kIHZlcnNpb25zCisgICAgICAgIGZyb20gdGhlIElEQlNl
cnZlciwgYW5kIGV4cG9zZSB0aGUgZnVuY3Rpb25hbGl0eSBhcworICAgICAgICBgSURCRmFjdG9y
eS5wcm90b3R5cGUuZGF0YWJhc2VzKClgLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9JbmRleGVkREIvI2RvbS1pZGJmYWN0b3J5LWRhdGFiYXNlcworCisgICAgICAgICog
SGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01P
YmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFjdGl2ZURPTU9iamVjdDo6cGVyZm9ybUNh
bGxiYWNrT25PcmlnaW5UaHJlYWQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdDo6fklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojpjb21wbGV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6YWN0
aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uUmVxdWVzdDo6dmlydHVhbEhhc1BlbmRpbmdBY3Rpdml0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6c3RvcCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3QuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpkYXRhYmFzZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SURCRmFjdG9yeTo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uUHJveHk6OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJz
aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5Ojpmb3JnZXRBY3Rpdml0eUZvckN1cnJlbnRUaHJl
YWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6Omdl
dEFsbERhdGFiYXNlTmFtZXMpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6
IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25u
ZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2
ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFt
ZUFuZFZlcnNpb25Gcm9tRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lRnJvbUZpbGUpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb246
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudDo6cmVxdWVzdERhdGFiYXNlTmFtZXMpOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorCiAyMDIwLTA2LTE3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFJlYWRhYmxlU3RyZWFtIHJvYnVzdCBh
Z2FpbnN0IHVzZXIgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkMjI1MWRjYTg3ODNhNmQ3OTRmMWVkOGRhZjEw
N2ZjNDNhOTBiY2NlLi40MTM3ODY0MDZkZjJjZDA5NmJmZGUzOTQyNjNmMjhhNjFhYWIyMmQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA2LTE3ICBEYXJyeWwgUG9ndWUgIDxkYXJy
eWxAZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9ydCBJREJGYWN0b3J5IGRh
dGFiYXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFBsdW1iaW5nIGZvciByZXR1cm5pbmcgYSBsaXN0IG9mIElEQiBkYXRhYmFzZXMgYW5k
IHZlcnNpb25zLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyOjpnZXRB
bGxEYXRhYmFzZU5hbWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRl
eGVkREIvV2ViSURCU2VydmVyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lv
bnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyk6
IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW46CisKIDIwMjAtMDYt
MTYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjI1NTAzNyk6IEJyb2tlbiBwb3NpdGlvbiB3aGlsZSBjb21wYXJpbmcgd2F0Y2gg
YmFuZHMgb24gd3d3LmFwcGxlLmNvbS9zaG9wL3N0dWRpby9hcHBsZS13YXRjaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZwppbmRleCAzMjlhYWE3ZDgxZDg4MWU2NTI2YWM4YjJlN2RkNDc5NzRmYjhlMzBiLi5h
NDI2ZTU3NzQ4MTIwM2M4MDlhMjBhMmJiNTA1NWEwMjRhMWM4ZjZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA2LTE3ICBEYXJyeWwgUG9ndWUgIDxkYXJyeWxA
ZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9ydCBJREJGYWN0b3J5IGRhdGFi
YXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFBsdW1iaW5nIGZvciByZXR1cm5pbmcgYSBsaXN0IG9mIElEQiBkYXRhYmFzZXMgYW5kIHZl
cnNpb25zLgorCisgICAgICAgICogU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwOgorICAg
ICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMp
OgorICAgICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5k
VmVyc2lvbnMpOgorICAgICAgICAoSW5Qcm9jZXNzSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5h
bWVzKTogRGVsZXRlZC4KKyAgICAgICAgKEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0
YWJhc2VOYW1lcyk6IERlbGV0ZWQuCisgICAgICAgICogU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2
ZXIuaDoKKwogMjAyMC0wNi0xNiAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjYzMDc5LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
aW5kZXggNTJkNDM4NjA0MWY3MDZjODM3Y2IyYmNiYzFhODhmYjc2YWY4MDk1OC4uOTYzZjBjMWJk
NWJjNTc4ZGExZGE1ODg3OTBmZTE4YmI4MDgxMzEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC00
MCw2ICs0MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9iamVjdC5oCiAgICAgTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKKyAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURC
R2V0QWxsUmVzdWx0LmgKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oCkBAIC03Miw2ICs3Myw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCQ3Vyc29ySW5mby5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvclJl
Y29yZC5oCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5oCisg
ICAgTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaAog
ICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5oCiAgICAgTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkdldEFsbFJlY29yZHNEYXRhLmgKICAgICBNb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCR2V0UmVjb3JkRGF0YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJBY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkFjdGl2ZURPTU9iamVjdC5oCmluZGV4IGQyZjQwZDk5YjdiOWY1
MDMxZjUxNDQ1NGY3NTk3MDg3MGQ3YWIxMWQuLmRkYWQ3MzY2OTMxYzk2OWFmZmZjNGMwM2JkY2Rk
OGI1MDNhMDEwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkFjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkFjdGl2ZURPTU9iamVjdC5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgQVNTRVJUKCZvcmlnaW5UaHJlYWQoKSA9PSAmb2JqZWN0Lm9yaWdpblRocmVhZCgpKTsKIAog
ICAgICAgICBpZiAoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvYmplY3Qu
b3JpZ2luVGhyZWFkKCkpKSB7Ci0gICAgICAgICAgICAob2JqZWN0LiptZXRob2QpKGFyZ3VtZW50
cy4uLik7CisgICAgICAgICAgICAob2JqZWN0LiptZXRob2QpKHN0ZDo6Zm9yd2FyZDxBcmd1bWVu
dHM+KGFyZ3VtZW50cykuLi4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODBjOTFk
NGQ4MTQzMmMzMzZmNTFjMDI2M2U4YzE0MTdhMWY0NDUyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3QuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgRGFy
cnlsIFBvZ3VlIChkYXJyeWxAZHBvZ3VlLmNhKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCIKKworI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCQ29ubmVjdGlvblByb3h5
LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KTsKKworUmVm
PElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0PiBJREJEYXRhYmFzZU5hbWVBbmRWZXJz
aW9uUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNs
aWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJveHksIEluZm9DYWxsYmFjayYm
IGNhbGxiYWNrKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb25SZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rpb25Qcm94eSwgV1RGTW92ZShjYWxsYmFj
aykpKTsKK30KKworSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OklEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb25SZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJveHksIEluZm9DYWxsYmFj
ayYmIGNhbGxiYWNrKQorICAgIDogSURCQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQorICAgICwg
bV9jb25uZWN0aW9uUHJveHkoY29ubmVjdGlvblByb3h5KQorICAgICwgbV9yZXNvdXJjZUlkZW50
aWZpZXIoY29ubmVjdGlvblByb3h5KQorICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNr
KSkKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShv
cmlnaW5UaHJlYWQoKSkpOworCisgICAgc3VzcGVuZElmTmVlZGVkKCk7Cit9CisKK3ZvaWQgSURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNvbXBsZXRlKE9wdGlvbmFsPFZlY3RvcjxJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPj4mJiBkYXRhYmFzZXMpCit7CisgICAgQVNTRVJUKGNh
bkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2NhbERhdGEob3JpZ2luVGhyZWFkKCkpKTsKKwor
ICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKKyAgICAgICAgY2Fs
bGJhY2soV1RGTW92ZShkYXRhYmFzZXMpKTsKK30KKworY29uc3QgY2hhciogSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3Q6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAg
IEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVh
ZCgpKSk7CisgICAgcmV0dXJuICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCI7Cit9
CisKK2Jvb2wgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OnZpcnR1YWxIYXNQZW5k
aW5nQWN0aXZpdHkoKSBjb25zdAoreworICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNz
VGhyZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSB8fCBUaHJlYWQ6Om1heUJlR0NUaHJlYWQo
KSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3Q6OnN0b3AoKQoreworICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhy
ZWFkTG9jYWxEYXRhKG9yaWdpblRocmVhZCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjYzZjJkMzJkZGM4ZGQ0MTM4YTMyNDYx
MGMzZTgzMzU0ZGZmOWE0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmgKQEAgLTAsMCAr
MSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBEYXJyeWwgUG9ndWUgKGRhcnJ5bEBk
cG9ndWUuY2EpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCisjaW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK25hbWVzcGFjZSBJREJDbGllbnQg
eworY2xhc3MgSURCQ29ubmVjdGlvblByb3h5OworfQorCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdCBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdD4sIHB1YmxpYyBJREJB
Y3RpdmVET01PYmplY3QgeworICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3QpOworcHVibGljOgorICAgIHVzaW5nIEluZm9DYWxsYmFjayA9
IEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+
PiYmKT47CisKKyAgICBzdGF0aWMgUmVmPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIElEQkNsaWVudDo6SURCQ29ubmVjdGlv
blByb3h5JiwgSW5mb0NhbGxiYWNrJiYpOworCisgICAgfklEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b25SZXF1ZXN0KCk7CisKKyAgICBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlc291cmNl
SWRlbnRpZmllcigpIGNvbnN0OworCisgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+OjpyZWY7CisgICAgdXNpbmcgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+OjpkZXJlZjsKKwor
ICAgIHZvaWQgY29tcGxldGUoT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b24+PiYmKTsKKworcHJpdmF0ZToKKyAgICBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkm
LCBJbmZvQ2FsbGJhY2smJik7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QuCisgICAgYm9vbCB2
aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CisgICAgY29uc3QgY2hhciog
YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc3RvcCgpIGZpbmFs
OworCisgICAgUmVmPElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Q
cm94eTsKKyAgICBJREJSZXNvdXJjZUlkZW50aWZpZXIgbV9yZXNvdXJjZUlkZW50aWZpZXI7Cisg
ICAgSW5mb0NhbGxiYWNrIG1fY2FsbGJhY2s7Cit9OworCitpbmxpbmUgY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6cmVzb3VyY2VJ
ZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNvdXJjZUlkZW50aWZpZXI7Cit9
CisKK2lubGluZSBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6fklEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb25SZXF1ZXN0KCkKK3sKKyAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFj
Y2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKaW5kZXggYjEzYzcx
ZTg5MWNiYjIyOTQ3NTRmZDViNzAzMTJjZjZkMmZlYzgwMC4uYTQ4NzI3YjAwM2I0ODY3NzZlMDFm
NWI3NDgyNmQ1NjU1MzRiY2JjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeS5jcHAKQEAgLTM0LDEwICszNCwxMCBAQAogI2luY2x1ZGUgIklEQkRh
dGFiYXNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIklEQk9w
ZW5EQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJKU0lEQkZhY3RvcnkuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTEzMyw5ICsxMzMsNDEgQEAgRXhjZXB0aW9uT3I8c2hvcnQ+IElEQkZhY3Rvcnk6OmNt
cChKU0dsb2JhbE9iamVjdCYgZXhlY1N0YXRlLCBKU1ZhbHVlIGZpcnN0VmFsdWUKICAgICByZXR1
cm4gZmlyc3QtPmNvbXBhcmUoc2Vjb25kLmdldCgpKTsKIH0KIAotdm9pZCBJREJGYWN0b3J5Ojpn
ZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4s
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBGdW5jdGlvbjx2b2lkIChjb25z
dCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNhbGxiYWNrKQordm9pZCBJREJGYWN0b3J5OjpkYXRhYmFz
ZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCRGF0YWJhc2VzUmVzcG9uc2VQ
cm9taXNlJiYgcHJvbWlzZSkKIHsKLSAgICBtX2Nvbm5lY3Rpb25Qcm94eS0+Z2V0QWxsRGF0YWJh
c2VOYW1lcyhtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIFdURk1vdmUoY2FsbGJhY2sp
KTsKKyAgICBMT0coSW5kZXhlZERCLCAiSURCRmFjdG9yeTo6ZGF0YWJhc2VzIik7CisKKyAgICBp
ZiAoc2hvdWxkVGhyb3dTZWN1cml0eUV4Y2VwdGlvbihjb250ZXh0KSkgeworICAgICAgICBwcm9t
aXNlLnJlamVjdChTZWN1cml0eUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IEFTU0VSVChjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCkpOworCisgICAgbV9jb25uZWN0aW9uUHJv
eHktPmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb250ZXh0LCBbcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJl
c3VsdCkgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgVW5rbm93bkVy
cm9yIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgcHJvbWlz
ZS5yZXNvbHZlKFdURjo6bWFwKCpyZXN1bHQsIFtdKGF1dG8mJiBpbmZvKSB7CisgICAgICAgICAg
ICByZXR1cm4gSURCRmFjdG9yeTo6RGF0YWJhc2VJbmZvIHsgV1RGTW92ZShpbmZvLm5hbWUpLCBp
bmZvLnZlcnNpb24gfTsKKyAgICAgICAgfSkpOworICAgIH0pOworfQorCit2b2lkIElEQkZhY3Rv
cnk6OmdldEFsbERhdGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
RnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNhbGxiYWNrKQoreworICAg
IG1fY29ubmVjdGlvblByb3h5LT5nZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29udGV4
dCwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiByZXN1bHQpIG11dGFibGUg
eworICAgICAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNhbGxiYWNrKFdURjo6bWFw
KCpyZXN1bHQsIFtdKGF1dG8mJiBpbmZvKSB7CisgICAgICAgICAgICByZXR1cm4gV1RGTW92ZShp
bmZvLm5hbWUpOworICAgICAgICB9KSk7CisgICAgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaApp
bmRleCAxMzQ1NjUxMTlmMjc0YTgyYzUzODE2NDkyMzZmMDU1ZDMyNTlhYTczLi45Mjc3NWRhMjU3
YzIyOTg3ZTMzMTEwMTA0MmYzNWZhYWEzZjk4NDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUg
IkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CkBAIC01NCwxMiArNTUs
MjEgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8SURCRmFjdG9yeT4gY3JlYXRlKElEQkNsaWVu
dDo6SURCQ29ubmVjdGlvblByb3h5Jik7CiAgICAgfklEQkZhY3RvcnkoKTsKIAorICAgIHN0cnVj
dCBEYXRhYmFzZUluZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgdWludDY0X3Qg
dmVyc2lvbjsKKyAgICB9OworCiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQk9wZW5EQlJlcXVlc3Q+
PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5hbWUsIE9wdGlv
bmFsPHVpbnQ2NF90PiB2ZXJzaW9uKTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCT3BlbkRCUmVx
dWVzdD4+IGRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJp
bmcmIG5hbWUpOwogCiAgICAgRXhjZXB0aW9uT3I8c2hvcnQ+IGNtcChKU0M6OkpTR2xvYmFsT2Jq
ZWN0JiwgSlNDOjpKU1ZhbHVlIGZpcnN0LCBKU0M6OkpTVmFsdWUgc2Vjb25kKTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdp
biYgbWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwg
V1RGOjpGdW5jdGlvbjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmKTsKKyAgICB1c2lu
ZyBJREJEYXRhYmFzZXNSZXNwb25zZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMU2Vx
dWVuY2U8SURMRGljdGlvbmFyeTxJREJGYWN0b3J5OjpEYXRhYmFzZUluZm8+Pj47CisKKyAgICB2
b2lkIGRhdGFiYXNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSURCRGF0YWJhc2VzUmVzcG9u
c2VQcm9taXNlJiYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRBbGxEYXRhYmFzZU5h
bWVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxT
dHJpbmc+Jik+JiYpOwogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IElEQkZhY3RvcnkoSURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uUHJveHkmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeS5pZGwKaW5kZXggZjk4ZjNmODM5YmM0YTM4M2RkNDM5OTI5OWI3
OTI2YjA3Njg3YTBiMS4uOTVlYTY2MTJkZTdlNThlMjU2MDE1MDY5Y2M5M2Y2OGQwMjNhNzZmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwK
QEAgLTI5LDUgKzI5LDE0IEBACiBdIGludGVyZmFjZSBJREJGYWN0b3J5IHsKICAgICBbQ2FsbFdp
dGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIElEQk9wZW5EQlJl
cXVlc3Qgb3BlbihET01TdHJpbmcgbmFtZSwgb3B0aW9uYWwgW0VuZm9yY2VSYW5nZV0gdW5zaWdu
ZWQgbG9uZyBsb25nIHZlcnNpb24pOwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gSURCT3BlbkRCUmVxdWVzdCBkZWxldGVEYXRhYmFzZShE
T01TdHJpbmcgbmFtZSk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFBy
b21pc2U8c2VxdWVuY2U8SURCRGF0YWJhc2VJbmZvPj4gZGF0YWJhc2VzKCk7CiAgICAgW0NhbGxX
aXRoPUdsb2JhbE9iamVjdCwgTWF5VGhyb3dFeGNlcHRpb25dIHNob3J0IGNtcChhbnkgZmlyc3Qs
IGFueSBzZWNvbmQpOwogfTsKKworWworICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0Us
CisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgSURCRGF0YWJhc2VJbmZv
IHsKKyAgICBET01TdHJpbmcgbmFtZTsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbjsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCmluZGV4IDk1NmRmYWU2NDUxNzQ5OGRlMzhl
NTQ4MzFiNTkxYjRmNjM1NWM5NTkuLjM5NzEyODVjODBkNTQ1M2ZhMWU1ZGEwMTJiYzJjMWMwODI1
MzJjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDb25uZWN0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAK
ICNpbmNsdWRlICJJREJDdXJzb3JJbmZvLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKKyNp
bmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmgiCisjaW5jbHVkZSAiSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJHZXRSZWNvcmREYXRhLmgi
CiAjaW5jbHVkZSAiSURCSXRlcmF0ZUN1cnNvckRhdGEuaCIKICNpbmNsdWRlICJJREJLZXlSYW5n
ZURhdGEuaCIKQEAgLTQ2OSw2ICs0NzEsMTUgQEAgdm9pZCBJREJDb25uZWN0aW9uUHJveHk6OmNv
bm5lY3Rpb25Ub1NlcnZlckxvc3QoY29uc3QgSURCRXJyb3ImIGVycm9yKQogICAgICAgICBhdXRv
IHJlc3VsdCA9IElEQlJlc3VsdERhdGE6OmVycm9yKHJlcXVlc3RJZGVudGlmaWVyLCBlcnJvcik7
CiAgICAgICAgIHJlcXVlc3QtPnBlcmZvcm1DYWxsYmFja09uT3JpZ2luVGhyZWFkKCpyZXF1ZXN0
LCAmSURCT3BlbkRCUmVxdWVzdDo6cmVxdWVzdENvbXBsZXRlZCwgcmVzdWx0KTsKICAgICB9CisK
KyAgICBWZWN0b3I8SURCUmVzb3VyY2VJZGVudGlmaWVyPiBpbmZvQ2FsbGJhY2tJZGVudGlmaWVy
czsKKyAgICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBsb2NrKG1fZGF0YWJhc2VJbmZvTWFwTG9j
ayk7CisgICAgICAgIGluZm9DYWxsYmFja0lkZW50aWZpZXJzID0gY29weVRvVmVjdG9yKG1fZGF0
YWJhc2VJbmZvQ2FsbGJhY2tzLmtleXMoKSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiByZXF1
ZXN0SWRlbnRpZmllciA6IGluZm9DYWxsYmFja0lkZW50aWZpZXJzKQorICAgICAgICBkaWRHZXRB
bGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIHsgfSk7CiB9CiAK
IHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpzY2hlZHVsZU1haW5UaHJlYWRUYXNrcygpCkBAIC00
OTYsMTIgKzUwNywzNiBAQCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6aGFuZGxlTWFpblRocmVh
ZFRhc2tzKCkKICAgICAgICAgdGFzay0+cGVyZm9ybVRhc2soKTsKIH0KIAotdm9pZCBJREJDb25u
ZWN0aW9uUHJveHk6OmdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1h
aW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIEZ1bmN0
aW9uPHZvaWQgKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik+JiYgY2FsbGJhY2spCit2b2lkIElEQkNv
bm5lY3Rpb25Qcm94eTo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8VmVjdG9yPElEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBDbGllbnRPcmln
aW4gb3JpZ2luIHsgY29udGV4dC5zZWN1cml0eU9yaWdpbigpLT5kYXRhKCksIGNvbnRleHQudG9w
T3JpZ2luKCkuZGF0YSgpIH07CisKKyAgICBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVz
dCogcmVxdWVzdDsKKyAgICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFz
ZUluZm9NYXBMb2NrKTsKKyAgICAgICAgYXV0byBuZXdSZXF1ZXN0ID0gSURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvblJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCAqdGhpcywgV1RGTW92ZShjYWxsYmFj
aykpOworICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2VJbmZvQ2FsbGJhY2tzLmNvbnRhaW5zKG5l
d1JlcXVlc3QtPnJlc291cmNlSWRlbnRpZmllcigpKSk7CisgICAgICAgIHJlcXVlc3QgPSBuZXdS
ZXF1ZXN0LnB0cigpOworICAgICAgICBtX2RhdGFiYXNlSW5mb0NhbGxiYWNrcy5hZGQobmV3UmVx
dWVzdC0+cmVzb3VyY2VJZGVudGlmaWVyKCksIFdURk1vdmUobmV3UmVxdWVzdCkpOworICAgIH0K
KworICAgIGNhbGxDb25uZWN0aW9uT25NYWluVGhyZWFkKCZJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucywgcmVxdWVzdC0+cmVzb3VyY2VJZGVudGlm
aWVyKCksIG9yaWdpbik7Cit9CisKK3ZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpkaWRHZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1
ZXN0SWRlbnRpZmllciwgT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+
PiYmIGRhdGFiYXNlcykKIHsKLSAgICAvLyBUaGlzIG1ldGhvZCBpcyBvbmx5IG1lYW50IHRvIGJl
IGNhbGxlZCBieSB0aGUgd2ViIGluc3BlY3RvciBvbiB0aGUgbWFpbiB0aHJlYWQuCi0gICAgUkVM
RUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIFJlZlB0cjxJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdD4gcmVxdWVzdDsKKyAgICB7CisgICAgICAgIExvY2tlcjxMb2NrPiBs
b2NrZXIobV9kYXRhYmFzZUluZm9NYXBMb2NrKTsKKyAgICAgICAgYXV0byB0YWtlblJlcXVlc3Qg
PSBtX2RhdGFiYXNlSW5mb0NhbGxiYWNrcy50YWtlKHJlcXVlc3RJZGVudGlmaWVyKTsKKworICAg
ICAgICBpZiAoIXRha2VuUmVxdWVzdCkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgIG1fY29u
bmVjdGlvblRvU2VydmVyLmdldEFsbERhdGFiYXNlTmFtZXMobWFpbkZyYW1lT3JpZ2luLCBvcGVu
aW5nT3JpZ2luLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIHJlcXVlc3QgPSBXVEZNb3Zl
KCp0YWtlblJlcXVlc3QpOworICAgIH0KKworICAgIHJlcXVlc3QtPnBlcmZvcm1DYWxsYmFja09u
T3JpZ2luVGhyZWFkKCpyZXF1ZXN0LCAmSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6
OmNvbXBsZXRlLCBXVEZNb3ZlKGRhdGFiYXNlcykpOwogfQogCiB2b2lkIElEQkNvbm5lY3Rpb25Q
cm94eTo6cmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oSURCRGF0YWJhc2UmIGRhdGFiYXNlKQpA
QCAtNTk2LDYgKzYzMSwxMCBAQCB2b2lkIElEQkNvbm5lY3Rpb25Qcm94eTo6Zm9yZ2V0QWN0aXZp
dHlGb3JDdXJyZW50VGhyZWFkKCkKICAgICAgICAgTG9ja2VyPExvY2s+IGxvY2sobV90cmFuc2Fj
dGlvbk9wZXJhdGlvbkxvY2spOwogICAgICAgICByZW1vdmVJdGVtc01hdGNoaW5nQ3VycmVudFRo
cmVhZChtX2FjdGl2ZU9wZXJhdGlvbnMpOwogICAgIH0KKyAgICB7CisgICAgICAgIExvY2tlcjxM
b2NrPiBsb2NrKG1fZGF0YWJhc2VJbmZvTWFwTG9jayk7CisgICAgICAgIHJlbW92ZUl0ZW1zTWF0
Y2hpbmdDdXJyZW50VGhyZWFkKG1fZGF0YWJhc2VJbmZvQ2FsbGJhY2tzKTsKKyAgICB9CiB9CiAK
IHZvaWQgSURCQ29ubmVjdGlvblByb3h5OjpzZXRDb250ZXh0U3VzcGVuZGVkKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGN1cnJlbnRDb250ZXh0LCBib29sIGlzQ29udGV4dFN1c3BlbmRlZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uUHJveHkuaAppbmRleCA0NjQyZjA5M2U3MzgyOWQ2NmFmYjYxMDk0OTQ2YWUx
OTcwMTljZjdlLi5lOGM0MDBhNmFkZjhkYjI0MzBkMGExNDMyMzlmYjBhYjI4M2VmYjg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkNvbm5lY3Rpb25Qcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCIKKyNpbmNs
dWRlICJJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQlJl
c291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlRyYW5zYWN0aW9uT3BlcmF0aW9uLmgiCiAj
aW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkUXVldWUuaD4KQEAgLTU3LDcgKzU4LDcgQEAgbmFtZXNw
YWNlIElEQkNsaWVudCB7CiAKIGNsYXNzIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjsKIAotY2xhc3Mg
SURCQ29ubmVjdGlvblByb3h5IHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIElEQkNvbm5lY3Rpb25Q
cm94eSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSURCQ29ubmVjdGlvblByb3h5KTsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTExNSw3ICsxMTYsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZWYoKTsKICAgICB2b2lkIGRlcmVmKCk7CiAKLSAgICB2b2lkIGdl
dEFsbERhdGFiYXNlTmFtZXMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZCAo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKT4mJik7CisgICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZ1bmN0aW9uPHZvaWQoT3B0aW9u
YWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmKT4mJik7CisgICAgdm9pZCBk
aWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiwgT3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmKTsKIAog
ICAgIHZvaWQgcmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oSURCRGF0YWJhc2UmKTsKICAgICB2
b2lkIHVucmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oSURCRGF0YWJhc2UmKTsKQEAgLTE2OSw2
ICsxNzEsOSBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBS
ZWZQdHI8VHJhbnNhY3Rpb25PcGVyYXRpb24+PiBtX2FjdGl2ZU9wZXJhdGlvbnM7CiAgICAgTG9j
ayBtX3RyYW5zYWN0aW9uT3BlcmF0aW9uTG9jazsKIAorICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJ
ZGVudGlmaWVyLCBSZWY8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q+PiBtX2RhdGFi
YXNlSW5mb0NhbGxiYWNrczsKKyAgICBMb2NrIG1fZGF0YWJhc2VJbmZvTWFwTG9jazsKKwogICAg
IENyb3NzVGhyZWFkUXVldWU8Q3Jvc3NUaHJlYWRUYXNrPiBtX21haW5UaHJlYWRRdWV1ZTsKICAg
ICBMb2NrIG1fbWFpblRocmVhZFRhc2tMb2NrOwogICAgIFJlZlB0cjxJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI+IG1fbWFpblRocmVhZFByb3RlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5jcHAKaW5kZXggNjE5NGE5ODFhMDFmZmFmNGE4ODY3MDZlYWRlYWFjYTgxMTNmNDZiMC4uMmNk
MmFiZjJmMTkwODA0NTNiMGYxNTMxMmU5NjNiN2NiMjFhOTVkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIklEQkNvbm5l
Y3Rpb25Qcm94eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSAiSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvbi5oIgogI2luY2x1ZGUgIklEQkdldFJlY29yZERhdGEuaCIKICNp
bmNsdWRlICJJREJLZXlSYW5nZURhdGEuaCIKICNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0Lmgi
CkBAIC00OTQsMjcgKzQ5NSwyNyBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRP
cGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3RpbwogICAgICAgICBt
X2RlbGVnYXRlLT5hYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKGRhdGFiYXNlQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgSURCQ29ubmVjdGlv
blRvU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWlu
RnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBGdW5jdGlv
bjx2b2lkIChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPiYmIGNhbGxiYWNrKQordm9pZCBJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGllbnRPcmlnaW4m
IG9yaWdpbikKIHsKLSAgICBzdGF0aWMgdWludDY0X3QgY2FsbGJhY2tJRCA9IDA7Ci0KLSAgICBt
X2dldEFsbERhdGFiYXNlTmFtZXNDYWxsYmFja3MuYWRkKCsrY2FsbGJhY2tJRCwgV1RGTW92ZShj
YWxsYmFjaykpOworICAgIExPRyhJbmRleGVkREIsICJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Omdl
dEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyIpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAKLSAgICBpZiAobV9zZXJ2ZXJDb25uZWN0aW9uSXNWYWxpZCkKLSAgICAgICAgbV9kZWxl
Z2F0ZS0+Z2V0QWxsRGF0YWJhc2VOYW1lcyhtYWluRnJhbWVPcmlnaW4uZGF0YSgpLCBvcGVuaW5n
T3JpZ2luLmRhdGEoKSwgY2FsbGJhY2tJRCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2tJ
RCA9IGNhbGxiYWNrSURdIHsKLSAgICAgICAgICAgIGRpZEdldEFsbERhdGFiYXNlTmFtZXMoY2Fs
bGJhY2tJRCwgeyB9KTsKLSAgICAgICAgfSk7CisgICAgaWYgKG1fc2VydmVyQ29ubmVjdGlvbklz
VmFsaWQpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNp
b25zKHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pOworICAgICAgICByZXR1cm47CiAgICAgfQor
CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpLCByZXF1ZXN0SWRlbnRpZmllcl0geworICAgICAgICBkaWRHZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIHsgfSk7CisgICAgfSk7CiB9CiAKLXZvaWQg
SURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNh
bGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVzKQordm9pZCBJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8SURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvbj4mJiBkYXRhYmFzZXMpCiB7Ci0gICAgYXV0byBjYWxsYmFjayA9
IG1fZ2V0QWxsRGF0YWJhc2VOYW1lc0NhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOwotICAgIEFT
U0VSVChjYWxsYmFjayk7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zIik7CisgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIAotICAgIGNhbGxiYWNrKGRhdGFiYXNlTmFtZXMpOworICAgIG1fcHJveHkt
PmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgV1RG
TW92ZShkYXRhYmFzZXMpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSURCQ2xpZW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggNWVkMjRmZTU2OGYxYWMyNTk2MGE5NmM0MDM5NWZj
YTUwYjg0NGFjNS4uMjRjNWIzMzgyNjU5MzZmZWY4MzBjZDhiZWJhODVhMWIwNGQzMmM2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtNDUsNiArNDUsOCBAQCBjbGFzcyBJREJS
ZXN1bHREYXRhOwogY2xhc3MgSURCVmFsdWU7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIAorc3Ry
dWN0IENsaWVudE9yaWdpbjsKK3N0cnVjdCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOwogc3Ry
dWN0IElEQkdldEFsbFJlY29yZHNEYXRhOwogc3RydWN0IElEQkdldFJlY29yZERhdGE7CiBzdHJ1
Y3QgSURCSXRlcmF0ZUN1cnNvckRhdGE7CkBAIC0xMzYsMjAgKzEzOCwxOCBAQCBwdWJsaWM6CiAg
ICAgLy8gdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiwgYnV0IHRoZSBwYWdlIGlzIGFscmVhZHkg
dG9ybiBkb3duLgogICAgIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAKLSAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMo
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIG9wZW5pbmdPcmlnaW4sIFdURjo6RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKT4mJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVz
KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVz
KTsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImLCBjb25zdCBDbGllbnRPcmlnaW4mKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImLCBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mJik7CiAKIHBy
aXZhdGU6CiAgICAgSURCQ29ubmVjdGlvblRvU2VydmVyKElEQkNvbm5lY3Rpb25Ub1NlcnZlckRl
bGVnYXRlJik7CiAKICAgICB0eXBlZGVmIHZvaWQgKElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6KlJl
c3VsdEZ1bmN0aW9uKShjb25zdCBJREJSZXN1bHREYXRhJik7CiAgICAgdm9pZCBjYWxsUmVzdWx0
RnVuY3Rpb25XaXRoRXJyb3JMYXRlcihSZXN1bHRGdW5jdGlvbiwgY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllcik7Ci0gICAgCisKICAgICBXZWFrUHRyPElEQkNv
bm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlPiBtX2RlbGVnYXRlOwogICAgIGJvb2wgbV9zZXJ2ZXJD
b25uZWN0aW9uSXNWYWxpZCB7IHRydWUgfTsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6
RnVuY3Rpb248dm9pZCAoY29uc3QgVmVjdG9yPFN0cmluZz4mKT4+IG1fZ2V0QWxsRGF0YWJhc2VO
YW1lc0NhbGxiYWNrczsKLQogICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJDb25uZWN0aW9uUHJveHk+
IG1fcHJveHk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0
ZS5oCmluZGV4IDBlZjdmYjU0YTE2MTgwN2VkNzU3MDIzODM0OTQ4YmZhNzcxY2U2MTYuLjY5NmU0
ZGViNTUzYThlZDIyNWZhMjIwMDljNmRiNDA4NWQ5OGY4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxl
Z2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCkBAIC00MSw2ICs0MSw3IEBAIGNsYXNzIElEQlJl
cXVlc3REYXRhOwogY2xhc3MgSURCVHJhbnNhY3Rpb25JbmZvOwogY2xhc3MgSURCVmFsdWU7CiAK
K3N0cnVjdCBDbGllbnRPcmlnaW47CiBzdHJ1Y3QgSURCR2V0QWxsUmVjb3Jkc0RhdGE7CiBzdHJ1
Y3QgSURCR2V0UmVjb3JkRGF0YTsKIHN0cnVjdCBJREJJdGVyYXRlQ3Vyc29yRGF0YTsKQEAgLTg3
LDcgKzg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5n
ZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IEluZGV4ZWREQjo6Q29u
bmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb3Bl
bkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYpID0gMDsKIAotICAgIHZp
cnR1YWwgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
bWFpbkZyYW1lT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4s
IHVpbnQ2NF90IGNhbGxiYWNrSUQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IENs
aWVudE9yaWdpbiYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElEQkNsaWVudApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rp
b25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAppbmRleCA2NDZmOWIyNTk2MWYzOTI2YzIxZWQwMTQ3
MmY1MDc3MDBmZmIxZTg4Li5lNWEyNzgzMjRjNmM0NzQwOTY1MDhjMDQwNjhjN2M1YjBiZGQ3YzE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
Q29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApAQCAtMjgsNiArMjgsNyBAQAog
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5h
bWVBbmRWZXJzaW9uLmgiCiAjaW5jbHVkZSAiVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4MSwxMCArMTgyLDEwIEBAIHZvaWQgSURCQ29u
bmVjdGlvblRvQ2xpZW50Ojpub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpCiAgICAgICAgIG1fZGVsZWdhdGUtPm5vdGlmeU9wZW5EQlJlcXVlc3RCbG9j
a2VkKHJlcXVlc3RJZGVudGlmaWVyLCBvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTsKIH0KIAotdm9p
ZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3Qg
Y2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpCit2b2lkIElE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uPiYmIGRhdGFiYXNlcykKIHsKICAgICBpZiAobV9kZWxlZ2F0
ZSkKLSAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lE
LCBkYXRhYmFzZU5hbWVzKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkR2V0QWxsRGF0YWJhc2VO
YW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFiYXNlcykpOwog
fQogCiB2b2lkIElEQkNvbm5lY3Rpb25Ub0NsaWVudDo6cmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rp
b24oVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiBjb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5oCmluZGV4IGNlNWM4MmRmZTYwZTFhMWMxZTJlZDM1MmFjMjM0ZjQwYTg1
MTEzOTcuLmRjZDk4OTIwODdlZmM4ZDA0NGRhZWQ4NTVkOTgyNzAyNjZiNjk0NzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9u
VG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTM5LDYgKzM5LDggQEAgY2xhc3MgSURCRXJyb3I7
CiBjbGFzcyBJREJSZXNvdXJjZUlkZW50aWZpZXI7CiBjbGFzcyBJREJSZXN1bHREYXRhOwogCitz
dHJ1Y3QgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjsKKwogbmFtZXNwYWNlIElEQlNlcnZlciB7
CiAKIGNsYXNzIFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjsKQEAgLTc0LDcgKzc2LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9u
LCB1aW50NjRfdCBuZXdWZXJzaW9uKTsKIAotICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1l
cyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1l
cyk7CisgICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiwgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiYp
OwogCiAgICAgdm9pZCByZWdpc3RlckRhdGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFz
ZUNvbm5lY3Rpb24mKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oVW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9D
bGllbnREZWxlZ2F0ZS5oCmluZGV4IDVlYTVhMmU3ZDJkMDRlOTc2ZjFhY2MyOTE1ZjBiNTMxMjJj
ZGIzMTEuLjY4YWNmNzY0ZGZhNjg2YTE0NTg2YTFiMjIzYWMwODY1YTYxMmIwMzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9u
VG9DbGllbnREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCkBAIC0zNiw2ICszNiw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIElEQkVycm9yOwogY2xhc3MgSURCUmVzdWx0RGF0
YTsKIAorc3RydWN0IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb247CisKIG5hbWVzcGFjZSBJREJT
ZXJ2ZXIgewogCiBjbGFzcyBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb247CkBAIC03MCw3ICs3
Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2VGcm9tU2VydmVyKFVuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYsIGNvbnN0IElEQkVycm9yJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBu
ZXdWZXJzaW9uKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1l
cyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1l
cykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lv
bnMoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24+JikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuY3BwCmluZGV4IGRlOTE2YzY2MzU2MDZiYTlkMzVjMzMxZTc4YmExOTIwNGZhNGMyYTUuLjFh
OTdjNzE0ODE4ZGMxOWEzNGUxOTFlY2Q4ZWE4NTQ5MDA5ODk0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC01
MDcsMzMgKzUwNywzNCBAQCB2b2lkIElEQlNlcnZlcjo6b3BlbkRCUmVxdWVzdENhbmNlbGxlZChj
b25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCiAgICAgICAgIG1fdW5pcXVlSURCRGF0
YWJhc2VNYXAucmVtb3ZlKHVuaXF1ZUlEQkRhdGFiYXNlLT5pZGVudGlmaWVyKCkpOwogfQogCi12
b2lkIElEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhJREJDb25uZWN0aW9uSWRlbnRpZmll
ciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBt
YWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwg
dWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgSURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNv
bnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OwogICAgIEFTU0VSVChtX2xvY2suaXNIZWxkKCkpOwogCiAgICAgYXV0byBkYXRhYmFzZURpcmVj
dG9yeVBhdGggPSB0aGlzLT5kYXRhYmFzZURpcmVjdG9yeVBhdGhJc29sYXRlZENvcHkoKTsKLSAg
ICBTdHJpbmcgb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURp
cmVjdG9yeVJlbGF0aXZlVG9Sb290KG1haW5GcmFtZU9yaWdpbiwgb3BlbmluZ09yaWdpbiwgZGF0
YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiKTsKKyAgICBTdHJpbmcgb2xkRGlyZWN0b3J5ID0gSURC
RGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdp
bi50b3BPcmlnaW4sIG9yaWdpbi5jbGllbnRPcmlnaW4sIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwg
InYwIik7CiAgICAgVmVjdG9yPFN0cmluZz4gZmlsZXMgPSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0
b3J5KG9sZERpcmVjdG9yeSwgIioiX3MpOwotICAgIFZlY3RvcjxTdHJpbmc+IGRhdGFiYXNlczsK
KyAgICBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4gZGF0YWJhc2VzOwogICAgIGZv
ciAoYXV0byYgZmlsZSA6IGZpbGVzKSB7Ci0gICAgICAgIFN0cmluZyBlbmNvZGVkTmFtZSA9IEZp
bGVTeXN0ZW06Omxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goZmlsZSk7
Ci0gICAgICAgIGRhdGFiYXNlcy5hcHBlbmQoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFz
ZU5hbWVGcm9tRW5jb2RlZEZpbGVuYW1lKGVuY29kZWROYW1lKSk7CisgICAgICAgIGF1dG8gZGF0
YWJhc2VUdXBsZSA9IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lv
bkZyb21GaWxlKFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVj
dG9yeShmaWxlKSk7CisgICAgICAgIGlmIChkYXRhYmFzZVR1cGxlKQorICAgICAgICAgICAgZGF0
YWJhc2VzLmFwcGVuZChXVEZNb3ZlKCpkYXRhYmFzZVR1cGxlKSk7CiAgICAgfQogCi0gICAgU3Ry
aW5nIGRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlS
ZWxhdGl2ZVRvUm9vdChtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIGRhdGFiYXNlRGly
ZWN0b3J5UGF0aCwgInYxIik7CisgICAgU3RyaW5nIGRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRl
bnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4udG9wT3JpZ2lu
LCBvcmlnaW4uY2xpZW50T3JpZ2luLCBkYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpOwogICAg
IGZpbGVzID0gRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShkaXJlY3RvcnksICIqIl9zKTsKICAg
ICBmb3IgKGF1dG8mIGZpbGUgOiBmaWxlcykgewotICAgICAgICBhdXRvIGRhdGFiYXNlTmFtZSA9
IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lRnJvbUZpbGUoU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5KGZpbGUpKTsKLSAgICAgICAg
aWYgKCFkYXRhYmFzZU5hbWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgZGF0YWJhc2VzLmFwcGVu
ZChkYXRhYmFzZU5hbWUpOworICAgICAgICBhdXRvIGRhdGFiYXNlVHVwbGUgPSBTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoZmlsZSkpOworICAgICAgICBp
ZiAoZGF0YWJhc2VUdXBsZSkKKyAgICAgICAgICAgIGRhdGFiYXNlcy5hcHBlbmQoV1RGTW92ZSgq
ZGF0YWJhc2VUdXBsZSkpOwogICAgIH0KIAogICAgIGF1dG8gY29ubmVjdGlvbiA9IG1fY29ubmVj
dGlvbk1hcC5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIGlmICghY29ubmVj
dGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29ubmVjdGlvbi0+ZGlkR2V0QWxsRGF0YWJh
c2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFzZXMpOworICAgIGNvbm5lY3Rpb24tPmRpZEdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShkYXRh
YmFzZXMpKTsKIH0KIAogdm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9k
aWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IDQwOTg3NDlm
NTc4N2IwNzljN2ExZWVhODQxOGU2MTI5OGU3N2RjYmQuLjc3YjdmNTg0OTI4OGZlMDFkZWI0ZjJi
ODQ2ZWEzNWFjZjZkNzE2YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKQEAgLTg5LDcgKzg5LDggQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyLCBJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJlaGFsZk9m
U2VydmVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQo
Y29uc3QgSURCUmVxdWVzdERhdGEmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0QWxs
RGF0YWJhc2VOYW1lcyhJREJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMo
SURCQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNv
bnN0IENsaWVudE9yaWdpbiYpOworCiAKICAgICB2b2lkIHJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0
aW9uKFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOwogICAgIHZvaWQgdW5yZWdpc3RlckRh
dGFiYXNlQ29ubmVjdGlvbihVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNr
aW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggZWFhZDdlOTBiZWRmNmVkZGI0ZTllMWQ1ZmI3
MDA2OGZhMTRmZTM3OC4uNGY5N2RlNzIxM2QwNjgxMTQ1MTY5ZDMwYWM0NzFjMTg3NDFmNTNkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0
ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTkxMiwxOSArOTEyLDMxIEBA
IFN0cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGgoKSBjb25zdAog
ICAgIHJldHVybiBmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5KG1fZGF0YWJhc2VEaXJlY3Rv
cnkpOwogfQogCi1TdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVGcm9t
RmlsZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCkKK09wdGlvbmFsPElEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb24+IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VOYW1lQW5kVmVyc2lv
bkZyb21GaWxlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQogewogICAgIFNRTGl0ZURhdGFi
YXNlIGRhdGFiYXNlOwogICAgIGlmICghZGF0YWJhc2Uub3BlbihkYXRhYmFzZVBhdGgpKSB7CiAg
ICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIG9wZW4gU1FMaXRlIGRhdGFiYXNlIGF0IHBhdGgg
JyVzJyB3aGVuIGdldHRpbmcgZGF0YWJhc2UgbmFtZSIsIGRhdGFiYXNlUGF0aC51dGY4KCkuZGF0
YSgpKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
ICAgICB9CiAgICAgaWYgKCFkYXRhYmFzZS50YWJsZUV4aXN0cygiSURCRGF0YWJhc2VJbmZvIl9z
KSkgewogICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBmaW5kIElEQkRhdGFiYXNlSW5mbyB0
YWJsZSBhbmQgZ2V0IGRhdGFiYXNlIG5hbWUoJWkpIC0gJXMiLCBkYXRhYmFzZS5sYXN0RXJyb3Io
KSwgZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwotICAgICAgICByZXR1cm4geyB9OworICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KLSAgICBTUUxpdGVTdGF0ZW1lbnQgc3FsKGRh
dGFiYXNlLCAiU0VMRUNUIHZhbHVlIEZST00gSURCRGF0YWJhc2VJbmZvIFdIRVJFIGtleSA9ICdE
YXRhYmFzZU5hbWUnOyIpOwotICAgIHJldHVybiBzcWwuZ2V0Q29sdW1uVGV4dCgwKTsKKworICAg
IFNRTGl0ZVN0YXRlbWVudCBuYW1lc3FsKGRhdGFiYXNlLCAiU0VMRUNUIHZhbHVlIEZST00gSURC
RGF0YWJhc2VJbmZvIFdIRVJFIGtleSA9ICdEYXRhYmFzZU5hbWUnOyIpOworICAgIGF1dG8gZGF0
YWJhc2VOYW1lID0gbmFtZXNxbC5nZXRDb2x1bW5UZXh0KDApOworCisgICAgU1FMaXRlU3RhdGVt
ZW50IHZlcnNxbChkYXRhYmFzZSwgIlNFTEVDVCB2YWx1ZSBGUk9NIElEQkRhdGFiYXNlSW5mbyBX
SEVSRSBrZXkgPSAnRGF0YWJhc2VWZXJzaW9uJzsiX3MpOworICAgIFN0cmluZyBzdHJpbmdWZXJz
aW9uID0gdmVyc3FsLmdldENvbHVtblRleHQoMCk7CisgICAgYm9vbCBvazsKKyAgICB1aW50NjRf
dCBkYXRhYmFzZVZlcnNpb24gPSBzdHJpbmdWZXJzaW9uLnRvVUludDY0U3RyaWN0KCZvayk7Cisg
ICAgaWYgKCFvaykgeworICAgICAgICBMT0dfRVJST1IoIkRhdGFiYXNlIHZlcnNpb24gb24gZGlz
ayAoJyVzJykgZG9lcyBub3QgY2xlYW5seSBjb252ZXJ0IHRvIGFuIHVuc2lnbmVkIDY0LWJpdCBp
bnRlZ2VyIHZlcnNpb24iLCBzdHJpbmdWZXJzaW9uLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiBJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uIHsgZGF0YWJhc2VOYW1lLCBkYXRhYmFzZVZlcnNpb24gfTsKIH0KIAogU3RyaW5n
IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlRGlyZWN0b3J5V2l0aFVwZ3JhZGUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IGJiNWViYjU1OTBlNzQ3MzA3OTI3
NDlmZWUyY2YxYWFjNWM2OTQzOGYuLjczZjhmY2ZiMzk2MDliYzU3YmNlYzU5YTNmYjVlYzJjOTlm
MmQ3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJJREJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUluZm8uaCIKKyNpbmNsdWRlICJJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uLmgiCiAjaW5jbHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiU1FMaXRlSURCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJTUUxpdGVTdGF0
ZW1lbnRBdXRvUmVzZXRTY29wZS5oIgpAQCAtMTAxLDcgKzEwMiw3IEBAIHB1YmxpYzoKIAogICAg
IFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJhc2VEaXJl
Y3Rvcnk7IH07CiAgICAgc3RhdGljIFN0cmluZyBmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5
KGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyBTdHJpbmcgZGF0YWJhc2VOYW1lRnJvbUZpbGUo
Y29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIE9wdGlvbmFsPElEQkRhdGFiYXNlTmFtZUFuZFZl
cnNpb24+IGRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShjb25zdCBTdHJpbmcmKTsKIAog
ICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklE
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3
ZDhmNjlkN2RjMmQ1NjA5M2JlMGQ5ZDVjOWQ2ZGNhODA4NGZmMTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VOYW1l
QW5kVmVyc2lvbi5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
RGFycnlsIFBvZ3VlIChkYXJyeWxAZHBvZ3VlLmNhKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IElEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb24geworICAgIFN0cmluZyBuYW1lOworICAgIHVpbnQ2NF90IHZlcnNpb24geyAw
IH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPElEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb24+IGRlY29kZShEZWNvZGVyJik7CisKKyAgICBJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0OworfTsKKwordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBuYW1lIDw8IHZlcnNpb247Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uPiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKK3sKKyAgICBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIGluZm87CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGluZm8ubmFtZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8udmVyc2lvbikpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gaW5mbzsKK30KKworaW5saW5lIElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb24gSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbjo6aXNvbGF0ZWRDb3B5KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4geyBuYW1lLmlzb2xhdGVkQ29weSgpLCB2ZXJzaW9uIH07Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmNjUxNzdkNjc4ZDM3MDRlMzc4YTg5YmI4Nzg4ZWZm
YzBmZmNmYWRjLi40MTQ5NDRhYWEzYWE1ZjAwOTJmMWI4MDFlZjZkMjAwODE2MTVmNDViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtODgsNiArODgsNyBAQCBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3Iu
Y3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuY3BwCiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRl
bnRpZmllci5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25S
ZXF1ZXN0LmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkdldEFsbFJlc3VsdC5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkdldFJlc3Vs
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmM2FhMTlmYTQzYTJjMDlkZjY0YTYxZGQ4YjBhOTdkZTMzNzQ0ZjYwLi4wYzFl
MTlhMDBkNGI3ZWM4MjIxZjZkZDZlNDU0NDE3NzkxNGNlZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTg0LDYgKzI1ODQs
OCBAQAogCQk4RjY3NTYxQjEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEY2NzU2MTkxMjg4QjE3QjAw
NDdBQ0EzIC8qIEV2ZW50UXVldWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmRE
ZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTAwMTc3M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAq
LzsgfTsKIAkJOTAwMTc4ODExMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0
aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAw
MTc4N0YxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9
OworCQk5MDE2RUE0RDI0NTREODEzMDAyMUQ5RDEgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAxNkVB
NEMyNDU0RDgxMzAwMjFEOUQxIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MEUzNTFDMjI0N0U0
NkU0MDBGQkYyNEYgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRTM1MUJEMjQ3RTNENDgw
MEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkxMDlFOUM4MjIyQ0FCQ0Ew
MEJCNjI2NCAvKiBJbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTEwOUU5QzUyMjJDQUJDODAwQkI2MjY0
IC8qIEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi87IH07CiAJCTkxMDlFOUM4MjIy
Q0FCQ0EwMEJCNjI2NSAvKiBKU0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTA5RTlDNTIyMkNBQkM4
MDBCQjYyNjUgLyogSlNJbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5oICovOyB9OwogCQk5
MTI3OEQ1RTIxREVEQUQ2MDBCNTcxODQgLyogUGFnZUF1ZGl0QWdlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxMjc4RDVDMjFERURBRDUwMEI1NzE4
NCAvKiBQYWdlQXVkaXRBZ2VudC5oICovOyB9OwpAQCAtMTA3MTQsNiArMTA3MTYsOSBAQAogCQk5
MDAxNzczRjEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3ODdFMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTAxNkVBNEMyNDU0RDgxMzAw
MjFEOUQxIC8qIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MEUzNTFCQzI0N0UzRDQ4MDBGQkYyNEYgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
MEUzNTFCRDI0N0UzRDQ4MDBGQkYyNEYgLyogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRGF0YWJhc2VOYW1lQW5k
VmVyc2lvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTEwOUU5QzUy
MjJDQUJDODAwQkI2MjY0IC8qIEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxMDlFOUM1MjIyQ0FCQzgwMEJCNjI2
NSAvKiBKU0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTEwOUU5QzcyMjJDQUJDOTAwQkI2MjY0IC8qIEluc3Bl
Y3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MzcxLDYgKzE5Mzc2LDcgQEAKIAkJCQk1MTEwRkNGQjFFMDM2
MkE1MDA2RjhEMEIgLyogSURCQ3Vyc29yUmVjb3JkLmggKi8sCiAJCQkJNTFCQTRBQzExQkJCNUNC
RjAwREYzRDZEIC8qIElEQkRhdGFiYXNlSW5mby5jcHAgKi8sCiAJCQkJNTFCQTRBQzIxQkJCNUNC
RjAwREYzRDZEIC8qIElEQkRhdGFiYXNlSW5mby5oICovLAorCQkJCTkwMTZFQTRDMjQ1NEQ4MTMw
MDIxRDlEMSAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uLmggKi8sCiAJCQkJNTE0ODQ1M0Mx
QkI5RDA3NjAwNkE3MkVEIC8qIElEQkVycm9yLmNwcCAqLywKIAkJCQk1MTQ4NDUzRDFCQjlEMDc2
MDA2QTcyRUQgLyogSURCRXJyb3IuaCAqLywKIAkJCQk1MTlEQkM2RDFEQzAwRkI5MDAzMjlCRjUg
LyogSURCR2V0QWxsUmVjb3Jkc0RhdGEuY3BwICovLApAQCAtMjI4NDcsNiArMjI4NTMsOCBAQAog
CQkJCTUxRDcxOTdFMTgxMTA2REYwMDE2REM1MSAvKiBJREJEYXRhYmFzZS5pZGwgKi8sCiAJCQkJ
NTEwMzEwNUUxQkE4RTA5MDAwMzMyOUMwIC8qIElEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAgKi8s
CiAJCQkJNTEwMzEwNUYxQkE4RTA5MDAwMzMyOUMwIC8qIElEQkRhdGFiYXNlSWRlbnRpZmllci5o
ICovLAorCQkJCTkwRTM1MUJDMjQ3RTNENDgwMEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uUmVxdWVzdC5jcHAgKi8sCisJCQkJOTBFMzUxQkQyNDdFM0Q0ODAwRkJGMjRGIC8qIElE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmggKi8sCiAJCQkJNTE2NDVCNDYxQjlGODg5
QjAwRjc4OUNFIC8qIElEQkZhY3RvcnkuY3BwICovLAogCQkJCTUxNjQ1QjQ3MUI5Rjg4OUIwMEY3
ODlDRSAvKiBJREJGYWN0b3J5LmggKi8sCiAJCQkJNTFENzE5OEExODExMDZERjAwMTZEQzUxIC8q
IElEQkZhY3RvcnkuaWRsICovLApAQCAtMzA5MjksNiArMzA5MzcsOCBAQAogCQkJCTUxODVGQzgx
MUJCNEM0RTgwMDEyODk4RiAvKiBJREJEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4
NUZDODcxQkI0QzRFODAwMTI4OThGIC8qIElEQkRhdGFiYXNlSWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTFCQTRBQzQxQkJCNUNEODAwREYzRDZEIC8qIElEQkRhdGFiYXNlSW5mby5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTAxNkVBNEQyNDU0RDgxMzAwMjFEOUQxIC8qIElEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTkwRTM1MUMyMjQ3RTQ2RTQw
MEZCRjI0RiAvKiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTE0ODQ1M0YxQkI5RDA3RTAwNkE3MkVEIC8qIElEQkVycm9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTg1RkM4RDFCQjRDNEU4MDAxMjg5OEYgLyogSURCRmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE5REJDNkYxREMwMTFBNzAwMzI5QkY1IC8qIElEQkdldEFsbFJlY29y
ZHNEYXRhLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXggYzhlYjcx
Yjk0YWM4MWQ1NDhjZTEyN2E2MWIwYzIxMGM1NjcyMjE4MC4uZmY4ZjMwZjQwM2Y4NWM3ZGRiZTMx
YjEwZTAzY2VmNWZjZGY3ZjAwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTU5Niw5ICs1
OTYsNyBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpyZXF1ZXN0RGF0YWJhc2VOYW1l
cyhjb25zdCBTdHJpbmcmIHNlY3VyaXR5T3JpZ2luLAogICAgIGlmICghZ2V0RG9jdW1lbnRBbmRJ
REJGYWN0b3J5RnJvbUZyYW1lT3JTZW5kRmFpbHVyZShmcmFtZSwgZG9jdW1lbnQsIGlkYkZhY3Rv
cnksIGNhbGxiYWNrKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byYgb3BlbmluZ09yaWdp
biA9IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwotICAgIGF1dG8mIHRvcE9yaWdpbiA9IGRv
Y3VtZW50LT50b3BPcmlnaW4oKTsKLSAgICBpZGJGYWN0b3J5LT5nZXRBbGxEYXRhYmFzZU5hbWVz
KHRvcE9yaWdpbiwgb3BlbmluZ09yaWdpbiwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KGF1dG8mIGRhdGFiYXNlTmFtZXMpIHsKKyAgICBpZGJGYWN0b3J5LT5nZXRBbGxEYXRhYmFzZU5h
bWVzKCpkb2N1bWVudCwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mIGRhdGFi
YXNlTmFtZXMpIHsKICAgICAgICAgaWYgKCFjYWxsYmFjay0+aXNBY3RpdmUoKSkKICAgICAgICAg
ICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCA4
N2QwYjg2Mzk1NmRmMDA1M2Y5NDkwNDhkMzBmMTYwYzlmZTFiOWMzLi4zMDE1Mzg1YmJlZGZiMWUw
ODE2YmY5ODk4OGU2MzJmMzI2MzJhNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtMTUyLDcgKzE1Miw3IEBAIGNsYXNzIEVtcHR5RGF0YWJhc2VQcm92aWRlciBm
aW5hbCA6IHB1YmxpYyBEYXRhYmFzZVByb3ZpZGVyIHsKICAgICAgICAgdm9pZCBhYm9ydE9wZW5B
bmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90LCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKSBm
aW5hbCB7IH0KICAgICAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90
LCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJbmRleGVkREI6OkNvbm5lY3Rp
b25DbG9zZWRPbkJlaGFsZk9mU2VydmVyKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBvcGVuREJS
ZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJlcXVlc3REYXRhJikgZmluYWwgeyB9Ci0gICAgICAg
IHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmLCB1aW50NjRfdCkgZmluYWwgeyB9CisgICAgICAgIHZvaWQg
Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYsIGNvbnN0IENsaWVudE9yaWdpbiYpIGZpbmFsIHsgfQogICAgICAgICB+RW1wdHlJREJDb25u
ZWN0aW9uVG9TZXJ2ZXJEZWxldGVnYXRlKCkgeyB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IGMxZDhiMzliNWZhYzBkYjViZWIwOTJm
ZmYwYzI4NTYwYjI1M2YzMmIuLjY0YWExODIwOTk5NTBhMmI1YTRlMTNiM2QxZDRkNDdmYTdmYmI2
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTI4
MTAsMTMgKzI4MTAsMTMgQEAgc3RhdGljIHN0ZDo6cGFpcjxSZWZQdHI8SW1hZ2U+LCBmbG9hdD4g
Y3JlYXRlQXR0YWNobWVudFBsYWNlaG9sZGVySW1hZ2UoZmxvYXQgZGUKICAgICByZXR1cm4geyBJ
bWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoIkF0dGFjaG1lbnRQbGFjZWhvbGRlciIpLCAxIH07
CiB9CiAKKyNlbmRpZgorCiBTdHJpbmcgUmVuZGVyVGhlbWVNYWM6OmV4dHJhRGVmYXVsdFN0eWxl
U2hlZXQoKQogewogICAgIHJldHVybiB7IH07CiB9CiAKLSNlbmRpZgotCiBzdGF0aWMgdm9pZCBw
YWludEF0dGFjaG1lbnRJY29uUGxhY2Vob2xkZXIoY29uc3QgUmVuZGVyQXR0YWNobWVudCYgYXR0
YWNobWVudCwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBBdHRhY2htZW50TGF5b3V0JiBsYXlv
dXQpCiB7CiAgICAgYXV0byBbcGxhY2Vob2xkZXJJbWFnZSwgaW1hZ2VTY2FsZV0gPSBjcmVhdGVB
dHRhY2htZW50UGxhY2Vob2xkZXJJbWFnZShhdHRhY2htZW50LmRvY3VtZW50KCkuZGV2aWNlU2Nh
bGVGYWN0b3IoKSwgbGF5b3V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3Bw
CmluZGV4IGYyYWZlMWE4YjhhYjhjZWFhYTFjYzcxMmVmYTRlYWMxNzZlZjYzZDQuLmQwYjg4ZjIz
ZmQ3ZGE0ZWM2ZWM2M2E0NjIyZTNjMDJkNzY0ZjI0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50LmNwcApAQCAtMTkzLDkgKzE5Myw5IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50Ojpub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJS
ZXNvCiAgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpOb3RpZnlP
cGVuREJSZXF1ZXN0QmxvY2tlZChyZXF1ZXN0SWRlbnRpZmllciwgb2xkVmVyc2lvbiwgbmV3VmVy
c2lvbikpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0QWxsRGF0
YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0
YWJhc2VOYW1lcykKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OklEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb24+JiBkYXRhYmFzZXMpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29u
bmVjdGlvblRvU2VydmVyOjpEaWRHZXRBbGxEYXRhYmFzZU5hbWVzKGNhbGxiYWNrSUQsIGRhdGFi
YXNlTmFtZXMpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OkRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgZGF0
YWJhc2VzKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9DbGllbnQuaAppbmRleCA5OTUwODNiMDQ2YWQwZGQ5N2VlMzE5ODcyMDk1MmJkZWNiYzg5
MzZlLi43MzE1ZjEwYWZjMzdhMWYxNTQ2NTI0MmFiMGQyY2QxOTlhZDNmODYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaApAQCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlkQ2xvc2VGcm9tU2VydmVyKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2VDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKSBmaW5hbDsKICAgICB2
b2lkIG5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNl
SWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2
NF90IG5ld1ZlcnNpb24pIGZpbmFsOwogCi0gICAgdm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVz
KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhYmFzZU5hbWVz
KSBmaW5hbDsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhjb25z
dCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mKSBmaW5hbDsKIAogICAgIHRlbXBsYXRlPGNsYXNz
IE1lc3NhZ2VUeXBlPiB2b2lkIGhhbmRsZUdldFJlc3VsdChjb25zdCBXZWJDb3JlOjpJREJSZXN1
bHREYXRhJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0lu
ZGV4ZWREQi9XZWJJREJTZXJ2ZXIuY3BwCmluZGV4IDUwOGJkOTI5MTM0OTA3YTE2OWI2NTFjN2I4
YWVlMWM5Mjc3MmY4ZDMuLjk4OTExZjUyNGZmZmMyYjYyNWVmMjFiMDliYjcxM2MwZjkwYjFjYTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCU2VydmVyLmNwcApAQCAtMzE1LDcgKzMxNSw3IEBAIHZvaWQgV2ViSURCU2VydmVyOjpv
cGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiByZXF1
ZXN0CiAgICAgbV9zZXJ2ZXItPm9wZW5EQlJlcXVlc3RDYW5jZWxsZWQocmVxdWVzdERhdGEpOwog
fQogCi12b2lkIFdlYklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgbWFpbkZy
YW1lT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmln
aW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJh
c2VOYW1lc0FuZFZlcnNpb25zKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4pCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAKQEAgLTMyMyw3ICszMjMsNyBAQCB2b2lkIFdlYklEQlNlcnZlcjo6Z2V0QWxsRGF0
YWJhc2VOYW1lcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcgogICAg
IEFTU0VSVCh3ZWJJREJDb25uZWN0aW9uKTsKIAogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Vy
dmVyLT5sb2NrKCkpOwotICAgIG1fc2VydmVyLT5nZXRBbGxEYXRhYmFzZU5hbWVzKHdlYklEQkNv
bm5lY3Rpb24tPmlkZW50aWZpZXIoKSwgbWFpbkZyYW1lT3JpZ2luLCBvcGVuaW5nT3JpZ2luLCBj
YWxsYmFja0lEKTsKKyAgICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KHdlYklEQkNvbm5lY3Rpb24tPmlkZW50aWZpZXIoKSwgcmVxdWVzdElkZW50aWZpZXIsIG9yaWdp
bik7CiB9CiAKIHZvaWQgV2ViSURCU2VydmVyOjphZGRDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZp
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dl
YklEQlNlcnZlci5oCmluZGV4IGQ0MDNmNmM4NDBjMzAyNTIyNzRkMmQzYTc4MjQ1ZTIyOTg3MzAy
NjcuLjg1MzgyNzdiNmQyYzlkODFkYzczYTM3Nzc5NWI1NDgwMGY5ODBhMmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5o
CkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVO
ZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogICAgIHZv
aWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJbmRleGVkREI6OkNvbm5lY3Rpb25DbG9zZWRPbkJl
aGFsZk9mU2VydmVyKTsKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgV2Vi
Q29yZTo6SURCUmVxdWVzdERhdGEmKTsKLSAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoSVBD
OjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAg
dm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSVBDOjpDb25uZWN0aW9uJiwgY29u
c3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJik7CiAKICAgICB2b2lkIGFkZENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiwgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlQ29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbgppbmRleCAyMDlmNTQw
MjYxNTA1MWU2OTdlMmZkZGQ1NzczODk0MTJiM2RkNmQzLi5mMTVkNjNmOThmMjQxOThlNzMxYzIw
N2VkODdmOWQwNWQxMWI5NmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCkBAIC01
MCw3ICs1MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYklEQlNlcnZlciB7CiAgICAgRGlkRmlyZVZlcnNp
b25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJD
b3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIFdlYkNvcmU6Oklu
ZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIgY29ubmVjdGlvbkNsb3Nl
ZE9uQmVoYWxmT2ZTZXJ2ZXIpCiAgICAgT3BlbkRCUmVxdWVzdENhbmNlbGxlZChXZWJDb3JlOjpJ
REJSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSkKIAotICAgIEdldEFsbERhdGFiYXNlTmFtZXMoc3Ry
dWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkg
V2FudHNDb25uZWN0aW9uCisgICAgR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKFdlYkNv
cmU6OklEQlJlc291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgc3RydWN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIFdhbnRzQ29ubmVjdGlvbgogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcAppbmRleCAwZTk3ODM2Nzc5ZDY2MGQ2MDhiMzBmMWI0MTZhNTQxYzhl
MzFjYmFjLi5lNjRkMThlNTY1ZmQwNGIxM2Q3MzFkZDQxOGNmNTEwZjRmMjlhZjk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKQEAgLTIwNyw5ICsy
MDcsOSBAQCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6b3BlbkRCUmVxdWVzdENhbmNl
bGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdQogICAgIHNlbmQoTWVzc2FnZXM6OldlYklE
QlNlcnZlcjo6T3BlbkRCUmVxdWVzdENhbmNlbGxlZChyZXF1ZXN0RGF0YSkpOwogfQogCi12b2lk
IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGll
bnRPcmlnaW4mIG9yaWdpbikKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXI6Okdl
dEFsbERhdGFiYXNlTmFtZXModG9wT3JpZ2luLCBvcGVuaW5nT3JpZ2luLCBjYWxsYmFja0lEKSk7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCU2VydmVyOjpHZXRBbGxEYXRhYmFzZU5hbWVzQW5k
VmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIG9yaWdpbikpOwogfQogCiB2b2lkIFdlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgSURCUmVzdWx0RGF0YSYg
cmVzdWx0KQpAQCAtMzIyLDkgKzMyMiw5IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
Ojpub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBJREJSZXNvdXJjZUlkZW50CiAgICAg
bV9jb25uZWN0aW9uVG9TZXJ2ZXItPm5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKHJlcXVlc3RJ
ZGVudGlmaWVyLCBvbGRWZXJzaW9uLCBuZXdWZXJzaW9uKTsKIH0KIAotdm9pZCBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJ
RCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpCit2b2lkIFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uPiYmIGRhdGFiYXNlcykKIHsKLSAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZl
ci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyhjYWxsYmFja0lELCBkYXRhYmFzZU5hbWVzKTsKKyAg
ICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFiYXNlcykpOwogfQogCiB2b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y29ubmVjdGlvblRvU2VydmVyTG9zdCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IDk3MDU4ZDNlZTE4YWNiOTA2
ZjQzY2Q1ZDVmZDk5YjZmNjI4NDg3MWEuLjU4ZGNiNGI5NzEyZDNkNGEzNjI5ZGRhNGExMGUwMmVh
ZTIzNTBlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5o
CkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaXJlVmVyc2lvbkNoYW5n
ZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZTZXJ2ZXIpIGZpbmFsOwog
ICAgIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0
RGF0YSYpIGZpbmFsOwogCi0gICAgdm9pZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFsOwor
ICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKGNvbnN0IFdlYkNvcmU6OklE
QlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGZpbmFs
OwogCiAgICAgLy8gTWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBOZXR3b3JrIFByb2Nlc3MKICAgICB2
b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsKQEAg
LTEwNSw3ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkU3RhcnRUcmFuc2FjdGlvbihj
b25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKTsKICAgICB2b2lkIGRpZENsb3NlRnJvbVNlcnZl
cih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJ
REJFcnJvciYpOwogICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2Vi
Q29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qg
b2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbik7Ci0gICAgdm9pZCBkaWRHZXRBbGxEYXRh
YmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRh
YmFzZU5hbWVzKTsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhj
b25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBWZWN0b3I8V2ViQ29yZTo6SURC
RGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4mJik7CiAKICAgICBSZWY8V2ViQ29yZTo6SURCQ2xpZW50
OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1fY29ubmVjdGlvblRvU2VydmVyOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5p
bgppbmRleCA4ZDk3ZTQ0ZTM1YzNjMGZmZTUzZDA2YzNiNmRiYjMyMmU3ZDZmMWMwLi42NGYyNjM5
YzBhNDRjMmM3OGNlZjBiMmYwZmJmZWUyZDUzNjU1YjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluCkBAIC00Nyw3ICs0
Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciB7CiAgICAgRGlkQ2xv
c2VGcm9tU2VydmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OklEQkVycm9yIGVycm9yKSBmaW5hbDsKICAgICBOb3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tl
ZChXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2
NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pCiAKLSAgICBEaWRHZXRBbGxEYXRh
YmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIFZlY3RvcjxTdHJpbmc+IGRhdGFiYXNlTmFt
ZXMpCisgICAgRGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKFdlYkNvcmU6OklEQlJl
c291cmNlSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OklEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb24+IGRhdGFiYXNlcykKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdl
L0luUHJvY2Vzc0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Q
cm9jZXNzSURCU2VydmVyLmNwcAppbmRleCBhNTQ5YjA0OTA1YzZhMjIzY2Q2NzZjMDkwYzA0YTRi
NzE3MmU3ZmEwLi5hNzk2ZjA4MjExY2Y3NDUyNGY1ZDQ4Mzk1MzI3NmY4MDc4NTY4NjU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNw
cApAQCAtNDc2LDE4ICs0NzYsMTggQEAgdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6Om9wZW5EQlJl
cXVlc3RDYW5jZWxsZWQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmIHIKICAgICB9KTsK
IH0KIAotdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMoY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBtYWluRnJhbWVPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgSW5Qcm9jZXNz
SURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6
SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgQ2xpZW50T3Jp
Z2luJiBvcmlnaW4pCiB7Ci0gICAgZGlzcGF0Y2hUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+aWRlbnRp
ZmllcigpLCBtYWluRnJhbWVPcmlnaW4gPSBtYWluRnJhbWVPcmlnaW4uaXNvbGF0ZWRDb3B5KCks
IG9wZW5pbmdPcmlnaW4gPSBvcGVuaW5nT3JpZ2luLmlzb2xhdGVkQ29weSgpLCBjYWxsYmFja0lE
XSB7CisgICAgZGlzcGF0Y2hUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGlkZW50aWZpZXIgPSBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+aWRlbnRpZmllcigpLCByZXF1
ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpXSB7CiAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc2VydmVyLT5sb2NrKCkpOwotICAgICAgICBtX3NlcnZlci0+
Z2V0QWxsRGF0YWJhc2VOYW1lcyhpZGVudGlmaWVyLCBtYWluRnJhbWVPcmlnaW4sIG9wZW5pbmdP
cmlnaW4sIGNhbGxiYWNrSUQpOworICAgICAgICBtX3NlcnZlci0+Z2V0QWxsRGF0YWJhc2VOYW1l
c0FuZFZlcnNpb25zKGlkZW50aWZpZXIsIHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pOwogICAg
IH0pOwogfQogCi12b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1l
cyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1l
cykKK3ZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVy
c2lvbnMoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRp
ZmllciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiBk
YXRhYmFzZXMpCiB7Ci0gICAgZGlzcGF0Y2hUYXNrUmVwbHkoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2tJRCwgZGF0YWJhc2VOYW1lcyA9IGRhdGFiYXNlTmFt
ZXMuaXNvbGF0ZWRDb3B5KCldIHsKLSAgICAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZEdl
dEFsbERhdGFiYXNlTmFtZXMoY2FsbGJhY2tJRCwgZGF0YWJhc2VOYW1lcyk7CisgICAgZGlzcGF0
Y2hUYXNrUmVwbHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVz
dElkZW50aWZpZXIsIGRhdGFiYXNlcyA9IGRhdGFiYXNlcy5pc29sYXRlZENvcHkoKV0oKSBtdXRh
YmxlIHsKKyAgICAgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRpZEdldEFsbERhdGFiYXNlTmFt
ZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShkYXRhYmFzZXMpKTsKICAg
ICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJv
Y2Vzc0lEQlNlcnZlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lE
QlNlcnZlci5oCmluZGV4IDYwNDdkZDlmOTViMTNkYzExNmRiOGJlZWYwODliNjRkZjQzY2NmYTQu
LmY2N2RkMzFkYmNlZTMyMmQwMjMyYTZmMmVkY2JkZGEzNDkxODAxZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmgKQEAgLTkwLDcgKzkw
LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCh1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBkaWRG
aXJlVmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkluZGV4ZWREQjo6Q29ubmVjdGlvbkNsb3NlZE9uQmVoYWxmT2ZT
ZXJ2ZXIpIGZpbmFsOwogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJD
b3JlOjpJREJSZXF1ZXN0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZ2V0QWxsRGF0YWJhc2VOYW1l
cyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG1haW5GcmFtZU9yaWdpbiwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBj
YWxsYmFja0lEKSBmaW5hbDsKKyAgICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9u
cyhjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4mKSBmaW5hbDsKIAogICAgIC8vIElEQkNvbm5lY3Rpb25Ub0NsaWVudAogICAg
IFdlYkNvcmU6OklEQkNvbm5lY3Rpb25JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBmaW5h
bDsKQEAgLTExNiw3ICsxMTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTdGFydFRyYW5zYWN0
aW9uKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpIGZpbmFsOwogICAgIHZvaWQgZGlkQ2xv
c2VGcm9tU2VydmVyKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKSBmaW5hbDsKICAgICB2b2lkIG5vdGlmeU9w
ZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYg
cmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNp
b24pIGZpbmFsOwotICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxs
YmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1lcykgZmluYWw7CisgICAg
dm9pZCBkaWRHZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoY29uc3QgV2ViQ29yZTo6SURC
UmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OklEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb24+JikgZmluYWw7CiAKICAgICB2b2lkIGNsb3NlQW5kRGVsZXRlRGF0YWJhc2Vz
TW9kaWZpZWRTaW5jZShXYWxsVGltZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmlu
ZGV4IDAyZjUxMmU1NTdiNDhiNzllMzRlOGRkZmRiMDEwOWVjNGY3MDhhNzcuLmRkYjU1ZjExOTJl
MjVjYzRiNjU0MjUwMTIwZGQ4YmExZjAyNzAzYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA2LTE3ICBEYXJyeWwgUG9ndWUgIDxkYXJyeWxA
ZHBvZ3VlLmNhPgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9ydCBJREJGYWN0b3J5IGRhdGFi
YXNlcyBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMTA0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkanVzdCB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgYElEQkZhY3RvcnkucHJvdG90eXBlLmRh
dGFiYXNlcygpYC4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0
LWRhdGFiYXNlcy5hbnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnktZGF0YWJhc2VzLW9w
YXF1ZS1vcmlnaW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3Mu
YW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDYtMTcgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgUmVhZGFibGVTdHJlYW0gcm9idXN0IGFn
YWluc3QgdXNlciBjb2RlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9n
ZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQKaW5kZXggZTJkZmZhYzc0Nzg3YWM1MTg1NTg4
NTAyYjZkMGNkNzFlZmVkNzkwZS4uMDY1MDE5ZDEzMDEwOWM3MjRiNTNiOGE2MGRlYmM5ZjY2NDUz
MGM0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRh
YmFzZXMuYW55LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAotRkFJTCBFbnN1cmUgdGhh
dCBkYXRhYmFzZXMoKSByZXR1cm5zIGEgcHJvbWlzZS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJh
c2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRl
eGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBFbnVtZXJhdGUgb25lIGRhdGFi
YXNlLiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAn
aW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5l
ZCkiCi1GQUlMIEVudW1lcmF0ZSBtdWx0aXBsZSBkYXRhYmFzZXMuIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERC
LmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCkn
LCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTWFrZSBzdXJlIGFu
IGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWRE
Qi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJ
TCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhh
dmVuJ3QgY29tbWl0ZWQuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5j
dGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycg
aXMgdW5kZWZpbmVkKSIKK1BBU1MgRW5zdXJlIHRoYXQgZGF0YWJhc2VzKCkgcmV0dXJucyBhIHBy
b21pc2UuIAorUEFTUyBFbnVtZXJhdGUgb25lIGRhdGFiYXNlLiAKK1BBU1MgRW51bWVyYXRlIG11
bHRpcGxlIGRhdGFiYXNlcy4gCitQQVNTIE1ha2Ugc3VyZSBhbiBlbXB0eSBsaXN0IGlzIHJldHVy
bmVkIGZvciB0aGUgY2FzZSBvZiBubyBkYXRhYmFzZXMuIAorRkFJTCBFbnN1cmUgdGhhdCBkYXRh
YmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIGFz
c2VydF9lcXVhbHM6IFRoZSByZXN1bHQgb2YgZGF0YWJhc2VzKCkgc2hvdWxkIGJlIG9ubHkgdGhv
c2UgZGF0YWJhc2VzIHdoaWNoIGhhdmUgYmVlbiBjcmVhdGVkIGF0IHRoZSB0aW1lIG9mIGNhbGxp
bmcsIHJlZ2FyZGxlc3Mgb2YgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbnMgY3VycmVudGx5IHJ1
bm5pbmcuIGV4cGVjdGVkIDEgYnV0IGdvdCAyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55
Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CmluZGV4IGUyZGZmYWM3NDc4N2FjNTE4NTU4ODUwMmI2ZDBjZDcxZWZlZDc5MGUuLjA2NTAxOWQx
MzAxMDljNzI0YjUzYjhhNjBkZWJjOWY2NjQ1MzBjNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMu
YW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnkud29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAotRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBy
ZXR1cm5zIGEgcHJvbWlzZS4gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIuZGF0YWJhc2VzIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScsICdpbmRleGVkREIuZGF0YWJhc2Vz
JyBpcyB1bmRlZmluZWQpIgotRkFJTCBFbnVtZXJhdGUgb25lIGRhdGFiYXNlLiBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGlu
ZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFi
YXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMnIGlzIHVuZGVmaW5lZCkiCi1GQUlMIEVudW1l
cmF0ZSBtdWx0aXBsZSBkYXRhYmFzZXMuIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBu
b3QgYSBmdW5jdGlvbi4gKEluICdpbmRleGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRh
dGFiYXNlcycgaXMgdW5kZWZpbmVkKSIKLUZBSUwgTWFrZSBzdXJlIGFuIGVtcHR5IGxpc3QgaXMg
cmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4gcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBpbmRleGVkREIu
ZGF0YWJhc2VzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ2luZGV4ZWREQi5kYXRhYmFzZXMoKScs
ICdpbmRleGVkREIuZGF0YWJhc2VzJyBpcyB1bmRlZmluZWQpIgotRkFJTCBFbnN1cmUgdGhhdCBk
YXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQu
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5
cGVFcnJvcjogaW5kZXhlZERCLmRhdGFiYXNlcyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdpbmRl
eGVkREIuZGF0YWJhc2VzKCknLCAnaW5kZXhlZERCLmRhdGFiYXNlcycgaXMgdW5kZWZpbmVkKSIK
K1BBU1MgRW5zdXJlIHRoYXQgZGF0YWJhc2VzKCkgcmV0dXJucyBhIHByb21pc2UuIAorUEFTUyBF
bnVtZXJhdGUgb25lIGRhdGFiYXNlLiAKK1BBU1MgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNl
cy4gCitQQVNTIE1ha2Ugc3VyZSBhbiBlbXB0eSBsaXN0IGlzIHJldHVybmVkIGZvciB0aGUgY2Fz
ZSBvZiBubyBkYXRhYmFzZXMuIAorRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0
IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIGFzc2VydF9lcXVhbHM6IFRo
ZSByZXN1bHQgb2YgZGF0YWJhc2VzKCkgc2hvdWxkIGJlIG9ubHkgdGhvc2UgZGF0YWJhc2VzIHdo
aWNoIGhhdmUgYmVlbiBjcmVhdGVkIGF0IHRoZSB0aW1lIG9mIGNhbGxpbmcsIHJlZ2FyZGxlc3Mg
b2YgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbnMgY3VycmVudGx5IHJ1bm5pbmcuIGV4cGVjdGVk
IDEgYnV0IGdvdCAyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3RvcnktZGF0YWJhc2VzLW9wYXF1ZS1vcmln
aW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3Rl
ZC50eHQKaW5kZXggMDY3OWYzOTJlYjVmYWVkMGJkYzE3ZTgxY2I5YjVhY2IyMjFiNTJkNC4uZGZh
NzEwMmIwMGNjM2FkOGMwMWRiZmQ3ZDBiYzk1OTMxNzZlZTQyMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9y
eS1kYXRhYmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1kYXRh
YmFzZXMtb3BhcXVlLW9yaWdpbi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLUZBSUwg
SURCRmFjdG9yeS5kYXRhYmFzZXMoKSBpbiBub24tc2FuZGJveGVkIGlmcmFtZSBzaG91bGQgbm90
IHJlamVjdCBhc3NlcnRfZXF1YWxzOiBJREJGYWN0b3J5LmRhdGFiYXNlcygpIHNob3VsZCBub3Qg
cmVqZWN0IGV4cGVjdGVkICJubyBleGNlcHRpb24iIGJ1dCBnb3QgImluZGV4ZWREQi5kYXRhYmFz
ZXMgdW5kZWZpbmVkIgotRkFJTCBJREJGYWN0b3J5LmRhdGFiYXNlcygpIGluIHNhbmRib3hlZCBp
ZnJhbWUgc2hvdWxkIHJlamVjdCBhc3NlcnRfZXF1YWxzOiBQcm9taXNlIHNob3VsZCBiZSByZWpl
Y3RlZCB3aXRoIFNlY3VyaXR5RXJyb3IgZXhwZWN0ZWQgIlNlY3VyaXR5RXJyb3IiIGJ1dCBnb3Qg
ImluZGV4ZWREQi5kYXRhYmFzZXMgdW5kZWZpbmVkIgorUEFTUyBJREJGYWN0b3J5LmRhdGFiYXNl
cygpIGluIG5vbi1zYW5kYm94ZWQgaWZyYW1lIHNob3VsZCBub3QgcmVqZWN0IAorUEFTUyBJREJG
YWN0b3J5LmRhdGFiYXNlcygpIGluIHNhbmRib3hlZCBpZnJhbWUgc2hvdWxkIHJlamVjdCAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmZhY3Rv
cnktb3JpZ2luLWlzb2xhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYTMzMDk4ZWI4ZjY1ZmZjMTlj
YzdkYWZkNzk5NWU4MjAxNDEzZDY1NC4uY2I5ODVmYzVmMmU2Zjg0ZThlOTU5NTMwZTM4N2VkYTlh
YTE1ZWNmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeS1vcmlnaW4taXNvbGF0aW9uLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJmYWN0b3J5LW9yaWdpbi1pc29sYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEs
MyBAQAogCi1GQUlMIFRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgb3JpZ2lucyBoYXZlIHNlcGFyYXRl
IGxvY2tpbmcgc2NoZW1lcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IGluZGV4ZWREQi5kYXRhYmFzZXMgaXMgbm90IGEgZnVu
Y3Rpb24uIChJbiAnaW5kZXhlZERCLmRhdGFiYXNlcygpJywgJ2luZGV4ZWREQi5kYXRhYmFzZXMn
IGlzIHVuZGVmaW5lZCkiCitQQVNTIFRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgb3JpZ2lucyBoYXZl
IHNlcGFyYXRlIGxvY2tpbmcgc2NoZW1lcyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IDExMjhkYTYyYjhjZDQ0
MmM3MTIwMjY3ZDIxNjdjMTRlODU3ZWFlNTMuLmIxZWVjZDc5YzBkMzM5ODU3NjE5ZTE0Y2RkOWYz
MDZhNDU5YTAzM2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxo
YXJuZXNzLmFueS1leHBlY3RlZC50eHQKQEAgLTUyLDcgKzUyLDcgQEAgUEFTUyBJREJGYWN0b3J5
IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5
cGUgb2JqZWMKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVy
dHkgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24gb3BlbihET01TdHJpbmcs
IG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9uZykgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNl
OiBvcGVyYXRpb24gZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nKSAKLUZBSUwgSURCRmFjdG9yeSBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMgb3BlcmF0aW9uIGV4cGVj
dGVkIHByb3BlcnR5ICJkYXRhYmFzZXMiIG1pc3NpbmcKK1BBU1MgSURCRmFjdG9yeSBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBjbXAoYW55LCBhbnkpIAogUEFTUyBJREJGYWN0b3J5IG11c3QgYmUgcHJpbWFyeSBp
bnRlcmZhY2Ugb2YgW29iamVjdCBJREJGYWN0b3J5XSAKIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9m
IFtvYmplY3QgSURCRmFjdG9yeV0gCkBAIC02MCw3ICs2MCw3IEBAIFBBU1MgSURCRmFjdG9yeSBp
bnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvcGVu
KERPTVN0CiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBjYWxsaW5nIG9wZW4oRE9NU3RyaW5n
LCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGxvbmcpIG9uIFtvYmplY3QgSURCRmFjdG9yeV0gd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAKIFBBU1MgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJk
ZWxldGVEYXRhYmFzZShET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURC
RmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nKSBvbiBb
b2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBl
RXJyb3IgCi1GQUlMIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0IElEQkZhY3RvcnldIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhlIHByb3BlciB0eXBlIGFz
c2VydF9pbmhlcml0czogcHJvcGVydHkgImRhdGFiYXNlcyIgbm90IGZvdW5kIGluIHByb3RvdHlw
ZSBjaGFpbgorUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVjdCBJREJGYWN0b3J5XSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImRhdGFiYXNlcygpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAK
IFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJjbXAoYW55LCBhbnkpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAKIFBBU1Mg
SURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgY21wKGFueSwgYW55KSBvbiBbb2JqZWN0IElE
QkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCiBQ
QVNTIElEQkRhdGFiYXNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA5MjkyOWUxNjE4YjY2
YTEwODk4MDBiYWY4MjVmMjU4ZjUyNWEyYTE3Li5hZjU3NTA0ZDQ1ZDk5NTgwMTA4MjkwYmM4ZGFh
OTVmYjY1NjYzODNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTUyLDcgKzUyLDcgQEAg
UEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWMKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkgCiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24g
b3BlbihET01TdHJpbmcsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9uZykgCiBQQVNTIElEQkZh
Y3RvcnkgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nKSAKLUZB
SUwgSURCRmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBtaXNzaW5nIG5vbi1zdGF0aWMg
b3BlcmF0aW9uIGV4cGVjdGVkIHByb3BlcnR5ICJkYXRhYmFzZXMiIG1pc3NpbmcKK1BBU1MgSURC
RmFjdG9yeSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkYXRhYmFzZXMoKSAKIFBBU1MgSURCRmFjdG9y
eSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjbXAoYW55LCBhbnkpIAogUEFTUyBJREJGYWN0b3J5IG11
c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgW29iamVjdCBJREJGYWN0b3J5XSAKIFBBU1MgU3Ry
aW5naWZpY2F0aW9uIG9mIFtvYmplY3QgSURCRmFjdG9yeV0gCkBAIC02MCw3ICs2MCw3IEBAIFBB
U1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJvcGVuKERPTVN0CiBQQVNTIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBjYWxsaW5n
IG9wZW4oRE9NU3RyaW5nLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGxvbmcpIG9uIFtvYmplY3Qg
SURCRmFjdG9yeV0gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvciAK
IFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFjdG9yeV0gbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJkZWxldGVEYXRhYmFzZShET01TdHJpbmcpIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgZGVsZXRlRGF0YWJhc2Uo
RE9NU3RyaW5nKSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMg
bXVzdCB0aHJvdyBUeXBlRXJyb3IgCi1GQUlMIElEQkZhY3RvcnkgaW50ZXJmYWNlOiBbb2JqZWN0
IElEQkZhY3RvcnldIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGF0YWJhc2VzKCkiIHdpdGggdGhl
IHByb3BlciB0eXBlIGFzc2VydF9pbmhlcml0czogcHJvcGVydHkgImRhdGFiYXNlcyIgbm90IGZv
dW5kIGluIHByb3RvdHlwZSBjaGFpbgorUEFTUyBJREJGYWN0b3J5IGludGVyZmFjZTogW29iamVj
dCBJREJGYWN0b3J5XSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImRhdGFiYXNlcygpIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IFtvYmplY3QgSURCRmFj
dG9yeV0gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbXAoYW55LCBhbnkpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAKIFBBU1MgSURCRmFjdG9yeSBpbnRlcmZhY2U6IGNhbGxpbmcgY21wKGFueSwgYW55
KSBvbiBbb2JqZWN0IElEQkZhY3RvcnldIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgCiBQQVNTIElEQkRhdGFiYXNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402126</attachid>
            <date>2020-06-17 10:23:23 -0700</date>
            <delta_ts>2020-06-17 10:24:09 -0700</delta_ts>
            <desc>Build fix</desc>
            <filename>bug-211043-20200617192322.patch</filename>
            <type>text/plain</type>
            <size>1507</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmE3NzQ3ZDk2MmVkNjI2
NmE1NzI2ZWM3YzA4N2FlYWEyYzYwZWYyZi4uNTZjYWEwNzQ3OGUwZjIyZmY2ZTViMWFiMjdlZTQ3
MTI3NGFjYzE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA2LTE3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbmRleGVkREI6IFN1cHBv
cnQgSURCRmFjdG9yeSBkYXRhYmFzZXMgbWV0aG9kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEwNDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYy
NDAyMDU5PgorCisgICAgICAgIFVucmV2aWV3ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW06CisgICAgICAgIFJldmVydGluZyB1bnJlbGF0ZWQgY2hhbmdlLgorCiAy
MDIwLTA2LTE3ICBEYXJyeWwgUG9ndWUgIDxkYXJyeWxAZHBvZ3VlLmNhPgogCiAgICAgICAgIElu
ZGV4ZWREQjogU3VwcG9ydCBJREJGYWN0b3J5IGRhdGFiYXNlcyBtZXRob2QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCA2NGFhMTgyMDk5OTUwYTJiNWE0
ZTEzYjNkMWQ0ZDQ3ZmE3ZmJiNjIzLi5jMWQ4YjM5YjVmYWMwZGI1YmViMDkyZmZmMGMyODU2MGIy
NTNmMzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBA
IC0yODEwLDEzICsyODEwLDEzIEBAIHN0YXRpYyBzdGQ6OnBhaXI8UmVmUHRyPEltYWdlPiwgZmxv
YXQ+IGNyZWF0ZUF0dGFjaG1lbnRQbGFjZWhvbGRlckltYWdlKGZsb2F0IGRlCiAgICAgcmV0dXJu
IHsgSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKCJBdHRhY2htZW50UGxhY2Vob2xkZXIiKSwg
MSB9OwogfQogCi0jZW5kaWYKLQogU3RyaW5nIFJlbmRlclRoZW1lTWFjOjpleHRyYURlZmF1bHRT
dHlsZVNoZWV0KCkKIHsKICAgICByZXR1cm4geyB9OwogfQogCisjZW5kaWYKKwogc3RhdGljIHZv
aWQgcGFpbnRBdHRhY2htZW50SWNvblBsYWNlaG9sZGVyKGNvbnN0IFJlbmRlckF0dGFjaG1lbnQm
IGF0dGFjaG1lbnQsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgQXR0YWNobWVudExheW91dCYg
bGF5b3V0KQogewogICAgIGF1dG8gW3BsYWNlaG9sZGVySW1hZ2UsIGltYWdlU2NhbGVdID0gY3Jl
YXRlQXR0YWNobWVudFBsYWNlaG9sZGVySW1hZ2UoYXR0YWNobWVudC5kb2N1bWVudCgpLmRldmlj
ZVNjYWxlRmFjdG9yKCksIGxheW91dCk7Cg==
</data>
<flag name="commit-queue"
          id="417558"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>