<?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>180328</bug_id>
          
          <creation_ts>2017-12-02 21:46:33 -0800</creation_ts>
          <short_desc>Support serviceWorker.postMessage() inside service workers</short_desc>
          <delta_ts>2017-12-03 14:25:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>180329</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1377441</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-02 21:46:33 -0800</bug_when>
    <thetext>Support serviceWorker.postMessage() inside service workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377442</commentid>
    <comment_count>1</comment_count>
      <attachid>328282</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-02 21:55:39 -0800</bug_when>
    <thetext>Created attachment 328282
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377443</commentid>
    <comment_count>2</comment_count>
      <attachid>328283</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-02 22:02:55 -0800</bug_when>
    <thetext>Created attachment 328283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377489</commentid>
    <comment_count>3</comment_count>
      <attachid>328299</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-03 13:01:51 -0800</bug_when>
    <thetext>Created attachment 328299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377492</commentid>
    <comment_count>4</comment_count>
      <attachid>328299</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-12-03 13:24:26 -0800</bug_when>
    <thetext>Comment on attachment 328299
Patch

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

&gt; Source/WebCore/workers/service/SWClientConnection.h:75
&gt; +    virtual void postMessageToServiceWorker(ServiceWorkerIdentifier destinationIdentifier, Ref&lt;SerializedScriptValue&gt;&amp;&amp;, ServiceWorkerClientIdentifier sourceIdentifier, ServiceWorkerClientData&amp;&amp; source) = 0;
&gt; +    virtual void postMessageToServiceWorker(ServiceWorkerIdentifier destinationIdentifier, Ref&lt;SerializedScriptValue&gt;&amp;&amp;, ServiceWorkerIdentifier sourceWorkerIdentifier) = 0;

I don’t think we need the names &quot;destinationIdentifier&quot;, &quot;sourceIdentifier&quot;, or &quot;source&quot;. Types make things clear enough. I might have named the Ref&lt;SerializedScriptValue&gt;&amp;&amp; &quot;message&quot;, but I suppose we can do without that too.

But maybe I am wrong and it’s not clear enough without them; the types are different but maybe it’s too subtle. Not sure.

&gt; Source/WebCore/workers/service/ServiceWorker.cpp:117
&gt; +            auto&amp; swConnection = ServiceWorkerProvider::singleton().serviceWorkerConnectionForSession(sessionID);

How about just &quot;connection&quot; for this variable? We are in a class named ServiceWorker here.

&gt; Source/WebCore/workers/service/ServiceWorker.cpp:124
&gt;      auto&amp; swConnection = ServiceWorkerProvider::singleton().serviceWorkerConnectionForSession(context.sessionID());

Ditto.

&gt; Source/WebCore/workers/service/context/SWContextManager.h:70
&gt; +    WEBCORE_EXPORT void postMessageToServiceWorker(ServiceWorkerIdentifier destination, Ref&lt;SerializedScriptValue&gt;&amp;&amp; message, ServiceWorkerClientIdentifier sourceIdentifier, ServiceWorkerClientData&amp;&amp; sourceData);
&gt; +    WEBCORE_EXPORT void postMessageToServiceWorker(ServiceWorkerIdentifier destination, Ref&lt;SerializedScriptValue&gt;&amp;&amp; message, ServiceWorkerData&amp;&amp; sourceData);

I don’t think we need the names &quot;destination&quot;, &quot;sourceIdentifier&quot; and &quot;sourceData&quot;. Same thinking as above.

&gt; Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:108
&gt; +static void fireMessageEvent(ServiceWorkerGlobalScope&amp; serviceWorkerGlobalScope, Ref&lt;SerializedScriptValue&gt;&amp;&amp; message, std::unique_ptr&lt;MessagePortChannelArray&gt;&amp;&amp; channels, ExtendableMessageEventSource&amp;&amp; source, Ref&lt;SecurityOrigin&gt;&amp;&amp; sourceOrigin)

Can this just be named &quot;scope&quot; or &quot;globalScope&quot;  instead of &quot;serviceWorkerGlobalScope&quot;?

&gt; Source/WebCore/workers/service/context/ServiceWorkerThread.h:62
&gt; +    WEBCORE_EXPORT void postMessageToServiceWorker(Ref&lt;SerializedScriptValue&gt;&amp;&amp;, std::unique_ptr&lt;MessagePortChannelArray&gt;&amp;&amp;, ServiceWorkerClientIdentifier sourceIdentifier, ServiceWorkerClientData&amp;&amp; sourceData);
&gt; +    WEBCORE_EXPORT void postMessageToServiceWorker(Ref&lt;SerializedScriptValue&gt;&amp;&amp;, std::unique_ptr&lt;MessagePortChannelArray&gt;&amp;&amp;, ServiceWorkerData&amp;&amp; sourceData);

Same thoughts about argument names as above.

&gt; Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.h:84
&gt; +    void postMessageToServiceWorkerFromClient(WebCore::ServiceWorkerIdentifier destinationIdentifier, const IPC::DataReference&amp; message, WebCore::ServiceWorkerClientIdentifier sourceIdentifier, WebCore::ServiceWorkerClientData&amp;&amp; source);
&gt; +    void postMessageToServiceWorkerFromServiceWorker(WebCore::ServiceWorkerIdentifier destinationIdentifier, const IPC::DataReference&amp; message, WebCore::ServiceWorkerIdentifier sourceIdentifier);

And again.

&gt; Source/WebKit/WebProcess/Storage/WebSWClientConnection.h:77
&gt; +    void postMessageToServiceWorker(WebCore::ServiceWorkerIdentifier destinationIdentifier, Ref&lt;WebCore::SerializedScriptValue&gt;&amp;&amp;, WebCore::ServiceWorkerClientIdentifier sourceIdentifier, WebCore::ServiceWorkerClientData&amp;&amp; source) final;
&gt; +    void postMessageToServiceWorker(WebCore::ServiceWorkerIdentifier destinationIdentifier, Ref&lt;WebCore::SerializedScriptValue&gt;&amp;&amp;, WebCore::ServiceWorkerIdentifier sourceWorkerIdentifier) final;

And again.

&gt; Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h:76
&gt; +    void postMessageToServiceWorkerFromClient(WebCore::ServiceWorkerIdentifier destinationIdentifier, const IPC::DataReference&amp; message, WebCore::ServiceWorkerClientIdentifier sourceIdentifier, WebCore::ServiceWorkerClientData&amp;&amp; sourceData);
&gt; +    void postMessageToServiceWorkerFromServiceWorker(WebCore::ServiceWorkerIdentifier destinationIdentifier, const IPC::DataReference&amp; message, WebCore::ServiceWorkerData&amp;&amp; sourceData);

And again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377513</commentid>
    <comment_count>5</comment_count>
      <attachid>328306</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-03 14:22:19 -0800</bug_when>
    <thetext>Created attachment 328306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377514</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-03 14:23:48 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 328299 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=328299&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/workers/service/SWClientConnection.h:75
&gt; &gt; +    virtual void postMessageToServiceWorker(ServiceWorkerIdentifier destinationIdentifier, Ref&lt;SerializedScriptValue&gt;&amp;&amp;, ServiceWorkerClientIdentifier sourceIdentifier, ServiceWorkerClientData&amp;&amp; source) = 0;
&gt; &gt; +    virtual void postMessageToServiceWorker(ServiceWorkerIdentifier destinationIdentifier, Ref&lt;SerializedScriptValue&gt;&amp;&amp;, ServiceWorkerIdentifier sourceWorkerIdentifier) = 0;
&gt; 
&gt; I don’t think we need the names &quot;destinationIdentifier&quot;, &quot;sourceIdentifier&quot;,
&gt; or &quot;source&quot;. Types make things clear enough. I might have named the
&gt; Ref&lt;SerializedScriptValue&gt;&amp;&amp; &quot;message&quot;, but I suppose we can do without that
&gt; too.
&gt; 
&gt; But maybe I am wrong and it’s not clear enough without them; the types are
&gt; different but maybe it’s too subtle. Not sure.
&gt; 
&gt; &gt; Source/WebCore/workers/service/ServiceWorker.cpp:117
&gt; &gt; +            auto&amp; swConnection = ServiceWorkerProvider::singleton().serviceWorkerConnectionForSession(sessionID);
&gt; 
&gt; How about just &quot;connection&quot; for this variable? We are in a class named
&gt; ServiceWorker here.
&gt; 
&gt; &gt; Source/WebCore/workers/service/ServiceWorker.cpp:124
&gt; &gt;      auto&amp; swConnection = ServiceWorkerProvider::singleton().serviceWorkerConnectionForSession(context.sessionID());
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/workers/service/context/SWContextManager.h:70
&gt; &gt; +    WEBCORE_EXPORT void postMessageToServiceWorker(ServiceWorkerIdentifier destination, Ref&lt;SerializedScriptValue&gt;&amp;&amp; message, ServiceWorkerClientIdentifier sourceIdentifier, ServiceWorkerClientData&amp;&amp; sourceData);
&gt; &gt; +    WEBCORE_EXPORT void postMessageToServiceWorker(ServiceWorkerIdentifier destination, Ref&lt;SerializedScriptValue&gt;&amp;&amp; message, ServiceWorkerData&amp;&amp; sourceData);
&gt; 
&gt; I don’t think we need the names &quot;destination&quot;, &quot;sourceIdentifier&quot; and
&gt; &quot;sourceData&quot;. Same thinking as above.
&gt; 
&gt; &gt; Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:108
&gt; &gt; +static void fireMessageEvent(ServiceWorkerGlobalScope&amp; serviceWorkerGlobalScope, Ref&lt;SerializedScriptValue&gt;&amp;&amp; message, std::unique_ptr&lt;MessagePortChannelArray&gt;&amp;&amp; channels, ExtendableMessageEventSource&amp;&amp; source, Ref&lt;SecurityOrigin&gt;&amp;&amp; sourceOrigin)
&gt; 
&gt; Can this just be named &quot;scope&quot; or &quot;globalScope&quot;  instead of
&gt; &quot;serviceWorkerGlobalScope&quot;?
&gt; 
&gt; &gt; Source/WebCore/workers/service/context/ServiceWorkerThread.h:62
&gt; &gt; +    WEBCORE_EXPORT void postMessageToServiceWorker(Ref&lt;SerializedScriptValue&gt;&amp;&amp;, std::unique_ptr&lt;MessagePortChannelArray&gt;&amp;&amp;, ServiceWorkerClientIdentifier sourceIdentifier, ServiceWorkerClientData&amp;&amp; sourceData);
&gt; &gt; +    WEBCORE_EXPORT void postMessageToServiceWorker(Ref&lt;SerializedScriptValue&gt;&amp;&amp;, std::unique_ptr&lt;MessagePortChannelArray&gt;&amp;&amp;, ServiceWorkerData&amp;&amp; sourceData);
&gt; 
&gt; Same thoughts about argument names as above.
&gt; 
&gt; &gt; Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.h:84
&gt; &gt; +    void postMessageToServiceWorkerFromClient(WebCore::ServiceWorkerIdentifier destinationIdentifier, const IPC::DataReference&amp; message, WebCore::ServiceWorkerClientIdentifier sourceIdentifier, WebCore::ServiceWorkerClientData&amp;&amp; source);
&gt; &gt; +    void postMessageToServiceWorkerFromServiceWorker(WebCore::ServiceWorkerIdentifier destinationIdentifier, const IPC::DataReference&amp; message, WebCore::ServiceWorkerIdentifier sourceIdentifier);
&gt; 
&gt; And again.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/Storage/WebSWClientConnection.h:77
&gt; &gt; +    void postMessageToServiceWorker(WebCore::ServiceWorkerIdentifier destinationIdentifier, Ref&lt;WebCore::SerializedScriptValue&gt;&amp;&amp;, WebCore::ServiceWorkerClientIdentifier sourceIdentifier, WebCore::ServiceWorkerClientData&amp;&amp; source) final;
&gt; &gt; +    void postMessageToServiceWorker(WebCore::ServiceWorkerIdentifier destinationIdentifier, Ref&lt;WebCore::SerializedScriptValue&gt;&amp;&amp;, WebCore::ServiceWorkerIdentifier sourceWorkerIdentifier) final;
&gt; 
&gt; And again.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h:76
&gt; &gt; +    void postMessageToServiceWorkerFromClient(WebCore::ServiceWorkerIdentifier destinationIdentifier, const IPC::DataReference&amp; message, WebCore::ServiceWorkerClientIdentifier sourceIdentifier, WebCore::ServiceWorkerClientData&amp;&amp; sourceData);
&gt; &gt; +    void postMessageToServiceWorkerFromServiceWorker(WebCore::ServiceWorkerIdentifier destinationIdentifier, const IPC::DataReference&amp; message, WebCore::ServiceWorkerData&amp;&amp; sourceData);
&gt; 
&gt; And again.

I feel that distinguishing the destination and source parameters is important. It would be especially confusing for messages from a ServiceWorker to another ServiceWorker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377515</commentid>
    <comment_count>7</comment_count>
      <attachid>328306</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-03 14:24:50 -0800</bug_when>
    <thetext>Comment on attachment 328306
Patch

Clearing flags on attachment: 328306

Committed r225462: &lt;https://trac.webkit.org/changeset/225462&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377516</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-03 14:24:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377517</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-03 14:25:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/35820398&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328282</attachid>
            <date>2017-12-02 21:55:39 -0800</date>
            <delta_ts>2017-12-02 22:02:54 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>180328_postMessage_from_serviceWorker_wip.patch</filename>
            <type>text/plain</type>
            <size>28140</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9l
