<?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>168748</bug_id>
          
          <creation_ts>2017-02-22 15:23:38 -0800</creation_ts>
          <short_desc>[WebRTC] Add support for libwebrtc TCP incoming connections</short_desc>
          <delta_ts>2017-02-27 17:12:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></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>commit-queue</cc>
    
    <cc>eric.carlson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1280078</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-22 15:23:38 -0800</bug_when>
    <thetext>[WebRTC] Add support for libwebrtc TCP incoming connections</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281426</commentid>
    <comment_count>1</comment_count>
      <attachid>302849</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-27 10:48:56 -0800</bug_when>
    <thetext>Created attachment 302849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281428</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-27 10:50:32 -0800</bug_when>
    <thetext>Attachment 302849 did not pass style-queue:


ERROR: Source/WebKit2/NetworkProcess/webrtc/LibWebRTCSocketClient.h:52:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebKit2/NetworkProcess/webrtc/LibWebRTCSocketClient.h:70:  The parameter name &quot;socket&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/WebProcess/Network/webrtc/LibWebRTCSocket.h:51:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 3 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281432</commentid>
    <comment_count>3</comment_count>
      <attachid>302849</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-27 10:54:33 -0800</bug_when>
    <thetext>Comment on attachment 302849
Patch

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

&gt; Source/WebKit2/NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:56
&gt; +    if (type == Type::ServerConnectionTCP)

switch(type)

&gt; Source/WebKit2/WebProcess/Network/webrtc/WebRTCSocket.h:58
&gt; +    void signalNewConnection(uint64_t newSocketIdentifiert, const WebKit::RTCNetwork::SocketAddress&amp;);

Identifier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281447</commentid>
    <comment_count>4</comment_count>
      <attachid>302854</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-27 11:13:41 -0800</bug_when>
    <thetext>Created attachment 302854
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281448</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-27 11:13:56 -0800</bug_when>
    <thetext>Thanks for the review.

