<?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>195130</bug_id>
          
          <creation_ts>2019-02-27 16:37:12 -0800</creation_ts>
          <short_desc>Introduce ServiceWorkerFetchTask</short_desc>
          <delta_ts>2019-03-05 13:50:29 -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>Service Workers</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1510688</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-27 16:37:12 -0800</bug_when>
    <thetext>Introduce ServiceWorkerFetchTask so that later on we can link it with NetworkResourceLoader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510692</commentid>
    <comment_count>1</comment_count>
      <attachid>363155</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-27 16:43:26 -0800</bug_when>
    <thetext>Created attachment 363155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510733</commentid>
    <comment_count>2</comment_count>
      <attachid>363164</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-27 17:26:22 -0800</bug_when>
    <thetext>Created attachment 363164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510774</commentid>
    <comment_count>3</comment_count>
      <attachid>363181</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-27 19:07:50 -0800</bug_when>
    <thetext>Created attachment 363181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510781</commentid>
    <comment_count>4</comment_count>
      <attachid>363184</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-27 19:42:48 -0800</bug_when>
    <thetext>Created attachment 363184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511098</commentid>
    <comment_count>5</comment_count>
      <attachid>363258</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-28 13:26:20 -0800</bug_when>
    <thetext>Created attachment 363258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511987</commentid>
    <comment_count>6</comment_count>
      <attachid>363258</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-03-03 13:36:41 -0800</bug_when>
    <thetext>Comment on attachment 363258
Patch

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

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:60
&gt; +        inline unsigned hash() const

Inline?

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:62
&gt; +            unsigned hashes[2];

Old style. New hotness is std::array.

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:65
&gt; +            

Ok as-is. Empty line to rich for me. I don’t think it improves readability.

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:77
&gt; +    ServiceWorkerFetchTask(PAL::SessionID sessionID, Ref&lt;IPC::Connection&gt;&amp;&amp; connection, WebCore::SWServerConnectionIdentifier connectionIdentifier, WebCore::FetchIdentifier fetchIdentifier)
&gt; +        : m_sessionID(sessionID)
&gt; +        , m_connection(WTFMove(connection))
&gt; +        , m_identifier(Identifier {connectionIdentifier, fetchIdentifier})
&gt; +    { }

Uniform initialized syntax (UIS)?

Also, you’re use of UIS is in bad taste. Put spaces after { and before }.

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:117
&gt; +    typedef ServiceWorkerFetchTaskIdentifierHash Hash;

Using?

&gt; Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:63
&gt; +    auto fetches = WTFMove(m_ongoingFetches);

std::exchange()? Or old object left in sane state?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512696</commentid>
    <comment_count>7</comment_count>
      <attachid>363654</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-03-05 10:50:37 -0800</bug_when>
    <thetext>Created attachment 363654
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512697</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-03-05 10:50:45 -0800</bug_when>
    <thetext>Thanks for the review.