eHRlbmRhYmxlLW1lc3NhZ2UtZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC5o
dHRwcy1leHBlY3RlZC50eHQKaW5kZXggNGQ1MmI0MjQ3YTkuLjJmMmEwNTgxZjExIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvZXh0ZW5kYWJs
ZS1tZXNzYWdlLWV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50Lmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDYgQEAgSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1l
c3NhZ2UgPSBudWxsCiAKIEZBSUwgUG9zdCBhbiBleHRlbmRhYmxlIG1lc3NhZ2UgZnJvbSBhIHRv
cC1sZXZlbCBjbGllbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IFBhc3NpbmcgTWVzc2FnZVBvcnQgb2JqZWN0
cyB0byBwb3N0TWVzc2FnZSBpcyBub3QgeWV0IHN1cHBvcnRlZCIKIEZBSUwgUG9zdCBhbiBleHRl
bmRhYmxlIG1lc3NhZ2UgZnJvbSBhIG5lc3RlZCBjbGllbnQgYXNzZXJ0X2VxdWFsczogZXZlbnQg
YHNvdXJjZWAgcHJvcGVydHkgYGZvY3VzZWRgIGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQot
VElNRU9VVCBQb3N0IGxvb3BiYWNrIGV4dGVuZGFibGUgbWVzc2FnZXMgVGVzdCB0aW1lZCBvdXQK
LU5PVFJVTiBQb3N0IGV4dGVuZGFibGUgbWVzc2FnZXMgYW1vbmcgc2VydmljZSB3b3JrZXJzIAor
UEFTUyBQb3N0IGxvb3BiYWNrIGV4dGVuZGFibGUgbWVzc2FnZXMgCitUSU1FT1VUIFBvc3QgZXh0
ZW5kYWJsZSBtZXNzYWdlcyBhbW9uZyBzZXJ2aWNlIHdvcmtlcnMgVGVzdCB0aW1lZCBvdXQKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlv
bi5oCmluZGV4IGVhZDllZTg0NzczLi5mMjA0ZjdmZDNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNDcsNiArNDcs
NyBAQCBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJTdGF0ZTsKIGVudW0gY2xhc3MgU2hvdWxkTm90
aWZ5V2hlblJlc29sdmVkOwogc3RydWN0IEV4Y2VwdGlvbkRhdGE7CiBzdHJ1Y3QgU2VydmljZVdv
cmtlckNsaWVudERhdGE7CitzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI7CiBz
dHJ1Y3QgU2VydmljZVdvcmtlckRhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0
Owogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhOwpAQCAtNzAsNyArNzEsOSBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21p
c2UoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYpID0gMDsKIAotICAgIHZpcnR1
YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4mJiwgRG9jdW1lbnRJZGVudGlmaWVyIHNvdXJjZUNvbnRleHRJZGVudGlmaWVyLCBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
bklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIFNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
JiYgc291cmNlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlV29y
a2VySWRlbnRpZmllcikgPSAwOworCiAgICAgdmlydHVhbCBTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCBtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2Vj
dXJpdHlPcmlnaW4mKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNUZXJtaW5hdGVX
b3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAppbmRleCA4MmJiOWIwNGJiNS4uZTJh
Y2Y4NmUwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAi
U2VydmljZVdvcmtlckNsaWVudERhdGEuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRlIDxy
dW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CkBAIC0xMTAsMTQgKzExMSwxOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTZXJ2aWNlV29ya2Vy
Ojpwb3N0TWVzc2FnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKUwogICAgIGlm
IChjaGFubmVscyAmJiAhY2hhbm5lbHMtPmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIlBhc3NpbmcgTWVzc2FnZVBv
cnQgb2JqZWN0cyB0byBwb3N0TWVzc2FnZSBpcyBub3QgeWV0IHN1cHBvcnRlZCIpIH07CiAKLSAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFkZCBzdXBwb3J0IGZvciB3b3JrZXJzLgotICAgIGlmICgh
aXM8RG9jdW1lbnQ+KGNvbnRleHQpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3Vw
cG9ydGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgic2VydmljZVdvcmtlckNsaWVudC5wb3N0TWVzc2Fn
ZSgpIGZyb20gd29ya2VycyBpcyBub3QgeWV0IHN1cHBvcnRlZCIpIH07CisgICAgaWYgKGlzPFNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAgICAgICAgYXV0byBzb3VyY2VX
b3JrZXJJZGVudGlmaWVyID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250
ZXh0KS50aHJlYWQoKS5pZGVudGlmaWVyKCk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Nl
c3Npb25JRCA9IGNvbnRleHQuc2Vzc2lvbklEKCksIGRlc3RpbmF0aW9uSWRlbnRpZmllciA9IGlk
ZW50aWZpZXIoKSwgc291cmNlV29ya2VySWRlbnRpZmllciwgbWVzc2FnZSA9IFdURk1vdmUobWVz
c2FnZSldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBhdXRvJiBzd0Nvbm5lY3Rpb24gPSBTZXJ2
aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9y
U2Vzc2lvbihzZXNzaW9uSUQpOworICAgICAgICAgICAgc3dDb25uZWN0aW9uLnBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRlbnRpZmllciwgbWVzc2FnZS5yZWxlYXNlUmV0
dXJuVmFsdWUoKSwgc291cmNlV29ya2VySWRlbnRpZmllcik7CisgICAgICAgIH0pOworICAgICAg
ICByZXR1cm4geyB9OworICAgIH0KIAogICAgIGF1dG8gc291cmNlQ2xpZW50RGF0YSA9IFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKGNvbnRleHQpOwotCiAgICAgYXV0byYgc3dDb25uZWN0
aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29u
bmVjdGlvbkZvclNlc3Npb24oY29udGV4dC5zZXNzaW9uSUQoKSk7Ci0gICAgc3dDb25uZWN0aW9u
LnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoaWRlbnRpZmllcigpLCBtZXNz
YWdlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuaWRl
bnRpZmllcigpLCBXVEZNb3ZlKHNvdXJjZUNsaWVudERhdGEpKTsKKyAgICBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBzb3VyY2VDbGllbnRJZGVudGlmaWVyIHsgc3dDb25uZWN0aW9uLnNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5p
ZGVudGlmaWVyKCkgfTsKKyAgICBzd0Nvbm5lY3Rpb24ucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXIoaWRlbnRpZmllcigpLCBtZXNzYWdlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKHNv
dXJjZUNsaWVudElkZW50aWZpZXIpLCBXVEZNb3ZlKHNvdXJjZUNsaWVudERhdGEpKTsKIAogICAg
IHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwCmluZGV4IDhjMjc2MWQxOTFlLi4z
YTU5OWRhYzg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAKQEAgLTY3LDE0ICs2NywyNCBAQCBT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkqIFNXQ29udGV4dE1hbmFnZXI6OnNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eShTZXJ2aWNlV29yawogICAgIHJldHVybiBtX3dvcmtlck1hcC5nZXQoaWRlbnRp
Zmllcik7CiB9CiAKLXZvaWQgU1dDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUmVm
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJj
ZURhdGEpCit2b2lkIFNXQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlk
ZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSkKIHsKICAgICBh
dXRvKiBzZXJ2aWNlV29ya2VyID0gbV93b3JrZXJNYXAuZ2V0KGRlc3RpbmF0aW9uKTsKICAgICBB
U1NFUlQoc2VydmljZVdvcmtlcik7CiAgICAgQVNTRVJUKCFzZXJ2aWNlV29ya2VyLT5pc1Rlcm1p
bmF0aW5nT3JUZXJtaW5hdGVkKCkpOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIHZh
bGlkIE1lc3NhZ2VQb3J0Q2hhbm5lbHMuCi0gICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkucG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXVEZNb3ZlKG1lc3NhZ2UpLCBudWxs
cHRyLCBzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKKyAgICBzZXJ2aWNl
V29ya2VyLT50aHJlYWQoKS5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXVEZNb3ZlKG1lc3Nh
Z2UpLCBudWxscHRyLCBzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKK30K
Kwordm9pZCBTV0NvbnRleHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZURhdGEpCit7CisgICAgYXV0
byogc2VydmljZVdvcmtlciA9IG1fd29ya2VyTWFwLmdldChkZXN0aW5hdGlvbik7CisgICAgQVNT
RVJUKHNlcnZpY2VXb3JrZXIpOworICAgIEFTU0VSVCghc2VydmljZVdvcmtlci0+aXNUZXJtaW5h
dGluZ09yVGVybWluYXRlZCgpKTsKKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB2YWxp
ZCBNZXNzYWdlUG9ydENoYW5uZWxzLgorICAgIHNlcnZpY2VXb3JrZXItPnRocmVhZCgpLnBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdURk1vdmUobWVzc2FnZSksIG51bGxwdHIsIFdURk1vdmUo
c291cmNlRGF0YSkpOwogfQogCiB2b2lkIFNXQ29udGV4dE1hbmFnZXI6OmZpcmVJbnN0YWxsRXZl
bnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaApp
bmRleCBmMGIxMGEwMTQ0MS4uNmFiOTFmNzY4ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKQEAgLTY1
LDcgKzY1LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3RlclNl
cnZpY2VXb3JrZXJUaHJlYWRGb3JJbnN0YWxsKFJlZjxTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk+
JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSogc2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBjb25zdDsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUo
U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRl
bnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3Nh
Z2UsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0
aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29y
a2VyRGF0YSYmIHNvdXJjZURhdGEpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmlyZUluc3Rh
bGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIEZ1
bmN0aW9uPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDkxYTBj
YzRjODkwLi5kZWM0MDFlZjNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTEw
NSwxOSArMTA1LDMzIEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9zdEZldGNoVGFzayhS
ZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYgY2xpZW50CiAgICAgfSwgV29ya2VyUnVu
TG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShSZWY8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4m
JiBjaGFubmVscywgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmll
ciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQorc3RhdGljIHZvaWQgZmly
ZU1lc3NhZ2VFdmVudChTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIHNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYgY2hhbm5lbHMsIEV4dGVuZGFibGVNZXNz
YWdlRXZlbnRTb3VyY2UmJiBzb3VyY2UsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmln
aW4pCiB7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB0YXNrKFtjaGFubmVscyA9
IFdURk1vdmUoY2hhbm5lbHMpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgc291cmNlSWRl
bnRpZmllciwgc291cmNlRGF0YSA9IHNvdXJjZURhdGEuaXNvbGF0ZWRDb3B5KCldIChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICBhdXRvIHBvcnRzID0gTWVz
c2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3Zl
KGNoYW5uZWxzKSk7CisgICAgYXV0byBtZXNzYWdlRXZlbnQgPSBFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIFdURk1vdmUobWVzc2FnZSksIHNvdXJjZU9yaWdp
bi0+dG9TdHJpbmcoKSwgeyB9LCBzb3VyY2UpOworICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5kaXNwYXRjaEV2ZW50KG1lc3NhZ2VFdmVudCk7CisgICAgc2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLnRocmVhZCgpLndvcmtlck9iamVjdFByb3h5KCkuY29uZmlybU1lc3NhZ2VGcm9tV29ya2Vy
T2JqZWN0KHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oYXNQZW5kaW5nQWN0aXZpdHkoKSk7Cisg
ICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnVwZGF0ZUV4dGVuZGVkRXZlbnRzU2V0KG1lc3Nh
Z2VFdmVudC5wdHIoKSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXIoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYgY2hhbm5lbHMsIFNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhJiYgc291cmNlRGF0YSkKK3sKKyAgICBydW5Mb29wKCkucG9zdFRhc2soW2NoYW5u
ZWxzID0gV1RGTW92ZShjaGFubmVscyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3Vy
Y2VJZGVudGlmaWVyLCBzb3VyY2VEYXRhID0gc291cmNlRGF0YS5pc29sYXRlZENvcHkoKV0gKGF1
dG8mIGNvbnRleHQpIG11dGFibGUgewogICAgICAgICBhdXRvJiBzZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOwotICAg
ICAgICBhdXRvIHBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoc2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLCBXVEZNb3ZlKGNoYW5uZWxzKSk7CiAgICAgICAgIFJlZlB0cjxTZXJ2aWNl
V29ya2VyQ2xpZW50PiBzb3VyY2UgPSBTZXJ2aWNlV29ya2VyQ2xpZW50OjpnZXRPckNyZWF0ZShz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIHNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoc291cmNl
RGF0YSkpOwogICAgICAgICBhdXRvIHNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGUoc291cmNlLT51cmwoKSk7Ci0gICAgICAgIGF1dG8gbWVzc2FnZUV2ZW50ID0gRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBXVEZNb3ZlKG1lc3NhZ2UpLCBz
b3VyY2VPcmlnaW4tPnRvU3RyaW5nKCksIHsgfSwgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJj
ZSB7IHNvdXJjZSB9KTsKLSAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmRpc3BhdGNo
RXZlbnQobWVzc2FnZUV2ZW50KTsKLSAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnRo
cmVhZCgpLndvcmtlck9iamVjdFByb3h5KCkuY29uZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0
KHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oYXNQZW5kaW5nQWN0aXZpdHkoKSk7Ci0gICAgICAg
IHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS51cGRhdGVFeHRlbmRlZEV2ZW50c1NldChtZXNzYWdl
RXZlbnQucHRyKCkpOworICAgICAgICBmaXJlTWVzc2FnZUV2ZW50KHNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSwgV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShjaGFubmVscyksIEV4dGVuZGFibGVN
ZXNzYWdlRXZlbnRTb3VyY2UgeyBzb3VyY2UgfSwgV1RGTW92ZShzb3VyY2VPcmlnaW4pKTsKKyAg
ICB9KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlcihSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiBjaGFubmVscywgU2VydmljZVdvcmtlckRh
dGEmJiBzb3VyY2VEYXRhKQoreworICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhbY2hhbm5lbHMgPSBX
VEZNb3ZlKGNoYW5uZWxzKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHNvdXJjZURhdGEg
PSBzb3VyY2VEYXRhLmlzb2xhdGVkQ29weSgpXSAoYXV0byYgY29udGV4dCkgbXV0YWJsZSB7Cisg
ICAgICAgIGF1dG8mIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCk7CisgICAgICAgIFJlZlB0cjxTZXJ2aWNlV29ya2Vy
PiBzb3VyY2UgPSBTZXJ2aWNlV29ya2VyOjpnZXRPckNyZWF0ZShzZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUsIFdURk1vdmUoc291cmNlRGF0YSkpOworICAgICAgICBhdXRvIHNvdXJjZU9yaWdpbiA9
IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoc291cmNlLT5zY3JpcHRVUkwoKSk7CisgICAgICAgIGZp
cmVNZXNzYWdlRXZlbnQoZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0
KSwgV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShjaGFubmVscyksIEV4dGVuZGFibGVNZXNzYWdl
RXZlbnRTb3VyY2UgeyBzb3VyY2UgfSwgV1RGTW92ZShzb3VyY2VPcmlnaW4pKTsKICAgICB9KTsK
LSAgICBydW5Mb29wKCkucG9zdFRhc2soV1RGTW92ZSh0YXNrKSk7CiB9CiAKIHZvaWQgU2Vydmlj
ZVdvcmtlclRocmVhZDo6ZmlyZUluc3RhbGxFdmVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgK
aW5kZXggZWE1MWRlN2ZlOGUuLjY1ZTUwNzYxMTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5o
CkBAIC01OCw3ICs1OCw4IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9z
dEZldGNoVGFzayhSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIFJlc291cmNlUmVx
dWVzdCYmLCBGZXRjaE9wdGlvbnMmJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0RmV0
Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNo
T3B0aW9ucyYmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgc3RkOjp1bmlx
dWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJj
ZURhdGEpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXIoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQ
b3J0Q2hhbm5lbEFycmF5PiYmLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJ
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5
PiYmLCBTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZURhdGEpOwogCiAgICAgdm9pZCBmaXJlSW5z
dGFsbEV2ZW50KCk7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA0YWNlYmY2ZGY4My4uYjA0YTkzOWJjYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMjgsMTQgKzEy
OCwyNiBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBm
ZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8UwogICAgIHNlbmRUb0NvbnRleHRQcm9jZXNz
KE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaCB7IGlk
ZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgcmVx
dWVzdCwgb3B0aW9ucywgZm9ybURhdGEgfSk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIGRlc3RpbmF0aW9uU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgRG9jdW1lbnRJZGVudGlmaWVyIHNvdXJjZUNvbnRleHRJ
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCit2b2lkIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tQ2xpZW50
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBz
b3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCiB7
CiAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGlzIHNwZWNpZmljIHdvcmtlciBjYW5ub3QgYmUgcmUt
cnVuIChlLmcuIGl0cyByZWdpc3RyYXRpb24gaGFzIGJlZW4gcmVtb3ZlZCkKLSAgICBpZiAoIXNl
cnZlcigpLmludm9rZVJ1blNlcnZpY2VXb3JrZXIoZGVzdGluYXRpb25TZXJ2aWNlV29ya2VySWRl
bnRpZmllcikpCisgICAgaWYgKCFzZXJ2ZXIoKS5pbnZva2VSdW5TZXJ2aWNlV29ya2VyKGRlc3Rp
bmF0aW9uSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIgeyBpZGVudGlmaWVyKCksIHNvdXJjZUNv
bnRleHRJZGVudGlmaWVyIH07Ci0gICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6Oldl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlIHsgZGVzdGluYXRpb25TZXJ2aWNlV29ya2VySWRlbnRpZmllciwgbWVzc2FnZSwg
c291cmNlSWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSB9KTsKKyAgICBzZW5kVG9Db250
ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudCB7IGRlc3RpbmF0aW9uSWRlbnRpZmllciwg
bWVzc2FnZSwgc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSB9KTsKK30KKwor
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJv
bVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlm
aWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgLy8gSXQncyBwb3NzaWJsZSB0aGlzIHNw
ZWNpZmljIHdvcmtlciBjYW5ub3QgYmUgcmUtcnVuIChlLmcuIGl0cyByZWdpc3RyYXRpb24gaGFz
IGJlZW4gcmVtb3ZlZCkKKyAgICBpZiAoIXNlcnZlcigpLmludm9rZVJ1blNlcnZpY2VXb3JrZXIo
ZGVzdGluYXRpb25JZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogc291
cmNlV29ya2VyID0gc2VydmVyKCkud29ya2VyQnlJRChzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBp
ZiAoIXNvdXJjZVdvcmtlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VuZFRvQ29udGV4dFBy
b2Nlc3MoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpQb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyIHsgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBtZXNzYWdlLCBzb3VyY2VXb3JrZXItPmRhdGEoKSB9KTsKIH0KIAogdm9pZCBXZWJTV1NlcnZl
ckNvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHVpbnQ2NF90IGZldGNoSWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggMWU2MTEyZDAyOWUuLjg2NDUwZjIwYTcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC04MCw3ICs4MCw4IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIHN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYpOwogCi0gICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0
aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3Jl
OjpEb2N1bWVudElkZW50aWZpZXIgc291cmNlQ29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBk
ZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpOworICAgIHZvaWQgcG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNl
SWRlbnRpZmllcik7CiAKICAgICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IHJlZ2lz
dHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpVUkwmIGNsaWVudFVSTCk7CiAgICAg
dm9pZCBnZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBj
b25zdCBXZWJDb3JlOjpVUkwmIGNsaWVudFVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBjMGI5M2NmZjA3Mi4uMTAyZjAwYjU4
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgpAQCAtMzIsNyArMzIsOCBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlckNvbm5lY3Rpb24g
ewogICAgIFNlcnZpY2VXb3JrZXJTdG9wcGVkQ29udHJvbGxpbmdDbGllbnQoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIs
IFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcikKIAogICAgIFN0
YXJ0RmV0Y2godWludDY0X3QgaWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllcj4gc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlv
bnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHkpCi0gICAgUG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBkZXN0aW5hdGlvblNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2Ug
bWVzc2FnZSwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIHNvdXJjZUNvbnRleHRJZGVudGlm
aWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEgc291cmNlKQorICAg
IFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBkZXN0aW5hdGlvblNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6OkRh
dGFSZWZlcmVuY2UgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSBzb3VyY2VEYXRhKQorICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJv
bVNlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRp
b25TZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIHN0
cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyKQog
CiAgICAgRGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbktleSBrZXkpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IGFhMzAzYjFl
YmFmLi4xMmNkZDBhYjdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC04Miw5ICs4MiwxNCBA
QCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6UmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKGlkZW50
aWZpZXIpKTsKIH0KIAotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRp
b25JZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIHNjcmlwdFZhbHVlLCBE
b2N1bWVudElkZW50aWZpZXIgc291cmNlQ29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhJiYgc291cmNlKQordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRl
bnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBzY3JpcHRWYWx1ZSwgU2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNs
aWVudERhdGEmJiBzb3VyY2UpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKGRlc3RpbmF0aW9u
SWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgc2NyaXB0VmFsdWUtPmRhdGEoKSB9LCBz
b3VyY2VDb250ZXh0SWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2UpKSk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZy
b21DbGllbnQoZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgeyBzY3Jp
cHRWYWx1ZS0+ZGF0YSgpIH0sIHNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlKSkpOwor
fQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmIHNjcmlwdFZhbHVlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzb3VyY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtl
cihkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSB7IHNjcmlwdFZhbHVl
LT5kYXRhKCkgfSwgc291cmNlV29ya2VySWRlbnRpZmllcikpOwogfQogCiB2b2lkIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6c2VydmljZVdvcmtlclN0YXJ0ZWRDb250cm9sbGluZ0NsaWVudChTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRG9jdW1lbnRJ
ZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCA5MTc2YWI3
ZmM2YS4uZTU2ZjRlYTU0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC03Myw3ICs3Myw4IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIHNjaGVkdWxlSm9iSW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckpvYkRhdGEmKSBmaW5hbDsKICAgICB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0
SW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoUmVzdWx0JikgZmluYWw7
Ci0gICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFdlYkNv
cmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVy
IHNvdXJjZUNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIHNvdXJjZSkgZmluYWw7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJl
ZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhJiYgc291cmNlKSBmaW5hbDsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRl
bnRpZmllciwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAg
ICAgdm9pZCBzZXJ2aWNlV29ya2VyU3RhcnRlZENvbnRyb2xsaW5nQ2xpZW50KFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lk
IHNlcnZpY2VXb3JrZXJTdG9wcGVkQ29udHJvbGxpbmdDbGllbnQoV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BP
cmlnaW4sIFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNsaWVudERhdGEmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmNwcAppbmRleCBhNWUzMDdlMzgyMi4uMTdkYTJmZDY0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5jcHAKQEAgLTE1MCw5ICsxNTAsMTQgQEAgdm9pZCBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IHNlcnYKICAgICBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnRocmVhZCgpLnBvc3RGZXRjaFRh
c2soV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKGNsaWVudElkKSwgV1RGTW92ZShyZXF1ZXN0KSwg
V1RGTW92ZShvcHRpb25zKSk7CiB9CiAKLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
IG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIs
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSkKK3ZvaWQgV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudChT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291
cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQogewot
ICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUoZGVzdGluYXRpb25JZGVudGlmaWVyLCBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmFkb3B0KG1lc3NhZ2UudmVjdG9yKCkpLCBzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNv
dXJjZURhdGEpKTsKKyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5wb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlcihkZXN0aW5hdGlvbklkZW50aWZpZXIsIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6YWRvcHQobWVzc2FnZS52ZWN0b3IoKSksIHNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUo
c291cmNlRGF0YSkpOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZURhdGEpCit7CisgICAgU1dDb250
ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoZGVzdGlu
YXRpb25JZGVudGlmaWVyLCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KG1lc3NhZ2UudmVj
dG9yKCkpLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKIH0KIAogdm9pZCBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6ZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBp
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXggOGU1NzYyMjhk
MjguLjk3ZmViNTY2NGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTcx
LDcgKzcxLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlcnZpY2VXb3JrZXJTdGFydGVkV2l0aE1l
c3NhZ2Uoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZp
ZXI+LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNl
cHRpb25NZXNzYWdlKSBmaW5hbDsKICAgICB2b2lkIGluc3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYpOwogICAgIHZvaWQgc3RhcnRGZXRj
aChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElk
ZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0
aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOworICAgIHZvaWQgcG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBt
ZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwor
ICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEm
JiBzb3VyY2VEYXRhKTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgdGVybWluYXRlV29ya2VyKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggYzIxYTUwOWZkMmIuLjE2ZjRmNjAzMTQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAt
MjUsNyArMjUsOCBAQAogbWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24g
ewogICAgIEluc3RhbGxTZXJ2aWNlV29ya2VyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEgY29udGV4dERhdGEpCiAgICAgU3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5KQotICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRp
b25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIHN0cnVjdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBzb3VyY2VEYXRhKQorICAgIFBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHNvdXJjZURhdGEp
CisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0
YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgc291
cmNlRGF0YSkKICAgICBGaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCiAgICAgRmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBUZXJtaW5hdGVXb3JrZXIoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328283</attachid>
            <date>2017-12-02 22:02:55 -0800</date>
            <delta_ts>2017-12-02 22:13:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180328-20171202220254.patch</filename>
            <type>text/plain</type>
            <size>32678</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNkNDExMTY1YjNkOThh