(In reply to comment #3)
&gt; Comment on attachment 302849 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=302849&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:56
&gt; &gt; +    if (type == Type::ServerConnectionTCP)

Done

&gt; switch(type)
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Network/webrtc/WebRTCSocket.h:58
&gt; &gt; +    void signalNewConnection(uint64_t newSocketIdentifiert, const WebKit::RTCNetwork::SocketAddress&amp;);
&gt; 
&gt; Identifier

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281479</commentid>
    <comment_count>6</comment_count>
      <attachid>302864</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-27 12:32:19 -0800</bug_when>
    <thetext>Created attachment 302864
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281625</commentid>
    <comment_count>7</comment_count>
      <attachid>302864</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-27 17:12:31 -0800</bug_when>
    <thetext>Comment on attachment 302864
Patch for landing

Clearing flags on attachment: 302864

Committed r213104: &lt;http://trac.webkit.org/changeset/213104&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281626</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-27 17:12:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302849</attachid>
            <date>2017-02-27 10:48:56 -0800</date>
            <delta_ts>2017-02-27 11:13:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168748-20170227104601.patch</filename>
            <type>text/plain</type>
            <size>26302</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzMDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzA3ZTM5ZTdmMzlmMjE4
MDc3ZjE3MmUxNDBhMWVkNzc5N2ZmNGIxNi4uOTliM2UyMmUyOThiOGRmNGZmOGY3MTJhN2RjOTU3
Y2ZmMWUzYTMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTAyLTI3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBBZGQgc3Vw
cG9ydCBmb3IgbGlid2VicnRjIFRDUCBpbmNvbWluZyBjb25uZWN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NzQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBhZGRlZCBsYXlv
dXQgdGVzdHMuCisKKyAgICAgICAgV2hlbiBhIGxpYndlYnJ0YyBzZXJ2ZXIgc29ja2V0IGlzIHNp
Z25hbGxpbmcgYSBuZXcgY29ubm5lY3Rpb24gdGhyb3VnaCBTaWduYWxOZXdDb25uZWN0aW9uLCB3
ZSBkbzoKKyAgICAgICAgLSBXcmFwIHRoZSBpbmNvbWluZyBzb2NrZXQgaW50byBhIExpYldlYlJU
Q1NvY2tldENsaWVudAorICAgICAgICAtIFN0b3JlIGl0IGludG8gYSBwZW5kaW5nIHNvY2tldCBt
YXAgd2l0aCBhbiBpZGVudGlmaWVyCisgICAgICAgIC0gU2VuZCBhIG1lc3NhZ2UgdG8gdGhlIHdl
YiBwcm9jZXNzIG9mIGEgbmV3IGNvbm5lY3Rpb24gd2l0aCB0aGUgc2VydmVyIHNvY2tldCBpZGVu
dGlmaWVyIGFuZCBuZXcgY29ubmVjdGlvbiBzb2NrZXQgaWRlbnRpZmllci4KKyAgICAgICAgVGhl
IFdlYiBwcm9jZXNzIHRoZW4gY3JlYXRlcyBhIFdlYlJUQ1NvY2tldCB3cmFwcGVyIGFyb3VuZCBp
dCBieSBzZW5kaW5pZyBhIFdyYXBOZXdUQ1BDb25uZWN0aW9uIG1lc3NhZ2UuCisgICAgICAgIEl0
IHRoZW4gcHJvcGFnYXRlcyB0aGUgU2lnbmFsTmV3Q29ubmVjdGlvbiB0byBsaWJ3ZWJydGMgY29k
ZSBwYXRoLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dENsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldENsaWVudDo6TGli
V2ViUlRDU29ja2V0Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0Q2xp
ZW50OjpzaWduYWxSZWFkUGFja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0
Q2xpZW50OjpzaWduYWxTZW50UGFja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29j
a2V0Q2xpZW50OjpzaWduYWxOZXdDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TGliV2Vi
UlRDU29ja2V0Q2xpZW50OjpzaWduYWxBZGRyZXNzUmVhZHkpOgorICAgICAgICAoV2ViS2l0OjpM
aWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbENvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpM
aWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbENsb3NlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50Lmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUlRDUHJvdmlkZXI6Om5ld0Nvbm5lY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TGliV2ViUlRDU29ja2V0OjpzaWduYWxOZXdDb25uZWN0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkxpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZU5ld0Nvbm5lY3Rpb25T
b2NrZXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29j
a2V0RmFjdG9yeS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRD
U29ja2V0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU29ja2V0OjpzaWduYWxOZXdDb25u
ZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tl
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lm1l
c3NhZ2VzLmluOgorCiAyMDE3LTAyLTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydCBhbGwgdGVtcG9yYXJ5IGJ1aWxk
IGZpeGVzIGZvciBkYXRhIGludGVyYWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwCmlu
ZGV4IDMzYzZiZTUwNTMzNTcwMTBiNzBlYTQ5OWEyYWU0NjIyMzFmOWRiZjUuLjc3OGM5M2NhNjFm
Y2E5NzY0ODM2YWUwYjM5YzQzYWE5ZWI3YjA5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQu
Y3BwCkBAIC01MSwxMyArNTEsMjAgQEAgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpMaWJXZWJSVENT
b2NrZXRDbGllbnQodWludDY0X3QgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3YKIAogICAgIG1f
c29ja2V0LT5TaWduYWxSZWFkUGFja2V0LmNvbm5lY3QodGhpcywgJkxpYldlYlJUQ1NvY2tldENs
aWVudDo6c2lnbmFsUmVhZFBhY2tldCk7CiAgICAgbV9zb2NrZXQtPlNpZ25hbFNlbnRQYWNrZXQu
Y29ubmVjdCh0aGlzLCAmTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxTZW50UGFja2V0KTsK
LSAgICBtX3NvY2tldC0+U2lnbmFsQ29ubmVjdC5jb25uZWN0KHRoaXMsICZMaWJXZWJSVENTb2Nr
ZXRDbGllbnQ6OnNpZ25hbENvbm5lY3QpOwogICAgIG1fc29ja2V0LT5TaWduYWxDbG9zZS5jb25u
ZWN0KHRoaXMsICZMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbENsb3NlKTsKIAorICAgIGlm
ICh0eXBlID09IFR5cGU6OlNlcnZlckNvbm5lY3Rpb25UQ1ApCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fc29ja2V0LT5TaWduYWxDb25uZWN0LmNvbm5lY3QodGhpcywgJkxpYldlYlJUQ1NvY2tl
dENsaWVudDo6c2lnbmFsQ29ubmVjdCk7CiAgICAgaWYgKHR5cGUgPT0gVHlwZTo6Q2xpZW50VENQ
KSB7CiAgICAgICAgIG1fc29ja2V0LT5TaWduYWxBZGRyZXNzUmVhZHkuY29ubmVjdCh0aGlzLCAm
TGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxBZGRyZXNzUmVhZHkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQorCisgICAgaWYgKHR5cGUgPT0gVHlwZTo6U2VydmVyVENQKQorICAgICAgICBt
X3NvY2tldC0+U2lnbmFsTmV3Q29ubmVjdGlvbi5jb25uZWN0KHRoaXMsICZMaWJXZWJSVENTb2Nr
ZXRDbGllbnQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24pOworCiAgICAgc2lnbmFsQWRkcmVzc1JlYWR5
KCk7CiB9CiAKQEAgLTc5LDggKzg2LDkgQEAgdm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNl
dE9wdGlvbihpbnQgb3B0aW9uLCBpbnQgdmFsdWUpCiAgICAgbV9zb2NrZXQtPlNldE9wdGlvbihz
dGF0aWNfY2FzdDxydGM6OlNvY2tldDo6T3B0aW9uPihvcHRpb24pLCB2YWx1ZSk7CiB9CiAKLXZv
aWQgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxSZWFkUGFja2V0KHJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQqLCBjb25zdCBjaGFyKiB2YWx1ZSwgc2l6ZV90IGxlbmd0aCwgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBjb25zdCBydGM6OlBhY2tldFRpbWUmIHBhY2tldFRpbWUp
Cit2b2lkIExpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsUmVhZFBhY2tldChydGM6OkFzeW5j
UGFja2V0U29ja2V0KiBzb2NrZXQsIGNvbnN0IGNoYXIqIHZhbHVlLCBzaXplX3QgbGVuZ3RoLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIGNvbnN0IHJ0Yzo6UGFja2V0VGltZSYg
cGFja2V0VGltZSkKIHsKKyAgICBBU1NFUlRfVU5VU0VEKHNvY2tldCwgbV9zb2NrZXQuZ2V0KCkg
PT0gc29ja2V0KTsKICAgICBhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKHZhbHVlLCBsZW5ndGgpOwogICAgIG1fcnRjUHJvdmlkZXIuc2VuZEZyb21NYWluVGhyZWFk
KFtpZGVudGlmaWVyID0gbV9pZGVudGlmaWVyLCBidWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlciksIGFk
ZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkoYWRkcmVzcyksIHBhY2tldFRpbWVdKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewogICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2Ug
ZGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihidWZmZXItPmRhdGEoKSksIGJ1
ZmZlci0+c2l6ZSgpKTsKQEAgLTg4LDE1ICs5NiwyMyBAQCB2b2lkIExpYldlYlJUQ1NvY2tldENs
aWVudDo6c2lnbmFsUmVhZFBhY2tldChydGM6OkFzeW5jUGFja2V0U29ja2V0KiwgY29uc3QgY2hh
cgogICAgIH0pOwogfQogCi12b2lkIExpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsU2VudFBh
Y2tldChydGM6OkFzeW5jUGFja2V0U29ja2V0KiwgY29uc3QgcnRjOjpTZW50UGFja2V0JiBzZW50
UGFja2V0KQordm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbFNlbnRQYWNrZXQocnRj
OjpBc3luY1BhY2tldFNvY2tldCogc29ja2V0LCBjb25zdCBydGM6OlNlbnRQYWNrZXQmIHNlbnRQ
YWNrZXQpCiB7CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1fc29ja2V0LmdldCgpID09IHNv
Y2tldCk7CiAgICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIg
PSBtX2lkZW50aWZpZXIsIHNlbnRQYWNrZXRdKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikg
ewogICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OldlYlJUQ1NvY2tldDo6U2lnbmFs
U2VudFBhY2tldChzZW50UGFja2V0LnBhY2tldF9pZCwgc2VudFBhY2tldC5zZW5kX3RpbWVfbXMp
LCBpZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIAotdm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6
OnNpZ25hbEFkZHJlc3NSZWFkeShydGM6OkFzeW5jUGFja2V0U29ja2V0KiwgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiBhZGRyZXNzKQordm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25h
bE5ld0Nvbm5lY3Rpb24ocnRjOjpBc3luY1BhY2tldFNvY2tldCogc29ja2V0LCBydGM6OkFzeW5j
UGFja2V0U29ja2V0KiBuZXdTb2NrZXQpCit7CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1f
c29ja2V0LmdldCgpID09IHNvY2tldCk7CisgICAgbV9ydGNQcm92aWRlci5uZXdDb25uZWN0aW9u
KCp0aGlzLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4obmV3U29ja2V0
KSk7Cit9CisKK3ZvaWQgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxBZGRyZXNzUmVhZHko
cnRjOjpBc3luY1BhY2tldFNvY2tldCogc29ja2V0LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
IGFkZHJlc3MpCiB7CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1fc29ja2V0LmdldCgpID09
IHNvY2tldCk7CiAgICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZp
ZXIgPSBtX2lkZW50aWZpZXIsIGFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkoYWRk
cmVzcyldKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0aW9u
LnNlbmQoTWVzc2FnZXM6OldlYlJUQ1NvY2tldDo6U2lnbmFsQWRkcmVzc1JlYWR5KFJUQ05ldHdv
cms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcykpLCBpZGVudGlmaWVyKTsKICAgICB9KTsKQEAgLTEw
NywxNSArMTIzLDE3IEBAIHZvaWQgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxBZGRyZXNz
UmVhZHkoKQogICAgIHNpZ25hbEFkZHJlc3NSZWFkeShtX3NvY2tldC5nZXQoKSwgbV9zb2NrZXQt
PkdldExvY2FsQWRkcmVzcygpKTsKIH0KIAotdm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNp
Z25hbENvbm5lY3QocnRjOjpBc3luY1BhY2tldFNvY2tldCopCit2b2lkIExpYldlYlJUQ1NvY2tl
dENsaWVudDo6c2lnbmFsQ29ubmVjdChydGM6OkFzeW5jUGFja2V0U29ja2V0KiBzb2NrZXQpCiB7
CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1fc29ja2V0LmdldCgpID09IHNvY2tldCk7CiAg
ICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50
aWZpZXJdKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0aW9u
LnNlbmQoTWVzc2FnZXM6OldlYlJUQ1NvY2tldDo6U2lnbmFsQ29ubmVjdCgpLCBpZGVudGlmaWVy
KTsKICAgICB9KTsKIH0KIAotdm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbENsb3Nl
KHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqLCBpbnQgZXJyb3IpCit2b2lkIExpYldlYlJUQ1NvY2tl
dENsaWVudDo6c2lnbmFsQ2xvc2UocnRjOjpBc3luY1BhY2tldFNvY2tldCogc29ja2V0LCBpbnQg
ZXJyb3IpCiB7CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1fc29ja2V0LmdldCgpID09IHNv
Y2tldCk7CiAgICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIg
PSBtX2lkZW50aWZpZXIsIGVycm9yXShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsKICAg
ICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpXZWJSVENTb2NrZXQ6OlNpZ25hbENsb3Nl
KGVycm9yKSwgaWRlbnRpZmllcik7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmgKaW5k
ZXggMzc1Y2ZkZjI0ZDU4NzI5YzYzZTUwZTVhNWYyMWFkM2I5ZmI0NzVhMC4uZTRhY2I2MjcxMTU5
Y2I5NmMxNzg3MDAxYTllZWE5ZThkNjY4MDI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaApA
QCAtNDksMTAgKzQ5LDEyIEBAIGNsYXNzIE5ldHdvcmtSVENQcm92aWRlcjsKIAogY2xhc3MgTGli
V2ViUlRDU29ja2V0Q2xpZW50IGZpbmFsIDogcHVibGljIHNpZ3Nsb3Q6Omhhc19zbG90czw+IHsK
IHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIFR5cGUgeyBVRFAsIFNlcnZlclRDUCwgQ2xpZW50VENQ
IH07CisgICAgZW51bSBjbGFzcyBUeXBlIHsgVURQLCBTZXJ2ZXJUQ1AsIENsaWVudFRDUCwgU2Vy
dmVyQ29ubmVjdGlvblRDUCB9OwogCiAgICAgTGliV2ViUlRDU29ja2V0Q2xpZW50KHVpbnQ2NF90
IGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFz
eW5jUGFja2V0U29ja2V0PiYmLCBUeXBlKTsKIAorICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xh
c3MgTmV0d29ya1JUQ1NvY2tldDsKIApAQCAtNjUsNiArNjcsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgc2lnbmFsQWRkcmVzc1JlYWR5KHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqLCBjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmKTsKICAgICB2b2lkIHNpZ25hbENvbm5lY3QocnRjOjpBc3luY1BhY2tl
dFNvY2tldCopOwogICAgIHZvaWQgc2lnbmFsQ2xvc2UocnRjOjpBc3luY1BhY2tldFNvY2tldCos
IGludCk7CisgICAgdm9pZCBzaWduYWxOZXdDb25uZWN0aW9uKHJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQqIHNvY2tldCwgcnRjOjpBc3luY1BhY2tldFNvY2tldCogbmV3U29ja2V0KTsKIAogICAgIHZv
aWQgc2lnbmFsQWRkcmVzc1JlYWR5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKaW5kZXggY2Iy
ZDAwZDU4NDU4ODg2NTRlODdiYTVlMzgyZDI0YTNlNzQ5ODAyNC4uNmVjMWI1M2U0MjY4MTNhZWE1
MTE1NWZjZDE1MGI3MzQyOWNiNWEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtS
VENTb2NrZXQuaCIKICNpbmNsdWRlICJXZWJSVENSZXNvbHZlck1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiV2ViUlRDU29ja2V0TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01h
Y3Jvcy5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9iYXNlL2FzeW5jcGFja2V0c29ja2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTkxLDYgKzkyLDE0IEBAIHZvaWQgTmV0d29ya1JU
Q1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29u
c3QgUlRDTmV0CiAgICAgfSk7CiB9CiAKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjp3cmFwTmV3
VENQQ29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBuZXdDb25uZWN0aW9u
U29ja2V0SWRlbnRpZmllcikKK3sKKyAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBp
ZGVudGlmaWVyLCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcl0oKSB7CisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQgPSBtX3BlbmRpbmdJ
bmNvbWluZ1NvY2tldHMudGFrZShuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcik7CisgICAg
ICAgIGFkZFNvY2tldChpZGVudGlmaWVyLCBzdGQ6Om1ha2VfdW5pcXVlPExpYldlYlJUQ1NvY2tl
dENsaWVudD4oaWRlbnRpZmllciwgKnRoaXMsIFdURk1vdmUoc29ja2V0KSwgTGliV2ViUlRDU29j
a2V0Q2xpZW50OjpUeXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQKSk7CisgICAgfSk7Cit9CisKIHZv
aWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjphZGRTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgc3Rk
Ojp1bmlxdWVfcHRyPExpYldlYlJUQ1NvY2tldENsaWVudD4mJiBzb2NrZXQpCiB7CiAgICAgbV9z
b2NrZXRzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHNvY2tldCkpOwpAQCAtMTAxLDYgKzExMCwx
NCBAQCBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDU29ja2V0Q2xpZW50PiBOZXR3b3JrUlRDUHJv
dmlkZXI6OnRha2VTb2NrZXQodWludDY0X3QgaQogICAgIHJldHVybiBtX3NvY2tldHMudGFrZShp
ZGVudGlmaWVyKTsKIH0KIAordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6Om5ld0Nvbm5lY3Rpb24o
TGliV2ViUlRDU29ja2V0Q2xpZW50JiBzZXJ2ZXJTb2NrZXQsIHN0ZDo6dW5pcXVlX3B0cjxydGM6
OkFzeW5jUGFja2V0U29ja2V0PiYmIG5ld1NvY2tldCkKK3sKKyAgICBzZW5kRnJvbU1haW5UaHJl
YWQoW2lkZW50aWZpZXIgPSBzZXJ2ZXJTb2NrZXQuaWRlbnRpZmllcigpLCBpbmNvbWluZ1NvY2tl
dElkZW50aWZpZXIgPSArK21faW5jb21pbmdTb2NrZXRJZGVudGlmaWVyLCByZW1vdGVBZGRyZXNz
ID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KG5ld1NvY2tldC0+R2V0UmVtb3RlQWRkcmVzcygp
KV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CisgICAgICAgIGNvbm5lY3Rpb24uc2Vu
ZChNZXNzYWdlczo6V2ViUlRDU29ja2V0OjpTaWduYWxOZXdDb25uZWN0aW9uKGluY29taW5nU29j
a2V0SWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzKSks
IGlkZW50aWZpZXIpOworICAgIH0pOworICAgIG1fcGVuZGluZ0luY29taW5nU29ja2V0cy5hZGQo
bV9pbmNvbWluZ1NvY2tldElkZW50aWZpZXIsIFdURk1vdmUobmV3U29ja2V0KSk7Cit9CisKIHZv
aWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpkaWRSZWNlaXZlTmV0d29ya1JUQ1NvY2tldE1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAg
ICAgTmV0d29ya1JUQ1NvY2tldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSwgKnRoaXMpLmRpZFJl
Y2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4
IDZhNzIxODJiZTJhOTcyOWEyODNjMGYxYmEwZTY5OTVlYTk5ZDBkNjcuLjJlODgwNmRiZTRkZmNm
MGVlNWM5YmIyODI2YjkwNTVkNTFiMGU5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKQEAgLTY2LDEy
ICs2NiwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYWxsT25SVENOZXR3b3JrVGhyZWFkKEZ1bmN0
aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZW5kRnJvbU1haW5UaHJlYWQoRnVuY3Rpb248dm9p
ZChJUEM6OkNvbm5lY3Rpb24mKT4mJik7CiAKKyAgICB2b2lkIG5ld0Nvbm5lY3Rpb24oTGliV2Vi
UlRDU29ja2V0Q2xpZW50Jiwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+
JiYpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwogCiAgICAgdm9pZCBjcmVhdGVVRFBTb2NrZXQodWlu
dDY0X3QsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2
X3QpOwogICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBSVENO
ZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYs
IGludCk7CiAgICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQodWludDY0X3QsIGNvbnN0IFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQ
b3J0LCBpbnQpOworICAgIHZvaWQgd3JhcE5ld1RDUENvbm5lY3Rpb24odWludDY0X3QgaWRlbnRp
ZmllciwgdWludDY0X3QgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpOworCiAgICAgdm9p
ZCBjcmVhdGVSZXNvbHZlcih1aW50NjRfdCwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzdG9w
UmVzb2x2ZXIodWludDY0X3QpOwogCkBAIC0xMDIsNiArMTA2LDkgQEAgcHJpdmF0ZToKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxydGM6OlRocmVhZD4gbV9ydGNOZXR3b3JrVGhyZWFkOwogICAgIFVu
aXF1ZVJlZjxydGM6OkJhc2ljUGFja2V0U29ja2V0RmFjdG9yeT4gbV9wYWNrZXRTb2NrZXRGYWN0
b3J5OworCisgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQ
YWNrZXRTb2NrZXQ+PiBtX3BlbmRpbmdJbmNvbWluZ1NvY2tldHM7CisgICAgdWludDY0X3QgbV9p
bmNvbWluZ1NvY2tldElkZW50aWZpZXIgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCmluZGV4IDk0MDk1MjE0NGUw
Mjg3M2JjOTI0YmE2YTM5YmJmYzkyYzhkNmY0ZWEuLjQ4OTE0YzM3ZjVlOTU1YWNmMzFjOGE3ZjBl
NjY2MjBlNTJhZmNmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgpA
QCAtMjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUlRDUHJvdmlkZXIgewogICAgIENy
ZWF0ZUNsaWVudFRDUFNvY2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpT
b2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzIHJlbW90ZUFkZHJlc3MsIGludCBvcHRpb25zKQogICAgIENyZWF0ZVJlc29sdmVyKHVpbnQ2
NF90IGlkZW50aWZpZXIsIFN0cmluZyBhZGRyZXNzKQogICAgIFN0b3BSZXNvbHZlcih1aW50NjRf
dCBpZGVudGlmaWVyKQorICAgIFdyYXBOZXdUQ1BDb25uZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZp
ZXIsIHVpbnQ2NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKQogfQogCiAjZW5kaWYg
Ly8gVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcAppbmRleCBjNDliNWQ1YzJh
Y2YzZTBiOGMyZGU5NzZiNmFhMzY0YzRlMzU4ZGM4Li43NzEzMDM1OGQwZTA2MDEzZTIwN2RlODNh
ZTk2ZTA5YWEwMzU3OTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCkBAIC0xMDYsNiArMTA2
LDEyIEBAIHZvaWQgTGliV2ViUlRDU29ja2V0OjpzaWduYWxDbG9zZShpbnQgZXJyb3IpCiAgICAg
U2lnbmFsQ2xvc2UodGhpcywgZXJyb3IpOwogfQogCit2b2lkIExpYldlYlJUQ1NvY2tldDo6c2ln
bmFsTmV3Q29ubmVjdGlvbihydGM6OkFzeW5jUGFja2V0U29ja2V0KiBuZXdDb25uZWN0aW9uU29j
a2V0KQoreworICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6U2VydmVyVENQKTsKKyAgICBTaWdu
YWxOZXdDb25uZWN0aW9uKHRoaXMsIG5ld0Nvbm5lY3Rpb25Tb2NrZXQpOworfQorCiBzdGF0aWMg
aW5saW5lIFN0cmluZyBhdXRoS2V5KGNvbnN0IHJ0Yzo6UGFja2V0T3B0aW9ucyYgb3B0aW9ucykK
IHsKICAgICBpZiAob3B0aW9ucy5wYWNrZXRfdGltZV9wYXJhbXMuc3J0cF9hdXRoX2tleS5zaXpl
KCkgPD0gMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCmluZGV4IDk1NzQzN2Y4ZGEyN2IwZDg3ODMyMGU2
MzQ4OWNiMDY0ZmRmZmVkMmEuLjEzNDQ0ZGZlYTM3NjQ1MWQ0MWUxMWM2YzkzZDVmZjAzNWZmNTlk
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDU29ja2V0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBMaWJXZWJS
VENTb2NrZXRGYWN0b3J5OwogCiBjbGFzcyBMaWJXZWJSVENTb2NrZXQgZmluYWwgOiBwdWJsaWMg
cnRjOjpBc3luY1BhY2tldFNvY2tldCB7CiBwdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBUeXBlIHsg
VURQLCBTZXJ2ZXJUQ1AsIENsaWVudFRDUCB9OworICAgIGVudW0gY2xhc3MgVHlwZSB7IFVEUCwg
U2VydmVyVENQLCBDbGllbnRUQ1AsIFNlcnZlckNvbm5lY3Rpb25UQ1AgfTsKIAogICAgIExpYldl
YlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiwgdWludDY0X3QgaWRlbnRpZmllciwg
VHlwZSwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcyk7CiAgICAgfkxpYldlYlJUQ1NvY2tldCgpOwpA
QCAtNjksNiArNjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2lnbmFsQWRkcmVzc1JlYWR5KGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwogICAgIHZvaWQgc2lnbmFsQ29ubmVjdCgpOwogICAg
IHZvaWQgc2lnbmFsQ2xvc2UoaW50KTsKKyAgICB2b2lkIHNpZ25hbE5ld0Nvbm5lY3Rpb24ocnRj
OjpBc3luY1BhY2tldFNvY2tldCopOwogCiAgICAgLy8gQXN5bmNQYWNrZXRTb2NrZXQgQVBJCiAg
ICAgaW50IEdldEVycm9yKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9lcnJvcjsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKaW5kZXggY2NkOGQ2MGQxNWY4ODE0MWY5Yjc4
NmY2Y2MwNmY4MTM2OGE5NDYwOS4uYTIwYWI5ZGFlYTVkYTNjODkwNjA1MjVjZDcwNjY2NjM0NWRh
OGRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCkBAIC04Niw2ICs4
NiwyMSBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpD
cmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOgogICAgIHJldHVybiBzb2NrZXQucmVsZWFz
ZSgpOwogfQogCitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5
OjpjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1NvY2tldCYgc2VydmVyU29ja2V0
LCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQoreworICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtl
X3VuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmll
ciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQLCBzZXJ2ZXJTb2Nr
ZXQubG9jYWxBZGRyZXNzKCksIHJlbW90ZUFkZHJlc3MpOworICAgIHNvY2tldC0+c2V0U3RhdGUo
TGliV2ViUlRDU29ja2V0OjpTVEFURV9DT05ORUNURUQpOworICAgIG1fc29ja2V0cy5zZXQoc29j
a2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFk
KFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJ
ZGVudGlmaWVyXSgpIHsKKyAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3
b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJv
dmlkZXI6OldyYXBOZXdUQ1BDb25uZWN0aW9uKGlkZW50aWZpZXIsIG5ld0Nvbm5lY3Rpb25Tb2Nr
ZXRJZGVudGlmaWVyKSwgMCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQgZXJyb3IgYmFj
ayB0byBzb2NrZXQKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0pOworICAg
IHJldHVybiBzb2NrZXQucmVsZWFzZSgpOworfQorCiB2b2lkIExpYldlYlJUQ1NvY2tldEZhY3Rv
cnk6OmRldGFjaChMaWJXZWJSVENTb2NrZXQmIHNvY2tldCkKIHsKICAgICBBU1NFUlQobV9zb2Nr
ZXRzLmNvbnRhaW5zKHNvY2tldC5pZGVudGlmaWVyKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5LmgKaW5kZXggMDIzZjE3NTYxZTI3YzJjZTJhYjc3ODZiZjhmOTBhZmYzYjUwODA3
Yi4uYzEzMWRmMjA3YTVmOGMzOWY1ODY1ZjRmYjhkYzA0OTIzMWJlMWE4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRG
YWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9M
aWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKQEAgLTQ3LDYgKzQ3LDggQEAgcHVibGljOgogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1Jlc29sdmVyPiB0YWtlUmVzb2x2ZXIodWludDY0X3Qg
aWRlbnRpZmllcikgeyByZXR1cm4gbV9yZXNvbHZlcnMudGFrZShpZGVudGlmaWVyKTsgfQogCisg
ICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldChMaWJX
ZWJSVENTb2NrZXQmLCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJik7CisKIHByaXZhdGU6CiAgICAgcnRjOjpBc3luY1BhY2tl
dFNvY2tldCogQ3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQx
Nl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpIGZpbmFsOwogICAgIHJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQqIENyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
LCB1aW50MTZfdCBtaW5fcG9ydCwgdWludDE2X3QgbWF4X3BvcnQsIGludCBvcHRpb25zKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvV2ViUlRDU29ja2V0LmNwcAppbmRleCBkNmRjZTQ4YWExYmY2NTRlMGI1MmFmMmU3ZTU5NjNm
YTVhNjNlYTg0Li5iYTM1ZDdmNzk3Y2IwNjUxYjRiNWRmMGZkMmNkNDAwMTZjOGYyZmM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Nv
Y2tldC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9X
ZWJSVENTb2NrZXQuY3BwCkBAIC05MCw2ICs5MCwxMyBAQCB2b2lkIFdlYlJUQ1NvY2tldDo6c2ln
bmFsQ2xvc2UoaW50IGVycm9yKQogICAgIH0pOwogfQogCit2b2lkIFdlYlJUQ1NvY2tldDo6c2ln
bmFsTmV3Q29ubmVjdGlvbih1aW50NjRfdCBuZXdTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENO
ZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQoreworICAgIHNpZ25hbE9uTmV0
d29ya1RocmVhZChtX2ZhY3RvcnksIG1faWRlbnRpZmllciwgW25ld1NvY2tldElkZW50aWZpZXIs
IHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkocmVtb3RlQWRkcmVzcy52
YWx1ZSldKExpYldlYlJUQ1NvY2tldCYgc29ja2V0KSB7CisgICAgICAgIHNvY2tldC5zaWduYWxO
ZXdDb25uZWN0aW9uKHNvY2tldC5tX2ZhY3RvcnkuY3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldChz
b2NrZXQsIG5ld1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3MpKTsKKyAgICB9KTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENT
b2NrZXQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRD
U29ja2V0LmgKaW5kZXggZDI2ZDYwZjI0NGMyOTczOGU4NDk4YzViNWU1NzgxNWVhMjZmNDYzOS4u
NWEzY2JlNmY2ODY2N2ZkZmE0Nzg1YjBjNDMyNWE1N2Y5YTU3N2U3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5o
CkBAIC01NSw3ICs1NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaWduYWxBZGRyZXNzUmVhZHko
Y29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYpOwogICAgIHZvaWQgc2lnbmFsQ29ubmVj
dCgpOwogICAgIHZvaWQgc2lnbmFsQ2xvc2UoaW50KTsKLSAgICAKKyAgICB2b2lkIHNpZ25hbE5l
d0Nvbm5lY3Rpb24odWludDY0X3QgbmV3U29ja2V0SWRlbnRpZmllcnQsIGNvbnN0IFdlYktpdDo6
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYpOworCiAgICAgTGliV2ViUlRDU29ja2V0RmFjdG9y
eSYgbV9mYWN0b3J5OwogICAgIHVpbnQ2NF90IG1faWRlbnRpZmllciB7IDAgfTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Nv
Y2tldC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvV2ViUlRDU29ja2V0Lm1lc3NhZ2VzLmluCmluZGV4IDQyNmQ2ZDE5MjkzZTUxNTM0Nzc0MmFj
ZWJlMzQ3NDlkYTRkYWZmYTMuLmY2MTEyODVhZmE3MzY1YWUxZGI3ODhiMjczODRhNWZlZmU4ODZl
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDU29ja2V0Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3IEBA
IG1lc3NhZ2VzIC0+IFdlYlJUQ1NvY2tldCB7CiAgICAgU2lnbmFsQWRkcmVzc1JlYWR5KFdlYktp
dDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBhZGRyZXNzKQogICAgIFNpZ25hbENvbm5lY3Qo
KQogICAgIFNpZ25hbENsb3NlKGludCBlcnJvcikKKyAgICBTaWduYWxOZXdDb25uZWN0aW9uKHVp
bnQ2NF90IG5ld1NvY2tldElkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRk
cmVzcyByZW1vdGVBZGRyZXNzKQogfQogCiAjZW5kaWYgLy8gVVNFKExJQldFQlJUQykKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBmODIwZGNlNmI4YmEyN2IyMjJmNGVjYWU2ZDIzNDBiMDYxNmZhOWUyLi41ZDRjZjljNGIxMTM3
NjViMWZmMGI1ZjYxMWU0Njg0MDg5MjFmOTNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTct
MDItMjcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJS
VENdIEFkZCBzdXBwb3J0IGZvciBsaWJ3ZWJydGMgVENQIGluY29taW5nIGNvbm5lY3Rpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg3NDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYnJ0Yy9k
YXRhY2hhbm5lbC9iYXNpYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy9k
YXRhY2hhbm5lbC9iYXNpYy5odG1sOgorICAgICAgICAqIHdlYnJ0Yy9yb3V0aW5lcy5qczoKKyAg
ICAgICAgKGNyZWF0ZUNvbm5lY3Rpb25zKToKKyAgICAgICAgKGljZUNhbGxiYWNrMSk6CisgICAg
ICAgIChpY2VDYWxsYmFjazIpOgorCiAyMDE3LTAyLTI3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSB0ZXN0IHZlcmlmeWluZyBjYWNoZSBkZWR1cGxp
Y2F0aW9uIGlzIG5vdCBzZW5zaXRpdmUgdG8gU0hBMSBjb2xsaXNpb24gYXR0YWNrCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvYmFzaWMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2Jhc2ljLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNDIyZGQwMmI0YTZkZWU3OGE0MzIxODUyODY1NTE3NjE1N2NjNmI0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2Jhc2ljLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBCYXNpYyBkYXRhIGNoYW5uZWwgZXhjaGFuZ2UgZnJv
bSBvZmZlcmVyIHRvIHJlY2VpdmVyIAorUEFTUyBCYXNpYyBkYXRhIGNoYW5uZWwgZXhjaGFuZ2Ug
ZnJvbSByZWNlaXZlciB0byBvZmZlcmVyIAorUEFTUyBCYXNpYyBkYXRhIGNoYW5uZWwgZXhjaGFu
Z2UgZnJvbSBvZmZlcmVyIHRvIHJlY2VpdmVyIHVzaW5nIFVEUCBvbmx5IAorUEFTUyBCYXNpYyBk
YXRhIGNoYW5uZWwgZXhjaGFuZ2UgZnJvbSBvZmZlcmVyIHRvIHJlY2VpdmVyIHVzaW5nIFRDUCBv
bmx5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvYmFzaWMu
aHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9iYXNpYy5odG1sCmluZGV4IGU1
MGNkNWIzMGEyODI1N2NmYTI3OWNiYmM5NGFhYjkyOTg1NWYyMjYuLmY2ZjgxZjA2MmMxYzhjZWUw
N2NlZWZlMTlkZjM5MzBlZDg2OGIyNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9k
YXRhY2hhbm5lbC9iYXNpYy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5l
bC9iYXNpYy5odG1sCkBAIC05LDkgKzksNiBAQAogICA8Ym9keT4KICAgICA8c2NyaXB0IHNyYyA9
Ii4uL3JvdXRpbmVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCi0gICAgaW50ZXJuYWxzLnVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoIlR3
b1JlYWxQZWVyQ29ubmVjdGlvbnMiKTsKLQogdmFyIGxvY2FsQ2hhbm5lbDsKIHZhciByZW1vdGVD
aGFubmVsOwogCkBAIC02MCw2ICs1Nyw5IEBAIHZhciBmaW5pc2hUZXN0OwogcHJvbWlzZV90ZXN0
KCh0ZXN0KSA9PiB7CiAgICAgY291bnRlciA9IDA7CiAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICBpbnRlcm5hbHMudXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeSgiVHdvUmVh
bFBlZXJDb25uZWN0aW9ucyIpOworCiAgICAgICAgIGZpbmlzaFRlc3QgPSByZXNvbHZlOwogICAg
ICAgICBjcmVhdGVDb25uZWN0aW9ucygobG9jYWxDb25uZWN0aW9uKSA9PiB7CiAgICAgICAgICAg
ICBsb2NhbENoYW5uZWwgPSBsb2NhbENvbm5lY3Rpb24uY3JlYXRlRGF0YUNoYW5uZWwoJ3NlbmRE
YXRhQ2hhbm5lbCcpOwpAQCAtNzYsNiArNzYsOSBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsK
IHByb21pc2VfdGVzdCgodGVzdCkgPT4gewogICAgIGNvdW50ZXIgPSAwOwogICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZh
Y3RvcnkoIlR3b1JlYWxQZWVyQ29ubmVjdGlvbnMiKTsKKwogICAgICAgICBmaW5pc2hUZXN0ID0g
cmVzb2x2ZTsKICAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGxvY2FsQ29ubmVjdGlvbikgPT4g
ewogICAgICAgICAgICAgbG9jYWxDaGFubmVsID0gbG9jYWxDb25uZWN0aW9uLmNyZWF0ZURhdGFD
aGFubmVsKCdzZW5kRGF0YUNoYW5uZWwnKTsKQEAgLTg4LDYgKzkxLDQ1IEBAIHByb21pc2VfdGVz
dCgodGVzdCkgPT4gewogICAgICAgICB9KTsKICAgICB9KTsKIH0sICJCYXNpYyBkYXRhIGNoYW5u
ZWwgZXhjaGFuZ2UgZnJvbSByZWNlaXZlciB0byBvZmZlcmVyIik7CisKK3Byb21pc2VfdGVzdCgo
dGVzdCkgPT4geworICAgIGNvdW50ZXIgPSAwOworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICAgICAgaW50ZXJuYWxzLnVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoIlR3b1JlYWxQ
ZWVyQ29ubmVjdGlvbnMiKTsKKworICAgICAgICBmaW5pc2hUZXN0ID0gcmVzb2x2ZTsKKyAgICAg
ICAgY3JlYXRlQ29ubmVjdGlvbnMoKGxvY2FsQ29ubmVjdGlvbikgPT4geworICAgICAgICAgICAg
bG9jYWxDaGFubmVsID0gbG9jYWxDb25uZWN0aW9uLmNyZWF0ZURhdGFDaGFubmVsKCdzZW5kRGF0
YUNoYW5uZWwnKTsKKyAgICAgICAgICAgIGxvY2FsQ2hhbm5lbC5vbm9wZW4gPSAoKSA9PiB7IHNl
bmRNZXNzYWdlcyhsb2NhbENoYW5uZWwpIH07CisgICAgICAgIH0sIChyZW1vdGVDb25uZWN0aW9u
KSA9PiB7CisgICAgICAgICAgICByZW1vdGVDb25uZWN0aW9uLm9uZGF0YWNoYW5uZWwgPSAoZXZl
bnQpID0+IHsKKyAgICAgICAgICAgICAgICByZW1vdGVDaGFubmVsID0gZXZlbnQuY2hhbm5lbDsK
KyAgICAgICAgICAgICAgICByZW1vdGVDaGFubmVsLm9ubWVzc2FnZSA9IHJlY2VpdmVNZXNzYWdl
czsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0sIChjYW5kaWRhdGUpID0+IHsgcmV0dXJuIGNh
bmRpZGF0ZS5jYW5kaWRhdGUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ1ZHAiKSA9PSAtMTsgfSk7
CisgICAgfSk7Cit9LCAiQmFzaWMgZGF0YSBjaGFubmVsIGV4Y2hhbmdlIGZyb20gb2ZmZXJlciB0
byByZWNlaXZlciB1c2luZyBVRFAgb25seSIpOworCitwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsK
KyAgICBjb3VudGVyID0gMDsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVy
bmFscy51c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KCJUd29SZWFsUGVlckNvbm5lY3Rp
b25zIik7CisKKyAgICAgICAgZmluaXNoVGVzdCA9IHJlc29sdmU7CisgICAgICAgIGNyZWF0ZUNv
bm5lY3Rpb25zKChsb2NhbENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIGxvY2FsQ2hhbm5l
bCA9IGxvY2FsQ29ubmVjdGlvbi5jcmVhdGVEYXRhQ2hhbm5lbCgnc2VuZERhdGFDaGFubmVsJyk7
CisgICAgICAgICAgICBsb2NhbENoYW5uZWwub25vcGVuID0gKCkgPT4geyBzZW5kTWVzc2FnZXMo
bG9jYWxDaGFubmVsKSB9OworICAgICAgICB9LCAocmVtb3RlQ29ubmVjdGlvbikgPT4geworICAg
ICAgICAgICAgcmVtb3RlQ29ubmVjdGlvbi5vbmRhdGFjaGFubmVsID0gKGV2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgcmVtb3RlQ2hhbm5lbCA9IGV2ZW50LmNoYW5uZWw7CisgICAgICAgICAg
ICAgICAgcmVtb3RlQ2hhbm5lbC5vbm1lc3NhZ2UgPSByZWNlaXZlTWVzc2FnZXM7CisgICAgICAg
ICAgICB9OworICAgICAgICB9LCAoY2FuZGlkYXRlKSA9PiB7IHJldHVybiBjYW5kaWRhdGUuY2Fu
ZGlkYXRlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigidGNwIikgPT0gLTE7IH0pOworICAgIH0pOwor
fSwgIkJhc2ljIGRhdGEgY2hhbm5lbCBleGNoYW5nZSBmcm9tIG9mZmVyZXIgdG8gcmVjZWl2ZXIg
dXNpbmcgVENQIG9ubHkiKTsKKwogICAgIDwvc2NyaXB0PgogICA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMgYi9MYXlvdXRUZXN0cy93
ZWJydGMvcm91dGluZXMuanMKaW5kZXggNGJjMTBkNGU5MzFhNzZkYjU5MzEzY2UwNWRiNzY0NmMy
MThkZjk4Ni4uNTRlZjMzZDM3ZmFjMWY4NzkyMjRjY2U2YzNhNGEyZDU3MjFmYzUwMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCisrKyBiL0xheW91dFRlc3RzL3dl
YnJ0Yy9yb3V0aW5lcy5qcwpAQCAtMiwxMyArMiwxMyBAQAogdmFyIGxvY2FsQ29ubmVjdGlvbjsK
IHZhciByZW1vdGVDb25uZWN0aW9uOwogCi1mdW5jdGlvbiBjcmVhdGVDb25uZWN0aW9ucyhzZXR1
cExvY2FsQ29ubmVjdGlvbiwgc2V0dXBSZW1vdGVDb25uZWN0aW9uKSB7CitmdW5jdGlvbiBjcmVh
dGVDb25uZWN0aW9ucyhzZXR1cExvY2FsQ29ubmVjdGlvbiwgc2V0dXBSZW1vdGVDb25uZWN0aW9u
LCBmaWx0ZXJPdXRJQ0VDYW5kaWRhdGUpIHsKICAgICBsb2NhbENvbm5lY3Rpb24gPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKLSAgICBsb2NhbENvbm5lY3Rpb24ub25pY2VjYW5kaWRhdGUgPSBp
Y2VDYWxsYmFjazE7CisgICAgbG9jYWxDb25uZWN0aW9uLm9uaWNlY2FuZGlkYXRlID0gKGV2ZW50
KSA9PiB7IGljZUNhbGxiYWNrMShldmVudCwgZmlsdGVyT3V0SUNFQ2FuZGlkYXRlKSB9OwogICAg
IHNldHVwTG9jYWxDb25uZWN0aW9uKGxvY2FsQ29ubmVjdGlvbik7CiAKICAgICByZW1vdGVDb25u
ZWN0aW9uID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgcmVtb3RlQ29ubmVjdGlvbi5v
bmljZWNhbmRpZGF0ZSA9IGljZUNhbGxiYWNrMjsKKyAgICByZW1vdGVDb25uZWN0aW9uLm9uaWNl
Y2FuZGlkYXRlID0gKGV2ZW50KSA9PiB7IGljZUNhbGxiYWNrMihldmVudCwgZmlsdGVyT3V0SUNF
Q2FuZGlkYXRlKSB9OwogICAgIHNldHVwUmVtb3RlQ29ubmVjdGlvbihyZW1vdGVDb25uZWN0aW9u
KTsKIAogICAgIGxvY2FsQ29ubmVjdGlvbi5jcmVhdGVPZmZlcigpLnRoZW4oZ290RGVzY3JpcHRp
b24xLCBvbkNyZWF0ZVNlc3Npb25EZXNjcmlwdGlvbkVycm9yKTsKQEAgLTQwLDE0ICs0MCwyNSBA
QCBmdW5jdGlvbiBnb3REZXNjcmlwdGlvbjIoZGVzYykKICAgICBsb2NhbENvbm5lY3Rpb24uc2V0
UmVtb3RlRGVzY3JpcHRpb24oZGVzYyk7CiB9CiAKLWZ1bmN0aW9uIGljZUNhbGxiYWNrMShldmVu
dCkKK2Z1bmN0aW9uIGljZUNhbGxiYWNrMShldmVudCwgZmlsdGVyT3V0SUNFQ2FuZGlkYXRlKQog
ewotICAgIGlmIChldmVudC5jYW5kaWRhdGUpCi0gICAgICAgIHJlbW90ZUNvbm5lY3Rpb24uYWRk
SWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSkudGhlbihvbkFkZEljZUNhbmRpZGF0ZVN1Y2Nl
c3MsIG9uQWRkSWNlQ2FuZGlkYXRlRXJyb3IpOworICAgIGlmICghZXZlbnQuY2FuZGlkYXRlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZmlsdGVyT3V0SUNFQ2FuZGlkYXRlICYmIGZpbHRl
ck91dElDRUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpKQorICAgICAgICByZXR1cm47CisKKyAg
ICByZW1vdGVDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpLnRoZW4o
b25BZGRJY2VDYW5kaWRhdGVTdWNjZXNzLCBvbkFkZEljZUNhbmRpZGF0ZUVycm9yKTsKIH0KIAot
ZnVuY3Rpb24gaWNlQ2FsbGJhY2syKGV2ZW50KQorZnVuY3Rpb24gaWNlQ2FsbGJhY2syKGV2ZW50
LCBmaWx0ZXJPdXRJQ0VDYW5kaWRhdGUpCiB7CisgICAgaWYgKCFldmVudC5jYW5kaWRhdGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChmaWx0ZXJPdXRJQ0VDYW5kaWRhdGUgJiYgZmlsdGVy
T3V0SUNFQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSkpCisgICAgICAgIHJldHVybjsKKwogICAg
IGlmIChldmVudC5jYW5kaWRhdGUpCiAgICAgICAgIGxvY2FsQ29ubmVjdGlvbi5hZGRJY2VDYW5k
aWRhdGUoZXZlbnQuY2FuZGlkYXRlKS50aGVuKG9uQWRkSWNlQ2FuZGlkYXRlU3VjY2Vzcywgb25B
ZGRJY2VDYW5kaWRhdGVFcnJvcik7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302854</attachid>
            <date>2017-02-27 11:13:41 -0800</date>
            <delta_ts>2017-02-27 12:32:16 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-168748-20170227111046.patch</filename>
            <type>text/plain</type>
            <size>26795</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzMDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTAzZDc0ODMwNDY4MzQ5
YTE4ZjQ2OTgzMjg5YWQxNWE1Yjc5ZmIwZC4uOTg4YmQ5MDIzMzNiNDRmNDMzYTliMTZjZmMwZjli
MTEwMWQ5NTYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTAyLTI3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBBZGQgc3Vw
cG9ydCBmb3IgbGlid2VicnRjIFRDUCBpbmNvbWluZyBjb25uZWN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NzQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGFkZGVkIGxh
eW91dCB0ZXN0cy4KKworICAgICAgICBXaGVuIGEgbGlid2VicnRjIHNlcnZlciBzb2NrZXQgaXMg
c2lnbmFsbGluZyBhIG5ldyBjb25ubmVjdGlvbiB0aHJvdWdoIFNpZ25hbE5ld0Nvbm5lY3Rpb24s
IHdlIGRvOgorICAgICAgICAtIFdyYXAgdGhlIGluY29taW5nIHNvY2tldCBpbnRvIGEgTGliV2Vi
UlRDU29ja2V0Q2xpZW50CisgICAgICAgIC0gU3RvcmUgaXQgaW50byBhIHBlbmRpbmcgc29ja2V0
IG1hcCB3aXRoIGFuIGlkZW50aWZpZXIKKyAgICAgICAgLSBTZW5kIGEgbWVzc2FnZSB0byB0aGUg
d2ViIHByb2Nlc3Mgb2YgYSBuZXcgY29ubmVjdGlvbiB3aXRoIHRoZSBzZXJ2ZXIgc29ja2V0IGlk
ZW50aWZpZXIgYW5kIG5ldyBjb25uZWN0aW9uIHNvY2tldCBpZGVudGlmaWVyLgorICAgICAgICBU
aGUgV2ViIHByb2Nlc3MgdGhlbiBjcmVhdGVzIGEgV2ViUlRDU29ja2V0IHdyYXBwZXIgYXJvdW5k
IGl0IGJ5IHNlbmRpbmlnIGEgV3JhcE5ld1RDUENvbm5lY3Rpb24gbWVzc2FnZS4KKyAgICAgICAg
SXQgdGhlbiBwcm9wYWdhdGVzIHRoZSBTaWduYWxOZXdDb25uZWN0aW9uIHRvIGxpYndlYnJ0YyBj
b2RlIHBhdGguCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29j
a2V0Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0Q2xpZW50OjpM
aWJXZWJSVENTb2NrZXRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRD
bGllbnQ6OnNpZ25hbFJlYWRQYWNrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2Nr
ZXRDbGllbnQ6OnNpZ25hbFNlbnRQYWNrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENT
b2NrZXRDbGllbnQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpMaWJX
ZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbEFkZHJlc3NSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsQ29ubmVjdCk6CisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsQ2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1JUQ1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6bmV3Q29ubmVjdGlvbik6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlTmV3Q29ubmVjdGlv
blNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXRGYWN0b3J5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJS
VENTb2NrZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTb2NrZXQ6OnNpZ25hbE5ld0Nv
bm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29j
a2V0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQu
bWVzc2FnZXMuaW46CisKIDIwMTctMDItMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBPcHRpbWl6ZSBjaGVja1dlYlJUQ0F2YWlsYWJpbGl0
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldl
YlJUQ1NvY2tldENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcAppbmRleCAzM2M2YmU1MDUzMzU3MDEwYjcwZWE0
OTlhMmFlNDYyMjMxZjlkYmY1Li5jZWRmMTQ1ZmE5NDBhMjQ5NGE5NTMyZjBiZTI4OGVjMzdiNGMy
MTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGli
V2ViUlRDU29ja2V0Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcApAQCAtNTEsMTQgKzUxLDI1IEBAIExp
YldlYlJUQ1NvY2tldENsaWVudDo6TGliV2ViUlRDU29ja2V0Q2xpZW50KHVpbnQ2NF90IGlkZW50
aWZpZXIsIE5ldHdvcmtSVENQcm92CiAKICAgICBtX3NvY2tldC0+U2lnbmFsUmVhZFBhY2tldC5j
b25uZWN0KHRoaXMsICZMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbFJlYWRQYWNrZXQpOwog
ICAgIG1fc29ja2V0LT5TaWduYWxTZW50UGFja2V0LmNvbm5lY3QodGhpcywgJkxpYldlYlJUQ1Nv
Y2tldENsaWVudDo6c2lnbmFsU2VudFBhY2tldCk7Ci0gICAgbV9zb2NrZXQtPlNpZ25hbENvbm5l
Y3QuY29ubmVjdCh0aGlzLCAmTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxDb25uZWN0KTsK
ICAgICBtX3NvY2tldC0+U2lnbmFsQ2xvc2UuY29ubmVjdCh0aGlzLCAmTGliV2ViUlRDU29ja2V0
Q2xpZW50OjpzaWduYWxDbG9zZSk7CiAKLSAgICBpZiAodHlwZSA9PSBUeXBlOjpDbGllbnRUQ1Ap
IHsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFR5cGU6OlNlcnZlckNvbm5lY3Rpb25U
Q1A6CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIHR5cGUgPT0gVHlwZTo6Q2xpZW50VENQOgor
ICAgICAgICBtX3NvY2tldC0+U2lnbmFsQ29ubmVjdC5jb25uZWN0KHRoaXMsICZMaWJXZWJSVENT
b2NrZXRDbGllbnQ6OnNpZ25hbENvbm5lY3QpOwogICAgICAgICBtX3NvY2tldC0+U2lnbmFsQWRk
cmVzc1JlYWR5LmNvbm5lY3QodGhpcywgJkxpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsQWRk
cmVzc1JlYWR5KTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgdHlwZSA9PSBUeXBlOjpTZXJ2
ZXJUQ1A6CisgICAgICAgIG1fc29ja2V0LT5TaWduYWxDb25uZWN0LmNvbm5lY3QodGhpcywgJkxp
YldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsQ29ubmVjdCk7CisgICAgICAgIG1fc29ja2V0LT5T
aWduYWxOZXdDb25uZWN0aW9uLmNvbm5lY3QodGhpcywgJkxpYldlYlJUQ1NvY2tldENsaWVudDo6
c2lnbmFsTmV3Q29ubmVjdGlvbik7CisgICAgICAgIHNpZ25hbEFkZHJlc3NSZWFkeSgpOworICAg
ICAgICByZXR1cm47CisgICAgY2FzZSB0eXBlID09IFR5cGU6OlVEUDoKKyAgICAgICAgbV9zb2Nr
ZXQtPlNpZ25hbENvbm5lY3QuY29ubmVjdCh0aGlzLCAmTGliV2ViUlRDU29ja2V0Q2xpZW50Ojpz
aWduYWxDb25uZWN0KTsKKyAgICAgICAgc2lnbmFsQWRkcmVzc1JlYWR5KCk7CisgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgc2lnbmFsQWRkcmVzc1JlYWR5KCk7CiB9CiAKIHZvaWQgTGliV2Vi
UlRDU29ja2V0Q2xpZW50OjpzZW5kVG8oY29uc3QgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiBidWZm
ZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgc29ja2V0QWRkcmVzcywgY29uc3QgcnRjOjpQ
YWNrZXRPcHRpb25zJiBvcHRpb25zKQpAQCAtNzksOCArOTAsOSBAQCB2b2lkIExpYldlYlJUQ1Nv
Y2tldENsaWVudDo6c2V0T3B0aW9uKGludCBvcHRpb24sIGludCB2YWx1ZSkKICAgICBtX3NvY2tl
dC0+U2V0T3B0aW9uKHN0YXRpY19jYXN0PHJ0Yzo6U29ja2V0OjpPcHRpb24+KG9wdGlvbiksIHZh
bHVlKTsKIH0KIAotdm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbFJlYWRQYWNrZXQo
cnRjOjpBc3luY1BhY2tldFNvY2tldCosIGNvbnN0IGNoYXIqIHZhbHVlLCBzaXplX3QgbGVuZ3Ro
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIGNvbnN0IHJ0Yzo6UGFja2V0VGlt
ZSYgcGFja2V0VGltZSkKK3ZvaWQgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxSZWFkUGFj
a2V0KHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIHNvY2tldCwgY29uc3QgY2hhciogdmFsdWUsIHNp
emVfdCBsZW5ndGgsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgY29uc3QgcnRj
OjpQYWNrZXRUaW1lJiBwYWNrZXRUaW1lKQogeworICAgIEFTU0VSVF9VTlVTRUQoc29ja2V0LCBt
X3NvY2tldC5nZXQoKSA9PSBzb2NrZXQpOwogICAgIGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6U2hh
cmVkQnVmZmVyOjpjcmVhdGUodmFsdWUsIGxlbmd0aCk7CiAgICAgbV9ydGNQcm92aWRlci5zZW5k
RnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXIsIGJ1ZmZlciA9IFdURk1v
dmUoYnVmZmVyKSwgYWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShhZGRyZXNzKSwg
cGFja2V0VGltZV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIElQQzo6
RGF0YVJlZmVyZW5jZSBkYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGJ1ZmZl
ci0+ZGF0YSgpKSwgYnVmZmVyLT5zaXplKCkpOwpAQCAtODgsMTUgKzEwMCwyMyBAQCB2b2lkIExp
YldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsUmVhZFBhY2tldChydGM6OkFzeW5jUGFja2V0U29j
a2V0KiwgY29uc3QgY2hhcgogICAgIH0pOwogfQogCi12b2lkIExpYldlYlJUQ1NvY2tldENsaWVu
dDo6c2lnbmFsU2VudFBhY2tldChydGM6OkFzeW5jUGFja2V0U29ja2V0KiwgY29uc3QgcnRjOjpT
ZW50UGFja2V0JiBzZW50UGFja2V0KQordm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25h
bFNlbnRQYWNrZXQocnRjOjpBc3luY1BhY2tldFNvY2tldCogc29ja2V0LCBjb25zdCBydGM6OlNl
bnRQYWNrZXQmIHNlbnRQYWNrZXQpCiB7CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1fc29j
a2V0LmdldCgpID09IHNvY2tldCk7CiAgICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJl
YWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXIsIHNlbnRQYWNrZXRdKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OldlYlJU
Q1NvY2tldDo6U2lnbmFsU2VudFBhY2tldChzZW50UGFja2V0LnBhY2tldF9pZCwgc2VudFBhY2tl
dC5zZW5kX3RpbWVfbXMpLCBpZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIAotdm9pZCBMaWJXZWJS
VENTb2NrZXRDbGllbnQ6OnNpZ25hbEFkZHJlc3NSZWFkeShydGM6OkFzeW5jUGFja2V0U29ja2V0
KiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzKQordm9pZCBMaWJXZWJSVENTb2Nr
ZXRDbGllbnQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24ocnRjOjpBc3luY1BhY2tldFNvY2tldCogc29j
a2V0LCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBuZXdTb2NrZXQpCit7CisgICAgQVNTRVJUX1VO
VVNFRChzb2NrZXQsIG1fc29ja2V0LmdldCgpID09IHNvY2tldCk7CisgICAgbV9ydGNQcm92aWRl
ci5uZXdDb25uZWN0aW9uKCp0aGlzLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNv
Y2tldD4obmV3U29ja2V0KSk7Cit9CisKK3ZvaWQgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWdu
YWxBZGRyZXNzUmVhZHkocnRjOjpBc3luY1BhY2tldFNvY2tldCogc29ja2V0LCBjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MpCiB7CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1f
c29ja2V0LmdldCgpID09IHNvY2tldCk7CiAgICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5U
aHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXIsIGFkZHJlc3MgPSBSVENOZXR3b3JrOjpp
c29sYXRlZENvcHkoYWRkcmVzcyldKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewogICAg
ICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OldlYlJUQ1NvY2tldDo6U2lnbmFsQWRkcmVz
c1JlYWR5KFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcykpLCBpZGVudGlmaWVyKTsK
ICAgICB9KTsKQEAgLTEwNywxNSArMTI3LDE3IEBAIHZvaWQgTGliV2ViUlRDU29ja2V0Q2xpZW50
OjpzaWduYWxBZGRyZXNzUmVhZHkoKQogICAgIHNpZ25hbEFkZHJlc3NSZWFkeShtX3NvY2tldC5n
ZXQoKSwgbV9zb2NrZXQtPkdldExvY2FsQWRkcmVzcygpKTsKIH0KIAotdm9pZCBMaWJXZWJSVENT
b2NrZXRDbGllbnQ6OnNpZ25hbENvbm5lY3QocnRjOjpBc3luY1BhY2tldFNvY2tldCopCit2b2lk
IExpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsQ29ubmVjdChydGM6OkFzeW5jUGFja2V0U29j
a2V0KiBzb2NrZXQpCiB7CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1fc29ja2V0LmdldCgp
ID09IHNvY2tldCk7CiAgICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50
aWZpZXIgPSBtX2lkZW50aWZpZXJdKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewogICAg
ICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OldlYlJUQ1NvY2tldDo6U2lnbmFsQ29ubmVj
dCgpLCBpZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIAotdm9pZCBMaWJXZWJSVENTb2NrZXRDbGll
bnQ6OnNpZ25hbENsb3NlKHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqLCBpbnQgZXJyb3IpCit2b2lk
IExpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsQ2xvc2UocnRjOjpBc3luY1BhY2tldFNvY2tl
dCogc29ja2V0LCBpbnQgZXJyb3IpCiB7CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1fc29j
a2V0LmdldCgpID09IHNvY2tldCk7CiAgICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJl
YWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXIsIGVycm9yXShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpXZWJSVENTb2Nr
ZXQ6OlNpZ25hbENsb3NlKGVycm9yKSwgaWRlbnRpZmllcik7CiAgICAgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29j
a2V0Q2xpZW50LmgKaW5kZXggMzc1Y2ZkZjI0ZDU4NzI5YzYzZTUwZTVhNWYyMWFkM2I5ZmI0NzVh
MC4uZTRhY2I2MjcxMTU5Y2I5NmMxNzg3MDAxYTllZWE5ZThkNjY4MDI3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXRDbGllbnQuaApAQCAtNDksMTAgKzQ5LDEyIEBAIGNsYXNzIE5ldHdvcmtSVENQcm92aWRl
cjsKIAogY2xhc3MgTGliV2ViUlRDU29ja2V0Q2xpZW50IGZpbmFsIDogcHVibGljIHNpZ3Nsb3Q6
Omhhc19zbG90czw+IHsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIFR5cGUgeyBVRFAsIFNlcnZl
clRDUCwgQ2xpZW50VENQIH07CisgICAgZW51bSBjbGFzcyBUeXBlIHsgVURQLCBTZXJ2ZXJUQ1As
IENsaWVudFRDUCwgU2VydmVyQ29ubmVjdGlvblRDUCB9OwogCiAgICAgTGliV2ViUlRDU29ja2V0
Q2xpZW50KHVpbnQ2NF90IGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBUeXBlKTsKIAorICAgIHVpbnQ2NF90
IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKwogcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgTmV0d29ya1JUQ1NvY2tldDsKIApAQCAtNjUsNiArNjcsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgc2lnbmFsQWRkcmVzc1JlYWR5KHJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQqLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmKTsKICAgICB2b2lkIHNpZ25hbENvbm5lY3Qo
cnRjOjpBc3luY1BhY2tldFNvY2tldCopOwogICAgIHZvaWQgc2lnbmFsQ2xvc2UocnRjOjpBc3lu
Y1BhY2tldFNvY2tldCosIGludCk7CisgICAgdm9pZCBzaWduYWxOZXdDb25uZWN0aW9uKHJ0Yzo6
QXN5bmNQYWNrZXRTb2NrZXQqIHNvY2tldCwgcnRjOjpBc3luY1BhY2tldFNvY2tldCogbmV3U29j
a2V0KTsKIAogICAgIHZvaWQgc2lnbmFsQWRkcmVzc1JlYWR5KCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5jcHAKaW5kZXggY2IyZDAwZDU4NDU4ODg2NTRlODdiYTVlMzgyZDI0YTNlNzQ5ODAyNC4uNmVj
MWI1M2U0MjY4MTNhZWE1MTE1NWZjZDE1MGI3MzQyOWNiNWEyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtSVENTb2NrZXQuaCIKICNpbmNsdWRlICJXZWJSVENSZXNvbHZlck1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViUlRDU29ja2V0TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0xpYldlYlJUQ01hY3Jvcy5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9iYXNlL2FzeW5jcGFja2V0
c29ja2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTkxLDYgKzkyLDE0IEBA
IHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3Qg
aWRlbnRpZmllciwgY29uc3QgUlRDTmV0CiAgICAgfSk7CiB9CiAKK3ZvaWQgTmV0d29ya1JUQ1By
b3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRf
dCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKK3sKKyAgICBjYWxsT25SVENOZXR3b3Jr
VGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcl0o
KSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiBzb2Nr
ZXQgPSBtX3BlbmRpbmdJbmNvbWluZ1NvY2tldHMudGFrZShuZXdDb25uZWN0aW9uU29ja2V0SWRl
bnRpZmllcik7CisgICAgICAgIGFkZFNvY2tldChpZGVudGlmaWVyLCBzdGQ6Om1ha2VfdW5pcXVl
PExpYldlYlJUQ1NvY2tldENsaWVudD4oaWRlbnRpZmllciwgKnRoaXMsIFdURk1vdmUoc29ja2V0
KSwgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpUeXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQKSk7Cisg
ICAgfSk7Cit9CisKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjphZGRTb2NrZXQodWludDY0X3Qg
aWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1NvY2tldENsaWVudD4mJiBzb2Nr
ZXQpCiB7CiAgICAgbV9zb2NrZXRzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHNvY2tldCkpOwpA
QCAtMTAxLDYgKzExMCwxNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDU29ja2V0Q2xpZW50
PiBOZXR3b3JrUlRDUHJvdmlkZXI6OnRha2VTb2NrZXQodWludDY0X3QgaQogICAgIHJldHVybiBt
X3NvY2tldHMudGFrZShpZGVudGlmaWVyKTsKIH0KIAordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6
Om5ld0Nvbm5lY3Rpb24oTGliV2ViUlRDU29ja2V0Q2xpZW50JiBzZXJ2ZXJTb2NrZXQsIHN0ZDo6
dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmIG5ld1NvY2tldCkKK3sKKyAgICBz
ZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzZXJ2ZXJTb2NrZXQuaWRlbnRpZmllcigp
LCBpbmNvbWluZ1NvY2tldElkZW50aWZpZXIgPSArK21faW5jb21pbmdTb2NrZXRJZGVudGlmaWVy
LCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KG5ld1NvY2tldC0+R2V0
UmVtb3RlQWRkcmVzcygpKV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CisgICAgICAg
IGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2ViUlRDU29ja2V0OjpTaWduYWxOZXdDb25uZWN0
aW9uKGluY29taW5nU29ja2V0SWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhy
ZW1vdGVBZGRyZXNzKSksIGlkZW50aWZpZXIpOworICAgIH0pOworICAgIG1fcGVuZGluZ0luY29t
aW5nU29ja2V0cy5hZGQobV9pbmNvbWluZ1NvY2tldElkZW50aWZpZXIsIFdURk1vdmUobmV3U29j
a2V0KSk7Cit9CisKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpkaWRSZWNlaXZlTmV0d29ya1JU
Q1NvY2tldE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgTmV0d29ya1JUQ1NvY2tldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQo
KSwgKnRoaXMpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92
aWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5oCmluZGV4IDZhNzIxODJiZTJhOTcyOWEyODNjMGYxYmEwZTY5OTVlYTk5ZDBkNjcu
LjJlODgwNmRiZTRkZmNmMGVlNWM5YmIyODI2YjkwNTVkNTFiMGU5NjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3Zp
ZGVyLmgKQEAgLTY2LDEyICs2NiwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYWxsT25SVENOZXR3
b3JrVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZW5kRnJvbU1haW5UaHJl
YWQoRnVuY3Rpb248dm9pZChJUEM6OkNvbm5lY3Rpb24mKT4mJik7CiAKKyAgICB2b2lkIG5ld0Nv
bm5lY3Rpb24oTGliV2ViUlRDU29ja2V0Q2xpZW50Jiwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQ+JiYpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5ldHdvcmtSVENQ
cm92aWRlcihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwogCiAgICAgdm9pZCBjcmVh
dGVVRFBTb2NrZXQodWludDY0X3QsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1
aW50MTZfdCwgdWludDE2X3QpOwogICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2
NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgUlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyYsIGludCk7CiAgICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQodWlu
dDY0X3QsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0
LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQpOworICAgIHZvaWQgd3JhcE5ld1RDUENvbm5lY3Rpb24o
dWludDY0X3QgaWRlbnRpZmllciwgdWludDY0X3QgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZp
ZXIpOworCiAgICAgdm9pZCBjcmVhdGVSZXNvbHZlcih1aW50NjRfdCwgY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCBzdG9wUmVzb2x2ZXIodWludDY0X3QpOwogCkBAIC0xMDIsNiArMTA2LDkgQEAg
cHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlRocmVhZD4gbV9ydGNOZXR3b3Jr
VGhyZWFkOwogICAgIFVuaXF1ZVJlZjxydGM6OkJhc2ljUGFja2V0U29ja2V0RmFjdG9yeT4gbV9w
YWNrZXRTb2NrZXRGYWN0b3J5OworCisgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVf
cHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+PiBtX3BlbmRpbmdJbmNvbWluZ1NvY2tldHM7Cisg
ICAgdWludDY0X3QgbV9pbmNvbWluZ1NvY2tldElkZW50aWZpZXIgeyAwIH07CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCmlu
ZGV4IDk0MDk1MjE0NGUwMjg3M2JjOTI0YmE2YTM5YmJmYzkyYzhkNmY0ZWEuLjQ4OTE0YzM3ZjVl
OTU1YWNmMzFjOGE3ZjBlNjY2MjBlNTJhZmNmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5tZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUlRDUHJv
dmlkZXIgewogICAgIENyZWF0ZUNsaWVudFRDUFNvY2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0
OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJlc3MsIGludCBvcHRpb25zKQogICAgIENyZWF0
ZVJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIFN0cmluZyBhZGRyZXNzKQogICAgIFN0b3BS
ZXNvbHZlcih1aW50NjRfdCBpZGVudGlmaWVyKQorICAgIFdyYXBOZXdUQ1BDb25uZWN0aW9uKHVp
bnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVy
KQogfQogCiAjZW5kaWYgLy8gVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcApp
bmRleCBjNDliNWQ1YzJhY2YzZTBiOGMyZGU5NzZiNmFhMzY0YzRlMzU4ZGM4Li43NzEzMDM1OGQw
ZTA2MDEzZTIwN2RlODNhZTk2ZTA5YWEwMzU3OTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3Bw
CkBAIC0xMDYsNiArMTA2LDEyIEBAIHZvaWQgTGliV2ViUlRDU29ja2V0OjpzaWduYWxDbG9zZShp
bnQgZXJyb3IpCiAgICAgU2lnbmFsQ2xvc2UodGhpcywgZXJyb3IpOwogfQogCit2b2lkIExpYldl
YlJUQ1NvY2tldDo6c2lnbmFsTmV3Q29ubmVjdGlvbihydGM6OkFzeW5jUGFja2V0U29ja2V0KiBu
ZXdDb25uZWN0aW9uU29ja2V0KQoreworICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6U2VydmVy
VENQKTsKKyAgICBTaWduYWxOZXdDb25uZWN0aW9uKHRoaXMsIG5ld0Nvbm5lY3Rpb25Tb2NrZXQp
OworfQorCiBzdGF0aWMgaW5saW5lIFN0cmluZyBhdXRoS2V5KGNvbnN0IHJ0Yzo6UGFja2V0T3B0
aW9ucyYgb3B0aW9ucykKIHsKICAgICBpZiAob3B0aW9ucy5wYWNrZXRfdGltZV9wYXJhbXMuc3J0
cF9hdXRoX2tleS5zaXplKCkgPD0gMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCmluZGV4IDk1NzQzN2Y4
ZGEyN2IwZDg3ODMyMGU2MzQ4OWNiMDY0ZmRmZmVkMmEuLjEzNDQ0ZGZlYTM3NjQ1MWQ0MWUxMWM2
YzkzZDVmZjAzNWZmNTlkNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaApAQCAtNDgsNyArNDgsNyBA
QCBjbGFzcyBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OwogCiBjbGFzcyBMaWJXZWJSVENTb2NrZXQg
ZmluYWwgOiBwdWJsaWMgcnRjOjpBc3luY1BhY2tldFNvY2tldCB7CiBwdWJsaWM6Ci0gICAgZW51
bSBjbGFzcyBUeXBlIHsgVURQLCBTZXJ2ZXJUQ1AsIENsaWVudFRDUCB9OworICAgIGVudW0gY2xh
c3MgVHlwZSB7IFVEUCwgU2VydmVyVENQLCBDbGllbnRUQ1AsIFNlcnZlckNvbm5lY3Rpb25UQ1Ag
fTsKIAogICAgIExpYldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiwgdWludDY0
X3QgaWRlbnRpZmllciwgVHlwZSwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJl
c3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcyk7CiAgICAgfkxpYldl
YlJUQ1NvY2tldCgpOwpAQCAtNjksNiArNjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2lnbmFs
QWRkcmVzc1JlYWR5KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwogICAgIHZvaWQgc2lnbmFs
Q29ubmVjdCgpOwogICAgIHZvaWQgc2lnbmFsQ2xvc2UoaW50KTsKKyAgICB2b2lkIHNpZ25hbE5l
d0Nvbm5lY3Rpb24ocnRjOjpBc3luY1BhY2tldFNvY2tldCopOwogCiAgICAgLy8gQXN5bmNQYWNr
ZXRTb2NrZXQgQVBJCiAgICAgaW50IEdldEVycm9yKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9l
cnJvcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKaW5kZXggY2NkOGQ2
MGQxNWY4ODE0MWY5Yjc4NmY2Y2MwNmY4MTM2OGE5NDYwOS4uYTIwYWI5ZGFlYTVkYTNjODkwNjA1
MjVjZDcwNjY2NjM0NWRhOGRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rvcnku
Y3BwCkBAIC04Niw2ICs4NiwyMSBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENT
b2NrZXRGYWN0b3J5OjpDcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOgogICAgIHJldHVy
biBzb2NrZXQucmVsZWFzZSgpOwogfQogCitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJS
VENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1NvY2tl
dCYgc2VydmVyU29ja2V0LCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQoreworICAgIGF1dG8gc29j
a2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVl
U29ja2V0SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJDb25uZWN0aW9u
VENQLCBzZXJ2ZXJTb2NrZXQubG9jYWxBZGRyZXNzKCksIHJlbW90ZUFkZHJlc3MpOworICAgIHNv
Y2tldC0+c2V0U3RhdGUoTGliV2ViUlRDU29ja2V0OjpTVEFURV9DT05ORUNURUQpOworICAgIG1f
c29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CisKKyAgICBj
YWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIG5ld0Nv
bm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyXSgpIHsKKyAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUlRDUHJvdmlkZXI6OldyYXBOZXdUQ1BDb25uZWN0aW9uKGlkZW50aWZpZXIsIG5l
d0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKSwgMCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1F
OiBTZXQgZXJyb3IgYmFjayB0byBzb2NrZXQKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0pOworICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOworfQorCiB2b2lkIExpYldl
YlJUQ1NvY2tldEZhY3Rvcnk6OmRldGFjaChMaWJXZWJSVENTb2NrZXQmIHNvY2tldCkKIHsKICAg
ICBBU1NFUlQobV9zb2NrZXRzLmNvbnRhaW5zKHNvY2tldC5pZGVudGlmaWVyKCkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
U29ja2V0RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKaW5kZXggMDIzZjE3NTYxZTI3YzJjZTJhYjc3ODZi
ZjhmOTBhZmYzYjUwODA3Yi4uYzEzMWRmMjA3YTVmOGMzOWY1ODY1ZjRmYjhkYzA0OTIzMWJlMWE4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9M
aWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKQEAgLTQ3LDYgKzQ3LDggQEAg
cHVibGljOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1Jlc29sdmVyPiB0YWtlUmVz
b2x2ZXIodWludDY0X3QgaWRlbnRpZmllcikgeyByZXR1cm4gbV9yZXNvbHZlcnMudGFrZShpZGVu
dGlmaWVyKTsgfQogCisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlTmV3Q29ubmVj
dGlvblNvY2tldChMaWJXZWJSVENTb2NrZXQmLCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0
SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJik7CisKIHByaXZhdGU6CiAgICAg
cnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpIGZpbmFsOwogICAg
IHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIENyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5fcG9ydCwgdWludDE2X3QgbWF4X3BvcnQsIGlu
dCBvcHRpb25zKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcAppbmRleCBkNmRjZTQ4YWExYmY2NTRl
MGI1MmFmMmU3ZTU5NjNmYTVhNjNlYTg0Li5iYTM1ZDdmNzk3Y2IwNjUxYjRiNWRmMGZkMmNkNDAw
MTZjOGYyZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL1dlYlJUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuY3BwCkBAIC05MCw2ICs5MCwxMyBAQCB2b2lkIFdl
YlJUQ1NvY2tldDo6c2lnbmFsQ2xvc2UoaW50IGVycm9yKQogICAgIH0pOwogfQogCit2b2lkIFdl
YlJUQ1NvY2tldDo6c2lnbmFsTmV3Q29ubmVjdGlvbih1aW50NjRfdCBuZXdTb2NrZXRJZGVudGlm
aWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQorewor
ICAgIHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2ZhY3RvcnksIG1faWRlbnRpZmllciwgW25ld1Nv
Y2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHko
cmVtb3RlQWRkcmVzcy52YWx1ZSldKExpYldlYlJUQ1NvY2tldCYgc29ja2V0KSB7CisgICAgICAg
IHNvY2tldC5zaWduYWxOZXdDb25uZWN0aW9uKHNvY2tldC5tX2ZhY3RvcnkuY3JlYXRlTmV3Q29u
bmVjdGlvblNvY2tldChzb2NrZXQsIG5ld1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3Mp
KTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0Uo
TElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9XZWJSVENTb2NrZXQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvV2ViUlRDU29ja2V0LmgKaW5kZXggZDI2ZDYwZjI0NGMyOTczOGU4NDk4YzViNWU1
NzgxNWVhMjZmNDYzOS4uOWY0Y2I3ODA4Njg1ZGQ2Nzg2YzFkZDViNzM2MWMyNzIyNDIwZTg5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJS
VENTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L1dlYlJUQ1NvY2tldC5oCkBAIC01NSw3ICs1NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaWdu
YWxBZGRyZXNzUmVhZHkoY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYpOwogICAgIHZv
aWQgc2lnbmFsQ29ubmVjdCgpOwogICAgIHZvaWQgc2lnbmFsQ2xvc2UoaW50KTsKLSAgICAKKyAg
ICB2b2lkIHNpZ25hbE5ld0Nvbm5lY3Rpb24odWludDY0X3QgbmV3U29ja2V0SWRlbnRpZmllciwg
Y29uc3QgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJik7CisKICAgICBMaWJXZWJS
VENTb2NrZXRGYWN0b3J5JiBtX2ZhY3Rvcnk7CiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyIHsg
MCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvV2ViUlRDU29ja2V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KaW5kZXggNDI2ZDZkMTky
OTNlNTE1MzQ3NzQyYWNlYmUzNDc0OWRhNGRhZmZhMy4uZjYxMTI4NWFmYTczNjVhZTFkYjc4OGIy
NzM4NGE1ZmVmZTg4NmU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KQEAg
LTI4LDYgKzI4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUlRDU29ja2V0IHsKICAgICBTaWduYWxBZGRy
ZXNzUmVhZHkoV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGFkZHJlc3MpCiAgICAg
U2lnbmFsQ29ubmVjdCgpCiAgICAgU2lnbmFsQ2xvc2UoaW50IGVycm9yKQorICAgIFNpZ25hbE5l
d0Nvbm5lY3Rpb24odWludDY0X3QgbmV3U29ja2V0SWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJlc3MpCiB9CiAKICNlbmRpZiAvLyBVU0UoTElC
V0VCUlRDKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGJmODZiZDY2OTM3MTJkNDAxNTI3MmQ2MGFkODJlZWMyOTQzMWJkNmUu
LjExZGRjZTc4ZTkyODRkOWYzYTU4N2ZhNjU4ZDM3M2IwZjU2ZTdiYTYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxNy0wMi0yNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dlYlJUQ10gQWRkIHN1cHBvcnQgZm9yIGxpYndlYnJ0YyBUQ1AgaW5jb21pbmcg
Y29ubmVjdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2ODc0OAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAg
ICAgICAgKiB3ZWJydGMvZGF0YWNoYW5uZWwvYmFzaWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJydGMvZGF0YWNoYW5uZWwvYmFzaWMuaHRtbDoKKyAgICAgICAgKiB3ZWJydGMv
cm91dGluZXMuanM6CisgICAgICAgIChjcmVhdGVDb25uZWN0aW9ucyk6CisgICAgICAgIChpY2VD
YWxsYmFjazEpOgorICAgICAgICAoaWNlQ2FsbGJhY2syKToKKwogMjAxNy0wMi0yNyAgSmlld2Vu
IFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDcmVkZW50aWFsTWFuYWdl
bWVudF0gQWRkIElETCBkZWZpbml0aW9ucyBmb3IgQ3JlZGVudGlhbCwgU2l0ZUJvdW5kQ3JlZGVu
dGlhbCwgYW5kIFBhc3N3b3JkQ3JlZGVudGlhbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
cnRjL2RhdGFjaGFubmVsL2Jhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9k
YXRhY2hhbm5lbC9iYXNpYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQyMmRkMDJiNGE2ZGVl
NzhhNDMyMTg1Mjg2NTUxNzYxNTdjYzZiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYnJ0Yy9kYXRhY2hhbm5lbC9iYXNpYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisK
K1BBU1MgQmFzaWMgZGF0YSBjaGFubmVsIGV4Y2hhbmdlIGZyb20gb2ZmZXJlciB0byByZWNlaXZl
ciAKK1BBU1MgQmFzaWMgZGF0YSBjaGFubmVsIGV4Y2hhbmdlIGZyb20gcmVjZWl2ZXIgdG8gb2Zm
ZXJlciAKK1BBU1MgQmFzaWMgZGF0YSBjaGFubmVsIGV4Y2hhbmdlIGZyb20gb2ZmZXJlciB0byBy
ZWNlaXZlciB1c2luZyBVRFAgb25seSAKK1BBU1MgQmFzaWMgZGF0YSBjaGFubmVsIGV4Y2hhbmdl
IGZyb20gb2ZmZXJlciB0byByZWNlaXZlciB1c2luZyBUQ1Agb25seSAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2Jhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJydGMvZGF0YWNoYW5uZWwvYmFzaWMuaHRtbAppbmRleCBlNTBjZDViMzBhMjgyNTdjZmEyNzlj
YmJjOTRhYWI5Mjk4NTVmMjI2Li5mNmY4MWYwNjJjMWM4Y2VlMDdjZWVmZTE5ZGYzOTMwZWQ4Njhi
MjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvYmFzaWMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvYmFzaWMuaHRtbApAQCAtOSw5
ICs5LDYgQEAKICAgPGJvZHk+CiAgICAgPHNjcmlwdCBzcmMgPSIuLi9yb3V0aW5lcy5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFs
cy51c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KCJUd29SZWFsUGVlckNvbm5lY3Rpb25z
Iik7Ci0KIHZhciBsb2NhbENoYW5uZWw7CiB2YXIgcmVtb3RlQ2hhbm5lbDsKIApAQCAtNjAsNiAr
NTcsOSBAQCB2YXIgZmluaXNoVGVzdDsKIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewogICAgIGNv
dW50ZXIgPSAwOwogICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7
CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnVz
ZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoIlR3b1JlYWxQZWVyQ29ubmVjdGlvbnMiKTsK
KwogICAgICAgICBmaW5pc2hUZXN0ID0gcmVzb2x2ZTsKICAgICAgICAgY3JlYXRlQ29ubmVjdGlv
bnMoKGxvY2FsQ29ubmVjdGlvbikgPT4gewogICAgICAgICAgICAgbG9jYWxDaGFubmVsID0gbG9j
YWxDb25uZWN0aW9uLmNyZWF0ZURhdGFDaGFubmVsKCdzZW5kRGF0YUNoYW5uZWwnKTsKQEAgLTc2
LDYgKzc2LDkgQEAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiBwcm9taXNlX3Rlc3QoKHRlc3Qp
ID0+IHsKICAgICBjb3VudGVyID0gMDsKICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUs
IHJlamVjdCkgPT4geworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAg
IGludGVybmFscy51c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KCJUd29SZWFsUGVlckNv
bm5lY3Rpb25zIik7CisKICAgICAgICAgZmluaXNoVGVzdCA9IHJlc29sdmU7CiAgICAgICAgIGNy
ZWF0ZUNvbm5lY3Rpb25zKChsb2NhbENvbm5lY3Rpb24pID0+IHsKICAgICAgICAgICAgIGxvY2Fs
Q2hhbm5lbCA9IGxvY2FsQ29ubmVjdGlvbi5jcmVhdGVEYXRhQ2hhbm5lbCgnc2VuZERhdGFDaGFu
bmVsJyk7CkBAIC04OCw2ICs5MSw0NSBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiB9LCAiQmFzaWMgZGF0YSBjaGFubmVsIGV4Y2hhbmdlIGZyb20gcmVj
ZWl2ZXIgdG8gb2ZmZXJlciIpOworCitwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICBjb3Vu
dGVyID0gMDsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy51c2VN
b2NrUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KCJUd29SZWFsUGVlckNvbm5lY3Rpb25zIik7CisK
KyAgICAgICAgZmluaXNoVGVzdCA9IHJlc29sdmU7CisgICAgICAgIGNyZWF0ZUNvbm5lY3Rpb25z
KChsb2NhbENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIGxvY2FsQ2hhbm5lbCA9IGxvY2Fs
Q29ubmVjdGlvbi5jcmVhdGVEYXRhQ2hhbm5lbCgnc2VuZERhdGFDaGFubmVsJyk7CisgICAgICAg
ICAgICBsb2NhbENoYW5uZWwub25vcGVuID0gKCkgPT4geyBzZW5kTWVzc2FnZXMobG9jYWxDaGFu
bmVsKSB9OworICAgICAgICB9LCAocmVtb3RlQ29ubmVjdGlvbikgPT4geworICAgICAgICAgICAg
cmVtb3RlQ29ubmVjdGlvbi5vbmRhdGFjaGFubmVsID0gKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICAgICAgcmVtb3RlQ2hhbm5lbCA9IGV2ZW50LmNoYW5uZWw7CisgICAgICAgICAgICAgICAgcmVt
b3RlQ2hhbm5lbC5vbm1lc3NhZ2UgPSByZWNlaXZlTWVzc2FnZXM7CisgICAgICAgICAgICB9Owor
ICAgICAgICB9LCAoY2FuZGlkYXRlKSA9PiB7IHJldHVybiBjYW5kaWRhdGUuY2FuZGlkYXRlLnRv
TG93ZXJDYXNlKCkuaW5kZXhPZigidWRwIikgPT0gLTE7IH0pOworICAgIH0pOworfSwgIkJhc2lj
IGRhdGEgY2hhbm5lbCBleGNoYW5nZSBmcm9tIG9mZmVyZXIgdG8gcmVjZWl2ZXIgdXNpbmcgVURQ
IG9ubHkiKTsKKworcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgY291bnRlciA9IDA7Cisg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMudXNlTW9ja1JUQ1BlZXJD
b25uZWN0aW9uRmFjdG9yeSgiVHdvUmVhbFBlZXJDb25uZWN0aW9ucyIpOworCisgICAgICAgIGZp
bmlzaFRlc3QgPSByZXNvbHZlOworICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygobG9jYWxDb25u
ZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBsb2NhbENoYW5uZWwgPSBsb2NhbENvbm5lY3Rpb24u
Y3JlYXRlRGF0YUNoYW5uZWwoJ3NlbmREYXRhQ2hhbm5lbCcpOworICAgICAgICAgICAgbG9jYWxD
aGFubmVsLm9ub3BlbiA9ICgpID0+IHsgc2VuZE1lc3NhZ2VzKGxvY2FsQ2hhbm5lbCkgfTsKKyAg
ICAgICAgfSwgKHJlbW90ZUNvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIHJlbW90ZUNvbm5l
Y3Rpb24ub25kYXRhY2hhbm5lbCA9IChldmVudCkgPT4geworICAgICAgICAgICAgICAgIHJlbW90
ZUNoYW5uZWwgPSBldmVudC5jaGFubmVsOworICAgICAgICAgICAgICAgIHJlbW90ZUNoYW5uZWwu
b25tZXNzYWdlID0gcmVjZWl2ZU1lc3NhZ2VzOworICAgICAgICAgICAgfTsKKyAgICAgICAgfSwg
KGNhbmRpZGF0ZSkgPT4geyByZXR1cm4gY2FuZGlkYXRlLmNhbmRpZGF0ZS50b0xvd2VyQ2FzZSgp
LmluZGV4T2YoInRjcCIpID09IC0xOyB9KTsKKyAgICB9KTsKK30sICJCYXNpYyBkYXRhIGNoYW5u
ZWwgZXhjaGFuZ2UgZnJvbSBvZmZlcmVyIHRvIHJlY2VpdmVyIHVzaW5nIFRDUCBvbmx5Iik7CisK
ICAgICA8L3NjcmlwdD4KICAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2VicnRjL3JvdXRpbmVzLmpzIGIvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCmlu
ZGV4IDRiYzEwZDRlOTMxYTc2ZGI1OTMxM2NlMDVkYjc2NDZjMjE4ZGY5ODYuLjU0ZWYzM2QzN2Zh
YzFmODc5MjI0Y2NlNmMzYTRhMmQ1NzIxZmM1MDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YnJ0Yy9yb3V0aW5lcy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKQEAg
LTIsMTMgKzIsMTMgQEAKIHZhciBsb2NhbENvbm5lY3Rpb247CiB2YXIgcmVtb3RlQ29ubmVjdGlv
bjsKIAotZnVuY3Rpb24gY3JlYXRlQ29ubmVjdGlvbnMoc2V0dXBMb2NhbENvbm5lY3Rpb24sIHNl
dHVwUmVtb3RlQ29ubmVjdGlvbikgeworZnVuY3Rpb24gY3JlYXRlQ29ubmVjdGlvbnMoc2V0dXBM
b2NhbENvbm5lY3Rpb24sIHNldHVwUmVtb3RlQ29ubmVjdGlvbiwgZmlsdGVyT3V0SUNFQ2FuZGlk
YXRlKSB7CiAgICAgbG9jYWxDb25uZWN0aW9uID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0g
ICAgbG9jYWxDb25uZWN0aW9uLm9uaWNlY2FuZGlkYXRlID0gaWNlQ2FsbGJhY2sxOworICAgIGxv
Y2FsQ29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9IChldmVudCkgPT4geyBpY2VDYWxsYmFjazEo
ZXZlbnQsIGZpbHRlck91dElDRUNhbmRpZGF0ZSkgfTsKICAgICBzZXR1cExvY2FsQ29ubmVjdGlv
bihsb2NhbENvbm5lY3Rpb24pOwogCiAgICAgcmVtb3RlQ29ubmVjdGlvbiA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwotICAgIHJlbW90ZUNvbm5lY3Rpb24ub25pY2VjYW5kaWRhdGUgPSBpY2VD
YWxsYmFjazI7CisgICAgcmVtb3RlQ29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9IChldmVudCkg
PT4geyBpY2VDYWxsYmFjazIoZXZlbnQsIGZpbHRlck91dElDRUNhbmRpZGF0ZSkgfTsKICAgICBz
ZXR1cFJlbW90ZUNvbm5lY3Rpb24ocmVtb3RlQ29ubmVjdGlvbik7CiAKICAgICBsb2NhbENvbm5l
Y3Rpb24uY3JlYXRlT2ZmZXIoKS50aGVuKGdvdERlc2NyaXB0aW9uMSwgb25DcmVhdGVTZXNzaW9u
RGVzY3JpcHRpb25FcnJvcik7CkBAIC00MCwxNCArNDAsMjUgQEAgZnVuY3Rpb24gZ290RGVzY3Jp
cHRpb24yKGRlc2MpCiAgICAgbG9jYWxDb25uZWN0aW9uLnNldFJlbW90ZURlc2NyaXB0aW9uKGRl
c2MpOwogfQogCi1mdW5jdGlvbiBpY2VDYWxsYmFjazEoZXZlbnQpCitmdW5jdGlvbiBpY2VDYWxs
YmFjazEoZXZlbnQsIGZpbHRlck91dElDRUNhbmRpZGF0ZSkKIHsKLSAgICBpZiAoZXZlbnQuY2Fu
ZGlkYXRlKQotICAgICAgICByZW1vdGVDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5j
YW5kaWRhdGUpLnRoZW4ob25BZGRJY2VDYW5kaWRhdGVTdWNjZXNzLCBvbkFkZEljZUNhbmRpZGF0
ZUVycm9yKTsKKyAgICBpZiAoIWV2ZW50LmNhbmRpZGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKGZpbHRlck91dElDRUNhbmRpZGF0ZSAmJiBmaWx0ZXJPdXRJQ0VDYW5kaWRhdGUoZXZl
bnQuY2FuZGlkYXRlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVtb3RlQ29ubmVjdGlvbi5h
ZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKS50aGVuKG9uQWRkSWNlQ2FuZGlkYXRlU3Vj
Y2Vzcywgb25BZGRJY2VDYW5kaWRhdGVFcnJvcik7CiB9CiAKLWZ1bmN0aW9uIGljZUNhbGxiYWNr
MihldmVudCkKK2Z1bmN0aW9uIGljZUNhbGxiYWNrMihldmVudCwgZmlsdGVyT3V0SUNFQ2FuZGlk
YXRlKQogeworICAgIGlmICghZXZlbnQuY2FuZGlkYXRlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoZmlsdGVyT3V0SUNFQ2FuZGlkYXRlICYmIGZpbHRlck91dElDRUNhbmRpZGF0ZShldmVu
dC5jYW5kaWRhdGUpKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoZXZlbnQuY2FuZGlkYXRl
KQogICAgICAgICBsb2NhbENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0
ZSkudGhlbihvbkFkZEljZUNhbmRpZGF0ZVN1Y2Nlc3MsIG9uQWRkSWNlQ2FuZGlkYXRlRXJyb3Ip
OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302864</attachid>
            <date>2017-02-27 12:32:19 -0800</date>
            <delta_ts>2017-02-27 17:12:31 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-168748-20170227122924.patch</filename>
            <type>text/plain</type>
            <size>26702</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzMDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTAzZDc0ODMwNDY4MzQ5
YTE4ZjQ2OTgzMjg5YWQxNWE1Yjc5ZmIwZC4uOTg4YmQ5MDIzMzNiNDRmNDMzYTliMTZjZmMwZjli
MTEwMWQ5NTYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE3LTAyLTI3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBBZGQgc3Vw
cG9ydCBmb3IgbGlid2VicnRjIFRDUCBpbmNvbWluZyBjb25uZWN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NzQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGFkZGVkIGxh
eW91dCB0ZXN0cy4KKworICAgICAgICBXaGVuIGEgbGlid2VicnRjIHNlcnZlciBzb2NrZXQgaXMg
c2lnbmFsbGluZyBhIG5ldyBjb25ubmVjdGlvbiB0aHJvdWdoIFNpZ25hbE5ld0Nvbm5lY3Rpb24s
IHdlIGRvOgorICAgICAgICAtIFdyYXAgdGhlIGluY29taW5nIHNvY2tldCBpbnRvIGEgTGliV2Vi
UlRDU29ja2V0Q2xpZW50CisgICAgICAgIC0gU3RvcmUgaXQgaW50byBhIHBlbmRpbmcgc29ja2V0
IG1hcCB3aXRoIGFuIGlkZW50aWZpZXIKKyAgICAgICAgLSBTZW5kIGEgbWVzc2FnZSB0byB0aGUg
d2ViIHByb2Nlc3Mgb2YgYSBuZXcgY29ubmVjdGlvbiB3aXRoIHRoZSBzZXJ2ZXIgc29ja2V0IGlk
ZW50aWZpZXIgYW5kIG5ldyBjb25uZWN0aW9uIHNvY2tldCBpZGVudGlmaWVyLgorICAgICAgICBU
aGUgV2ViIHByb2Nlc3MgdGhlbiBjcmVhdGVzIGEgV2ViUlRDU29ja2V0IHdyYXBwZXIgYXJvdW5k
IGl0IGJ5IHNlbmRpbmlnIGEgV3JhcE5ld1RDUENvbm5lY3Rpb24gbWVzc2FnZS4KKyAgICAgICAg
SXQgdGhlbiBwcm9wYWdhdGVzIHRoZSBTaWduYWxOZXdDb25uZWN0aW9uIHRvIGxpYndlYnJ0YyBj
b2RlIHBhdGguCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29j
a2V0Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0Q2xpZW50OjpM
aWJXZWJSVENTb2NrZXRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRD
bGllbnQ6OnNpZ25hbFJlYWRQYWNrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2Nr
ZXRDbGllbnQ6OnNpZ25hbFNlbnRQYWNrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENT
b2NrZXRDbGllbnQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpMaWJX
ZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbEFkZHJlc3NSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsQ29ubmVjdCk6CisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsQ2xvc2UpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1JUQ1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6bmV3Q29ubmVjdGlvbik6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlTmV3Q29ubmVjdGlv
blNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXRGYWN0b3J5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJS
VENTb2NrZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTb2NrZXQ6OnNpZ25hbE5ld0Nv
bm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29j
a2V0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQu
bWVzc2FnZXMuaW46CisKIDIwMTctMDItMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBPcHRpbWl6ZSBjaGVja1dlYlJUQ0F2YWlsYWJpbGl0
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldl
YlJUQ1NvY2tldENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcAppbmRleCAzM2M2YmU1MDUzMzU3MDEwYjcwZWE0
OTlhMmFlNDYyMjMxZjlkYmY1Li40YTk2ZTg0YWQwMDY5MGRiYzgwOTA3YWI3ZTkxMzU0MzIzYzQw
OTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGli
V2ViUlRDU29ja2V0Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcApAQCAtNTEsMTQgKzUxLDI1IEBAIExp
YldlYlJUQ1NvY2tldENsaWVudDo6TGliV2ViUlRDU29ja2V0Q2xpZW50KHVpbnQ2NF90IGlkZW50
aWZpZXIsIE5ldHdvcmtSVENQcm92CiAKICAgICBtX3NvY2tldC0+U2lnbmFsUmVhZFBhY2tldC5j
b25uZWN0KHRoaXMsICZMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbFJlYWRQYWNrZXQpOwog
ICAgIG1fc29ja2V0LT5TaWduYWxTZW50UGFja2V0LmNvbm5lY3QodGhpcywgJkxpYldlYlJUQ1Nv
Y2tldENsaWVudDo6c2lnbmFsU2VudFBhY2tldCk7Ci0gICAgbV9zb2NrZXQtPlNpZ25hbENvbm5l
Y3QuY29ubmVjdCh0aGlzLCAmTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxDb25uZWN0KTsK
ICAgICBtX3NvY2tldC0+U2lnbmFsQ2xvc2UuY29ubmVjdCh0aGlzLCAmTGliV2ViUlRDU29ja2V0
Q2xpZW50OjpzaWduYWxDbG9zZSk7CiAKLSAgICBpZiAodHlwZSA9PSBUeXBlOjpDbGllbnRUQ1Ap
IHsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFR5cGU6OlNlcnZlckNvbm5lY3Rpb25U
Q1A6CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFR5cGU6OkNsaWVudFRDUDoKKyAgICAgICAg
bV9zb2NrZXQtPlNpZ25hbENvbm5lY3QuY29ubmVjdCh0aGlzLCAmTGliV2ViUlRDU29ja2V0Q2xp
ZW50OjpzaWduYWxDb25uZWN0KTsKICAgICAgICAgbV9zb2NrZXQtPlNpZ25hbEFkZHJlc3NSZWFk
eS5jb25uZWN0KHRoaXMsICZMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbEFkZHJlc3NSZWFk
eSk7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFR5cGU6OlNlcnZlclRDUDoKKyAgICAgICAg
bV9zb2NrZXQtPlNpZ25hbENvbm5lY3QuY29ubmVjdCh0aGlzLCAmTGliV2ViUlRDU29ja2V0Q2xp
ZW50OjpzaWduYWxDb25uZWN0KTsKKyAgICAgICAgbV9zb2NrZXQtPlNpZ25hbE5ld0Nvbm5lY3Rp
b24uY29ubmVjdCh0aGlzLCAmTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxOZXdDb25uZWN0
aW9uKTsKKyAgICAgICAgc2lnbmFsQWRkcmVzc1JlYWR5KCk7CisgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIFR5cGU6OlVEUDoKKyAgICAgICAgbV9zb2NrZXQtPlNpZ25hbENvbm5lY3QuY29ubmVj
dCh0aGlzLCAmTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxDb25uZWN0KTsKKyAgICAgICAg
c2lnbmFsQWRkcmVzc1JlYWR5KCk7CisgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgc2lnbmFs
QWRkcmVzc1JlYWR5KCk7CiB9CiAKIHZvaWQgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzZW5kVG8o
Y29uc3QgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiBidWZmZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRk
cmVzcyYgc29ja2V0QWRkcmVzcywgY29uc3QgcnRjOjpQYWNrZXRPcHRpb25zJiBvcHRpb25zKQpA
QCAtNzksOCArOTAsOSBAQCB2b2lkIExpYldlYlJUQ1NvY2tldENsaWVudDo6c2V0T3B0aW9uKGlu
dCBvcHRpb24sIGludCB2YWx1ZSkKICAgICBtX3NvY2tldC0+U2V0T3B0aW9uKHN0YXRpY19jYXN0
PHJ0Yzo6U29ja2V0OjpPcHRpb24+KG9wdGlvbiksIHZhbHVlKTsKIH0KIAotdm9pZCBMaWJXZWJS
VENTb2NrZXRDbGllbnQ6OnNpZ25hbFJlYWRQYWNrZXQocnRjOjpBc3luY1BhY2tldFNvY2tldCos
IGNvbnN0IGNoYXIqIHZhbHVlLCBzaXplX3QgbGVuZ3RoLCBjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmIGFkZHJlc3MsIGNvbnN0IHJ0Yzo6UGFja2V0VGltZSYgcGFja2V0VGltZSkKK3ZvaWQgTGli
V2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxSZWFkUGFja2V0KHJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQqIHNvY2tldCwgY29uc3QgY2hhciogdmFsdWUsIHNpemVfdCBsZW5ndGgsIGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgY29uc3QgcnRjOjpQYWNrZXRUaW1lJiBwYWNrZXRUaW1l
KQogeworICAgIEFTU0VSVF9VTlVTRUQoc29ja2V0LCBtX3NvY2tldC5nZXQoKSA9PSBzb2NrZXQp
OwogICAgIGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUodmFsdWUs
IGxlbmd0aCk7CiAgICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZp
ZXIgPSBtX2lkZW50aWZpZXIsIGJ1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgYWRkcmVzcyA9IFJU
Q05ldHdvcms6Omlzb2xhdGVkQ29weShhZGRyZXNzKSwgcGFja2V0VGltZV0oSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGJ1ZmZlci0+ZGF0YSgpKSwgYnVmZmVyLT5zaXpl
KCkpOwpAQCAtODgsMTUgKzEwMCwyMyBAQCB2b2lkIExpYldlYlJUQ1NvY2tldENsaWVudDo6c2ln
bmFsUmVhZFBhY2tldChydGM6OkFzeW5jUGFja2V0U29ja2V0KiwgY29uc3QgY2hhcgogICAgIH0p
OwogfQogCi12b2lkIExpYldlYlJUQ1NvY2tldENsaWVudDo6c2lnbmFsU2VudFBhY2tldChydGM6
OkFzeW5jUGFja2V0U29ja2V0KiwgY29uc3QgcnRjOjpTZW50UGFja2V0JiBzZW50UGFja2V0KQor
dm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbFNlbnRQYWNrZXQocnRjOjpBc3luY1Bh
Y2tldFNvY2tldCogc29ja2V0LCBjb25zdCBydGM6OlNlbnRQYWNrZXQmIHNlbnRQYWNrZXQpCiB7
CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1fc29ja2V0LmdldCgpID09IHNvY2tldCk7CiAg
ICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50
aWZpZXIsIHNlbnRQYWNrZXRdKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewogICAgICAg
ICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OldlYlJUQ1NvY2tldDo6U2lnbmFsU2VudFBhY2tl
dChzZW50UGFja2V0LnBhY2tldF9pZCwgc2VudFBhY2tldC5zZW5kX3RpbWVfbXMpLCBpZGVudGlm
aWVyKTsKICAgICB9KTsKIH0KIAotdm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbEFk
ZHJlc3NSZWFkeShydGM6OkFzeW5jUGFja2V0U29ja2V0KiwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiBhZGRyZXNzKQordm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbE5ld0Nvbm5l
Y3Rpb24ocnRjOjpBc3luY1BhY2tldFNvY2tldCogc29ja2V0LCBydGM6OkFzeW5jUGFja2V0U29j
a2V0KiBuZXdTb2NrZXQpCit7CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1fc29ja2V0Lmdl
dCgpID09IHNvY2tldCk7CisgICAgbV9ydGNQcm92aWRlci5uZXdDb25uZWN0aW9uKCp0aGlzLCBz
dGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4obmV3U29ja2V0KSk7Cit9CisK
K3ZvaWQgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxBZGRyZXNzUmVhZHkocnRjOjpBc3lu
Y1BhY2tldFNvY2tldCogc29ja2V0LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3Mp
CiB7CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1fc29ja2V0LmdldCgpID09IHNvY2tldCk7
CiAgICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lk
ZW50aWZpZXIsIGFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkoYWRkcmVzcyldKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVz
c2FnZXM6OldlYlJUQ1NvY2tldDo6U2lnbmFsQWRkcmVzc1JlYWR5KFJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MoYWRkcmVzcykpLCBpZGVudGlmaWVyKTsKICAgICB9KTsKQEAgLTEwNywxNSArMTI3
LDE3IEBAIHZvaWQgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpzaWduYWxBZGRyZXNzUmVhZHkoKQog
ICAgIHNpZ25hbEFkZHJlc3NSZWFkeShtX3NvY2tldC5nZXQoKSwgbV9zb2NrZXQtPkdldExvY2Fs
QWRkcmVzcygpKTsKIH0KIAotdm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbENvbm5l
Y3QocnRjOjpBc3luY1BhY2tldFNvY2tldCopCit2b2lkIExpYldlYlJUQ1NvY2tldENsaWVudDo6
c2lnbmFsQ29ubmVjdChydGM6OkFzeW5jUGFja2V0U29ja2V0KiBzb2NrZXQpCiB7CisgICAgQVNT
RVJUX1VOVVNFRChzb2NrZXQsIG1fc29ja2V0LmdldCgpID09IHNvY2tldCk7CiAgICAgbV9ydGNQ
cm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXJdKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVz
c2FnZXM6OldlYlJUQ1NvY2tldDo6U2lnbmFsQ29ubmVjdCgpLCBpZGVudGlmaWVyKTsKICAgICB9
KTsKIH0KIAotdm9pZCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OnNpZ25hbENsb3NlKHJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQqLCBpbnQgZXJyb3IpCit2b2lkIExpYldlYlJUQ1NvY2tldENsaWVudDo6
c2lnbmFsQ2xvc2UocnRjOjpBc3luY1BhY2tldFNvY2tldCogc29ja2V0LCBpbnQgZXJyb3IpCiB7
CisgICAgQVNTRVJUX1VOVVNFRChzb2NrZXQsIG1fc29ja2V0LmdldCgpID09IHNvY2tldCk7CiAg
ICAgbV9ydGNQcm92aWRlci5zZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50
aWZpZXIsIGVycm9yXShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29u
bmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpXZWJSVENTb2NrZXQ6OlNpZ25hbENsb3NlKGVycm9yKSwg
aWRlbnRpZmllcik7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmgKaW5kZXggMzc1Y2Zk
ZjI0ZDU4NzI5YzYzZTUwZTVhNWYyMWFkM2I5ZmI0NzVhMC4uZTRhY2I2MjcxMTU5Y2I5NmMxNzg3
MDAxYTllZWE5ZThkNjY4MDI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaApAQCAtNDksMTAg
KzQ5LDEyIEBAIGNsYXNzIE5ldHdvcmtSVENQcm92aWRlcjsKIAogY2xhc3MgTGliV2ViUlRDU29j
a2V0Q2xpZW50IGZpbmFsIDogcHVibGljIHNpZ3Nsb3Q6Omhhc19zbG90czw+IHsKIHB1YmxpYzoK
LSAgICBlbnVtIGNsYXNzIFR5cGUgeyBVRFAsIFNlcnZlclRDUCwgQ2xpZW50VENQIH07CisgICAg
ZW51bSBjbGFzcyBUeXBlIHsgVURQLCBTZXJ2ZXJUQ1AsIENsaWVudFRDUCwgU2VydmVyQ29ubmVj
dGlvblRDUCB9OwogCiAgICAgTGliV2ViUlRDU29ja2V0Q2xpZW50KHVpbnQ2NF90IGlkZW50aWZp
ZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0
U29ja2V0PiYmLCBUeXBlKTsKIAorICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50aWZpZXI7IH0KKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTmV0d29y
a1JUQ1NvY2tldDsKIApAQCAtNjUsNiArNjcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2lnbmFs
QWRkcmVzc1JlYWR5KHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqLCBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmKTsKICAgICB2b2lkIHNpZ25hbENvbm5lY3QocnRjOjpBc3luY1BhY2tldFNvY2tldCop
OwogICAgIHZvaWQgc2lnbmFsQ2xvc2UocnRjOjpBc3luY1BhY2tldFNvY2tldCosIGludCk7Cisg
ICAgdm9pZCBzaWduYWxOZXdDb25uZWN0aW9uKHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIHNvY2tl
dCwgcnRjOjpBc3luY1BhY2tldFNvY2tldCogbmV3U29ja2V0KTsKIAogICAgIHZvaWQgc2lnbmFs
QWRkcmVzc1JlYWR5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKaW5kZXggY2IyZDAwZDU4NDU4
ODg2NTRlODdiYTVlMzgyZDI0YTNlNzQ5ODAyNC4uNmVjMWI1M2U0MjY4MTNhZWE1MTE1NWZjZDE1
MGI3MzQyOWNiNWEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSVENTb2NrZXQu
aCIKICNpbmNsdWRlICJXZWJSVENSZXNvbHZlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUlRD
U29ja2V0TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgog
I2luY2x1ZGUgPHdlYnJ0Yy9iYXNlL2FzeW5jcGFja2V0c29ja2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KQEAgLTkxLDYgKzkyLDE0IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVy
OjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0
CiAgICAgfSk7CiB9CiAKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVj
dGlvbih1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRl
bnRpZmllcikKK3sKKyAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVy
LCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcl0oKSB7CisgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQgPSBtX3BlbmRpbmdJbmNvbWluZ1Nv
Y2tldHMudGFrZShuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcik7CisgICAgICAgIGFkZFNv
Y2tldChpZGVudGlmaWVyLCBzdGQ6Om1ha2VfdW5pcXVlPExpYldlYlJUQ1NvY2tldENsaWVudD4o
aWRlbnRpZmllciwgKnRoaXMsIFdURk1vdmUoc29ja2V0KSwgTGliV2ViUlRDU29ja2V0Q2xpZW50
OjpUeXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQKSk7CisgICAgfSk7Cit9CisKIHZvaWQgTmV0d29y
a1JUQ1Byb3ZpZGVyOjphZGRTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgc3RkOjp1bmlxdWVf
cHRyPExpYldlYlJUQ1NvY2tldENsaWVudD4mJiBzb2NrZXQpCiB7CiAgICAgbV9zb2NrZXRzLmFk
ZChpZGVudGlmaWVyLCBXVEZNb3ZlKHNvY2tldCkpOwpAQCAtMTAxLDYgKzExMCwxNCBAQCBzdGQ6
OnVuaXF1ZV9wdHI8TGliV2ViUlRDU29ja2V0Q2xpZW50PiBOZXR3b3JrUlRDUHJvdmlkZXI6OnRh
a2VTb2NrZXQodWludDY0X3QgaQogICAgIHJldHVybiBtX3NvY2tldHMudGFrZShpZGVudGlmaWVy
KTsKIH0KIAordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6Om5ld0Nvbm5lY3Rpb24oTGliV2ViUlRD
U29ja2V0Q2xpZW50JiBzZXJ2ZXJTb2NrZXQsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFj
a2V0U29ja2V0PiYmIG5ld1NvY2tldCkKK3sKKyAgICBzZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50
aWZpZXIgPSBzZXJ2ZXJTb2NrZXQuaWRlbnRpZmllcigpLCBpbmNvbWluZ1NvY2tldElkZW50aWZp
ZXIgPSArK21faW5jb21pbmdTb2NrZXRJZGVudGlmaWVyLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0
d29yazo6aXNvbGF0ZWRDb3B5KG5ld1NvY2tldC0+R2V0UmVtb3RlQWRkcmVzcygpKV0oSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CisgICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdl
czo6V2ViUlRDU29ja2V0OjpTaWduYWxOZXdDb25uZWN0aW9uKGluY29taW5nU29ja2V0SWRlbnRp
ZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzKSksIGlkZW50aWZp
ZXIpOworICAgIH0pOworICAgIG1fcGVuZGluZ0luY29taW5nU29ja2V0cy5hZGQobV9pbmNvbWlu
Z1NvY2tldElkZW50aWZpZXIsIFdURk1vdmUobmV3U29ja2V0KSk7Cit9CisKIHZvaWQgTmV0d29y
a1JUQ1Byb3ZpZGVyOjpkaWRSZWNlaXZlTmV0d29ya1JUQ1NvY2tldE1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgTmV0d29y
a1JUQ1NvY2tldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSwgKnRoaXMpLmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4IDZhNzIxODJi
ZTJhOTcyOWEyODNjMGYxYmEwZTY5OTVlYTk5ZDBkNjcuLjJlODgwNmRiZTRkZmNmMGVlNWM5YmIy
ODI2YjkwNTVkNTFiMGU5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKQEAgLTY2LDEyICs2NiwxNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBjYWxsT25SVENOZXR3b3JrVGhyZWFkKEZ1bmN0aW9uPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzZW5kRnJvbU1haW5UaHJlYWQoRnVuY3Rpb248dm9pZChJUEM6OkNv
bm5lY3Rpb24mKT4mJik7CiAKKyAgICB2b2lkIG5ld0Nvbm5lY3Rpb24oTGliV2ViUlRDU29ja2V0
Q2xpZW50Jiwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYpOworCiBw
cml2YXRlOgogICAgIGV4cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYpOwogCiAgICAgdm9pZCBjcmVhdGVVRFBTb2NrZXQodWludDY0X3QsIGNv
bnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QpOwogICAg
IHZvaWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpT
b2NrZXRBZGRyZXNzJiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGludCk7CiAg
ICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQodWludDY0X3QsIGNvbnN0IFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQp
OworICAgIHZvaWQgd3JhcE5ld1RDUENvbm5lY3Rpb24odWludDY0X3QgaWRlbnRpZmllciwgdWlu
dDY0X3QgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpOworCiAgICAgdm9pZCBjcmVhdGVS
ZXNvbHZlcih1aW50NjRfdCwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzdG9wUmVzb2x2ZXIo
dWludDY0X3QpOwogCkBAIC0xMDIsNiArMTA2LDkgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OlRocmVhZD4gbV9ydGNOZXR3b3JrVGhyZWFkOwogICAgIFVuaXF1ZVJlZjxy
dGM6OkJhc2ljUGFja2V0U29ja2V0RmFjdG9yeT4gbV9wYWNrZXRTb2NrZXRGYWN0b3J5OworCisg
ICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQ+PiBtX3BlbmRpbmdJbmNvbWluZ1NvY2tldHM7CisgICAgdWludDY0X3QgbV9pbmNvbWluZ1Nv
Y2tldElkZW50aWZpZXIgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy93ZWJydGMv
TmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCmluZGV4IDk0MDk1MjE0NGUwMjg3M2JjOTI0
YmE2YTM5YmJmYzkyYzhkNmY0ZWEuLjQ4OTE0YzM3ZjVlOTU1YWNmMzFjOGE3ZjBlNjY2MjBlNTJh
ZmNmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgpAQCAtMjgsNiAr
MjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUlRDUHJvdmlkZXIgewogICAgIENyZWF0ZUNsaWVu
dFRDUFNvY2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90
ZUFkZHJlc3MsIGludCBvcHRpb25zKQogICAgIENyZWF0ZVJlc29sdmVyKHVpbnQ2NF90IGlkZW50
aWZpZXIsIFN0cmluZyBhZGRyZXNzKQogICAgIFN0b3BSZXNvbHZlcih1aW50NjRfdCBpZGVudGlm
aWVyKQorICAgIFdyYXBOZXdUQ1BDb25uZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2
NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKQogfQogCiAjZW5kaWYgLy8gVVNFKExJ
QldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcAppbmRleCBjNDliNWQ1YzJhY2YzZTBiOGMy
ZGU5NzZiNmFhMzY0YzRlMzU4ZGM4Li43NzEzMDM1OGQwZTA2MDEzZTIwN2RlODNhZTk2ZTA5YWEw
MzU3OTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCkBAIC0xMDYsNiArMTA2LDEyIEBAIHZv
aWQgTGliV2ViUlRDU29ja2V0OjpzaWduYWxDbG9zZShpbnQgZXJyb3IpCiAgICAgU2lnbmFsQ2xv
c2UodGhpcywgZXJyb3IpOwogfQogCit2b2lkIExpYldlYlJUQ1NvY2tldDo6c2lnbmFsTmV3Q29u
bmVjdGlvbihydGM6OkFzeW5jUGFja2V0U29ja2V0KiBuZXdDb25uZWN0aW9uU29ja2V0KQorewor
ICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6U2VydmVyVENQKTsKKyAgICBTaWduYWxOZXdDb25u
ZWN0aW9uKHRoaXMsIG5ld0Nvbm5lY3Rpb25Tb2NrZXQpOworfQorCiBzdGF0aWMgaW5saW5lIFN0
cmluZyBhdXRoS2V5KGNvbnN0IHJ0Yzo6UGFja2V0T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBp
ZiAob3B0aW9ucy5wYWNrZXRfdGltZV9wYXJhbXMuc3J0cF9hdXRoX2tleS5zaXplKCkgPD0gMCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1NvY2tldC5oCmluZGV4IDk1NzQzN2Y4ZGEyN2IwZDg3ODMyMGU2MzQ4OWNiMDY0
ZmRmZmVkMmEuLjEzNDQ0ZGZlYTM3NjQ1MWQ0MWUxMWM2YzkzZDVmZjAzNWZmNTlkNmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
U29ja2V0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9M
aWJXZWJSVENTb2NrZXQuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBMaWJXZWJSVENTb2NrZXRG
YWN0b3J5OwogCiBjbGFzcyBMaWJXZWJSVENTb2NrZXQgZmluYWwgOiBwdWJsaWMgcnRjOjpBc3lu
Y1BhY2tldFNvY2tldCB7CiBwdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBUeXBlIHsgVURQLCBTZXJ2
ZXJUQ1AsIENsaWVudFRDUCB9OworICAgIGVudW0gY2xhc3MgVHlwZSB7IFVEUCwgU2VydmVyVENQ
LCBDbGllbnRUQ1AsIFNlcnZlckNvbm5lY3Rpb25UQ1AgfTsKIAogICAgIExpYldlYlJUQ1NvY2tl
dChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiwgdWludDY0X3QgaWRlbnRpZmllciwgVHlwZSwgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRk
cmVzcyYgcmVtb3RlQWRkcmVzcyk7CiAgICAgfkxpYldlYlJUQ1NvY2tldCgpOwpAQCAtNjksNiAr
NjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2lnbmFsQWRkcmVzc1JlYWR5KGNvbnN0IHJ0Yzo6
U29ja2V0QWRkcmVzcyYpOwogICAgIHZvaWQgc2lnbmFsQ29ubmVjdCgpOwogICAgIHZvaWQgc2ln
bmFsQ2xvc2UoaW50KTsKKyAgICB2b2lkIHNpZ25hbE5ld0Nvbm5lY3Rpb24ocnRjOjpBc3luY1Bh
Y2tldFNvY2tldCopOwogCiAgICAgLy8gQXN5bmNQYWNrZXRTb2NrZXQgQVBJCiAgICAgaW50IEdl
dEVycm9yKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9lcnJvcjsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0
b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDU29ja2V0RmFjdG9yeS5jcHAKaW5kZXggY2NkOGQ2MGQxNWY4ODE0MWY5Yjc4NmY2Y2MwNmY4
MTM2OGE5NDYwOS4uYTIwYWI5ZGFlYTVkYTNjODkwNjA1MjVjZDcwNjY2NjM0NWRhOGRhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJS
VENTb2NrZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCkBAIC04Niw2ICs4NiwyMSBAQCBy
dGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpDcmVhdGVDbGll
bnRUY3BTb2NrZXQoY29uc3QgcnRjOgogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQog
CitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVO
ZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1NvY2tldCYgc2VydmVyU29ja2V0LCB1aW50NjRf
dCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiByZW1vdGVBZGRyZXNzKQoreworICAgIGF1dG8gc29ja2V0ID0gc3RkOjptYWtlX3VuaXF1ZTxM
aWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGliV2Vi
UlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQLCBzZXJ2ZXJTb2NrZXQubG9jYWxB
ZGRyZXNzKCksIHJlbW90ZUFkZHJlc3MpOworICAgIHNvY2tldC0+c2V0U3RhdGUoTGliV2ViUlRD
U29ja2V0OjpTVEFURV9DT05ORUNURUQpOworICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVu
dGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlm
aWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVy
XSgpIHsKKyAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVj
dGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUlRDUHJvdmlkZXI6Oldy
YXBOZXdUQ1BDb25uZWN0aW9uKGlkZW50aWZpZXIsIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlm
aWVyKSwgMCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQgZXJyb3IgYmFjayB0byBzb2Nr
ZXQKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0pOworICAgIHJldHVybiBz
b2NrZXQucmVsZWFzZSgpOworfQorCiB2b2lkIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmRldGFj
aChMaWJXZWJSVENTb2NrZXQmIHNvY2tldCkKIHsKICAgICBBU1NFUlQobV9zb2NrZXRzLmNvbnRh
aW5zKHNvY2tldC5pZGVudGlmaWVyKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5
LmgKaW5kZXggMDIzZjE3NTYxZTI3YzJjZTJhYjc3ODZiZjhmOTBhZmYzYjUwODA3Yi4uYzEzMWRm
MjA3YTVmOGMzOWY1ODY1ZjRmYjhkYzA0OTIzMWJlMWE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXRGYWN0b3J5LmgKQEAgLTQ3LDYgKzQ3LDggQEAgcHVibGljOgogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPExpYldlYlJUQ1Jlc29sdmVyPiB0YWtlUmVzb2x2ZXIodWludDY0X3QgaWRlbnRpZmll
cikgeyByZXR1cm4gbV9yZXNvbHZlcnMudGFrZShpZGVudGlmaWVyKTsgfQogCisgICAgcnRjOjpB
c3luY1BhY2tldFNvY2tldCogY3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldChMaWJXZWJSVENTb2Nr
ZXQmLCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJik7CisKIHByaXZhdGU6CiAgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCog
Q3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBv
cnQsIHVpbnQxNl90IG1heFBvcnQpIGZpbmFsOwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQq
IENyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZf
dCBtaW5fcG9ydCwgdWludDE2X3QgbWF4X3BvcnQsIGludCBvcHRpb25zKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29j
a2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRD
U29ja2V0LmNwcAppbmRleCBkNmRjZTQ4YWExYmY2NTRlMGI1MmFmMmU3ZTU5NjNmYTVhNjNlYTg0
Li5iYTM1ZDdmNzk3Y2IwNjUxYjRiNWRmMGZkMmNkNDAwMTZjOGYyZmM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2Nr
ZXQuY3BwCkBAIC05MCw2ICs5MCwxMyBAQCB2b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFsQ2xvc2Uo
aW50IGVycm9yKQogICAgIH0pOwogfQogCit2b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFsTmV3Q29u
bmVjdGlvbih1aW50NjRfdCBuZXdTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpT
b2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQoreworICAgIHNpZ25hbE9uTmV0d29ya1RocmVh
ZChtX2ZhY3RvcnksIG1faWRlbnRpZmllciwgW25ld1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFk
ZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSldKExp
YldlYlJUQ1NvY2tldCYgc29ja2V0KSB7CisgICAgICAgIHNvY2tldC5zaWduYWxOZXdDb25uZWN0
aW9uKHNvY2tldC5tX2ZhY3RvcnkuY3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldChzb2NrZXQsIG5l
d1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3MpKTsKKyAgICB9KTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmgK
aW5kZXggZDI2ZDYwZjI0NGMyOTczOGU4NDk4YzViNWU1NzgxNWVhMjZmNDYzOS4uOWY0Y2I3ODA4
Njg1ZGQ2Nzg2YzFkZDViNzM2MWMyNzIyNDIwZTg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5oCkBAIC01NSw3
ICs1NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaWduYWxBZGRyZXNzUmVhZHkoY29uc3QgUlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyYpOwogICAgIHZvaWQgc2lnbmFsQ29ubmVjdCgpOwogICAg
IHZvaWQgc2lnbmFsQ2xvc2UoaW50KTsKLSAgICAKKyAgICB2b2lkIHNpZ25hbE5ld0Nvbm5lY3Rp
b24odWludDY0X3QgbmV3U29ja2V0SWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzJik7CisKICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBtX2ZhY3Rv
cnk7CiAgICAgdWludDY0X3QgbV9pZGVudGlmaWVyIHsgMCB9OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENT
b2NrZXQubWVzc2FnZXMuaW4KaW5kZXggNDI2ZDZkMTkyOTNlNTE1MzQ3NzQyYWNlYmUzNDc0OWRh
NGRhZmZhMy4uZjYxMTI4NWFmYTczNjVhZTFkYjc4OGIyNzM4NGE1ZmVmZTg4NmU3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2Nr
ZXQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KQEAgLTI4LDYgKzI4LDcgQEAgbWVzc2FnZXMg
LT4gV2ViUlRDU29ja2V0IHsKICAgICBTaWduYWxBZGRyZXNzUmVhZHkoV2ViS2l0OjpSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzIGFkZHJlc3MpCiAgICAgU2lnbmFsQ29ubmVjdCgpCiAgICAgU2ln
bmFsQ2xvc2UoaW50IGVycm9yKQorICAgIFNpZ25hbE5ld0Nvbm5lY3Rpb24odWludDY0X3QgbmV3
U29ja2V0SWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90
ZUFkZHJlc3MpCiB9CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBlMmJjY2Zl
NDFlZTQ3ZjlkMTg5Yzc0YjU3MWQ0NzIzMTEwNGVlNzguLmM1MjgxZjcyMmNkNjRkNWQ5NTQwMjVl
MzQ1MDU0OGViMGE4YWRiMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wMi0yNyAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYlJUQ10gQWRkIHN1
cHBvcnQgZm9yIGxpYndlYnJ0YyBUQ1AgaW5jb21pbmcgY29ubmVjdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODc0OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiB3ZWJydGMvZGF0YWNoYW5u
ZWwvYmFzaWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvZGF0YWNoYW5u
ZWwvYmFzaWMuaHRtbDoKKyAgICAgICAgKiB3ZWJydGMvcm91dGluZXMuanM6CisgICAgICAgIChj
cmVhdGVDb25uZWN0aW9ucyk6CisgICAgICAgIChpY2VDYWxsYmFjazEpOgorICAgICAgICAoaWNl
Q2FsbGJhY2syKToKKwogMjAxNy0wMi0yNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KIAogICAgICAgICBbV2ViUlRDXSBGaXggcmVtb3RlIGF1ZGlvIHJlbmRlcmluZwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2Jhc2ljLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9iYXNpYy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTQyMmRkMDJiNGE2ZGVlNzhhNDMyMTg1Mjg2NTUxNzYxNTdjYzZiNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9iYXNpYy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgQmFzaWMgZGF0YSBjaGFubmVsIGV4Y2hhbmdlIGZy
b20gb2ZmZXJlciB0byByZWNlaXZlciAKK1BBU1MgQmFzaWMgZGF0YSBjaGFubmVsIGV4Y2hhbmdl
IGZyb20gcmVjZWl2ZXIgdG8gb2ZmZXJlciAKK1BBU1MgQmFzaWMgZGF0YSBjaGFubmVsIGV4Y2hh
bmdlIGZyb20gb2ZmZXJlciB0byByZWNlaXZlciB1c2luZyBVRFAgb25seSAKK1BBU1MgQmFzaWMg
ZGF0YSBjaGFubmVsIGV4Y2hhbmdlIGZyb20gb2ZmZXJlciB0byByZWNlaXZlciB1c2luZyBUQ1Ag
b25seSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2Jhc2lj
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvYmFzaWMuaHRtbAppbmRleCBl
NTBjZDViMzBhMjgyNTdjZmEyNzljYmJjOTRhYWI5Mjk4NTVmMjI2Li5mNmY4MWYwNjJjMWM4Y2Vl
MDdjZWVmZTE5ZGYzOTMwZWQ4NjhiMjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMv
ZGF0YWNoYW5uZWwvYmFzaWMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5u
ZWwvYmFzaWMuaHRtbApAQCAtOSw5ICs5LDYgQEAKICAgPGJvZHk+CiAgICAgPHNjcmlwdCBzcmMg
PSIuLi9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy51c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KCJU
d29SZWFsUGVlckNvbm5lY3Rpb25zIik7Ci0KIHZhciBsb2NhbENoYW5uZWw7CiB2YXIgcmVtb3Rl
Q2hhbm5lbDsKIApAQCAtNjAsNiArNTcsOSBAQCB2YXIgZmluaXNoVGVzdDsKIHByb21pc2VfdGVz
dCgodGVzdCkgPT4gewogICAgIGNvdW50ZXIgPSAwOwogICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICAgICAgaW50ZXJuYWxzLnVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoIlR3b1Jl
YWxQZWVyQ29ubmVjdGlvbnMiKTsKKwogICAgICAgICBmaW5pc2hUZXN0ID0gcmVzb2x2ZTsKICAg
ICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGxvY2FsQ29ubmVjdGlvbikgPT4gewogICAgICAgICAg
ICAgbG9jYWxDaGFubmVsID0gbG9jYWxDb25uZWN0aW9uLmNyZWF0ZURhdGFDaGFubmVsKCdzZW5k
RGF0YUNoYW5uZWwnKTsKQEAgLTc2LDYgKzc2LDkgQEAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7
CiBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICBjb3VudGVyID0gMDsKICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy51c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25G
YWN0b3J5KCJUd29SZWFsUGVlckNvbm5lY3Rpb25zIik7CisKICAgICAgICAgZmluaXNoVGVzdCA9
IHJlc29sdmU7CiAgICAgICAgIGNyZWF0ZUNvbm5lY3Rpb25zKChsb2NhbENvbm5lY3Rpb24pID0+
IHsKICAgICAgICAgICAgIGxvY2FsQ2hhbm5lbCA9IGxvY2FsQ29ubmVjdGlvbi5jcmVhdGVEYXRh
Q2hhbm5lbCgnc2VuZERhdGFDaGFubmVsJyk7CkBAIC04OCw2ICs5MSw0NSBAQCBwcm9taXNlX3Rl
c3QoKHRlc3QpID0+IHsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9LCAiQmFzaWMgZGF0YSBjaGFu
bmVsIGV4Y2hhbmdlIGZyb20gcmVjZWl2ZXIgdG8gb2ZmZXJlciIpOworCitwcm9taXNlX3Rlc3Qo
KHRlc3QpID0+IHsKKyAgICBjb3VudGVyID0gMDsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAg
ICAgICAgIGludGVybmFscy51c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KCJUd29SZWFs
UGVlckNvbm5lY3Rpb25zIik7CisKKyAgICAgICAgZmluaXNoVGVzdCA9IHJlc29sdmU7CisgICAg
ICAgIGNyZWF0ZUNvbm5lY3Rpb25zKChsb2NhbENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAg
IGxvY2FsQ2hhbm5lbCA9IGxvY2FsQ29ubmVjdGlvbi5jcmVhdGVEYXRhQ2hhbm5lbCgnc2VuZERh
dGFDaGFubmVsJyk7CisgICAgICAgICAgICBsb2NhbENoYW5uZWwub25vcGVuID0gKCkgPT4geyBz
ZW5kTWVzc2FnZXMobG9jYWxDaGFubmVsKSB9OworICAgICAgICB9LCAocmVtb3RlQ29ubmVjdGlv
bikgPT4geworICAgICAgICAgICAgcmVtb3RlQ29ubmVjdGlvbi5vbmRhdGFjaGFubmVsID0gKGV2
ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgcmVtb3RlQ2hhbm5lbCA9IGV2ZW50LmNoYW5uZWw7
CisgICAgICAgICAgICAgICAgcmVtb3RlQ2hhbm5lbC5vbm1lc3NhZ2UgPSByZWNlaXZlTWVzc2Fn
ZXM7CisgICAgICAgICAgICB9OworICAgICAgICB9LCAoY2FuZGlkYXRlKSA9PiB7IHJldHVybiBj
YW5kaWRhdGUuY2FuZGlkYXRlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigidWRwIikgPT0gLTE7IH0p
OworICAgIH0pOworfSwgIkJhc2ljIGRhdGEgY2hhbm5lbCBleGNoYW5nZSBmcm9tIG9mZmVyZXIg
dG8gcmVjZWl2ZXIgdXNpbmcgVURQIG9ubHkiKTsKKworcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7
CisgICAgY291bnRlciA9IDA7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWpl
Y3QpID0+IHsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRl
cm5hbHMudXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeSgiVHdvUmVhbFBlZXJDb25uZWN0
aW9ucyIpOworCisgICAgICAgIGZpbmlzaFRlc3QgPSByZXNvbHZlOworICAgICAgICBjcmVhdGVD
b25uZWN0aW9ucygobG9jYWxDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBsb2NhbENoYW5u
ZWwgPSBsb2NhbENvbm5lY3Rpb24uY3JlYXRlRGF0YUNoYW5uZWwoJ3NlbmREYXRhQ2hhbm5lbCcp
OworICAgICAgICAgICAgbG9jYWxDaGFubmVsLm9ub3BlbiA9ICgpID0+IHsgc2VuZE1lc3NhZ2Vz
KGxvY2FsQ2hhbm5lbCkgfTsKKyAgICAgICAgfSwgKHJlbW90ZUNvbm5lY3Rpb24pID0+IHsKKyAg
ICAgICAgICAgIHJlbW90ZUNvbm5lY3Rpb24ub25kYXRhY2hhbm5lbCA9IChldmVudCkgPT4gewor
ICAgICAgICAgICAgICAgIHJlbW90ZUNoYW5uZWwgPSBldmVudC5jaGFubmVsOworICAgICAgICAg
ICAgICAgIHJlbW90ZUNoYW5uZWwub25tZXNzYWdlID0gcmVjZWl2ZU1lc3NhZ2VzOworICAgICAg
ICAgICAgfTsKKyAgICAgICAgfSwgKGNhbmRpZGF0ZSkgPT4geyByZXR1cm4gY2FuZGlkYXRlLmNh
bmRpZGF0ZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoInRjcCIpID09IC0xOyB9KTsKKyAgICB9KTsK
K30sICJCYXNpYyBkYXRhIGNoYW5uZWwgZXhjaGFuZ2UgZnJvbSBvZmZlcmVyIHRvIHJlY2VpdmVy
IHVzaW5nIFRDUCBvbmx5Iik7CisKICAgICA8L3NjcmlwdD4KICAgPC9ib2R5PgogPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzIGIvTGF5b3V0VGVzdHMv
d2VicnRjL3JvdXRpbmVzLmpzCmluZGV4IDRiYzEwZDRlOTMxYTc2ZGI1OTMxM2NlMDVkYjc2NDZj
MjE4ZGY5ODYuLjU0ZWYzM2QzN2ZhYzFmODc5MjI0Y2NlNmMzYTRhMmQ1NzIxZmM1MDMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcworKysgYi9MYXlvdXRUZXN0cy93
ZWJydGMvcm91dGluZXMuanMKQEAgLTIsMTMgKzIsMTMgQEAKIHZhciBsb2NhbENvbm5lY3Rpb247
CiB2YXIgcmVtb3RlQ29ubmVjdGlvbjsKIAotZnVuY3Rpb24gY3JlYXRlQ29ubmVjdGlvbnMoc2V0
dXBMb2NhbENvbm5lY3Rpb24sIHNldHVwUmVtb3RlQ29ubmVjdGlvbikgeworZnVuY3Rpb24gY3Jl
YXRlQ29ubmVjdGlvbnMoc2V0dXBMb2NhbENvbm5lY3Rpb24sIHNldHVwUmVtb3RlQ29ubmVjdGlv
biwgZmlsdGVyT3V0SUNFQ2FuZGlkYXRlKSB7CiAgICAgbG9jYWxDb25uZWN0aW9uID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgbG9jYWxDb25uZWN0aW9uLm9uaWNlY2FuZGlkYXRlID0g
aWNlQ2FsbGJhY2sxOworICAgIGxvY2FsQ29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9IChldmVu
dCkgPT4geyBpY2VDYWxsYmFjazEoZXZlbnQsIGZpbHRlck91dElDRUNhbmRpZGF0ZSkgfTsKICAg
ICBzZXR1cExvY2FsQ29ubmVjdGlvbihsb2NhbENvbm5lY3Rpb24pOwogCiAgICAgcmVtb3RlQ29u
bmVjdGlvbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHJlbW90ZUNvbm5lY3Rpb24u
b25pY2VjYW5kaWRhdGUgPSBpY2VDYWxsYmFjazI7CisgICAgcmVtb3RlQ29ubmVjdGlvbi5vbmlj
ZWNhbmRpZGF0ZSA9IChldmVudCkgPT4geyBpY2VDYWxsYmFjazIoZXZlbnQsIGZpbHRlck91dElD
RUNhbmRpZGF0ZSkgfTsKICAgICBzZXR1cFJlbW90ZUNvbm5lY3Rpb24ocmVtb3RlQ29ubmVjdGlv
bik7CiAKICAgICBsb2NhbENvbm5lY3Rpb24uY3JlYXRlT2ZmZXIoKS50aGVuKGdvdERlc2NyaXB0
aW9uMSwgb25DcmVhdGVTZXNzaW9uRGVzY3JpcHRpb25FcnJvcik7CkBAIC00MCwxNCArNDAsMjUg
QEAgZnVuY3Rpb24gZ290RGVzY3JpcHRpb24yKGRlc2MpCiAgICAgbG9jYWxDb25uZWN0aW9uLnNl
dFJlbW90ZURlc2NyaXB0aW9uKGRlc2MpOwogfQogCi1mdW5jdGlvbiBpY2VDYWxsYmFjazEoZXZl
bnQpCitmdW5jdGlvbiBpY2VDYWxsYmFjazEoZXZlbnQsIGZpbHRlck91dElDRUNhbmRpZGF0ZSkK
IHsKLSAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKQotICAgICAgICByZW1vdGVDb25uZWN0aW9uLmFk
ZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpLnRoZW4ob25BZGRJY2VDYW5kaWRhdGVTdWNj
ZXNzLCBvbkFkZEljZUNhbmRpZGF0ZUVycm9yKTsKKyAgICBpZiAoIWV2ZW50LmNhbmRpZGF0ZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGZpbHRlck91dElDRUNhbmRpZGF0ZSAmJiBmaWx0
ZXJPdXRJQ0VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgcmVtb3RlQ29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKS50aGVu
KG9uQWRkSWNlQ2FuZGlkYXRlU3VjY2Vzcywgb25BZGRJY2VDYW5kaWRhdGVFcnJvcik7CiB9CiAK
LWZ1bmN0aW9uIGljZUNhbGxiYWNrMihldmVudCkKK2Z1bmN0aW9uIGljZUNhbGxiYWNrMihldmVu
dCwgZmlsdGVyT3V0SUNFQ2FuZGlkYXRlKQogeworICAgIGlmICghZXZlbnQuY2FuZGlkYXRlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZmlsdGVyT3V0SUNFQ2FuZGlkYXRlICYmIGZpbHRl
ck91dElDRUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpKQorICAgICAgICByZXR1cm47CisKICAg
ICBpZiAoZXZlbnQuY2FuZGlkYXRlKQogICAgICAgICBsb2NhbENvbm5lY3Rpb24uYWRkSWNlQ2Fu
ZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSkudGhlbihvbkFkZEljZUNhbmRpZGF0ZVN1Y2Nlc3MsIG9u
QWRkSWNlQ2FuZGlkYXRlRXJyb3IpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>