(In reply to Daniel Bates from comment #6)
&gt; Comment on attachment 363258 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=363258&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:60
&gt; &gt; +        inline unsigned hash() const
&gt; 
&gt; Inline?

Removed.

&gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:62
&gt; &gt; +            unsigned hashes[2];
&gt; 
&gt; Old style. New hotness is std::array.

That probably requires to have hashMemory take a std::array, otherwise this makes the code more complex.
Might be better tackled outside of this patch.

&gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:65
&gt; &gt; +            
&gt; 
&gt; Ok as-is. Empty line to rich for me. I don’t think it improves readability.

Removed the line.

&gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:77
&gt; &gt; +    ServiceWorkerFetchTask(PAL::SessionID sessionID, Ref&lt;IPC::Connection&gt;&amp;&amp; connection, WebCore::SWServerConnectionIdentifier connectionIdentifier, WebCore::FetchIdentifier fetchIdentifier)
&gt; &gt; +        : m_sessionID(sessionID)
&gt; &gt; +        , m_connection(WTFMove(connection))
&gt; &gt; +        , m_identifier(Identifier {connectionIdentifier, fetchIdentifier})
&gt; &gt; +    { }
&gt; 
&gt; Uniform initialized syntax (UIS)?
&gt; 
&gt; Also, you’re use of UIS is in bad taste. Put spaces after { and before }.

Fixed

&gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:117
&gt; &gt; +    typedef ServiceWorkerFetchTaskIdentifierHash Hash;
&gt; 
&gt; Using?

OK

&gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:63
&gt; &gt; +    auto fetches = WTFMove(m_ongoingFetches);
&gt; 
&gt; std::exchange()? Or old object left in sane state?

I kept WTFMove, it reads better to me and m_ongoingFetches is a map so is left in a good state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512752</commentid>
    <comment_count>9</comment_count>
      <attachid>363654</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-05 12:06:59 -0800</bug_when>
    <thetext>Comment on attachment 363654
Patch

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

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:69
&gt; +    Identifier identifier() const { return m_identifier; }

const Identifier&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512758</commentid>
    <comment_count>10</comment_count>
      <attachid>363669</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-03-05 12:28:26 -0800</bug_when>
    <thetext>Created attachment 363669
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512812</commentid>
    <comment_count>11</comment_count>
      <attachid>363669</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-05 13:49:34 -0800</bug_when>
    <thetext>Comment on attachment 363669
Patch for landing

Clearing flags on attachment: 363669

Committed r242503: &lt;https://trac.webkit.org/changeset/242503&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512813</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-05 13:49:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512817</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-05 13:50:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/48612687&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363155</attachid>
            <date>2019-02-27 16:43:26 -0800</date>
            <delta_ts>2019-02-27 17:26:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195130-20190227164320.patch</filename>
            <type>text/plain</type>
            <size>55475</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU2N2M0YzFmMzVkMDE5MDM4
OWJkNzFmYWYzMTA2ZjY2NGM0ZWU1YTMuLjE4MDIyOTcwZWVmMWY4ZTI4ODQ1MjFhMzdlN2RlNDZj
ZTNiNTViMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTktMDItMjcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTUxMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIGlzIGFkZGVkIHRvIHJlcHJlc2VudCBOZXR3b3Jr
UHJvY2VzcyBzaWRlIG9mIGFuIG9uZ29pbmcgZmV0Y2ggaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3
b3JrZXIuCisgICAgICAgIFRoaXMgcGF0Y2ggc2hvdWxkIG5vdCBjaGFuZ2UgZXhpc3RpbmcgYmVo
YXZpb3IuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZEZhaWxGZXRjaCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWROb3RIYW5kbGVGZXRjaCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJl
c3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZFJl
Y2VpdmVGZXRjaFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmRpZFJlY2VpdmVGZXRjaERhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkRmluaXNoRmV0Y2gpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNo
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0
Y2hSZWRpcmVjdFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoRGF0YSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OmRpZEZpbmlzaEZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRGYWlsRmV0Y2gpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5vdEhhbmRsZUZldGNoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjYW5jZWxGZXRjaCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y29udGludWVEaWRS
ZWNlaXZlRmV0Y2hSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoVGFza01lc3NhZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
Lmg6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVkaXJlY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpk
aWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2Vp
dmVCbG9iQ2h1bmspOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudDo6ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6ZGlkTm90SGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlZGlyZWN0UmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNl
aXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpk
aWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OmRpZFJlY2VpdmVGb3JtRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s6OmRpZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpk
aWROb3RIYW5kbGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlckZldGNoVGFzay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdv
cmtlckZldGNoVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZl
dGNoVGFzazo6SWRlbnRpZmllcjo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tJZGVudGlmaWVySGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tJZGVudGlmaWVySGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdl
YktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllcj46OmVtcHR5VmFsdWUpOgor
ICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6
SWRlbnRpZmllcj46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hU
cmFpdHM8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyPjo6aXNEZWxl
dGVkVmFsdWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTktMDItMjYgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgc2VydmljZSB3b3Jr
ZXIgcmVzcG9uc2UgdmFsaWRhdGlvbiBmcm9tIHRoZSBzZXJ2aWNlIHdvcmtlciBjbGllbnQgdG8g
dGhlIHNlcnZpY2Ugd29ya2VyIGl0c2VsZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggYmNiODc2NDUw
YzNiMzc1MWExMjgwNGNiZDU0NTc0NWYzODA5OTViMy4uMDRlYzIzNzlhY2VkYTI5NTljNmIzMjkz
YWYxN2NmMGE1OTU5ZTE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xMTEsNiArMTExLDcgQEAg
c2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2Nr
ZXRTdHJlYW0ubWVzc2FnZXMuaW4KIAorICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAgICAgTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CmluZGV4IDUxN2YzZWQ1Y2ZhMWQ1ZTg5YmNjNGRkMDIzMDFhODZiM2RiNDk1ZmUuLjlmY2Y3
NDhhYjg2YzI1NGJmNDljNWQzNWI0NzdmOWUyMTlhYzkzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI0LDYgKzI0LDcgQEAgJChQUk9K
RUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
b2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAppbmRleCA4Yjc1YzNiZTRhMGQwYTdlMzkzZjU5ZGIwYzAxMzVlODU1MmZiZmRhLi4xYWE5NzAz
MWQ4ZjkwZjY3NmEyM2QwYTMxYTZkMmI0YWVkM2Y3ZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTgwLDYgKzgwLDggQEAgJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VjSXRlbVNoaW1Qcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2hNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2hNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2Vp
dmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2Vy
dmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
bWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYmZjZjAwODEwY2IwMmJkNTlhMTYw
NjA4NzMyYTY0ODQ0MzFkMjFkYy4uYzM1ZTZiOTdhMDM0YTA3YmMxNjkxNThlYTE1OWUxNmU2ZWZk
NjI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTMxLDYgKzEzMSw3IEBAIE1F
U1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZVdlYkluc3BlY3RvclVJIFwKICAgICBTZWNJ
dGVtU2hpbVByb3h5IFwKICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2ggXAorICAgIFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2sgXAogICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXAog
ICAgIFN0b3JhZ2VBcmVhTWFwIFwKICAgICBTdG9yYWdlTWFuYWdlciBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCmluZGV4IGMzMDBhYzEwYjlhMmVhYjEyZWQ0NjU3NTI4NTc0Yzk3MjA4NTYw
MzUuLmQwNzFkZTUzZWQwY2YzZmUwNjU5ZjRkYjQwOGViNGY3ZWI4NzVkM2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Nv
Y2tldFN0cmVhbU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWQuaCIKICNpbmNsdWRlICJQ
cmVjb25uZWN0VGFzay5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVy
cm9ycy5oIgogI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIgpAQCAtMTgxLDEz
ICsxODIsMjAgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAgICAgICAgICAgIHN3Q29ubmVj
dGlvbi0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgCisKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IG1f
bmV0d29ya1Byb2Nlc3MtPmNvbm5lY3Rpb25Ub0NvbnRleHRQcm9jZXNzRnJvbUlQQ0Nvbm5lY3Rp
b24oY29ubmVjdGlvbikpIHsKICAgICAgICAgICAgIGNvbnRleHRDb25uZWN0aW9uLT5kaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CisgICAgICAgIGlmIChhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IG1fbmV0d29ya1Byb2Nl
c3MtPmNvbm5lY3Rpb25Ub0NvbnRleHRQcm9jZXNzRnJvbUlQQ0Nvbm5lY3Rpb24oY29ubmVjdGlv
bikpIHsKKyAgICAgICAgICAgIGNvbnRleHRDb25uZWN0aW9uLT5kaWRSZWNlaXZlRmV0Y2hUYXNr
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgIH0KICNlbmRpZgogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDYzODgx
MzQ5YmJiNTJmNTUyZTNhYTFmN2NhZDQ4NTQ2N2U5YTE1N2MuLjUwYjk2ZWI3ODY0ZjkzYmVlMzI0
OWE0ZDRlMTk0Mzg4Mzk3Yjc3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yMTY0LDQ4ICsyMTY0LDYgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIHMKICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rp
b25Ub05ldHdvcmtQcm9jZXNzKHNlY3VyaXR5T3JpZ2luKSwgMCk7CiB9CiAKLXZvaWQgTmV0d29y
a1Byb2Nlc3M6OmRpZEZhaWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9
IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQot
ICAgICAgICBjb25uZWN0aW9uLT5kaWRGYWlsRmV0Y2goZmV0Y2hJZGVudGlmaWVyLCBlcnJvcik7
Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZE5vdEhhbmRsZUZldGNoKFNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRp
ZmllciBmZXRjaElkZW50aWZpZXIpCi17Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3
U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAg
ICAgY29ubmVjdGlvbi0+ZGlkTm90SGFuZGxlRmV0Y2goZmV0Y2hJZGVudGlmaWVyKTsKLX0KLQot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZShTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJD
b25uZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICBjb25u
ZWN0aW9uLT5kaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNlKGZldGNoSWRlbnRpZmllciwg
cmVzcG9uc2UpOwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZXNw
b25zZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlTWVzc2FnZSkKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25u
ZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICBjb25uZWN0
aW9uLT5kaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShmZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlLCBu
ZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7Ci19Ci0KLXZvaWQgTmV0d29y
a1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaERhdGEoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRp
ZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRh
TGVuZ3RoKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rp
b25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNvbm5lY3Rpb24t
PmRpZFJlY2VpdmVGZXRjaERhdGEoZmV0Y2hJZGVudGlmaWVyLCBkYXRhLCBlbmNvZGVkRGF0YUxl
bmd0aCk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaEZvcm1EYXRh
KFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmIGZvcm1EYXRhKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZl
ckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNv
bm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhKGZldGNoSWRlbnRpZmllciwgZm9ybURh
dGEpOwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRGaW5pc2hGZXRjaChTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50
aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9z
d1NlcnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAg
ICAgIGNvbm5lY3Rpb24tPmRpZEZpbmlzaEZldGNoKGZldGNoSWRlbnRpZmllcik7Ci19Ci0KIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0
IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIE1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIg
c291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCiB7CiAgICAgaWYg
KGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KGRlc3RpbmF0aW9u
SWRlbnRpZmllci5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMGFiMjg5NDM2YmM3MmQzOGU0
NWVkNGM3OGJkZTI2YjEyZGVjMTIyMi4uZmY1ZDUwNTM4ZmY3MmJlYzgwYmQxMjJkMjI1MmVhYjQ2
OWViN2U2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtNDE5LDE0ICs0MTksNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCi0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNl
KFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZGlk
UmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7Ci0gICAg
dm9pZCBkaWRSZWNlaXZlRmV0Y2hEYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hG
b3JtRGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpG
ZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKLSAgICB2b2lk
IGRpZEZpbmlzaEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OkZldGNoSWRlbnRpZmllcik7Ci0gICAgdm9pZCBkaWRGYWlsRmV0Y2goV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Ci0gICAgdm9pZCBkaWROb3RIYW5kbGVGZXRj
aChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElk
ZW50aWZpZXIpOwotCiAgICAgdm9pZCBkaWRDcmVhdGVXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5l
Y3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50Jik7CiAgICAgCiAgICAgdm9pZCBwb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA4
M2ZjMWM5MjMxMjQzOGRlYzFiMjgyYzk3YjI5YzFlYzI4NmNhZTZjLi5lNGFkODA5NDlkYTM2Njgy
YjA5MGYzMjdkZjM2YTNlZjY5Y2QzYTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTE0NywxMyArMTQ3
LDYgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNl
dENhY2hlU3RvcmFnZVBhcmFtZXRlcnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRf
dCBxdW90YSwgU3RyaW5nIGNhY2hlU3RvcmFnZURpcmVjdG9yeSwgV2ViS2l0OjpTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgaGFuZGxlKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAg
ICBEaWROb3RIYW5kbGVGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyKQotICAgIERpZEZhaWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElk
ZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQot
ICAgIERpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0
Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZXNwb25zZSkKLSAgICBEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpG
ZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQot
ICAgIERpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllciwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGlu
dDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi0gICAgRGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoV2Vi
Q29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSBkYXRhKQotICAgIERpZEZpbmlzaEZldGNoKFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6
OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZp
Y2VXb3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJj
ZUlkZW50aWZpZXIsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiAKICAgICBQb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwg
c3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgc291cmNlLCBXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZTBiMjQ0MDc4ZDgzMmFl
ZGNkZDhhNjc5MTg0MTRmMjg3MGM2MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAK
QEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5o
IgorI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYobV9zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIFNlcnZpY2VXb3JrZXIsICIlcCAtIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OiIg
Zm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihtX3Nlc3Npb25JRC5pc0Fsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gU2VydmljZVdvcmtlckZl
dGNoVGFzazo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrOjpkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKK3sKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVkaXJl
Y3RSZXNwb25zZTogJXMiLCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UgeyByZXNw
b25zZSB9LCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworfQorCit2
b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlTWVzc2FnZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2UsIG5lZWRzQ29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50
aWZpZXIudG9VSW50NjQoKSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlk
UmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29k
ZWREYXRhTGVuZ3RoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vydmlj
ZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlRGF0YSB7IGRhdGEsIGVuY29kZWREYXRhTGVu
Z3RoIH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7Cit9CisKK3Zv
aWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UmIGZvcm1EYXRhKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBm
b3JtRGF0YSB9LCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworfQor
Cit2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZEZpbmlzaCgpCit7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoRmV0Y2g6IGZldGNoSWRlbnRpZmllcjogJXMiLCBt
X2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaDo6RGlkRmluaXNoIHsgfSwgbV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci50b1VJbnQ2
NCgpKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRGYWlsKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQoreworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
ImRpZEZhaWxGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAlcyIsIG1faWRlbnRpZmllci5mZXRjaElk
ZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRGYWlsIHsgZXJy
b3IgfSwgbV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30KKwordm9p
ZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWROb3RIYW5kbGUoKQoreworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImRpZE5vdEhhbmRsZUZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVzIiwg
bV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9V
SW50NjQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWM2NDEyM2ExYWE4NDZmYWU1ODZjZjVhNjVlYTU3M2QwM2JhMDE1MAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgPFdl
YkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
VHlwZXMuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2Ns
YXNzIFJlc291cmNlUmVzcG9uc2U7Cit9CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVj
dGlvbjsKK2NsYXNzIERhdGFSZWZlcmVuY2U7CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRm9ybURh
dGFSZWZlcmVuY2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrIDogcHVibGljIFJlZkNvdW50ZWQ8U2VydmljZVdvcmtlckZldGNoVGFzaz4g
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckZldGNoVGFzaz4gY3JlYXRl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0
aW9uLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2soc2Vzc2lvbklELCBXVEZNb3Zl
KGNvbm5lY3Rpb24pLCBjb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSk7IH0K
KworICAgIHZvaWQgZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9u
c2VNZXNzYWdlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZv
cm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZEZpbmlz
aCgpOworICAgIHZvaWQgZGlkRmFpbChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Cisg
ICAgdm9pZCBkaWROb3RIYW5kbGUoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKKyAgICBzdHJ1Y3QgSWRlbnRpZmllciB7
CisgICAgICAgIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlv
bklkZW50aWZpZXI7CisgICAgICAgIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50
aWZpZXI7CisgICAgICAgIAorICAgICAgICBpbmxpbmUgdW5zaWduZWQgaGFzaCgpIGNvbnN0Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGhhc2hlc1syXTsKKyAgICAgICAgICAgIGhh
c2hlc1swXSA9IFdURjo6aW50SGFzaChjb25uZWN0aW9uSWRlbnRpZmllci50b1VJbnQ2NCgpKTsK
KyAgICAgICAgICAgIGhhc2hlc1sxXSA9IFdURjo6aW50SGFzaChmZXRjaElkZW50aWZpZXIudG9V
SW50NjQoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmdIYXNoZXI6
Omhhc2hNZW1vcnkoaGFzaGVzLCBzaXplb2YoaGFzaGVzKSk7CisgICAgICAgIH0KKyAgICB9Owor
CisgICAgSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CisKK3ByaXZhdGU6CisgICAgU2VydmljZVdvcmtlckZldGNoVGFzayhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKKyAgICAgICAgOiBtX3Nlc3Npb25J
RChzZXNzaW9uSUQpCisgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikp
CisgICAgICAgICwgbV9pZGVudGlmaWVyKElkZW50aWZpZXIge2Nvbm5lY3Rpb25JZGVudGlmaWVy
LCBmZXRjaElkZW50aWZpZXJ9KQorICAgIHsgfQorCisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIElkZW50
aWZpZXIgbV9pZGVudGlmaWVyOworfTsKKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyJiBhLCBjb25zdCBTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrOjpJZGVudGlmaWVyJiBiKQoreworICAgIHJldHVybiBhLmNvbm5lY3Rpb25JZGVu
dGlmaWVyID09IGIuY29ubmVjdGlvbklkZW50aWZpZXIgJiYgIGEuZmV0Y2hJZGVudGlmaWVyID09
IGIuZmV0Y2hJZGVudGlmaWVyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworCituYW1l
c3BhY2UgV1RGIHsKKworc3RydWN0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2tJZGVudGlmaWVySGFz
aCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgV2ViS2l0OjpTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrOjpJZGVudGlmaWVyJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KKyAgICBz
dGF0aWMgYm9vbCBlcXVhbChjb25zdCBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6Oklk
ZW50aWZpZXImIGEsIGNvbnN0IFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRp
ZmllciYgYikgeyByZXR1cm4gYSA9PSBiOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
SGFzaFRyYWl0czxXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXI+IDog
R2VuZXJpY0hhc2hUcmFpdHM8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlm
aWVyPiB7CisgICAgc3RhdGljIFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRp
ZmllciBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgCisgICAgc3RhdGljIHZvaWQg
Y29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRl
bnRpZmllciYgc2xvdCkgeyBzbG90LmNvbm5lY3Rpb25JZGVudGlmaWVyID0gbWFrZU9iamVjdElk
ZW50aWZpZXI8V2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5cGU+KHN0ZDo6
bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSk7IH0KKyAgICAKKyAgICBzdGF0aWMgYm9v
bCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6Oklk
ZW50aWZpZXImIHNsb3QpIHsgcmV0dXJuIHNsb3QuY29ubmVjdGlvbklkZW50aWZpZXIudG9VSW50
NjQoKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7IH0KK307CisKK3Rl
bXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFz
azo6SWRlbnRpZmllcj4geworICAgIHR5cGVkZWYgU2VydmljZVdvcmtlckZldGNoVGFza0lkZW50
aWZpZXJIYXNoIEhhc2g7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM1NzdmMDcyYmQxODY3NzdhODlhZmJhZWJkMDk5ZjEwOTEzNThhN2EK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM1IEBA
CisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCisKK21lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sgeworICAg
IERpZE5vdEhhbmRsZSgpCisgICAgRGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9y
KQorICAgIERpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UpCisgICAgRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3Nh
Z2UpCisgICAgRGlkUmVjZWl2ZURhdGEoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRh
dGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCisgICAgRGlkUmVjZWl2ZUZvcm1EYXRhKElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UgZGF0YSkKKyAgICBEaWRGaW5pc2goKQorfQorCisjZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcAppbmRleCA1YWFjN2ZkOWRkMDkyMGViNmY4ZTU2YWY4ZjkwMTgwYzc4NDhhMjlmLi5h
NDk1MzViYTkyMjZhNmY0ZmEyZGNjZmY1M2UwMzkyM2JkM2I5NDQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMTI4LDYgKzEyOCw3IEBAIHZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjp1cGRhdGVXb3JrZXJTdGF0ZUluQ2xpZW50KFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHdvCiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjYW5jZWxGZXRjaChT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKIHsKKyAgICBT
V1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY2FuY2VsRmV0Y2g6ICVz
IiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBh
dXRvKiB3b3JrZXIgPSBzZXJ2ZXIoKS5hY3RpdmVXb3JrZXJGcm9tUmVnaXN0cmF0aW9uSUQoc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogICAgIGlmICghd29ya2VyIHx8ICF3
b3JrZXItPmlzUnVubmluZygpKQogICAgICAgICByZXR1cm47CkBAIC0xMzUsNyArMTM2LDcgQEAg
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyIHNlcnYKICAgICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
ID0gd29ya2VyLT5pZGVudGlmaWVyKCk7CiAgICAgc2VydmVyKCkucnVuU2VydmljZVdvcmtlcklm
TmVjZXNzYXJ5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKSwgdGhpcywgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcl0o
YXV0byogY29udGV4dENvbm5lY3Rpb24pIG11dGFibGUgewogICAgICAgICBpZiAod2Vha1RoaXMg
JiYgY29udGV4dENvbm5lY3Rpb24pCi0gICAgICAgICAgICBzZW5kVG9Db250ZXh0UHJvY2Vzcygq
Y29udGV4dENvbm5lY3Rpb24sIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6Q2FuY2VsRmV0Y2ggeyB0aGlzLT5pZGVudGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBmZXRjaElkZW50aWZpZXIgfSk7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24mPigqY29udGV4dENvbm5lY3Rpb24pLmNhbmNlbEZldGNo
KHRoaXMtPmlkZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRp
Zmllcik7CiAgICAgfSk7CiB9CiAKQEAgLTE0OCw3ICsxNDksNyBAQCB2b2lkIFdlYlNXU2VydmVy
Q29ubmVjdGlvbjo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTZXJ2aWNlV29ya2Vy
UmVnaXN0cgogICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50aWZpZXIgPSB3b3JrZXItPmlkZW50
aWZpZXIoKTsKICAgICBzZXJ2ZXIoKS5ydW5TZXJ2aWNlV29ya2VySWZOZWNlc3Nhcnkoc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aGlzLCBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyXShhdXRvKiBjb250ZXh0Q29u
bmVjdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBjb250ZXh0Q29ubmVj
dGlvbikKLSAgICAgICAgICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKCpjb250ZXh0Q29ubmVjdGlv
biwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDb250aW51ZURpZFJl
Y2VpdmVGZXRjaFJlc3BvbnNlIHsgdGhpcy0+aWRlbnRpZmllcigpLCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgZmV0Y2hJZGVudGlmaWVyIH0pOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8V2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJj4oKmNvbnRleHRDb25uZWN0aW9uKS5jb250aW51
ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHRoaXMtPmlkZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlm
aWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAKQEAgLTE4Nyw3ICsx
ODgsNyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aQogCiAgICAgICAgICAgICBpZiAoY29udGV4
dENvbm5lY3Rpb24pIHsKICAgICAgICAgICAgICAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgic3RhcnRGZXRjaDogU3RhcnRpbmcgZmV0Y2ggJXMgdmlhIHNlcnZp
Y2Ugd29ya2VyICVzIiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7Ci0gICAgICAgICAgICAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoKmNvbnRleHRDb25uZWN0
aW9uLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2gg
eyB0aGlzLT5pZGVudGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBmZXRjaElkZW50
aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMsIGZvcm1EYXRhLCByZWZlcnJlciB9KTsKKyAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mPigqY29u
dGV4dENvbm5lY3Rpb24pLnN0YXJ0RmV0Y2gobV9zZXNzaW9uSUQsIG1fY29udGVudENvbm5lY3Rp
b24uZ2V0KCksIHRoaXMtPmlkZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgZm9ybURhdGEsIHJlZmVycmVyKTsKICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2g6IGZldGNoSWRlbnRpZmllcjog
JXMgRGlkTm90SGFuZGxlIGJlY2F1c2UgZmFpbGVkIHRvIHJ1biBzZXJ2aWNlIHdvcmtlciIsIGZl
dGNoSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAg
ICAgICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNs
aWVudEZldGNoOjpEaWROb3RIYW5kbGUgeyB9LCBmZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7
CkBAIC0yNDMsNDQgKzI0NCw2IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzY2hlZHVs
ZUpvYkluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JEYXRhJiYgam9iRGF0YSkKICAgICBzZXJ2ZXIo
KS5zY2hlZHVsZUpvYihXVEZNb3ZlKGpvYkRhdGEpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNv
bm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UoRmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0g
ICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVu
dEZldGNoOjpEaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSB7IHJlc3BvbnNlIH0sIGZldGNoSWRl
bnRpZmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRp
ZFJlY2VpdmVGZXRjaFJlc3BvbnNlKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2VNZXNzYWdlKQotewotICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVz
cG9uc2UsIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIH0sIGZldGNoSWRl
bnRpZmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRp
ZFJlY2VpdmVGZXRjaERhdGEoRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQotewot
ICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaDo6RGlkUmVjZWl2ZURhdGEgeyBkYXRhLCBlbmNvZGVkRGF0YUxlbmd0aCB9LCBmZXRj
aElkZW50aWZpZXIudG9VSW50NjQoKSk7Ci19Ci0KLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YShGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVy
LCBjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiBmb3JtRGF0YSkKLXsKLSAgICBtX2NvbnRl
bnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRp
ZFJlY2VpdmVGb3JtRGF0YSB7IGZvcm1EYXRhIH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgp
KTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZEZpbmlzaEZldGNoKEZldGNo
SWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCi17Ci0gICAgU1dTRVJWRVJDT05ORUNUSU9OX1JF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaEZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVz
IiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBt
X2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0
Y2g6OkRpZEZpbmlzaCB7IH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZEZhaWxGZXRjaChGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICBTV1NFUlZF
UkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiZGlkRmFpbEZldGNoOiBm
ZXRjaElkZW50aWZpZXI6ICVzIiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKLSAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2
aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZEZhaWwgeyBlcnJvciB9LCBmZXRjaElkZW50aWZpZXIu
dG9VSW50NjQoKSk7Ci19Ci0KLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWROb3RIYW5k
bGVGZXRjaChGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQotewotICAgIFNXU0VSVkVS
Q09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWROb3RIYW5kbGVGZXRjaDogZmV0
Y2hJZGVudGlmaWVyOiAlcyIsIGZldGNoSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7Ci0gICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vydmlj
ZVdvcmtlckNsaWVudEZldGNoOjpEaWROb3RIYW5kbGUgeyB9LCBmZXRjaElkZW50aWZpZXIudG9V
SW50NjQoKSk7Ci19Ci0KIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0
SWRlbnRpZmllciwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdp
bikKIHsKICAgICBhdXRvKiBzb3VyY2VTZXJ2aWNlV29ya2VyID0gc2VydmVyKCkud29ya2VyQnlJ
RChzb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApp
bmRleCAyYjRhZWU2M2I1NGFjNjlmZGI0YWRmZDdjMjkxZjEwMDAwMTY1ZmE2Li44NTAwNmFiMjdj
MDc0ZDc5MmQ5NjY1YTM2ZDg2M2M1NjI4NDJlZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtl
ckZldGNoVGFzay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TV1NlcnZlci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAg
LTYzLDE0ICs2NCw2IEBAIHB1YmxpYzoKIAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRj
aFJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
LCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lkIGRp
ZFJlY2VpdmVGZXRjaEZvcm1EYXRhKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYpOwotICAgIHZvaWQgZGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZEZhaWxGZXRjaChXZWJDb3JlOjpGZXRjaElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLSAgICB2b2lkIGRpZE5v
dEhhbmRsZUZldGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7Ci0KICAgICB2b2lkIHBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBk
ZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQ
b3J0cyYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogICAgIHZvaWQgcG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
ZGVzdGluYXRpb24sIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJjZSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXgg
MDAwZTQyN2VlMGQ4ZjkwMmI1MTcwYjViN2MzODQxMWM4NWY3YjllOC4uZjI4ZDQ4YzEyMGQ2NGVm
ZjU2Y2FhMGNmMGJmZWVlYzQ0NWEzYWZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTI4LDcgKzI4LDEwIEBACiAKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNo
VGFzay5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YS5oPgpAQCAtNTcsNyArNjAsOSBAQCB1aW50NjRfdCBXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKIAog
dm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQoKQog
ewotICAgIC8vIEZJWE1FOiBEbyB3aGF0IGhlcmUuLi4/CisgICAgYXV0byBmZXRjaGVzID0gV1RG
TW92ZShtX29uZ29pbmdGZXRjaGVzKTsKKyAgICBmb3IgKGF1dG8mIGZldGNoIDogZmV0Y2hlcy52
YWx1ZXMoKSkKKyAgICAgICAgZmV0Y2gtPmRpZEZhaWwoUmVzb3VyY2VFcnJvciB7IGVycm9yRG9t
YWluV2ViS2l0SW50ZXJuYWwsIDAsIHsgfSwgIlNlcnZpY2UgV29ya2VyIGNvbnRleHQgY2xvc2Vk
Il9zIH0pOwogfQogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6aW5zdGFs
bFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0
YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKQEAg
LTExNSw2ICsxMjAsNTkgQEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnRl
cm1pbmF0ZSgpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OlRlcm1pbmF0ZVByb2Nlc3MoKSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpzdGFydEZldGNoKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUmVmPElQQzo6
Q29ubmVjdGlvbj4mJiBjb250ZW50Q29ubmVjdGlvbiwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVy
IGNvbnRlbnRGZXRjaElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEZl
dGNoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYgZGF0YSwg
Y29uc3QgU3RyaW5nJiByZWZlcnJlcikKK3sKKyAgICBhdXRvIGZldGNoSWRlbnRpZmllciA9IEZl
dGNoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICAKKyAgICBtX29uZ29pbmdGZXRjaGVzLmFk
ZChmZXRjaElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNyZWF0ZShzZXNzaW9u
SUQsIFdURk1vdmUoY29udGVudENvbm5lY3Rpb24pLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgY29udGVudEZldGNoSWRlbnRpZmllcikpOworCisgICAgQVNTRVJUKCFtX29uZ29pbmdGZXRj
aElkZW50aWZpZXJzLmNvbnRhaW5zKHtzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29udGVu
dEZldGNoSWRlbnRpZmllcn0pKTsKKyAgICBtX29uZ29pbmdGZXRjaElkZW50aWZpZXJzLmFkZCh7
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnRlbnRGZXRjaElkZW50aWZpZXJ9LCBmZXRj
aElkZW50aWZpZXIpOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgZGF0
YSwgcmVmZXJyZXIgfSk7Cit9CisKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpjYW5jZWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgY29udGVudEZldGNoSWRlbnRp
ZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit7
CisgICAgYXV0byBpdGVyYXRvciA9IG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMuZmluZCh7IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb250ZW50RmV0Y2hJZGVudGlmaWVyIH0pOworICAg
IGlmIChpdGVyYXRvciA9PSBtX29uZ29pbmdGZXRjaElkZW50aWZpZXJzLmVuZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6Q2FuY2VsRmV0Y2ggeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGl0ZXJhdG9yLT52YWx1ZSB9KTsKKworICAgIG1fb25nb2luZ0ZldGNo
ZXMucmVtb3ZlKGl0ZXJhdG9yLT52YWx1ZSk7CisgICAgbV9vbmdvaW5nRmV0Y2hJZGVudGlmaWVy
cy5yZW1vdmUoaXRlcmF0b3IpOworfQorCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbjo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50
aWZpZXIgY29udGVudEZldGNoSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb25nb2luZ0Zl
dGNoSWRlbnRpZmllcnMuZmluZCh7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb250ZW50
RmV0Y2hJZGVudGlmaWVyIH0pOworICAgIGlmIChpdGVyYXRvciA9PSBtX29uZ29pbmdGZXRjaElk
ZW50aWZpZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgc2VuZChNZXNzYWdl
czo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkNvbnRpbnVlRGlkUmVjZWl2ZUZldGNo
UmVzcG9uc2UgeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGl0ZXJhdG9yLT52YWx1ZSB9KTsKK30KKwordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFRhc2tNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGF1dG8gaXRlcmF0b3Ig
PSBtX29uZ29pbmdGZXRjaGVzLmZpbmQobWFrZU9iamVjdElkZW50aWZpZXI8RmV0Y2hJZGVudGlm
aWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0g
bV9vbmdvaW5nRmV0Y2hlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGJvb2wg
c2hvdWxkUmVtb3ZlID0gZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrOjpEaWRGYWlsOjpuYW1lKCkKKyAgICAgICAgfHwgZGVjb2Rlci5tZXNz
YWdlTmFtZSgpID09IE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWROb3RIYW5k
bGU6Om5hbWUoKQorICAgICAgICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6
OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZpbmlzaDo6bmFtZSgpCisgICAgICAgIHx8IGRl
Y29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6
RGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2U6Om5hbWUoKTsKKworICAgIGl0ZXJhdG9yLT52YWx1
ZS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisKKyAgICBpZiAoc2hv
dWxkUmVtb3ZlKSB7CisgICAgICAgIEFTU0VSVChtX29uZ29pbmdGZXRjaElkZW50aWZpZXJzLmNv
bnRhaW5zKGl0ZXJhdG9yLT52YWx1ZS0+aWRlbnRpZmllcigpKSk7CisgICAgICAgIG1fb25nb2lu
Z0ZldGNoSWRlbnRpZmllcnMucmVtb3ZlKGl0ZXJhdG9yLT52YWx1ZS0+aWRlbnRpZmllcigpKTsK
KyAgICAgICAgbV9vbmdvaW5nRmV0Y2hlcy5yZW1vdmUoaXRlcmF0b3IpOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5k
ZXggMmY4ODliMjg2YmMxZTFkZDZiNTcxMzFlNjU4NGY1YWUwZjExNDcxNS4uMjU1ZDI3YzIxMzJh
MTcwNzhjMGJiMjdmNWZiZjc0NTM1NmQ1NmU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtMjksOCArMjksMjIgQEAKIAogI2luY2x1
ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEZl
dGNoT3B0aW9uczsKK2NsYXNzIFJlc291cmNlUmVxdWVzdDsKK30KKworbmFtZXNwYWNlIElQQyB7
CitjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBT
ZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vz
czsKQEAgLTUxLDYgKzY1LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWluYXRlKCk7CiAK
KyAgICB2b2lkIHN0YXJ0RmV0Y2goUEFMOjpTZXNzaW9uSUQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+
JiYsIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNo
SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNhbmNl
bEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIHZv
aWQgY29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoVGFza01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKE5ldHdvcmtQcm9jZXNzJiwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CiAgICAgfldl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbigpOwpAQCAtNzUsNiArOTUsOCBAQCBwcml2YXRl
OgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1faXBjQ29ubmVjdGlvbjsKICAgICBSZWY8TmV0
d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CiAgICAgCisgICAgSGFzaE1hcDxTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXI+IG1f
b25nb2luZ0ZldGNoSWRlbnRpZmllcnM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50
aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrPj4gbV9vbmdvaW5nRmV0Y2hlczsKIH07
IC8vIGNsYXNzIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBjNDNlNGU1MDkwYmVkYzcxYzlkZTYz
Zjg2N2Y3NDBhOTQxZmQwZjEyLi4yNjlkNzQ5N2U0M2I5YjIxMzFlYjI3ZTdhZGI4YzllMjZkMzE5
ZmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC01NzgsNSArNTc4LDUgQEAgV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBA
bm8tdW5pZnkKIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3IubW0KIAogLy8gRGVyaXZlZCBTb3VyY2VzCi0KIEVkaXRhYmxlSW1hZ2VD
b250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorU2VydmljZVdvcmtlckZldGNoVGFza01lc3Nh
Z2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDY0MzY1NTM2ZDYxMjc0N2M2MGY2N2I4NzU3OTAzZjFlODU5MTlhZjUu
LjhkNTViNTI3OWMwZWM5Nzg4ZjUwYjUxZjkyNTE2MzY2YTJlMWFiN2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODgxLDYgKzg4MSw3
IEBACiAJCTQxNEREMzc5MjBCRjQzRjUwMDY5NTlGQiAvKiBjb20uY2lzY28ud2ViZXgucGx1Z2lu
LmdwYzY0LnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTRERDM3ODIwQkY0M0VBMDA2OTU5RkIgLyogY29tLmNpc2NvLndlYmV4LnBsdWdpbi5ncGM2
NC5zYiAqLzsgfTsKIAkJNDE0REQzN0EyMEJGNDlBNTAwNjk1OUZCIC8qIGNvbS5jaXNjby53ZWJl
eC5wbHVnaW4uZ3BjNjQuc2IgaW4gQ29weSBQbHVnLWluIFNhbmRib3ggUHJvZmlsZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0REQzNzgyMEJGNDNFQTAwNjk1OUZCIC8q
IGNvbS5jaXNjby53ZWJleC5wbHVnaW4uZ3BjNjQuc2IgKi87IH07CiAJCTQxNERFREQ3MUY5RURE
RTUwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTRERURENTFGOUVERERGMDA0N0M0MEQg
LyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oICovOyB9OworCQk0MTUxODUzNzIyMjcwNTAy
MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYgLyog
U2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgKi87IH07CiAJCTQxNTdFNEIwMjBFMkVDREYwMEE2
QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2IgaW4gQ29weSBQbHVnLWluIFNh
bmRib3ggUHJvZmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1N0U0
QUYyMEUyRUM5ODAwQTZDMEQ3IC8qIGNvbS5nb29nbGUubzFkYnJvd3NlcnBsdWdpbi5zYiAqLzsg
fTsKIAkJNDE4OTdFRDExRjQxNUQ2ODAwMTZGQTQyIC8qIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODk3
RUNEMUY0MTVENUMwMDE2RkE0MiAvKiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggKi87IH07
CiAJCTQxODk3RUQ4MUY0MTVEOEEwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODk3RUQyMUY0MTVE
ODUwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmUuaCAqLzsgfTsKQEAgLTMwMzcsNiArMzAz
OCw5IEBACiAJCTQxNEREMzc4MjBCRjQzRUEwMDY5NTlGQiAvKiBjb20uY2lzY28ud2ViZXgucGx1
Z2luLmdwYzY0LnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5jaXNjby53ZWJleC5wbHVn
aW4uZ3BjNjQuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNERFREQ1MUY5RURE
REYwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE0REVERDYxRjlFRERFMDAwNDdDNDBEIC8qIFNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxNTE4NTM1MjIyNzA0RjUwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaFRh
c2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE1MTg1MzYyMjI3MDRGNjAwNTQz
MEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckZldGNoVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxNTE4NTM4MjIyNzBGNTMwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2subWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
NTFFNUMzMUZCQjkwQTkwMEU0N0UyRCAvKiBGb3JtRGF0YVJlZmVyZW5jZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtRGF0YVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTU3ODUzMDIxMjc2QjZGMDBERDM4MDAgLyogY29weS13ZWJjb250
ZW50LXJlc291cmNlcy10by1wcml2YXRlLWhlYWRlcnMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJjb3B5
LXdlYmNvbnRlbnQtcmVzb3VyY2VzLXRvLXByaXZhdGUtaGVhZGVycy5zaCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxNTdFNEFGMjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xl
Lm8xZGJyb3dzZXJwbHVnaW4uc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5v
MWRicm93c2VycGx1Z2luLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzAxNyw2
ICs3MDIxLDkgQEAKIAkJOTNCQTA0RDkyMTUxQURDRDAwN0Y0NTVGIC8qIFNlcnZpY2VXb3JrZXIg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQxNTE4NTM2
MjIyNzA0RjYwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCAqLywKKwkJCQk0
MTUxODUzNTIyMjcwNEY1MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5oICovLAor
CQkJCTQxNTE4NTM4MjIyNzBGNTMwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1l
c3NhZ2VzLmluICovLAogCQkJCTkzQkEwNERGMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV09yaWdp
blN0b3JlLmNwcCAqLywKIAkJCQk5M0JBMDRERTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dPcmln
aW5TdG9yZS5oICovLAogCQkJCTkzQkEwNEUxMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV1NlcnZl
ckNvbm5lY3Rpb24uY3BwICovLApAQCAtMTA3OTIsNyArMTA3OTksNiBAQAogCQkJCTJEOTEzNDQ0
MjEyQ0Y5RjAwMDEyOEFGRCAvKiBOZXRzY2FwZVBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRDkyQTc5NjIxMkI2QURBMDBGNDkzRkQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDUyMTJDRjlGMDAwMTI4QUZEIC8qIE5ldHNjYXBlUGx1
Z2luU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZCRDA1ODY2MjIwQ0U4QzIwMDBCRUQ1
QyAvKiBOZXR3b3JrQWRDbGlja0F0dHJpYnV0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
REQ5RjI4MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MkYwNjBFMTE2NTQzMTg1MDBG
MzI4MUIgLyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODNGIC8qIE5ldHdvcmtN
RE5TUmVnaXN0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMTAyOCw2
ICsxMTAzNCw3IEBACiAJCQkJMkQ4NTA4QzYyMTJFMzNFRDAwMEVGNDZDIC8qIFVuaWZpZWRTb3Vy
Y2U5Ny5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDg1MDhEODIxMkUzM0VEMDAwRUY0NkMgLyog
VW5pZmllZFNvdXJjZTk4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEODUwOEM1MjEyRTMzRUQw
MDBFRjQ2QyAvKiBVbmlmaWVkU291cmNlOTkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDE1MTg1
MzcyMjI3MDUwMjAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkQ4NTA4RDIyMTJFMzNFRDAwMEVGNDZDIC8qIFVuaWZpZWRTb3VyY2UxMDAu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwCmluZGV4IDViZDgyM2Y3Nzc0ZDM5NmM0Mzg5ZDQ3YjRkYzYxMDVmYWJlYmIy
M2UuLjQyNTRjYzdmYjQ3NDdmZWFkZTljZDcyY2NhZjUzYjNhZjlmYTZhZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJG
b3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhYmFzZVByb3ZpZGVy
LmgiCkBAIC0yMjUsMTIgKzIyNiwxMiBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydgogewogICAg
IGF1dG8qIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmds
ZXRvbigpLnNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7
CiAgICAgaWYgKCFzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkpIHsKLSAgICAgICAgbV9jb25uZWN0
aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZE5v
dEhhbmRsZUZldGNoIHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmll
ciB9LCAwKTsKKyAgICAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkTm90SGFuZGxlIHsgfSwgZmV0Y2hJZGVu
dGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKCFp
c1ZhbGlkRmV0Y2gocmVxdWVzdCwgb3B0aW9ucywgc2VydmljZVdvcmtlclRocmVhZFByb3h5LT5z
Y3JpcHRVUkwoKSwgcmVmZXJyZXIpKSB7Ci0gICAgICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWROb3RIYW5kbGVGZXRjaCB7
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIgfSwgMCk7CisgICAg
ICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2s6OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2
NCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50LmNwcAppbmRleCAwNWM2OGIyNThjN2I5ZjQ5NmQyYTk5OGM1ODEyOWZlMjcwZmNh
NDU1Li45NTMwZjU0NmEwMTIzMTQyNTY0Y2VjM2E2YTk5Y2Y1Y2ZkODg5ZTAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIFdl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVSZWRpcmVjdGlvbihjb25z
dCBXZWJDb3JlOjpSZXNvdQogewogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1
cm47Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlk
UmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCByZXNwb25zZSB9LCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVSZWRpcmVj
dFJlc3BvbnNlIHsgcmVzcG9uc2UgfSwgbV9mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAK
ICAgICBjbGVhbnVwKCk7CiB9CkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmCiAgICAgaWYgKG1fbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCiAg
ICAgICAgIG1fd2FpdGluZ0ZvckNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSA9IHRy
dWU7CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpE
aWRSZWNlaXZlRmV0Y2hSZXNwb25zZSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1f
ZmV0Y2hJZGVudGlmaWVyLCByZXNwb25zZSwgbV9uZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlTWVzc2FnZSB9LCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVSZXNwb25zZSB7IHJlc3BvbnNlLCBtX25lZWRz
Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIH0sIG1fZmV0Y2hJZGVudGlmaWVyLnRv
VUludDY0KCkpOwogfQogCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRp
ZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQpAQCAtODQsNyArODQsNyBA
QCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJl
ZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZl
dGNoRGF0YSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVy
LCB7IGJ1ZmZlciB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkgfSwgMCk7
CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpEaWRSZWNlaXZlRGF0YSB7IHsgYnVmZmVyIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KGJ1ZmZl
ci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBX
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9ybURhdGFBbmRGaW5p
c2goUmVmPEZvcm1EYXRhPiYmIGZvcm1EYXRhKQpAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNo
KFJlZjxGb3JtRGF0YT4mCiAgICAgLy8gRm9yIG5vdyBhbmQgZm9yIHRoZSBjYXNlIG9mIGJsb2Jz
LCB3ZSByZWFkIGl0IHRoZXJlIGFuZCBzZW5kIHRoZSBkYXRhIHRocm91Z2ggSVBDLgogICAgIFVS
TCBibG9iVVJMID0gZm9ybURhdGEtPmFzQmxvYlVSTCgpOwogICAgIGlmIChibG9iVVJMLmlzTnVs
bCgpKSB7Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OkRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgbV9mZXRjaElkZW50aWZpZXIsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZv
cm1EYXRhKSB9IH0sIDApOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVGb3JtRGF0YSB7IElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIG1fZmV0Y2hJZGVudGlmaWVyLnRvVUlu
dDY0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMjksNyArMTI5LDcgQEAgdm9p
ZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlQmxvYkNodW5rKGNv
bnN0IGNoYXIqIGRhdGEsIHNpemUKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
RGlkUmVjZWl2ZUZldGNoRGF0YSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0
Y2hJZGVudGlmaWVyLCB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBz
aXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNpemUpIH0sIDApOworICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEg
eyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBzaXplIH0sIHN0YXRp
Y19jYXN0PGludDY0X3Q+KHNpemUpIH0sIG1fZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwog
fQogCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZpbmlzaEJsb2JM
b2FkaW5nKCkKQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQ6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpEaWRGYWlsRmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2Zl
dGNoSWRlbnRpZmllciwgZXJyb3IgfSwgMCk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGYWlsIHsgZXJyb3IgfSwgbV9mZXRjaElk
ZW50aWZpZXIudG9VSW50NjQoKSk7CiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC0xNjQsNyArMTY0
LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2goKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6RGlkRmluaXNoRmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciB9LCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZpbmlzaCB7IH0sIG1fZmV0Y2hJ
ZGVudGlmaWVyLnRvVUludDY0KCkpOwogCiAgICAgY2xlYW51cCgpOwogfQpAQCAtMTc0LDcgKzE3
NCw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkTm90SGFuZGxl
KCkKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkTm90SGFuZGxlRmV0Y2gg
eyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciB9LCAwKTsK
KyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OkRpZE5vdEhhbmRsZSB7IH0sIG1fZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogCiAgICAg
Y2xlYW51cCgpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363164</attachid>
            <date>2019-02-27 17:26:22 -0800</date>
            <delta_ts>2019-02-27 19:07:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195130-20190227172616.patch</filename>
            <type>text/plain</type>
            <size>54271</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU2N2M0YzFmMzVkMDE5MDM4
OWJkNzFmYWYzMTA2ZjY2NGM0ZWU1YTMuLjE4MDIyOTcwZWVmMWY4ZTI4ODQ1MjFhMzdlN2RlNDZj
ZTNiNTViMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTktMDItMjcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTUxMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIGlzIGFkZGVkIHRvIHJlcHJlc2VudCBOZXR3b3Jr
UHJvY2VzcyBzaWRlIG9mIGFuIG9uZ29pbmcgZmV0Y2ggaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3
b3JrZXIuCisgICAgICAgIFRoaXMgcGF0Y2ggc2hvdWxkIG5vdCBjaGFuZ2UgZXhpc3RpbmcgYmVo
YXZpb3IuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZEZhaWxGZXRjaCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWROb3RIYW5kbGVGZXRjaCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJl
c3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZFJl
Y2VpdmVGZXRjaFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmRpZFJlY2VpdmVGZXRjaERhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkRmluaXNoRmV0Y2gpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNo
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0
Y2hSZWRpcmVjdFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoRGF0YSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OmRpZEZpbmlzaEZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRGYWlsRmV0Y2gpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5vdEhhbmRsZUZldGNoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjYW5jZWxGZXRjaCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y29udGludWVEaWRS
ZWNlaXZlRmV0Y2hSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoVGFza01lc3NhZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
Lmg6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVkaXJlY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpk
aWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2Vp
dmVCbG9iQ2h1bmspOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudDo6ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6ZGlkTm90SGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlZGlyZWN0UmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNl
aXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpk
aWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OmRpZFJlY2VpdmVGb3JtRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s6OmRpZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpk
aWROb3RIYW5kbGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlckZldGNoVGFzay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdv
cmtlckZldGNoVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZl
dGNoVGFzazo6SWRlbnRpZmllcjo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tJZGVudGlmaWVySGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tJZGVudGlmaWVySGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdl
YktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllcj46OmVtcHR5VmFsdWUpOgor
ICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6
SWRlbnRpZmllcj46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hU
cmFpdHM8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyPjo6aXNEZWxl
dGVkVmFsdWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTktMDItMjYgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgc2VydmljZSB3b3Jr
ZXIgcmVzcG9uc2UgdmFsaWRhdGlvbiBmcm9tIHRoZSBzZXJ2aWNlIHdvcmtlciBjbGllbnQgdG8g
dGhlIHNlcnZpY2Ugd29ya2VyIGl0c2VsZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggYmNiODc2NDUw
YzNiMzc1MWExMjgwNGNiZDU0NTc0NWYzODA5OTViMy4uMDRlYzIzNzlhY2VkYTI5NTljNmIzMjkz
YWYxN2NmMGE1OTU5ZTE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xMTEsNiArMTExLDcgQEAg
c2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2Nr
ZXRTdHJlYW0ubWVzc2FnZXMuaW4KIAorICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAgICAgTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CmluZGV4IDUxN2YzZWQ1Y2ZhMWQ1ZTg5YmNjNGRkMDIzMDFhODZiM2RiNDk1ZmUuLjlmY2Y3
NDhhYjg2YzI1NGJmNDljNWQzNWI0NzdmOWUyMTlhYzkzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI0LDYgKzI0LDcgQEAgJChQUk9K
RUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
b2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAppbmRleCA4Yjc1YzNiZTRhMGQwYTdlMzkzZjU5ZGIwYzAxMzVlODU1MmZiZmRhLi4xYWE5NzAz
MWQ4ZjkwZjY3NmEyM2QwYTMxYTZkMmI0YWVkM2Y3ZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTgwLDYgKzgwLDggQEAgJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VjSXRlbVNoaW1Qcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2hNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2hNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2Vp
dmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2Vy
dmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9T
bWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYmZjZjAwODEwY2IwMmJkNTlhMTYw
NjA4NzMyYTY0ODQ0MzFkMjFkYy4uYzM1ZTZiOTdhMDM0YTA3YmMxNjkxNThlYTE1OWUxNmU2ZWZk
NjI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTMxLDYgKzEzMSw3IEBAIE1F
U1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZVdlYkluc3BlY3RvclVJIFwKICAgICBTZWNJ
dGVtU2hpbVByb3h5IFwKICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2ggXAorICAgIFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2sgXAogICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXAog
ICAgIFN0b3JhZ2VBcmVhTWFwIFwKICAgICBTdG9yYWdlTWFuYWdlciBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCmluZGV4IGMzMDBhYzEwYjlhMmVhYjEyZWQ0NjU3NTI4NTc0Yzk3MjA4NTYw
MzUuLmQwNzFkZTUzZWQwY2YzZmUwNjU5ZjRkYjQwOGViNGY3ZWI4NzVkM2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Nv
Y2tldFN0cmVhbU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWQuaCIKICNpbmNsdWRlICJQ
cmVjb25uZWN0VGFzay5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVy
cm9ycy5oIgogI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIgpAQCAtMTgxLDEz
ICsxODIsMjAgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAgICAgICAgICAgIHN3Q29ubmVj
dGlvbi0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgCisKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IG1f
bmV0d29ya1Byb2Nlc3MtPmNvbm5lY3Rpb25Ub0NvbnRleHRQcm9jZXNzRnJvbUlQQ0Nvbm5lY3Rp
b24oY29ubmVjdGlvbikpIHsKICAgICAgICAgICAgIGNvbnRleHRDb25uZWN0aW9uLT5kaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CisgICAgICAgIGlmIChhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IG1fbmV0d29ya1Byb2Nl
c3MtPmNvbm5lY3Rpb25Ub0NvbnRleHRQcm9jZXNzRnJvbUlQQ0Nvbm5lY3Rpb24oY29ubmVjdGlv
bikpIHsKKyAgICAgICAgICAgIGNvbnRleHRDb25uZWN0aW9uLT5kaWRSZWNlaXZlRmV0Y2hUYXNr
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgIH0KICNlbmRpZgogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDYzODgx
MzQ5YmJiNTJmNTUyZTNhYTFmN2NhZDQ4NTQ2N2U5YTE1N2MuLjUwYjk2ZWI3ODY0ZjkzYmVlMzI0
OWE0ZDRlMTk0Mzg4Mzk3Yjc3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yMTY0LDQ4ICsyMTY0LDYgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIHMKICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rp
b25Ub05ldHdvcmtQcm9jZXNzKHNlY3VyaXR5T3JpZ2luKSwgMCk7CiB9CiAKLXZvaWQgTmV0d29y
a1Byb2Nlc3M6OmRpZEZhaWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9
IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQot
ICAgICAgICBjb25uZWN0aW9uLT5kaWRGYWlsRmV0Y2goZmV0Y2hJZGVudGlmaWVyLCBlcnJvcik7
Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZE5vdEhhbmRsZUZldGNoKFNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRp
ZmllciBmZXRjaElkZW50aWZpZXIpCi17Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3
U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAg
ICAgY29ubmVjdGlvbi0+ZGlkTm90SGFuZGxlRmV0Y2goZmV0Y2hJZGVudGlmaWVyKTsKLX0KLQot
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZShTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJD
b25uZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICBjb25u
ZWN0aW9uLT5kaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNlKGZldGNoSWRlbnRpZmllciwg
cmVzcG9uc2UpOwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZXNw
b25zZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlTWVzc2FnZSkKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25u
ZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICBjb25uZWN0
aW9uLT5kaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShmZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlLCBu
ZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7Ci19Ci0KLXZvaWQgTmV0d29y
a1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaERhdGEoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRp
ZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRh
TGVuZ3RoKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rp
b25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNvbm5lY3Rpb24t
PmRpZFJlY2VpdmVGZXRjaERhdGEoZmV0Y2hJZGVudGlmaWVyLCBkYXRhLCBlbmNvZGVkRGF0YUxl
bmd0aCk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaEZvcm1EYXRh
KFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmIGZvcm1EYXRhKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZl
ckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNv
bm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhKGZldGNoSWRlbnRpZmllciwgZm9ybURh
dGEpOwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRGaW5pc2hGZXRjaChTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50
aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9z
d1NlcnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAg
ICAgIGNvbm5lY3Rpb24tPmRpZEZpbmlzaEZldGNoKGZldGNoSWRlbnRpZmllcik7Ci19Ci0KIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0
IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIE1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIg
c291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCiB7CiAgICAgaWYg
KGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KGRlc3RpbmF0aW9u
SWRlbnRpZmllci5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMGFiMjg5NDM2YmM3MmQzOGU0
NWVkNGM3OGJkZTI2YjEyZGVjMTIyMi4uZmY1ZDUwNTM4ZmY3MmJlYzgwYmQxMjJkMjI1MmVhYjQ2
OWViN2U2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtNDE5LDE0ICs0MTksNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCi0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNl
KFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZGlk
UmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7Ci0gICAg
dm9pZCBkaWRSZWNlaXZlRmV0Y2hEYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hG
b3JtRGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpG
ZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKLSAgICB2b2lk
IGRpZEZpbmlzaEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OkZldGNoSWRlbnRpZmllcik7Ci0gICAgdm9pZCBkaWRGYWlsRmV0Y2goV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Ci0gICAgdm9pZCBkaWROb3RIYW5kbGVGZXRj
aChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElk
ZW50aWZpZXIpOwotCiAgICAgdm9pZCBkaWRDcmVhdGVXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5l
Y3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50Jik7CiAgICAgCiAgICAgdm9pZCBwb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA4
M2ZjMWM5MjMxMjQzOGRlYzFiMjgyYzk3YjI5YzFlYzI4NmNhZTZjLi5lNGFkODA5NDlkYTM2Njgy
YjA5MGYzMjdkZjM2YTNlZjY5Y2QzYTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTE0NywxMyArMTQ3
LDYgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNl
dENhY2hlU3RvcmFnZVBhcmFtZXRlcnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRf
dCBxdW90YSwgU3RyaW5nIGNhY2hlU3RvcmFnZURpcmVjdG9yeSwgV2ViS2l0OjpTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgaGFuZGxlKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAg
ICBEaWROb3RIYW5kbGVGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyKQotICAgIERpZEZhaWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElk
ZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQot
ICAgIERpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0
Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZXNwb25zZSkKLSAgICBEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpG
ZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQot
ICAgIERpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllciwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGlu
dDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi0gICAgRGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoV2Vi
Q29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSBkYXRhKQotICAgIERpZEZpbmlzaEZldGNoKFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6
OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZp
Y2VXb3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJj
ZUlkZW50aWZpZXIsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiAKICAgICBQb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwg
c3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgc291cmNlLCBXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZTBiMjQ0MDc4ZDgzMmFl
ZGNkZDhhNjc5MTg0MTRmMjg3MGM2MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAK
QEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5o
IgorI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYobV9zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIFNlcnZpY2VXb3JrZXIsICIlcCAtIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OiIg
Zm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihtX3Nlc3Npb25JRC5pc0Fsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gU2VydmljZVdvcmtlckZl
dGNoVGFzazo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrOjpkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKK3sKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVkaXJl
Y3RSZXNwb25zZTogJXMiLCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UgeyByZXNw
b25zZSB9LCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworfQorCit2
b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlTWVzc2FnZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2UsIG5lZWRzQ29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50
aWZpZXIudG9VSW50NjQoKSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlk
UmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29k
ZWREYXRhTGVuZ3RoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vydmlj
ZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlRGF0YSB7IGRhdGEsIGVuY29kZWREYXRhTGVu
Z3RoIH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7Cit9CisKK3Zv
aWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UmIGZvcm1EYXRhKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBm
b3JtRGF0YSB9LCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworfQor
Cit2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZEZpbmlzaCgpCit7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoRmV0Y2g6IGZldGNoSWRlbnRpZmllcjogJXMiLCBt
X2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaDo6RGlkRmluaXNoIHsgfSwgbV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci50b1VJbnQ2
NCgpKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRGYWlsKGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yKQoreworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
ImRpZEZhaWxGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAlcyIsIG1faWRlbnRpZmllci5mZXRjaElk
ZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRGYWlsIHsgZXJy
b3IgfSwgbV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30KKwordm9p
ZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWROb3RIYW5kbGUoKQoreworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImRpZE5vdEhhbmRsZUZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVzIiwg
bV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9V
SW50NjQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWM2NDEyM2ExYWE4NDZmYWU1ODZjZjVhNjVlYTU3M2QwM2JhMDE1MAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgPFdl
YkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
VHlwZXMuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2Ns
YXNzIFJlc291cmNlUmVzcG9uc2U7Cit9CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVj
dGlvbjsKK2NsYXNzIERhdGFSZWZlcmVuY2U7CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRm9ybURh
dGFSZWZlcmVuY2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrIDogcHVibGljIFJlZkNvdW50ZWQ8U2VydmljZVdvcmtlckZldGNoVGFzaz4g
eworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckZldGNoVGFzaz4gY3JlYXRl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0
aW9uLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2soc2Vzc2lvbklELCBXVEZNb3Zl
KGNvbm5lY3Rpb24pLCBjb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSk7IH0K
KworICAgIHZvaWQgZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9u
c2VNZXNzYWdlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZv
cm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZEZpbmlz
aCgpOworICAgIHZvaWQgZGlkRmFpbChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Cisg
ICAgdm9pZCBkaWROb3RIYW5kbGUoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKKyAgICBzdHJ1Y3QgSWRlbnRpZmllciB7
CisgICAgICAgIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlv
bklkZW50aWZpZXI7CisgICAgICAgIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50
aWZpZXI7CisgICAgICAgIAorICAgICAgICBpbmxpbmUgdW5zaWduZWQgaGFzaCgpIGNvbnN0Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGhhc2hlc1syXTsKKyAgICAgICAgICAgIGhh
c2hlc1swXSA9IFdURjo6aW50SGFzaChjb25uZWN0aW9uSWRlbnRpZmllci50b1VJbnQ2NCgpKTsK
KyAgICAgICAgICAgIGhhc2hlc1sxXSA9IFdURjo6aW50SGFzaChmZXRjaElkZW50aWZpZXIudG9V
SW50NjQoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmdIYXNoZXI6
Omhhc2hNZW1vcnkoaGFzaGVzLCBzaXplb2YoaGFzaGVzKSk7CisgICAgICAgIH0KKyAgICB9Owor
CisgICAgSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CisKK3ByaXZhdGU6CisgICAgU2VydmljZVdvcmtlckZldGNoVGFzayhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKKyAgICAgICAgOiBtX3Nlc3Npb25J
RChzZXNzaW9uSUQpCisgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikp
CisgICAgICAgICwgbV9pZGVudGlmaWVyKElkZW50aWZpZXIge2Nvbm5lY3Rpb25JZGVudGlmaWVy
LCBmZXRjaElkZW50aWZpZXJ9KQorICAgIHsgfQorCisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIElkZW50
aWZpZXIgbV9pZGVudGlmaWVyOworfTsKKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyJiBhLCBjb25zdCBTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrOjpJZGVudGlmaWVyJiBiKQoreworICAgIHJldHVybiBhLmNvbm5lY3Rpb25JZGVu
dGlmaWVyID09IGIuY29ubmVjdGlvbklkZW50aWZpZXIgJiYgIGEuZmV0Y2hJZGVudGlmaWVyID09
IGIuZmV0Y2hJZGVudGlmaWVyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworCituYW1l
c3BhY2UgV1RGIHsKKworc3RydWN0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2tJZGVudGlmaWVySGFz
aCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgV2ViS2l0OjpTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrOjpJZGVudGlmaWVyJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KKyAgICBz
dGF0aWMgYm9vbCBlcXVhbChjb25zdCBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6Oklk
ZW50aWZpZXImIGEsIGNvbnN0IFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRp
ZmllciYgYikgeyByZXR1cm4gYSA9PSBiOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
SGFzaFRyYWl0czxXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXI+IDog
R2VuZXJpY0hhc2hUcmFpdHM8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlm
aWVyPiB7CisgICAgc3RhdGljIFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRp
ZmllciBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9CisgICAgCisgICAgc3RhdGljIHZvaWQg
Y29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRl
bnRpZmllciYgc2xvdCkgeyBzbG90LmNvbm5lY3Rpb25JZGVudGlmaWVyID0gbWFrZU9iamVjdElk
ZW50aWZpZXI8V2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5cGU+KHN0ZDo6
bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSk7IH0KKyAgICAKKyAgICBzdGF0aWMgYm9v
bCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6Oklk
ZW50aWZpZXImIHNsb3QpIHsgcmV0dXJuIHNsb3QuY29ubmVjdGlvbklkZW50aWZpZXIudG9VSW50
NjQoKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7IH0KK307CisKK3Rl
bXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFz
azo6SWRlbnRpZmllcj4geworICAgIHR5cGVkZWYgU2VydmljZVdvcmtlckZldGNoVGFza0lkZW50
aWZpZXJIYXNoIEhhc2g7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM1NzdmMDcyYmQxODY3NzdhODlhZmJhZWJkMDk5ZjEwOTEzNThhN2EK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM1IEBA
CisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCisKK21lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sgeworICAg
IERpZE5vdEhhbmRsZSgpCisgICAgRGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9y
KQorICAgIERpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UpCisgICAgRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3Nh
Z2UpCisgICAgRGlkUmVjZWl2ZURhdGEoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRh
dGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCisgICAgRGlkUmVjZWl2ZUZvcm1EYXRhKElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UgZGF0YSkKKyAgICBEaWRGaW5pc2goKQorfQorCisjZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcAppbmRleCA1YWFjN2ZkOWRkMDkyMGViNmY4ZTU2YWY4ZjkwMTgwYzc4NDhhMjlmLi5h
NDk1MzViYTkyMjZhNmY0ZmEyZGNjZmY1M2UwMzkyM2JkM2I5NDQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMTI4LDYgKzEyOCw3IEBAIHZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjp1cGRhdGVXb3JrZXJTdGF0ZUluQ2xpZW50KFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHdvCiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjYW5jZWxGZXRjaChT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKIHsKKyAgICBT
V1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY2FuY2VsRmV0Y2g6ICVz
IiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBh
dXRvKiB3b3JrZXIgPSBzZXJ2ZXIoKS5hY3RpdmVXb3JrZXJGcm9tUmVnaXN0cmF0aW9uSUQoc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogICAgIGlmICghd29ya2VyIHx8ICF3
b3JrZXItPmlzUnVubmluZygpKQogICAgICAgICByZXR1cm47CkBAIC0xMzUsNyArMTM2LDcgQEAg
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyIHNlcnYKICAgICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
ID0gd29ya2VyLT5pZGVudGlmaWVyKCk7CiAgICAgc2VydmVyKCkucnVuU2VydmljZVdvcmtlcklm
TmVjZXNzYXJ5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKSwgdGhpcywgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcl0o
YXV0byogY29udGV4dENvbm5lY3Rpb24pIG11dGFibGUgewogICAgICAgICBpZiAod2Vha1RoaXMg
JiYgY29udGV4dENvbm5lY3Rpb24pCi0gICAgICAgICAgICBzZW5kVG9Db250ZXh0UHJvY2Vzcygq
Y29udGV4dENvbm5lY3Rpb24sIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6Q2FuY2VsRmV0Y2ggeyB0aGlzLT5pZGVudGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBmZXRjaElkZW50aWZpZXIgfSk7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24mPigqY29udGV4dENvbm5lY3Rpb24pLmNhbmNlbEZldGNo
KHRoaXMtPmlkZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRp
Zmllcik7CiAgICAgfSk7CiB9CiAKQEAgLTE0OCw3ICsxNDksNyBAQCB2b2lkIFdlYlNXU2VydmVy
Q29ubmVjdGlvbjo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTZXJ2aWNlV29ya2Vy
UmVnaXN0cgogICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50aWZpZXIgPSB3b3JrZXItPmlkZW50
aWZpZXIoKTsKICAgICBzZXJ2ZXIoKS5ydW5TZXJ2aWNlV29ya2VySWZOZWNlc3Nhcnkoc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aGlzLCBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyXShhdXRvKiBjb250ZXh0Q29u
bmVjdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBjb250ZXh0Q29ubmVj
dGlvbikKLSAgICAgICAgICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKCpjb250ZXh0Q29ubmVjdGlv
biwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDb250aW51ZURpZFJl
Y2VpdmVGZXRjaFJlc3BvbnNlIHsgdGhpcy0+aWRlbnRpZmllcigpLCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgZmV0Y2hJZGVudGlmaWVyIH0pOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8V2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJj4oKmNvbnRleHRDb25uZWN0aW9uKS5jb250aW51
ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHRoaXMtPmlkZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlm
aWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAKQEAgLTE4Nyw3ICsx
ODgsNyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aQogCiAgICAgICAgICAgICBpZiAoY29udGV4
dENvbm5lY3Rpb24pIHsKICAgICAgICAgICAgICAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgic3RhcnRGZXRjaDogU3RhcnRpbmcgZmV0Y2ggJXMgdmlhIHNlcnZp
Y2Ugd29ya2VyICVzIiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7Ci0gICAgICAgICAgICAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoKmNvbnRleHRDb25uZWN0
aW9uLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2gg
eyB0aGlzLT5pZGVudGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBmZXRjaElkZW50
aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMsIGZvcm1EYXRhLCByZWZlcnJlciB9KTsKKyAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mPigqY29u
dGV4dENvbm5lY3Rpb24pLnN0YXJ0RmV0Y2gobV9zZXNzaW9uSUQsIG1fY29udGVudENvbm5lY3Rp
b24uZ2V0KCksIHRoaXMtPmlkZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgZm9ybURhdGEsIHJlZmVycmVyKTsKICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2g6IGZldGNoSWRlbnRpZmllcjog
JXMgRGlkTm90SGFuZGxlIGJlY2F1c2UgZmFpbGVkIHRvIHJ1biBzZXJ2aWNlIHdvcmtlciIsIGZl
dGNoSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAg
ICAgICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNs
aWVudEZldGNoOjpEaWROb3RIYW5kbGUgeyB9LCBmZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7
CkBAIC0yNDMsNDQgKzI0NCw2IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzY2hlZHVs
ZUpvYkluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JEYXRhJiYgam9iRGF0YSkKICAgICBzZXJ2ZXIo
KS5zY2hlZHVsZUpvYihXVEZNb3ZlKGpvYkRhdGEpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNv
bm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UoRmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0g
ICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVu
dEZldGNoOjpEaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSB7IHJlc3BvbnNlIH0sIGZldGNoSWRl
bnRpZmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRp
ZFJlY2VpdmVGZXRjaFJlc3BvbnNlKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2VNZXNzYWdlKQotewotICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVz
cG9uc2UsIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIH0sIGZldGNoSWRl
bnRpZmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRp
ZFJlY2VpdmVGZXRjaERhdGEoRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQotewot
ICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaDo6RGlkUmVjZWl2ZURhdGEgeyBkYXRhLCBlbmNvZGVkRGF0YUxlbmd0aCB9LCBmZXRj
aElkZW50aWZpZXIudG9VSW50NjQoKSk7Ci19Ci0KLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YShGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVy
LCBjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiBmb3JtRGF0YSkKLXsKLSAgICBtX2NvbnRl
bnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRp
ZFJlY2VpdmVGb3JtRGF0YSB7IGZvcm1EYXRhIH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgp
KTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZEZpbmlzaEZldGNoKEZldGNo
SWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCi17Ci0gICAgU1dTRVJWRVJDT05ORUNUSU9OX1JF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaEZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVz
IiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBt
X2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0
Y2g6OkRpZEZpbmlzaCB7IH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZEZhaWxGZXRjaChGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICBTV1NFUlZF
UkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiZGlkRmFpbEZldGNoOiBm
ZXRjaElkZW50aWZpZXI6ICVzIiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKLSAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2
aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZEZhaWwgeyBlcnJvciB9LCBmZXRjaElkZW50aWZpZXIu
dG9VSW50NjQoKSk7Ci19Ci0KLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWROb3RIYW5k
bGVGZXRjaChGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQotewotICAgIFNXU0VSVkVS
Q09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWROb3RIYW5kbGVGZXRjaDogZmV0
Y2hJZGVudGlmaWVyOiAlcyIsIGZldGNoSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7Ci0gICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vydmlj
ZVdvcmtlckNsaWVudEZldGNoOjpEaWROb3RIYW5kbGUgeyB9LCBmZXRjaElkZW50aWZpZXIudG9V
SW50NjQoKSk7Ci19Ci0KIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0
SWRlbnRpZmllciwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdp
bikKIHsKICAgICBhdXRvKiBzb3VyY2VTZXJ2aWNlV29ya2VyID0gc2VydmVyKCkud29ya2VyQnlJ
RChzb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApp
bmRleCAyYjRhZWU2M2I1NGFjNjlmZGI0YWRmZDdjMjkxZjEwMDAwMTY1ZmE2Li44NTAwNmFiMjdj
MDc0ZDc5MmQ5NjY1YTM2ZDg2M2M1NjI4NDJlZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtl
ckZldGNoVGFzay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TV1NlcnZlci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAg
LTYzLDE0ICs2NCw2IEBAIHB1YmxpYzoKIAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRj
aFJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
LCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lkIGRp
ZFJlY2VpdmVGZXRjaEZvcm1EYXRhKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYpOwotICAgIHZvaWQgZGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZEZhaWxGZXRjaChXZWJDb3JlOjpGZXRjaElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLSAgICB2b2lkIGRpZE5v
dEhhbmRsZUZldGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7Ci0KICAgICB2b2lkIHBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBk
ZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQ
b3J0cyYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogICAgIHZvaWQgcG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
ZGVzdGluYXRpb24sIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJjZSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXgg
MDAwZTQyN2VlMGQ4ZjkwMmI1MTcwYjViN2MzODQxMWM4NWY3YjllOC4uZjI4ZDQ4YzEyMGQ2NGVm
ZjU2Y2FhMGNmMGJmZWVlYzQ0NWEzYWZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTI4LDcgKzI4LDEwIEBACiAKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNo
VGFzay5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YS5oPgpAQCAtNTcsNyArNjAsOSBAQCB1aW50NjRfdCBXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKIAog
dm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQoKQog
ewotICAgIC8vIEZJWE1FOiBEbyB3aGF0IGhlcmUuLi4/CisgICAgYXV0byBmZXRjaGVzID0gV1RG
TW92ZShtX29uZ29pbmdGZXRjaGVzKTsKKyAgICBmb3IgKGF1dG8mIGZldGNoIDogZmV0Y2hlcy52
YWx1ZXMoKSkKKyAgICAgICAgZmV0Y2gtPmRpZEZhaWwoUmVzb3VyY2VFcnJvciB7IGVycm9yRG9t
YWluV2ViS2l0SW50ZXJuYWwsIDAsIHsgfSwgIlNlcnZpY2UgV29ya2VyIGNvbnRleHQgY2xvc2Vk
Il9zIH0pOwogfQogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6aW5zdGFs
bFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0
YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKQEAg
LTExNSw2ICsxMjAsNTkgQEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnRl
cm1pbmF0ZSgpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OlRlcm1pbmF0ZVByb2Nlc3MoKSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpzdGFydEZldGNoKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUmVmPElQQzo6
Q29ubmVjdGlvbj4mJiBjb250ZW50Q29ubmVjdGlvbiwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVy
IGNvbnRlbnRGZXRjaElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEZl
dGNoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYgZGF0YSwg
Y29uc3QgU3RyaW5nJiByZWZlcnJlcikKK3sKKyAgICBhdXRvIGZldGNoSWRlbnRpZmllciA9IEZl
dGNoSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICAKKyAgICBtX29uZ29pbmdGZXRjaGVzLmFk
ZChmZXRjaElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNyZWF0ZShzZXNzaW9u
SUQsIFdURk1vdmUoY29udGVudENvbm5lY3Rpb24pLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgY29udGVudEZldGNoSWRlbnRpZmllcikpOworCisgICAgQVNTRVJUKCFtX29uZ29pbmdGZXRj
aElkZW50aWZpZXJzLmNvbnRhaW5zKHtzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29udGVu
dEZldGNoSWRlbnRpZmllcn0pKTsKKyAgICBtX29uZ29pbmdGZXRjaElkZW50aWZpZXJzLmFkZCh7
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnRlbnRGZXRjaElkZW50aWZpZXJ9LCBmZXRj
aElkZW50aWZpZXIpOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgZGF0
YSwgcmVmZXJyZXIgfSk7Cit9CisKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpjYW5jZWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgY29udGVudEZldGNoSWRlbnRp
ZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit7
CisgICAgYXV0byBpdGVyYXRvciA9IG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMuZmluZCh7IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb250ZW50RmV0Y2hJZGVudGlmaWVyIH0pOworICAg
IGlmIChpdGVyYXRvciA9PSBtX29uZ29pbmdGZXRjaElkZW50aWZpZXJzLmVuZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6Q2FuY2VsRmV0Y2ggeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGl0ZXJhdG9yLT52YWx1ZSB9KTsKKworICAgIG1fb25nb2luZ0ZldGNo
ZXMucmVtb3ZlKGl0ZXJhdG9yLT52YWx1ZSk7CisgICAgbV9vbmdvaW5nRmV0Y2hJZGVudGlmaWVy
cy5yZW1vdmUoaXRlcmF0b3IpOworfQorCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbjo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50
aWZpZXIgY29udGVudEZldGNoSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb25nb2luZ0Zl
dGNoSWRlbnRpZmllcnMuZmluZCh7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb250ZW50
RmV0Y2hJZGVudGlmaWVyIH0pOworICAgIGlmIChpdGVyYXRvciA9PSBtX29uZ29pbmdGZXRjaElk
ZW50aWZpZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgc2VuZChNZXNzYWdl
czo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkNvbnRpbnVlRGlkUmVjZWl2ZUZldGNo
UmVzcG9uc2UgeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGl0ZXJhdG9yLT52YWx1ZSB9KTsKK30KKwordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFRhc2tNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGF1dG8gaXRlcmF0b3Ig
PSBtX29uZ29pbmdGZXRjaGVzLmZpbmQobWFrZU9iamVjdElkZW50aWZpZXI8RmV0Y2hJZGVudGlm
aWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0g
bV9vbmdvaW5nRmV0Y2hlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGJvb2wg
c2hvdWxkUmVtb3ZlID0gZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrOjpEaWRGYWlsOjpuYW1lKCkKKyAgICAgICAgfHwgZGVjb2Rlci5tZXNz
YWdlTmFtZSgpID09IE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWROb3RIYW5k
bGU6Om5hbWUoKQorICAgICAgICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6
OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZpbmlzaDo6bmFtZSgpCisgICAgICAgIHx8IGRl
Y29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6
RGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2U6Om5hbWUoKTsKKworICAgIGl0ZXJhdG9yLT52YWx1
ZS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisKKyAgICBpZiAoc2hv
dWxkUmVtb3ZlKSB7CisgICAgICAgIEFTU0VSVChtX29uZ29pbmdGZXRjaElkZW50aWZpZXJzLmNv
bnRhaW5zKGl0ZXJhdG9yLT52YWx1ZS0+aWRlbnRpZmllcigpKSk7CisgICAgICAgIG1fb25nb2lu
Z0ZldGNoSWRlbnRpZmllcnMucmVtb3ZlKGl0ZXJhdG9yLT52YWx1ZS0+aWRlbnRpZmllcigpKTsK
KyAgICAgICAgbV9vbmdvaW5nRmV0Y2hlcy5yZW1vdmUoaXRlcmF0b3IpOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5k
ZXggMmY4ODliMjg2YmMxZTFkZDZiNTcxMzFlNjU4NGY1YWUwZjExNDcxNS4uMjU1ZDI3YzIxMzJh
MTcwNzhjMGJiMjdmNWZiZjc0NTM1NmQ1NmU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtMjksOCArMjksMjIgQEAKIAogI2luY2x1
ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEZl
dGNoT3B0aW9uczsKK2NsYXNzIFJlc291cmNlUmVxdWVzdDsKK30KKworbmFtZXNwYWNlIElQQyB7
CitjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBT
ZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2Vz
czsKQEAgLTUxLDYgKzY1LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdGVybWluYXRlKCk7CiAK
KyAgICB2b2lkIHN0YXJ0RmV0Y2goUEFMOjpTZXNzaW9uSUQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+
JiYsIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNo
SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNhbmNl
bEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIHZv
aWQgY29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoVGFza01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKE5ldHdvcmtQcm9jZXNzJiwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CiAgICAgfldl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbigpOwpAQCAtNzUsNiArOTUsOCBAQCBwcml2YXRl
OgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1faXBjQ29ubmVjdGlvbjsKICAgICBSZWY8TmV0
d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CiAgICAgCisgICAgSGFzaE1hcDxTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXI+IG1f
b25nb2luZ0ZldGNoSWRlbnRpZmllcnM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50
aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrPj4gbV9vbmdvaW5nRmV0Y2hlczsKIH07
IC8vIGNsYXNzIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDU5Y2VmODNhNTIzOWVlYTBjYTE5N2Y2OGNiMzcyMDY3
Yjk3OWUwMjkuLmFjYzMxYzAwZGJjZTk5NWRiZWUwZGNiZjc3NThjMmMyYzAyOWJjOTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dApAQCAtNTYsNiArNTYsNyBAQCBOZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtC
bG9iUmVnaXN0cnkuY3BwCiAKIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9DbGllbnQuY3BwCiAKK05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckZldGNoVGFzay5jcHAKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmln
aW5TdG9yZS5jcHAgQG5vLXVuaWZ5CiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQKaW5kZXggYzQzZTRlNTA5MGJlZGM3MWM5ZGU2M2Y4NjdmNzQwYTk0MWZkMGYx
Mi4uMjY5ZDc0OTdlNDNiOWIyMTMxZWIyN2U3YWRiOGM5ZTI2ZDMxOWZjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dApAQCAtNTc4LDUgKzU3OCw1IEBAIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gQG5vLXVuaWZ5CiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1t
CiAKIC8vIERlcml2ZWQgU291cmNlcwotCiBFZGl0YWJsZUltYWdlQ29udHJvbGxlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKK1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2
NDM2NTUzNmQ2MTI3NDdjNjBmNjdiODc1NzkwM2YxZTg1OTE5YWY1Li41YjYwYWZkNDVmOTYwOGM5
ZTliMjIzZmUyNWU2YzEyMzk2YmM2Y2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMwMzcsNiArMzAzNyw5IEBACiAJCTQxNEREMzc4
MjBCRjQzRUEwMDY5NTlGQiAvKiBjb20uY2lzY28ud2ViZXgucGx1Z2luLmdwYzY0LnNiICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IGNvbS5jaXNjby53ZWJleC5wbHVnaW4uZ3BjNjQuc2I7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNERFREQ1MUY5RUREREYwMDQ3QzQwRCAvKiBTZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDE0REVERDYxRjlFRERFMDAwNDdDNDBEIC8qIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNTE4NTM1MjIy
NzA0RjUwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDE1MTg1MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Vy
dmljZVdvcmtlckZldGNoVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
NTE4NTM4MjIyNzBGNTMwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTFFNUMzMUZCQjkwQTkwMEU0
N0UyRCAvKiBGb3JtRGF0YVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGb3JtRGF0YVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTU3ODUzMDIxMjc2QjZGMDBERDM4MDAgLyogY29weS13ZWJjb250ZW50LXJlc291cmNlcy10by1w
cml2YXRlLWhlYWRlcnMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJjb3B5LXdlYmNvbnRlbnQtcmVzb3Vy
Y2VzLXRvLXByaXZhdGUtaGVhZGVycy5zaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxNTdFNEFGMjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4u
c2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzAxNyw2ICs3MDIwLDkgQEAKIAkJOTNC
QTA0RDkyMTUxQURDRDAwN0Y0NTVGIC8qIFNlcnZpY2VXb3JrZXIgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQxNTE4NTM2MjIyNzA0RjYwMDU0MzBDNiAv
KiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCAqLywKKwkJCQk0MTUxODUzNTIyMjcwNEY1MDA1
NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5oICovLAorCQkJCTQxNTE4NTM4MjIyNzBG
NTMwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluICovLAogCQkJ
CTkzQkEwNERGMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCAqLywKIAkJ
CQk5M0JBMDRERTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dPcmlnaW5TdG9yZS5oICovLAogCQkJ
CTkzQkEwNEUxMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwICov
LApAQCAtMTA3OTIsNyArMTA3OTgsNiBAQAogCQkJCTJEOTEzNDQ0MjEyQ0Y5RjAwMDEyOEFGRCAv
KiBOZXRzY2FwZVBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc5NjIxMkI2QURB
MDBGNDkzRkQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkQ5MTM0NDUyMTJDRjlGMDAwMTI4QUZEIC8qIE5ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTZCRDA1ODY2MjIwQ0U4QzIwMDBCRUQ1QyAvKiBOZXR3b3JrQWRDbGlj
a0F0dHJpYnV0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxREQ5RjI4MTYzNjdEQTIwMDE1
NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MkYwNjBFMTE2NTQzMTg1MDBGMzI4MUIgLyogTmV0d29ya0Nv
bnRlbnRSdWxlTGlzdE1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODNGIC8qIE5ldHdvcmtNRE5TUmVnaXN0ZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAKaW5kZXggNWJkODIzZjc3NzRkMzk2YzQzODlkNDdiNGRjNjEwNWZhYmViYjIzZS4uNDI1
NGNjN2ZiNDc0N2ZlYWRlOWNkNzJjY2FmNTNiM2FmOWZhNmFlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkZvcm1EYXRh
UmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFiYXNlUHJvdmlkZXIuaCIKQEAg
LTIyNSwxMiArMjI2LDEyIEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0
YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2CiB7CiAgICAgYXV0byog
c2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCku
c2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBp
ZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewotICAgICAgICBtX2Nvbm5lY3Rpb25Ub05l
dHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkTm90SGFuZGxl
RmV0Y2ggeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyIH0sIDAp
OworICAgICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWROb3RIYW5kbGUgeyB9LCBmZXRjaElkZW50aWZpZXIu
dG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIWlzVmFsaWRG
ZXRjaChyZXF1ZXN0LCBvcHRpb25zLCBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnNjcmlwdFVS
TCgpLCByZWZlcnJlcikpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZE5vdEhhbmRsZUZldGNoIHsgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciB9LCAwKTsKKyAgICAgICAgbV9j
b25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZl
dGNoVGFzazo6RGlkTm90SGFuZGxlIHsgfSwgZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuY3BwCmluZGV4IDA1YzY4YjI1OGM3YjlmNDk2ZDJhOTk4YzU4MTI5ZmUyNzBmY2E0NTUuLjk1
MzBmNTQ2YTAxMjMxNDI1NjRjZWMzYTZhOTljZjVjZmQ4ODllMDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZVJlZGlyZWN0aW9uKGNvbnN0IFdlYkNv
cmU6OlJlc291CiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKLSAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRSZWNlaXZl
RmV0Y2hSZWRpcmVjdFJlc3BvbnNlIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9m
ZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlIH0sIDApOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9u
c2UgeyByZXNwb25zZSB9LCBtX2ZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIAogICAgIGNs
ZWFudXAoKTsKIH0KQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYKICAg
ICBpZiAobV9uZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKICAgICAgICAg
bV93YWl0aW5nRm9yQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlID0gdHJ1ZTsKIAot
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZFJlY2Vp
dmVGZXRjaFJlc3BvbnNlIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElk
ZW50aWZpZXIsIHJlc3BvbnNlLCBtX25lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNz
YWdlIH0sIDApOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtl
ckZldGNoVGFzazo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2UsIG1fbmVlZHNDb250aW51
ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgfSwgbV9mZXRjaElkZW50aWZpZXIudG9VSW50NjQo
KSk7CiB9CiAKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2
ZURhdGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQg
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVmPFNoYXJl
ZEJ1ZmZlcj4mJiBidWZmZXIpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hEYXRh
IHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHsgYnVm
ZmVyIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCAwKTsKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJl
Y2VpdmVEYXRhIHsgeyBidWZmZXIgfSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXpl
KCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQogCiB2b2lkIFdlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8
Rm9ybURhdGE+JiYgZm9ybURhdGEpCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9ybURhdGFBbmRGaW5pc2goUmVmPEZv
cm1EYXRhPiYKICAgICAvLyBGb3Igbm93IGFuZCBmb3IgdGhlIGNhc2Ugb2YgYmxvYnMsIHdlIHJl
YWQgaXQgdGhlcmUgYW5kIHNlbmQgdGhlIGRhdGEgdGhyb3VnaCBJUEMuCiAgICAgVVJMIGJsb2JV
UkwgPSBmb3JtRGF0YS0+YXNCbG9iVVJMKCk7CiAgICAgaWYgKGJsb2JVUkwuaXNOdWxsKCkpIHsK
LSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlk
UmVjZWl2ZUZldGNoRm9ybURhdGEgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2Zl
dGNoSWRlbnRpZmllciwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IFdURk1vdmUoZm9ybURhdGEp
IH0gfSwgMCk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdv
cmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSB7IFdURk1vdmUoZm9ybURhdGEpIH0gfSwgbV9mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIFdlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVCbG9iQ2h1bmsoY29uc3QgY2hh
ciogZGF0YSwgc2l6ZQogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAK
LSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRSZWNl
aXZlRmV0Y2hEYXRhIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50
aWZpZXIsIHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIHNpemUgfSwg
c3RhdGljX2Nhc3Q8aW50NjRfdD4oc2l6ZSkgfSwgMCk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IHsgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIHNpemUgfSwgc3RhdGljX2Nhc3Q8
aW50NjRfdD4oc2l6ZSkgfSwgbV9mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiB9CiAKIHZv
aWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmluaXNoQmxvYkxvYWRpbmco
KQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OkRpZEZhaWxGZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVu
dGlmaWVyLCBlcnJvciB9LCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZhaWwgeyBlcnJvciB9LCBtX2ZldGNoSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKIAogICAgIGNsZWFudXAoKTsKIH0KQEAgLTE2NCw3ICsxNjQsNyBAQCB2
b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZpbmlzaCgpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpEaWRGaW5pc2hGZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IG1fZmV0Y2hJZGVudGlmaWVyIH0sIDApOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmluaXNoIHsgfSwgbV9mZXRjaElkZW50aWZp
ZXIudG9VSW50NjQoKSk7CiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC0xNzQsNyArMTc0LDcgQEAg
dm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWROb3RIYW5kbGUoKQogICAg
IGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWROb3RIYW5kbGVGZXRjaCB7IG1fc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0sIDApOworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkTm90
SGFuZGxlIHsgfSwgbV9mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAKICAgICBjbGVhbnVw
KCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363181</attachid>
            <date>2019-02-27 19:07:50 -0800</date>
            <delta_ts>2019-02-27 19:42:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195130-20190227190749.patch</filename>
            <type>text/plain</type>
            <size>54229</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk0OTA0ZTZjZDdlNDhiYzM5
ZTY1M2YzZDU4YjM1MWE3MGI1NjNjOGIuLjJjNzZjZjVhMjcxZjFmMjI0NzAzODdhMWJjM2I2Y2Yx
MmYzZjQxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTktMDItMjcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTUxMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIGlzIGFkZGVkIHRvIHJlcHJlc2VudCBOZXR3b3Jr
UHJvY2VzcyBzaWRlIG9mIGFuIG9uZ29pbmcgZmV0Y2ggaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3
b3JrZXIuCisgICAgICAgIFRoaXMgcGF0Y2ggc2hvdWxkIG5vdCBjaGFuZ2UgZXhpc3RpbmcgYmVo
YXZpb3IuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZEZhaWxGZXRjaCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWROb3RIYW5kbGVGZXRjaCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJl
c3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZFJl
Y2VpdmVGZXRjaFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmRpZFJlY2VpdmVGZXRjaERhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkRmluaXNoRmV0Y2gpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNo
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0
Y2hSZWRpcmVjdFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoRGF0YSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OmRpZEZpbmlzaEZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRGYWlsRmV0Y2gpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5vdEhhbmRsZUZldGNoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjYW5jZWxGZXRjaCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y29udGludWVEaWRS
ZWNlaXZlRmV0Y2hSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoVGFza01lc3NhZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
Lmg6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVkaXJlY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpk
aWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2Vp
dmVCbG9iQ2h1bmspOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudDo6ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6ZGlkTm90SGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlZGlyZWN0UmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNl
aXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpk
aWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OmRpZFJlY2VpdmVGb3JtRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s6OmRpZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpk
aWROb3RIYW5kbGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlckZldGNoVGFzay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdv
cmtlckZldGNoVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZl
dGNoVGFzazo6SWRlbnRpZmllcjo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tJZGVudGlmaWVySGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tJZGVudGlmaWVySGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdl
YktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllcj46OmVtcHR5VmFsdWUpOgor
ICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6
SWRlbnRpZmllcj46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hU
cmFpdHM8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyPjo6aXNEZWxl
dGVkVmFsdWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTktMDItMjcgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBVc2VyTWVkaWFQ
cm9jZXNzTWFuYWdlciBwcm9jZXNzU3RhdGUgbWFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBiY2I4
NzY0NTBjM2IzNzUxYTEyODA0Y2JkNTQ1NzQ1ZjM4MDk5NWIzLi4wNGVjMjM3OWFjZWRhMjk1OWM2
YjMyOTNhZjE3Y2YwYTU5NTllMTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTExMSw2ICsxMTEs
NyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgogCisgICAgTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluCiAgICAgTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICAgICBO
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5tZXNzYWdlcy5pbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKaW5kZXggNTE3ZjNlZDVjZmExZDVlODliY2M0ZGQwMjMwMWE4NmIzZGI0OTVmZS4u
OWZjZjc0OGFiODZjMjU0YmY0OWM1ZDM1YjQ3N2Y5ZTIxOWFjOTNlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMjQsNiArMjQsNyBAQCAk
KFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IDhiNzVjM2JlNGEwZDBhN2UzOTNmNTlkYjBjMDEzNWU4NTUyZmJmZGEuLjFh
YTk3MDMxZDhmOTBmNjc2YTIzZDBhMzFhNmQyYjRhZWQzZjdlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtODAsNiArODAsOCBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZWNJdGVtU2hpbVBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaE1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdl
UmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNl
aXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiZmNmMDA4MTBjYjAyYmQ1
OWExNjA2MDg3MzJhNjQ4NDQzMWQyMWRjLi5jMzVlNmI5N2EwMzRhMDdiYzE2OTE1OGVhMTU5ZTE2
ZTZlZmQ2MjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMzEsNiArMTMxLDcg
QEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUmVtb3RlV2ViSW5zcGVjdG9yVUkgXAogICAg
IFNlY0l0ZW1TaGltUHJveHkgXAogICAgIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCBcCisgICAg
U2VydmljZVdvcmtlckZldGNoVGFzayBcCiAgICAgU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxl
ciBcCiAgICAgU3RvcmFnZUFyZWFNYXAgXAogICAgIFN0b3JhZ2VNYW5hZ2VyIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYzMwMGFjMTBiOWEyZWFiMTJlZDQ2NTc1Mjg1NzRjOTcy
MDg1NjAzNS4uZDA3MWRlNTNlZDBjZjNmZTA2NTlmNGRiNDA4ZWI0ZjdlYjg3NWQzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJOZXR3
b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaCIKICNpbmNsdWRlICJQaW5nTG9hZC5oIgogI2luY2x1
ZGUgIlByZWNvbm5lY3RUYXNrLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
V2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgiCkBAIC0x
ODEsMTMgKzE4MiwyMCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3RpbwogICAgICAgICAgICAgc3dD
b25uZWN0aW9uLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KLSAgICAKKwogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIGNvbnRleHRDb25uZWN0aW9u
ID0gbV9uZXR3b3JrUHJvY2Vzcy0+Y29ubmVjdGlvblRvQ29udGV4dFByb2Nlc3NGcm9tSVBDQ29u
bmVjdGlvbihjb25uZWN0aW9uKSkgewogICAgICAgICAgICAgY29udGV4dENvbm5lY3Rpb24tPmRp
ZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgfQorCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNvbnRleHRDb25uZWN0aW9uID0gbV9uZXR3b3Jr
UHJvY2Vzcy0+Y29ubmVjdGlvblRvQ29udGV4dFByb2Nlc3NGcm9tSVBDQ29ubmVjdGlvbihjb25u
ZWN0aW9uKSkgeworICAgICAgICAgICAgY29udGV4dENvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRj
aFRhc2tNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgfQogI2VuZGlmCiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXgg
NjM4ODEzNDliYmI1MmY1NTJlM2FhMWY3Y2FkNDg1NDY3ZTlhMTU3Yy4uNTBiOTZlYjc4NjRmOTNi
ZWUzMjQ5YTRkNGUxOTQzODgzOTdiNzdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIxNjQsNDggKzIxNjQsNiBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpjcmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgcwogICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29u
bmVjdGlvblRvTmV0d29ya1Byb2Nlc3Moc2VjdXJpdHlPcmlnaW4pLCAwKTsKIH0KIAotdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZGlkRmFpbEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0
aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
cikpCi0gICAgICAgIGNvbm5lY3Rpb24tPmRpZEZhaWxGZXRjaChmZXRjaElkZW50aWZpZXIsIGVy
cm9yKTsKLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkTm90SGFuZGxlRmV0Y2goU1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJ
ZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9
IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQot
ICAgICAgICBjb25uZWN0aW9uLT5kaWROb3RIYW5kbGVGZXRjaChmZXRjaElkZW50aWZpZXIpOwot
fQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNl
KFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1Nl
cnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAg
IGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UoZmV0Y2hJZGVudGlm
aWVyLCByZXNwb25zZSk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRj
aFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2VNZXNzYWdlKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZl
ckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNv
bm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKGZldGNoSWRlbnRpZmllciwgcmVzcG9u
c2UsIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKLX0KLQotdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRGF0YShTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJ
ZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2Rl
ZERhdGFMZW5ndGgpCi17Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29u
bmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgY29ubmVj
dGlvbi0+ZGlkUmVjZWl2ZUZldGNoRGF0YShmZXRjaElkZW50aWZpZXIsIGRhdGEsIGVuY29kZWRE
YXRhTGVuZ3RoKTsKLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRm9y
bURhdGEoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYgZm9ybURhdGEpCi17Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3
U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAg
ICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoZmV0Y2hJZGVudGlmaWVyLCBm
b3JtRGF0YSk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZEZpbmlzaEZldGNoKFNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNo
SWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCi17Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24g
PSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkK
LSAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmluaXNoRmV0Y2goZmV0Y2hJZGVudGlmaWVyKTsKLX0K
LQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQo
Y29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmll
ciwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKIHsKICAg
ICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5nZXQoZGVzdGlu
YXRpb25JZGVudGlmaWVyLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAwYWIyODk0MzZiYzcy
ZDM4ZTQ1ZWQ0Yzc4YmRlMjZiMTJkZWMxMjIyLi5mZjVkNTA1MzhmZjcyYmVjODBiZDEyMmQyMjUy
ZWFiNDY5ZWI3ZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCkBAIC00MTksMTQgKzQxOSw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVz
cG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0
Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsK
LSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVG
ZXRjaEZvcm1EYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwotICAg
IHZvaWQgZGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZEZhaWxGZXRjaChXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLSAgICB2b2lkIGRpZE5vdEhhbmRs
ZUZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllcik7Ci0KICAgICB2b2lkIGRpZENyZWF0ZVdvcmtlckNvbnRleHRQcm9jZXNz
Q29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsKICAgICAKICAgICB2b2lkIHBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJj
ZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IDgzZmMxYzkyMzEyNDM4ZGVjMWIyODJjOTdiMjljMWVjMjg2Y2FlNmMuLmU0YWQ4MDk0OWRh
MzY2ODJiMDkwZjMyN2RmMzZhM2VmNjljZDNhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTQ3LDEz
ICsxNDcsNiBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgU2V0Q2FjaGVTdG9yYWdlUGFyYW1ldGVycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVp
bnQ2NF90IHF1b3RhLCBTdHJpbmcgY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQotICAgIERpZE5vdEhhbmRsZUZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmll
ciBmZXRjaElkZW50aWZpZXIpCi0gICAgRGlkRmFpbEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJy
b3IpCi0gICAgRGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3Jl
OjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIHJlc3BvbnNlKQotICAgIERpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3Nh
Z2UpCi0gICAgRGlkUmVjZWl2ZUZldGNoRGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50
aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0
YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKLSAgICBEaWRSZWNlaXZlRmV0Y2hGb3JtRGF0
YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlIGRhdGEpCi0gICAgRGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6U1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKICAgICBQb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
c291cmNlSWRlbnRpZmllciwgU3RyaW5nIHNvdXJjZU9yaWdpbikKIAogICAgIFBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0
aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBzb3VyY2UsIFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckZldGNoVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdlMGIyNDQwNzhk
ODMyYWVkY2RkOGE2NzkxODQxNGYyODcwYzYwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
LmNwcApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCIKKworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJEYXRhUmVmZXJl
bmNlLmgiCisjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJMb2dnaW5n
LmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudEZldGNoTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKworI2RlZmluZSBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gU2VydmljZVdvcmtlckZldGNoVGFz
azo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKG1fc2Vzc2lvbklELmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBTZXJ2aWNlV29ya2VyLCAiJXAgLSBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2s6OmRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQoreworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVS
ZWRpcmVjdFJlc3BvbnNlOiAlcyIsIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIubG9nZ2lu
Z1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSB7
IHJlc3BvbnNlIH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7Cit9
CisKK3ZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2VNZXNzYWdlKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vy
dmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlUmVzcG9uc2UgeyByZXNwb25zZSwgbmVl
ZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgfSwgbV9pZGVudGlmaWVyLmZldGNo
SWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3Qg
ZW5jb2RlZERhdGFMZW5ndGgpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZFJlY2VpdmVEYXRhIHsgZGF0YSwgZW5jb2RlZERh
dGFMZW5ndGggfSwgbV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30K
Kwordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlRm9ybURhdGEoY29uc3Qg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYgZm9ybURhdGEpCit7CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZFJlY2VpdmVGb3JtRGF0
YSB7IGZvcm1EYXRhIH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7
Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkRmluaXNoKCkKK3sKKyAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAl
cyIsIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNs
aWVudEZldGNoOjpEaWRGaW5pc2ggeyB9LCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRv
VUludDY0KCkpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZEZhaWwoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxM
T1dFRCgiZGlkRmFpbEZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVzIiwgbV9pZGVudGlmaWVyLmZl
dGNoSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZEZhaWwg
eyBlcnJvciB9LCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworfQor
Cit2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZE5vdEhhbmRsZSgpCit7CisgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkTm90SGFuZGxlRmV0Y2g6IGZldGNoSWRlbnRpZmllcjog
JXMiLCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaDo6RGlkTm90SGFuZGxlIHsgfSwgbV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2su
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYzY0MTIzYTFhYTg0NmZhZTU4NmNmNWE2NWVhNTczZDAzYmEwMTUwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVk
ZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJUeXBlcy5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSZXNvdXJjZUVycm9y
OworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK30KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBD
b25uZWN0aW9uOworY2xhc3MgRGF0YVJlZmVyZW5jZTsKK2NsYXNzIERlY29kZXI7CitjbGFzcyBG
b3JtRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2sgOiBwdWJsaWMgUmVmQ291bnRlZDxTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrPiBj
cmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24sIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlv
bklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtlckZldGNoVGFzayhzZXNzaW9uSUQsIFdU
Rk1vdmUoY29ubmVjdGlvbiksIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIp
KTsgfQorCisgICAgdm9pZCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZU1lc3NhZ2UpOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CisgICAgdm9pZCBkaWRSZWNl
aXZlRm9ybURhdGEoY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZGlk
RmluaXNoKCk7CisgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
KTsKKyAgICB2b2lkIGRpZE5vdEhhbmRsZSgpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworICAgIHN0cnVjdCBJZGVudGlm
aWVyIHsKKyAgICAgICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25u
ZWN0aW9uSWRlbnRpZmllcjsKKyAgICAgICAgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNo
SWRlbnRpZmllcjsKKyAgICAgICAgCisgICAgICAgIGlubGluZSB1bnNpZ25lZCBoYXNoKCkgY29u
c3QKKyAgICAgICAgeworICAgICAgICAgICAgdW5zaWduZWQgaGFzaGVzWzJdOworICAgICAgICAg
ICAgaGFzaGVzWzBdID0gV1RGOjppbnRIYXNoKGNvbm5lY3Rpb25JZGVudGlmaWVyLnRvVUludDY0
KCkpOworICAgICAgICAgICAgaGFzaGVzWzFdID0gV1RGOjppbnRIYXNoKGZldGNoSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIFN0cmluZ0hh
c2hlcjo6aGFzaE1lbW9yeShoYXNoZXMsIHNpemVvZihoYXNoZXMpKTsKKyAgICAgICAgfQorICAg
IH07CisKKyAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQorICAgICAgICA6IG1fc2Vz
c2lvbklEKHNlc3Npb25JRCkKKyAgICAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0
aW9uKSkKKyAgICAgICAgLCBtX2lkZW50aWZpZXIoSWRlbnRpZmllciB7Y29ubmVjdGlvbklkZW50
aWZpZXIsIGZldGNoSWRlbnRpZmllcn0pCisgICAgeyB9CisKKyAgICBQQUw6OlNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAg
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9OworCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXImIGEsIGNvbnN0IFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXImIGIpCit7CisgICAgcmV0dXJuIGEuY29ubmVjdGlv
bklkZW50aWZpZXIgPT0gYi5jb25uZWN0aW9uSWRlbnRpZmllciAmJiAgYS5mZXRjaElkZW50aWZp
ZXIgPT0gYi5mZXRjaElkZW50aWZpZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisK
K25hbWVzcGFjZSBXVEYgeworCitzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNoVGFza0lkZW50aWZp
ZXJIYXNoIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJLaXQ6OlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXImIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQor
ICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFz
azo6SWRlbnRpZmllciYgYSwgY29uc3QgV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJ
ZGVudGlmaWVyJiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBz
YWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OworCit0ZW1wbGF0ZTw+IHN0
cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmll
cj4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6Oklk
ZW50aWZpZXI+IHsKKyAgICBzdGF0aWMgV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJ
ZGVudGlmaWVyIGVtcHR5VmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICAKKyAgICBzdGF0aWMg
dm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpJZGVudGlmaWVyJiBzbG90KSB7IHNsb3QuY29ubmVjdGlvbklkZW50aWZpZXIgPSBtYWtlT2Jq
ZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyVHlwZT4o
c3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpKTsgfQorICAgIAorICAgIHN0YXRp
YyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFz
azo6SWRlbnRpZmllciYgc2xvdCkgeyByZXR1cm4gc2xvdC5jb25uZWN0aW9uSWRlbnRpZmllci50
b1VJbnQ2NCgpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsgfQorfTsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrOjpJZGVudGlmaWVyPiB7CisgICAgdHlwZWRlZiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
SWRlbnRpZmllckhhc2ggSGFzaDsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU3N2YwNzJiZDE4Njc3N2E4OWFmYmFlYmQwOTlmMTA5MTM1
OGE3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
IyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKKworbWVzc2FnZXMgLT4gU2VydmljZVdvcmtlckZldGNoVGFzayB7
CisgICAgRGlkTm90SGFuZGxlKCkKKyAgICBEaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
ZXJyb3IpCisgICAgRGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZXNwb25zZSkKKyAgICBEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNl
TWVzc2FnZSkKKyAgICBEaWRSZWNlaXZlRGF0YShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKKyAgICBEaWRSZWNlaXZlRm9ybURh
dGEoSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBkYXRhKQorICAgIERpZEZpbmlzaCgpCit9CisKKyNl
bmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uY3BwCmluZGV4IDVhYWM3ZmQ5ZGQwOTIwZWI2ZjhlNTZhZjhmOTAxODBjNzg0OGEy
OWYuLmE0OTUzNWJhOTIyNmE2ZjRmYTJkY2NmZjUzZTAzOTIzYmQzYjk0NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMjgsNiArMTI4LDcgQEAgdm9pZCBX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OnVwZGF0ZVdvcmtlclN0YXRlSW5DbGllbnQoU2VydmljZVdv
cmtlcklkZW50aWZpZXIgd28KIAogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZl
dGNoKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogewor
ICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjYW5jZWxGZXRj
aDogJXMiLCBmZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwog
ICAgIGF1dG8qIHdvcmtlciA9IHNlcnZlcigpLmFjdGl2ZVdvcmtlckZyb21SZWdpc3RyYXRpb25J
RChzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF3b3JrZXIg
fHwgIXdvcmtlci0+aXNSdW5uaW5nKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEzNSw3ICsxMzYs
NyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Y2FuY2VsRmV0Y2goU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2VydgogICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50
aWZpZXIgPSB3b3JrZXItPmlkZW50aWZpZXIoKTsKICAgICBzZXJ2ZXIoKS5ydW5TZXJ2aWNlV29y
a2VySWZOZWNlc3Nhcnkoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKHRoaXMpLCB0aGlzLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZmV0Y2hJZGVudGlm
aWVyXShhdXRvKiBjb250ZXh0Q29ubmVjdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFr
VGhpcyAmJiBjb250ZXh0Q29ubmVjdGlvbikKLSAgICAgICAgICAgIHNlbmRUb0NvbnRleHRQcm9j
ZXNzKCpjb250ZXh0Q29ubmVjdGlvbiwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpDYW5jZWxGZXRjaCB7IHRoaXMtPmlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciB9KTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFdl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiY+KCpjb250ZXh0Q29ubmVjdGlvbikuY2FuY2Vs
RmV0Y2godGhpcy0+aWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIApAQCAtMTQ4LDcgKzE0OSw3IEBAIHZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNlcnZpY2VX
b3JrZXJSZWdpc3RyCiAgICAgYXV0byBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHdvcmtlci0+
aWRlbnRpZmllcigpOwogICAgIHNlcnZlcigpLnJ1blNlcnZpY2VXb3JrZXJJZk5lY2Vzc2FyeShz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRo
aXMsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXJdKGF1dG8qIGNvbnRl
eHRDb25uZWN0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzICYmIGNvbnRleHRD
b25uZWN0aW9uKQotICAgICAgICAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoKmNvbnRleHRDb25u
ZWN0aW9uLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkNvbnRpbnVl
RGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UgeyB0aGlzLT5pZGVudGlmaWVyKCksIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIgfSk7CisgICAgICAgICAgICBzdGF0aWNfY2Fz
dDxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mPigqY29udGV4dENvbm5lY3Rpb24pLmNv
bnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UodGhpcy0+aWRlbnRpZmllcigpLCBmZXRjaElk
ZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIApAQCAtMTg3
LDcgKzE4OCw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpCiAKICAgICAgICAgICAgIGlmIChj
b250ZXh0Q29ubmVjdGlvbikgewogICAgICAgICAgICAgICAgIFNXU0VSVkVSQ09OTkVDVElPTl9S
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydEZldGNoOiBTdGFydGluZyBmZXRjaCAlcyB2aWEg
c2VydmljZSB3b3JrZXIgJXMiLCBmZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0Zjgo
KS5kYXRhKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBzZW5kVG9Db250ZXh0UHJvY2VzcygqY29udGV4dENv
bm5lY3Rpb24sIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3RhcnRG
ZXRjaCB7IHRoaXMtPmlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGZldGNo
SWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgZm9ybURhdGEsIHJlZmVycmVyIH0pOworICAg
ICAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiY+
KCpjb250ZXh0Q29ubmVjdGlvbikuc3RhcnRGZXRjaChtX3Nlc3Npb25JRCwgbV9jb250ZW50Q29u
bmVjdGlvbi5nZXQoKSwgdGhpcy0+aWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zLCBmb3JtRGF0YSwgcmVmZXJyZXIp
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBTV1NFUlZFUkNPTk5FQ1RJ
T05fUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnRGZXRjaDogZmV0Y2hJZGVudGlm
aWVyOiAlcyBEaWROb3RIYW5kbGUgYmVjYXVzZSBmYWlsZWQgdG8gcnVuIHNlcnZpY2Ugd29ya2Vy
IiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgICAgICAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29y
a2VyQ2xpZW50RmV0Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2
NCgpKTsKQEAgLTI0Myw0NCArMjQ0LDYgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNj
aGVkdWxlSm9iSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhKQogICAgIHNl
cnZlcigpLnNjaGVkdWxlSm9iKFdURk1vdmUoam9iRGF0YSkpOwogfQogCi12b2lkIFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZShGZXRjaElkZW50
aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
LXsKLSAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50RmV0Y2g6OkRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlIHsgcmVzcG9uc2UgfSwgZmV0
Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwotfQotCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmll
ciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCi17Ci0gICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlUmVzcG9uc2Ug
eyByZXNwb25zZSwgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgfSwgZmV0
Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwotfQotCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZUZldGNoRGF0YShGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgp
Ci17Ci0gICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtl
ckNsaWVudEZldGNoOjpEaWRSZWNlaXZlRGF0YSB7IGRhdGEsIGVuY29kZWREYXRhTGVuZ3RoIH0s
IGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OmRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50
aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmIGZvcm1EYXRhKQotewotICAgIG1f
Y29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRj
aDo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsgZm9ybURhdGEgfSwgZmV0Y2hJZGVudGlmaWVyLnRvVUlu
dDY0KCkpOwotfQotCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkRmluaXNoRmV0Y2go
RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKLXsKLSAgICBTV1NFUlZFUkNPTk5FQ1RJ
T05fUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoRmV0Y2g6IGZldGNoSWRlbnRpZmll
cjogJXMiLCBmZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwot
ICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaDo6RGlkRmluaXNoIHsgfSwgZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwotfQot
Ci12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkRmFpbEZldGNoKEZldGNoSWRlbnRpZmll
ciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAgIFNX
U0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJkaWRGYWlsRmV0
Y2g6IGZldGNoSWRlbnRpZmllcjogJXMiLCBmZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwotICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkRmFpbCB7IGVycm9yIH0sIGZldGNoSWRlbnRp
Zmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5v
dEhhbmRsZUZldGNoKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCi17Ci0gICAgU1dT
RVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZE5vdEhhbmRsZUZldGNo
OiBmZXRjaElkZW50aWZpZXI6ICVzIiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKLSAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKLX0KLQogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllciBkZXN0aW5hdGlvbkNv
bnRleHRJZGVudGlmaWVyLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
T3JpZ2luKQogewogICAgIGF1dG8qIHNvdXJjZVNlcnZpY2VXb3JrZXIgPSBzZXJ2ZXIoKS53b3Jr
ZXJCeUlEKHNvdXJjZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5oCmluZGV4IDJiNGFlZTYzYjU0YWM2OWZkYjRhZGZkN2MyOTFmMTAwMDAxNjVmYTYuLjg1MDA2
YWIyN2MwNzRkNzkyZDk2NjVhMzZkODYzYzU2Mjg0MmVmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5o
PgpAQCAtNjMsMTQgKzY0LDYgQEAgcHVibGljOgogCiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2
ZUZldGNoUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpOwotICAg
IHZvaWQgZGlkUmVjZWl2ZUZldGNoRGF0YShXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOwotICAgIHZv
aWQgZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25z
dCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hGZXRjaChXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXIpOwotICAgIHZvaWQgZGlkRmFpbEZldGNoKFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwotICAgIHZvaWQg
ZGlkTm90SGFuZGxlRmV0Y2goV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKLQogICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlm
aWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZVNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CiAgICAgdm9p
ZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvbiwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29u
c3QgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApp
bmRleCAwMDBlNDI3ZWUwZDhmOTAyYjUxNzBiNWI3YzM4NDExYzg1ZjdiOWU4Li5mMjhkNDhjMTIw
ZDY0ZWZmNTZjYWEwY2YwYmZlZWVjNDQ1YTNhZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMjgsNyArMjgsMTAgQEAKIAog
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNl
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhLmg+CkBAIC01Nyw3ICs2MCw5IEBAIHVpbnQ2NF90IFdlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dAogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3Nl
ZCgpCiB7Ci0gICAgLy8gRklYTUU6IERvIHdoYXQgaGVyZS4uLj8KKyAgICBhdXRvIGZldGNoZXMg
PSBXVEZNb3ZlKG1fb25nb2luZ0ZldGNoZXMpOworICAgIGZvciAoYXV0byYgZmV0Y2ggOiBmZXRj
aGVzLnZhbHVlcygpKQorICAgICAgICBmZXRjaC0+ZGlkRmFpbChSZXNvdXJjZUVycm9yIHsgZXJy
b3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgeyB9LCAiU2VydmljZSBXb3JrZXIgY29udGV4dCBj
bG9zZWQiX3MgfSk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpp
bnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRh
JiBkYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
KQpAQCAtMTE1LDYgKzEyMCw1OSBAQCB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6dGVybWluYXRlKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6VGVybWluYXRlUHJvY2VzcygpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb246OnN0YXJ0RmV0Y2goUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBSZWY8
SVBDOjpDb25uZWN0aW9uPiYmIGNvbnRlbnRDb25uZWN0aW9uLCBXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50
aWZpZXIgY29udGVudEZldGNoSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgRmV0Y2hPcHRpb25zJiBvcHRpb25zLCBjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiBk
YXRhLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQoreworICAgIGF1dG8gZmV0Y2hJZGVudGlmaWVy
ID0gRmV0Y2hJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIAorICAgIG1fb25nb2luZ0ZldGNo
ZXMuYWRkKGZldGNoSWRlbnRpZmllciwgU2VydmljZVdvcmtlckZldGNoVGFzazo6Y3JlYXRlKHNl
c3Npb25JRCwgV1RGTW92ZShjb250ZW50Q29ubmVjdGlvbiksIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBjb250ZW50RmV0Y2hJZGVudGlmaWVyKSk7CisKKyAgICBBU1NFUlQoIW1fb25nb2lu
Z0ZldGNoSWRlbnRpZmllcnMuY29udGFpbnMoe3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBj
b250ZW50RmV0Y2hJZGVudGlmaWVyfSkpOworICAgIG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMu
YWRkKHtzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29udGVudEZldGNoSWRlbnRpZmllcn0s
IGZldGNoSWRlbnRpZmllcik7CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaCB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25z
LCBkYXRhLCByZWZlcnJlciB9KTsKK30KKwordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OmNhbmNlbEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBjb250ZW50RmV0Y2hJ
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vbmdvaW5nRmV0Y2hJZGVudGlmaWVycy5maW5k
KHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnRlbnRGZXRjaElkZW50aWZpZXIgfSk7
CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMuZW5kKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjpDYW5jZWxGZXRjaCB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgaXRlcmF0b3ItPnZhbHVlIH0pOworCisgICAgbV9vbmdvaW5n
RmV0Y2hlcy5yZW1vdmUoaXRlcmF0b3ItPnZhbHVlKTsKKyAgICBtX29uZ29pbmdGZXRjaElkZW50
aWZpZXJzLnJlbW92ZShpdGVyYXRvcik7Cit9CisKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNo
SWRlbnRpZmllciBjb250ZW50RmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vbmdv
aW5nRmV0Y2hJZGVudGlmaWVycy5maW5kKHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNv
bnRlbnRGZXRjaElkZW50aWZpZXIgfSk7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb25nb2luZ0Zl
dGNoSWRlbnRpZmllcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q29udGludWVEaWRSZWNlaXZl
RmV0Y2hSZXNwb25zZSB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgaXRlcmF0b3ItPnZhbHVlIH0pOworfQorCit2b2lkIFdlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoVGFza01lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgYXV0byBpdGVy
YXRvciA9IG1fb25nb2luZ0ZldGNoZXMuZmluZChtYWtlT2JqZWN0SWRlbnRpZmllcjxGZXRjaElk
ZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpOworICAgIGlmIChpdGVyYXRv
ciA9PSBtX29uZ29pbmdGZXRjaGVzLmVuZCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAg
Ym9vbCBzaG91bGRSZW1vdmUgPSBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZhaWw6Om5hbWUoKQorICAgICAgICB8fCBkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZE5v
dEhhbmRsZTo6bmFtZSgpCisgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNz
YWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmluaXNoOjpuYW1lKCkKKyAgICAgICAg
fHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrOjpEaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZTo6bmFtZSgpOworCisgICAgaXRlcmF0b3It
PnZhbHVlLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKworICAgIGlm
IChzaG91bGRSZW1vdmUpIHsKKyAgICAgICAgQVNTRVJUKG1fb25nb2luZ0ZldGNoSWRlbnRpZmll
cnMuY29udGFpbnMoaXRlcmF0b3ItPnZhbHVlLT5pZGVudGlmaWVyKCkpKTsKKyAgICAgICAgbV9v
bmdvaW5nRmV0Y2hJZGVudGlmaWVycy5yZW1vdmUoaXRlcmF0b3ItPnZhbHVlLT5pZGVudGlmaWVy
KCkpOworICAgICAgICBtX29uZ29pbmdGZXRjaGVzLnJlbW92ZShpdGVyYXRvcik7CisgICAgfQor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
aAppbmRleCAyZjg4OWIyODZiYzFlMWRkNmI1NzEzMWU2NTg0ZjVhZTBmMTE0NzE1Li4yNTVkMjdj
MjEzMmExNzA3OGMwYmIyN2Y1ZmJmNzQ1MzU2ZDU2ZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC0yOSw4ICsyOSwyMiBAQAogCiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgor
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1
Y3QgRmV0Y2hPcHRpb25zOworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworfQorCituYW1lc3BhY2Ug
SVBDIHsKK2NsYXNzIEZvcm1EYXRhUmVmZXJlbmNlOworfQorCituYW1lc3BhY2UgUEFMIHsKK2Ns
YXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQ
cm9jZXNzOwpAQCAtNTEsNiArNjUsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGUo
KTsKIAorICAgIHZvaWQgc3RhcnRGZXRjaChQQUw6OlNlc3Npb25JRCwgUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwg
Y29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQg
Y2FuY2VsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7Cisg
ICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIpOworCisgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hUYXNr
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKwogcHJpdmF0ZToKICAg
ICBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oTmV0d29ya1Byb2Nlc3MmLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKICAg
ICB+V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCk7CkBAIC03NSw2ICs5NSw4IEBAIHBy
aXZhdGU6CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9pcGNDb25uZWN0aW9uOwogICAgIFJl
ZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsKICAgICAKKyAgICBIYXNoTWFwPFNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmll
cj4gbV9vbmdvaW5nRmV0Y2hJZGVudGlmaWVyczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZldGNo
SWRlbnRpZmllciwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s+PiBtX29uZ29pbmdGZXRjaGVz
OwogfTsgLy8gY2xhc3MgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNTljZWY4M2E1MjM5ZWVhMGNhMTk3ZjY4Y2Iz
NzIwNjdiOTc5ZTAyOS4uZmM4NmM2NjgxMjRiNGUyYzQwMTQ0NjNlNWQ5MDQxM2FhNjM0ZDNlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC01Niw2ICs1Niw3IEBAIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0
d29ya0Jsb2JSZWdpc3RyeS5jcHAKIAogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5jcHAKIAorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBAbm8tdW5pZnkKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5jcHAgQG5vLXVuaWZ5CiBOZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CiBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgQG5v
LXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYzQzZTRlNTA5MGJlZGM3MWM5ZGU2M2Y4
NjdmNzQwYTk0MWZkMGYxMi4uMjY5ZDc0OTdlNDNiOWIyMTMxZWIyN2U3YWRiOGM5ZTI2ZDMxOWZj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTc4LDUgKzU3OCw1IEBAIFdlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gQG5v
LXVuaWZ5CiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLm1tCiAKIC8vIERlcml2ZWQgU291cmNlcwotCiBFZGl0YWJsZUltYWdlQ29u
dHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdl
UmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA2NDM2NTUzNmQ2MTI3NDdjNjBmNjdiODc1NzkwM2YxZTg1OTE5YWY1Li41
YjYwYWZkNDVmOTYwOGM5ZTliMjIzZmUyNWU2YzEyMzk2YmM2Y2ZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMwMzcsNiArMzAzNyw5
IEBACiAJCTQxNEREMzc4MjBCRjQzRUEwMDY5NTlGQiAvKiBjb20uY2lzY28ud2ViZXgucGx1Z2lu
LmdwYzY0LnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5jaXNjby53ZWJleC5wbHVnaW4u
Z3BjNjQuc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNERFREQ1MUY5RUREREYw
MDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE0REVERDYxRjlFRERFMDAwNDdDNDBEIC8qIFNlcnZpY2VXb3Jr
ZXJQcm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxNTE4NTM1MjIyNzA0RjUwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE1MTg1MzYyMjI3MDRGNjAwNTQzMEM2
IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2VydmljZVdvcmtlckZldGNoVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxNTE4NTM4MjIyNzBGNTMwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2subWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTFF
NUMzMUZCQjkwQTkwMEU0N0UyRCAvKiBGb3JtRGF0YVJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtRGF0YVJlZmVyZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTU3ODUzMDIxMjc2QjZGMDBERDM4MDAgLyogY29weS13ZWJjb250ZW50
LXJlc291cmNlcy10by1wcml2YXRlLWhlYWRlcnMuc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJjb3B5LXdl
YmNvbnRlbnQtcmVzb3VyY2VzLXRvLXByaXZhdGUtaGVhZGVycy5zaCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxNTdFNEFGMjBFMkVDOTgwMEE2QzBENyAvKiBjb20uZ29vZ2xlLm8x
ZGJyb3dzZXJwbHVnaW4uc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmdvb2dsZS5vMWRi
cm93c2VycGx1Z2luLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzAxNyw2ICs3
MDIwLDkgQEAKIAkJOTNCQTA0RDkyMTUxQURDRDAwN0Y0NTVGIC8qIFNlcnZpY2VXb3JrZXIgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQxNTE4NTM2MjIy
NzA0RjYwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCAqLywKKwkJCQk0MTUx
ODUzNTIyMjcwNEY1MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5oICovLAorCQkJ
CTQxNTE4NTM4MjIyNzBGNTMwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3Nh
Z2VzLmluICovLAogCQkJCTkzQkEwNERGMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV09yaWdpblN0
b3JlLmNwcCAqLywKIAkJCQk5M0JBMDRERTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dPcmlnaW5T
dG9yZS5oICovLAogCQkJCTkzQkEwNEUxMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV1NlcnZlckNv
bm5lY3Rpb24uY3BwICovLApAQCAtMTA3OTIsNyArMTA3OTgsNiBAQAogCQkJCTJEOTEzNDQ0MjEy
Q0Y5RjAwMDEyOEFGRCAvKiBOZXRzY2FwZVBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RDkyQTc5NjIxMkI2QURBMDBGNDkzRkQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDUyMTJDRjlGMDAwMTI4QUZEIC8qIE5ldHNjYXBlUGx1Z2lu
U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZCRDA1ODY2MjIwQ0U4QzIwMDBCRUQ1QyAv
KiBOZXR3b3JrQWRDbGlja0F0dHJpYnV0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxREQ5
RjI4MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MkYwNjBFMTE2NTQzMTg1MDBGMzI4
MUIgLyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODNGIC8qIE5ldHdvcmtNRE5T
UmVnaXN0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggNWJkODIzZjc3NzRkMzk2YzQzODlkNDdiNGRjNjEw
NWZhYmViYjIzZS4uNDI1NGNjN2ZiNDc0N2ZlYWRlOWNkNzJjY2FmNTNiM2FmOWZhNmFlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oIgog
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFiYXNl
UHJvdmlkZXIuaCIKQEAgLTIyNSwxMiArMjI2LDEyIEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2
CiB7CiAgICAgYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdl
cjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKTsKICAgICBpZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewotICAgICAgICBt
X2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6RGlkTm90SGFuZGxlRmV0Y2ggeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJ
ZGVudGlmaWVyIH0sIDApOworICAgICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWROb3RIYW5kbGUgeyB9LCBm
ZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBpZiAoIWlzVmFsaWRGZXRjaChyZXF1ZXN0LCBvcHRpb25zLCBzZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHktPnNjcmlwdFVSTCgpLCByZWZlcnJlcikpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uVG9O
ZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZE5vdEhhbmRs
ZUZldGNoIHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciB9LCAw
KTsKKyAgICAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkTm90SGFuZGxlIHsgfSwgZmV0Y2hJZGVudGlmaWVy
LnRvVUludDY0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQuY3BwCmluZGV4IDA1YzY4YjI1OGM3YjlmNDk2ZDJhOTk4YzU4MTI5
ZmUyNzBmY2E0NTUuLjk1MzBmNTQ2YTAxMjMxNDI1NjRjZWMzYTZhOTljZjVjZmQ4ODllMDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBA
IHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZVJlZGlyZWN0
aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291CiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpEaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNlIHsgbV9zZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlIH0sIDApOworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2
ZVJlZGlyZWN0UmVzcG9uc2UgeyByZXNwb25zZSB9LCBtX2ZldGNoSWRlbnRpZmllci50b1VJbnQ2
NCgpKTsKIAogICAgIGNsZWFudXAoKTsKIH0KQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBXZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYKICAgICBpZiAobV9uZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVz
c2FnZSkKICAgICAgICAgbV93YWl0aW5nRm9yQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNz
YWdlID0gdHJ1ZTsKIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OkRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlLCBtX25lZWRzQ29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2VNZXNzYWdlIH0sIDApOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2Us
IG1fbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgfSwgbV9mZXRjaElkZW50
aWZpZXIudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpCkBAIC04NCw3
ICs4NCw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2
ZURhdGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRS
ZWNlaXZlRmV0Y2hEYXRhIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElk
ZW50aWZpZXIsIHsgYnVmZmVyIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KGJ1ZmZlci0+c2l6ZSgp
KSB9LCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgeyBidWZmZXIgfSwgc3RhdGljX2Nhc3Q8aW50NjRf
dD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQog
CiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0
YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+JiYgZm9ybURhdGEpCkBAIC0xMDEsNyArMTAxLDcgQEAg
dm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9ybURhdGFB
bmRGaW5pc2goUmVmPEZvcm1EYXRhPiYKICAgICAvLyBGb3Igbm93IGFuZCBmb3IgdGhlIGNhc2Ug
b2YgYmxvYnMsIHdlIHJlYWQgaXQgdGhlcmUgYW5kIHNlbmQgdGhlIGRhdGEgdGhyb3VnaCBJUEMu
CiAgICAgVVJMIGJsb2JVUkwgPSBmb3JtRGF0YS0+YXNCbG9iVVJMKCk7CiAgICAgaWYgKGJsb2JV
UkwuaXNOdWxsKCkpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoRm9ybURhdGEgeyBtX3NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IFdU
Rk1vdmUoZm9ybURhdGEpIH0gfSwgMCk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSB7IFdURk1vdmUoZm9ybURhdGEpIH0gfSwgbV9mZXRjaElkZW50aWZp
ZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEyOSw3ICsxMjks
NyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVCbG9i
Q2h1bmsoY29uc3QgY2hhciogZGF0YSwgc2l6ZQogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hEYXRhIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgbV9mZXRjaElkZW50aWZpZXIsIHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
ZGF0YSksIHNpemUgfSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc2l6ZSkgfSwgMCk7CisgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNl
aXZlRGF0YSB7IHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIHNpemUg
fSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc2l6ZSkgfSwgbV9mZXRjaElkZW50aWZpZXIudG9VSW50
NjQoKSk7CiB9CiAKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmlu
aXNoQmxvYkxvYWRpbmcoKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OkRpZEZhaWxGZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCBlcnJvciB9LCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZhaWwgeyBlcnJvciB9LCBt
X2ZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIAogICAgIGNsZWFudXAoKTsKIH0KQEAgLTE2
NCw3ICsxNjQsNyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZp
bmlzaCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRGaW5pc2hGZXRjaCB7IG1fc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0sIDApOworICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmluaXNoIHsgfSwg
bV9mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC0x
NzQsNyArMTc0LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRO
b3RIYW5kbGUoKQogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWROb3RIYW5k
bGVGZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVy
IH0sIDApOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZl
dGNoVGFzazo6RGlkTm90SGFuZGxlIHsgfSwgbV9mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7
CiAKICAgICBjbGVhbnVwKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363184</attachid>
            <date>2019-02-27 19:42:48 -0800</date>
            <delta_ts>2019-02-28 13:26:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195130-20190227194247.patch</filename>
            <type>text/plain</type>
            <size>55899</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk0OTA0ZTZjZDdlNDhiYzM5
ZTY1M2YzZDU4YjM1MWE3MGI1NjNjOGIuLjJjNzZjZjVhMjcxZjFmMjI0NzAzODdhMWJjM2I2Y2Yx
MmYzZjQxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTktMDItMjcgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTUxMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIGlzIGFkZGVkIHRvIHJlcHJlc2VudCBOZXR3b3Jr
UHJvY2VzcyBzaWRlIG9mIGFuIG9uZ29pbmcgZmV0Y2ggaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3
b3JrZXIuCisgICAgICAgIFRoaXMgcGF0Y2ggc2hvdWxkIG5vdCBjaGFuZ2UgZXhpc3RpbmcgYmVo
YXZpb3IuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZEZhaWxGZXRjaCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWROb3RIYW5kbGVGZXRjaCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJl
c3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZFJl
Y2VpdmVGZXRjaFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmRpZFJlY2VpdmVGZXRjaERhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkRmluaXNoRmV0Y2gpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNo
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0
Y2hSZWRpcmVjdFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoRGF0YSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OmRpZEZpbmlzaEZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRGYWlsRmV0Y2gpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5vdEhhbmRsZUZldGNoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjYW5jZWxGZXRjaCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y29udGludWVEaWRS
ZWNlaXZlRmV0Y2hSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoVGFza01lc3NhZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
Lmg6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVkaXJlY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpk
aWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2Vp
dmVCbG9iQ2h1bmspOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudDo6ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6ZGlkTm90SGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlZGlyZWN0UmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNl
aXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpk
aWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OmRpZFJlY2VpdmVGb3JtRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s6OmRpZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpk
aWROb3RIYW5kbGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlckZldGNoVGFzay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdv
cmtlckZldGNoVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZl
dGNoVGFzazo6SWRlbnRpZmllcjo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tJZGVudGlmaWVySGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tJZGVudGlmaWVySGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdl
YktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllcj46OmVtcHR5VmFsdWUpOgor
ICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6
SWRlbnRpZmllcj46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hU
cmFpdHM8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyPjo6aXNEZWxl
dGVkVmFsdWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTktMDItMjcgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBVc2VyTWVkaWFQ
cm9jZXNzTWFuYWdlciBwcm9jZXNzU3RhdGUgbWFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBiY2I4
NzY0NTBjM2IzNzUxYTEyODA0Y2JkNTQ1NzQ1ZjM4MDk5NWIzLi4wNGVjMjM3OWFjZWRhMjk1OWM2
YjMyOTNhZjE3Y2YwYTU5NTllMTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTExMSw2ICsxMTEs
NyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgogCisgICAgTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluCiAgICAgTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICAgICBO
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5tZXNzYWdlcy5pbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKaW5kZXggNTE3ZjNlZDVjZmExZDVlODliY2M0ZGQwMjMwMWE4NmIzZGI0OTVmZS4u
OWZjZjc0OGFiODZjMjU0YmY0OWM1ZDM1YjQ3N2Y5ZTIxOWFjOTNlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMjQsNiArMjQsNyBAQCAk
KFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IDhiNzVjM2JlNGEwZDBhN2UzOTNmNTlkYjBjMDEzNWU4NTUyZmJmZGEuLjFh
YTk3MDMxZDhmOTBmNjc2YTIzZDBhMzFhNmQyYjRhZWQzZjdlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtODAsNiArODAsOCBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZWNJdGVtU2hpbVBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaE1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdl
UmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNl
aXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiZmNmMDA4MTBjYjAyYmQ1
OWExNjA2MDg3MzJhNjQ4NDQzMWQyMWRjLi5jMzVlNmI5N2EwMzRhMDdiYzE2OTE1OGVhMTU5ZTE2
ZTZlZmQ2MjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMzEsNiArMTMxLDcg
QEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUmVtb3RlV2ViSW5zcGVjdG9yVUkgXAogICAg
IFNlY0l0ZW1TaGltUHJveHkgXAogICAgIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCBcCisgICAg
U2VydmljZVdvcmtlckZldGNoVGFzayBcCiAgICAgU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxl
ciBcCiAgICAgU3RvcmFnZUFyZWFNYXAgXAogICAgIFN0b3JhZ2VNYW5hZ2VyIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYzMwMGFjMTBiOWEyZWFiMTJlZDQ2NTc1Mjg1NzRjOTcy
MDg1NjAzNS4uZDA3MWRlNTNlZDBjZjNmZTA2NTlmNGRiNDA4ZWI0ZjdlYjg3NWQzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJOZXR3
b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaCIKICNpbmNsdWRlICJQaW5nTG9hZC5oIgogI2luY2x1
ZGUgIlByZWNvbm5lY3RUYXNrLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
V2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgiCkBAIC0x
ODEsMTMgKzE4MiwyMCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3RpbwogICAgICAgICAgICAgc3dD
b25uZWN0aW9uLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KLSAgICAKKwogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIGNvbnRleHRDb25uZWN0aW9u
ID0gbV9uZXR3b3JrUHJvY2Vzcy0+Y29ubmVjdGlvblRvQ29udGV4dFByb2Nlc3NGcm9tSVBDQ29u
bmVjdGlvbihjb25uZWN0aW9uKSkgewogICAgICAgICAgICAgY29udGV4dENvbm5lY3Rpb24tPmRp
ZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgfQorCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNvbnRleHRDb25uZWN0aW9uID0gbV9uZXR3b3Jr
UHJvY2Vzcy0+Y29ubmVjdGlvblRvQ29udGV4dFByb2Nlc3NGcm9tSVBDQ29ubmVjdGlvbihjb25u
ZWN0aW9uKSkgeworICAgICAgICAgICAgY29udGV4dENvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRj
aFRhc2tNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgfQogI2VuZGlmCiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXgg
NjM4ODEzNDliYmI1MmY1NTJlM2FhMWY3Y2FkNDg1NDY3ZTlhMTU3Yy4uNTBiOTZlYjc4NjRmOTNi
ZWUzMjQ5YTRkNGUxOTQzODgzOTdiNzdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIxNjQsNDggKzIxNjQsNiBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpjcmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgcwogICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29u
bmVjdGlvblRvTmV0d29ya1Byb2Nlc3Moc2VjdXJpdHlPcmlnaW4pLCAwKTsKIH0KIAotdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZGlkRmFpbEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0
aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
cikpCi0gICAgICAgIGNvbm5lY3Rpb24tPmRpZEZhaWxGZXRjaChmZXRjaElkZW50aWZpZXIsIGVy
cm9yKTsKLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkTm90SGFuZGxlRmV0Y2goU1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJ
ZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9
IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQot
ICAgICAgICBjb25uZWN0aW9uLT5kaWROb3RIYW5kbGVGZXRjaChmZXRjaElkZW50aWZpZXIpOwot
fQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNl
KFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1Nl
cnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAg
IGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UoZmV0Y2hJZGVudGlm
aWVyLCByZXNwb25zZSk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRj
aFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2VNZXNzYWdlKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZl
ckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNv
bm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKGZldGNoSWRlbnRpZmllciwgcmVzcG9u
c2UsIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKLX0KLQotdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRGF0YShTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJ
ZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2Rl
ZERhdGFMZW5ndGgpCi17Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29u
bmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgY29ubmVj
dGlvbi0+ZGlkUmVjZWl2ZUZldGNoRGF0YShmZXRjaElkZW50aWZpZXIsIGRhdGEsIGVuY29kZWRE
YXRhTGVuZ3RoKTsKLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRm9y
bURhdGEoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYgZm9ybURhdGEpCi17Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3
U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAg
ICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoZmV0Y2hJZGVudGlmaWVyLCBm
b3JtRGF0YSk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZEZpbmlzaEZldGNoKFNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNo
SWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCi17Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24g
PSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkK
LSAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmluaXNoRmV0Y2goZmV0Y2hJZGVudGlmaWVyKTsKLX0K
LQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQo
Y29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmll
ciwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKIHsKICAg
ICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5nZXQoZGVzdGlu
YXRpb25JZGVudGlmaWVyLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAwYWIyODk0MzZiYzcy
ZDM4ZTQ1ZWQ0Yzc4YmRlMjZiMTJkZWMxMjIyLi5mZjVkNTA1MzhmZjcyYmVjODBiZDEyMmQyMjUy
ZWFiNDY5ZWI3ZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCkBAIC00MTksMTQgKzQxOSw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVz
cG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0
Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsK
LSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVG
ZXRjaEZvcm1EYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwotICAg
IHZvaWQgZGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZEZhaWxGZXRjaChXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKLSAgICB2b2lkIGRpZE5vdEhhbmRs
ZUZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllcik7Ci0KICAgICB2b2lkIGRpZENyZWF0ZVdvcmtlckNvbnRleHRQcm9jZXNz
Q29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsKICAgICAKICAgICB2b2lkIHBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJj
ZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IDgzZmMxYzkyMzEyNDM4ZGVjMWIyODJjOTdiMjljMWVjMjg2Y2FlNmMuLmU0YWQ4MDk0OWRh
MzY2ODJiMDkwZjMyN2RmMzZhM2VmNjljZDNhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTQ3LDEz
ICsxNDcsNiBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgU2V0Q2FjaGVTdG9yYWdlUGFyYW1ldGVycyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVp
bnQ2NF90IHF1b3RhLCBTdHJpbmcgY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQotICAgIERpZE5vdEhhbmRsZUZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmll
ciBmZXRjaElkZW50aWZpZXIpCi0gICAgRGlkRmFpbEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJy
b3IpCi0gICAgRGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3Jl
OjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIHJlc3BvbnNlKQotICAgIERpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3Nh
Z2UpCi0gICAgRGlkUmVjZWl2ZUZldGNoRGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50
aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0
YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKLSAgICBEaWRSZWNlaXZlRmV0Y2hGb3JtRGF0
YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlIGRhdGEpCi0gICAgRGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6U1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKICAgICBQb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
c291cmNlSWRlbnRpZmllciwgU3RyaW5nIHNvdXJjZU9yaWdpbikKIAogICAgIFBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0
aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBzb3VyY2UsIFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckZldGNoVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdlMGIyNDQwNzhk
ODMyYWVkY2RkOGE2NzkxODQxNGYyODcwYzYwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
LmNwcApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCIKKworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJEYXRhUmVmZXJl
bmNlLmgiCisjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJMb2dnaW5n
LmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudEZldGNoTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKworI2RlZmluZSBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gU2VydmljZVdvcmtlckZldGNoVGFz
azo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKG1fc2Vzc2lvbklELmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBTZXJ2aWNlV29ya2VyLCAiJXAgLSBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2s6OmRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQoreworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVS
ZWRpcmVjdFJlc3BvbnNlOiAlcyIsIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIubG9nZ2lu
Z1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSB7
IHJlc3BvbnNlIH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7Cit9
CisKK3ZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2VNZXNzYWdlKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vy
dmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlUmVzcG9uc2UgeyByZXNwb25zZSwgbmVl
ZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgfSwgbV9pZGVudGlmaWVyLmZldGNo
SWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3Qg
ZW5jb2RlZERhdGFMZW5ndGgpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZFJlY2VpdmVEYXRhIHsgZGF0YSwgZW5jb2RlZERh
dGFMZW5ndGggfSwgbV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30K
Kwordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlRm9ybURhdGEoY29uc3Qg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYgZm9ybURhdGEpCit7CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZFJlY2VpdmVGb3JtRGF0
YSB7IGZvcm1EYXRhIH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7
Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkRmluaXNoKCkKK3sKKyAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAl
cyIsIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNs
aWVudEZldGNoOjpEaWRGaW5pc2ggeyB9LCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRv
VUludDY0KCkpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZEZhaWwoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxM
T1dFRCgiZGlkRmFpbEZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVzIiwgbV9pZGVudGlmaWVyLmZl
dGNoSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZEZhaWwg
eyBlcnJvciB9LCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworfQor
Cit2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZE5vdEhhbmRsZSgpCit7CisgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkTm90SGFuZGxlRmV0Y2g6IGZldGNoSWRlbnRpZmllcjog
JXMiLCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaDo6RGlkTm90SGFuZGxlIHsgfSwgbV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2su
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYzY0MTIzYTFhYTg0NmZhZTU4NmNmNWE2NWVhNTczZDAzYmEwMTUwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVk
ZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJUeXBlcy5oPgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSZXNvdXJjZUVycm9y
OworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK30KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBD
b25uZWN0aW9uOworY2xhc3MgRGF0YVJlZmVyZW5jZTsKK2NsYXNzIERlY29kZXI7CitjbGFzcyBG
b3JtRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2sgOiBwdWJsaWMgUmVmQ291bnRlZDxTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrPiBj
cmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24sIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlv
bklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtlckZldGNoVGFzayhzZXNzaW9uSUQsIFdU
Rk1vdmUoY29ubmVjdGlvbiksIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIp
KTsgfQorCisgICAgdm9pZCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZU1lc3NhZ2UpOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CisgICAgdm9pZCBkaWRSZWNl
aXZlRm9ybURhdGEoY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZGlk
RmluaXNoKCk7CisgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
KTsKKyAgICB2b2lkIGRpZE5vdEhhbmRsZSgpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKworICAgIHN0cnVjdCBJZGVudGlm
aWVyIHsKKyAgICAgICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25u
ZWN0aW9uSWRlbnRpZmllcjsKKyAgICAgICAgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNo
SWRlbnRpZmllcjsKKyAgICAgICAgCisgICAgICAgIGlubGluZSB1bnNpZ25lZCBoYXNoKCkgY29u
c3QKKyAgICAgICAgeworICAgICAgICAgICAgdW5zaWduZWQgaGFzaGVzWzJdOworICAgICAgICAg
ICAgaGFzaGVzWzBdID0gV1RGOjppbnRIYXNoKGNvbm5lY3Rpb25JZGVudGlmaWVyLnRvVUludDY0
KCkpOworICAgICAgICAgICAgaGFzaGVzWzFdID0gV1RGOjppbnRIYXNoKGZldGNoSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIFN0cmluZ0hh
c2hlcjo6aGFzaE1lbW9yeShoYXNoZXMsIHNpemVvZihoYXNoZXMpKTsKKyAgICAgICAgfQorICAg
IH07CisKKyAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQorICAgICAgICA6IG1fc2Vz
c2lvbklEKHNlc3Npb25JRCkKKyAgICAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0
aW9uKSkKKyAgICAgICAgLCBtX2lkZW50aWZpZXIoSWRlbnRpZmllciB7Y29ubmVjdGlvbklkZW50
aWZpZXIsIGZldGNoSWRlbnRpZmllcn0pCisgICAgeyB9CisKKyAgICBQQUw6OlNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAg
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9OworCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXImIGEsIGNvbnN0IFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXImIGIpCit7CisgICAgcmV0dXJuIGEuY29ubmVjdGlv
bklkZW50aWZpZXIgPT0gYi5jb25uZWN0aW9uSWRlbnRpZmllciAmJiAgYS5mZXRjaElkZW50aWZp
ZXIgPT0gYi5mZXRjaElkZW50aWZpZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisK
K25hbWVzcGFjZSBXVEYgeworCitzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNoVGFza0lkZW50aWZp
ZXJIYXNoIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJLaXQ6OlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXImIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQor
ICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFz
azo6SWRlbnRpZmllciYgYSwgY29uc3QgV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJ
ZGVudGlmaWVyJiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBz
YWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OworCit0ZW1wbGF0ZTw+IHN0
cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmll
cj4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6Oklk
ZW50aWZpZXI+IHsKKyAgICBzdGF0aWMgV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJ
ZGVudGlmaWVyIGVtcHR5VmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICAKKyAgICBzdGF0aWMg
dm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpJZGVudGlmaWVyJiBzbG90KSB7IHNsb3QuY29ubmVjdGlvbklkZW50aWZpZXIgPSBtYWtlT2Jq
ZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyVHlwZT4o
c3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46Om1heCgpKTsgfQorICAgIAorICAgIHN0YXRp
YyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFz
azo6SWRlbnRpZmllciYgc2xvdCkgeyByZXR1cm4gc2xvdC5jb25uZWN0aW9uSWRlbnRpZmllci50
b1VJbnQ2NCgpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsgfQorfTsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrOjpJZGVudGlmaWVyPiB7CisgICAgdHlwZWRlZiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
SWRlbnRpZmllckhhc2ggSGFzaDsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU3N2YwNzJiZDE4Njc3N2E4OWFmYmFlYmQwOTlmMTA5MTM1
OGE3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
IyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKKworbWVzc2FnZXMgLT4gU2VydmljZVdvcmtlckZldGNoVGFzayB7
CisgICAgRGlkTm90SGFuZGxlKCkKKyAgICBEaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
ZXJyb3IpCisgICAgRGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSByZXNwb25zZSkKKyAgICBEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNl
TWVzc2FnZSkKKyAgICBEaWRSZWNlaXZlRGF0YShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVu
Y2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKKyAgICBEaWRSZWNlaXZlRm9ybURh
dGEoSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBkYXRhKQorICAgIERpZEZpbmlzaCgpCit9CisKKyNl
bmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uY3BwCmluZGV4IDVhYWM3ZmQ5ZGQwOTIwZWI2ZjhlNTZhZjhmOTAxODBjNzg0OGEy
OWYuLmE0OTUzNWJhOTIyNmE2ZjRmYTJkY2NmZjUzZTAzOTIzYmQzYjk0NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMjgsNiArMTI4LDcgQEAgdm9pZCBX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OnVwZGF0ZVdvcmtlclN0YXRlSW5DbGllbnQoU2VydmljZVdv
cmtlcklkZW50aWZpZXIgd28KIAogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZl
dGNoKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogewor
ICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjYW5jZWxGZXRj
aDogJXMiLCBmZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwog
ICAgIGF1dG8qIHdvcmtlciA9IHNlcnZlcigpLmFjdGl2ZVdvcmtlckZyb21SZWdpc3RyYXRpb25J
RChzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF3b3JrZXIg
fHwgIXdvcmtlci0+aXNSdW5uaW5nKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEzNSw3ICsxMzYs
NyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Y2FuY2VsRmV0Y2goU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2VydgogICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50
aWZpZXIgPSB3b3JrZXItPmlkZW50aWZpZXIoKTsKICAgICBzZXJ2ZXIoKS5ydW5TZXJ2aWNlV29y
a2VySWZOZWNlc3Nhcnkoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKHRoaXMpLCB0aGlzLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZmV0Y2hJZGVudGlm
aWVyXShhdXRvKiBjb250ZXh0Q29ubmVjdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFr
VGhpcyAmJiBjb250ZXh0Q29ubmVjdGlvbikKLSAgICAgICAgICAgIHNlbmRUb0NvbnRleHRQcm9j
ZXNzKCpjb250ZXh0Q29ubmVjdGlvbiwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpDYW5jZWxGZXRjaCB7IHRoaXMtPmlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciB9KTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFdl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiY+KCpjb250ZXh0Q29ubmVjdGlvbikuY2FuY2Vs
RmV0Y2godGhpcy0+aWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIApAQCAtMTQ4LDcgKzE0OSw3IEBAIHZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNlcnZpY2VX
b3JrZXJSZWdpc3RyCiAgICAgYXV0byBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHdvcmtlci0+
aWRlbnRpZmllcigpOwogICAgIHNlcnZlcigpLnJ1blNlcnZpY2VXb3JrZXJJZk5lY2Vzc2FyeShz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRo
aXMsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXJdKGF1dG8qIGNvbnRl
eHRDb25uZWN0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzICYmIGNvbnRleHRD
b25uZWN0aW9uKQotICAgICAgICAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoKmNvbnRleHRDb25u
ZWN0aW9uLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkNvbnRpbnVl
RGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UgeyB0aGlzLT5pZGVudGlmaWVyKCksIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIgfSk7CisgICAgICAgICAgICBzdGF0aWNfY2Fz
dDxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mPigqY29udGV4dENvbm5lY3Rpb24pLmNv
bnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UodGhpcy0+aWRlbnRpZmllcigpLCBmZXRjaElk
ZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIApAQCAtMTg3
LDcgKzE4OCw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpCiAKICAgICAgICAgICAgIGlmIChj
b250ZXh0Q29ubmVjdGlvbikgewogICAgICAgICAgICAgICAgIFNXU0VSVkVSQ09OTkVDVElPTl9S
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydEZldGNoOiBTdGFydGluZyBmZXRjaCAlcyB2aWEg
c2VydmljZSB3b3JrZXIgJXMiLCBmZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0Zjgo
KS5kYXRhKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBzZW5kVG9Db250ZXh0UHJvY2VzcygqY29udGV4dENv
bm5lY3Rpb24sIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3RhcnRG
ZXRjaCB7IHRoaXMtPmlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGZldGNo
SWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgZm9ybURhdGEsIHJlZmVycmVyIH0pOworICAg
ICAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiY+
KCpjb250ZXh0Q29ubmVjdGlvbikuc3RhcnRGZXRjaChtX3Nlc3Npb25JRCwgbV9jb250ZW50Q29u
bmVjdGlvbi5nZXQoKSwgdGhpcy0+aWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zLCBmb3JtRGF0YSwgcmVmZXJyZXIp
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBTV1NFUlZFUkNPTk5FQ1RJ
T05fUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnRGZXRjaDogZmV0Y2hJZGVudGlm
aWVyOiAlcyBEaWROb3RIYW5kbGUgYmVjYXVzZSBmYWlsZWQgdG8gcnVuIHNlcnZpY2Ugd29ya2Vy
IiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgICAgICAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29y
a2VyQ2xpZW50RmV0Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2
NCgpKTsKQEAgLTI0Myw0NCArMjQ0LDYgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNj
aGVkdWxlSm9iSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhKQogICAgIHNl
cnZlcigpLnNjaGVkdWxlSm9iKFdURk1vdmUoam9iRGF0YSkpOwogfQogCi12b2lkIFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZShGZXRjaElkZW50
aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
LXsKLSAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50RmV0Y2g6OkRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlIHsgcmVzcG9uc2UgfSwgZmV0
Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwotfQotCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmll
ciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCi17Ci0gICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlUmVzcG9uc2Ug
eyByZXNwb25zZSwgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgfSwgZmV0
Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwotfQotCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZUZldGNoRGF0YShGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgp
Ci17Ci0gICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtl
ckNsaWVudEZldGNoOjpEaWRSZWNlaXZlRGF0YSB7IGRhdGEsIGVuY29kZWREYXRhTGVuZ3RoIH0s
IGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OmRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50
aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmIGZvcm1EYXRhKQotewotICAgIG1f
Y29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRj
aDo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsgZm9ybURhdGEgfSwgZmV0Y2hJZGVudGlmaWVyLnRvVUlu
dDY0KCkpOwotfQotCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkRmluaXNoRmV0Y2go
RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKLXsKLSAgICBTV1NFUlZFUkNPTk5FQ1RJ
T05fUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoRmV0Y2g6IGZldGNoSWRlbnRpZmll
cjogJXMiLCBmZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwot
ICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaDo6RGlkRmluaXNoIHsgfSwgZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwotfQot
Ci12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkRmFpbEZldGNoKEZldGNoSWRlbnRpZmll
ciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAgIFNX
U0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJkaWRGYWlsRmV0
Y2g6IGZldGNoSWRlbnRpZmllcjogJXMiLCBmZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwotICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkRmFpbCB7IGVycm9yIH0sIGZldGNoSWRlbnRp
Zmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5v
dEhhbmRsZUZldGNoKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCi17Ci0gICAgU1dT
RVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZE5vdEhhbmRsZUZldGNo
OiBmZXRjaElkZW50aWZpZXI6ICVzIiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKLSAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKLX0KLQogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllciBkZXN0aW5hdGlvbkNv
bnRleHRJZGVudGlmaWVyLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
T3JpZ2luKQogewogICAgIGF1dG8qIHNvdXJjZVNlcnZpY2VXb3JrZXIgPSBzZXJ2ZXIoKS53b3Jr
ZXJCeUlEKHNvdXJjZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5oCmluZGV4IDJiNGFlZTYzYjU0YWM2OWZkYjRhZGZkN2MyOTFmMTAwMDAxNjVmYTYuLjg1MDA2
YWIyN2MwNzRkNzkyZDk2NjVhMzZkODYzYzU2Mjg0MmVmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5o
PgpAQCAtNjMsMTQgKzY0LDYgQEAgcHVibGljOgogCiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2
ZUZldGNoUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpOwotICAg
IHZvaWQgZGlkUmVjZWl2ZUZldGNoRGF0YShXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOwotICAgIHZv
aWQgZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25z
dCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hGZXRjaChXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXIpOwotICAgIHZvaWQgZGlkRmFpbEZldGNoKFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwotICAgIHZvaWQg
ZGlkTm90SGFuZGxlRmV0Y2goV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKLQogICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlm
aWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZVNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CiAgICAgdm9p
ZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvbiwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29u
c3QgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApp
bmRleCAwMDBlNDI3ZWUwZDhmOTAyYjUxNzBiNWI3YzM4NDExYzg1ZjdiOWU4Li5mMjhkNDhjMTIw
ZDY0ZWZmNTZjYWEwY2YwYmZlZWVjNDQ1YTNhZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMjgsNyArMjgsMTAgQEAKIAog
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNl
LmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhLmg+CkBAIC01Nyw3ICs2MCw5IEBAIHVpbnQ2NF90IFdlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25z
dAogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3Nl
ZCgpCiB7Ci0gICAgLy8gRklYTUU6IERvIHdoYXQgaGVyZS4uLj8KKyAgICBhdXRvIGZldGNoZXMg
PSBXVEZNb3ZlKG1fb25nb2luZ0ZldGNoZXMpOworICAgIGZvciAoYXV0byYgZmV0Y2ggOiBmZXRj
aGVzLnZhbHVlcygpKQorICAgICAgICBmZXRjaC0+ZGlkRmFpbChSZXNvdXJjZUVycm9yIHsgZXJy
b3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgeyB9LCAiU2VydmljZSBXb3JrZXIgY29udGV4dCBj
bG9zZWQiX3MgfSk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpp
bnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRh
JiBkYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
KQpAQCAtMTE1LDYgKzEyMCw1OSBAQCB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6dGVybWluYXRlKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6VGVybWluYXRlUHJvY2VzcygpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb246OnN0YXJ0RmV0Y2goUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBSZWY8
SVBDOjpDb25uZWN0aW9uPiYmIGNvbnRlbnRDb25uZWN0aW9uLCBXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50
aWZpZXIgY29udGVudEZldGNoSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgRmV0Y2hPcHRpb25zJiBvcHRpb25zLCBjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiBk
YXRhLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQoreworICAgIGF1dG8gZmV0Y2hJZGVudGlmaWVy
ID0gRmV0Y2hJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIAorICAgIG1fb25nb2luZ0ZldGNo
ZXMuYWRkKGZldGNoSWRlbnRpZmllciwgU2VydmljZVdvcmtlckZldGNoVGFzazo6Y3JlYXRlKHNl
c3Npb25JRCwgV1RGTW92ZShjb250ZW50Q29ubmVjdGlvbiksIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBjb250ZW50RmV0Y2hJZGVudGlmaWVyKSk7CisKKyAgICBBU1NFUlQoIW1fb25nb2lu
Z0ZldGNoSWRlbnRpZmllcnMuY29udGFpbnMoe3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBj
b250ZW50RmV0Y2hJZGVudGlmaWVyfSkpOworICAgIG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMu
YWRkKHtzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29udGVudEZldGNoSWRlbnRpZmllcn0s
IGZldGNoSWRlbnRpZmllcik7CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaCB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25z
LCBkYXRhLCByZWZlcnJlciB9KTsKK30KKwordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OmNhbmNlbEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBjb250ZW50RmV0Y2hJ
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vbmdvaW5nRmV0Y2hJZGVudGlmaWVycy5maW5k
KHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnRlbnRGZXRjaElkZW50aWZpZXIgfSk7
CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMuZW5kKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjpDYW5jZWxGZXRjaCB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgaXRlcmF0b3ItPnZhbHVlIH0pOworCisgICAgbV9vbmdvaW5n
RmV0Y2hlcy5yZW1vdmUoaXRlcmF0b3ItPnZhbHVlKTsKKyAgICBtX29uZ29pbmdGZXRjaElkZW50
aWZpZXJzLnJlbW92ZShpdGVyYXRvcik7Cit9CisKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNo
SWRlbnRpZmllciBjb250ZW50RmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vbmdv
aW5nRmV0Y2hJZGVudGlmaWVycy5maW5kKHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNv
bnRlbnRGZXRjaElkZW50aWZpZXIgfSk7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb25nb2luZ0Zl
dGNoSWRlbnRpZmllcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q29udGludWVEaWRSZWNlaXZl
RmV0Y2hSZXNwb25zZSB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgaXRlcmF0b3ItPnZhbHVlIH0pOworfQorCit2b2lkIFdlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoVGFza01lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgYXV0byBpdGVy
YXRvciA9IG1fb25nb2luZ0ZldGNoZXMuZmluZChtYWtlT2JqZWN0SWRlbnRpZmllcjxGZXRjaElk
ZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpOworICAgIGlmIChpdGVyYXRv
ciA9PSBtX29uZ29pbmdGZXRjaGVzLmVuZCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAg
Ym9vbCBzaG91bGRSZW1vdmUgPSBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZhaWw6Om5hbWUoKQorICAgICAgICB8fCBkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZE5v
dEhhbmRsZTo6bmFtZSgpCisgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNz
YWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmluaXNoOjpuYW1lKCkKKyAgICAgICAg
fHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrOjpEaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZTo6bmFtZSgpOworCisgICAgaXRlcmF0b3It
PnZhbHVlLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKworICAgIGlm
IChzaG91bGRSZW1vdmUpIHsKKyAgICAgICAgQVNTRVJUKG1fb25nb2luZ0ZldGNoSWRlbnRpZmll
cnMuY29udGFpbnMoaXRlcmF0b3ItPnZhbHVlLT5pZGVudGlmaWVyKCkpKTsKKyAgICAgICAgbV9v
bmdvaW5nRmV0Y2hJZGVudGlmaWVycy5yZW1vdmUoaXRlcmF0b3ItPnZhbHVlLT5pZGVudGlmaWVy
KCkpOworICAgICAgICBtX29uZ29pbmdGZXRjaGVzLnJlbW92ZShpdGVyYXRvcik7CisgICAgfQor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
aAppbmRleCAyZjg4OWIyODZiYzFlMWRkNmI1NzEzMWU2NTg0ZjVhZTBmMTE0NzE1Li4yNTVkMjdj
MjEzMmExNzA3OGMwYmIyN2Y1ZmJmNzQ1MzU2ZDU2ZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC0yOSw4ICsyOSwyMiBAQAogCiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgor
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1
Y3QgRmV0Y2hPcHRpb25zOworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworfQorCituYW1lc3BhY2Ug
SVBDIHsKK2NsYXNzIEZvcm1EYXRhUmVmZXJlbmNlOworfQorCituYW1lc3BhY2UgUEFMIHsKK2Ns
YXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQ
cm9jZXNzOwpAQCAtNTEsNiArNjUsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGUo
KTsKIAorICAgIHZvaWQgc3RhcnRGZXRjaChQQUw6OlNlc3Npb25JRCwgUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwg
Y29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQg
Y2FuY2VsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7Cisg
ICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIpOworCisgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hUYXNr
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKwogcHJpdmF0ZToKICAg
ICBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oTmV0d29ya1Byb2Nlc3MmLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKICAg
ICB+V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCk7CkBAIC03NSw2ICs5NSw4IEBAIHBy
aXZhdGU6CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9pcGNDb25uZWN0aW9uOwogICAgIFJl
ZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsKICAgICAKKyAgICBIYXNoTWFwPFNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmll
cj4gbV9vbmdvaW5nRmV0Y2hJZGVudGlmaWVyczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZldGNo
SWRlbnRpZmllciwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s+PiBtX29uZ29pbmdGZXRjaGVz
OwogfTsgLy8gY2xhc3MgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNTljZWY4M2E1MjM5ZWVhMGNhMTk3ZjY4Y2Iz
NzIwNjdiOTc5ZTAyOS4uZmM4NmM2NjgxMjRiNGUyYzQwMTQ0NjNlNWQ5MDQxM2FhNjM0ZDNlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC01Niw2ICs1Niw3IEBAIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0
d29ya0Jsb2JSZWdpc3RyeS5jcHAKIAogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5jcHAKIAorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBAbm8tdW5pZnkKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5jcHAgQG5vLXVuaWZ5CiBOZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CiBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgQG5v
LXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYzQzZTRlNTA5MGJlZGM3MWM5ZGU2M2Y4
NjdmNzQwYTk0MWZkMGYxMi4uMjY5ZDc0OTdlNDNiOWIyMTMxZWIyN2U3YWRiOGM5ZTI2ZDMxOWZj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTc4LDUgKzU3OCw1IEBAIFdlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gQG5v
LXVuaWZ5CiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLm1tCiAKIC8vIERlcml2ZWQgU291cmNlcwotCiBFZGl0YWJsZUltYWdlQ29u
dHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdl
UmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA2NDM2NTUzNmQ2MTI3NDdjNjBmNjdiODc1NzkwM2YxZTg1OTE5YWY1Li5k
NzliYmJiZjFjMDUxYWMzYjE4ZmNhYzY0ZGY5YjBlYmY4MmE0M2YxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5MCw2ICs4OTAsNyBA
QAogCQk0MURDNDU5NjFFM0Q2RTIyMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURDNDU5NDFFM0Q2
RTFFMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggKi87IH07CiAJCTQxREM0NTlDMUUz
REJCMjgwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREM0NTlBMUUzREJCMjQwMEIxMUY1MSAv
KiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCAqLzsgfTsKIAkJNDFEQzQ1OUYxRTNEQkRBNTAwQjEx
RjUxIC8qIFdlYlJUQ1NvY2tldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDFGQUY1RjMxRTNCRkU3RjAwMUFFNjc4IC8qIFdlYlJUQ1NvY2tldC5oICov
OyB9OworCQk0MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUgLyogU2VydmljZVdvcmtlckZldGNoVGFz
ay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUx
ODUzNjIyMjcwNEY2MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgKi87IH07
CiAJCTQxRkFCRDJBMUY0REUwMDEwMDZBNkM5NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUJEMjgx
RjREREZEQzAwNkE2Qzk3IC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggKi87IH07CiAJCTQx
RkFGNUY1MUUzQzA2NDkwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjQxRTNDMDY0MTAwMUFFNjc4
IC8qIFdlYlJUQ1Jlc29sdmVyLmggKi87IH07CiAJCTQxRkFGNUY4MUUzQzEwMjEwMDFBRTY3OCAv
KiBMaWJXZWJSVENSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDFGQUY1RjYxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVy
LmggKi87IH07CkBAIC0zMDM3LDYgKzMwMzgsOSBAQAogCQk0MTRERDM3ODIwQkY0M0VBMDA2OTU5
RkIgLyogY29tLmNpc2NvLndlYmV4LnBsdWdpbi5ncGM2NC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBjb20uY2lzY28ud2ViZXgucGx1Z2luLmdwYzY0LnNiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTRERURENTFGOUVERERGMDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNERFREQ2MUY5
RURERTAwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTUxODUzNTIyMjcwNEY1MDA1NDMwQzYg
LyogU2VydmljZVdvcmtlckZldGNoVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxNTE4NTM2MjIyNzA0RjYwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRj
aFRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTUxODUzODIyMjcwRjUz
MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTUxRTVDMzFGQkI5MEE5MDBFNDdFMkQgLyogRm9ybURh
dGFSZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybURhdGFS
ZWZlcmVuY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1Nzg1MzAyMTI3NkI2
RjAwREQzODAwIC8qIGNvcHktd2ViY29udGVudC1yZXNvdXJjZXMtdG8tcHJpdmF0ZS1oZWFkZXJz
LnNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5zY3JpcHQuc2g7IHBhdGggPSAiY29weS13ZWJjb250ZW50LXJlc291cmNlcy10by1wcml2YXRl
LWhlYWRlcnMuc2giOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU3RTRBRjIwRTJF
Qzk4MDBBNkMwRDcgLyogY29tLmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IGNvbS5nb29nbGUubzFkYnJvd3NlcnBsdWdpbi5zYjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTcwMTcsNiArNzAyMSw5IEBACiAJCTkzQkEwNEQ5MjE1MUFEQ0Qw
MDdGNDU1RiAvKiBTZXJ2aWNlV29ya2VyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQk0MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYgLyogU2VydmljZVdvcmtl
ckZldGNoVGFzay5jcHAgKi8sCisJCQkJNDE1MTg1MzUyMjI3MDRGNTAwNTQzMEM2IC8qIFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2suaCAqLywKKwkJCQk0MTUxODUzODIyMjcwRjUzMDA1NDMwQzYgLyog
U2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbiAqLywKIAkJCQk5M0JBMDRERjIxNTFB
REY0MDA3RjQ1NUYgLyogV2ViU1dPcmlnaW5TdG9yZS5jcHAgKi8sCiAJCQkJOTNCQTA0REUyMTUx
QURGNDAwN0Y0NTVGIC8qIFdlYlNXT3JpZ2luU3RvcmUuaCAqLywKIAkJCQk5M0JBMDRFMTIxNTFB
REY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLywKQEAgLTEwNzkyLDcg
KzEwNzk5LDYgQEAKIAkJCQkyRDkxMzQ0NDIxMkNGOUYwMDAxMjhBRkQgLyogTmV0c2NhcGVQbHVn
aW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3OTYyMTJCNkFEQTAwRjQ5M0ZEIC8qIE5l
dHNjYXBlUGx1Z2luTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ1MjEyQ0Y5
RjAwMDEyOEFGRCAvKiBOZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk2QkQwNTg2NjIyMENFOEMyMDAwQkVENUMgLyogTmV0d29ya0FkQ2xpY2tBdHRyaWJ1dGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUREOUYyODE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTJGMDYwRTExNjU0MzE4NTAwRjMyODFCIC8qIE5ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1
NDMxODUwMEYzMjgzRiAvKiBOZXR3b3JrTUROU1JlZ2lzdGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLApAQCAtMTEwMjgsNiArMTEwMzQsNyBAQAogCQkJCTJEODUwOEM2MjEyRTMz
RUQwMDBFRjQ2QyAvKiBVbmlmaWVkU291cmNlOTcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ4
NTA4RDgyMTJFMzNFRDAwMEVGNDZDIC8qIFVuaWZpZWRTb3VyY2U5OC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDg1MDhDNTIxMkUzM0VEMDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTk5LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTQxREU3QzZDMjIyNzhGMUUwMDUzMkI2NSAvKiBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEODUwOEQyMjEyRTMzRUQwMDBF
RjQ2QyAvKiBVbmlmaWVkU291cmNlMTAwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjBE
MUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA1YmQ4MjNmNzc3NGQz
OTZjNDM4OWQ0N2I0ZGM2MTA1ZmFiZWJiMjNlLi40MjU0Y2M3ZmI0NzQ3ZmVhZGU5Y2Q3MmNjYWY1
M2IzYWY5ZmE2YWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNhY2hlU3Rv
cmFnZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5j
bHVkZSAiV2ViRGF0YWJhc2VQcm92aWRlci5oIgpAQCAtMjI1LDEyICsyMjYsMTIgQEAgdm9pZCBX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnYKIHsKICAgICBhdXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkg
PSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHko
c2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIGlmICghc2VydmljZVdvcmtlclRocmVhZFBy
b3h5KSB7Ci0gICAgICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWROb3RIYW5kbGVGZXRjaCB7IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIgfSwgMCk7CisgICAgICAgIG1fY29ubmVjdGlvblRv
TmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRp
ZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAogICAgIGlmICghaXNWYWxpZEZldGNoKHJlcXVlc3QsIG9wdGlvbnMsIHNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+c2NyaXB0VVJMKCksIHJlZmVycmVyKSkgewotICAgICAg
ICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6RGlkTm90SGFuZGxlRmV0Y2ggeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0
Y2hJZGVudGlmaWVyIH0sIDApOworICAgICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWROb3RIYW5kbGUgeyB9
LCBmZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKaW5kZXggMDVjNjhiMjU4Yzdi
OWY0OTZkMmE5OThjNTgxMjlmZTI3MGZjYTQ1NS4uOTUzMGY1NDZhMDEyMzE0MjU2NGNlYzNhNmE5
OWNmNWNmZDg4OWUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpk
aWRSZWNlaXZlUmVkaXJlY3Rpb24oY29uc3QgV2ViQ29yZTo6UmVzb3UKIHsKICAgICBpZiAoIW1f
Y29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UgeyBt
X3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVzcG9uc2Ug
fSwgMCk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrOjpEaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSB7IHJlc3BvbnNlIH0sIG1fZmV0Y2hJ
ZGVudGlmaWVyLnRvVUludDY0KCkpOwogCiAgICAgY2xlYW51cCgpOwogfQpAQCAtNjgsNyArNjgs
NyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJgogICAgIGlmIChtX25lZWRzQ29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQogICAgICAgICBtX3dhaXRpbmdGb3JDb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZU1lc3NhZ2UgPSB0cnVlOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UgeyBtX3NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVzcG9uc2UsIG1fbmVl
ZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgfSwgMCk7CisgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlUmVz
cG9uc2UgeyByZXNwb25zZSwgbV9uZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2Fn
ZSB9LCBtX2ZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYm
IGJ1ZmZlcikKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OkRpZFJlY2VpdmVGZXRjaERhdGEgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgeyBidWZmZXIgfSwgc3RhdGljX2Nhc3Q8aW50NjRf
dD4oYnVmZmVyLT5zaXplKCkpIH0sIDApOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyB7IGJ1ZmZlciB9LCBz
dGF0aWNfY2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZpZXIu
dG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6
ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mJiBmb3JtRGF0YSkKQEAg
LTEwMSw3ICsxMDEsNyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRp
ZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+JgogICAgIC8vIEZvciBub3cg
YW5kIGZvciB0aGUgY2FzZSBvZiBibG9icywgd2UgcmVhZCBpdCB0aGVyZSBhbmQgc2VuZCB0aGUg
ZGF0YSB0aHJvdWdoIElQQy4KICAgICBVUkwgYmxvYlVSTCA9IGZvcm1EYXRhLT5hc0Jsb2JVUkwo
KTsKICAgICBpZiAoYmxvYlVSTC5pc051bGwoKSkgewotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YSB7IG1f
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCAwKTsKKyAgICAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZl
Rm9ybURhdGEgeyBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9
LCBtX2ZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dDo6ZGlkUmVjZWl2ZUJsb2JDaHVuayhjb25zdCBjaGFyKiBkYXRhLCBzaXplCiAgICAgaWYgKCFt
X2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZFJlY2VpdmVGZXRjaERhdGEgeyBtX3NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgeyByZWludGVycHJldF9jYXN0
PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgc2l6ZSB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihzaXpl
KSB9LCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgeyByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4
X3QqPihkYXRhKSwgc2l6ZSB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihzaXplKSB9LCBtX2ZldGNo
SWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50OjpkaWRGaW5pc2hCbG9iTG9hZGluZygpCkBAIC0xNDksNyArMTQ5LDcgQEAgdm9p
ZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGYWlsKGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkRmFpbEZldGNoIHsgbV9zZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIGVycm9yIH0sIDApOworICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlk
RmFpbCB7IGVycm9yIH0sIG1fZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogCiAgICAgY2xl
YW51cCgpOwogfQpAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudDo6ZGlkRmluaXNoKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZEZpbmlzaEZldGNo
IHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSwgMCk7
CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpEaWRGaW5pc2ggeyB9LCBtX2ZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIAogICAgIGNs
ZWFudXAoKTsKIH0KQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQ6OmRpZE5vdEhhbmRsZSgpCiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OkRpZE5vdEhhbmRsZUZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
bV9mZXRjaElkZW50aWZpZXIgfSwgMCk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWROb3RIYW5kbGUgeyB9LCBtX2ZldGNoSWRlbnRp
Zmllci50b1VJbnQ2NCgpKTsKIAogICAgIGNsZWFudXAoKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363258</attachid>
            <date>2019-02-28 13:26:20 -0800</date>
            <delta_ts>2019-03-05 10:50:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195130-20190228132614.patch</filename>
            <type>text/plain</type>
            <size>55995</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY3ZWQ0OTM5M2MyMzgxZGRm
MDA2YjFhN2VjN2FjMWEwM2FjY2Q3YzAuLjJkZGVkMGY2MzJjNTQ4OTJkZjRlZmU0YjU1ZTAzNTQ1
MWZiNzcxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTktMDItMjggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTUxMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIGlzIGFkZGVkIHRvIHJlcHJlc2VudCBOZXR3b3Jr
UHJvY2VzcyBzaWRlIG9mIGFuIG9uZ29pbmcgZmV0Y2ggaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3
b3JrZXIuCisgICAgICAgIFRoaXMgcGF0Y2ggc2hvdWxkIG5vdCBjaGFuZ2UgZXhpc3RpbmcgYmVo
YXZpb3IuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZEZhaWxGZXRjaCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWROb3RIYW5kbGVGZXRjaCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJl
c3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZFJl
Y2VpdmVGZXRjaFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmRpZFJlY2VpdmVGZXRjaERhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkRmluaXNoRmV0Y2gpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNo
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0
Y2hSZWRpcmVjdFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoRGF0YSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OmRpZEZpbmlzaEZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRGYWlsRmV0Y2gpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5vdEhhbmRsZUZldGNoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjYW5jZWxGZXRjaCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y29udGludWVEaWRS
ZWNlaXZlRmV0Y2hSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoVGFza01lc3NhZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
Lmg6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVkaXJlY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpk
aWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2Vp
dmVCbG9iQ2h1bmspOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudDo6ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6ZGlkTm90SGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlZGlyZWN0UmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNl
aXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpk
aWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OmRpZFJlY2VpdmVGb3JtRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s6OmRpZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpk
aWROb3RIYW5kbGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlckZldGNoVGFzay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdv
cmtlckZldGNoVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZl
dGNoVGFzazo6SWRlbnRpZmllcjo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tJZGVudGlmaWVySGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tJZGVudGlmaWVySGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdl
YktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllcj46OmVtcHR5VmFsdWUpOgor
ICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6
SWRlbnRpZmllcj46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hU
cmFpdHM8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyPjo6aXNEZWxl
dGVkVmFsdWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTktMDItMjggIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDb29yZGlu
YXRlZEdyYXBoaWNzXSBSZW1vdmUgQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQgb3B0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dC9DTWFrZUxpc3RzLnR4dAppbmRleCBiY2I4NzY0NTBjM2IzNzUxYTEyODA0Y2JkNTQ1NzQ1ZjM4
MDk5NWIzLi4wNGVjMjM3OWFjZWRhMjk1OWM2YjMyOTNhZjE3Y2YwYTU5NTllMTQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKQEAgLTExMSw2ICsxMTEsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmlu
CiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgogCisg
ICAgTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1l
c3NhZ2VzLmluCiAgICAgTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KICAgICBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggM2Q2M2U3ODU3Mjk0YTFi
MTljOTliYWEwOWU4YTFlNjE3YWVhMDgxMC4uNmY3YzhkYjA0ZGE4MWFkYTdmYmQ3ZTdjZjg3MWZm
OTc3MWRmOWQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdApAQCAtMjQsNiArMjQsNyBAQCAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgor
JChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDhiNzVjM2JlNGEwZDBhN2Uz
OTNmNTlkYjBjMDEzNWU4NTUyZmJmZGEuLjFhYTk3MDMxZDhmOTBmNjc2YTIzZDBhMzFhNmQyYjRh
ZWQzZjdlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdApAQCAtODAsNiArODAsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TZWNJdGVtU2hpbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VjSXRlbVNoaW1Qcm94eU1l
c3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Nl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaE1l
c3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Nl
cnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU21hcnRN
YWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xs
ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9TdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCBjMzk0Njc1ZDFlMTIyZjQxODU1NGM4YjdjMjE3YWYzODJjNTM3ZGQ2Li4zYTZh
N2EyMmUwNTUxMjFiZGZiZTFjZGNlZTYzNWJhNTc0MGU4NTRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC0xMzEsNiArMTMxLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAg
UmVtb3RlV2ViSW5zcGVjdG9yVUkgXAogICAgIFNlY0l0ZW1TaGltUHJveHkgXAogICAgIFNlcnZp
Y2VXb3JrZXJDbGllbnRGZXRjaCBcCisgICAgU2VydmljZVdvcmtlckZldGNoVGFzayBcCiAgICAg
U21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAgICAgU3RvcmFnZUFyZWFNYXAgXAogICAg
IFN0b3JhZ2VNYW5hZ2VyIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZTU5YTQz
MzNkOTNhMWY5M2RkOGIyNDk4YzM0Y2NjZTI2ZGIzZDM1ZC4uN2UyNjhhOTA1ODM4MmVmODQ5YTYw
OGExNDJlMTI1MzdmZWQ5Mjc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ1
LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJQaW5nTG9hZC5oIgogI2luY2x1ZGUgIlByZWNvbm5lY3RUYXNrLmgiCisjaW5jbHVk
ZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50LmgiCkBAIC0xODAsMTMgKzE4MSwyMCBAQCB2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3RpbwogICAgICAgICAgICAgc3dDb25uZWN0aW9uLT5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKKwogICAg
IGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAg
aWYgKGF1dG8qIGNvbnRleHRDb25uZWN0aW9uID0gbV9uZXR3b3JrUHJvY2Vzcy0+Y29ubmVjdGlv
blRvQ29udGV4dFByb2Nlc3NGcm9tSVBDQ29ubmVjdGlvbihjb25uZWN0aW9uKSkgewogICAgICAg
ICAgICAgY29udGV4dENvbm5lY3Rpb24tPmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQorCisgICAgaWYg
KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNv
bnRleHRDb25uZWN0aW9uID0gbV9uZXR3b3JrUHJvY2Vzcy0+Y29ubmVjdGlvblRvQ29udGV4dFBy
b2Nlc3NGcm9tSVBDQ29ubmVjdGlvbihjb25uZWN0aW9uKSkgeworICAgICAgICAgICAgY29udGV4
dENvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaFRhc2tNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQogI2VuZGlmCiAKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggZjY3OTQ0YjgzZDQyNTdmZWRlOTkyMDJhNWU3NzA2
ZDBkZWI5NzZkZi4uNWRmYzRhYmE4NzIxZGM4OGVmYzM2NzVlMWNlOWQxMWUzNGM1OTIwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAg
LTIxNjYsNDggKzIxNjYsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgcwogICAgICAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3Moc2VjdXJp
dHlPcmlnaW4pLCAwKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkRmFpbEZldGNoKFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZl
dGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
KQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25zLmdl
dChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNvbm5lY3Rpb24tPmRpZEZh
aWxGZXRjaChmZXRjaElkZW50aWZpZXIsIGVycm9yKTsKLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZGlkTm90SGFuZGxlRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKLXsK
LSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5nZXQoc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICBjb25uZWN0aW9uLT5kaWROb3RIYW5k
bGVGZXRjaChmZXRjaElkZW50aWZpZXIpOwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRS
ZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIGlm
IChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaFJl
ZGlyZWN0UmVzcG9uc2UoZmV0Y2hJZGVudGlmaWVyLCByZXNwb25zZSk7Ci19Ci0KLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRj
aElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBi
b29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQotewotICAgIGlmIChh
dXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKGZldGNoSWRlbnRpZmllciwgcmVzcG9uc2UsIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVz
cG9uc2VNZXNzYWdlKTsKLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNo
RGF0YShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi17Ci0gICAgaWYgKGF1dG8q
IGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKSkKLSAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZUZldGNoRGF0YShmZXRj
aElkZW50aWZpZXIsIGRhdGEsIGVuY29kZWREYXRhTGVuZ3RoKTsKLX0KLQotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRl
bnRpZmllciwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYgZm9ybURhdGEpCi17Ci0gICAg
aWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZUZldGNo
Rm9ybURhdGEoZmV0Y2hJZGVudGlmaWVyLCBmb3JtRGF0YSk7Ci19Ci0KLXZvaWQgTmV0d29ya1By
b2Nlc3M6OmRpZEZpbmlzaEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCi17
Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmluaXNo
RmV0Y2goZmV0Y2hJZGVudGlmaWVyKTsKLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBt
ZXNzYWdlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZU9yaWdpbikKIHsKICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dT
ZXJ2ZXJDb25uZWN0aW9ucy5nZXQoZGVzdGluYXRpb25JZGVudGlmaWVyLnNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAppbmRleCAyOTkyYWJkMjY3ZWU0YzI4NjgzODBlMzRiOGYxMTg1MzdiZDZhNjIxLi43
YzI3ZWUzMjE0NGZiMWVlZTNhODg5NTFiM2MxNzMzNThlY2M2YTRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC00MjAsMTQgKzQyMCw2IEBA
IHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICB2b2lk
IGRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sIG5lZWRzQ29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaERhdGEo
V2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVu
dGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVu
Z3RoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhKFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYpOwotICAgIHZvaWQgZGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsK
LSAgICB2b2lkIGRpZEZhaWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKTsKLSAgICB2b2lkIGRpZE5vdEhhbmRsZUZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7Ci0KICAgICB2b2lkIGRp
ZENyZWF0ZVdvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1l
bnQmKTsKICAgICAKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlT3JpZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDRkYWQ5MDYwZmQzZWFlOGIxNzMwYTIxZTQx
N2I5ODkwMDIwNGJjZDMuLjRiZGU5NGRmNTkwNmE2YTI1MDVhZjVkYTAwMTIyMGZmYTIwZDI2MTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTQ3LDEzICsxNDcsNiBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0Q2FjaGVTdG9yYWdlUGFyYW1ldGVycyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHF1b3RhLCBTdHJpbmcgY2FjaGVTdG9y
YWdlRGlyZWN0b3J5LCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGUpOwog
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIERpZE5vdEhhbmRsZUZldGNoKFdlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCi0gICAgRGlkRmFp
bEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIs
IFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCi0gICAgRGlkUmVjZWl2ZUZldGNoUmVkaXJl
Y3RSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQotICAgIERpZFJlY2VpdmVG
ZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCi0gICAgRGlkUmVjZWl2ZUZldGNoRGF0YShX
ZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBJUEM6OlNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkK
LSAgICBEaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50
aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIGRhdGEpCi0gICAg
RGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRl
bnRpZmllcikKICAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU3RyaW5nIHNvdXJj
ZU9yaWdpbikKIAogICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRl
bnRpZmllciBzb3VyY2UsIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29u
bmVjdGlvbklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTdlMGIyNDQwNzhkODMyYWVkY2RkOGE2NzkxODQxNGYyODcwYzYwMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcApAQCAtMCwwICsxLDg2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2suaCIKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRm9ybURhdGFSZWZl
cmVuY2UuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckNs
aWVudEZldGNoTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
KworI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19J
RihtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgU2VydmljZVdvcmtlciwg
IiVwIC0gU2VydmljZVdvcmtlckZldGNoVGFzazo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18p
CisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGKG1fc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBTZXJ2
aWNlV29ya2VyLCAiJXAgLSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjoiIGZtdCwgdGhpcywgIyNf
X1ZBX0FSR1NfXykKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZFJlY2VpdmVSZWRpcmVjdFJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlOiAlcyIsIG1faWRlbnRp
Zmllci5mZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpE
aWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSB7IHJlc3BvbnNlIH0sIG1faWRlbnRpZmllci5mZXRj
aElkZW50aWZpZXIudG9VSW50NjQoKSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckZldGNoVGFz
azo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBi
b29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQoreworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNl
aXZlUmVzcG9uc2UgeyByZXNwb25zZSwgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1l
c3NhZ2UgfSwgbV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30KKwor
dm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCit7CisgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZFJl
Y2VpdmVEYXRhIHsgZGF0YSwgZW5jb2RlZERhdGFMZW5ndGggfSwgbV9pZGVudGlmaWVyLmZldGNo
SWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpkaWRSZWNlaXZlRm9ybURhdGEoY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYgZm9ybURh
dGEpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2g6OkRpZFJlY2VpdmVGb3JtRGF0YSB7IGZvcm1EYXRhIH0sIG1faWRlbnRpZmllci5m
ZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckZldGNo
VGFzazo6ZGlkRmluaXNoKCkKK3sKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5p
c2hGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAlcyIsIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZp
ZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRGaW5pc2ggeyB9LCBtX2lk
ZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworfQorCit2b2lkIFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2s6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7Cisg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiZGlkRmFpbEZldGNoOiBmZXRjaElkZW50
aWZpZXI6ICVzIiwgbV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNl
V29ya2VyQ2xpZW50RmV0Y2g6OkRpZEZhaWwgeyBlcnJvciB9LCBtX2lkZW50aWZpZXIuZmV0Y2hJ
ZGVudGlmaWVyLnRvVUludDY0KCkpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OmRpZE5vdEhhbmRsZSgpCit7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkTm90SGFu
ZGxlRmV0Y2g6IGZldGNoSWRlbnRpZmllcjogJXMiLCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlm
aWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkTm90SGFuZGxlIHsgfSwg
bV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckZldGNoVGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzBjMjEzZjBiMjkxMjNh
OTUzYWYyNjJhOTRkMjg3NmQwODU3NTc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaApA
QCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgorI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK30K
KworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgRGF0YVJlZmVyZW5j
ZTsKK2NsYXNzIERlY29kZXI7CitjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sgOiBwdWJsaWMgUmVm
Q291bnRlZDxTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRl
bnRpZmllciBmZXRjaElkZW50aWZpZXIpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdv
cmtlckZldGNoVGFzayhzZXNzaW9uSUQsIFdURk1vdmUoY29ubmVjdGlvbiksIGNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpKTsgfQorCisgICAgdm9pZCBmYWlsKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKSB7IGRpZEZhaWwoZXJyb3IpOyB9CisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKwor
ICAgIHN0cnVjdCBJZGVudGlmaWVyIHsKKyAgICAgICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcjsKKyAgICAgICAgV2ViQ29yZTo6RmV0
Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcjsKKyAgICAgICAgCisgICAgICAgIGlubGluZSB1
bnNpZ25lZCBoYXNoKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgdW5zaWduZWQgaGFz
aGVzWzJdOworICAgICAgICAgICAgaGFzaGVzWzBdID0gV1RGOjppbnRIYXNoKGNvbm5lY3Rpb25J
ZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgICAgICAgICAgaGFzaGVzWzFdID0gV1RGOjppbnRI
YXNoKGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgcmV0dXJuIFN0cmluZ0hhc2hlcjo6aGFzaE1lbW9yeShoYXNoZXMsIHNpemVvZihoYXNoZXMp
KTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25z
dCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUmVmPElQQzo6Q29ubmVjdGlvbj4m
JiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVy
KQorICAgICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKKyAgICAgICAgLCBtX2Nvbm5lY3Rp
b24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAgICAgLCBtX2lkZW50aWZpZXIoSWRlbnRpZmll
ciB7Y29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcn0pCisgICAgeyB9CisKKyAg
ICB2b2lkIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVz
c2FnZSk7CisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
LCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVGb3JtRGF0
YShjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCBkaWRGaW5pc2goKTsK
KyAgICB2b2lkIGRpZEZhaWwoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZv
aWQgZGlkTm90SGFuZGxlKCk7CisKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAg
ICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgSWRlbnRpZmllciBtX2lk
ZW50aWZpZXI7Cit9OworCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2s6OklkZW50aWZpZXImIGEsIGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OklkZW50aWZpZXImIGIpCit7CisgICAgcmV0dXJuIGEuY29ubmVjdGlvbklkZW50aWZpZXIgPT0g
Yi5jb25uZWN0aW9uSWRlbnRpZmllciAmJiAgYS5mZXRjaElkZW50aWZpZXIgPT0gYi5mZXRjaElk
ZW50aWZpZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisKK25hbWVzcGFjZSBXVEYg
eworCitzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNoVGFza0lkZW50aWZpZXJIYXNoIHsKKyAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OklkZW50aWZpZXImIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQorICAgIHN0YXRpYyBib29s
IGVxdWFsKGNvbnN0IFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllciYg
YSwgY29uc3QgV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyJiBiKSB7
IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9F
bXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRz
PFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllcj4gOiBHZW5lcmljSGFz
aFRyYWl0czxXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXI+IHsKKyAg
ICBzdGF0aWMgV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyIGVtcHR5
VmFsdWUoKSB7IHJldHVybiB7IH07IH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3RE
ZWxldGVkVmFsdWUoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyJiBz
bG90KSB7IHNsb3QuY29ubmVjdGlvbklkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxX
ZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyVHlwZT4oc3RkOjpudW1lcmljX2xp
bWl0czx1aW50NjRfdD46Om1heCgpKTsgfQorICAgIAorICAgIHN0YXRpYyBib29sIGlzRGVsZXRl
ZFZhbHVlKGNvbnN0IFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllciYg
c2xvdCkgeyByZXR1cm4gc2xvdC5jb25uZWN0aW9uSWRlbnRpZmllci50b1VJbnQ2NCgpID09IHN0
ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKTsgfQorfTsKKwordGVtcGxhdGU8PiBz
dHJ1Y3QgRGVmYXVsdEhhc2g8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlm
aWVyPiB7CisgICAgdHlwZWRlZiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrSWRlbnRpZmllckhhc2gg
SGFzaDsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzU3N2YwNzJiZDE4Njc3N2E4OWFmYmFlYmQwOTlmMTA5MTM1OGE3YQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzUgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKKworbWVzc2FnZXMgLT4gU2VydmljZVdvcmtlckZldGNoVGFzayB7CisgICAgRGlkTm90SGFu
ZGxlKCkKKyAgICBEaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCisgICAgRGlk
UmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25z
ZSkKKyAgICBEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNw
b25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKKyAgICBE
aWRSZWNlaXZlRGF0YShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRf
dCBlbmNvZGVkRGF0YUxlbmd0aCkKKyAgICBEaWRSZWNlaXZlRm9ybURhdGEoSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSBkYXRhKQorICAgIERpZEZpbmlzaCgpCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmlu
ZGV4IDVhYWM3ZmQ5ZGQwOTIwZWI2ZjhlNTZhZjhmOTAxODBjNzg0OGEyOWYuLmE0OTUzNWJhOTIy
NmE2ZjRmYTJkY2NmZjUzZTAzOTIzYmQzYjk0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24uY3BwCkBAIC0xMjgsNiArMTI4LDcgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OnVwZGF0ZVdvcmtlclN0YXRlSW5DbGllbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIg
d28KIAogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogeworICAgIFNXU0VSVkVSQ09O
TkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjYW5jZWxGZXRjaDogJXMiLCBmZXRjaElk
ZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIGF1dG8qIHdvcmtl
ciA9IHNlcnZlcigpLmFjdGl2ZVdvcmtlckZyb21SZWdpc3RyYXRpb25JRChzZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF3b3JrZXIgfHwgIXdvcmtlci0+aXNS
dW5uaW5nKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEzNSw3ICsxMzYsNyBAQCB2b2lkIFdlYlNX
U2VydmVyQ29ubmVjdGlvbjo6Y2FuY2VsRmV0Y2goU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIgc2VydgogICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50aWZpZXIgPSB3b3JrZXIt
PmlkZW50aWZpZXIoKTsKICAgICBzZXJ2ZXIoKS5ydW5TZXJ2aWNlV29ya2VySWZOZWNlc3Nhcnko
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0
aGlzLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyXShhdXRvKiBjb250
ZXh0Q29ubmVjdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBjb250ZXh0
Q29ubmVjdGlvbikKLSAgICAgICAgICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKCpjb250ZXh0Q29u
bmVjdGlvbiwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDYW5jZWxG
ZXRjaCB7IHRoaXMtPmlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGZldGNo
SWRlbnRpZmllciB9KTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbiY+KCpjb250ZXh0Q29ubmVjdGlvbikuY2FuY2VsRmV0Y2godGhpcy0+aWRl
bnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAg
ICB9KTsKIH0KIApAQCAtMTQ4LDcgKzE0OSw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Ojpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNlcnZpY2VXb3JrZXJSZWdpc3RyCiAg
ICAgYXV0byBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHdvcmtlci0+aWRlbnRpZmllcigpOwog
ICAgIHNlcnZlcigpLnJ1blNlcnZpY2VXb3JrZXJJZk5lY2Vzc2FyeShzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRoaXMsIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXJdKGF1dG8qIGNvbnRleHRDb25uZWN0aW9uKSBt
dXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzICYmIGNvbnRleHRDb25uZWN0aW9uKQotICAg
ICAgICAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoKmNvbnRleHRDb25uZWN0aW9uLCBNZXNzYWdl
czo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkNvbnRpbnVlRGlkUmVjZWl2ZUZldGNo
UmVzcG9uc2UgeyB0aGlzLT5pZGVudGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBm
ZXRjaElkZW50aWZpZXIgfSk7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24mPigqY29udGV4dENvbm5lY3Rpb24pLmNvbnRpbnVlRGlkUmVjZWl2
ZUZldGNoUmVzcG9uc2UodGhpcy0+aWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIApAQCAtMTg3LDcgKzE4OCw3IEBAIHZv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyIHNlcnZpCiAKICAgICAgICAgICAgIGlmIChjb250ZXh0Q29ubmVjdGlv
bikgewogICAgICAgICAgICAgICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJzdGFydEZldGNoOiBTdGFydGluZyBmZXRjaCAlcyB2aWEgc2VydmljZSB3b3JrZXIg
JXMiLCBmZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgICAgICAgICBzZW5kVG9Db250ZXh0UHJvY2VzcygqY29udGV4dENvbm5lY3Rpb24sIE1lc3Nh
Z2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaCB7IHRoaXMtPmlk
ZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciwgcmVx
dWVzdCwgb3B0aW9ucywgZm9ybURhdGEsIHJlZmVycmVyIH0pOworICAgICAgICAgICAgICAgIHN0
YXRpY19jYXN0PFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiY+KCpjb250ZXh0Q29ubmVj
dGlvbikuc3RhcnRGZXRjaChtX3Nlc3Npb25JRCwgbV9jb250ZW50Q29ubmVjdGlvbi5nZXQoKSwg
dGhpcy0+aWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCByZXF1ZXN0LCBvcHRpb25zLCBmb3JtRGF0YSwgcmVmZXJyZXIpOwogICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRCgic3RhcnRGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAlcyBEaWROb3RI
YW5kbGUgYmVjYXVzZSBmYWlsZWQgdG8gcnVuIHNlcnZpY2Ugd29ya2VyIiwgZmV0Y2hJZGVudGlm
aWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgICAgICBtX2Nv
bnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6
OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKQEAgLTI0Myw0
NCArMjQ0LDYgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNjaGVkdWxlSm9iSW5TZXJ2
ZXIoU2VydmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhKQogICAgIHNlcnZlcigpLnNjaGVkdWxl
Sm9iKFdURk1vdmUoam9iRGF0YSkpOwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZShGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVu
dGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICBtX2NvbnRl
bnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRp
ZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlIHsgcmVzcG9uc2UgfSwgZmV0Y2hJZGVudGlmaWVyLnRv
VUludDY0KCkpOwotfQotCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZl
dGNoUmVzcG9uc2UoRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25z
ZU1lc3NhZ2UpCi17Ci0gICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vy
dmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlUmVzcG9uc2UgeyByZXNwb25zZSwgbmVl
ZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgfSwgZmV0Y2hJZGVudGlmaWVyLnRv
VUludDY0KCkpOwotfQotCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZl
dGNoRGF0YShGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi17Ci0gICAgbV9jb250
ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpE
aWRSZWNlaXZlRGF0YSB7IGRhdGEsIGVuY29kZWREYXRhTGVuZ3RoIH0sIGZldGNoSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZFJlY2Vp
dmVGZXRjaEZvcm1EYXRhKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UmIGZvcm1EYXRhKQotewotICAgIG1fY29udGVudENvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZUZv
cm1EYXRhIHsgZm9ybURhdGEgfSwgZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwotfQotCi12
b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkRmluaXNoRmV0Y2goRmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllcikKLXsKLSAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiZGlkRmluaXNoRmV0Y2g6IGZldGNoSWRlbnRpZmllcjogJXMiLCBmZXRjaElk
ZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIG1fY29udGVudENv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkRmlu
aXNoIHsgfSwgZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwotfQotCi12b2lkIFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6ZGlkRmFpbEZldGNoKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAgIFNXU0VSVkVSQ09OTkVDVElP
Tl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJkaWRGYWlsRmV0Y2g6IGZldGNoSWRlbnRp
ZmllcjogJXMiLCBmZXRjaElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwotICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaDo6RGlkRmFpbCB7IGVycm9yIH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgp
KTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5vdEhhbmRsZUZldGNoKEZl
dGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCi17Ci0gICAgU1dTRVJWRVJDT05ORUNUSU9O
X1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZE5vdEhhbmRsZUZldGNoOiBmZXRjaElkZW50aWZp
ZXI6ICVzIiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsK
LX0KLQogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVy
LCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQogewogICAg
IGF1dG8qIHNvdXJjZVNlcnZpY2VXb3JrZXIgPSBzZXJ2ZXIoKS53b3JrZXJCeUlEKHNvdXJjZUlk
ZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDJiNGFl
ZTYzYjU0YWM2OWZkYjRhZGZkN2MyOTFmMTAwMDAxNjVmYTYuLjg1MDA2YWIyN2MwNzRkNzkyZDk2
NjVhMzZkODYzYzU2Mjg0MmVmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NXU2VydmVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpAQCAtNjMsMTQgKzY0
LDYgQEAgcHVibGljOgogCiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RS
ZXNwb25zZShXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wgbmVl
ZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpOwotICAgIHZvaWQgZGlkUmVjZWl2
ZUZldGNoRGF0YShXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOwotICAgIHZvaWQgZGlkUmVjZWl2ZUZl
dGNoRm9ybURhdGEoV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hGZXRjaChXZWJDb3JlOjpGZXRjaElkZW50
aWZpZXIpOwotICAgIHZvaWQgZGlkRmFpbEZldGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwotICAgIHZvaWQgZGlkTm90SGFuZGxlRmV0
Y2goV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKLQogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9u
Q29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZVNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
biwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRleCAwMDBlNDI3ZWUw
ZDhmOTAyYjUxNzBiNWI3YzM4NDExYzg1ZjdiOWU4Li5lYTA0M2E5YjQ0NWJhZDRhNTUyNTUxNjhm
ZGFhZmFhNmEwMTJiNTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmNwcApAQCAtMjgsNyArMjgsMTAgQEAKIAogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCisj
aW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNvbnRleHRE
YXRhLmg+CkBAIC01Nyw3ICs2MCw5IEBAIHVpbnQ2NF90IFdlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogCiB2b2lkIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCgpCiB7Ci0gICAgLy8g
RklYTUU6IERvIHdoYXQgaGVyZS4uLj8KKyAgICBhdXRvIGZldGNoZXMgPSBXVEZNb3ZlKG1fb25n
b2luZ0ZldGNoZXMpOworICAgIGZvciAoYXV0byYgZmV0Y2ggOiBmZXRjaGVzLnZhbHVlcygpKQor
ICAgICAgICBmZXRjaC0+ZmFpbChSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRl
cm5hbCwgMCwgeyB9LCAiU2VydmljZSBXb3JrZXIgY29udGV4dCBjbG9zZWQiX3MgfSk7CiB9CiAK
IHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtl
ckNvbnRleHQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQpAQCAtMTE1LDYgKzEyMCw1
OSBAQCB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlKCkKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6VGVybWluYXRl
UHJvY2VzcygpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnN0
YXJ0RmV0Y2goUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
IGNvbnRlbnRDb25uZWN0aW9uLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgY29udGVudEZldGNo
SWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgRmV0Y2hPcHRpb25zJiBv
cHRpb25zLCBjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyKQoreworICAgIGF1dG8gZmV0Y2hJZGVudGlmaWVyID0gRmV0Y2hJZGVudGlmaWVy
OjpnZW5lcmF0ZSgpOworICAgIAorICAgIG1fb25nb2luZ0ZldGNoZXMuYWRkKGZldGNoSWRlbnRp
ZmllciwgU2VydmljZVdvcmtlckZldGNoVGFzazo6Y3JlYXRlKHNlc3Npb25JRCwgV1RGTW92ZShj
b250ZW50Q29ubmVjdGlvbiksIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb250ZW50RmV0
Y2hJZGVudGlmaWVyKSk7CisKKyAgICBBU1NFUlQoIW1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMu
Y29udGFpbnMoe3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb250ZW50RmV0Y2hJZGVudGlm
aWVyfSkpOworICAgIG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMuYWRkKHtzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgY29udGVudEZldGNoSWRlbnRpZmllcn0sIGZldGNoSWRlbnRpZmllcik7
CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3Rh
cnRGZXRjaCB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgZmV0Y2hJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zLCBkYXRhLCByZWZlcnJlciB9
KTsKK30KKwordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmNhbmNlbEZldGNo
KFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBjb250ZW50RmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0
ZXJhdG9yID0gbV9vbmdvaW5nRmV0Y2hJZGVudGlmaWVycy5maW5kKHsgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIGNvbnRlbnRGZXRjaElkZW50aWZpZXIgfSk7CisgICAgaWYgKGl0ZXJhdG9y
ID09IG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDYW5jZWxG
ZXRjaCB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgaXRlcmF0b3ItPnZhbHVlIH0pOworCisgICAgbV9vbmdvaW5nRmV0Y2hlcy5yZW1vdmUoaXRl
cmF0b3ItPnZhbHVlKTsKKyAgICBtX29uZ29pbmdGZXRjaElkZW50aWZpZXJzLnJlbW92ZShpdGVy
YXRvcik7Cit9CisKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjb250aW51
ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBjb250ZW50
RmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRl
bnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vbmdvaW5nRmV0Y2hJZGVudGlmaWVy
cy5maW5kKHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnRlbnRGZXRjaElkZW50aWZp
ZXIgfSk7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMuZW5k
KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSB7IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgaXRlcmF0
b3ItPnZhbHVlIH0pOworfQorCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZUZldGNoVGFza01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlY29kZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb25nb2luZ0Zl
dGNoZXMuZmluZChtYWtlT2JqZWN0SWRlbnRpZmllcjxGZXRjaElkZW50aWZpZXJUeXBlPihkZWNv
ZGVyLmRlc3RpbmF0aW9uSUQoKSkpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29uZ29pbmdGZXRj
aGVzLmVuZCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgYm9vbCBzaG91bGRSZW1vdmUg
PSBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OkRpZEZhaWw6Om5hbWUoKQorICAgICAgICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0g
TWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZE5vdEhhbmRsZTo6bmFtZSgpCisg
ICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6U2VydmljZVdvcmtl
ckZldGNoVGFzazo6RGlkRmluaXNoOjpuYW1lKCkKKyAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdl
TmFtZSgpID09IE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlUmVk
aXJlY3RSZXNwb25zZTo6bmFtZSgpOworCisgICAgaXRlcmF0b3ItPnZhbHVlLT5kaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKworICAgIGlmIChzaG91bGRSZW1vdmUpIHsK
KyAgICAgICAgQVNTRVJUKG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMuY29udGFpbnMoaXRlcmF0
b3ItPnZhbHVlLT5pZGVudGlmaWVyKCkpKTsKKyAgICAgICAgbV9vbmdvaW5nRmV0Y2hJZGVudGlm
aWVycy5yZW1vdmUoaXRlcmF0b3ItPnZhbHVlLT5pZGVudGlmaWVyKCkpOworICAgICAgICBtX29u
Z29pbmdGZXRjaGVzLnJlbW92ZShpdGVyYXRvcik7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCAyZjg4OWIyODZi
YzFlMWRkNmI1NzEzMWU2NTg0ZjVhZTBmMTE0NzE1Li4yNTVkMjdjMjEzMmExNzA3OGMwYmIyN2Y1
ZmJmNzQ1MzU2ZDU2ZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5oCkBAIC0yOSw4ICsyOSwyMiBAQAogCiAjaW5jbHVkZSAiTWVzc2FnZVJl
Y2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgRmV0Y2hPcHRpb25zOwor
Y2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworfQorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEZvcm1E
YXRhUmVmZXJlbmNlOworfQorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30K
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwpAQCAtNTEsNiAr
NjUsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKIAorICAgIHZvaWQgc3Rh
cnRGZXRjaChQQUw6OlNlc3Npb25JRCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgY2FuY2VsRmV0Y2goV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCBjb250aW51ZURp
ZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIpOworCisgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hUYXNrTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24oTmV0d29ya1Byb2Nlc3MmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmKTsKICAgICB+V2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uKCk7CkBAIC03NSw2ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9pcGNDb25uZWN0aW9uOwogICAgIFJlZjxOZXR3b3JrUHJvY2Vzcz4g
bV9uZXR3b3JrUHJvY2VzczsKICAgICAKKyAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcj4gbV9vbmdvaW5nRmV0Y2hJ
ZGVudGlmaWVyczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgUmVmPFNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s+PiBtX29uZ29pbmdGZXRjaGVzOwogfTsgLy8gY2xhc3MgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKaW5kZXggNTljZWY4M2E1MjM5ZWVhMGNhMTk3ZjY4Y2IzNzIwNjdiOTc5ZTAyOS4uZmM4
NmM2NjgxMjRiNGUyYzQwMTQ0NjNlNWQ5MDQxM2FhNjM0ZDNlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC01
Niw2ICs1Niw3IEBAIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5j
cHAKIAogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5j
cHAKIAorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
LmNwcCBAbm8tdW5pZnkKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5T
dG9yZS5jcHAgQG5vLXVuaWZ5CiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKaW5kZXggYzQzZTRlNTA5MGJlZGM3MWM5ZGU2M2Y4NjdmNzQwYTk0MWZkMGYxMi4u
MjY5ZDc0OTdlNDNiOWIyMTMxZWIyN2U3YWRiOGM5ZTI2ZDMxOWZjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dApAQCAtNTc4LDUgKzU3OCw1IEBAIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gQG5vLXVuaWZ5CiBXZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCiAK
IC8vIERlcml2ZWQgU291cmNlcwotCiBFZGl0YWJsZUltYWdlQ29udHJvbGxlck1lc3NhZ2VSZWNl
aXZlci5jcHAKK1NlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNDdi
YTkxZGVlNDExMWVhZDNmNzZiOGJjMTBiOTA1OWQxMGE1M2UyLi43ZmMzODBiZjBhNDRkY2I4ZmRh
YjBhMzkyYThhNWEyNzJjMWU1YTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg4OSw2ICs4ODksNyBAQAogCQk0MURDNDU5NjFFM0Q2
RTIyMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURDNDU5NDFFM0Q2RTFFMDBCMTFGNTEgLyogTmV0
d29ya1JUQ1Byb3ZpZGVyLmggKi87IH07CiAJCTQxREM0NTlDMUUzREJCMjgwMEIxMUY1MSAvKiBM
aWJXZWJSVENTb2NrZXRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxREM0NTlBMUUzREJCMjQwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRD
bGllbnQuaCAqLzsgfTsKIAkJNDFEQzQ1OUYxRTNEQkRBNTAwQjExRjUxIC8qIFdlYlJUQ1NvY2tl
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1
RjMxRTNCRkU3RjAwMUFFNjc4IC8qIFdlYlJUQ1NvY2tldC5oICovOyB9OworCQk0MURFN0M2QzIy
Mjc4RjFFMDA1MzJCNjUgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUxODUzNjIyMjcwNEY2MDA1NDMw
QzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgKi87IH07CiAJCTQxRkFCRDJBMUY0REUw
MDEwMDZBNkM5NyAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUJEMjgxRjREREZEQzAwNkE2Qzk3IC8q
IENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmggKi87IH07CiAJCTQxRkFGNUY1MUUzQzA2NDkwMDFB
RTY3OCAvKiBXZWJSVENSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDFGQUY1RjQxRTNDMDY0MTAwMUFFNjc4IC8qIFdlYlJUQ1Jlc29sdmVy
LmggKi87IH07CiAJCTQxRkFGNUY4MUUzQzEwMjEwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1
RjYxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggKi87IH07CkBAIC0zMDM1
LDYgKzMwMzYsOSBAQAogCQk0MTRERDM3ODIwQkY0M0VBMDA2OTU5RkIgLyogY29tLmNpc2NvLndl
YmV4LnBsdWdpbi5ncGM2NC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uY2lzY28ud2Vi
ZXgucGx1Z2luLmdwYzY0LnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTRERURE
NTFGOUVERERGMDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNERFREQ2MUY5RURERTAwMDQ3QzQwRCAvKiBT
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTUxODUzNTIyMjcwNEY1MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZl
dGNoVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNTE4NTM2MjIyNzA0
RjYwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTUxODUzODIyMjcwRjUzMDA1NDMwQzYgLyogU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTUxRTVDMzFGQkI5MEE5MDBFNDdFMkQgLyogRm9ybURhdGFSZWZlcmVuY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybURhdGFSZWZlcmVuY2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1Nzg1MzAyMTI3NkI2RjAwREQzODAwIC8qIGNvcHkt
d2ViY29udGVudC1yZXNvdXJjZXMtdG8tcHJpdmF0ZS1oZWFkZXJzLnNoICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQuc2g7IHBhdGgg
PSAiY29weS13ZWJjb250ZW50LXJlc291cmNlcy10by1wcml2YXRlLWhlYWRlcnMuc2giOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU3RTRBRjIwRTJFQzk4MDBBNkMwRDcgLyogY29t
Lmdvb2dsZS5vMWRicm93c2VycGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5n
b29nbGUubzFkYnJvd3NlcnBsdWdpbi5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTcwMTcsNiArNzAyMSw5IEBACiAJCTkzQkEwNEQ5MjE1MUFEQ0QwMDdGNDU1RiAvKiBTZXJ2aWNl
V29ya2VyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0
MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgKi8s
CisJCQkJNDE1MTg1MzUyMjI3MDRGNTAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2su
aCAqLywKKwkJCQk0MTUxODUzODIyMjcwRjUzMDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNo
VGFzay5tZXNzYWdlcy5pbiAqLywKIAkJCQk5M0JBMDRERjIxNTFBREY0MDA3RjQ1NUYgLyogV2Vi
U1dPcmlnaW5TdG9yZS5jcHAgKi8sCiAJCQkJOTNCQTA0REUyMTUxQURGNDAwN0Y0NTVGIC8qIFdl
YlNXT3JpZ2luU3RvcmUuaCAqLywKIAkJCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLywKQEAgLTEwNzkyLDcgKzEwNzk5LDYgQEAKIAkJCQky
RDkxMzQ0NDIxMkNGOUYwMDAxMjhBRkQgLyogTmV0c2NhcGVQbHVnaW4uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkQ5MkE3OTYyMTJCNkFEQTAwRjQ5M0ZEIC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQ1MjEyQ0Y5RjAwMDEyOEFGRCAvKiBOZXRz
Y2FwZVBsdWdpblN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk2QkQwNTg2NjIyMENFOEMy
MDAwQkVENUMgLyogTmV0d29ya0FkQ2xpY2tBdHRyaWJ1dGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MUREOUYyODE2MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTJGMDYwRTExNjU0
MzE4NTAwRjMyODFCIC8qIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgzRiAvKiBO
ZXR3b3JrTUROU1JlZ2lzdGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MTEwMjgsNiArMTEwMzQsNyBAQAogCQkJCTJEODUwOEM2MjEyRTMzRUQwMDBFRjQ2QyAvKiBVbmlm
aWVkU291cmNlOTcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ4NTA4RDgyMTJFMzNFRDAwMEVG
NDZDIC8qIFVuaWZpZWRTb3VyY2U5OC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDg1MDhDNTIx
MkUzM0VEMDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTk5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTQxREU3QzZDMjIyNzhGMUUwMDUzMkI2NSAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJEODUwOEQyMjEyRTMzRUQwMDBFRjQ2QyAvKiBVbmlmaWVkU291
cmNlMTAwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDRDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA1YmQ4MjNmNzc3NGQzOTZjNDM4OWQ0N2I0ZGM2MTA1
ZmFiZWJiMjNlLi40MjU0Y2M3ZmI0NzQ3ZmVhZGU5Y2Q3MmNjYWY1M2IzYWY5ZmE2YWU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiRm9ybURhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VQ
cm92aWRlci5oIgpAQCAtMjI1LDEyICsyMjYsMTIgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnYK
IHsKICAgICBhdXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTV0NvbnRleHRNYW5hZ2Vy
OjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoc2VydmljZVdvcmtlcklkZW50
aWZpZXIpOwogICAgIGlmICghc2VydmljZVdvcmtlclRocmVhZFByb3h5KSB7Ci0gICAgICAgIG1f
Y29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpEaWROb3RIYW5kbGVGZXRjaCB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElk
ZW50aWZpZXIgfSwgMCk7CisgICAgICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZE5vdEhhbmRsZSB7IH0sIGZl
dGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IGlmICghaXNWYWxpZEZldGNoKHJlcXVlc3QsIG9wdGlvbnMsIHNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS0+c2NyaXB0VVJMKCksIHJlZmVycmVyKSkgewotICAgICAgICBtX2Nvbm5lY3Rpb25Ub05l
dHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkTm90SGFuZGxl
RmV0Y2ggeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyIH0sIDAp
OworICAgICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWROb3RIYW5kbGUgeyB9LCBmZXRjaElkZW50aWZpZXIu
dG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudC5jcHAKaW5kZXggMDVjNjhiMjU4YzdiOWY0OTZkMmE5OThjNTgxMjlm
ZTI3MGZjYTQ1NS4uOTUzMGY1NDZhMDEyMzE0MjU2NGNlYzNhNmE5OWNmNWNmZDg4OWUwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAg
dm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVkaXJlY3Rp
b24oY29uc3QgV2ViQ29yZTo6UmVzb3UKIHsKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAg
ICAgcmV0dXJuOwotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OkRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UgeyBtX3NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVzcG9uc2UgfSwgMCk7CisgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZl
UmVkaXJlY3RSZXNwb25zZSB7IHJlc3BvbnNlIH0sIG1fZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0
KCkpOwogCiAgICAgY2xlYW51cCgpOwogfQpAQCAtNjgsNyArNjgsNyBAQCB2b2lkIFdlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJgogICAgIGlmIChtX25lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNz
YWdlKQogICAgICAgICBtX3dhaXRpbmdGb3JDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3Nh
Z2UgPSB0cnVlOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6RGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVzcG9uc2UsIG1fbmVlZHNDb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZU1lc3NhZ2UgfSwgMCk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlUmVzcG9uc2UgeyByZXNwb25zZSwg
bV9uZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSB9LCBtX2ZldGNoSWRlbnRp
Zmllci50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50OjpkaWRSZWNlaXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikKQEAgLTg0LDcg
Kzg0LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZl
RGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZFJl
Y2VpdmVGZXRjaERhdGEgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRl
bnRpZmllciwgeyBidWZmZXIgfSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkp
IH0sIDApOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZl
dGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyB7IGJ1ZmZlciB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90
PihidWZmZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiB9CiAK
IHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRh
QW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mJiBmb3JtRGF0YSkKQEAgLTEwMSw3ICsxMDEsNyBAQCB2
b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFu
ZEZpbmlzaChSZWY8Rm9ybURhdGE+JgogICAgIC8vIEZvciBub3cgYW5kIGZvciB0aGUgY2FzZSBv
ZiBibG9icywgd2UgcmVhZCBpdCB0aGVyZSBhbmQgc2VuZCB0aGUgZGF0YSB0aHJvdWdoIElQQy4K
ICAgICBVUkwgYmxvYlVSTCA9IGZvcm1EYXRhLT5hc0Jsb2JVUkwoKTsKICAgICBpZiAoYmxvYlVS
TC5pc051bGwoKSkgewotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YSB7IG1fc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RG
TW92ZShmb3JtRGF0YSkgfSB9LCAwKTsKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCBtX2ZldGNoSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTI5LDcgKzEyOSw3
IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUJsb2JD
aHVuayhjb25zdCBjaGFyKiBkYXRhLCBzaXplCiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OkRpZFJlY2VpdmVGZXRjaERhdGEgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBtX2ZldGNoSWRlbnRpZmllciwgeyByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihk
YXRhKSwgc2l6ZSB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihzaXplKSB9LCAwKTsKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2Vp
dmVEYXRhIHsgeyByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgc2l6ZSB9
LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihzaXplKSB9LCBtX2ZldGNoSWRlbnRpZmllci50b1VJbnQ2
NCgpKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5p
c2hCbG9iTG9hZGluZygpCkBAIC0xNDksNyArMTQ5LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6RGlkRmFpbEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgbV9mZXRjaElkZW50aWZpZXIsIGVycm9yIH0sIDApOworICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmFpbCB7IGVycm9yIH0sIG1f
ZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogCiAgICAgY2xlYW51cCgpOwogfQpAQCAtMTY0
LDcgKzE2NCw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmlu
aXNoKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZEZpbmlzaEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSwgMCk7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGaW5pc2ggeyB9LCBt
X2ZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIAogICAgIGNsZWFudXAoKTsKIH0KQEAgLTE3
NCw3ICsxNzQsNyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZE5v
dEhhbmRsZSgpCiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZE5vdEhhbmRs
ZUZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIg
fSwgMCk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrOjpEaWROb3RIYW5kbGUgeyB9LCBtX2ZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsK
IAogICAgIGNsZWFudXAoKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363654</attachid>
            <date>2019-03-05 10:50:37 -0800</date>
            <delta_ts>2019-03-05 12:28:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195130-20190305105029.patch</filename>
            <type>text/plain</type>
            <size>55441</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNiYzA5YWY3MWEzZTc5MDU2
YmZhOTlkN2ZhODYzMGQyYzIwNzAxMmMuLjUzODBhOTg5NWVhMDYyNzg3MWUwMzk3OTNiODkwM2Rj
NTVjYzgxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTktMDMtMDQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTUxMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIGlzIGFkZGVkIHRvIHJlcHJlc2VudCBOZXR3b3Jr
UHJvY2VzcyBzaWRlIG9mIGFuIG9uZ29pbmcgZmV0Y2ggaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3
b3JrZXIuCisgICAgICAgIFRoaXMgcGF0Y2ggc2hvdWxkIG5vdCBjaGFuZ2UgZXhpc3RpbmcgYmVo
YXZpb3IuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZEZhaWxGZXRjaCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWROb3RIYW5kbGVGZXRjaCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJl
c3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZFJl
Y2VpdmVGZXRjaFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmRpZFJlY2VpdmVGZXRjaERhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkRmluaXNoRmV0Y2gpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNo
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0
Y2hSZWRpcmVjdFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoRGF0YSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OmRpZEZpbmlzaEZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRGYWlsRmV0Y2gpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5vdEhhbmRsZUZldGNoKTogRGVsZXRlZC4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjYW5jZWxGZXRjaCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y29udGludWVEaWRS
ZWNlaXZlRmV0Y2hSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoVGFza01lc3NhZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
Lmg6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVkaXJlY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpk
aWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2Vp
dmVCbG9iQ2h1bmspOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudDo6ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6ZGlkTm90SGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlZGlyZWN0UmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNl
aXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpk
aWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OmRpZFJlY2VpdmVGb3JtRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s6OmRpZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpk
aWROb3RIYW5kbGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlckZldGNoVGFzay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdv
cmtlckZldGNoVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZl
dGNoVGFzazo6SWRlbnRpZmllcjo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tJZGVudGlmaWVySGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tJZGVudGlmaWVySGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdl
YktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllcj46OmVtcHR5VmFsdWUpOgor
ICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6
SWRlbnRpZmllcj46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hU
cmFpdHM8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyPjo6aXNEZWxl
dGVkVmFsdWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTktMDMtMDQgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNT
SU9OOiAoIHIyNDA5NzgtcjI0MDk4NSApIFsgaU9TIFJlbGVhc2UgXSBMYXlvdXQgVGVzdCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9zZW5kLXJlZGlyZWN0LXBvc3QtdXBsb2Fk
Lmh0bSBpcyBjcmFzaGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggZTFkOTYzOWIxYjVlMzkzNmE1
MDg4YjEzNDlhODlkYTRjNTkyZGJlNy4uZDYzMWE0ZmUyZjNlNzA2NDU2M2E0YWZiOWRmNTRlMzBi
OGFmMDFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xMTEsNiArMTExLDcgQEAgc2V0KFdlYktp
dF9NRVNTQUdFU19JTl9GSUxFUwogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5tZXNzYWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0u
bWVzc2FnZXMuaW4KIAorICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAgICAgTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4
IDZmMDIxOGY5MGRiYmM2NmQxM2NmYjk3Y2QwNTg2N2MxOWNkYzVlNDMuLmM3N2RhNWQwYjdhOWQy
NzhmZjQzYzM4ZDJhMWZlMWNlYzFmZTU5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI0LDYgKzI0LDcgQEAgJChQUk9KRUNUX0RJUikv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJl
YW0ubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA4
Yjc1YzNiZTRhMGQwYTdlMzkzZjU5ZGIwYzAxMzVlODU1MmZiZmRhLi4xYWE5NzAzMWQ4ZjkwZjY3
NmEyM2QwYTMxYTZkMmI0YWVkM2Y3ZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTgwLDYgKzgwLDggQEAgJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Nl
Y0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2hNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29y
a2VyQ2xpZW50RmV0Y2hNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2VpdmVyLmNwcAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VydmljZVdvcmtl
ckZldGNoVGFza01lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25p
ZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNmU4MjU1MjFmMzI3NThmZjAzMjhiY2NjZGZiNjE4
M2JhMjM5YjBkMi4uNzQzNWQwNmQxYjU3N2Y2OGExNWU2NWJiZmJkZTU4MDUxZDQzN2Y2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTMxLDYgKzEzMSw3IEBAIE1FU1NBR0VfUkVD
RUlWRVJTID0gXAogICAgIFJlbW90ZVdlYkluc3BlY3RvclVJIFwKICAgICBTZWNJdGVtU2hpbVBy
b3h5IFwKICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2ggXAorICAgIFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2sgXAogICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXAogICAgIFN0b3Jh
Z2VBcmVhTWFwIFwKICAgICBTdG9yYWdlTWFuYWdlciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGUyNzkwNjZhMzFlMzBjMzM0NDVjYjM0YTE2MGVlNzYwZmNmMzQ2MTguLmYzMTRi
YzY1MWRjZTAyZjFiZjNlY2NjMDJkMTNiOTVjOTA2NmUyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1NvY2tldFN0cmVh
bU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWQuaCIKICNpbmNsdWRlICJQcmVjb25uZWN0
VGFzay5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgog
I2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIgpAQCAtMTgwLDEzICsxODEsMjAg
QEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAgICAgICAgICAgIHN3Q29ubmVjdGlvbi0+ZGlk
UmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgCisKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVz
c2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IG1fbmV0d29ya1By
b2Nlc3MtPmNvbm5lY3Rpb25Ub0NvbnRleHRQcm9jZXNzRnJvbUlQQ0Nvbm5lY3Rpb24oY29ubmVj
dGlvbikpIHsKICAgICAgICAgICAgIGNvbnRleHRDb25uZWN0aW9uLT5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgIH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdl
czo6U2VydmljZVdvcmtlckZldGNoVGFzazo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAg
ICAgIGlmIChhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IG1fbmV0d29ya1Byb2Nlc3MtPmNvbm5l
Y3Rpb25Ub0NvbnRleHRQcm9jZXNzRnJvbUlQQ0Nvbm5lY3Rpb24oY29ubmVjdGlvbikpIHsKKyAg
ICAgICAgICAgIGNvbnRleHRDb25uZWN0aW9uLT5kaWRSZWNlaXZlRmV0Y2hUYXNrTWVzc2FnZShj
b25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
IH0KICNlbmRpZgogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDU1Y2JhYjg2NGZlZWI5
Y2NlODM0YjRmYWRkOWM0MDAyM2I0YjkyMjAuLjBhMjljZDcwZTViZGFiYjA1Y2QwMmFjOTA0ZmJj
ZmQ5NTEwNTExNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCkBAIC0yMTg2LDQ4ICsyMTg2LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
Y3JlYXRlU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IHMKICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6RXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdv
cmtQcm9jZXNzKHNlY3VyaXR5T3JpZ2luKSwgMCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6
OmRpZEZhaWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2
ZXJDb25uZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICBj
b25uZWN0aW9uLT5kaWRGYWlsRmV0Y2goZmV0Y2hJZGVudGlmaWVyLCBlcnJvcik7Ci19Ci0KLXZv
aWQgTmV0d29ya1Byb2Nlc3M6OmRpZE5vdEhhbmRsZUZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRj
aElkZW50aWZpZXIpCi17Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29u
bmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgY29ubmVj
dGlvbi0+ZGlkTm90SGFuZGxlRmV0Y2goZmV0Y2hJZGVudGlmaWVyKTsKLX0KLQotdm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZShTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZp
ZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25uZWN0aW9u
cy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICBjb25uZWN0aW9uLT5k
aWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNlKGZldGNoSWRlbnRpZmllciwgcmVzcG9uc2Up
OwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2Fn
ZSkKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5n
ZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICBjb25uZWN0aW9uLT5kaWRS
ZWNlaXZlRmV0Y2hSZXNwb25zZShmZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlLCBuZWVkc0NvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6
OmRpZFJlY2VpdmVGZXRjaERhdGEoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQot
ewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25zLmdldChz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNvbm5lY3Rpb24tPmRpZFJlY2Vp
dmVGZXRjaERhdGEoZmV0Y2hJZGVudGlmaWVyLCBkYXRhLCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci19
Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhKFNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRl
bnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmIGZv
cm1EYXRhKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rp
b25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNvbm5lY3Rpb24t
PmRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhKGZldGNoSWRlbnRpZmllciwgZm9ybURhdGEpOwotfQot
Ci12b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRGaW5pc2hGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNv
bm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNvbm5l
Y3Rpb24tPmRpZEZpbmlzaEZldGNoKGZldGNoSWRlbnRpZmllcik7Ci19Ci0KIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIE1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCiB7CiAgICAgaWYgKGF1dG8qIGNv
bm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KGRlc3RpbmF0aW9uSWRlbnRpZmll
ci5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNTMyZjNmN2QwYWYzOWMyMWExMjgyODgwODk2
MTNkMDVkZDJiNTQ2MS4uMTJiMjRlNDJhYzc5MzcwNjU2ZTA3YjU5YTk4ZDMxZDdkOGUxZDM1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAt
NDI2LDE0ICs0MjYsNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCi0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6
OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZUZl
dGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgYm9v
bCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlRmV0Y2hEYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRf
dCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YShX
ZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50
aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKLSAgICB2b2lkIGRpZEZpbmlz
aEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllcik7Ci0gICAgdm9pZCBkaWRGYWlsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJik7Ci0gICAgdm9pZCBkaWROb3RIYW5kbGVGZXRjaChXZWJDb3Jl
OjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIp
OwotCiAgICAgdm9pZCBkaWRDcmVhdGVXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oY29u
c3QgSVBDOjpBdHRhY2htZW50Jik7CiAgICAgCiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
ciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cyYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBlM2EzZGM3MzQ5
MGI1NjRjMmJmZGRkZTA1ZTQ5NzEzZjQ0YWRhZTYwLi44Y2Q0MDIwNGRlZmRjMTdiOTk5MDJiOTNm
M2I5ODQ3NWI5ODJhYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTE0OSwxMyArMTQ5LDYgQEAgbWVz
c2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldENhY2hlU3Rv
cmFnZVBhcmFtZXRlcnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBxdW90YSwg
U3RyaW5nIGNhY2hlU3RvcmFnZURpcmVjdG9yeSwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgaGFuZGxlKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBEaWROb3RI
YW5kbGVGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlm
aWVyKQotICAgIERpZEZhaWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIg
ZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQotICAgIERpZFJl
Y2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlm
aWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkK
LSAgICBEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50
aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNl
LCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQotICAgIERpZFJl
Y2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRl
bnRpZmllciwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5j
b2RlZERhdGFMZW5ndGgpCi0gICAgRGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoV2ViQ29yZTo6U1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSBkYXRhKQotICAgIERpZEZpbmlzaEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRl
bnRpZmllciBmZXRjaElkZW50aWZpZXIpCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJD
bGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGRlc3Rp
bmF0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
IG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZp
ZXIsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiAKICAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
cihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgc3RydWN0IFdl
YkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJPckNsaWVudElkZW50aWZpZXIgc291cmNlLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2su
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VX
b3JrZXJGZXRjaFRhc2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZTBiMjQ0MDc4ZDgzMmFlZGNkZDhhNjc5
MTg0MTRmMjg3MGM2MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKQEAgLTAsMCAr
MSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrLmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1
ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCisKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4u
LikgUkVMRUFTRV9MT0dfSUYobV9zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCks
IFNlcnZpY2VXb3JrZXIsICIlcCAtIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OiIgZm10LCB0aGlz
LCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKGZt
dCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2lu
Z0FsbG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gU2VydmljZVdvcmtlckZldGNoVGFzazo6
IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRS
ZWNlaXZlUmVkaXJlY3RSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
K3sKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25z
ZTogJXMiLCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3Jr
ZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UgeyByZXNwb25zZSB9LCBt
X2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworfQorCit2b2lkIFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2Fn
ZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2UsIG5lZWRzQ29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2VNZXNzYWdlIH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9V
SW50NjQoKSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZURh
dGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVu
Z3RoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNs
aWVudEZldGNoOjpEaWRSZWNlaXZlRGF0YSB7IGRhdGEsIGVuY29kZWREYXRhTGVuZ3RoIH0sIG1f
aWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7Cit9CisKK3ZvaWQgU2Vydmlj
ZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UmIGZvcm1EYXRhKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBmb3JtRGF0YSB9
LCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworfQorCit2b2lkIFNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRpZEZpbmlzaCgpCit7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkRmluaXNoRmV0Y2g6IGZldGNoSWRlbnRpZmllcjogJXMiLCBtX2lkZW50aWZp
ZXIuZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlk
RmluaXNoIHsgfSwgbV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30K
Kwordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKQoreworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoImRpZEZhaWxG
ZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAlcyIsIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIu
bG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRGYWlsIHsgZXJyb3IgfSwgbV9p
ZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30KKwordm9pZCBTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrOjpkaWROb3RIYW5kbGUoKQoreworICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoImRpZE5vdEhhbmRsZUZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVzIiwgbV9pZGVudGlm
aWVyLmZldGNoSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRp
ZE5vdEhhbmRsZSB7IH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjI1ZGEyMjYyZDA1MTY1ODg1ZTlmMWVlZDZhYmRhNTkzZTVmYmQxZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrLmgKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgPFdlYkNvcmUvRmV0
Y2hJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4K
KyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291
cmNlUmVzcG9uc2U7Cit9CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2Ns
YXNzIERhdGFSZWZlcmVuY2U7CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRm9ybURhdGFSZWZlcmVu
Y2U7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrIDogcHVibGljIFJlZkNvdW50ZWQ8U2VydmljZVdvcmtlckZldGNoVGFzaz4geworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckZldGNoVGFzaz4gY3JlYXRlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2soc2Vzc2lvbklELCBXVEZNb3ZlKGNvbm5lY3Rp
b24pLCBjb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSk7IH0KKworICAgIHZv
aWQgZmFpbChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikgeyBkaWRGYWlsKGVy
cm9yKTsgfQorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CisKKyAgICBzdHJ1Y3QgSWRlbnRpZmllciB7CisgICAgICAgIFdlYkNvcmU6
OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXI7CisgICAg
ICAgIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXI7CisgICAgICAgIAor
ICAgICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgdW5z
aWduZWQgaGFzaGVzWzJdOworICAgICAgICAgICAgaGFzaGVzWzBdID0gV1RGOjppbnRIYXNoKGNv
bm5lY3Rpb25JZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgICAgICAgICAgaGFzaGVzWzFdID0g
V1RGOjppbnRIYXNoKGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAgICAgIHJl
dHVybiBTdHJpbmdIYXNoZXI6Omhhc2hNZW1vcnkoaGFzaGVzLCBzaXplb2YoaGFzaGVzKSk7Cisg
ICAgICAgIH0KKyAgICB9OworCisgICAgSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKK3ByaXZhdGU6CisgICAgU2VydmljZVdvcmtlckZldGNo
VGFzayhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29u
bmVjdGlvbiwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKKyAg
ICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgICAgICwgbV9jb25uZWN0aW9uKFdU
Rk1vdmUoY29ubmVjdGlvbikpCisgICAgICAgICwgbV9pZGVudGlmaWVyIHsgY29ubmVjdGlvbklk
ZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciB9CisgICAgeyB9CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVSZWRpcmVjdFJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7CisgICAgdm9p
ZCBkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29k
ZWREYXRhTGVuZ3RoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVGb3JtRGF0YShjb25zdCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCBkaWRGaW5pc2goKTsKKyAgICB2b2lkIGRpZEZh
aWwoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgZGlkTm90SGFuZGxl
KCk7CisKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKKyAgICBSZWY8SVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9Owor
CitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6Oklk
ZW50aWZpZXImIGEsIGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXImIGIp
Cit7CisgICAgcmV0dXJuIGEuY29ubmVjdGlvbklkZW50aWZpZXIgPT0gYi5jb25uZWN0aW9uSWRl
bnRpZmllciAmJiAgYS5mZXRjaElkZW50aWZpZXIgPT0gYi5mZXRjaElkZW50aWZpZXI7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisKK25hbWVzcGFjZSBXVEYgeworCitzdHJ1Y3QgU2Vy
dmljZVdvcmtlckZldGNoVGFza0lkZW50aWZpZXJIYXNoIHsKKyAgICBzdGF0aWMgdW5zaWduZWQg
aGFzaChjb25zdCBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXImIGtl
eSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFdl
YktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllciYgYSwgY29uc3QgV2ViS2l0
OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyJiBiKSB7IHJldHVybiBhID09IGI7
IH0KKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9
IHRydWU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6U2Vydmlj
ZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllcj4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJLaXQ6
OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXI+IHsKKyAgICBzdGF0aWMgV2ViS2l0
OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyIGVtcHR5VmFsdWUoKSB7IHJldHVy
biB7IH07IH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2Vi
S2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyJiBzbG90KSB7IHNsb3QuY29u
bmVjdGlvbklkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50NjRfdD46
Om1heCgpKTsgfQorICAgIAorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdl
YktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllciYgc2xvdCkgeyByZXR1cm4g
c2xvdC5jb25uZWN0aW9uSWRlbnRpZmllci50b1VJbnQ2NCgpID09IHN0ZDo6bnVtZXJpY19saW1p
dHM8dWludDY0X3Q+OjptYXgoKTsgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhh
c2g8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyPiB7CisgICAgdXNp
bmcgSGFzaCA9IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2tJZGVudGlmaWVySGFzaDsKK307CisKK30K
KworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU3N2YwNzJi
ZDE4Njc3N2E4OWFmYmFlYmQwOTlmMTA5MTM1OGE3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworbWVzc2FnZXMg
LT4gU2VydmljZVdvcmtlckZldGNoVGFzayB7CisgICAgRGlkTm90SGFuZGxlKCkKKyAgICBEaWRG
YWlsKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCisgICAgRGlkUmVjZWl2ZVJlZGlyZWN0
UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKKyAgICBEaWRSZWNl
aXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBuZWVk
c0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKKyAgICBEaWRSZWNlaXZlRGF0YShJ
UEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxl
bmd0aCkKKyAgICBEaWRSZWNlaXZlRm9ybURhdGEoSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBkYXRh
KQorICAgIERpZEZpbmlzaCgpCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDVhYWM3ZmQ5ZGQw
OTIwZWI2ZjhlNTZhZjhmOTAxODBjNzg0OGEyOWYuLmE0OTUzNWJhOTIyNmE2ZjRmYTJkY2NmZjUz
ZTAzOTIzYmQzYjk0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3Bw
CkBAIC0xMjgsNiArMTI4LDcgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVwZGF0ZVdv
cmtlclN0YXRlSW5DbGllbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgd28KIAogdm9pZCBXZWJT
V1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBGZXRjaElkZW50
aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogeworICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJjYW5jZWxGZXRjaDogJXMiLCBmZXRjaElkZW50aWZpZXIubG9nZ2lu
Z1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIGF1dG8qIHdvcmtlciA9IHNlcnZlcigpLmFj
dGl2ZVdvcmtlckZyb21SZWdpc3RyYXRpb25JRChzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllcik7CiAgICAgaWYgKCF3b3JrZXIgfHwgIXdvcmtlci0+aXNSdW5uaW5nKCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTEzNSw3ICsxMzYsNyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6Y2FuY2VsRmV0Y2goU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2Vydgog
ICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50aWZpZXIgPSB3b3JrZXItPmlkZW50aWZpZXIoKTsK
ICAgICBzZXJ2ZXIoKS5ydW5TZXJ2aWNlV29ya2VySWZOZWNlc3Nhcnkoc2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aGlzLCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyXShhdXRvKiBjb250ZXh0Q29ubmVjdGlvbikg
bXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBjb250ZXh0Q29ubmVjdGlvbikKLSAg
ICAgICAgICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKCpjb250ZXh0Q29ubmVjdGlvbiwgTWVzc2Fn
ZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDYW5jZWxGZXRjaCB7IHRoaXMtPmlk
ZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciB9KTsK
KyAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiY+
KCpjb250ZXh0Q29ubmVjdGlvbikuY2FuY2VsRmV0Y2godGhpcy0+aWRlbnRpZmllcigpLCBmZXRj
aElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIApAQCAt
MTQ4LDcgKzE0OSw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJl
Y2VpdmVGZXRjaFJlc3BvbnNlKFNlcnZpY2VXb3JrZXJSZWdpc3RyCiAgICAgYXV0byBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciA9IHdvcmtlci0+aWRlbnRpZmllcigpOwogICAgIHNlcnZlcigpLnJ1
blNlcnZpY2VXb3JrZXJJZk5lY2Vzc2FyeShzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRoaXMsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBm
ZXRjaElkZW50aWZpZXJdKGF1dG8qIGNvbnRleHRDb25uZWN0aW9uKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKHdlYWtUaGlzICYmIGNvbnRleHRDb25uZWN0aW9uKQotICAgICAgICAgICAgc2VuZFRv
Q29udGV4dFByb2Nlc3MoKmNvbnRleHRDb25uZWN0aW9uLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OkNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UgeyB0aGlz
LT5pZGVudGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIg
fSk7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24mPigqY29udGV4dENvbm5lY3Rpb24pLmNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2Uo
dGhpcy0+aWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKTsKICAgICB9KTsKIH0KIApAQCAtMTg3LDcgKzE4OCw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpzdGFydEZldGNoKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
IHNlcnZpCiAKICAgICAgICAgICAgIGlmIChjb250ZXh0Q29ubmVjdGlvbikgewogICAgICAgICAg
ICAgICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydEZl
dGNoOiBTdGFydGluZyBmZXRjaCAlcyB2aWEgc2VydmljZSB3b3JrZXIgJXMiLCBmZXRjaElkZW50
aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBzZW5k
VG9Db250ZXh0UHJvY2VzcygqY29udGV4dENvbm5lY3Rpb24sIE1lc3NhZ2VzOjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaCB7IHRoaXMtPmlkZW50aWZpZXIoKSwgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywg
Zm9ybURhdGEsIHJlZmVycmVyIH0pOworICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiY+KCpjb250ZXh0Q29ubmVjdGlvbikuc3RhcnRGZXRj
aChtX3Nlc3Npb25JRCwgbV9jb250ZW50Q29ubmVjdGlvbi5nZXQoKSwgdGhpcy0+aWRlbnRpZmll
cigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0LCBv
cHRpb25zLCBmb3JtRGF0YSwgcmVmZXJyZXIpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RCgic3RhcnRGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAlcyBEaWROb3RIYW5kbGUgYmVjYXVzZSBm
YWlsZWQgdG8gcnVuIHNlcnZpY2Ugd29ya2VyIiwgZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgICAgICBtX2NvbnRlbnRDb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZE5vdEhhbmRsZSB7
IH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKQEAgLTI0Myw0NCArMjQ0LDYgQEAgdm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNjaGVkdWxlSm9iSW5TZXJ2ZXIoU2VydmljZVdvcmtl
ckpvYkRhdGEmJiBqb2JEYXRhKQogICAgIHNlcnZlcigpLnNjaGVkdWxlSm9iKFdURk1vdmUoam9i
RGF0YSkpOwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNo
UmVkaXJlY3RSZXNwb25zZShGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZFJlY2VpdmVSZWRpcmVj
dFJlc3BvbnNlIHsgcmVzcG9uc2UgfSwgZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwotfQot
Ci12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoRmV0
Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCi17Ci0g
ICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVu
dEZldGNoOjpEaWRSZWNlaXZlUmVzcG9uc2UgeyByZXNwb25zZSwgbmVlZHNDb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZU1lc3NhZ2UgfSwgZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwotfQot
Ci12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoRGF0YShGZXRjaElk
ZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEs
IGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi17Ci0gICAgbV9jb250ZW50Q29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlRGF0YSB7
IGRhdGEsIGVuY29kZWREYXRhTGVuZ3RoIH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsK
LX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaEZvcm1EYXRh
KEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmIGZvcm1EYXRhKQotewotICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsgZm9ybURh
dGEgfSwgZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwotfQotCi12b2lkIFdlYlNXU2VydmVy
Q29ubmVjdGlvbjo6ZGlkRmluaXNoRmV0Y2goRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmll
cikKLXsKLSAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlk
RmluaXNoRmV0Y2g6IGZldGNoSWRlbnRpZmllcjogJXMiLCBmZXRjaElkZW50aWZpZXIubG9nZ2lu
Z1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkRmluaXNoIHsgfSwgZmV0Y2hJ
ZGVudGlmaWVyLnRvVUludDY0KCkpOwotfQotCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
ZGlkRmFpbEZldGNoKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlRXJyb3ImIGVycm9yKQotewotICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKCJkaWRGYWlsRmV0Y2g6IGZldGNoSWRlbnRpZmllcjogJXMiLCBmZXRj
aElkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIG1fY29udGVu
dENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlk
RmFpbCB7IGVycm9yIH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9pZCBX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5vdEhhbmRsZUZldGNoKEZldGNoSWRlbnRpZmllciBm
ZXRjaElkZW50aWZpZXIpCi17Ci0gICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoImRpZE5vdEhhbmRsZUZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVzIiwgZmV0Y2hJ
ZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBtX2NvbnRlbnRD
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZE5v
dEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKLX0KLQogdm9pZCBXZWJT
V1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KERvY3Vt
ZW50SWRlbnRpZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQogewogICAgIGF1dG8qIHNvdXJjZVNl
cnZpY2VXb3JrZXIgPSBzZXJ2ZXIoKS53b3JrZXJCeUlEKHNvdXJjZUlkZW50aWZpZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDJiNGFlZTYzYjU0YWM2OWZkYjRh
ZGZkN2MyOTFmMTAwMDAxNjVmYTYuLjg1MDA2YWIyN2MwNzRkNzkyZDk2NjVhMzZkODYzYzU2Mjg0
MmVmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VT
ZW5kZXIuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVyLmg+
CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpAQCAtNjMsMTQgKzY0LDYgQEAgcHVibGljOgog
CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9u
SUQ7IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZShXZWJDb3Jl
OjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAg
ICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZU1lc3NhZ2UpOwotICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoRGF0YShXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3Qg
ZW5jb2RlZERhdGFMZW5ndGgpOwotICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoV2Vi
Q29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJik7Ci0g
ICAgdm9pZCBkaWRGaW5pc2hGZXRjaChXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwotICAgIHZv
aWQgZGlkRmFpbEZldGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYpOwotICAgIHZvaWQgZGlkTm90SGFuZGxlRmV0Y2goV2ViQ29yZTo6RmV0
Y2hJZGVudGlmaWVyKTsKLQogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGll
bnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZp
ZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIHNvdXJjZVNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZU9yaWdpbik7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgV2ViQ29yZTo6TWVz
c2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xp
ZW50SWRlbnRpZmllciYgc291cmNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRleCAwMDBlNDI3ZWUwZDhmOTAyYjUxNzBiNWI3
YzM4NDExYzg1ZjdiOWU4Li5lYTA0M2E5YjQ0NWJhZDRhNTUyNTUxNjhmZGFhZmFhNmEwMTJiNTM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmNwcApAQCAtMjgsNyArMjgsMTAgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAor
I2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3Mu
aCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCisjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNvbnRleHREYXRhLmg+CkBAIC01Nyw3
ICs2MCw5IEBAIHVpbnQ2NF90IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWVzc2Fn
ZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkNsb3NlZCgpCiB7Ci0gICAgLy8gRklYTUU6IERvIHdoYXQg
aGVyZS4uLj8KKyAgICBhdXRvIGZldGNoZXMgPSBXVEZNb3ZlKG1fb25nb2luZ0ZldGNoZXMpOwor
ICAgIGZvciAoYXV0byYgZmV0Y2ggOiBmZXRjaGVzLnZhbHVlcygpKQorICAgICAgICBmZXRjaC0+
ZmFpbChSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgeyB9LCAi
U2VydmljZSBXb3JrZXIgY29udGV4dCBjbG9zZWQiX3MgfSk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQoY29uc3Qg
U2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQpAQCAtMTE1LDYgKzEyMCw1OSBAQCB2b2lkIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlKCkKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6VGVybWluYXRlUHJvY2VzcygpKTsKIH0K
IAordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnN0YXJ0RmV0Y2goUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbnRlbnRDb25uZWN0
aW9uLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgY29udGVudEZldGNoSWRlbnRpZmllciwgU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgRmV0Y2hPcHRpb25zJiBvcHRpb25zLCBjb25zdCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQorewor
ICAgIGF1dG8gZmV0Y2hJZGVudGlmaWVyID0gRmV0Y2hJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwor
ICAgIAorICAgIG1fb25nb2luZ0ZldGNoZXMuYWRkKGZldGNoSWRlbnRpZmllciwgU2VydmljZVdv
cmtlckZldGNoVGFzazo6Y3JlYXRlKHNlc3Npb25JRCwgV1RGTW92ZShjb250ZW50Q29ubmVjdGlv
biksIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb250ZW50RmV0Y2hJZGVudGlmaWVyKSk7
CisKKyAgICBBU1NFUlQoIW1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMuY29udGFpbnMoe3NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb250ZW50RmV0Y2hJZGVudGlmaWVyfSkpOworICAgIG1f
b25nb2luZ0ZldGNoSWRlbnRpZmllcnMuYWRkKHtzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
Y29udGVudEZldGNoSWRlbnRpZmllcn0sIGZldGNoSWRlbnRpZmllcik7CisKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaCB7IHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZmV0Y2hJZGVu
dGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zLCBkYXRhLCByZWZlcnJlciB9KTsKK30KKwordm9pZCBX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmNhbmNlbEZldGNoKFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNo
SWRlbnRpZmllciBjb250ZW50RmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vbmdv
aW5nRmV0Y2hJZGVudGlmaWVycy5maW5kKHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNv
bnRlbnRGZXRjaElkZW50aWZpZXIgfSk7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fb25nb2luZ0Zl
dGNoSWRlbnRpZmllcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDYW5jZWxGZXRjaCB7IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgaXRlcmF0b3ItPnZh
bHVlIH0pOworCisgICAgbV9vbmdvaW5nRmV0Y2hlcy5yZW1vdmUoaXRlcmF0b3ItPnZhbHVlKTsK
KyAgICBtX29uZ29pbmdGZXRjaElkZW50aWZpZXJzLnJlbW92ZShpdGVyYXRvcik7Cit9CisKK3Zv
aWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRj
aFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBjb250ZW50RmV0Y2hJZGVudGlmaWVy
LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAg
ICBhdXRvIGl0ZXJhdG9yID0gbV9vbmdvaW5nRmV0Y2hJZGVudGlmaWVycy5maW5kKHsgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnRlbnRGZXRjaElkZW50aWZpZXIgfSk7CisgICAgaWYg
KGl0ZXJhdG9yID09IG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMuZW5kKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICAKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6Q29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSB7IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgaXRlcmF0b3ItPnZhbHVlIH0pOwor
fQorCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNo
VGFza01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1fb25nb2luZ0ZldGNoZXMuZmluZChtYWtl
T2JqZWN0SWRlbnRpZmllcjxGZXRjaElkZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0aW9u
SUQoKSkpOworICAgIGlmIChpdGVyYXRvciA9PSBtX29uZ29pbmdGZXRjaGVzLmVuZCgpKQorICAg
ICAgICByZXR1cm47CisgICAgCisgICAgYm9vbCBzaG91bGRSZW1vdmUgPSBkZWNvZGVyLm1lc3Nh
Z2VOYW1lKCkgPT0gTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZhaWw6Om5h
bWUoKQorICAgICAgICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OkRpZE5vdEhhbmRsZTo6bmFtZSgpCisgICAgICAgIHx8IGRlY29k
ZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlk
RmluaXNoOjpuYW1lKCkKKyAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3Nh
Z2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZTo6
bmFtZSgpOworCisgICAgaXRlcmF0b3ItPnZhbHVlLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKTsKKworICAgIGlmIChzaG91bGRSZW1vdmUpIHsKKyAgICAgICAgQVNTRVJU
KG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMuY29udGFpbnMoaXRlcmF0b3ItPnZhbHVlLT5pZGVu
dGlmaWVyKCkpKTsKKyAgICAgICAgbV9vbmdvaW5nRmV0Y2hJZGVudGlmaWVycy5yZW1vdmUoaXRl
cmF0b3ItPnZhbHVlLT5pZGVudGlmaWVyKCkpOworICAgICAgICBtX29uZ29pbmdGZXRjaGVzLnJl
bW92ZShpdGVyYXRvcik7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCAyZjg4OWIyODZiYzFlMWRkNmI1NzEzMWU2
NTg0ZjVhZTBmMTE0NzE1Li4yNTVkMjdjMjEzMmExNzA3OGMwYmIyN2Y1ZmJmNzQ1MzU2ZDU2ZTg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5o
CkBAIC0yOSw4ICsyOSwyMiBAQAogCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2su
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oPgogCitu
YW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgRmV0Y2hPcHRpb25zOworY2xhc3MgUmVzb3VyY2VS
ZXF1ZXN0OworfQorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEZvcm1EYXRhUmVmZXJlbmNlOwor
fQorCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwpAQCAtNTEsNiArNjUsMTIgQEAgcHVibGlj
OgogCiAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKIAorICAgIHZvaWQgc3RhcnRGZXRjaChQQUw6OlNl
c3Npb25JRCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYsIGNv
bnN0IFN0cmluZyYpOworICAgIHZvaWQgY2FuY2VsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVGZXRjaFJl
c3BvbnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZl
dGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOworCisgICAg
dm9pZCBkaWRSZWNlaXZlRmV0Y2hUYXNrTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKTsKKwogcHJpdmF0ZToKICAgICBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24o
TmV0d29ya1Byb2Nlc3MmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBSZWY8
SVBDOjpDb25uZWN0aW9uPiYmKTsKICAgICB+V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
KCk7CkBAIC03NSw2ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4g
bV9pcGNDb25uZWN0aW9uOwogICAgIFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2Vz
czsKICAgICAKKyAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXIs
IFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcj4gbV9vbmdvaW5nRmV0Y2hJZGVudGlmaWVyczsKKyAg
ICBIYXNoTWFwPFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgUmVmPFNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s+PiBtX29uZ29pbmdGZXRjaGVzOwogfTsgLy8gY2xhc3MgV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNzQw
N2NjMjE5MDNlMjY0Yjg4NDhjODVhNTg5NTA4NDRkM2RkYWM0OC4uYjE3OWZkMWUxZjcxNjcwMWU0
ZWMwN2YxOWRjM2UyMGQ2YTc4N2ZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC01Niw2ICs1Niw3IEBAIE5l
dHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKIAogTmV0d29ya1By
b2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKIAorTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCBAbm8tdW5pZnkK
IE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5jcHAgQG5vLXVu
aWZ5CiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5j
cHAgQG5vLXVuaWZ5CiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXgg
OTI5YzUwZTJlMDYwYzY3ZGM5YzdhNTExZjBmOTc2OWZiOGMzZDkwOC4uNWFlODExZmRmYzk3ODhk
MjEwMDhmOGQxN2EwYjdlNTI1YTc3ZTk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTc2
LDUgKzU3Niw1IEBAIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEubW0gQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCiAKIC8vIERlcml2ZWQgU291
cmNlcwotCiBFZGl0YWJsZUltYWdlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKK1NlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhOWZiMmQwN2MxODI0ZjZkNmMx
NzA5MzYzOWE3ZWY2NTVhYTFhMjQzLi41ODA1MzZiZDAwOGIwZTkyY2EyMzcxMzUzZGE2YzJhNDlj
NjhjYTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTg4OSw2ICs4ODksNyBAQAogCQk0MURDNDU5NjFFM0Q2RTIyMDBCMTFGNTEgLyog
TmV0d29ya1JUQ1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MURDNDU5NDFFM0Q2RTFFMDBCMTFGNTEgLyogTmV0d29ya1JUQ1Byb3ZpZGVy
LmggKi87IH07CiAJCTQxREM0NTlDMUUzREJCMjgwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
REM0NTlBMUUzREJCMjQwMEIxMUY1MSAvKiBMaWJXZWJSVENTb2NrZXRDbGllbnQuaCAqLzsgfTsK
IAkJNDFEQzQ1OUYxRTNEQkRBNTAwQjExRjUxIC8qIFdlYlJUQ1NvY2tldC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjMxRTNCRkU3RjAwMUFF
Njc4IC8qIFdlYlJUQ1NvY2tldC5oICovOyB9OworCQk0MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUg
LyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYgLyogU2VydmljZVdv
cmtlckZldGNoVGFzay5jcHAgKi87IH07CiAJCTQxRkFCRDJBMUY0REUwMDEwMDZBNkM5NyAvKiBD
YWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDFGQUJEMjgxRjREREZEQzAwNkE2Qzk3IC8qIENhY2hlU3RvcmFnZUVu
Z2luZUNhY2hlLmggKi87IH07CiAJCTQxRkFGNUY1MUUzQzA2NDkwMDFBRTY3OCAvKiBXZWJSVENS
ZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDFGQUY1RjQxRTNDMDY0MTAwMUFFNjc4IC8qIFdlYlJUQ1Jlc29sdmVyLmggKi87IH07CiAJCTQx
RkFGNUY4MUUzQzEwMjEwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjYxRTNDMEI0NzAwMUFF
Njc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggKi87IH07CkBAIC0zMDM5LDYgKzMwNDAsOSBAQAog
CQk0MTRERDM3ODIwQkY0M0VBMDA2OTU5RkIgLyogY29tLmNpc2NvLndlYmV4LnBsdWdpbi5ncGM2
NC5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uY2lzY28ud2ViZXgucGx1Z2luLmdwYzY0
LnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTRERURENTFGOUVERERGMDA0N0M0
MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxNERFREQ2MUY5RURERTAwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTUxODUzNTIyMjcwNEY1MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNTE4NTM2MjIyNzA0RjYwMDU0MzBDNiAvKiBT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTUxODUzODIyMjcwRjUzMDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFz
ay5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTUxRTVDMzFG
QkI5MEE5MDBFNDdFMkQgLyogRm9ybURhdGFSZWZlcmVuY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRm9ybURhdGFSZWZlcmVuY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE1Nzg1MzAyMTI3NkI2RjAwREQzODAwIC8qIGNvcHktd2ViY29udGVudC1yZXNv
dXJjZXMtdG8tcHJpdmF0ZS1oZWFkZXJzLnNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQuc2g7IHBhdGggPSAiY29weS13ZWJjb250
ZW50LXJlc291cmNlcy10by1wcml2YXRlLWhlYWRlcnMuc2giOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTU3RTRBRjIwRTJFQzk4MDBBNkMwRDcgLyogY29tLmdvb2dsZS5vMWRicm93
c2VycGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5nb29nbGUubzFkYnJvd3Nl
cnBsdWdpbi5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcwMjQsNiArNzAyOCw5
IEBACiAJCTkzQkEwNEQ5MjE1MUFEQ0QwMDdGNDU1RiAvKiBTZXJ2aWNlV29ya2VyICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0MTUxODUzNjIyMjcwNEY2
MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgKi8sCisJCQkJNDE1MTg1MzUy
MjI3MDRGNTAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCAqLywKKwkJCQk0MTUx
ODUzODIyMjcwRjUzMDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5p
biAqLywKIAkJCQk5M0JBMDRERjIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dPcmlnaW5TdG9yZS5j
cHAgKi8sCiAJCQkJOTNCQTA0REUyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXT3JpZ2luU3RvcmUu
aCAqLywKIAkJCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcCAqLywKQEAgLTExMDM3LDYgKzExMDQ0LDcgQEAKIAkJCQkyRDg1MDhDNjIxMkUzM0VE
MDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTk3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEODUw
OEQ4MjEyRTMzRUQwMDBFRjQ2QyAvKiBVbmlmaWVkU291cmNlOTguY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkQ4NTA4QzUyMTJFMzNFRDAwMEVGNDZDIC8qIFVuaWZpZWRTb3VyY2U5OS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk0MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUgLyogU2VydmljZVdvcmtl
ckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDg1MDhEMjIxMkUzM0VEMDAwRUY0
NkMgLyogVW5pZmllZFNvdXJjZTEwMC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDQ5MUIwRDFF
NzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMTcxRTczNTI1NTAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggNGRiN2E4YzMwNmY3NDNk
YzUzYTNkNWRjMzg5ODc1ZDkxYzJiMmYwYS4uNGQ5YTY1NGUxOTNhZDY1ZjYwN2NjYzlkODg5MWE1
ZmUyYWQwZWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkZvcm1EYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDYWNoZVN0b3Jh
Z2VQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgIldlYkRhdGFiYXNlUHJvdmlkZXIuaCIKQEAgLTIyNSwxMiArMjI2LDEyIEBAIHZvaWQgV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciBzZXJ2CiB7CiAgICAgYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0g
U1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBpZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eSkgewotICAgICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6RGlkTm90SGFuZGxlRmV0Y2ggeyBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgZmV0Y2hJZGVudGlmaWVyIH0sIDApOworICAgICAgICBtX2Nvbm5lY3Rpb25Ub05l
dHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRO
b3RIYW5kbGUgeyB9LCBmZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBpZiAoIWlzVmFsaWRGZXRjaChyZXF1ZXN0LCBvcHRpb25zLCBzZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHktPnNjcmlwdFVSTCgpLCByZWZlcnJlcikpIHsKLSAgICAgICAg
bV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OkRpZE5vdEhhbmRsZUZldGNoIHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNo
SWRlbnRpZmllciB9LCAwKTsKKyAgICAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkTm90SGFuZGxlIHsgfSwg
ZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCmluZGV4IDA1YzY4YjI1OGM3Yjlm
NDk2ZDJhOTk4YzU4MTI5ZmUyNzBmY2E0NTUuLjk1MzBmNTQ2YTAxMjMxNDI1NjRjZWMzYTZhOTlj
ZjVjZmQ4ODllMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBA
IC01NSw3ICs1NSw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlk
UmVjZWl2ZVJlZGlyZWN0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291CiB7CiAgICAgaWYgKCFtX2Nv
bm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNlIHsgbV9z
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlIH0s
IDApOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNo
VGFzazo6RGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UgeyByZXNwb25zZSB9LCBtX2ZldGNoSWRl
bnRpZmllci50b1VJbnQ2NCgpKTsKIAogICAgIGNsZWFudXAoKTsKIH0KQEAgLTY4LDcgKzY4LDcg
QEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYKICAgICBpZiAobV9uZWVkc0NvbnRpbnVlRGlkUmVj
ZWl2ZVJlc3BvbnNlTWVzc2FnZSkKICAgICAgICAgbV93YWl0aW5nRm9yQ29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2VNZXNzYWdlID0gdHJ1ZTsKIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlIHsgbV9zZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlLCBtX25lZWRz
Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIH0sIDApOworICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZVJlc3Bv
bnNlIHsgcmVzcG9uc2UsIG1fbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2Ug
fSwgbV9mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBi
dWZmZXIpCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hEYXRhIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHsgYnVmZmVyIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+
KGJ1ZmZlci0+c2l6ZSgpKSB9LCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRhIHsgeyBidWZmZXIgfSwgc3Rh
dGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyLnRv
VUludDY0KCkpOwogfQogCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRp
ZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+JiYgZm9ybURhdGEpCkBAIC0x
MDEsNyArMTAxLDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRS
ZWNlaXZlRm9ybURhdGFBbmRGaW5pc2goUmVmPEZvcm1EYXRhPiYKICAgICAvLyBGb3Igbm93IGFu
ZCBmb3IgdGhlIGNhc2Ugb2YgYmxvYnMsIHdlIHJlYWQgaXQgdGhlcmUgYW5kIHNlbmQgdGhlIGRh
dGEgdGhyb3VnaCBJUEMuCiAgICAgVVJMIGJsb2JVUkwgPSBmb3JtRGF0YS0+YXNCbG9iVVJMKCk7
CiAgICAgaWYgKGJsb2JVUkwuaXNOdWxsKCkpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoRm9ybURhdGEgeyBtX3Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSB7IFdURk1vdmUoZm9ybURhdGEpIH0gfSwgMCk7CisgICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZUZv
cm1EYXRhIHsgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IFdURk1vdmUoZm9ybURhdGEpIH0gfSwg
bV9mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6
OmRpZFJlY2VpdmVCbG9iQ2h1bmsoY29uc3QgY2hhciogZGF0YSwgc2l6ZQogICAgIGlmICghbV9j
b25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hEYXRhIHsgbV9zZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHsgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90Kj4oZGF0YSksIHNpemUgfSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc2l6ZSkg
fSwgMCk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90
Kj4oZGF0YSksIHNpemUgfSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc2l6ZSkgfSwgbV9mZXRjaElk
ZW50aWZpZXIudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6ZGlkRmluaXNoQmxvYkxvYWRpbmcoKQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQg
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZEZhaWxGZXRjaCB7IG1fc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCBlcnJvciB9LCAwKTsKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZEZh
aWwgeyBlcnJvciB9LCBtX2ZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIAogICAgIGNsZWFu
dXAoKTsKIH0KQEAgLTE2NCw3ICsxNjQsNyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQ6OmRpZEZpbmlzaCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRGaW5pc2hGZXRjaCB7
IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0sIDApOwor
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6
RGlkRmluaXNoIHsgfSwgbV9mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAKICAgICBjbGVh
bnVwKCk7CiB9CkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50OjpkaWROb3RIYW5kbGUoKQogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpEaWROb3RIYW5kbGVGZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1f
ZmV0Y2hJZGVudGlmaWVyIH0sIDApOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkTm90SGFuZGxlIHsgfSwgbV9mZXRjaElkZW50aWZp
ZXIudG9VSW50NjQoKSk7CiAKICAgICBjbGVhbnVwKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363669</attachid>
            <date>2019-03-05 12:28:26 -0800</date>
            <delta_ts>2019-03-05 13:49:34 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-195130-20190305122819.patch</filename>
            <type>text/plain</type>
            <size>55445</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNiYzA5YWY3MWEzZTc5MDU2
YmZhOTlkN2ZhODYzMGQyYzIwNzAxMmMuLmNiYjQ0NmE5OGVjMDRmOTRkNzNiODJhZjlhNWYyMWQ5
MGRlYzI0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTktMDMtMDQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTUxMzAKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAg
ICBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIGlzIGFkZGVkIHRvIHJlcHJlc2VudCBOZXR3b3JrUHJv
Y2VzcyBzaWRlIG9mIGFuIG9uZ29pbmcgZmV0Y2ggaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3Jr
ZXIuCisgICAgICAgIFRoaXMgcGF0Y2ggc2hvdWxkIG5vdCBjaGFuZ2UgZXhpc3RpbmcgYmVoYXZp
b3IuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZEZhaWxGZXRjaCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWROb3RIYW5kbGVGZXRjaCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3Bv
bnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZFJlY2Vp
dmVGZXRjaFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmRpZFJlY2VpdmVGZXRjaERhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkRmluaXNoRmV0Y2gpOiBEZWxldGVkLgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNhbmNlbEZldGNoKToKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hS
ZWRpcmVjdFJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoRGF0YSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZl
dGNoRm9ybURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OmRpZEZpbmlzaEZldGNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpkaWRGYWlsRmV0Y2gpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZE5vdEhhbmRsZUZldGNoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjYW5jZWxGZXRjaCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y29udGludWVEaWRSZWNl
aXZlRmV0Y2hSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoVGFza01lc3NhZ2UpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6
CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVkaXJlY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVC
bG9iQ2h1bmspOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudDo6ZGlkTm90SGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9u
c2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZl
UmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRS
ZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmRp
ZFJlY2VpdmVGb3JtRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OmRpZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRO
b3RIYW5kbGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlckZldGNoVGFzay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtl
ckZldGNoVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNo
VGFzazo6SWRlbnRpZmllcjo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2s6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKToKKyAgICAgICAgKFdl
YktpdDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tJ
ZGVudGlmaWVySGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tJZGVudGlmaWVySGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYktp
dDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllcj46OmVtcHR5VmFsdWUpOgorICAg
ICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRl
bnRpZmllcj46OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFp
dHM8V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyPjo6aXNEZWxldGVk
VmFsdWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdv
cmtlckZldGNoVGFzay5tZXNzYWdlcy5pbjogQWRkZWQuCisKIDIwMTktMDMtMDQgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9O
OiAoIHIyNDA5NzgtcjI0MDk4NSApIFsgaU9TIFJlbGVhc2UgXSBMYXlvdXQgVGVzdCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hoci9zZW5kLXJlZGlyZWN0LXBvc3QtdXBsb2FkLmh0
bSBpcyBjcmFzaGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggZTFkOTYzOWIxYjVlMzkzNmE1MDg4
YjEzNDlhODlkYTRjNTkyZGJlNy4uZDYzMWE0ZmUyZjNlNzA2NDU2M2E0YWZiOWRmNTRlMzBiOGFm
MDFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xMTEsNiArMTExLDcgQEAgc2V0KFdlYktpdF9N
RVNTQUdFU19JTl9GSUxFUwogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5tZXNzYWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0ubWVz
c2FnZXMuaW4KIAorICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckZldGNoVGFzay5tZXNzYWdlcy5pbgogICAgIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAgICAgTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDZm
MDIxOGY5MGRiYmM2NmQxM2NmYjk3Y2QwNTg2N2MxOWNkYzVlNDMuLmM3N2RhNWQwYjdhOWQyNzhm
ZjQzYzM4ZDJhMWZlMWNlYzFmZTU5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTI0LDYgKzI0LDcgQEAgJChQUk9KRUNUX0RJUikvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIubWVzc2FnZXMuaW4KICQo
UFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0u
bWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckZldGNoVGFzay5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA4Yjc1
YzNiZTRhMGQwYTdlMzkzZjU5ZGIwYzAxMzVlODU1MmZiZmRhLi4xYWE5NzAzMWQ4ZjkwZjY3NmEy
M2QwYTMxYTZkMmI0YWVkM2Y3ZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTgwLDYgKzgwLDggQEAgJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NlY0l0
ZW1TaGltUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2hNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2Vy
Q2xpZW50RmV0Y2hNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2VpdmVyLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2VydmljZVdvcmtlckZl
dGNoVGFza01lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TbWFydE1hZ25pZmlj
YXRpb25Db250cm9sbGVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNmU4MjU1MjFmMzI3NThmZjAzMjhiY2NjZGZiNjE4M2Jh
MjM5YjBkMi4uNzQzNWQwNmQxYjU3N2Y2OGExNWU2NWJiZmJkZTU4MDUxZDQzN2Y2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTMxLDYgKzEzMSw3IEBAIE1FU1NBR0VfUkVDRUlW
RVJTID0gXAogICAgIFJlbW90ZVdlYkluc3BlY3RvclVJIFwKICAgICBTZWNJdGVtU2hpbVByb3h5
IFwKICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2ggXAorICAgIFNlcnZpY2VXb3JrZXJGZXRj
aFRhc2sgXAogICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXAogICAgIFN0b3JhZ2VB
cmVhTWFwIFwKICAgICBTdG9yYWdlTWFuYWdlciBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CmluZGV4IGUyNzkwNjZhMzFlMzBjMzM0NDVjYjM0YTE2MGVlNzYwZmNmMzQ2MTguLmYzMTRiYzY1
MWRjZTAyZjFiZjNlY2NjMDJkMTNiOTVjOTA2NmUyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1NvY2tldFN0cmVhbU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWQuaCIKICNpbmNsdWRlICJQcmVjb25uZWN0VGFz
ay5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2lu
Y2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIgpAQCAtMTgwLDEzICsxODEsMjAgQEAg
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAgICAgICAgICAgIHN3Q29ubmVjdGlvbi0+ZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgCisKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2Fn
ZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7CiAgICAgICAgIGlmIChhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IG1fbmV0d29ya1Byb2Nl
c3MtPmNvbm5lY3Rpb25Ub0NvbnRleHRQcm9jZXNzRnJvbUlQQ0Nvbm5lY3Rpb24oY29ubmVjdGlv
bikpIHsKICAgICAgICAgICAgIGNvbnRleHRDb25uZWN0aW9uLT5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
IH0KKworICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
U2VydmljZVdvcmtlckZldGNoVGFzazo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAg
IGlmIChhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IG1fbmV0d29ya1Byb2Nlc3MtPmNvbm5lY3Rp
b25Ub0NvbnRleHRQcm9jZXNzRnJvbUlQQ0Nvbm5lY3Rpb24oY29ubmVjdGlvbikpIHsKKyAgICAg
ICAgICAgIGNvbnRleHRDb25uZWN0aW9uLT5kaWRSZWNlaXZlRmV0Y2hUYXNrTWVzc2FnZShjb25u
ZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0K
ICNlbmRpZgogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDU1Y2JhYjg2NGZlZWI5Y2Nl
ODM0YjRmYWRkOWM0MDAyM2I0YjkyMjAuLjBhMjljZDcwZTViZGFiYjA1Y2QwMmFjOTA0ZmJjZmQ5
NTEwNTExNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCkBAIC0yMTg2LDQ4ICsyMTg2LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y3Jl
YXRlU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHMK
ICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6RXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQ
cm9jZXNzKHNlY3VyaXR5T3JpZ2luKSwgMCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRp
ZEZhaWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJD
b25uZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICBjb25u
ZWN0aW9uLT5kaWRGYWlsRmV0Y2goZmV0Y2hJZGVudGlmaWVyLCBlcnJvcik7Ci19Ci0KLXZvaWQg
TmV0d29ya1Byb2Nlc3M6OmRpZE5vdEhhbmRsZUZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElk
ZW50aWZpZXIpCi17Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVj
dGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgY29ubmVjdGlv
bi0+ZGlkTm90SGFuZGxlRmV0Y2goZmV0Y2hJZGVudGlmaWVyKTsKLX0KLQotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZShTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIg
ZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKLXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5n
ZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICBjb25uZWN0aW9uLT5kaWRS
ZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNlKGZldGNoSWRlbnRpZmllciwgcmVzcG9uc2UpOwot
fQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElk
ZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkK
LXsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5nZXQo
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICBjb25uZWN0aW9uLT5kaWRSZWNl
aXZlRmV0Y2hSZXNwb25zZShmZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlLCBuZWVkc0NvbnRpbnVl
RGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRp
ZFJlY2VpdmVGZXRjaERhdGEoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQotewot
ICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25zLmdldChzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVG
ZXRjaERhdGEoZmV0Y2hJZGVudGlmaWVyLCBkYXRhLCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci19Ci0K
LXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhKFNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRp
ZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmIGZvcm1E
YXRhKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25z
LmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNvbm5lY3Rpb24tPmRp
ZFJlY2VpdmVGZXRjaEZvcm1EYXRhKGZldGNoSWRlbnRpZmllciwgZm9ybURhdGEpOwotfQotCi12
b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRGaW5pc2hGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJ
ZGVudGlmaWVyKQotewotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5l
Y3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIGNvbm5lY3Rp
b24tPmRpZEZpbmlzaEZldGNoKGZldGNoSWRlbnRpZmllcik7Ci19Ci0KIHZvaWQgTmV0d29ya1By
b2Nlc3M6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzJiYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCiB7CiAgICAgaWYgKGF1dG8qIGNvbm5l
Y3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KGRlc3RpbmF0aW9uSWRlbnRpZmllci5z
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNTMyZjNmN2QwYWYzOWMyMWExMjgyODgwODk2MTNk
MDVkZDJiNTQ2MS4uMTJiMjRlNDJhYzc5MzcwNjU2ZTA3YjU5YTk4ZDMxZDdkOGUxZDM1NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtNDI2
LDE0ICs0MjYsNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCi0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNo
UmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgYm9vbCBu
ZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlRmV0Y2hEYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRfdCBl
bmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YShXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZp
ZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKLSAgICB2b2lkIGRpZEZpbmlzaEZl
dGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNo
SWRlbnRpZmllcik7Ci0gICAgdm9pZCBkaWRGYWlsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJik7Ci0gICAgdm9pZCBkaWROb3RIYW5kbGVGZXRjaChXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwot
CiAgICAgdm9pZCBkaWRDcmVhdGVXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3Qg
SVBDOjpBdHRhY2htZW50Jik7CiAgICAgCiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYg
ZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYm
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBlM2EzZGM3MzQ5MGI1
NjRjMmJmZGRkZTA1ZTQ5NzEzZjQ0YWRhZTYwLi44Y2Q0MDIwNGRlZmRjMTdiOTk5MDJiOTNmM2I5
ODQ3NWI5ODJhYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTE0OSwxMyArMTQ5LDYgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldENhY2hlU3RvcmFn
ZVBhcmFtZXRlcnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBxdW90YSwgU3Ry
aW5nIGNhY2hlU3RvcmFnZURpcmVjdG9yeSwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgaGFuZGxlKTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBEaWROb3RIYW5k
bGVGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVy
KQotICAgIERpZEZhaWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQotICAgIERpZFJlY2Vp
dmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKLSAg
ICBEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZp
ZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBi
b29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQotICAgIERpZFJlY2Vp
dmVGZXRjaERhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRp
ZmllciwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2Rl
ZERhdGFMZW5ndGgpCi0gICAgRGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoV2ViQ29yZTo6U1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSBkYXRhKQotICAgIERpZEZpbmlzaEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRp
ZmllciBmZXRjaElkZW50aWZpZXIpCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGll
bnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGRlc3RpbmF0
aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1l
c3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIs
IFN0cmluZyBzb3VyY2VPcmlnaW4pCiAKICAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgc3RydWN0IFdlYkNv
cmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJPckNsaWVudElkZW50aWZpZXIgc291cmNlLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZTBiMjQ0MDc4ZDgzMmFlZGNkZDhhNjc5MTg0
MTRmMjg3MGM2MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKQEAgLTAsMCArMSw4
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
IkZvcm1EYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCisKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikg
UkVMRUFTRV9MT0dfSUYobV9zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFNl
cnZpY2VXb3JrZXIsICIlcCAtIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OiIgZm10LCB0aGlzLCAj
I19fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKGZtdCwg
Li4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRihtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoKSwgU2VydmljZVdvcmtlciwgIiVwIC0gU2VydmljZVdvcmtlckZldGNoVGFzazo6IiBm
bXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNl
aXZlUmVkaXJlY3RSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sK
KyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZTog
JXMiLCBtX2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UgeyByZXNwb25zZSB9LCBtX2lk
ZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworfQorCit2b2lkIFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkK
K3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2UsIG5lZWRzQ29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2VNZXNzYWdlIH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9VSW50
NjQoKSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZURhdGEo
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3Ro
KQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVu
dEZldGNoOjpEaWRSZWNlaXZlRGF0YSB7IGRhdGEsIGVuY29kZWREYXRhTGVuZ3RoIH0sIG1faWRl
bnRpZmllci5mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7Cit9CisKK3ZvaWQgU2VydmljZVdv
cmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmIGZvcm1EYXRhKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vy
dmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlRm9ybURhdGEgeyBmb3JtRGF0YSB9LCBt
X2lkZW50aWZpZXIuZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworfQorCit2b2lkIFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OmRpZEZpbmlzaCgpCit7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgiZGlkRmluaXNoRmV0Y2g6IGZldGNoSWRlbnRpZmllcjogJXMiLCBtX2lkZW50aWZpZXIu
ZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkRmlu
aXNoIHsgfSwgbV9pZGVudGlmaWVyLmZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30KKwor
dm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3Im
IGVycm9yKQoreworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoImRpZEZhaWxGZXRj
aDogZmV0Y2hJZGVudGlmaWVyOiAlcyIsIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIubG9n
Z2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRGYWlsIHsgZXJyb3IgfSwgbV9pZGVu
dGlmaWVyLmZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKK30KKwordm9pZCBTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrOjpkaWROb3RIYW5kbGUoKQoreworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoImRpZE5vdEhhbmRsZUZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVzIiwgbV9pZGVudGlmaWVy
LmZldGNoSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZE5v
dEhhbmRsZSB7IH0sIG1faWRlbnRpZmllci5mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjEx
NmNjNzQ5ZTZjMDU3N2E5OWQwOTU0NDFhYTgyZDk2ZmU4YzQ4NwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmgKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJ
ZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KKyNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFJlc291cmNl
UmVzcG9uc2U7Cit9CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNz
IERhdGFSZWZlcmVuY2U7CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
IDogcHVibGljIFJlZkNvdW50ZWQ8U2VydmljZVdvcmtlckZldGNoVGFzaz4geworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckZldGNoVGFzaz4gY3JlYXRlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3Jl
OjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2soc2Vzc2lvbklELCBXVEZNb3ZlKGNvbm5lY3Rpb24p
LCBjb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSk7IH0KKworICAgIHZvaWQg
ZmFpbChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikgeyBkaWRGYWlsKGVycm9y
KTsgfQorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJik7CisKKyAgICBzdHJ1Y3QgSWRlbnRpZmllciB7CisgICAgICAgIFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXI7CisgICAgICAg
IFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXI7CisgICAgICAgIAorICAg
ICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgdW5zaWdu
ZWQgaGFzaGVzWzJdOworICAgICAgICAgICAgaGFzaGVzWzBdID0gV1RGOjppbnRIYXNoKGNvbm5l
Y3Rpb25JZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgICAgICAgICAgaGFzaGVzWzFdID0gV1RG
OjppbnRIYXNoKGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICAgICAgICAgIHJldHVy
biBTdHJpbmdIYXNoZXI6Omhhc2hNZW1vcnkoaGFzaGVzLCBzaXplb2YoaGFzaGVzKSk7CisgICAg
ICAgIH0KKyAgICB9OworCisgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorCitwcml2YXRlOgorICAgIFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2soUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
IGNvbm5lY3Rpb24sIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIp
CisgICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorICAgICAgICAsIG1fY29ubmVjdGlv
bihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICAgICAsIG1faWRlbnRpZmllciB7IGNvbm5lY3Rp
b25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIgfQorICAgIHsgfQorCisgICAgdm9pZCBkaWRS
ZWNlaXZlUmVkaXJlY3RSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpOworICAg
IHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRfdCBl
bmNvZGVkRGF0YUxlbmd0aCk7CisgICAgdm9pZCBkaWRSZWNlaXZlRm9ybURhdGEoY29uc3QgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYpOworICAgIHZvaWQgZGlkRmluaXNoKCk7CisgICAgdm9pZCBk
aWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lkIGRpZE5vdEhh
bmRsZSgpOworCisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUmVmPElQQzo6
Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwor
fTsKKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpJZGVudGlmaWVyJiBhLCBjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVy
JiBiKQoreworICAgIHJldHVybiBhLmNvbm5lY3Rpb25JZGVudGlmaWVyID09IGIuY29ubmVjdGlv
bklkZW50aWZpZXIgJiYgIGEuZmV0Y2hJZGVudGlmaWVyID09IGIuZmV0Y2hJZGVudGlmaWVyOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworCituYW1lc3BhY2UgV1RGIHsKKworc3RydWN0
IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2tJZGVudGlmaWVySGFzaCB7CisgICAgc3RhdGljIHVuc2ln
bmVkIGhhc2goY29uc3QgV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVy
JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25z
dCBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXImIGEsIGNvbnN0IFdl
YktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllciYgYikgeyByZXR1cm4gYSA9
PSBiOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJLaXQ6OlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXI+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2Vi
S2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlmaWVyPiB7CisgICAgc3RhdGljIFdl
YktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllciBlbXB0eVZhbHVlKCkgeyBy
ZXR1cm4geyB9OyB9CisgICAgCisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVl
KFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllciYgc2xvdCkgeyBzbG90
LmNvbm5lY3Rpb25JZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29yZTo6U1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0
X3Q+OjptYXgoKSk7IH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25z
dCBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OklkZW50aWZpZXImIHNsb3QpIHsgcmV0
dXJuIHNsb3QuY29ubmVjdGlvbklkZW50aWZpZXIudG9VSW50NjQoKSA9PSBzdGQ6Om51bWVyaWNf
bGltaXRzPHVpbnQ2NF90Pjo6bWF4KCk7IH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1
bHRIYXNoPFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6SWRlbnRpZmllcj4geworICAg
IHVzaW5nIEhhc2ggPSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrSWRlbnRpZmllckhhc2g7Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNo
VGFzay5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1Nzdm
MDcyYmQxODY3NzdhODlhZmJhZWJkMDk5ZjEwOTEzNThhN2EKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZl
dGNoVGFzay5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM1IEBACisjIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKK21lc3Nh
Z2VzIC0+IFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sgeworICAgIERpZE5vdEhhbmRsZSgpCisgICAg
RGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQorICAgIERpZFJlY2VpdmVSZWRp
cmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCisgICAgRGlk
UmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIGJvb2wg
bmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCisgICAgRGlkUmVjZWl2ZURh
dGEoSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2RlZERh
dGFMZW5ndGgpCisgICAgRGlkUmVjZWl2ZUZvcm1EYXRhKElQQzo6Rm9ybURhdGFSZWZlcmVuY2Ug
ZGF0YSkKKyAgICBEaWRGaW5pc2goKQorfQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA1YWFjN2Zk
OWRkMDkyMGViNmY4ZTU2YWY4ZjkwMTgwYzc4NDhhMjlmLi5hNDk1MzViYTkyMjZhNmY0ZmEyZGNj
ZmY1M2UwMzkyM2JkM2I5NDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmNwcApAQCAtMTI4LDYgKzEyOCw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1cGRh
dGVXb3JrZXJTdGF0ZUluQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHdvCiAKIHZvaWQg
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjYW5jZWxGZXRjaChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRmV0Y2hJ
ZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKIHsKKyAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiY2FuY2VsRmV0Y2g6ICVzIiwgZmV0Y2hJZGVudGlmaWVyLmxv
Z2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBhdXRvKiB3b3JrZXIgPSBzZXJ2ZXIo
KS5hY3RpdmVXb3JrZXJGcm9tUmVnaXN0cmF0aW9uSUQoc2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIpOwogICAgIGlmICghd29ya2VyIHx8ICF3b3JrZXItPmlzUnVubmluZygpKQog
ICAgICAgICByZXR1cm47CkBAIC0xMzUsNyArMTM2LDcgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OmNhbmNlbEZldGNoKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNl
cnYKICAgICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gd29ya2VyLT5pZGVudGlmaWVy
KCk7CiAgICAgc2VydmVyKCkucnVuU2VydmljZVdvcmtlcklmTmVjZXNzYXJ5KHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgdGhpcywgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcl0oYXV0byogY29udGV4dENvbm5lY3Rp
b24pIG11dGFibGUgewogICAgICAgICBpZiAod2Vha1RoaXMgJiYgY29udGV4dENvbm5lY3Rpb24p
Ci0gICAgICAgICAgICBzZW5kVG9Db250ZXh0UHJvY2VzcygqY29udGV4dENvbm5lY3Rpb24sIE1l
c3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyB0aGlz
LT5pZGVudGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIg
fSk7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24mPigqY29udGV4dENvbm5lY3Rpb24pLmNhbmNlbEZldGNoKHRoaXMtPmlkZW50aWZpZXIoKSwg
ZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAK
QEAgLTE0OCw3ICsxNDksNyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Y29udGludWVE
aWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTZXJ2aWNlV29ya2VyUmVnaXN0cgogICAgIGF1dG8gc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgPSB3b3JrZXItPmlkZW50aWZpZXIoKTsKICAgICBzZXJ2ZXIo
KS5ydW5TZXJ2aWNlV29ya2VySWZOZWNlc3Nhcnkoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFt3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aGlzLCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgZmV0Y2hJZGVudGlmaWVyXShhdXRvKiBjb250ZXh0Q29ubmVjdGlvbikgbXV0YWJsZSB7CiAg
ICAgICAgIGlmICh3ZWFrVGhpcyAmJiBjb250ZXh0Q29ubmVjdGlvbikKLSAgICAgICAgICAgIHNl
bmRUb0NvbnRleHRQcm9jZXNzKCpjb250ZXh0Q29ubmVjdGlvbiwgTWVzc2FnZXM6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlIHsg
dGhpcy0+aWRlbnRpZmllcigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZmV0Y2hJZGVudGlm
aWVyIH0pOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uJj4oKmNvbnRleHRDb25uZWN0aW9uKS5jb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKHRoaXMtPmlkZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllcik7CiAgICAgfSk7CiB9CiAKQEAgLTE4Nyw3ICsxODgsNyBAQCB2b2lkIFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllciBzZXJ2aQogCiAgICAgICAgICAgICBpZiAoY29udGV4dENvbm5lY3Rpb24pIHsKICAgICAg
ICAgICAgICAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3Rh
cnRGZXRjaDogU3RhcnRpbmcgZmV0Y2ggJXMgdmlhIHNlcnZpY2Ugd29ya2VyICVzIiwgZmV0Y2hJ
ZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICAgICAg
c2VuZFRvQ29udGV4dFByb2Nlc3MoKmNvbnRleHRDb25uZWN0aW9uLCBNZXNzYWdlczo6V2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyB0aGlzLT5pZGVudGlmaWVyKCks
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlv
bnMsIGZvcm1EYXRhLCByZWZlcnJlciB9KTsKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mPigqY29udGV4dENvbm5lY3Rpb24pLnN0YXJ0
RmV0Y2gobV9zZXNzaW9uSUQsIG1fY29udGVudENvbm5lY3Rpb24uZ2V0KCksIHRoaXMtPmlkZW50
aWZpZXIoKSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgcmVxdWVz
dCwgb3B0aW9ucywgZm9ybURhdGEsIHJlZmVycmVyKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQoInN0YXJ0RmV0Y2g6IGZldGNoSWRlbnRpZmllcjogJXMgRGlkTm90SGFuZGxlIGJlY2F1
c2UgZmFpbGVkIHRvIHJ1biBzZXJ2aWNlIHdvcmtlciIsIGZldGNoSWRlbnRpZmllci5sb2dnaW5n
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICAgICAgbV9jb250ZW50Q29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWROb3RIYW5k
bGUgeyB9LCBmZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CkBAIC0yNDMsNDQgKzI0NCw2IEBA
IHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVyKFNlcnZpY2VX
b3JrZXJKb2JEYXRhJiYgam9iRGF0YSkKICAgICBzZXJ2ZXIoKS5zY2hlZHVsZUpvYihXVEZNb3Zl
KGpvYkRhdGEpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZFJlY2VpdmVG
ZXRjaFJlZGlyZWN0UmVzcG9uc2UoRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgbV9jb250ZW50Q29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlUmVk
aXJlY3RSZXNwb25zZSB7IHJlc3BvbnNlIH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsK
LX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNl
KEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQot
ewotICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2UsIG5lZWRzQ29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsK
LX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaERhdGEoRmV0
Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBk
YXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQotewotICAgIG1fY29udGVudENvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZURh
dGEgeyBkYXRhLCBlbmNvZGVkRGF0YUxlbmd0aCB9LCBmZXRjaElkZW50aWZpZXIudG9VSW50NjQo
KSk7Ci19Ci0KLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hGb3Jt
RGF0YShGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlJiBmb3JtRGF0YSkKLXsKLSAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZFJlY2VpdmVGb3JtRGF0YSB7IGZv
cm1EYXRhIH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9pZCBXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OmRpZEZpbmlzaEZldGNoKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50
aWZpZXIpCi17Ci0gICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZEZpbmlzaEZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVzIiwgZmV0Y2hJZGVudGlmaWVyLmxv
Z2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZEZpbmlzaCB7IH0sIGZl
dGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKLX0KLQotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rp
b246OmRpZEZhaWxGZXRjaChGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRCgiZGlkRmFpbEZldGNoOiBmZXRjaElkZW50aWZpZXI6ICVzIiwg
ZmV0Y2hJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBtX2Nv
bnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6
OkRpZEZhaWwgeyBlcnJvciB9LCBmZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7Ci19Ci0KLXZv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWROb3RIYW5kbGVGZXRjaChGZXRjaElkZW50aWZp
ZXIgZmV0Y2hJZGVudGlmaWVyKQotewotICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJkaWROb3RIYW5kbGVGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAlcyIsIGZl
dGNoSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgbV9jb250
ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpE
aWROb3RIYW5kbGUgeyB9LCBmZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7Ci19Ci0KIHZvaWQg
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChE
b2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgTWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKIHsKICAgICBhdXRvKiBzb3Vy
Y2VTZXJ2aWNlV29ya2VyID0gc2VydmVyKCkud29ya2VyQnlJRChzb3VyY2VJZGVudGlmaWVyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCAyYjRhZWU2M2I1NGFjNjlm
ZGI0YWRmZDdjMjkxZjEwMDAwMTY1ZmE2Li44NTAwNmFiMjdjMDc0ZDc5MmQ5NjY1YTM2ZDg2M2M1
NjI4NDJlZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC0yOSw2
ICsyOSw3IEBACiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNz
YWdlU2VuZGVyLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFzay5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TV1NlcnZl
ci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAgLTYzLDE0ICs2NCw2IEBAIHB1Ymxp
YzoKIAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vz
c2lvbklEOyB9CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UoV2Vi
Q29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpGZXRjaElkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sIG5lZWRzQ29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaERhdGEo
V2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBpbnQ2
NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaEZvcm1EYXRh
KFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYp
OwotICAgIHZvaWQgZGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKLSAg
ICB2b2lkIGRpZEZhaWxGZXRjaChXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImKTsKLSAgICB2b2lkIGRpZE5vdEhhbmRsZUZldGNoKFdlYkNvcmU6
OkZldGNoSWRlbnRpZmllcik7Ci0KICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
Q2xpZW50KFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFdlYkNvcmU6
Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJP
ckNsaWVudElkZW50aWZpZXImIHNvdXJjZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggMDAwZTQyN2VlMGQ4ZjkwMmI1MTcw
YjViN2MzODQxMWM4NWY3YjllOC4uZWEwNDNhOWI0NDViYWQ0YTU1MjU1MTY4ZmRhYWZhYTZhMDEy
YjUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5jcHAKQEAgLTI4LDcgKzI4LDEwIEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAKKyNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFzay5oIgorI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oPgpAQCAt
NTcsNyArNjAsOSBAQCB1aW50NjRfdCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246Om1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKIAogdm9pZCBXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb246OmNvbm5lY3Rpb25DbG9zZWQoKQogewotICAgIC8vIEZJWE1FOiBEbyB3
aGF0IGhlcmUuLi4/CisgICAgYXV0byBmZXRjaGVzID0gV1RGTW92ZShtX29uZ29pbmdGZXRjaGVz
KTsKKyAgICBmb3IgKGF1dG8mIGZldGNoIDogZmV0Y2hlcy52YWx1ZXMoKSkKKyAgICAgICAgZmV0
Y2gtPmZhaWwoUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIHsg
fSwgIlNlcnZpY2UgV29ya2VyIGNvbnRleHQgY2xvc2VkIl9zIH0pOwogfQogCiB2b2lkIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KGNv
bnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKQEAgLTExNSw2ICsxMjAsNTkgQEAgdm9pZCBX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OnRlcm1pbmF0ZSgpCiAgICAgc2VuZChNZXNz
YWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlRlcm1pbmF0ZVByb2Nlc3MoKSk7
CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzdGFydEZldGNoKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb250ZW50Q29u
bmVjdGlvbiwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGNvbnRlbnRGZXRjaElkZW50aWZpZXIs
IFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEZldGNoT3B0aW9ucyYgb3B0aW9ucywgY29u
c3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgU3RyaW5nJiByZWZlcnJlcikK
K3sKKyAgICBhdXRvIGZldGNoSWRlbnRpZmllciA9IEZldGNoSWRlbnRpZmllcjo6Z2VuZXJhdGUo
KTsKKyAgICAKKyAgICBtX29uZ29pbmdGZXRjaGVzLmFkZChmZXRjaElkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2s6OmNyZWF0ZShzZXNzaW9uSUQsIFdURk1vdmUoY29udGVudENvbm5l
Y3Rpb24pLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29udGVudEZldGNoSWRlbnRpZmll
cikpOworCisgICAgQVNTRVJUKCFtX29uZ29pbmdGZXRjaElkZW50aWZpZXJzLmNvbnRhaW5zKHtz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29udGVudEZldGNoSWRlbnRpZmllcn0pKTsKKyAg
ICBtX29uZ29pbmdGZXRjaElkZW50aWZpZXJzLmFkZCh7c2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIGNvbnRlbnRGZXRjaElkZW50aWZpZXJ9LCBmZXRjaElkZW50aWZpZXIpOworCisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGZldGNo
SWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgZGF0YSwgcmVmZXJyZXIgfSk7Cit9CisKK3Zv
aWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjYW5jZWxGZXRjaChXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBG
ZXRjaElkZW50aWZpZXIgY29udGVudEZldGNoSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit7CisgICAgYXV0byBpdGVyYXRvciA9IG1f
b25nb2luZ0ZldGNoSWRlbnRpZmllcnMuZmluZCh7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBjb250ZW50RmV0Y2hJZGVudGlmaWVyIH0pOworICAgIGlmIChpdGVyYXRvciA9PSBtX29uZ29p
bmdGZXRjaElkZW50aWZpZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGl0ZXJhdG9y
LT52YWx1ZSB9KTsKKworICAgIG1fb25nb2luZ0ZldGNoZXMucmVtb3ZlKGl0ZXJhdG9yLT52YWx1
ZSk7CisgICAgbV9vbmdvaW5nRmV0Y2hJZGVudGlmaWVycy5yZW1vdmUoaXRlcmF0b3IpOworfQor
Cit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y29udGludWVEaWRSZWNlaXZl
RmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgY29udGVudEZldGNoSWRlbnRp
ZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit7
CisgICAgYXV0byBpdGVyYXRvciA9IG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMuZmluZCh7IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb250ZW50RmV0Y2hJZGVudGlmaWVyIH0pOworICAg
IGlmIChpdGVyYXRvciA9PSBtX29uZ29pbmdGZXRjaElkZW50aWZpZXJzLmVuZCgpKQorICAgICAg
ICByZXR1cm47CisgICAgCisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246OkNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UgeyBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGl0ZXJhdG9yLT52YWx1ZSB9
KTsKK30KKwordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRpZFJlY2VpdmVG
ZXRjaFRhc2tNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVy
JiBkZWNvZGVyKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBtX29uZ29pbmdGZXRjaGVzLmZpbmQo
bWFrZU9iamVjdElkZW50aWZpZXI8RmV0Y2hJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5h
dGlvbklEKCkpKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vbmdvaW5nRmV0Y2hlcy5lbmQoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGJvb2wgc2hvdWxkUmVtb3ZlID0gZGVjb2Rlci5t
ZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRGYWls
OjpuYW1lKCkKKyAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWROb3RIYW5kbGU6Om5hbWUoKQorICAgICAgICB8fCBk
ZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OkRpZEZpbmlzaDo6bmFtZSgpCisgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBN
ZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9u
c2U6Om5hbWUoKTsKKworICAgIGl0ZXJhdG9yLT52YWx1ZS0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2Rlcik7CisKKyAgICBpZiAoc2hvdWxkUmVtb3ZlKSB7CisgICAgICAgIEFT
U0VSVChtX29uZ29pbmdGZXRjaElkZW50aWZpZXJzLmNvbnRhaW5zKGl0ZXJhdG9yLT52YWx1ZS0+
aWRlbnRpZmllcigpKSk7CisgICAgICAgIG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnMucmVtb3Zl
KGl0ZXJhdG9yLT52YWx1ZS0+aWRlbnRpZmllcigpKTsKKyAgICAgICAgbV9vbmdvaW5nRmV0Y2hl
cy5yZW1vdmUoaXRlcmF0b3IpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggMmY4ODliMjg2YmMxZTFkZDZiNTcx
MzFlNjU4NGY1YWUwZjExNDcxNS4uMjU1ZDI3YzIxMzJhMTcwNzhjMGJiMjdmNWZiZjc0NTM1NmQ1
NmU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uaApAQCAtMjksOCArMjksMjIgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaD4K
IAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEZldGNoT3B0aW9uczsKK2NsYXNzIFJlc291
cmNlUmVxdWVzdDsKK30KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBGb3JtRGF0YVJlZmVyZW5j
ZTsKK30KKworbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrUHJvY2VzczsKQEAgLTUxLDYgKzY1LDEyIEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgdGVybWluYXRlKCk7CiAKKyAgICB2b2lkIHN0YXJ0RmV0Y2goUEFM
OjpTZXNzaW9uSUQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6OlNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
LCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNhbmNlbEZldGNoKFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIHZvaWQgY29udGludWVEaWRSZWNlaXZlRmV0
Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3Jl
OjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKwor
ICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoVGFza01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uKE5ldHdvcmtQcm9jZXNzJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwg
UmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CiAgICAgfldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbigpOwpAQCAtNzUsNiArOTUsOCBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OkNvbm5lY3Rp
b24+IG1faXBjQ29ubmVjdGlvbjsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1By
b2Nlc3M7CiAgICAgCisgICAgSGFzaE1hcDxTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpJZGVudGlm
aWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXI+IG1fb25nb2luZ0ZldGNoSWRlbnRpZmllcnM7
CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrPj4gbV9vbmdvaW5nRmV0Y2hlczsKIH07IC8vIGNsYXNzIFdlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4
IDc0MDdjYzIxOTAzZTI2NGI4ODQ4Yzg1YTU4OTUwODQ0ZDNkZGFjNDguLmIxNzlmZDFlMWY3MTY3
MDFlNGVjMDdmMTlkYzNlMjBkNmE3ODdmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTYsNiArNTYsNyBA
QCBOZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCiAKIE5ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCiAKK05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgQG5vLXVu
aWZ5CiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwIEBu
by11bmlmeQogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uY3BwIEBuby11bmlmeQogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cmlu
ZGV4IDkyOWM1MGUyZTA2MGM2N2RjOWM3YTUxMWYwZjk3NjlmYjhjM2Q5MDguLjVhZTgxMWZkZmM5
Nzg4ZDIxMDA4ZjhkMTdhMGI3ZTUyNWE3N2U5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAg
LTU3Niw1ICs1NzYsNSBAQCBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIEBuby11bmlmeQogV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQogCiAvLyBEZXJpdmVk
IFNvdXJjZXMKLQogRWRpdGFibGVJbWFnZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCitT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTlmYjJkMDdjMTgyNGY2
ZDZjMTcwOTM2MzlhN2VmNjU1YWExYTI0My4uNTgwNTM2YmQwMDhiMGU5MmNhMjM3MTM1M2RhNmMy
YTQ5YzY4Y2EzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC04ODksNiArODg5LDcgQEAKIAkJNDFEQzQ1OTYxRTNENkUyMjAwQjExRjUx
IC8qIE5ldHdvcmtSVENQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDFEQzQ1OTQxRTNENkUxRTAwQjExRjUxIC8qIE5ldHdvcmtSVENQcm92
aWRlci5oICovOyB9OwogCQk0MURDNDU5QzFFM0RCQjI4MDBCMTFGNTEgLyogTGliV2ViUlRDU29j
a2V0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MURDNDU5QTFFM0RCQjI0MDBCMTFGNTEgLyogTGliV2ViUlRDU29ja2V0Q2xpZW50LmggKi87
IH07CiAJCTQxREM0NTlGMUUzREJEQTUwMEIxMUY1MSAvKiBXZWJSVENTb2NrZXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUYzMUUzQkZFN0Yw
MDFBRTY3OCAvKiBXZWJSVENTb2NrZXQuaCAqLzsgfTsKKwkJNDFERTdDNkMyMjI3OEYxRTAwNTMy
QjY1IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1MTg1MzYyMjI3MDRGNjAwNTQzMEM2IC8qIFNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2suY3BwICovOyB9OwogCQk0MUZBQkQyQTFGNERFMDAxMDA2QTZDOTcg
LyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFCRDI4MUY0RERGREMwMDZBNkM5NyAvKiBDYWNoZVN0b3Jh
Z2VFbmdpbmVDYWNoZS5oICovOyB9OwogCQk0MUZBRjVGNTFFM0MwNjQ5MDAxQUU2NzggLyogV2Vi
UlRDUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxRkFGNUY0MUUzQzA2NDEwMDFBRTY3OCAvKiBXZWJSVENSZXNvbHZlci5oICovOyB9Owog
CQk0MUZBRjVGODFFM0MxMDIxMDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUY2MUUzQzBCNDcw
MDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5oICovOyB9OwpAQCAtMzAzOSw2ICszMDQwLDkg
QEAKIAkJNDE0REQzNzgyMEJGNDNFQTAwNjk1OUZCIC8qIGNvbS5jaXNjby53ZWJleC5wbHVnaW4u
Z3BjNjQuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmNpc2NvLndlYmV4LnBsdWdpbi5n
cGM2NC5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE0REVERDUxRjlFRERERjAw
NDdDNDBEIC8qIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTRERURENjFGOUVEREUwMDA0N0M0MEQgLyogU2VydmljZVdvcmtl
clByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE1MTg1MzUyMjI3MDRGNTAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlckZldGNoVGFzay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTUxODUzNjIyMjcwNEY2MDA1NDMwQzYg
LyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDE1MTg1MzgyMjI3MEY1MzAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRj
aFRhc2subWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2VydmljZVdvcmtlckZl
dGNoVGFzay5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1MUU1
QzMxRkJCOTBBOTAwRTQ3RTJEIC8qIEZvcm1EYXRhUmVmZXJlbmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1EYXRhUmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxNTc4NTMwMjEyNzZCNkYwMEREMzgwMCAvKiBjb3B5LXdlYmNvbnRlbnQt
cmVzb3VyY2VzLXRvLXByaXZhdGUtaGVhZGVycy5zaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnNoOyBwYXRoID0gImNvcHktd2Vi
Y29udGVudC1yZXNvdXJjZXMtdG8tcHJpdmF0ZS1oZWFkZXJzLnNoIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE1N0U0QUYyMEUyRUM5ODAwQTZDMEQ3IC8qIGNvbS5nb29nbGUubzFk
YnJvd3NlcnBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uZ29vZ2xlLm8xZGJy
b3dzZXJwbHVnaW4uc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MDI0LDYgKzcw
MjgsOSBAQAogCQk5M0JBMDREOTIxNTFBRENEMDA3RjQ1NUYgLyogU2VydmljZVdvcmtlciAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNDE1MTg1MzYyMjI3
MDRGNjAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwICovLAorCQkJCTQxNTE4
NTM1MjIyNzA0RjUwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmggKi8sCisJCQkJ
NDE1MTg1MzgyMjI3MEY1MzAwNTQzMEM2IC8qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2Fn
ZXMuaW4gKi8sCiAJCQkJOTNCQTA0REYyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXT3JpZ2luU3Rv
cmUuY3BwICovLAogCQkJCTkzQkEwNERFMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV09yaWdpblN0
b3JlLmggKi8sCiAJCQkJOTNCQTA0RTEyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAgKi8sCkBAIC0xMTAzNyw2ICsxMTA0NCw3IEBACiAJCQkJMkQ4NTA4QzYyMTJF
MzNFRDAwMEVGNDZDIC8qIFVuaWZpZWRTb3VyY2U5Ny5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RDg1MDhEODIxMkUzM0VEMDAwRUY0NkMgLyogVW5pZmllZFNvdXJjZTk4LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEODUwOEM1MjEyRTMzRUQwMDBFRjQ2QyAvKiBVbmlmaWVkU291cmNlOTkuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNDFERTdDNkMyMjI3OEYxRTAwNTMyQjY1IC8qIFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ4NTA4RDIyMTJFMzNFRDAw
MEVGNDZDIC8qIFVuaWZpZWRTb3VyY2UxMDAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFC
MEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IDRkYjdhOGMzMDZm
NzQzZGM1M2EzZDVkYzM4OTg3NWQ5MWMyYjJmMGEuLjRkOWE2NTRlMTkzYWQ2NWY2MDdjY2M5ZDg4
OTFhNWZlMmFkMGVlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ2FjaGVT
dG9yYWdlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJEYXRhYmFzZVByb3ZpZGVyLmgiCkBAIC0yMjUsMTIgKzIyNiwxMiBAQCB2b2lk
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIgc2VydgogewogICAgIGF1dG8qIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eSA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eShzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgaWYgKCFzZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZE5vdEhhbmRsZUZldGNoIHsgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciB9LCAwKTsKKyAgICAgICAgbV9jb25uZWN0aW9u
VG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckZldGNoVGFzazo6
RGlkTm90SGFuZGxlIHsgfSwgZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgaWYgKCFpc1ZhbGlkRmV0Y2gocmVxdWVzdCwgb3B0aW9ucywg
c2VydmljZVdvcmtlclRocmVhZFByb3h5LT5zY3JpcHRVUkwoKSwgcmVmZXJyZXIpKSB7Ci0gICAg
ICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpEaWROb3RIYW5kbGVGZXRjaCB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBm
ZXRjaElkZW50aWZpZXIgfSwgMCk7CisgICAgICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZE5vdEhhbmRsZSB7
IH0sIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAppbmRleCAwNWM2OGIyNThj
N2I5ZjQ5NmQyYTk5OGM1ODEyOWZlMjcwZmNhNDU1Li45NTMwZjU0NmEwMTIzMTQyNTY0Y2VjM2E2
YTk5Y2Y1Y2ZkODg5ZTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNw
cApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6
OmRpZFJlY2VpdmVSZWRpcmVjdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdQogewogICAgIGlmICgh
bV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm47Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZSB7
IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCByZXNwb25z
ZSB9LCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2s6OkRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlIHsgcmVzcG9uc2UgfSwgbV9mZXRj
aElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAKICAgICBjbGVhbnVwKCk7CiB9CkBAIC02OCw3ICs2
OCw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmCiAgICAgaWYgKG1fbmVlZHNDb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCiAgICAgICAgIG1fd2FpdGluZ0ZvckNvbnRpbnVlRGlk
UmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSA9IHRydWU7CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSB7IG1fc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCByZXNwb25zZSwgbV9u
ZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSB9LCAwKTsKKyAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVS
ZXNwb25zZSB7IHJlc3BvbnNlLCBtX25lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNz
YWdlIH0sIG1fZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQogCiB2b2lkIFdlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+
JiYgYnVmZmVyKQpAQCAtODQsNyArODQsNyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoRGF0YSB7IG1fc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCB7IGJ1ZmZlciB9LCBzdGF0aWNfY2FzdDxpbnQ2
NF90PihidWZmZXItPnNpemUoKSkgfSwgMCk7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRSZWNlaXZlRGF0YSB7IHsgYnVmZmVyIH0s
IHN0YXRpY19jYXN0PGludDY0X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCBtX2ZldGNoSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
OjpkaWRSZWNlaXZlRm9ybURhdGFBbmRGaW5pc2goUmVmPEZvcm1EYXRhPiYmIGZvcm1EYXRhKQpA
QCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6
ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mCiAgICAgLy8gRm9yIG5v
dyBhbmQgZm9yIHRoZSBjYXNlIG9mIGJsb2JzLCB3ZSByZWFkIGl0IHRoZXJlIGFuZCBzZW5kIHRo
ZSBkYXRhIHRocm91Z2ggSVBDLgogICAgIFVSTCBibG9iVVJMID0gZm9ybURhdGEtPmFzQmxvYlVS
TCgpOwogICAgIGlmIChibG9iVVJMLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhIHsg
bV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIDApOworICAgICAgICBtX2Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2Vp
dmVGb3JtRGF0YSB7IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9
IH0sIG1fZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50OjpkaWRSZWNlaXZlQmxvYkNodW5rKGNvbnN0IGNoYXIqIGRhdGEsIHNpemUKICAgICBpZiAo
IW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoRGF0YSB7IG1fc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyLCB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNp
emUpIH0sIDApOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtl
ckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWlu
dDhfdCo+KGRhdGEpLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNpemUpIH0sIG1fZmV0
Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQogCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQ6OmRpZEZpbmlzaEJsb2JMb2FkaW5nKCkKQEAgLTE0OSw3ICsxNDksNyBAQCB2
b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZhaWwoY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRGYWlsRmV0Y2ggeyBtX3NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgZXJyb3IgfSwgMCk7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpE
aWRGYWlsIHsgZXJyb3IgfSwgbV9mZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CiAKICAgICBj
bGVhbnVwKCk7CiB9CkBAIC0xNjQsNyArMTY0LDcgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2goKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkRmluaXNoRmV0
Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciB9LCAw
KTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s6OkRpZEZpbmlzaCB7IH0sIG1fZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogCiAgICAg
Y2xlYW51cCgpOwogfQpAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudDo6ZGlkTm90SGFuZGxlKCkKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6RGlkTm90SGFuZGxlRmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBtX2ZldGNoSWRlbnRpZmllciB9LCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZE5vdEhhbmRsZSB7IH0sIG1fZmV0Y2hJZGVu
dGlmaWVyLnRvVUludDY0KCkpOwogCiAgICAgY2xlYW51cCgpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>