YWE1ODNmMzI1NWZjZjU0NWUwYWFlNzEyYS4uMmNhOWY1ODUyNWRmNjRjZmZjODUzMDFmODUxOTUw
MzM5Y2U0OWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTEyLTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBzZXJ2aWNlV29y
a2VyLnBvc3RNZXNzYWdlKCkgaW5zaWRlIHNlcnZpY2Ugd29ya2VycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMzI4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBzZXJ2aWNlV29ya2VyLnBv
c3RNZXNzYWdlKCkgaW5zaWRlIHNlcnZpY2Ugd29ya2Vycy4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2UvU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6cG9zdE1lc3Nh
Z2UpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4
dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpcmVNZXNzYWdlRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuaDoKKwogMjAxNy0xMi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFN1cHBvcnQgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi51cGRhdGUoKSBpbnNp
ZGUgc2VydmljZSB3b3JrZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY0Mzc1MDJiY2RmZDA3YmVhMjM0NmRhOGU1
ZjI0NDFmN2EyNWY1OGQuLjI4NDQ0N2IzMzVmYjY4ZWNjMWMwYjQxMjA5NzMwOWY0NjQ1NDkzMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTctMTItMDIgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IHNlcnZpY2VXb3JrZXIucG9zdE1lc3Nh
Z2UoKSBpbnNpZGUgc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODAzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKSBp
bnNpZGUgc2VydmljZSB3b3JrZXJzLgorCisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJT
V1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcik6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21DbGllbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorCiAy
MDE3LTEyLTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJ
bXBsZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtZ2V0
YWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRD
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25u
ZWN0aW9uLmgKaW5kZXggZWFkOWVlODQ3NzNkNDdjYjY1NjhhMTc1NzExNGY1YTg4OTU4YjZlNy4u
ZjIwNGY3ZmQzYTFlMjcxNjAxNmYzN2U1MTgxOTE3NjU0NDYwZWQzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNDcs
NiArNDcsNyBAQCBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJTdGF0ZTsKIGVudW0gY2xhc3MgU2hv
dWxkTm90aWZ5V2hlblJlc29sdmVkOwogc3RydWN0IEV4Y2VwdGlvbkRhdGE7CiBzdHJ1Y3QgU2Vy
dmljZVdvcmtlckNsaWVudERhdGE7CitzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXI7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckRhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNo
UmVzdWx0Owogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhOwpAQCAtNzAsNyAr
NzEsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlv
blByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYpID0gMDsKIAotICAg
IHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiwgRG9jdW1lbnRJZGVudGlmaWVyIHNvdXJjZUNvbnRleHRJZGVudGlmaWVy
LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0
aW5hdGlvbklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhJiYgc291cmNlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwg
UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291
cmNlV29ya2VySWRlbnRpZmllcikgPSAwOworCiAgICAgdmlydHVhbCBTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29u
c3QgU2VjdXJpdHlPcmlnaW4mKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNUZXJt
aW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAppbmRleCA4MmJiOWIwNGJi
NTMyNjZkNGI0ZjVhYmU0ODUzNDdhZjQ4YzUzMTMwLi5lMmFjZjg2ZTAxYTk0YWZhZmViYTY1MWFj
NDkzYjgwYWUzM2YxY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCiAjaW5j
bHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgpAQCAtMTEwLDE0ICsxMTEsMTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gU2Vydmlj
ZVdvcmtlcjo6cG9zdE1lc3NhZ2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlMK
ICAgICBpZiAoY2hhbm5lbHMgJiYgIWNoYW5uZWxzLT5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJQYXNzaW5nIE1l
c3NhZ2VQb3J0IG9iamVjdHMgdG8gcG9zdE1lc3NhZ2UgaXMgbm90IHlldCBzdXBwb3J0ZWQiKSB9
OwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhZGQgc3VwcG9ydCBmb3Igd29ya2Vycy4KLSAg
ICBpZiAoIWlzPERvY3VtZW50Pihjb250ZXh0KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoInNlcnZpY2VXb3JrZXJDbGllbnQucG9z
dE1lc3NhZ2UoKSBmcm9tIHdvcmtlcnMgaXMgbm90IHlldCBzdXBwb3J0ZWQiKSB9OworICAgIGlm
IChpczxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpKSB7CisgICAgICAgIGF1dG8g
c291cmNlV29ya2VySWRlbnRpZmllciA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZT4oY29udGV4dCkudGhyZWFkKCkuaWRlbnRpZmllcigpOworICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFtzZXNzaW9uSUQgPSBjb250ZXh0LnNlc3Npb25JRCgpLCBkZXN0aW5hdGlvbklkZW50aWZp
ZXIgPSBpZGVudGlmaWVyKCksIHNvdXJjZVdvcmtlcklkZW50aWZpZXIsIG1lc3NhZ2UgPSBXVEZN
b3ZlKG1lc3NhZ2UpXSgpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byYgc3dDb25uZWN0aW9u
ID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVj
dGlvbkZvclNlc3Npb24oc2Vzc2lvbklEKTsKKyAgICAgICAgICAgIHN3Q29ubmVjdGlvbi5wb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlcihkZXN0aW5hdGlvbklkZW50aWZpZXIsIG1lc3NhZ2UucmVs
ZWFzZVJldHVyblZhbHVlKCksIHNvdXJjZVdvcmtlcklkZW50aWZpZXIpOworICAgICAgICB9KTsK
KyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICB9CiAKICAgICBhdXRvIHNvdXJjZUNsaWVudERhdGEg
PSBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZnJvbShjb250ZXh0KTsKLQogICAgIGF1dG8mIHN3
Q29ubmVjdGlvbiA9IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdv
cmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKGNvbnRleHQuc2Vzc2lvbklEKCkpOwotICAgIHN3Q29u
bmVjdGlvbi5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKGlkZW50aWZpZXIo
KSwgbWVzc2FnZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRl
eHQpLmlkZW50aWZpZXIoKSwgV1RGTW92ZShzb3VyY2VDbGllbnREYXRhKSk7CisgICAgU2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlQ2xpZW50SWRlbnRpZmllciB7IHN3Q29ubmVj
dGlvbi5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpLCBkb3duY2FzdDxEb2N1bWVudD4oY29u
dGV4dCkuaWRlbnRpZmllcigpIH07CisgICAgc3dDb25uZWN0aW9uLnBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyKGlkZW50aWZpZXIoKSwgbWVzc2FnZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgV1RG
TW92ZShzb3VyY2VDbGllbnRJZGVudGlmaWVyKSwgV1RGTW92ZShzb3VyY2VDbGllbnREYXRhKSk7
CiAKICAgICByZXR1cm4geyB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAppbmRleCA4YzI3NjFk
MTkxZTkwN2ZkMjAwNDBmZTAyYTEzOWYxNzdhNTgyNmQ0Li4zYTU5OWRhYzg4ZWQxNWY4Nzc4ZGI2
ZTQ3MWFhZWJkOTI5MzkyNTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcApAQCAtNjcsMTQgKzY3
LDI0IEBAIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSogU1dDb250ZXh0TWFuYWdlcjo6c2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5KFNlcnZpY2VXb3JrCiAgICAgcmV0dXJuIG1fd29ya2VyTWFwLmdl
dChpZGVudGlmaWVyKTsKIH0KIAotdm9pZCBTV0NvbnRleHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0
aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
JiYgc291cmNlRGF0YSkKK3ZvaWQgU1dDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3NhZ2VUb1NlcnZp
Y2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIg
c291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQog
ewogICAgIGF1dG8qIHNlcnZpY2VXb3JrZXIgPSBtX3dvcmtlck1hcC5nZXQoZGVzdGluYXRpb24p
OwogICAgIEFTU0VSVChzZXJ2aWNlV29ya2VyKTsKICAgICBBU1NFUlQoIXNlcnZpY2VXb3JrZXIt
PmlzVGVybWluYXRpbmdPclRlcm1pbmF0ZWQoKSk7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IHBhc3MgdmFsaWQgTWVzc2FnZVBvcnRDaGFubmVscy4KLSAgICBzZXJ2aWNlV29ya2VyLT50aHJl
YWQoKS5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdURk1vdmUobWVzc2Fn
ZSksIG51bGxwdHIsIHNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlRGF0YSkpOworICAg
IHNlcnZpY2VXb3JrZXItPnRocmVhZCgpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdURk1v
dmUobWVzc2FnZSksIG51bGxwdHIsIHNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlRGF0
YSkpOworfQorCit2b2lkIFNXQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlRGF0YSkKK3sK
KyAgICBhdXRvKiBzZXJ2aWNlV29ya2VyID0gbV93b3JrZXJNYXAuZ2V0KGRlc3RpbmF0aW9uKTsK
KyAgICBBU1NFUlQoc2VydmljZVdvcmtlcik7CisgICAgQVNTRVJUKCFzZXJ2aWNlV29ya2VyLT5p
c1Rlcm1pbmF0aW5nT3JUZXJtaW5hdGVkKCkpOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBw
YXNzIHZhbGlkIE1lc3NhZ2VQb3J0Q2hhbm5lbHMuCisgICAgc2VydmljZVdvcmtlci0+dGhyZWFk
KCkucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV1RGTW92ZShtZXNzYWdlKSwgbnVsbHB0ciwg
V1RGTW92ZShzb3VyY2VEYXRhKSk7CiB9CiAKIHZvaWQgU1dDb250ZXh0TWFuYWdlcjo6ZmlyZUlu
c3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdl
ci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFu
YWdlci5oCmluZGV4IGYwYjEwYTAxNDQxZGE0NTljM2E5MDM5Zjc1NzRhYzI3ZTU2Nzg3ZjguLjZh
YjkxZjc2ODg0NTM0YzFiNjA5NTRlMTg2MjFiNjRkMjRhYmQxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2Vy
LmgKQEAgLTY1LDcgKzY1LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBy
ZWdpc3RlclNlcnZpY2VXb3JrZXJUaHJlYWRGb3JJbnN0YWxsKFJlZjxTZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHk+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eSogc2VydmljZVdvcmtlclRocmVhZFByb3h5KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBjb25z
dDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIg
c291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZp
ZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBT
ZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZURhdGEpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50
aWZpZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmlu
ZGV4IDkxYTBjYzRjODkwMWQ0YWQ1Mzk4ODBkYjdhOTc3NjJkMTRlOWY5Y2IuLmRlYzQwMWVmM2Jl
OWQ2NjUzM2M1MjRkYjEwOWNkYjg3MTliZjRkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
Y3BwCkBAIC0xMDUsMTkgKzEwNSwzMyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RG
ZXRjaFRhc2soUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudAogICAgIH0s
IFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJU
aHJlYWQ6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFu
bmVsQXJyYXk+JiYgY2hhbm5lbHMsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJj
ZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSkKK3N0YXRp
YyB2b2lkIGZpcmVNZXNzYWdlRXZlbnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBzZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwg
c3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzLCBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50U291cmNlJiYgc291cmNlLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYg
c291cmNlT3JpZ2luKQogewotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgdGFzayhb
Y2hhbm5lbHMgPSBXVEZNb3ZlKGNoYW5uZWxzKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSks
IHNvdXJjZUlkZW50aWZpZXIsIHNvdXJjZURhdGEgPSBzb3VyY2VEYXRhLmlzb2xhdGVkQ29weSgp
XSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgYXV0byBw
b3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZSwgV1RGTW92ZShjaGFubmVscykpOworICAgIGF1dG8gbWVzc2FnZUV2ZW50ID0gRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBXVEZNb3ZlKG1lc3NhZ2UpLCBz
b3VyY2VPcmlnaW4tPnRvU3RyaW5nKCksIHsgfSwgc291cmNlKTsKKyAgICBzZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUuZGlzcGF0Y2hFdmVudChtZXNzYWdlRXZlbnQpOworICAgIHNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS50aHJlYWQoKS53b3JrZXJPYmplY3RQcm94eSgpLmNvbmZpcm1NZXNzYWdl
RnJvbVdvcmtlck9iamVjdChzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaGFzUGVuZGluZ0FjdGl2
aXR5KCkpOworICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS51cGRhdGVFeHRlbmRlZEV2ZW50
c1NldChtZXNzYWdlRXZlbnQucHRyKCkpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6
OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYg
bWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmIGNoYW5u
ZWxzLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCit7CisgICAgcnVuTG9vcCgpLnBvc3RU
YXNrKFtjaGFubmVscyA9IFdURk1vdmUoY2hhbm5lbHMpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNz
YWdlKSwgc291cmNlSWRlbnRpZmllciwgc291cmNlRGF0YSA9IHNvdXJjZURhdGEuaXNvbGF0ZWRD
b3B5KCldIChhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byYgc2VydmljZVdv
cmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250
ZXh0KTsKLSAgICAgICAgYXV0byBwb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKHNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92ZShjaGFubmVscykpOwogICAgICAgICBSZWZQ
dHI8U2VydmljZVdvcmtlckNsaWVudD4gc291cmNlID0gU2VydmljZVdvcmtlckNsaWVudDo6Z2V0
T3JDcmVhdGUoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBzb3VyY2VJZGVudGlmaWVyLCBXVEZN
b3ZlKHNvdXJjZURhdGEpKTsKICAgICAgICAgYXV0byBzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlKHNvdXJjZS0+dXJsKCkpOwotICAgICAgICBhdXRvIG1lc3NhZ2VFdmVudCA9
IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQ6OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgV1RGTW92ZSht
ZXNzYWdlKSwgc291cmNlT3JpZ2luLT50b1N0cmluZygpLCB7IH0sIEV4dGVuZGFibGVNZXNzYWdl
RXZlbnRTb3VyY2UgeyBzb3VyY2UgfSk7Ci0gICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5kaXNwYXRjaEV2ZW50KG1lc3NhZ2VFdmVudCk7Ci0gICAgICAgIHNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS50aHJlYWQoKS53b3JrZXJPYmplY3RQcm94eSgpLmNvbmZpcm1NZXNzYWdlRnJvbVdv
cmtlck9iamVjdChzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaGFzUGVuZGluZ0FjdGl2aXR5KCkp
OwotICAgICAgICBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUudXBkYXRlRXh0ZW5kZWRFdmVudHNT
ZXQobWVzc2FnZUV2ZW50LnB0cigpKTsKKyAgICAgICAgZmlyZU1lc3NhZ2VFdmVudChzZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUsIFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUoY2hhbm5lbHMpLCBF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlIHsgc291cmNlIH0sIFdURk1vdmUoc291cmNlT3Jp
Z2luKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXIoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYgY2hhbm5lbHMsIFNlcnZp
Y2VXb3JrZXJEYXRhJiYgc291cmNlRGF0YSkKK3sKKyAgICBydW5Mb29wKCkucG9zdFRhc2soW2No
YW5uZWxzID0gV1RGTW92ZShjaGFubmVscyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBz
b3VyY2VEYXRhID0gc291cmNlRGF0YS5pc29sYXRlZENvcHkoKV0gKGF1dG8mIGNvbnRleHQpIG11
dGFibGUgeworICAgICAgICBhdXRvJiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2Fz
dDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOworICAgICAgICBSZWZQdHI8U2Vy
dmljZVdvcmtlcj4gc291cmNlID0gU2VydmljZVdvcmtlcjo6Z2V0T3JDcmVhdGUoc2VydmljZVdv
cmtlckdsb2JhbFNjb3BlLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKKyAgICAgICAgYXV0byBzb3Vy
Y2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHNvdXJjZS0+c2NyaXB0VVJMKCkpOwor
ICAgICAgICBmaXJlTWVzc2FnZUV2ZW50KGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZT4oY29udGV4dCksIFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUoY2hhbm5lbHMpLCBFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50U291cmNlIHsgc291cmNlIH0sIFdURk1vdmUoc291cmNlT3JpZ2luKSk7
CiAgICAgfSk7Ci0gICAgcnVuTG9vcCgpLnBvc3RUYXNrKFdURk1vdmUodGFzaykpOwogfQogCiB2
b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmZpcmVJbnN0YWxsRXZlbnQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5oCmluZGV4IGVhNTFkZTdmZThlYzhhMGMwZTBjM2NhMGM1NzFmOTZiZmViMWE5ZmIu
LjY1ZTUwNzYxMTUwY2IxOTIyMzUxNmMyNWM0MWYwZThlMzJhZWU4ZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmgKQEAgLTU4LDcgKzU4LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwg
UmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHBvc3RGZXRjaFRhc2soUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBzdGQ6
Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiYmLCBSZXNvdXJjZVJlcXVl
c3QmJiwgRmV0Y2hPcHRpb25zJiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYm
LCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYsIFNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhJiYgc291cmNlRGF0YSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlcihSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0
YSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihS
ZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRD
aGFubmVsQXJyYXk+JiYsIFNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlRGF0YSk7CiAKICAgICB2
b2lkIGZpcmVJbnN0YWxsRXZlbnQoKTsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDRhY2ViZjZkZjgzOTI2
OTQ2ZDcyOTQ5MzJmNWY1ZmQ2NmU5MDE5MmQuLmIwNGE5MzliY2MzNWZkZWY0YThhOTQ1OTkzM2U5
YzdiNTBlZTIyMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBA
IC0xMjgsMTQgKzEyOCwyNiBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRj
aCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8UwogICAgIHNlbmRUb0Nv
bnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3Rh
cnRGZXRjaCB7IGlkZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgZm9ybURhdGEgfSk7CiB9CiAKLXZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uU2VydmljZVdvcmtlcklkZW50aWZpZXIs
IGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgRG9jdW1lbnRJZGVudGlmaWVyIHNv
dXJjZUNvbnRleHRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURh
dGEpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJGcm9tQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmll
ciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNv
dXJjZURhdGEpCiB7CiAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGlzIHNwZWNpZmljIHdvcmtlciBj
YW5ub3QgYmUgcmUtcnVuIChlLmcuIGl0cyByZWdpc3RyYXRpb24gaGFzIGJlZW4gcmVtb3ZlZCkK
LSAgICBpZiAoIXNlcnZlcigpLmludm9rZVJ1blNlcnZpY2VXb3JrZXIoZGVzdGluYXRpb25TZXJ2
aWNlV29ya2VySWRlbnRpZmllcikpCisgICAgaWYgKCFzZXJ2ZXIoKS5pbnZva2VSdW5TZXJ2aWNl
V29ya2VyKGRlc3RpbmF0aW9uSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNl
cnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIgeyBpZGVudGlmaWVy
KCksIHNvdXJjZUNvbnRleHRJZGVudGlmaWVyIH07Ci0gICAgc2VuZFRvQ29udGV4dFByb2Nlc3Mo
TWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlIHsgZGVzdGluYXRpb25TZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgbWVzc2FnZSwgc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSB9KTsKKyAg
ICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudCB7IGRlc3RpbmF0aW9u
SWRlbnRpZmllciwgbWVzc2FnZSwgc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRh
KSB9KTsKK30KKwordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyRnJvbVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGlu
YXRpb25JZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgLy8gSXQncyBwb3Nz
aWJsZSB0aGlzIHNwZWNpZmljIHdvcmtlciBjYW5ub3QgYmUgcmUtcnVuIChlLmcuIGl0cyByZWdp
c3RyYXRpb24gaGFzIGJlZW4gcmVtb3ZlZCkKKyAgICBpZiAoIXNlcnZlcigpLmludm9rZVJ1blNl
cnZpY2VXb3JrZXIoZGVzdGluYXRpb25JZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgYXV0byogc291cmNlV29ya2VyID0gc2VydmVyKCkud29ya2VyQnlJRChzb3VyY2VJZGVudGlm
aWVyKTsKKyAgICBpZiAoIXNvdXJjZVdvcmtlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgc2Vu
ZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyIHsgZGVzdGluYXRp
b25JZGVudGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VXb3JrZXItPmRhdGEoKSB9KTsKIH0KIAogdm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHVpbnQ2NF90
IGZldGNoSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggMWU2MTEyZDAyOWVmNDRkNTY3Mjhl
MmQ4YjM2MDkyMjExY2E2NWQwMy4uODY0NTBmMjBhNzA4NjNlYjdjZTEyNmU1YWFkYTRlNjlkMzI3
ZGI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtODAsNyArODAs
OCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRp
Zmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4sIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9u
cyYsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKIAotICAgIHZvaWQgcG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVz
c2FnZSwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIHNvdXJjZUNvbnRleHRJZGVudGlmaWVy
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSk7CisgICAgdm9pZCBw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJj
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKTsK
KyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbVNlcnZpY2VXb3JrZXIoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBtYXRjaFJlZ2lzdHJhdGlvbih1
aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGll
bnRVUkwpOwogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCByZWdpc3RyYXRpb25N
YXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggYzBiOTNjZmYw
NzJiMzI5YThmMjEzMDk4NzIwZGJmOThkNGEzYmE2Ni4uMTAyZjAwYjU4NTAyNzVmNzZkMDdhOGMx
NDFhODI5OTg3NmZlZWE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMiw3ICszMiw4IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbiB7CiAgICAgU2VydmljZVdvcmtlclN0b3BwZWRDb250cm9sbGluZ0NsaWVu
dChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0
aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlm
aWVyKQogCiAgICAgU3RhcnRGZXRjaCh1aW50NjRfdCBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRj
aE9wdGlvbnMgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSkKLSAg
ICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uU2VydmljZVdvcmtlcklkZW50aWZpZXIsIElQQzo6
RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgc291cmNl
Q29udGV4dElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSBzb3VyY2UpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tQ2xpZW50KFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uU2VydmljZVdvcmtlcklkZW50
aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHNvdXJjZURhdGEpCisgICAgUG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvblNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVu
Y2UgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJj
ZUlkZW50aWZpZXIpCiAKICAgICBEaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IGtleSkKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAK
aW5kZXggYWEzMDNiMWViYWZmMGEzMDdkYmVkZmEzNDYyNTg1MDIwNTI3M2U4Mi4uMTJjZGQwYWI3
ZTI0MGM4YmJkMzNiODIzMTYxNWM1YWQ4MjAxMjlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBA
IC04Miw5ICs4MiwxNCBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVtb3ZlU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZQogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6UmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkluU2VydmVyKGlkZW50aWZpZXIpKTsKIH0KIAotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246
OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklkZW50
aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYm
IHNjcmlwdFZhbHVlLCBEb2N1bWVudElkZW50aWZpZXIgc291cmNlQ29udGV4dElkZW50aWZpZXIs
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKQordm9pZCBXZWJTV0NsaWVudENvbm5l
Y3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBzY3Jp
cHRWYWx1ZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwg
U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlKGRlc3RpbmF0aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgc2NyaXB0VmFs
dWUtPmRhdGEoKSB9LCBzb3VyY2VDb250ZXh0SWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2UpKSk7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckZyb21DbGllbnQoZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFS
ZWZlcmVuY2UgeyBzY3JpcHRWYWx1ZS0+ZGF0YSgpIH0sIHNvdXJjZUlkZW50aWZpZXIsIFdURk1v
dmUoc291cmNlKSkpOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVu
dGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIHNjcmlwdFZhbHVlLCBTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzb3VyY2VXb3JrZXJJZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVz
c2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJG
cm9tU2VydmljZVdvcmtlcihkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5j
ZSB7IHNjcmlwdFZhbHVlLT5kYXRhKCkgfSwgc291cmNlV29ya2VySWRlbnRpZmllcikpOwogfQog
CiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2VydmljZVdvcmtlclN0YXJ0ZWRDb250cm9s
bGluZ0NsaWVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRp
ZmllciwgRG9jdW1lbnRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
aAppbmRleCA5MTc2YWI3ZmM2YWY5ZTE4YTJhYTczYWUzOWRmZTEwZDM5N2UyM2E1Li5lNTZmNGVh
NTQ1Y2U0ZWIyOTZlZjQxZWQ2NDMyN2JlMzI3ODYzZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAt
NzMsNyArNzMsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJikgZmluYWw7CiAgICAgdm9pZCBmaW5p
c2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRj
aFJlc3VsdCYpIGZpbmFsOwotICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50
aWZpZXIsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIFdlYkNvcmU6OkRv
Y3VtZW50SWRlbnRpZmllciBzb3VyY2VDb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpIGZpbmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRp
b25JZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkgZmluYWw7CisgICAgdm9pZCBw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZVdvcmtlcklkZW50
aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRDb250cm9sbGluZ0Ns
aWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcikg
ZmluYWw7CiAgICAgdm9pZCBzZXJ2aWNlV29ya2VyU3RvcHBlZENvbnRyb2xsaW5nQ2xpZW50KFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyKSBmaW5hbDsK
ICAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJikgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggYTVlMzA3ZTM4MjI4N2JkYjY1N2VhMzA3ZGEzNTUy
MzlhYjE0MTIyOC4uMTdkYTJmZDY0NjkxYTEyOWRiYzQ5NjYwNmFiYTRiMzA0Y2VhMWNjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMTUwLDkgKzE1MCwxNCBAQCB2
b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydgogICAgIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+dGhy
ZWFkKCkucG9zdEZldGNoVGFzayhXVEZNb3ZlKGNsaWVudCksIFdURk1vdmUoY2xpZW50SWQpLCBX
VEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpKTsKIH0KIAotdm9pZCBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIg
c291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQor
dm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJGcm9tQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRp
ZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYm
IHNvdXJjZURhdGEpCiB7Ci0gICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShkZXN0aW5hdGlvbklkZW50aWZpZXIsIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQobWVzc2FnZS52ZWN0b3IoKSksIHNvdXJjZUlkZW50
aWZpZXIsIFdURk1vdmUoc291cmNlRGF0YSkpOworICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmds
ZXRvbigpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRlbnRpZmllciwg
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChtZXNzYWdlLnZlY3RvcigpKSwgc291cmNlSWRl
bnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSk7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbVNlcnZpY2VXb3Jr
ZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlRGF0
YSkKK3sKKyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5wb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlcihkZXN0aW5hdGlvbklkZW50aWZpZXIsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
YWRvcHQobWVzc2FnZS52ZWN0b3IoKSksIFdURk1vdmUoc291cmNlRGF0YSkpOwogfQogCiB2b2lk
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aAppbmRleCA4ZTU3NjIyOGQyODNlYTIyMWZjM2VkYWUyOGE4ZjYwN2M3MGQwNzY4Li45N2ZlYjU2
NjRhYzZkNmQ2NjY4YjRmZDg5Zjk0MzVkNzE5OGE4MGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmgKQEAgLTcxLDcgKzcxLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlcnZpY2VX
b3JrZXJTdGFydGVkV2l0aE1lc3NhZ2Uoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySm9iRGF0YUlkZW50aWZpZXI+LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKSBmaW5hbDsKICAgICB2b2lkIGluc3RhbGxT
ZXJ2aWNlV29ya2VyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYpOwog
ICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXI+LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6
RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7Ci0gICAgdm9pZCBwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEp
OworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tQ2xpZW50KFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIHNvdXJjZURhdGEpOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9t
U2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
bklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgV2ViQ29yZTo6
U2VydmljZVdvcmtlckRhdGEmJiBzb3VyY2VEYXRhKTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZl
bnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZmlyZUFjdGl2
YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgdGVy
bWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggYzIxYTUwOWZk
MmI2MWMyZTY5ZTJlZTVlYzkwZjg2YTU2OWY0NTU4Ni4uMTZmNGY2MDMxNDE1MDBlMzBiY2NhMjE2
NmE1OGZhNTMwYjgwNmE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDggQEAKIG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uIHsKICAgICBJbnN0YWxsU2VydmljZVdvcmtlcihzdHJ1Y3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhIGNvbnRleHREYXRhKQogICAgIFN0YXJ0RmV0
Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlv
bnMgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSkKLSAgICBQb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3Nh
Z2UsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJ
ZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEgc291cmNl
RGF0YSkKKyAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFS
ZWZlcmVuY2UgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YSBzb3VyY2VEYXRhKQorICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbVNl
cnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25J
ZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJEYXRhIHNvdXJjZURhdGEpCiAgICAgRmlyZUluc3RhbGxFdmVudChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIEZpcmVBY3RpdmF0ZUV2
ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgVGVy
bWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBiNjA1OWEyMzcyMjQwYThhMmE3ZTFk
YjJlMzcyZjQ4ZmEwMzdhZGQ5Li5mOGNlOGJjYTU1MjVkYjIxNjQyYjcxMjc3YWZkOGNkMzEwNzQ1
Zjk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
Ny0xMi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgc2VydmljZVdvcmtlci5wb3N0TWVzc2FnZSgpIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDMyOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUg
V1BUIHRlc3Qgbm93IHRoYXQgb25lIG1vcmUgY2hlY2sgaXMgcGFzc2luZy4KKworICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC5odHRwcy1leHBlY3Rl
ZC50eHQ6CisKIDIwMTctMTItMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBTdXBwb3J0IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24udXBkYXRlKCkgaW5zaWRl
IHNlcnZpY2Ugd29ya2VycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvZXh0ZW5kYWJs
ZS1tZXNzYWdlLWV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA0ZDUyYjQyNDdhOWY0OThm
ZjEyMGM1NGJjZTE5NWQ5MWQyZDY1NWNkLi4yZjJhMDU4MWYxMWMzMjU2MzIwZDcxNGNlYjExNjYy
YTgxNmI2Yzk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvZXh0ZW5kYWJsZS1t
ZXNzYWdlLWV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDYgQEAgSGFybmVzcyBF
cnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCiAKIEZBSUwgUG9zdCBhbiBleHRlbmRhYmxl
IG1lc3NhZ2UgZnJvbSBhIHRvcC1sZXZlbCBjbGllbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IFBhc3Npbmcg
TWVzc2FnZVBvcnQgb2JqZWN0cyB0byBwb3N0TWVzc2FnZSBpcyBub3QgeWV0IHN1cHBvcnRlZCIK
IEZBSUwgUG9zdCBhbiBleHRlbmRhYmxlIG1lc3NhZ2UgZnJvbSBhIG5lc3RlZCBjbGllbnQgYXNz
ZXJ0X2VxdWFsczogZXZlbnQgYHNvdXJjZWAgcHJvcGVydHkgYGZvY3VzZWRgIGV4cGVjdGVkIGZh
bHNlIGJ1dCBnb3QgdHJ1ZQotVElNRU9VVCBQb3N0IGxvb3BiYWNrIGV4dGVuZGFibGUgbWVzc2Fn
ZXMgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBQb3N0IGV4dGVuZGFibGUgbWVzc2FnZXMgYW1vbmcg
c2VydmljZSB3b3JrZXJzIAorUEFTUyBQb3N0IGxvb3BiYWNrIGV4dGVuZGFibGUgbWVzc2FnZXMg
CitUSU1FT1VUIFBvc3QgZXh0ZW5kYWJsZSBtZXNzYWdlcyBhbW9uZyBzZXJ2aWNlIHdvcmtlcnMg
VGVzdCB0aW1lZCBvdXQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328299</attachid>
            <date>2017-12-03 13:01:51 -0800</date>
            <delta_ts>2017-12-03 14:22:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180328-20171203130151.patch</filename>
            <type>text/plain</type>
            <size>34228</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRjMTdmYjEzMzJlNjE0
MjQyY2YzYTQxZDE4OGFhYjU1MDRkY2VhZS4uOGIyNWNhMmVmY2QzNTM1NDkwZTliN2JhYTA3Mzc5
NTJiMzg3NDRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE3LTEyLTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBzZXJ2aWNlV29y
a2VyLnBvc3RNZXNzYWdlKCkgaW5zaWRlIHNlcnZpY2Ugd29ya2VycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMzI4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBzZXJ2aWNlV29ya2VyLnBv
c3RNZXNzYWdlKCkgaW5zaWRlIHNlcnZpY2Ugd29ya2Vycy4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIHVuc2tpcHBlZCBhbmQgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdCB0aGF0IGlzCisgICAg
ICAgIG5vdyBwYXNzaW5nLgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29u
bmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmg6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpmaXJlTWVzc2FnZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmg6CisKIDIw
MTctMTItMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBs
ZW1lbnQgc2VsZi5za2lwV2FpdGluZygpIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggN2NiZjVlYzE1ZjcyNGIxODBjMTgyNDdjMGE1NDhkMTFjYjZiYTNkNi4uYjI5ZDYwYTQ3NmFl
NGVmNjY5Y2U4MjdkZWJkZGJmZjJkZDA3ODUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAor
MjAxNy0xMi0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN1
cHBvcnQgc2VydmljZVdvcmtlci5wb3N0TWVzc2FnZSgpIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDMyOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQg
c2VydmljZVdvcmtlci5wb3N0TWVzc2FnZSgpIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMuCisKKyAg
ICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJGcm9tQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2Vy
KToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVu
dENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyRnJvbUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2Vy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKIDIwMTctMTItMDMgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgc2VsZi5za2lwV2FpdGluZygpIGlu
c2lkZSBzZXJ2aWNlIHdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCBlYWQ5ZWU4NDc3M2Q0N2NiNjU2OGExNzU3
MTE0ZjVhODg5NThiNmU3Li5mMjA0ZjdmZDNhMWUyNzE2MDE2ZjM3ZTUxODE5MTc2NTQ0NjBlZDNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29u
bmVjdGlvbi5oCkBAIC00Nyw2ICs0Nyw3IEBAIGVudW0gY2xhc3MgU2VydmljZVdvcmtlclN0YXRl
OwogZW51bSBjbGFzcyBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQ7CiBzdHJ1Y3QgRXhjZXB0aW9u
RGF0YTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTsKK3N0cnVjdCBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcjsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyRGF0YTsKIHN0cnVjdCBT
ZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ7CiBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGE7CkBAIC03MCw3ICs3MSw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBEb2N1bWVudElkZW50aWZpZXIgc291cmNl
Q29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4mJiwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwg
U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGlu
YXRpb25JZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzb3VyY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CisKICAgICB2aXJ0dWFs
IFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIG1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0
ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3Bw
CmluZGV4IDgyYmI5YjA0YmI1MzI2NmQ0YjRmNWFiZTQ4NTM0N2FmNDhjNTMxMzAuLmUyYWNmODZl
MDFhOTRhZmFmZWJhNjUxYWM0OTNiODBhZTMzZjFjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudERhdGEuaCIKKyNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
UHJvdmlkZXIuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC0xMTAsMTQgKzExMSwxOSBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2FnZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBKUwogICAgIGlmIChjaGFubmVscyAmJiAhY2hhbm5lbHMtPmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxp
dGVyYWwoIlBhc3NpbmcgTWVzc2FnZVBvcnQgb2JqZWN0cyB0byBwb3N0TWVzc2FnZSBpcyBub3Qg
eWV0IHN1cHBvcnRlZCIpIH07CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFkZCBzdXBwb3J0
IGZvciB3b3JrZXJzLgotICAgIGlmICghaXM8RG9jdW1lbnQ+KGNvbnRleHQpKQotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgic2Vydmlj
ZVdvcmtlckNsaWVudC5wb3N0TWVzc2FnZSgpIGZyb20gd29ya2VycyBpcyBub3QgeWV0IHN1cHBv
cnRlZCIpIH07CisgICAgaWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkp
IHsKKyAgICAgICAgYXV0byBzb3VyY2VXb3JrZXJJZGVudGlmaWVyID0gZG93bmNhc3Q8U2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS50aHJlYWQoKS5pZGVudGlmaWVyKCk7CisgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3Nlc3Npb25JRCA9IGNvbnRleHQuc2Vzc2lvbklEKCksIGRl
c3RpbmF0aW9uSWRlbnRpZmllciA9IGlkZW50aWZpZXIoKSwgc291cmNlV29ya2VySWRlbnRpZmll
ciwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBh
dXRvJiBzd0Nvbm5lY3Rpb24gPSBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNl
cnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihzZXNzaW9uSUQpOworICAgICAgICAgICAg
c3dDb25uZWN0aW9uLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRlbnRp
ZmllciwgbWVzc2FnZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgc291cmNlV29ya2VySWRlbnRpZmll
cik7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KIAogICAgIGF1dG8g
c291cmNlQ2xpZW50RGF0YSA9IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKGNvbnRleHQp
OwotCiAgICAgYXV0byYgc3dDb25uZWN0aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5n
bGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oY29udGV4dC5zZXNzaW9u
SUQoKSk7Ci0gICAgc3dDb25uZWN0aW9uLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUoaWRlbnRpZmllcigpLCBtZXNzYWdlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCkuaWRlbnRpZmllcigpLCBXVEZNb3ZlKHNvdXJjZUNsaWVudERh
dGEpKTsKKyAgICBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VDbGllbnRJZGVu
dGlmaWVyIHsgc3dDb25uZWN0aW9uLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGRvd25j
YXN0PERvY3VtZW50Pihjb250ZXh0KS5pZGVudGlmaWVyKCkgfTsKKyAgICBzd0Nvbm5lY3Rpb24u
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoaWRlbnRpZmllcigpLCBtZXNzYWdlLnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKHNvdXJjZUNsaWVudElkZW50aWZpZXIpLCBXVEZNb3ZlKHNv
dXJjZUNsaWVudERhdGEpKTsKIAogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIu
Y3BwCmluZGV4IDhjMjc2MWQxOTFlOTA3ZmQyMDA0MGZlMDJhMTM5ZjE3N2E1ODI2ZDQuLjNhNTk5
ZGFjODhlZDE1Zjg3NzhkYjZlNDcxYWFlYmQ5MjkzOTI1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIu
Y3BwCkBAIC02NywxNCArNjcsMjQgQEAgU2VydmljZVdvcmtlclRocmVhZFByb3h5KiBTV0NvbnRl
eHRNYW5hZ2VyOjpzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoU2VydmljZVdvcmsKICAgICByZXR1
cm4gbV93b3JrZXJNYXAuZ2V0KGlkZW50aWZpZXIpOwogfQogCi12b2lkIFNXQ29udGV4dE1hbmFn
ZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2Fn
ZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQordm9pZCBTV0NvbnRleHRNYW5hZ2VyOjpw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5h
dGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIHNvdXJjZURhdGEpCiB7CiAgICAgYXV0byogc2VydmljZVdvcmtlciA9IG1fd29ya2VyTWFw
LmdldChkZXN0aW5hdGlvbik7CiAgICAgQVNTRVJUKHNlcnZpY2VXb3JrZXIpOwogICAgIEFTU0VS
VCghc2VydmljZVdvcmtlci0+aXNUZXJtaW5hdGluZ09yVGVybWluYXRlZCgpKTsKIAogICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgcGFzcyB2YWxpZCBNZXNzYWdlUG9ydENoYW5uZWxzLgotICAgIHNl
cnZpY2VXb3JrZXItPnRocmVhZCgpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUoV1RGTW92ZShtZXNzYWdlKSwgbnVsbHB0ciwgc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShz
b3VyY2VEYXRhKSk7CisgICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkucG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXIoV1RGTW92ZShtZXNzYWdlKSwgbnVsbHB0ciwgc291cmNlSWRlbnRpZmllciwg
V1RGTW92ZShzb3VyY2VEYXRhKSk7Cit9CisKK3ZvaWQgU1dDb250ZXh0TWFuYWdlcjo6cG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24s
IFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckRhdGEm
JiBzb3VyY2VEYXRhKQoreworICAgIGF1dG8qIHNlcnZpY2VXb3JrZXIgPSBtX3dvcmtlck1hcC5n
ZXQoZGVzdGluYXRpb24pOworICAgIEFTU0VSVChzZXJ2aWNlV29ya2VyKTsKKyAgICBBU1NFUlQo
IXNlcnZpY2VXb3JrZXItPmlzVGVybWluYXRpbmdPclRlcm1pbmF0ZWQoKSk7CisKKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIHBhc3MgdmFsaWQgTWVzc2FnZVBvcnRDaGFubmVscy4KKyAgICBzZXJ2
aWNlV29ya2VyLT50aHJlYWQoKS5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXVEZNb3ZlKG1l
c3NhZ2UpLCBudWxscHRyLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKIH0KIAogdm9pZCBTV0NvbnRl
eHRNYW5hZ2VyOjpmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TV0NvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKaW5kZXggYWI1ZGU3MGM4MGQ5ZTdkNWM3ODg3MzU3MTlj
MWYyMTkyN2YyNzkzNy4uNWExNDU0MWJhMTk5YjhiOThlNjZjNTA0NGIzODFjZDBmZjhmMzhjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250
ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NXQ29udGV4dE1hbmFnZXIuaApAQCAtNjYsNyArNjYsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlclRocmVhZEZvckluc3RhbGwoUmVm
PFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5KiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoU2VydmljZVdvcmtl
cklkZW50aWZpZXIpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5h
dGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIHNvdXJjZURhdGEpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIgc291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRh
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlRGF0YSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRlcm1pbmF0ZVdvcmtlcihT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgRnVuY3Rpb248dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5jcHAKaW5kZXggOTFhMGNjNGM4OTAxZDRhZDUzOTg4MGRiN2E5Nzc2MmQxNGU5
ZjljYi4uZGVjNDAxZWYzYmU5ZDY2NTMzYzUyNGRiMTA5Y2RiODcxOWJmNGQ1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTEwNSwxOSArMTA1LDMzIEBAIHZvaWQgU2VydmljZVdv
cmtlclRocmVhZDo6cG9zdEZldGNoVGFzayhSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+
JiYgY2xpZW50CiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKLXZv
aWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZShSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiBjaGFubmVscywgU2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBz
b3VyY2VEYXRhKQorc3RhdGljIHZvaWQgZmlyZU1lc3NhZ2VFdmVudChTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUmIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+
JiYgY2hhbm5lbHMsIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2UmJiBzb3VyY2UsIFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4pCiB7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6VGFzayB0YXNrKFtjaGFubmVscyA9IFdURk1vdmUoY2hhbm5lbHMpLCBtZXNzYWdlID0g
V1RGTW92ZShtZXNzYWdlKSwgc291cmNlSWRlbnRpZmllciwgc291cmNlRGF0YSA9IHNvdXJjZURh
dGEuaXNvbGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRh
YmxlIHsKKyAgICBhdXRvIHBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3ZlKGNoYW5uZWxzKSk7CisgICAgYXV0byBtZXNzYWdl
RXZlbnQgPSBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIFdU
Rk1vdmUobWVzc2FnZSksIHNvdXJjZU9yaWdpbi0+dG9TdHJpbmcoKSwgeyB9LCBzb3VyY2UpOwor
ICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5kaXNwYXRjaEV2ZW50KG1lc3NhZ2VFdmVudCk7
CisgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgpLndvcmtlck9iamVjdFByb3h5
KCkuY29uZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0KHNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5oYXNQZW5kaW5nQWN0aXZpdHkoKSk7CisgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnVw
ZGF0ZUV4dGVuZGVkRXZlbnRzU2V0KG1lc3NhZ2VFdmVudC5wdHIoKSk7Cit9CisKK3ZvaWQgU2Vy
dmljZVdvcmtlclRocmVhZDo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFu
bmVsQXJyYXk+JiYgY2hhbm5lbHMsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJj
ZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSkKK3sKKyAg
ICBydW5Mb29wKCkucG9zdFRhc2soW2NoYW5uZWxzID0gV1RGTW92ZShjaGFubmVscyksIG1lc3Nh
Z2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VEYXRhID0gc291
cmNlRGF0YS5pc29sYXRlZENvcHkoKV0gKGF1dG8mIGNvbnRleHQpIG11dGFibGUgewogICAgICAg
ICBhdXRvJiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGU+KGNvbnRleHQpOwotICAgICAgICBhdXRvIHBvcnRzID0gTWVzc2FnZVBvcnQ6
OmVudGFuZ2xlUG9ydHMoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3ZlKGNoYW5uZWxz
KSk7CiAgICAgICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyQ2xpZW50PiBzb3VyY2UgPSBTZXJ2aWNl
V29ya2VyQ2xpZW50OjpnZXRPckNyZWF0ZShzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIHNvdXJj
ZUlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlRGF0YSkpOwogICAgICAgICBhdXRvIHNvdXJjZU9y
aWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoc291cmNlLT51cmwoKSk7Ci0gICAgICAgIGF1
dG8gbWVzc2FnZUV2ZW50ID0gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUo
cG9ydHMpLCBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VPcmlnaW4tPnRvU3RyaW5nKCksIHsgfSwg
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZSB7IHNvdXJjZSB9KTsKLSAgICAgICAgc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlLmRpc3BhdGNoRXZlbnQobWVzc2FnZUV2ZW50KTsKLSAgICAgICAg
c2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgpLndvcmtlck9iamVjdFByb3h5KCkuY29u
ZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0KHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oYXNQ
ZW5kaW5nQWN0aXZpdHkoKSk7Ci0gICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS51cGRh
dGVFeHRlbmRlZEV2ZW50c1NldChtZXNzYWdlRXZlbnQucHRyKCkpOworICAgICAgICBmaXJlTWVz
c2FnZUV2ZW50KHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92ZShtZXNzYWdlKSwgV1RG
TW92ZShjaGFubmVscyksIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2UgeyBzb3VyY2UgfSwg
V1RGTW92ZShzb3VyY2VPcmlnaW4pKTsKKyAgICB9KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2Vy
VGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihSZWY8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4m
JiBjaGFubmVscywgU2VydmljZVdvcmtlckRhdGEmJiBzb3VyY2VEYXRhKQoreworICAgIHJ1bkxv
b3AoKS5wb3N0VGFzayhbY2hhbm5lbHMgPSBXVEZNb3ZlKGNoYW5uZWxzKSwgbWVzc2FnZSA9IFdU
Rk1vdmUobWVzc2FnZSksIHNvdXJjZURhdGEgPSBzb3VyY2VEYXRhLmlzb2xhdGVkQ29weSgpXSAo
YXV0byYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8mIHNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCk7Cisg
ICAgICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyPiBzb3VyY2UgPSBTZXJ2aWNlV29ya2VyOjpnZXRP
ckNyZWF0ZShzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIFdURk1vdmUoc291cmNlRGF0YSkpOwor
ICAgICAgICBhdXRvIHNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoc291cmNl
LT5zY3JpcHRVUkwoKSk7CisgICAgICAgIGZpcmVNZXNzYWdlRXZlbnQoZG93bmNhc3Q8U2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSwgV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShj
aGFubmVscyksIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2UgeyBzb3VyY2UgfSwgV1RGTW92
ZShzb3VyY2VPcmlnaW4pKTsKICAgICB9KTsKLSAgICBydW5Mb29wKCkucG9zdFRhc2soV1RGTW92
ZSh0YXNrKSk7CiB9CiAKIHZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6ZmlyZUluc3RhbGxFdmVu
dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggZWE1MWRlN2ZlOGVjOGEwYzBlMGMzY2Ew
YzU3MWY5NmJmZWIxYTlmYi4uNjVlNTA3NjExNTBjYjE5MjIzNTE2YzI1YzQxZjBlOGUzMmFlZThl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApAQCAtNTgsNyArNTgsOCBAQCBwdWJsaWM6CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RGZXRjaFRhc2soUmVmPFNlcnZpY2VXb3JrZXJG
ZXRjaDo6Q2xpZW50PiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdEZldGNoVGFzayhSZWY8U2VydmljZVdvcmtlckZldGNo
OjpDbGllbnQ+JiYsIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+
JiYsIFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlvbnMmJik7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJh
eT4mJiwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU2Vy
dmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiwgU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVu
dERhdGEmJiBzb3VyY2VEYXRhKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiwgU2VydmljZVdvcmtlckRhdGEmJiBzb3Vy
Y2VEYXRhKTsKIAogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudCgpOwogICAgIHZvaWQgZmlyZUFj
dGl2YXRlRXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5k
ZXggNGFjZWJmNmRmODM5MjY5NDZkNzI5NDkzMmY1ZjVmZDY2ZTkwMTkyZC4uYjA0YTkzOWJjYzM1
ZmRlZjRhOGE5NDU5OTMzZTljN2I1MGVlMjIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAKQEAgLTEyOCwxNCArMTI4LDI2IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpvcHRpb25h
bDxTCiAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpTdGFydEZldGNoIHsgaWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIs
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zLCBmb3JtRGF0YSB9KTsK
IH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25TZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBEb2N1
bWVudElkZW50aWZpZXIgc291cmNlQ29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhJiYgc291cmNlRGF0YSkKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckZyb21DbGllbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVz
dGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFNl
cnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSkKIHsKICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoaXMg
c3BlY2lmaWMgd29ya2VyIGNhbm5vdCBiZSByZS1ydW4gKGUuZy4gaXRzIHJlZ2lzdHJhdGlvbiBo
YXMgYmVlbiByZW1vdmVkKQotICAgIGlmICghc2VydmVyKCkuaW52b2tlUnVuU2VydmljZVdvcmtl
cihkZXN0aW5hdGlvblNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSkKKyAgICBpZiAoIXNlcnZlcigp
Lmludm9rZVJ1blNlcnZpY2VXb3JrZXIoZGVzdGluYXRpb25JZGVudGlmaWVyKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRp
ZmllciB7IGlkZW50aWZpZXIoKSwgc291cmNlQ29udGV4dElkZW50aWZpZXIgfTsKLSAgICBzZW5k
VG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgeyBkZXN0aW5hdGlvblNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNv
dXJjZURhdGEpIH0pOworICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tQ2xp
ZW50IHsgZGVzdGluYXRpb25JZGVudGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VJZGVudGlmaWVyLCBX
VEZNb3ZlKHNvdXJjZURhdGEpIH0pOworfQorCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllcikKK3sK
KyAgICAvLyBJdCdzIHBvc3NpYmxlIHRoaXMgc3BlY2lmaWMgd29ya2VyIGNhbm5vdCBiZSByZS1y
dW4gKGUuZy4gaXRzIHJlZ2lzdHJhdGlvbiBoYXMgYmVlbiByZW1vdmVkKQorICAgIGlmICghc2Vy
dmVyKCkuaW52b2tlUnVuU2VydmljZVdvcmtlcihkZXN0aW5hdGlvbklkZW50aWZpZXIpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBhdXRvKiBzb3VyY2VXb3JrZXIgPSBzZXJ2ZXIoKS53b3JrZXJC
eUlEKHNvdXJjZUlkZW50aWZpZXIpOworICAgIGlmICghc291cmNlV29ya2VyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbVNlcnZpY2VX
b3JrZXIgeyBkZXN0aW5hdGlvbklkZW50aWZpZXIsIG1lc3NhZ2UsIHNvdXJjZVdvcmtlci0+ZGF0
YSgpIH0pOwogfQogCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNo
UmVzcG9uc2UodWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCAxZTYx
MTJkMDI5ZWY0NGQ1NjcyOGUyZDhiMzYwOTIyMTFjYTY1ZDAzLi44NjQ1MGYyMGE3MDg2M2ViN2Nl
MTI2ZTVhYWRhNGU2OWQzMjdkYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5oCkBAIC04MCw3ICs4MCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0YXJ0RmV0Y2godWlu
dDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyPiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2Vi
Q29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwogCi0g
ICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgc291cmNl
Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291
cmNlKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudChXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVu
dERhdGEmJiBzb3VyY2UpOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9t
U2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
bklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIG1h
dGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBX
ZWJDb3JlOjpVUkwmIGNsaWVudFVSTCk7CiAgICAgdm9pZCBnZXRSZWdpc3RyYXRpb25zKHVpbnQ2
NF90IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpVUkwmIGNsaWVudFVS
TCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgppbmRleCBjMGI5M2NmZjA3MmIzMjlhOGYyMTMwOTg3MjBkYmY5OGQ0YTNiYTY2Li4xMDJmMDBi
NTg1MDI3NWY3NmQwN2E4YzE0MWE4Mjk5ODc2ZmVlYTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTMyLDcgKzMyLDggQEAgbWVz
c2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIHsKICAgICBTZXJ2aWNlV29ya2VyU3RvcHBl
ZENvbnRyb2xsaW5nQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZp
ZXIgY29udGV4dElkZW50aWZpZXIpCiAKICAgICBTdGFydEZldGNoKHVpbnQ2NF90IGlkZW50aWZp
ZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+IHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3Ry
dWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
IHJlcXVlc3RCb2R5KQotICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25TZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIFdlYkNvcmU6OkRvY3VtZW50
SWRlbnRpZmllciBzb3VyY2VDb250ZXh0SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhIHNvdXJjZSkKKyAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
ckZyb21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25T
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIHN0cnVj
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEgc291cmNlRGF0YSkKKyAg
ICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uU2VydmljZVdvcmtlcklkZW50aWZpZXIs
IElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllcikKIAogICAgIERpZFJlc29sdmVSZWdpc3RyYXRp
b25Qcm9taXNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkga2V5KQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmNwcAppbmRleCBhYTMwM2IxZWJhZmYwYTMwN2RiZWRmYTM0NjI1ODUwMjA1
MjczZTgyLi4xMmNkZDBhYjdlMjQwYzhiYmQzM2I4MjMxNjE1YzVhZDgyMDEyOWQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKQEAgLTgyLDkgKzgyLDE0IEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0
aW9uOjpyZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtl
CiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpSZW1vdmVTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoaWRlbnRpZmllcikpOwogfQogCi12b2lkIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+JiYgc2NyaXB0VmFsdWUsIERvY3VtZW50SWRlbnRpZmllciBzb3VyY2VD
b250ZXh0SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpCit2b2lk
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiYmIHNjcmlwdFZhbHVlLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBz
b3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkKIHsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUoZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZl
cmVuY2UgeyBzY3JpcHRWYWx1ZS0+ZGF0YSgpIH0sIHNvdXJjZUNvbnRleHRJZGVudGlmaWVyLCBX
VEZNb3ZlKHNvdXJjZSkpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rp
b246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudChkZXN0aW5hdGlvbklkZW50
aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSB7IHNjcmlwdFZhbHVlLT5kYXRhKCkgfSwgc291cmNl
SWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2UpKSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25u
ZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgc2Ny
aXB0VmFsdWUsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZVdvcmtlcklkZW50aWZpZXIp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpQb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRlbnRpZmllciwg
SVBDOjpEYXRhUmVmZXJlbmNlIHsgc2NyaXB0VmFsdWUtPmRhdGEoKSB9LCBzb3VyY2VXb3JrZXJJ
ZGVudGlmaWVyKSk7CiB9CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXJ2aWNlV29y
a2VyU3RhcnRlZENvbnRyb2xsaW5nQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBy
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCBEb2N1bWVudElkZW50aWZpZXIgY29udGV4dElkZW50aWZp
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDkxNzZhYjdmYzZhZjllMThhMmFhNzNhZTM5ZGZlMTBk
Mzk3ZTIzYTUuLmU1NmY0ZWE1NDVjZTRlYjI5NmVmNDFlZDY0MzI3YmUzMjc4NjNmN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5oCkBAIC03Myw3ICs3Myw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNjaGVk
dWxlSm9iSW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKSBmaW5h
bDsKICAgICB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckZldGNoUmVzdWx0JikgZmluYWw7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIHNvdXJjZUNvbnRleHRJZGVudGlmaWVy
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkgZmluYWw7CisgICAg
dm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJj
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKSBm
aW5hbDsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
c291cmNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBzZXJ2aWNlV29ya2VyU3Rh
cnRlZENvbnRyb2xsaW5nQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RG9j
dW1lbnRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHNlcnZpY2VXb3JrZXJTdG9wcGVkQ29u
dHJvbGxpbmdDbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIFdlYkNvcmU6OkRvY3VtZW50
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCBhNTYwMjc2ZmUwMjg2
ZTYzODg4ODAxNGRhNTJmOTFhYTJmMmI3NzljLi42Mjg1MTIzODViM2I4MWRlMDEwMTFkYzE4MWVl
NTJmMThiYTg4MWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0x
NTAsOSArMTUwLDE0IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0
RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2CiAgICAgc2VydmljZVdvcmtl
clRocmVhZFByb3h5LT50aHJlYWQoKS5wb3N0RmV0Y2hUYXNrKFdURk1vdmUoY2xpZW50KSwgV1RG
TW92ZShjbGllbnRJZCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucykpOwogfQog
Ci12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRl
bnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIHNvdXJjZURhdGEpCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21DbGllbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIg
ZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2Us
IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSkKIHsKLSAgICBTV0NvbnRleHRNYW5hZ2VyOjpz
aW5nbGV0b24oKS5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKGRlc3RpbmF0
aW9uSWRlbnRpZmllciwgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChtZXNzYWdlLnZlY3Rv
cigpKSwgc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSk7CisgICAgU1dDb250
ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoZGVzdGlu
YXRpb25JZGVudGlmaWVyLCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KG1lc3NhZ2UudmVj
dG9yKCkpLCBzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKK30KKwordm9p
ZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJGcm9tU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgU2VydmljZVdvcmtl
ckRhdGEmJiBzb3VyY2VEYXRhKQoreworICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigp
LnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRlbnRpZmllciwgU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjphZG9wdChtZXNzYWdlLnZlY3RvcigpKSwgV1RGTW92ZShzb3VyY2VE
YXRhKSk7CiB9CiAKIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmZpcmVJbnN0
YWxsRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IDE1YTRiMjczYWQ3MjgzM2JjMDIxY2RkNTM1MmU5ZjUw
MmQxMWM0ZmUuLmEwOGVjZWMzMWJlY2JhM2E2ZDJjNWIyNGMwYWM5NjVhY2Q1NGI1OGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtNzIsNyArNzIsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpIGZpbmFsOwog
ICAgIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtl
ckNvbnRleHREYXRhJik7CiAgICAgdm9pZCBzdGFydEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4sIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
KTsKLSAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhJiYgc291cmNlRGF0YSk7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZy
b21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVu
dGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSk7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBt
ZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZURhdGEpOwogICAgIHZv
aWQgZmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAg
ICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
cik7CiAgICAgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgppbmRleCBhMWQ2NTExYjQzNjUxZWIzODUwMTIxNzMxYTVkOWYwNTgwODQxZmFkLi44MjFkY2Rm
ODZmZDIwOTc2ZmE3ZDhkZmViNmJmMjk3NGJkOTQ0ZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsOCBAQAogbWVzc2Fn
ZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gewogICAgIEluc3RhbGxTZXJ2aWNl
V29ya2VyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgY29udGV4dERh
dGEpCiAgICAgU3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+IHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdl
YkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVl
c3RCb2R5KQotICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRh
dGFSZWZlcmVuY2UgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSBzb3VyY2VEYXRhKQorICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJv
bUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50
aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHNvdXJjZURhdGEpCisgICAgUG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgc291cmNlRGF0YSkKICAgICBGaXJlSW5z
dGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAg
ICAgRmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRl
bnRpZmllcikKICAgICBUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhMTVmYTU5MmM0ZDUxNjBiOTM0OGIzNzFlMTY2Yzgw
MGMyOGFkZDJmLi4xMTg1YTA4M2VhYTAyOWZjZWQ4MGVmZWI5MzZjNTM3NDM1NzE0NGJiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMTItMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBTdXBwb3J0IHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKSBpbnNp
ZGUgc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODAzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVbnNraXAgV1BUIHRlc3QgdGhhdCBubyBsb25nZXIgdGltZXMgb3V0LgorCisg
ICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNy0xMi0wMyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBzZWxmLnNraXBXYWl0aW5nKCkg
aW5zaWRlIHNlcnZpY2Ugd29ya2VycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
ZTgxNzYzMDc5NzQyYjdiMjBiNDY1NWI3OTY5YTc5ZWVmZGNlODgwMS4uYmFkMzAwZWM2NTljZGJm
MGY2MWExYzdlNDY5ZTEwMmY3MjYwOWU3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMTItMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBTdXBwb3J0IHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKSBpbnNp
ZGUgc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODAzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0IHRoYXQgaXMgbm93IHBhc3NpbmcuCisKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9leHRlbmRhYmxlLW1lc3NhZ2UtZXZlbnQuaHR0cHMt
ZXhwZWN0ZWQudHh0OgorCiAyMDE3LTEyLTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgSW1wbGVtZW50IHNlbGYuc2tpcFdhaXRpbmcoKSBpbnNpZGUgc2Vydmlj
ZSB3b3JrZXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4NjBhNWM4MjFmYTg0MGM3YjQxMWQyMTAy
OWJhYzA3YTA2NTEyNmQ0Li5jNDQ1Y2Q0ZmU4OWI3MDYwOGJmNDA3ZTg5ZDdkNDdkOTAwZGQ2OGZk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0NSw3ICsxNDUsNiBAQCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlY3VyZS1jb250ZXh0cy9zaGFyZWQtd29ya2VyLXNlY3VyZS1maXJz
dC5odHRwcwogCiAjIFNraXAgc2VydmljZSB3b3JrZXIgdGVzdHMgdGhhdCBhcmUgdGltaW5nIG91
dC4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2dlbmVy
YWwtc2VydmljZXdvcmtlci5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50Lmh0dHBzLmh0bWwgWyBTa2lwIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtb24tZXZhbHVhdGlvbi5odHRwcy5odG1sIFsgU2tpcCBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9kZXRhY2hlZC1jb250ZXh0Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVu
ZGFibGUtZXZlbnQtd2FpdHVudGlsLmh0dHBzLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9leHRlbmRhYmxlLW1lc3Nh
Z2UtZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggNGQ1MmI0MjQ3YTlmNDk4ZmYxMjBjNTRiY2UxOTVkOTFkMmQ2NTVjZC4uZTJiYTcy
N2JhN2Q5ZTE4MDQ1Y2U5YWUxZmJjMjdiYTc2NzdhMGY0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVu
dC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTEsOCArMSw2IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVs
bAotCiBGQUlMIFBvc3QgYW4gZXh0ZW5kYWJsZSBtZXNzYWdlIGZyb20gYSB0b3AtbGV2ZWwgY2xp
ZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
Ik5vdFN1cHBvcnRlZEVycm9yOiBQYXNzaW5nIE1lc3NhZ2VQb3J0IG9iamVjdHMgdG8gcG9zdE1l
c3NhZ2UgaXMgbm90IHlldCBzdXBwb3J0ZWQiCiBGQUlMIFBvc3QgYW4gZXh0ZW5kYWJsZSBtZXNz
YWdlIGZyb20gYSBuZXN0ZWQgY2xpZW50IGFzc2VydF9lcXVhbHM6IGV2ZW50IGBzb3VyY2VgIHBy
b3BlcnR5IGBmb2N1c2VkYCBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKLVRJTUVPVVQgUG9z
dCBsb29wYmFjayBleHRlbmRhYmxlIG1lc3NhZ2VzIFRlc3QgdGltZWQgb3V0Ci1OT1RSVU4gUG9z
dCBleHRlbmRhYmxlIG1lc3NhZ2VzIGFtb25nIHNlcnZpY2Ugd29ya2VycyAKK1BBU1MgUG9zdCBs
b29wYmFjayBleHRlbmRhYmxlIG1lc3NhZ2VzIAorUEFTUyBQb3N0IGV4dGVuZGFibGUgbWVzc2Fn
ZXMgYW1vbmcgc2VydmljZSB3b3JrZXJzIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328306</attachid>
            <date>2017-12-03 14:22:19 -0800</date>
            <delta_ts>2017-12-03 14:24:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180328-20171203142218.patch</filename>
            <type>text/plain</type>
            <size>34155</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRjMTdmYjEzMzJlNjE0
MjQyY2YzYTQxZDE4OGFhYjU1MDRkY2VhZS4uMmQxOTI2NzE0YzdlMDcwYzJmMjc3ZjgwNjJjZjYx
MDkyYjg1Zjk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE3LTEyLTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBzZXJ2aWNlV29y
a2VyLnBvc3RNZXNzYWdlKCkgaW5zaWRlIHNlcnZpY2Ugd29ya2VycworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMzI4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgU3VwcG9ydCBzZXJ2aWNlV29ya2VyLnBvc3RN
ZXNzYWdlKCkgaW5zaWRlIHNlcnZpY2Ugd29ya2Vycy4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IHVuc2tpcHBlZCBhbmQgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdCB0aGF0IGlzCisgICAgICAg
IG5vdyBwYXNzaW5nLgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVj
dGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKToKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpmaXJlTWVzc2FnZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmg6CisKIDIwMTct
MTItMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1l
bnQgc2VsZi5za2lwV2FpdGluZygpIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
N2NiZjVlYzE1ZjcyNGIxODBjMTgyNDdjMGE1NDhkMTFjYjZiYTNkNi4uZmFhNTgyNTUwMzUzMjE2
ZDBmMTY1MWUzZGY4MWYxNWM0NGM0Njc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAx
Ny0xMi0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBv
cnQgc2VydmljZVdvcmtlci5wb3N0TWVzc2FnZSgpIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDMyOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFN1cHBvcnQgc2Vydmlj
ZVdvcmtlci5wb3N0TWVzc2FnZSgpIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMuCisKKyAgICAgICAg
KiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJGcm9tQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKToKKyAg
ICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5l
Y3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyRnJvbUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW46CisKIDIwMTctMTItMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgc2VsZi5za2lwV2FpdGluZygpIGluc2lkZSBz
ZXJ2aWNlIHdvcmtlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
V0NsaWVudENvbm5lY3Rpb24uaAppbmRleCBlYWQ5ZWU4NDc3M2Q0N2NiNjU2OGExNzU3MTE0ZjVh
ODg5NThiNmU3Li5kNDExZWJmMThkN2E5NzUwNWEzNDI3NWU2M2IxM2MxNjA0ZWU2YjYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlv
bi5oCkBAIC00Nyw2ICs0Nyw3IEBAIGVudW0gY2xhc3MgU2VydmljZVdvcmtlclN0YXRlOwogZW51
bSBjbGFzcyBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQ7CiBzdHJ1Y3QgRXhjZXB0aW9uRGF0YTsK
IHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTsKK3N0cnVjdCBTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllcjsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyRGF0YTsKIHN0cnVjdCBTZXJ2aWNl
V29ya2VyRmV0Y2hSZXN1bHQ7CiBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE7
CkBAIC03MCw3ICs3MSw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXNvbHZl
UmVnaXN0cmF0aW9uUHJvbWlzZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Jikg
PSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBEb2N1bWVudElkZW50aWZpZXIgc291cmNlQ29udGV4
dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2Us
IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
biwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBzb3VyY2UpID0gMDsKKwogICAgIHZpcnR1YWwgU1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIGJvb2wgbWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jVGVybWluYXRl
V29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKaW5kZXggODJiYjliMDRiYjUzMjY2
ZDRiNGY1YWJlNDg1MzQ3YWY0OGM1MzEzMC4uYjQ4YjczYmMxMDFlY2U3ZTg2MGU1NjBkOTE2ZDcy
MTU5MjA0MmI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KQEAgLTExMCwxNCArMTExLDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFNlcnZpY2VXb3Jr
ZXI6OnBvc3RNZXNzYWdlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTCiAgICAg
aWYgKGNoYW5uZWxzICYmICFjaGFubmVscy0+aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiUGFzc2luZyBNZXNzYWdl
UG9ydCBvYmplY3RzIHRvIHBvc3RNZXNzYWdlIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIikgfTsKIAot
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIHN1cHBvcnQgZm9yIHdvcmtlcnMuCi0gICAgaWYg
KCFpczxEb2N1bWVudD4oY29udGV4dCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJzZXJ2aWNlV29ya2VyQ2xpZW50LnBvc3RNZXNz
YWdlKCkgZnJvbSB3b3JrZXJzIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIikgfTsKKyAgICBpZiAoaXM8
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSkgeworICAgICAgICBhdXRvIHNvdXJj
ZVdvcmtlcklkZW50aWZpZXIgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNv
bnRleHQpLnRocmVhZCgpLmlkZW50aWZpZXIoKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
c2Vzc2lvbklEID0gY29udGV4dC5zZXNzaW9uSUQoKSwgZGVzdGluYXRpb25JZGVudGlmaWVyID0g
aWRlbnRpZmllcigpLCBzb3VyY2VXb3JrZXJJZGVudGlmaWVyLCBtZXNzYWdlID0gV1RGTW92ZSht
ZXNzYWdlKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBTZXJ2
aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9y
U2Vzc2lvbihzZXNzaW9uSUQpOworICAgICAgICAgICAgY29ubmVjdGlvbi5wb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlcihkZXN0aW5hdGlvbklkZW50aWZpZXIsIG1lc3NhZ2UucmVsZWFzZVJldHVy
blZhbHVlKCksIHNvdXJjZVdvcmtlcklkZW50aWZpZXIpOworICAgICAgICB9KTsKKyAgICAgICAg
cmV0dXJuIHsgfTsKKyAgICB9CiAKICAgICBhdXRvIHNvdXJjZUNsaWVudERhdGEgPSBTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YTo6ZnJvbShjb250ZXh0KTsKLQotICAgIGF1dG8mIHN3Q29ubmVjdGlv
biA9IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5l
Y3Rpb25Gb3JTZXNzaW9uKGNvbnRleHQuc2Vzc2lvbklEKCkpOwotICAgIHN3Q29ubmVjdGlvbi5w
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKGlkZW50aWZpZXIoKSwgbWVzc2Fn
ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmlkZW50
aWZpZXIoKSwgV1RGTW92ZShzb3VyY2VDbGllbnREYXRhKSk7CisgICAgYXV0byYgY29ubmVjdGlv
biA9IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5l
Y3Rpb25Gb3JTZXNzaW9uKGNvbnRleHQuc2Vzc2lvbklEKCkpOworICAgIFNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIHNvdXJjZUNsaWVudElkZW50aWZpZXIgeyBjb25uZWN0aW9uLnNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5pZGVu
dGlmaWVyKCkgfTsKKyAgICBjb25uZWN0aW9uLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKGlk
ZW50aWZpZXIoKSwgbWVzc2FnZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgV1RGTW92ZShzb3VyY2VD
bGllbnRJZGVudGlmaWVyKSwgV1RGTW92ZShzb3VyY2VDbGllbnREYXRhKSk7CiAKICAgICByZXR1
cm4geyB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAppbmRleCA4YzI3NjFkMTkxZTkwN2ZkMjAw
NDBmZTAyYTEzOWYxNzdhNTgyNmQ0Li4zYTU5OWRhYzg4ZWQxNWY4Nzc4ZGI2ZTQ3MWFhZWJkOTI5
MzkyNTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcApAQCAtNjcsMTQgKzY3LDI0IEBAIFNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eSogU1dDb250ZXh0TWFuYWdlcjo6c2VydmljZVdvcmtlclRocmVh
ZFByb3h5KFNlcnZpY2VXb3JrCiAgICAgcmV0dXJuIG1fd29ya2VyTWFwLmdldChpZGVudGlmaWVy
KTsKIH0KIAotdm9pZCBTV0NvbnRleHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBSZWY8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0
YSkKK3ZvaWQgU1dDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRp
ZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQogewogICAgIGF1dG8q
IHNlcnZpY2VXb3JrZXIgPSBtX3dvcmtlck1hcC5nZXQoZGVzdGluYXRpb24pOwogICAgIEFTU0VS
VChzZXJ2aWNlV29ya2VyKTsKICAgICBBU1NFUlQoIXNlcnZpY2VXb3JrZXItPmlzVGVybWluYXRp
bmdPclRlcm1pbmF0ZWQoKSk7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBhc3MgdmFsaWQg
TWVzc2FnZVBvcnRDaGFubmVscy4KLSAgICBzZXJ2aWNlV29ya2VyLT50aHJlYWQoKS5wb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdURk1vdmUobWVzc2FnZSksIG51bGxwdHIs
IHNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlRGF0YSkpOworICAgIHNlcnZpY2VXb3Jr
ZXItPnRocmVhZCgpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdURk1vdmUobWVzc2FnZSks
IG51bGxwdHIsIHNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlRGF0YSkpOworfQorCit2
b2lkIFNXQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYm
IG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlRGF0YSkKK3sKKyAgICBhdXRvKiBz
ZXJ2aWNlV29ya2VyID0gbV93b3JrZXJNYXAuZ2V0KGRlc3RpbmF0aW9uKTsKKyAgICBBU1NFUlQo
c2VydmljZVdvcmtlcik7CisgICAgQVNTRVJUKCFzZXJ2aWNlV29ya2VyLT5pc1Rlcm1pbmF0aW5n
T3JUZXJtaW5hdGVkKCkpOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIHZhbGlkIE1l
c3NhZ2VQb3J0Q2hhbm5lbHMuCisgICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkucG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXIoV1RGTW92ZShtZXNzYWdlKSwgbnVsbHB0ciwgV1RGTW92ZShzb3Vy
Y2VEYXRhKSk7CiB9CiAKIHZvaWQgU1dDb250ZXh0TWFuYWdlcjo6ZmlyZUluc3RhbGxFdmVudChT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCmluZGV4
IGFiNWRlNzBjODBkOWU3ZDVjNzg4NzM1NzE5YzFmMjE5MjdmMjc5MzcuLjVhMTQ1NDFiYTE5OWI4
Yjk4ZTY2YzUwNDRiMzgxY2QwZmY4ZjM4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKQEAgLTY2LDcg
KzY2LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3RlclNlcnZp
Y2VXb3JrZXJUaHJlYWRGb3JJbnN0YWxsKFJlZjxTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk+JiYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSogc2VydmljZVdv
cmtlclRocmVhZFByb3h5KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBjb25zdDsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRp
ZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2Us
IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5h
dGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2Vy
RGF0YSYmIHNvdXJjZURhdGEpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmlyZUluc3RhbGxF
dmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBm
aXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIEZ1bmN0
aW9uPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDkxYTBjYzRj
ODkwMWQ0YWQ1Mzk4ODBkYjdhOTc3NjJkMTRlOWY5Y2IuLmJmM2ViYWI4ODMxNjkyNGYzM2Y3YWUz
NGMzMmIzYjFmMDU2NzljYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0xMDUs
MTkgKzEwNSwzMyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RGZXRjaFRhc2soUmVm
PFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudAogICAgIH0sIFdvcmtlclJ1bkxv
b3A6OmRlZmF1bHRNb2RlKCkpOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYg
Y2hhbm5lbHMsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIs
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSkKK3N0YXRpYyB2b2lkIGZpcmVN
ZXNzYWdlRXZlbnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBzY29wZSwgUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFu
bmVsQXJyYXk+JiYgY2hhbm5lbHMsIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2UmJiBzb3Vy
Y2UsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4pCiB7Ci0gICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6VGFzayB0YXNrKFtjaGFubmVscyA9IFdURk1vdmUoY2hhbm5lbHMpLCBt
ZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgc291cmNlSWRlbnRpZmllciwgc291cmNlRGF0YSA9
IHNvdXJjZURhdGEuaXNvbGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0KSBtdXRhYmxlIHsKKyAgICBhdXRvIHBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9y
dHMoc2NvcGUsIFdURk1vdmUoY2hhbm5lbHMpKTsKKyAgICBhdXRvIG1lc3NhZ2VFdmVudCA9IEV4
dGVuZGFibGVNZXNzYWdlRXZlbnQ6OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgV1RGTW92ZShtZXNz
YWdlKSwgc291cmNlT3JpZ2luLT50b1N0cmluZygpLCB7IH0sIHNvdXJjZSk7CisgICAgc2NvcGUu
ZGlzcGF0Y2hFdmVudChtZXNzYWdlRXZlbnQpOworICAgIHNjb3BlLnRocmVhZCgpLndvcmtlck9i
amVjdFByb3h5KCkuY29uZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0KHNjb3BlLmhhc1BlbmRp
bmdBY3Rpdml0eSgpKTsKKyAgICBzY29wZS51cGRhdGVFeHRlbmRlZEV2ZW50c1NldChtZXNzYWdl
RXZlbnQucHRyKCkpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgc3Rk
Ojp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzLCBTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YSYmIHNvdXJjZURhdGEpCit7CisgICAgcnVuTG9vcCgpLnBvc3RUYXNrKFtjaGFubmVs
cyA9IFdURk1vdmUoY2hhbm5lbHMpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgc291cmNl
SWRlbnRpZmllciwgc291cmNlRGF0YSA9IHNvdXJjZURhdGEuaXNvbGF0ZWRDb3B5KCldIChhdXRv
JiBjb250ZXh0KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byYgc2VydmljZVdvcmtlckdsb2JhbFNj
b3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKLSAgICAg
ICAgYXV0byBwb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKHNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSwgV1RGTW92ZShjaGFubmVscykpOwogICAgICAgICBSZWZQdHI8U2VydmljZVdv
cmtlckNsaWVudD4gc291cmNlID0gU2VydmljZVdvcmtlckNsaWVudDo6Z2V0T3JDcmVhdGUoc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLCBzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZURh
dGEpKTsKICAgICAgICAgYXV0byBzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
KHNvdXJjZS0+dXJsKCkpOwotICAgICAgICBhdXRvIG1lc3NhZ2VFdmVudCA9IEV4dGVuZGFibGVN
ZXNzYWdlRXZlbnQ6OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgV1RGTW92ZShtZXNzYWdlKSwgc291
cmNlT3JpZ2luLT50b1N0cmluZygpLCB7IH0sIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2Ug
eyBzb3VyY2UgfSk7Ci0gICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5kaXNwYXRjaEV2
ZW50KG1lc3NhZ2VFdmVudCk7Ci0gICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS50aHJl
YWQoKS53b3JrZXJPYmplY3RQcm94eSgpLmNvbmZpcm1NZXNzYWdlRnJvbVdvcmtlck9iamVjdChz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaGFzUGVuZGluZ0FjdGl2aXR5KCkpOwotICAgICAgICBz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUudXBkYXRlRXh0ZW5kZWRFdmVudHNTZXQobWVzc2FnZUV2
ZW50LnB0cigpKTsKKyAgICAgICAgZmlyZU1lc3NhZ2VFdmVudChzZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUsIFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUoY2hhbm5lbHMpLCBFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50U291cmNlIHsgc291cmNlIH0sIFdURk1vdmUoc291cmNlT3JpZ2luKSk7CisgICAg
fSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXIoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYgY2hhbm5lbHMsIFNlcnZpY2VXb3JrZXJEYXRh
JiYgc291cmNlRGF0YSkKK3sKKyAgICBydW5Mb29wKCkucG9zdFRhc2soW2NoYW5uZWxzID0gV1RG
TW92ZShjaGFubmVscyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VEYXRhID0g
c291cmNlRGF0YS5pc29sYXRlZENvcHkoKV0gKGF1dG8mIGNvbnRleHQpIG11dGFibGUgeworICAg
ICAgICBhdXRvJiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOworICAgICAgICBSZWZQdHI8U2VydmljZVdvcmtlcj4g
c291cmNlID0gU2VydmljZVdvcmtlcjo6Z2V0T3JDcmVhdGUoc2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKKyAgICAgICAgYXV0byBzb3VyY2VPcmlnaW4gPSBT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHNvdXJjZS0+c2NyaXB0VVJMKCkpOworICAgICAgICBmaXJl
TWVzc2FnZUV2ZW50KGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCks
IFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUoY2hhbm5lbHMpLCBFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50U291cmNlIHsgc291cmNlIH0sIFdURk1vdmUoc291cmNlT3JpZ2luKSk7CiAgICAgfSk7Ci0g
ICAgcnVuTG9vcCgpLnBvc3RUYXNrKFdURk1vdmUodGFzaykpOwogfQogCiB2b2lkIFNlcnZpY2VX
b3JrZXJUaHJlYWQ6OmZpcmVJbnN0YWxsRXZlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCmlu
ZGV4IGVhNTFkZTdmZThlYzhhMGMwZTBjM2NhMGM1NzFmOTZiZmViMWE5ZmIuLjY1ZTUwNzYxMTUw
Y2IxOTIyMzUxNmMyNWM0MWYwZThlMzJhZWU4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgK
QEAgLTU4LDcgKzU4LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0
RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgUmVzb3VyY2VSZXF1
ZXN0JiYsIEZldGNoT3B0aW9ucyYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RGZXRj
aFRhc2soUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBzdGQ6Om9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hP
cHRpb25zJiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZShSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNl
RGF0YSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
cihSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBv
cnRDaGFubmVsQXJyYXk+JiYsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlk
ZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSk7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihSZWY8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+
JiYsIFNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlRGF0YSk7CiAKICAgICB2b2lkIGZpcmVJbnN0
YWxsRXZlbnQoKTsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDRhY2ViZjZkZjgzOTI2OTQ2ZDcyOTQ5MzJm
NWY1ZmQ2NmU5MDE5MmQuLmIwNGE5MzliY2MzNWZkZWY0YThhOTQ1OTkzM2U5YzdiNTBlZTIyMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMjgsMTQgKzEy
OCwyNiBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBm
ZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8UwogICAgIHNlbmRUb0NvbnRleHRQcm9jZXNz
KE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaCB7IGlk
ZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgcmVx
dWVzdCwgb3B0aW9ucywgZm9ybURhdGEgfSk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIGRlc3RpbmF0aW9uU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgRG9jdW1lbnRJZGVudGlmaWVyIHNvdXJjZUNvbnRleHRJ
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCit2b2lkIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tQ2xpZW50
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBz
b3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCiB7
CiAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGlzIHNwZWNpZmljIHdvcmtlciBjYW5ub3QgYmUgcmUt
cnVuIChlLmcuIGl0cyByZWdpc3RyYXRpb24gaGFzIGJlZW4gcmVtb3ZlZCkKLSAgICBpZiAoIXNl
cnZlcigpLmludm9rZVJ1blNlcnZpY2VXb3JrZXIoZGVzdGluYXRpb25TZXJ2aWNlV29ya2VySWRl
bnRpZmllcikpCisgICAgaWYgKCFzZXJ2ZXIoKS5pbnZva2VSdW5TZXJ2aWNlV29ya2VyKGRlc3Rp
bmF0aW9uSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybjsKIAotICAgIFNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIgeyBpZGVudGlmaWVyKCksIHNvdXJjZUNv
bnRleHRJZGVudGlmaWVyIH07Ci0gICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6Oldl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlIHsgZGVzdGluYXRpb25TZXJ2aWNlV29ya2VySWRlbnRpZmllciwgbWVzc2FnZSwg
c291cmNlSWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSB9KTsKKyAgICBzZW5kVG9Db250
ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudCB7IGRlc3RpbmF0aW9uSWRlbnRpZmllciwg
bWVzc2FnZSwgc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSB9KTsKK30KKwor
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJv
bVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlm
aWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgLy8gSXQncyBwb3NzaWJsZSB0aGlzIHNw
ZWNpZmljIHdvcmtlciBjYW5ub3QgYmUgcmUtcnVuIChlLmcuIGl0cyByZWdpc3RyYXRpb24gaGFz
IGJlZW4gcmVtb3ZlZCkKKyAgICBpZiAoIXNlcnZlcigpLmludm9rZVJ1blNlcnZpY2VXb3JrZXIo
ZGVzdGluYXRpb25JZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogc291
cmNlV29ya2VyID0gc2VydmVyKCkud29ya2VyQnlJRChzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBp
ZiAoIXNvdXJjZVdvcmtlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VuZFRvQ29udGV4dFBy
b2Nlc3MoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpQb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyIHsgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBtZXNzYWdlLCBzb3VyY2VXb3JrZXItPmRhdGEoKSB9KTsKIH0KIAogdm9pZCBXZWJTV1NlcnZl
ckNvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHVpbnQ2NF90IGZldGNoSWRlbnRp
ZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggMWU2MTEyZDAyOWVmNDRkNTY3MjhlMmQ4YjM2MDkyMjEx
Y2E2NWQwMy4uOTBiNGU2NmZjNDJhMjhiZTMwYmJlMWNiOGQ5NTBmMzhkMDY4NzUxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtODAsNyArODAsOCBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4sIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKIAotICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5h
dGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgV2ViQ29y
ZTo6RG9jdW1lbnRJZGVudGlmaWVyIHNvdXJjZUNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSk7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
ZGVzdGluYXRpb24sIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpOworICAgIHZvaWQgcG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBkZXN0aW5hdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2UpOwogCiAgICAgdm9pZCBtYXRj
aFJlZ2lzdHJhdGlvbih1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2Vi
Q29yZTo6VVJMJiBjbGllbnRVUkwpOwogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyh1aW50NjRf
dCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
aW5kZXggYzBiOTNjZmYwNzJiMzI5YThmMjEzMDk4NzIwZGJmOThkNGEzYmE2Ni4uMTAyZjAwYjU4
NTAyNzVmNzZkMDdhOGMxNDFhODI5OTg3NmZlZWE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMiw3ICszMiw4IEBAIG1lc3Nh
Z2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiB7CiAgICAgU2VydmljZVdvcmtlclN0b3BwZWRD
b250cm9sbGluZ0NsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVy
IGNvbnRleHRJZGVudGlmaWVyKQogCiAgICAgU3RhcnRGZXRjaCh1aW50NjRfdCBpZGVudGlmaWVy
LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVj
dCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBy
ZXF1ZXN0Qm9keSkKLSAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uU2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXIgc291cmNlQ29udGV4dElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YSBzb3VyY2UpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJG
cm9tQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwg
c3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHNvdXJjZURhdGEpCisgICAg
UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvblNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJ
UEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIpCiAKICAgICBEaWRSZXNvbHZlUmVnaXN0cmF0aW9u
UHJvbWlzZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IGtleSkKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKaW5kZXggYWEzMDNiMWViYWZmMGEzMDdkYmVkZmEzNDYyNTg1MDIwNTI3
M2U4Mi4uMTJjZGQwYWI3ZTI0MGM4YmJkMzNiODIzMTYxNWM1YWQ4MjAxMjlkMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uY3BwCkBAIC04Miw5ICs4MiwxNCBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6cmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZQog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6UmVtb3ZlU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKGlkZW50aWZpZXIpKTsKIH0KIAotdm9pZCBXZWJTV0Ns
aWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYmIHNjcmlwdFZhbHVlLCBEb2N1bWVudElkZW50aWZpZXIgc291cmNlQ29u
dGV4dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKQordm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4mJiBzY3JpcHRWYWx1ZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291
cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpCiB7Ci0gICAg
c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlKGRlc3RpbmF0aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJl
bmNlIHsgc2NyaXB0VmFsdWUtPmRhdGEoKSB9LCBzb3VyY2VDb250ZXh0SWRlbnRpZmllciwgV1RG
TW92ZShzb3VyY2UpKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21DbGllbnQoZGVzdGluYXRpb25JZGVudGlm
aWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgeyBzY3JpcHRWYWx1ZS0+ZGF0YSgpIH0sIHNvdXJjZUlk
ZW50aWZpZXIsIFdURk1vdmUoc291cmNlKSkpOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVj
dGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIg
ZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIHNjcmlw
dFZhbHVlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VXb3JrZXJJZGVudGlmaWVyKQor
eworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6UG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQ
Qzo6RGF0YVJlZmVyZW5jZSB7IHNjcmlwdFZhbHVlLT5kYXRhKCkgfSwgc291cmNlV29ya2VySWRl
bnRpZmllcikpOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2VydmljZVdvcmtl
clN0YXJ0ZWRDb250cm9sbGluZ0NsaWVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgRG9jdW1lbnRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uaAppbmRleCA5MTc2YWI3ZmM2YWY5ZTE4YTJhYTczYWUzOWRmZTEwZDM5
N2UyM2E1Li5lNTZmNGVhNTQ1Y2U0ZWIyOTZlZjQxZWQ2NDMyN2JlMzI3ODYzZjdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uaApAQCAtNzMsNyArNzMsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVs
ZUpvYkluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJikgZmluYWw7
CiAgICAgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpIGZpbmFsOwotICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBk
ZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+
JiYsIFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBzb3VyY2VDb250ZXh0SWRlbnRpZmllciwg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpIGZpbmFsOworICAgIHZv
aWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkgZmlu
YWw7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNv
dXJjZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0
ZWRDb250cm9sbGluZ0NsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkRvY3Vt
ZW50SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBzZXJ2aWNlV29ya2VyU3RvcHBlZENvbnRy
b2xsaW5nQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRJZGVu
dGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJikgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggYTU2MDI3NmZlMDI4NmU2
Mzg4ODgwMTRkYTUyZjkxYWEyZjJiNzc5Yy4uNjI4NTEyMzg1YjNiODFkZTAxMDExZGMxODFlZTUy
ZjE4YmE4ODFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMTUw
LDkgKzE1MCwxNCBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZl
dGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydgogICAgIHNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS0+dGhyZWFkKCkucG9zdEZldGNoVGFzayhXVEZNb3ZlKGNsaWVudCksIFdURk1v
dmUoY2xpZW50SWQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpKTsKIH0KIAot
dm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50
aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEm
JiBzb3VyY2VEYXRhKQordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRl
c3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCiB7Ci0gICAgU1dDb250ZXh0TWFuYWdlcjo6c2lu
Z2xldG9uKCkucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShkZXN0aW5hdGlv
bklkZW50aWZpZXIsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQobWVzc2FnZS52ZWN0b3Io
KSksIHNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlRGF0YSkpOworICAgIFNXQ29udGV4
dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKGRlc3RpbmF0
aW9uSWRlbnRpZmllciwgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChtZXNzYWdlLnZlY3Rv
cigpKSwgc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSk7Cit9CisKK3ZvaWQg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
RnJvbVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVu
dGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJE
YXRhJiYgc291cmNlRGF0YSkKK3sKKyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5w
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihkZXN0aW5hdGlvbklkZW50aWZpZXIsIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6YWRvcHQobWVzc2FnZS52ZWN0b3IoKSksIFdURk1vdmUoc291cmNlRGF0
YSkpOwogfQogCiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaXJlSW5zdGFs
bEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaAppbmRleCAxNWE0YjI3M2FkNzI4MzNiYzAyMWNkZDUzNTJlOWY1MDJk
MTFjNGZlLi43MDc1MGMzNDM2NzUyZDEyZGMxZjQ0NWQ2MDc0ZjBhYzgwOWIxODUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTcyLDcgKzcyLDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHNlcnZpY2VXb3JrZXJTdGFydGVkV2l0aE1lc3NhZ2Uoc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKSBmaW5hbDsKICAg
ICB2b2lkIGluc3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YSYpOwogICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7
Ci0gICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIHNvdXJjZURhdGEpOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9t
Q2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRp
ZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZURhdGEpOwogICAgIHZvaWQgZmlyZUluc3Rh
bGxFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBmaXJl
QWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9p
ZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBhMWQ2
NTExYjQzNjUxZWIzODUwMTIxNzMxYTVkOWYwNTgwODQxZmFkLi44MjFkY2RmODZmZDIwOTc2ZmE3
ZDhkZmViNmJmMjk3NGJkOTQ0ZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsOCBAQAogbWVzc2FnZXMgLT4gV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24gewogICAgIEluc3RhbGxTZXJ2aWNlV29ya2VyKHN0cnVj
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgY29udGV4dERhdGEpCiAgICAgU3Rh
cnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNo
T3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5KQotICAg
IFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2Ug
bWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNv
dXJjZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBz
b3VyY2VEYXRhKQorICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudChXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6
RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhIHNvdXJjZURhdGEpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJG
cm9tU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5h
dGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29y
ZTo6U2VydmljZVdvcmtlckRhdGEgc291cmNlRGF0YSkKICAgICBGaXJlSW5zdGFsbEV2ZW50KFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgRmlyZUFjdGl2
YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAg
ICBUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRp
ZmllcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA3OTlhNmJhNTliMDRlZmY3ODIzODcwYzE2NDk5MmIwMTNiYWZiZjdkLi5k
NzQ3ZmQ1MWQwNzZjMjgyZDIwNTFhMWMwYjhlOGFkNGFmYmYzYzA3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTctMTItMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBTdXBwb3J0IHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKSBpbnNpZGUgc2VydmljZSB3
b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODAzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBVbnNr
aXAgV1BUIHRlc3QgdGhhdCBubyBsb25nZXIgdGltZXMgb3V0LgorCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczoKKwogMjAxNy0xMi0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVuc2tpcCAvIHJlYmFzZWxpbmUgYSBmZXcgd2ViIHBs
YXRmb3JtIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZDVmNWRlMTMw
NzBhMjVhMTFmNjUyYjVhM2QxYjJkNjcyMDQzODhjNC4uZjAyZjg1ZDc3NTRiZmE1MTQ2NTc4ZWQ0
ZmQxNmE2ZmY0NDA4ZTFhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTctMTItMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBTdXBwb3J0IHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKSBpbnNpZGUgc2Vydmlj
ZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODAzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBS
ZWJhc2VsaW5lIFdQVCB0ZXN0IHRoYXQgaXMgbm93IHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS9leHRlbmRhYmxlLW1lc3NhZ2UtZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0
OgorCiAyMDE3LTEyLTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgdW5za2lwIC8gcmViYXNlbGluZSBhIGZldyB3ZWIgcGxhdGZvcm0gdGVz
dHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhYzM1ZWM5MzI2MDgyZDMzNTI2MWNlMTBjNjIyZDRm
MGQ2YjYyN2M5Li5mNWQ0ZTAxZjhhMjhlZmMzNDU3OTQ5ZmRkMmQ2YmNhMjA0ZGNhNDdiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTE0NSw3ICsxNDUsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlY3VyZS1jb250ZXh0cy9zaGFyZWQtd29ya2VyLXNlY3VyZS1maXJzdC5odHRw
cwogCiAjIFNraXAgc2VydmljZSB3b3JrZXIgdGVzdHMgdGhhdCBhcmUgdGltaW5nIG91dC4KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Fib3J0L2dlbmVyYWwtc2Vy
dmljZXdvcmtlci5odHRwcy5odG1sIFsgU2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2RldGFjaGVkLWNvbnRleHQuaHR0cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1l
dmVudC13YWl0dW50aWwuaHR0cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZm9yZWlnbi1mZXRjaC1i
YXNpY3MuaHR0cHMuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUv
ZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA0ZDUyYjQy
NDdhOWY0OThmZjEyMGM1NGJjZTE5NWQ5MWQyZDY1NWNkLi5lMmJhNzI3YmE3ZDllMTgwNDVjZTlh
ZTFmYmMyN2JhNzY3N2EwZjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50Lmh0dHBzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvZXh0
ZW5kYWJsZS1tZXNzYWdlLWV2ZW50Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDYgQEAK
IAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIEZBSUwgUG9zdCBh
biBleHRlbmRhYmxlIG1lc3NhZ2UgZnJvbSBhIHRvcC1sZXZlbCBjbGllbnQgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiTm90U3VwcG9ydGVkRXJy
b3I6IFBhc3NpbmcgTWVzc2FnZVBvcnQgb2JqZWN0cyB0byBwb3N0TWVzc2FnZSBpcyBub3QgeWV0
IHN1cHBvcnRlZCIKIEZBSUwgUG9zdCBhbiBleHRlbmRhYmxlIG1lc3NhZ2UgZnJvbSBhIG5lc3Rl
ZCBjbGllbnQgYXNzZXJ0X2VxdWFsczogZXZlbnQgYHNvdXJjZWAgcHJvcGVydHkgYGZvY3VzZWRg
IGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQotVElNRU9VVCBQb3N0IGxvb3BiYWNrIGV4dGVu
ZGFibGUgbWVzc2FnZXMgVGVzdCB0aW1lZCBvdXQKLU5PVFJVTiBQb3N0IGV4dGVuZGFibGUgbWVz
c2FnZXMgYW1vbmcgc2VydmljZSB3b3JrZXJzIAorUEFTUyBQb3N0IGxvb3BiYWNrIGV4dGVuZGFi
bGUgbWVzc2FnZXMgCitQQVNTIFBvc3QgZXh0ZW5kYWJsZSBtZXNzYWdlcyBhbW9uZyBzZXJ2aWNl
IHdvcmtlcnMgCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>