<?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>201302</bug_id>
          
          <creation_ts>2019-08-29 06:58:10 -0700</creation_ts>
          <short_desc>Abstract out LibWebRTCSocketClient so that rtc sockets can be implemented without libwebrtc sockets</short_desc>
          <delta_ts>2019-09-01 23:21:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1566211</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-29 06:58:10 -0700</bug_when>
    <thetext>Abstract out LibWebRTCSocketClient so that rtc sockets can be implemented without libwebrtc sockets</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566212</commentid>
    <comment_count>1</comment_count>
      <attachid>377579</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-29 07:02:04 -0700</bug_when>
    <thetext>Created attachment 377579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566229</commentid>
    <comment_count>2</comment_count>
      <attachid>377585</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-29 08:18:32 -0700</bug_when>
    <thetext>Created attachment 377585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566794</commentid>
    <comment_count>3</comment_count>
      <attachid>377585</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-30 13:44:10 -0700</bug_when>
    <thetext>Comment on attachment 377585
Patch

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

&gt; Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp:166
&gt; +std::unique_ptr&lt;NetworkRTCProvider::Socket&gt; NetworkRTCProvider::takeSocket(uint64_t identifier)

A trailing return type here would remove the need for an extra NetworkRTCProvider::

&gt; Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.h:74
&gt; +        enum class Type { UDP, ServerTCP, ClientTCP, ServerConnectionTCP };

What&apos;s the difference between &quot;ServerTCP&quot; and &quot;ServerConnectionTCP&quot;?  Should &quot;ServerTCP&quot; be &quot;ServerListeningTCP&quot;?
Also, these can all fit in a uint8_t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567065</commentid>
    <comment_count>4</comment_count>
      <attachid>377828</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-01 13:11:42 -0700</bug_when>
    <thetext>Created attachment 377828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567068</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-01 13:14:52 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 377585 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=377585&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp:166
&gt; &gt; +std::unique_ptr&lt;NetworkRTCProvider::Socket&gt; NetworkRTCProvider::takeSocket(uint64_t identifier)
&gt; 
&gt; A trailing return type here would remove the need for an extra
&gt; NetworkRTCProvider::

In that case I do not really mind the extra NetworkRTCProvider prefix.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.h:74
&gt; &gt; +        enum class Type { UDP, ServerTCP, ClientTCP, ServerConnectionTCP };
&gt; 
&gt; What&apos;s the difference between &quot;ServerTCP&quot; and &quot;ServerConnectionTCP&quot;?  Should
&gt; &quot;ServerTCP&quot; be &quot;ServerListeningTCP&quot;?

Right, the server TCP is listening and the ServerConnectionTCP is the connection created by a TCP client.
This matches more or less libwebrtc names.

&gt; Also, these can all fit in a uint8_t.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567129</commentid>
    <comment_count>6</comment_count>
      <attachid>377828</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-01 23:20:25 -0700</bug_when>
    <thetext>Comment on attachment 377828
Patch

Clearing flags on attachment: 377828

Committed r249376: &lt;https://trac.webkit.org/changeset/249376&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567130</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-01 23:20:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567131</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-01 23:21:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/54941595&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377579</attachid>
            <date>2019-08-29 07:02:04 -0700</date>
            <delta_ts>2019-08-29 08:18:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201302-20190829160202.patch</filename>
            <type>text/plain</type>
            <size>16863</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY3NzQyZDVhNWE1OGFlNDFm
MDdiYmUyNzg2YWQ4YTQwZWY3ZTcyNzguLjAwMjliY2Q0ODAwMjZlMjY5ZDZhN2EyZTRjNTRiNmE4
OTUzYjI0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTktMDgtMjkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFic3RyYWN0IG91dCBMaWJXZWJS
VENTb2NrZXRDbGllbnQgc28gdGhhdCBydGMgc29ja2V0cyBjYW4gYmUgaW1wbGVtZW50ZWQgd2l0
aG91dCBsaWJ3ZWJydGMgc29ja2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAxMzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50cm9kdWNlIFNvY2tldENsaWVudCB0byBiZSBhYmxlIHRvIGltcGxl
bWVudCBSVEMgc29ja2V0IHN1cHBvcnQgd2l0aCBub24gbGlid2VicnRjIEFQSQorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OnByb3h5SW5mb0Zyb21TZXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OndyYXBOZXdUQ1BDb25uZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjphZGRTb2NrZXQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OnRha2VTb2NrZXQpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6Om5ld0Nvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNsb3NlTGlzdGVuaW5nU29ja2V0cyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y2FsbFNvY2tldCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSVENTb2NrZXQ6OnNlbmRUbyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENTb2NrZXQ6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1NvY2tldDo6
c2V0T3B0aW9uKToKKwogMjAxOS0wOC0yOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgU2tpcCBmZXRjaCBldmVudCBkaXNwYXRjaGluZyBpZiBubyBmZXRjaCBl
dmVudCBoYW5kbGVyIGlzIGFkZGVkIGF0IHNjcmlwdCBldmFsdWF0aW9uIHRpbWUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENs
aWVudC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29j
a2V0Q2xpZW50LmgKaW5kZXggMjJhYmRlYzY5ZGIyNDVhNGNmOTgzZjI0N2IzOGY3MmQ5MDBhNmY1
Yi4uNGQ5ZDY3ZDM2MzkyOGMyNGFmYWI0NmZmNTkxNGEyMzZkNDhmNDk4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29j
a2V0Q2xpZW50LmgKQEAgLTI3LDQyICsyNywyOSBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAot
I2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CisjaW5jbHVkZSAiTmV0d29ya1JU
Q1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL2FzeW5jcGFja2V0c29ja2V0
Lmg+Ci0jaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3RoaXJkX3BhcnR5L3NpZ3Nsb3Qvc2lnc2xv
dC5oPgogCiBuYW1lc3BhY2UgcnRjIHsKIGNsYXNzIEFzeW5jUGFja2V0U29ja2V0OwotY2xhc3Mg
U29ja2V0QWRkcmVzczsKLXN0cnVjdCBQYWNrZXRPcHRpb25zOwogc3RydWN0IFNlbnRQYWNrZXQ7
CiB0eXBlZGVmIGludDY0X3QgUGFja2V0VGltZTsKIH0KIAotbmFtZXNwYWNlIFdlYkNvcmUgewot
Y2xhc3MgU2hhcmVkQnVmZmVyOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgTmV0
d29ya1JUQ1Byb3ZpZGVyOwotCi1jbGFzcyBMaWJXZWJSVENTb2NrZXRDbGllbnQgZmluYWwgOiBw
dWJsaWMgc2lnc2xvdDo6aGFzX3Nsb3RzPD4geworY2xhc3MgTGliV2ViUlRDU29ja2V0Q2xpZW50
IGZpbmFsIDogcHVibGljIE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0Q2xpZW50LCBwdWJsaWMg
c2lnc2xvdDo6aGFzX3Nsb3RzPD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIGVudW0gY2xhc3MgVHlwZSB7IFVEUCwgU2VydmVyVENQLCBDbGllbnRUQ1AsIFNl
cnZlckNvbm5lY3Rpb25UQ1AgfTsKLQogICAgIExpYldlYlJUQ1NvY2tldENsaWVudCh1aW50NjRf
dCBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpB
c3luY1BhY2tldFNvY2tldD4mJiwgVHlwZSk7CiAKLSAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlOyB9Ci0gICAgdm9pZCBjbG9zZSgpOwotCiBwcml2YXRlOgotICAgIGZyaWVu
ZCBjbGFzcyBOZXR3b3JrUlRDU29ja2V0OworICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBUeXBlIHR5cGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICB2b2lkIGNsb3NlKCkgZmluYWw7CiAKLSAgICB2
b2lkIHNldE9wdGlvbihpbnQgb3B0aW9uLCBpbnQgdmFsdWUpOwotICAgIHZvaWQgc2VuZFRvKGNv
bnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIGNv
bnN0IHJ0Yzo6UGFja2V0T3B0aW9ucyYpOworICAgIHZvaWQgc2V0T3B0aW9uKGludCBvcHRpb24s
IGludCB2YWx1ZSkgZmluYWw7CisgICAgdm9pZCBzZW5kVG8oY29uc3QgV2ViQ29yZTo6U2hhcmVk
QnVmZmVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgcnRjOjpQYWNrZXRPcHRp
b25zJikgZmluYWw7CiAKICAgICB2b2lkIHNpZ25hbFJlYWRQYWNrZXQocnRjOjpBc3luY1BhY2tl
dFNvY2tldCosIGNvbnN0IGNoYXIqLCBzaXplX3QsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYs
IGNvbnN0IHJ0Yzo6UGFja2V0VGltZSYpOwogICAgIHZvaWQgc2lnbmFsU2VudFBhY2tldChydGM6
OkFzeW5jUGFja2V0U29ja2V0KiwgY29uc3QgcnRjOjpTZW50UGFja2V0Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3Zp
ZGVyLmNwcAppbmRleCAxNWQ0NGQwYWQ5ZGIwZjNiMDU5OWUxYTMzZWZjZmRiODk2MWE2NWRlLi5i
NGRlNjE2NTZiYjI3Mzk1YzczY2ZlMjhhNTViMTYyNzQ4NWQwNzQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAKKyNpbmNsdWRl
ICJMaWJXZWJSVENTb2NrZXRDbGllbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJv
Y2Vzcy5oIgpAQCAtOTUsNyArOTYsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2xvc2Uo
KQogICAgIH0pOwogfQogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0KHVp
bnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0
PiYmIHNvY2tldCwgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpUeXBlIHR5cGUpCit2b2lkIE5ldHdv
cmtSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmIHNvY2tldCwgU29ja2V0Q2xpZW50OjpU
eXBlIHR5cGUpCiB7CiAgICAgaWYgKCFzb2NrZXQpIHsKICAgICAgICAgc2VuZEZyb21NYWluVGhy
ZWFkKFtpZGVudGlmaWVyLCBzaXplID0gbV9zb2NrZXRzLnNpemUoKV0oSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uKSB7CkBAIC0xMTEsNyArMTEyLDcgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlk
ZXI6OmNyZWF0ZVVEUFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3Jr
OjoKIHsKICAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBhZGRy
ZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KGFkZHJlc3MudmFsdWUpLCBtaW5Qb3J0LCBt
YXhQb3J0XSgpIHsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQ+IHNvY2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZVVkcFNvY2tldChhZGRyZXNz
LCBtaW5Qb3J0LCBtYXhQb3J0KSk7Ci0gICAgICAgIGNyZWF0ZVNvY2tldChpZGVudGlmaWVyLCBX
VEZNb3ZlKHNvY2tldCksIExpYldlYlJUQ1NvY2tldENsaWVudDo6VHlwZTo6VURQKTsKKyAgICAg
ICAgY3JlYXRlU29ja2V0KGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0KSwgU29ja2V0Q2xpZW50
OjpUeXBlOjpVRFApOwogICAgIH0pOwogfQogCkBAIC0xMjUsNyArMTI2LDcgQEAgdm9pZCBOZXR3
b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVy
LCBjb25zdCBSVENOZXQKIAogICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50
aWZpZXIsIGFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkoYWRkcmVzcy52YWx1ZSks
IG1pblBvcnQsIG1heFBvcnQsIG9wdGlvbnNdKCkgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0U29ja2V0RmFjdG9yeS0+Q3Jl
YXRlU2VydmVyVGNwU29ja2V0KGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQsIG9wdGlvbnMpKTsK
LSAgICAgICAgY3JlYXRlU29ja2V0KGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0KSwgTGliV2Vi
UlRDU29ja2V0Q2xpZW50OjpUeXBlOjpTZXJ2ZXJUQ1ApOworICAgICAgICBjcmVhdGVTb2NrZXQo
aWRlbnRpZmllciwgV1RGTW92ZShzb2NrZXQpLCBTb2NrZXRDbGllbnQ6OlR5cGU6OlNlcnZlclRD
UCk7CiAgICAgfSk7CiB9CiAKQEAgLTEzNCw3ICsxMzUsNiBAQCBydGM6OlByb3h5SW5mbyBOZXR3
b3JrUlRDUHJvdmlkZXI6OnByb3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNv
Y2tldAogewogICAgIHJldHVybiB7IH07CiB9Ci0jZW5kaWYKIAogdm9pZCBOZXR3b3JrUlRDUHJv
dmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
U3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKIHsKQEAgLTE0NSwyOSArMTQ1LDMwIEBA
IHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3Qg
aWRlbnRpZmllciwgY29uc3QgUlRDTmV0CiAgICAgfQogICAgIGNhbGxPblJUQ05ldHdvcmtUaHJl
YWQoW3RoaXMsIGlkZW50aWZpZXIsIGxvY2FsQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVk
Q29weShsb2NhbEFkZHJlc3MudmFsdWUpLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNv
bGF0ZWRDb3B5KHJlbW90ZUFkZHJlc3MudmFsdWUpLCBwcm94eUluZm8gPSBwcm94eUluZm9Gcm9t
U2Vzc2lvbihyZW1vdGVBZGRyZXNzLCAqc2Vzc2lvbiksIHVzZXJBZ2VudCA9IFdURk1vdmUodXNl
ckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9uc10oKSB7CiAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQobV9wYWNrZXRTb2NrZXRGYWN0b3J5
LT5DcmVhdGVDbGllbnRUY3BTb2NrZXQobG9jYWxBZGRyZXNzLCByZW1vdGVBZGRyZXNzLCBwcm94
eUluZm8sIHVzZXJBZ2VudC51dGY4KCkuZGF0YSgpLCBvcHRpb25zKSk7Ci0gICAgICAgIGNyZWF0
ZVNvY2tldChpZGVudGlmaWVyLCBXVEZNb3ZlKHNvY2tldCksIExpYldlYlJUQ1NvY2tldENsaWVu
dDo6VHlwZTo6Q2xpZW50VENQKTsKKyAgICAgICAgY3JlYXRlU29ja2V0KGlkZW50aWZpZXIsIFdU
Rk1vdmUoc29ja2V0KSwgU29ja2V0Q2xpZW50OjpUeXBlOjpDbGllbnRUQ1ApOwogICAgIH0pOwog
fQorI2VuZGlmCiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlv
bih1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRp
ZmllcikKIHsKICAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBu
ZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcl0oKSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQgPSBtX3BlbmRpbmdJbmNvbWluZ1NvY2tl
dHMudGFrZShuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcik7Ci0gICAgICAgIGFkZFNvY2tl
dChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldENsaWVudD4oaWRlbnRpZmll
ciwgKnRoaXMsIFdURk1vdmUoc29ja2V0KSwgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpUeXBlOjpT
ZXJ2ZXJDb25uZWN0aW9uVENQKSk7CisgICAgICAgIGFkZFNvY2tldChpZGVudGlmaWVyLCBtYWtl
VW5pcXVlPExpYldlYlJUQ1NvY2tldENsaWVudD4oaWRlbnRpZmllciwgKnRoaXMsIFdURk1vdmUo
c29ja2V0KSwgU29ja2V0Q2xpZW50OjpUeXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQKSk7CiAgICAg
fSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjphZGRTb2NrZXQodWludDY0X3QgaWRl
bnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1NvY2tldENsaWVudD4mJiBzb2NrZXQp
Cit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6YWRkU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXRDbGllbnQ+JiYgc29ja2V0KQogewogICAgIG1fc29ja2V0
cy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShzb2NrZXQpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRy
PExpYldlYlJUQ1NvY2tldENsaWVudD4gTmV0d29ya1JUQ1Byb3ZpZGVyOjp0YWtlU29ja2V0KHVp
bnQ2NF90IGlkZW50aWZpZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpT
b2NrZXRDbGllbnQ+IE5ldHdvcmtSVENQcm92aWRlcjo6dGFrZVNvY2tldCh1aW50NjRfdCBpZGVu
dGlmaWVyKQogewogICAgIHJldHVybiBtX3NvY2tldHMudGFrZShpZGVudGlmaWVyKTsKIH0KIAot
dm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6Om5ld0Nvbm5lY3Rpb24oTGliV2ViUlRDU29ja2V0Q2xp
ZW50JiBzZXJ2ZXJTb2NrZXQsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0
PiYmIG5ld1NvY2tldCkKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpuZXdDb25uZWN0aW9uKFNv
Y2tldENsaWVudCYgc2VydmVyU29ja2V0LCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tl
dFNvY2tldD4mJiBuZXdTb2NrZXQpCiB7CiAgICAgc2VuZEZyb21NYWluVGhyZWFkKFtpZGVudGlm
aWVyID0gc2VydmVyU29ja2V0LmlkZW50aWZpZXIoKSwgaW5jb21pbmdTb2NrZXRJZGVudGlmaWVy
ID0gKyttX2luY29taW5nU29ja2V0SWRlbnRpZmllciwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdv
cms6Omlzb2xhdGVkQ29weShuZXdTb2NrZXQtPkdldFJlbW90ZUFkZHJlc3MoKSldKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6
OldlYlJUQ1NvY2tldDo6U2lnbmFsTmV3Q29ubmVjdGlvbihpbmNvbWluZ1NvY2tldElkZW50aWZp
ZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcykpLCBpZGVudGlmaWVy
KTsKQEAgLTI0Niw3ICsyNDcsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2xvc2VMaXN0
ZW5pbmdTb2NrZXRzKEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZAogICAgIGNhbGxP
blJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIFZlY3Rvcjx1aW50NjRfdD4gbGlz
dGVuaW5nU29ja2V0SWRlbnRpZmllcnM7CiAgICAgICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBt
X3NvY2tldHMpIHsKLSAgICAgICAgICAgIGlmIChrZXlWYWx1ZS52YWx1ZS0+dHlwZSgpID09IExp
YldlYlJUQ1NvY2tldENsaWVudDo6VHlwZTo6U2VydmVyVENQKQorICAgICAgICAgICAgaWYgKGtl
eVZhbHVlLnZhbHVlLT50eXBlKCkgPT0gU29ja2V0Q2xpZW50OjpUeXBlOjpTZXJ2ZXJUQ1ApCiAg
ICAgICAgICAgICAgICAgbGlzdGVuaW5nU29ja2V0SWRlbnRpZmllcnMuYXBwZW5kKGtleVZhbHVl
LmtleSk7CiAgICAgICAgIH0KICAgICAgICAgZm9yIChhdXRvIGlkIDogbGlzdGVuaW5nU29ja2V0
SWRlbnRpZmllcnMpCkBAIC0yODQsNyArMjg1LDcgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6
OmNhbGxPblJUQ05ldHdvcmtUaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogICAg
IG1fcnRjTmV0d29ya1RocmVhZC0+UG9zdChSVENfRlJPTV9IRVJFLCB0aGlzLCAxLCBuZXcgTmV0
d29ya01lc3NhZ2VEYXRhKCp0aGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpOwogfQogCi12b2lkIE5l
dHdvcmtSVENQcm92aWRlcjo6Y2FsbFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBGdW5jdGlv
bjx2b2lkKExpYldlYlJUQ1NvY2tldENsaWVudCYpPiYmIGNhbGxiYWNrKQordm9pZCBOZXR3b3Jr
UlRDUHJvdmlkZXI6OmNhbGxTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgRnVuY3Rpb248dm9p
ZChTb2NrZXRDbGllbnQmKT4mJiBjYWxsYmFjaykKIHsKICAgICBjYWxsT25SVENOZXR3b3JrVGhy
ZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIHsK
ICAgICAgICAgaWYgKGF1dG8qIHNvY2tldCA9IG1fc29ja2V0cy5nZXQoaWRlbnRpZmllcikpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtS
VENQcm92aWRlci5oCmluZGV4IDMyY2E2YzJkMmVjNGExM2IzMDYxNDE5NTQwYjY4ZjUxNGJmNzkw
YmMuLmE3NWQzNzU4ZTg5NGYzZmY2NzkwMjdhNmMzOTdiMGE1ZTZiN2NhYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92
aWRlci5oCkBAIC0yNyw3ICsyNyw2IEBACiAKICNpZiBVU0UoTElCV0VCUlRDKQogCi0jaW5jbHVk
ZSAiTGliV2ViUlRDU29ja2V0Q2xpZW50LmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ01vbml0b3Iu
aCIKICNpbmNsdWRlICJSVENOZXR3b3JrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENN
YWNyb3MuaD4KQEAgLTQ0LDYgKzQzLDE1IEBAIGNsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBEZWNv
ZGVyOwogfQogCituYW1lc3BhY2UgcnRjIHsKK2NsYXNzIFNvY2tldEFkZHJlc3M7CitzdHJ1Y3Qg
UGFja2V0T3B0aW9uczsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2hhcmVkQnVm
ZmVyOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOwogY2xhc3MgTmV0d29ya1JUQ1Jlc29sdmVyOwpAQCAtNTksMTYgKzY3LDI5IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUlRDTW9uaXRvck1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgbV9ydGNN
b25pdG9yLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CiAgICAgdm9p
ZCBkaWRSZWNlaXZlTmV0d29ya1JUQ1NvY2tldE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDU29ja2V0Q2xpZW50
PiB0YWtlU29ja2V0KHVpbnQ2NF90KTsKKyAgICBjbGFzcyBTb2NrZXRDbGllbnQgeworICAgIHB1
YmxpYzoKKyAgICAgICAgdmlydHVhbCB+U29ja2V0Q2xpZW50KCkgPSBkZWZhdWx0OworCisgICAg
ICAgIGVudW0gY2xhc3MgVHlwZSB7IFVEUCwgU2VydmVyVENQLCBDbGllbnRUQ1AsIFNlcnZlckNv
bm5lY3Rpb25UQ1AgfTsKKyAgICAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCAgPSAwOwor
ICAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCA9IDA7CisKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0T3B0
aW9uKGludCBvcHRpb24sIGludCB2YWx1ZSkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2Vu
ZFRvKGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYsIGNvbnN0IHJ0Yzo6UGFja2V0T3B0aW9ucyYpID0gMDsKKyAgICB9OworCisgICAgc3RkOjp1
bmlxdWVfcHRyPFNvY2tldENsaWVudD4gdGFrZVNvY2tldCh1aW50NjRfdCk7CiAgICAgdm9pZCBy
ZXNvbHZlckRvbmUodWludDY0X3QpOwogCiAgICAgdm9pZCBjbG9zZSgpOwogCi0gICAgdm9pZCBj
YWxsU29ja2V0KHVpbnQ2NF90LCBGdW5jdGlvbjx2b2lkKExpYldlYlJUQ1NvY2tldENsaWVudCYp
PiYmKTsKKyAgICB2b2lkIGNhbGxTb2NrZXQodWludDY0X3QsIEZ1bmN0aW9uPHZvaWQoU29ja2V0
Q2xpZW50Jik+JiYpOwogICAgIHZvaWQgY2FsbE9uUlRDTmV0d29ya1RocmVhZChGdW5jdGlvbjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2VuZEZyb21NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBD
OjpDb25uZWN0aW9uJik+JiYpOwogCi0gICAgdm9pZCBuZXdDb25uZWN0aW9uKExpYldlYlJUQ1Nv
Y2tldENsaWVudCYsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmKTsK
KyAgICB2b2lkIG5ld0Nvbm5lY3Rpb24oU29ja2V0Q2xpZW50Jiwgc3RkOjp1bmlxdWVfcHRyPHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYpOwogCiAgICAgdm9pZCBjbG9zZUxpc3RlbmluZ1NvY2tl
dHMoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lkIGF1dGhvcml6ZUxpc3RlbmluZ1NvY2tl
dHMoKSB7IG1faXNMaXN0ZW5pbmdTb2NrZXRBdXRob3JpemVkID0gdHJ1ZTsgfQpAQCAtODQsMTYg
KzEwNSwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlUmVzb2x2ZXIodWludDY0X3QsIGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgc3RvcFJlc29sdmVyKHVpbnQ2NF90KTsKIAotICAgIHZv
aWQgYWRkU29ja2V0KHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDU29ja2V0Q2xp
ZW50PiYmKTsKKyAgICB2b2lkIGFkZFNvY2tldCh1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFNv
Y2tldENsaWVudD4mJik7CiAKLSAgICB2b2lkIGNyZWF0ZVNvY2tldCh1aW50NjRfdCBpZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiwgTGliV2ViUlRD
U29ja2V0Q2xpZW50OjpUeXBlKTsKKyAgICB2b2lkIGNyZWF0ZVNvY2tldCh1aW50NjRfdCBpZGVu
dGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiwgU29ja2V0
Q2xpZW50OjpUeXBlKTsKIAogICAgIHZvaWQgT25NZXNzYWdlKHJ0Yzo6TWVzc2FnZSopOwogCiAg
ICAgc3RhdGljIHJ0Yzo6UHJveHlJbmZvIHByb3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MmLCBOZXR3b3JrU2Vzc2lvbiYpOwogCiAgICAgSGFzaE1hcDx1
aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENSZXNvbHZlcj4+IG1fcmVzb2x2ZXJz
OwotICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENTb2NrZXRD
bGllbnQ+PiBtX3NvY2tldHM7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRy
PFNvY2tldENsaWVudD4+IG1fc29ja2V0czsKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyogbV9jb25uZWN0aW9uOwogICAgIGJvb2wgbV9pc1N0YXJ0ZWQgeyB0cnVlIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtS
VENQcm92aWRlci5tbQppbmRleCBmNjU2Y2FlOTEzMjNjOGUyYThlMjVkNjQxMTc2NWRjMjU0ZDRj
MjA1Li5jODUxYTM1MDI2MTZhYmM0NTViMjJmMDg4NWVlOTdkODk5ZWIyMTM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1By
b3ZpZGVyLm1tCkBAIC0yOCw3ICsyOCwxMCBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAorI2lu
Y2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3MuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNvY29hLmgiCisjaW5jbHVkZSAi
V2ViUlRDU29ja2V0TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jv
cy5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9hc3luY3BhY2tldHNvY2tldC5oPgogI2lu
Y2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9sb2dnaW5nLmg+CkBAIC04OSw2ICs5MiwxOSBAQCBydGM6
OlByb3h5SW5mbyBOZXR3b3JrUlRDUHJvdmlkZXI6OnByb3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0
IFJUQ05ldHdvcms6OlNvY2tldAogICAgIHJldHVybiB7IH07CiB9CiAKK3ZvaWQgTmV0d29ya1JU
Q1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29u
c3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCit7CisgICAgYXV0byogc2Vzc2lv
biA9IG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9u
SUQpOworICAgIGlmICghc2Vzc2lvbikgeworICAgICAgICBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJSVENTb2NrZXQ6OlNpZ25hbENsb3NlKDEpLCBpZGVudGlm
aWVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFk
KFt0aGlzLCBpZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENv
cHkobG9jYWxBZGRyZXNzLnZhbHVlKSwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xh
dGVkQ29weShyZW1vdGVBZGRyZXNzLnZhbHVlKSwgcHJveHlJbmZvID0gcHJveHlJbmZvRnJvbVNl
c3Npb24ocmVtb3RlQWRkcmVzcywgKnNlc3Npb24pLCB1c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJB
Z2VudCkuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnNdKCkgeworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0U29ja2V0RmFjdG9yeS0+
Q3JlYXRlQ2xpZW50VGNwU29ja2V0KGxvY2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcywgcHJveHlJ
bmZvLCB1c2VyQWdlbnQudXRmOCgpLmRhdGEoKSwgb3B0aW9ucykpOworICAgICAgICBjcmVhdGVT
b2NrZXQoaWRlbnRpZmllciwgV1RGTW92ZShzb2NrZXQpLCBTb2NrZXRDbGllbnQ6OlR5cGU6OkNs
aWVudFRDUCk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHAKaW5kZXggNTg2N2E3NmQzZTJiYWY2OGM1
MjM1ODA4Mjk5YWUzZTBhMGVjNTU2YS4uZDY0NmE5MWZiYTU2YzU3YTAzZDIzMjJmZmI1YjAwYmQz
ZWUxMjRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMv
TmV0d29ya1JUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBVU0UoTElC
V0VCUlRDKQogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgotI2luY2x1ZGUgIkxpYldlYlJU
Q1NvY2tldENsaWVudC5oIgogI2luY2x1ZGUgIk5ldHdvcmtSVENQcm92aWRlci5oIgogI2luY2x1
ZGUgIlJUQ1BhY2tldE9wdGlvbnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5o
PgpAQCAtNDYsMjEgKzQ1LDIxIEBAIE5ldHdvcmtSVENTb2NrZXQ6Ok5ldHdvcmtSVENTb2NrZXQo
dWludDY0X3QgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQCiB2b2lkIE5ldHdv
cmtSVENTb2NrZXQ6OnNlbmRUbyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MmJiBzb2NrZXRBZGRyZXNzLCBSVENQYWNrZXRPcHRpb25zJiYg
b3B0aW9ucykKIHsKICAgICBhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7Ci0gICAgbV9ydGNQcm92aWRlci5jYWxsU29j
a2V0KG1faWRlbnRpZmllciwgW2J1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgc29ja2V0QWRkcmVz
cyA9IFdURk1vdmUoc29ja2V0QWRkcmVzcyksIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMub3B0
aW9ucyldKExpYldlYlJUQ1NvY2tldENsaWVudCYgY2xpZW50KSB7CisgICAgbV9ydGNQcm92aWRl
ci5jYWxsU29ja2V0KG1faWRlbnRpZmllciwgW2J1ZmZlciA9IFdURk1vdmUoYnVmZmVyKSwgc29j
a2V0QWRkcmVzcyA9IFdURk1vdmUoc29ja2V0QWRkcmVzcyksIG9wdGlvbnMgPSBXVEZNb3ZlKG9w
dGlvbnMub3B0aW9ucyldKGF1dG8mIGNsaWVudCkgewogICAgICAgICBjbGllbnQuc2VuZFRvKGJ1
ZmZlci5nZXQoKSwgc29ja2V0QWRkcmVzcy52YWx1ZSwgb3B0aW9ucyk7CiAgICAgfSk7CiB9CiAK
IHZvaWQgTmV0d29ya1JUQ1NvY2tldDo6Y2xvc2UoKQogewotICAgIG1fcnRjUHJvdmlkZXIuY2Fs
bFNvY2tldChtX2lkZW50aWZpZXIsIFtdKExpYldlYlJUQ1NvY2tldENsaWVudCYgc29ja2V0KSB7
CisgICAgbV9ydGNQcm92aWRlci5jYWxsU29ja2V0KG1faWRlbnRpZmllciwgW10oYXV0byYgc29j
a2V0KSB7CiAgICAgICAgIHNvY2tldC5jbG9zZSgpOwogICAgIH0pOwogfQogICAgIAogdm9pZCBO
ZXR3b3JrUlRDU29ja2V0OjpzZXRPcHRpb24oaW50IG9wdGlvbiwgaW50IHZhbHVlKQogewotICAg
IG1fcnRjUHJvdmlkZXIuY2FsbFNvY2tldChtX2lkZW50aWZpZXIsIFtvcHRpb24sIHZhbHVlXShM
aWJXZWJSVENTb2NrZXRDbGllbnQmIHNvY2tldCkgeworICAgIG1fcnRjUHJvdmlkZXIuY2FsbFNv
Y2tldChtX2lkZW50aWZpZXIsIFtvcHRpb24sIHZhbHVlXShhdXRvJiBzb2NrZXQpIHsKICAgICAg
ICAgc29ja2V0LnNldE9wdGlvbihvcHRpb24sIHZhbHVlKTsKICAgICB9KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377585</attachid>
            <date>2019-08-29 08:18:32 -0700</date>
            <delta_ts>2019-09-01 13:11:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201302-20190829171831.patch</filename>
            <type>text/plain</type>
            <size>14611</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY3NzQyZDVhNWE1OGFlNDFm
MDdiYmUyNzg2YWQ4YTQwZWY3ZTcyNzguLmU0MzFiZGNmOGMxOTY5NGU3MDJiYWVlZjY5NGYwNTU1
NzU5NTRiMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTktMDgtMjkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFic3RyYWN0IG91dCBMaWJXZWJS
VENTb2NrZXRDbGllbnQgc28gdGhhdCBydGMgc29ja2V0cyBjYW4gYmUgaW1wbGVtZW50ZWQgd2l0
aG91dCBsaWJ3ZWJydGMgc29ja2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAxMzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50cm9kdWNlIE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0IHRvIGJl
IGFibGUgdG8gaW1wbGVtZW50IFJUQyBzb2NrZXQgc3VwcG9ydCB3aXRoIG5vbiBsaWJ3ZWJydGMg
QVBJCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xp
ZW50Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNv
Y2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6cHJveHlJbmZvRnJv
bVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNs
aWVudFRDUFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6d3Jh
cE5ld1RDUENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6
OmFkZFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6dGFrZVNv
Y2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6bmV3Q29ubmVjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y2xvc2VMaXN0ZW5pbmdT
b2NrZXRzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjYWxsU29ja2V0
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tbToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2Nr
ZXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1NvY2tldDo6c2VuZFRvKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1JUQ1NvY2tldDo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUlRDU29ja2V0OjpzZXRPcHRpb24pOgorCiAyMDE5LTA4LTI5ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTa2lwIGZldGNoIGV2ZW50IGRpc3BhdGNoaW5n
IGlmIG5vIGZldGNoIGV2ZW50IGhhbmRsZXIgaXMgYWRkZWQgYXQgc2NyaXB0IGV2YWx1YXRpb24g
dGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGli
V2ViUlRDU29ja2V0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaAppbmRleCAyMmFiZGVjNjlkYjI0NWE0Y2Y5ODNmMjQ3
YjM4ZjcyZDkwMGE2ZjViLi4yNWFhNTRhZmE3ZDc2ZmE5NDU2YWZiYjhjYzQxZDExNmFiYWZjODZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJS
VENTb2NrZXRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaApAQCAtMjcsNDIgKzI3LDI5IEBACiAKICNpZiBVU0Uo
TElCV0VCUlRDKQogCi0jaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNpbmNs
dWRlICJOZXR3b3JrUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvYXN5
bmNwYWNrZXRzb2NrZXQuaD4KLSNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvdGhpcmRfcGFydHkv
c2lnc2xvdC9zaWdzbG90Lmg+CiAKIG5hbWVzcGFjZSBydGMgewogY2xhc3MgQXN5bmNQYWNrZXRT
b2NrZXQ7Ci1jbGFzcyBTb2NrZXRBZGRyZXNzOwotc3RydWN0IFBhY2tldE9wdGlvbnM7CiBzdHJ1
Y3QgU2VudFBhY2tldDsKIHR5cGVkZWYgaW50NjRfdCBQYWNrZXRUaW1lOwogfQogCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci1jbGFzcyBTaGFyZWRCdWZmZXI7Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi1jbGFzcyBOZXR3b3JrUlRDUHJvdmlkZXI7Ci0KLWNsYXNzIExpYldlYlJUQ1NvY2tldENs
aWVudCBmaW5hbCA6IHB1YmxpYyBzaWdzbG90OjpoYXNfc2xvdHM8PiB7CitjbGFzcyBMaWJXZWJS
VENTb2NrZXRDbGllbnQgZmluYWwgOiBwdWJsaWMgTmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQs
IHB1YmxpYyBzaWdzbG90OjpoYXNfc2xvdHM8PiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBUeXBlIHsgVURQLCBTZXJ2ZXJUQ1AsIENsaWVu
dFRDUCwgU2VydmVyQ29ubmVjdGlvblRDUCB9OwotCiAgICAgTGliV2ViUlRDU29ja2V0Q2xpZW50
KHVpbnQ2NF90IGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIHN0ZDo6dW5pcXVlX3B0
cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBUeXBlKTsKIAotICAgIHVpbnQ2NF90IGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLSAgICBUeXBlIHR5cGUoKSBj
b25zdCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICB2b2lkIGNsb3NlKCk7Ci0KIHByaXZhdGU6Ci0g
ICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtSVENTb2NrZXQ7CisgICAgdWludDY0X3QgaWRlbnRpZmll
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIFR5cGUgdHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdHlwZTsgfQorICAgIHZvaWQgY2xvc2UoKSBmaW5hbDsK
IAotICAgIHZvaWQgc2V0T3B0aW9uKGludCBvcHRpb24sIGludCB2YWx1ZSk7Ci0gICAgdm9pZCBz
ZW5kVG8oY29uc3QgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiwgY29uc3QgcnRjOjpQYWNrZXRPcHRpb25zJik7CisgICAgdm9pZCBzZXRPcHRpb24oaW50
IG9wdGlvbiwgaW50IHZhbHVlKSBmaW5hbDsKKyAgICB2b2lkIHNlbmRUbyhjb25zdCBXZWJDb3Jl
OjpTaGFyZWRCdWZmZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBydGM6OlBh
Y2tldE9wdGlvbnMmKSBmaW5hbDsKIAogICAgIHZvaWQgc2lnbmFsUmVhZFBhY2tldChydGM6OkFz
eW5jUGFja2V0U29ja2V0KiwgY29uc3QgY2hhciosIHNpemVfdCwgY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiwgY29uc3QgcnRjOjpQYWNrZXRUaW1lJik7CiAgICAgdm9pZCBzaWduYWxTZW50UGFj
a2V0KHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqLCBjb25zdCBydGM6OlNlbnRQYWNrZXQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUHJvdmlkZXIuY3BwCmluZGV4IDE1ZDQ0ZDBhZDlkYjBmM2IwNTk5ZTFhMzNlZmNmZGI4OTYx
YTY1ZGUuLjY2NTkwZjExODQxNzFlZGU0NDc3YWZiZGVjODA4ZWUwMzY1NWM4Y2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q1Byb3ZpZGVyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAor
I2luY2x1ZGUgIkxpYldlYlJUQ1NvY2tldENsaWVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzLmgiCkBAIC05NSw3ICs5Niw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVy
OjpjbG9zZSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVT
b2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQ+JiYgc29ja2V0LCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OlR5cGUgdHlwZSkKK3Zv
aWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwg
c3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYgc29ja2V0LCBTb2NrZXQ6
OlR5cGUgdHlwZSkKIHsKICAgICBpZiAoIXNvY2tldCkgewogICAgICAgICBzZW5kRnJvbU1haW5U
aHJlYWQoW2lkZW50aWZpZXIsIHNpemUgPSBtX3NvY2tldHMuc2l6ZSgpXShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24pIHsKQEAgLTExMSw3ICsxMTIsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92
aWRlcjo6Y3JlYXRlVURQU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdv
cms6OgogewogICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIGFk
ZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkoYWRkcmVzcy52YWx1ZSksIG1pblBvcnQs
IG1heFBvcnRdKCkgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNv
Y2tldD4gc29ja2V0KG1fcGFja2V0U29ja2V0RmFjdG9yeS0+Q3JlYXRlVWRwU29ja2V0KGFkZHJl
c3MsIG1pblBvcnQsIG1heFBvcnQpKTsKLSAgICAgICAgY3JlYXRlU29ja2V0KGlkZW50aWZpZXIs
IFdURk1vdmUoc29ja2V0KSwgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpUeXBlOjpVRFApOworICAg
ICAgICBjcmVhdGVTb2NrZXQoaWRlbnRpZmllciwgV1RGTW92ZShzb2NrZXQpLCBTb2NrZXQ6OlR5
cGU6OlVEUCk7CiAgICAgfSk7CiB9CiAKQEAgLTEyNSw3ICsxMjYsNyBAQCB2b2lkIE5ldHdvcmtS
VENQcm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNv
bnN0IFJUQ05ldAogCiAgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmll
ciwgYWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShhZGRyZXNzLnZhbHVlKSwgbWlu
UG9ydCwgbWF4UG9ydCwgb3B0aW9uc10oKSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6
OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQobV9wYWNrZXRTb2NrZXRGYWN0b3J5LT5DcmVhdGVT
ZXJ2ZXJUY3BTb2NrZXQoYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9ucykpOwotICAg
ICAgICBjcmVhdGVTb2NrZXQoaWRlbnRpZmllciwgV1RGTW92ZShzb2NrZXQpLCBMaWJXZWJSVENT
b2NrZXRDbGllbnQ6OlR5cGU6OlNlcnZlclRDUCk7CisgICAgICAgIGNyZWF0ZVNvY2tldChpZGVu
dGlmaWVyLCBXVEZNb3ZlKHNvY2tldCksIFNvY2tldDo6VHlwZTo6U2VydmVyVENQKTsKICAgICB9
KTsKIH0KIApAQCAtMTQ1LDcgKzE0Niw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVh
dGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0CiAgICAg
fQogICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIGxvY2FsQWRk
cmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShsb2NhbEFkZHJlc3MudmFsdWUpLCByZW1v
dGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KHJlbW90ZUFkZHJlc3MudmFsdWUp
LCBwcm94eUluZm8gPSBwcm94eUluZm9Gcm9tU2Vzc2lvbihyZW1vdGVBZGRyZXNzLCAqc2Vzc2lv
biksIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9u
c10oKSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiBz
b2NrZXQobV9wYWNrZXRTb2NrZXRGYWN0b3J5LT5DcmVhdGVDbGllbnRUY3BTb2NrZXQobG9jYWxB
ZGRyZXNzLCByZW1vdGVBZGRyZXNzLCBwcm94eUluZm8sIHVzZXJBZ2VudC51dGY4KCkuZGF0YSgp
LCBvcHRpb25zKSk7Ci0gICAgICAgIGNyZWF0ZVNvY2tldChpZGVudGlmaWVyLCBXVEZNb3ZlKHNv
Y2tldCksIExpYldlYlJUQ1NvY2tldENsaWVudDo6VHlwZTo6Q2xpZW50VENQKTsKKyAgICAgICAg
Y3JlYXRlU29ja2V0KGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0KSwgU29ja2V0OjpUeXBlOjpD
bGllbnRUQ1ApOwogICAgIH0pOwogfQogCkBAIC0xNTMsMjEgKzE1NCwyMSBAQCB2b2lkIE5ldHdv
cmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24odWludDY0X3QgaWRlbnRpZmllciwg
dWludDY0X3QgbmV3QwogewogICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50
aWZpZXIsIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyXSgpIHsKICAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldCA9IG1fcGVuZGluZ0luY29t
aW5nU29ja2V0cy50YWtlKG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKTsKLSAgICAgICAg
YWRkU29ja2V0KGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0Q2xpZW50Pihp
ZGVudGlmaWVyLCAqdGhpcywgV1RGTW92ZShzb2NrZXQpLCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6
OlR5cGU6OlNlcnZlckNvbm5lY3Rpb25UQ1ApKTsKKyAgICAgICAgYWRkU29ja2V0KGlkZW50aWZp
ZXIsIG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0Q2xpZW50PihpZGVudGlmaWVyLCAqdGhpcywg
V1RGTW92ZShzb2NrZXQpLCBTb2NrZXQ6OlR5cGU6OlNlcnZlckNvbm5lY3Rpb25UQ1ApKTsKICAg
ICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNvY2tldCh1aW50NjRfdCBp
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDU29ja2V0Q2xpZW50PiYmIHNvY2tl
dCkKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjphZGRTb2NrZXQodWludDY0X3QgaWRlbnRpZmll
ciwgc3RkOjp1bmlxdWVfcHRyPFNvY2tldD4mJiBzb2NrZXQpCiB7CiAgICAgbV9zb2NrZXRzLmFk
ZChpZGVudGlmaWVyLCBXVEZNb3ZlKHNvY2tldCkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8TGli
V2ViUlRDU29ja2V0Q2xpZW50PiBOZXR3b3JrUlRDUHJvdmlkZXI6OnRha2VTb2NrZXQodWludDY0
X3QgaWRlbnRpZmllcikKK3N0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tl
dD4gTmV0d29ya1JUQ1Byb3ZpZGVyOjp0YWtlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIpCiB7
CiAgICAgcmV0dXJuIG1fc29ja2V0cy50YWtlKGlkZW50aWZpZXIpOwogfQogCi12b2lkIE5ldHdv
cmtSVENQcm92aWRlcjo6bmV3Q29ubmVjdGlvbihMaWJXZWJSVENTb2NrZXRDbGllbnQmIHNlcnZl
clNvY2tldCwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYgbmV3U29j
a2V0KQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6Om5ld0Nvbm5lY3Rpb24oU29ja2V0JiBzZXJ2
ZXJTb2NrZXQsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmIG5ld1Nv
Y2tldCkKIHsKICAgICBzZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzZXJ2ZXJTb2Nr
ZXQuaWRlbnRpZmllcigpLCBpbmNvbWluZ1NvY2tldElkZW50aWZpZXIgPSArK21faW5jb21pbmdT
b2NrZXRJZGVudGlmaWVyLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5
KG5ld1NvY2tldC0+R2V0UmVtb3RlQWRkcmVzcygpKV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2ViUlRDU29ja2V0OjpT
aWduYWxOZXdDb25uZWN0aW9uKGluY29taW5nU29ja2V0SWRlbnRpZmllciwgUlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyhyZW1vdGVBZGRyZXNzKSksIGlkZW50aWZpZXIpOwpAQCAtMjQ2LDcgKzI0
Nyw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZUxpc3RlbmluZ1NvY2tldHMoRnVu
Y3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kCiAgICAgY2FsbE9uUlRDTmV0d29ya1RocmVh
ZChbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgVmVjdG9yPHVpbnQ2NF90PiBsaXN0ZW5pbmdTb2NrZXRJZGVu
dGlmaWVyczsKICAgICAgICAgZm9yIChhdXRvJiBrZXlWYWx1ZSA6IG1fc29ja2V0cykgewotICAg
ICAgICAgICAgaWYgKGtleVZhbHVlLnZhbHVlLT50eXBlKCkgPT0gTGliV2ViUlRDU29ja2V0Q2xp
ZW50OjpUeXBlOjpTZXJ2ZXJUQ1ApCisgICAgICAgICAgICBpZiAoa2V5VmFsdWUudmFsdWUtPnR5
cGUoKSA9PSBTb2NrZXQ6OlR5cGU6OlNlcnZlclRDUCkKICAgICAgICAgICAgICAgICBsaXN0ZW5p
bmdTb2NrZXRJZGVudGlmaWVycy5hcHBlbmQoa2V5VmFsdWUua2V5KTsKICAgICAgICAgfQogICAg
ICAgICBmb3IgKGF1dG8gaWQgOiBsaXN0ZW5pbmdTb2NrZXRJZGVudGlmaWVycykKQEAgLTI4NCw3
ICsyODUsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2FsbE9uUlRDTmV0d29ya1RocmVh
ZChGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAgICAgbV9ydGNOZXR3b3JrVGhyZWFkLT5Q
b3N0KFJUQ19GUk9NX0hFUkUsIHRoaXMsIDEsIG5ldyBOZXR3b3JrTWVzc2FnZURhdGEoKnRoaXMs
IFdURk1vdmUoY2FsbGJhY2spKSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjYWxs
U29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoTGliV2ViUlRDU29ja2V0
Q2xpZW50Jik+JiYgY2FsbGJhY2spCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2FsbFNvY2tl
dCh1aW50NjRfdCBpZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKFNvY2tldCYpPiYmIGNhbGxiYWNr
KQogewogICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgewogICAgICAgICBpZiAoYXV0byogc29ja2V0ID0g
bV9zb2NrZXRzLmdldChpZGVudGlmaWVyKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKaW5kZXggMzJjYTZjMmQy
ZWM0YTEzYjMwNjE0MTk1NDBiNjhmNTE0YmY3OTBiYy4uMTU0NWMwM2UwNWJkMjdkNjUwMDNiODRh
NjJkOTNkMjI1NTJmYTg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKQEAgLTI3LDcgKzI3LDYgQEAKIAog
I2lmIFVTRShMSUJXRUJSVEMpCiAKLSNpbmNsdWRlICJMaWJXZWJSVENTb2NrZXRDbGllbnQuaCIK
ICNpbmNsdWRlICJOZXR3b3JrUlRDTW9uaXRvci5oIgogI2luY2x1ZGUgIlJUQ05ldHdvcmsuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgpAQCAtNDQsNiArNDMsMTUgQEAg
Y2xhc3MgQ29ubmVjdGlvbjsKIGNsYXNzIERlY29kZXI7CiB9CiAKK25hbWVzcGFjZSBydGMgewor
Y2xhc3MgU29ja2V0QWRkcmVzczsKK3N0cnVjdCBQYWNrZXRPcHRpb25zOworfQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBTaGFyZWRCdWZmZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogY2xhc3MgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiBjbGFzcyBOZXR3b3JrUlRD
UmVzb2x2ZXI7CkBAIC01OSwxNiArNjcsMjkgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2
ZU5ldHdvcmtSVENNb25pdG9yTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikgeyBtX3J0Y01vbml0b3IuZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2Rlcik7IH0KICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUlRDU29ja2V0
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAotICAgIHN0ZDo6dW5p
cXVlX3B0cjxMaWJXZWJSVENTb2NrZXRDbGllbnQ+IHRha2VTb2NrZXQodWludDY0X3QpOworICAg
IGNsYXNzIFNvY2tldCB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5Tb2NrZXQoKSA9
IGRlZmF1bHQ7CisKKyAgICAgICAgZW51bSBjbGFzcyBUeXBlIHsgVURQLCBTZXJ2ZXJUQ1AsIENs
aWVudFRDUCwgU2VydmVyQ29ubmVjdGlvblRDUCB9OworICAgICAgICB2aXJ0dWFsIFR5cGUgdHlw
ZSgpIGNvbnN0ICA9IDA7CisgICAgICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNv
bnN0ID0gMDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlvbiwgaW50IHZhbHVlKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBzZW5kVG8oY29uc3QgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiwgY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgcnRjOjpQYWNrZXRPcHRpb25zJikgPSAwOworICAg
IH07CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0PiB0YWtlU29ja2V0KHVpbnQ2NF90KTsK
ICAgICB2b2lkIHJlc29sdmVyRG9uZSh1aW50NjRfdCk7CiAKICAgICB2b2lkIGNsb3NlKCk7CiAK
LSAgICB2b2lkIGNhbGxTb2NrZXQodWludDY0X3QsIEZ1bmN0aW9uPHZvaWQoTGliV2ViUlRDU29j
a2V0Q2xpZW50Jik+JiYpOworICAgIHZvaWQgY2FsbFNvY2tldCh1aW50NjRfdCwgRnVuY3Rpb248
dm9pZChTb2NrZXQmKT4mJik7CiAgICAgdm9pZCBjYWxsT25SVENOZXR3b3JrVGhyZWFkKEZ1bmN0
aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZW5kRnJvbU1haW5UaHJlYWQoRnVuY3Rpb248dm9p
ZChJUEM6OkNvbm5lY3Rpb24mKT4mJik7CiAKLSAgICB2b2lkIG5ld0Nvbm5lY3Rpb24oTGliV2Vi
UlRDU29ja2V0Q2xpZW50Jiwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+
JiYpOworICAgIHZvaWQgbmV3Q29ubmVjdGlvbihTb2NrZXQmLCBzdGQ6OnVuaXF1ZV9wdHI8cnRj
OjpBc3luY1BhY2tldFNvY2tldD4mJik7CiAKICAgICB2b2lkIGNsb3NlTGlzdGVuaW5nU29ja2V0
cyhGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIHZvaWQgYXV0aG9yaXplTGlzdGVuaW5nU29ja2V0
cygpIHsgbV9pc0xpc3RlbmluZ1NvY2tldEF1dGhvcml6ZWQgPSB0cnVlOyB9CkBAIC04NCwxNiAr
MTA1LDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVSZXNvbHZlcih1aW50NjRfdCwgY29u
c3QgU3RyaW5nJik7CiAgICAgdm9pZCBzdG9wUmVzb2x2ZXIodWludDY0X3QpOwogCi0gICAgdm9p
ZCBhZGRTb2NrZXQodWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENTb2NrZXRDbGll
bnQ+JiYpOworICAgIHZvaWQgYWRkU29ja2V0KHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8U29j
a2V0PiYmKTsKIAotICAgIHZvaWQgY3JlYXRlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0
ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBMaWJXZWJSVENTb2NrZXRD
bGllbnQ6OlR5cGUpOworICAgIHZvaWQgY3JlYXRlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIs
IHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBTb2NrZXQ6OlR5cGUp
OwogCiAgICAgdm9pZCBPbk1lc3NhZ2UocnRjOjpNZXNzYWdlKik7CiAKICAgICBzdGF0aWMgcnRj
OjpQcm94eUluZm8gcHJveHlJbmZvRnJvbVNlc3Npb24oY29uc3QgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyYsIE5ldHdvcmtTZXNzaW9uJik7CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Jlc29sdmVyPj4gbV9yZXNvbHZlcnM7Ci0gICAgSGFzaE1h
cDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1NvY2tldENsaWVudD4+IG1fc29j
a2V0czsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0Pj4gbV9z
b2NrZXRzOwogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBtX2Nvbm5lY3Rpb247
CiAgICAgYm9vbCBtX2lzU3RhcnRlZCB7IHRydWUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcAppbmRleCA1
ODY3YTc2ZDNlMmJhZjY4YzUyMzU4MDgyOTlhZTNlMGEwZWM1NTZhLi5hOGM3MGEzYjBkNjk2ZmI4
MTg0YjcxMTJkNzNkZjM0ZDhmZTdmMDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcApAQCAtMjksNyArMjks
NiBAQAogI2lmIFVTRShMSUJXRUJSVEMpCiAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0j
aW5jbHVkZSAiTGliV2ViUlRDU29ja2V0Q2xpZW50LmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1By
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiUlRDUGFja2V0T3B0aW9ucy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvU2hhcmVkQnVmZmVyLmg+CkBAIC00NiwyMSArNDUsMjEgQEAgTmV0d29ya1JUQ1NvY2tldDo6
TmV0d29ya1JUQ1NvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXIm
IHJ0Y1AKIHZvaWQgTmV0d29ya1JUQ1NvY2tldDo6c2VuZFRvKGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgZGF0YSwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYmIHNvY2tldEFkZHJlc3MsIFJU
Q1BhY2tldE9wdGlvbnMmJiBvcHRpb25zKQogewogICAgIGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6
U2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKLSAgICBtX3J0
Y1Byb3ZpZGVyLmNhbGxTb2NrZXQobV9pZGVudGlmaWVyLCBbYnVmZmVyID0gV1RGTW92ZShidWZm
ZXIpLCBzb2NrZXRBZGRyZXNzID0gV1RGTW92ZShzb2NrZXRBZGRyZXNzKSwgb3B0aW9ucyA9IFdU
Rk1vdmUob3B0aW9ucy5vcHRpb25zKV0oTGliV2ViUlRDU29ja2V0Q2xpZW50JiBjbGllbnQpIHsK
LSAgICAgICAgY2xpZW50LnNlbmRUbyhidWZmZXIuZ2V0KCksIHNvY2tldEFkZHJlc3MudmFsdWUs
IG9wdGlvbnMpOworICAgIG1fcnRjUHJvdmlkZXIuY2FsbFNvY2tldChtX2lkZW50aWZpZXIsIFti
dWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlciksIHNvY2tldEFkZHJlc3MgPSBXVEZNb3ZlKHNvY2tldEFk
ZHJlc3MpLCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zLm9wdGlvbnMpXShhdXRvJiBzb2NrZXQp
IHsKKyAgICAgICAgc29ja2V0LnNlbmRUbyhidWZmZXIuZ2V0KCksIHNvY2tldEFkZHJlc3MudmFs
dWUsIG9wdGlvbnMpOwogICAgIH0pOwogfQogCiB2b2lkIE5ldHdvcmtSVENTb2NrZXQ6OmNsb3Nl
KCkKIHsKLSAgICBtX3J0Y1Byb3ZpZGVyLmNhbGxTb2NrZXQobV9pZGVudGlmaWVyLCBbXShMaWJX
ZWJSVENTb2NrZXRDbGllbnQmIHNvY2tldCkgeworICAgIG1fcnRjUHJvdmlkZXIuY2FsbFNvY2tl
dChtX2lkZW50aWZpZXIsIFtdKGF1dG8mIHNvY2tldCkgewogICAgICAgICBzb2NrZXQuY2xvc2Uo
KTsKICAgICB9KTsKIH0KICAgICAKIHZvaWQgTmV0d29ya1JUQ1NvY2tldDo6c2V0T3B0aW9uKGlu
dCBvcHRpb24sIGludCB2YWx1ZSkKIHsKLSAgICBtX3J0Y1Byb3ZpZGVyLmNhbGxTb2NrZXQobV9p
ZGVudGlmaWVyLCBbb3B0aW9uLCB2YWx1ZV0oTGliV2ViUlRDU29ja2V0Q2xpZW50JiBzb2NrZXQp
IHsKKyAgICBtX3J0Y1Byb3ZpZGVyLmNhbGxTb2NrZXQobV9pZGVudGlmaWVyLCBbb3B0aW9uLCB2
YWx1ZV0oYXV0byYgc29ja2V0KSB7CiAgICAgICAgIHNvY2tldC5zZXRPcHRpb24ob3B0aW9uLCB2
YWx1ZSk7CiAgICAgfSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377828</attachid>
            <date>2019-09-01 13:11:42 -0700</date>
            <delta_ts>2019-09-01 23:20:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201302-20190901221141.patch</filename>
            <type>text/plain</type>
            <size>14587</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNhZTUyZTU1NDU0OWI4YWE0
MDA0ZWVkYTg4ODNkZDNlYjE2YTJjOTMuLjEzOTViNWRiMDI0MmEzMTk4MGYyMzZkNzJlMzkzMzRk
ZWYzM2M4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTktMDktMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFic3RyYWN0IG91dCBMaWJXZWJS
VENTb2NrZXRDbGllbnQgc28gdGhhdCBydGMgc29ja2V0cyBjYW4gYmUgaW1wbGVtZW50ZWQgd2l0
aG91dCBsaWJ3ZWJydGMgc29ja2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAxMzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3Rl
bnNlbi4KKworICAgICAgICBJbnRyb2R1Y2UgTmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQgdG8g
YmUgYWJsZSB0byBpbXBsZW1lbnQgUlRDIHNvY2tldCBzdXBwb3J0IHdpdGggbm9uIGxpYndlYnJ0
YyBBUEkKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRD
bGllbnQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3Zp
ZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2Nr
ZXQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tl
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU2VydmVyVENQ
U29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpwcm94eUluZm9G
cm9tU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRl
Q2xpZW50VENQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjp3
cmFwTmV3VENQQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRl
cjo6YWRkU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjp0YWtl
U29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpuZXdDb25uZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZUxpc3Rlbmlu
Z1NvY2tldHMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxTb2Nr
ZXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1t
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNv
Y2tldCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDU29ja2V0OjpzZW5kVG8pOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUlRDU29ja2V0OjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSVENTb2NrZXQ6OnNldE9wdGlvbik6CisKIDIwMTktMDgtMzAgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvLCBGVFddIFByb3Blcmx5
IGhhbmRsZSBkZXZpY2Ugc2NhbGUgZmFjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oCmluZGV4IDIy
YWJkZWM2OWRiMjQ1YTRjZjk4M2YyNDdiMzhmNzJkOTAwYTZmNWIuLjI1YWE1NGFmYTdkNzZmYTk0
NTZhZmJiOGNjNDFkMTE2YWJhZmM4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oCkBAIC0yNyw0
MiArMjcsMjkgQEAKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0xp
YldlYlJUQ01hY3Jvcy5oPgorI2luY2x1ZGUgIk5ldHdvcmtSVENQcm92aWRlci5oIgogI2luY2x1
ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9hc3luY3BhY2tldHNvY2tldC5oPgotI2luY2x1ZGUgPHdlYnJ0
Yy9ydGNfYmFzZS90aGlyZF9wYXJ0eS9zaWdzbG90L3NpZ3Nsb3QuaD4KIAogbmFtZXNwYWNlIHJ0
YyB7CiBjbGFzcyBBc3luY1BhY2tldFNvY2tldDsKLWNsYXNzIFNvY2tldEFkZHJlc3M7Ci1zdHJ1
Y3QgUGFja2V0T3B0aW9uczsKIHN0cnVjdCBTZW50UGFja2V0OwogdHlwZWRlZiBpbnQ2NF90IFBh
Y2tldFRpbWU7CiB9CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFNoYXJlZEJ1ZmZlcjsK
LX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIE5ldHdvcmtSVENQcm92aWRlcjsKLQot
Y2xhc3MgTGliV2ViUlRDU29ja2V0Q2xpZW50IGZpbmFsIDogcHVibGljIHNpZ3Nsb3Q6Omhhc19z
bG90czw+IHsKK2NsYXNzIExpYldlYlJUQ1NvY2tldENsaWVudCBmaW5hbCA6IHB1YmxpYyBOZXR3
b3JrUlRDUHJvdmlkZXI6OlNvY2tldCwgcHVibGljIHNpZ3Nsb3Q6Omhhc19zbG90czw+IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIFR5cGUg
eyBVRFAsIFNlcnZlclRDUCwgQ2xpZW50VENQLCBTZXJ2ZXJDb25uZWN0aW9uVENQIH07Ci0KICAg
ICBMaWJXZWJSVENTb2NrZXRDbGllbnQodWludDY0X3QgaWRlbnRpZmllciwgTmV0d29ya1JUQ1By
b3ZpZGVyJiwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYsIFR5cGUp
OwogCi0gICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmll
cjsgfQotICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotICAgIHZvaWQg
Y2xvc2UoKTsKLQogcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgTmV0d29ya1JUQ1NvY2tldDsK
KyAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlm
aWVyOyB9CisgICAgVHlwZSB0eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90eXBlOyB9Cisg
ICAgdm9pZCBjbG9zZSgpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlvbiwg
aW50IHZhbHVlKTsKLSAgICB2b2lkIHNlbmRUbyhjb25zdCBXZWJDb3JlOjpTaGFyZWRCdWZmZXIm
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBydGM6OlBhY2tldE9wdGlvbnMmKTsK
KyAgICB2b2lkIHNldE9wdGlvbihpbnQgb3B0aW9uLCBpbnQgdmFsdWUpIGZpbmFsOworICAgIHZv
aWQgc2VuZFRvKGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYsIGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYsIGNvbnN0IHJ0Yzo6UGFja2V0T3B0aW9ucyYpIGZpbmFsOwogCiAgICAgdm9pZCBz
aWduYWxSZWFkUGFja2V0KHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqLCBjb25zdCBjaGFyKiwgc2l6
ZV90LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBydGM6OlBhY2tldFRpbWUmKTsK
ICAgICB2b2lkIHNpZ25hbFNlbnRQYWNrZXQocnRjOjpBc3luY1BhY2tldFNvY2tldCosIGNvbnN0
IHJ0Yzo6U2VudFBhY2tldCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKaW5kZXggMTVkNDRkMGFkOWRi
MGYzYjA1OTllMWEzM2VmY2ZkYjg5NjFhNjVkZS4uNjY1OTBmMTE4NDE3MWVkZTQ0NzdhZmJkZWM4
MDhlZTAzNjU1YzhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpZiBVU0UoTElCV0VCUlRDKQogCisjaW5jbHVkZSAiTGliV2ViUlRDU29ja2V0Q2xpZW50Lmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKQEAgLTk1LDcgKzk2LDcgQEAg
dm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNsb3NlKCkKICAgICB9KTsKIH0KIAotdm9pZCBOZXR3
b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiBzb2NrZXQsIExpYldlYlJUQ1NvY2tl
dENsaWVudDo6VHlwZSB0eXBlKQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tl
dCh1aW50NjRfdCBpZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNv
Y2tldD4mJiBzb2NrZXQsIFNvY2tldDo6VHlwZSB0eXBlKQogewogICAgIGlmICghc29ja2V0KSB7
CiAgICAgICAgIHNlbmRGcm9tTWFpblRocmVhZChbaWRlbnRpZmllciwgc2l6ZSA9IG1fc29ja2V0
cy5zaXplKCldKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewpAQCAtMTExLDcgKzExMiw3
IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQodWludDY0X3QgaWRl
bnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6CiB7CiAgICAgY2FsbE9uUlRDTmV0d29ya1RocmVh
ZChbdGhpcywgaWRlbnRpZmllciwgYWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShh
ZGRyZXNzLnZhbHVlKSwgbWluUG9ydCwgbWF4UG9ydF0oKSB7CiAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQobV9wYWNrZXRTb2NrZXRGYWN0b3J5
LT5DcmVhdGVVZHBTb2NrZXQoYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCkpOwotICAgICAgICBj
cmVhdGVTb2NrZXQoaWRlbnRpZmllciwgV1RGTW92ZShzb2NrZXQpLCBMaWJXZWJSVENTb2NrZXRD
bGllbnQ6OlR5cGU6OlVEUCk7CisgICAgICAgIGNyZWF0ZVNvY2tldChpZGVudGlmaWVyLCBXVEZN
b3ZlKHNvY2tldCksIFNvY2tldDo6VHlwZTo6VURQKTsKICAgICB9KTsKIH0KIApAQCAtMTI1LDcg
KzEyNiw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQo
dWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0CiAKICAgICBjYWxsT25SVENOZXR3b3Jr
VGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBhZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRD
b3B5KGFkZHJlc3MudmFsdWUpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zXSgpIHsKICAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tl
dFNvY2tldEZhY3RvcnktPkNyZWF0ZVNlcnZlclRjcFNvY2tldChhZGRyZXNzLCBtaW5Qb3J0LCBt
YXhQb3J0LCBvcHRpb25zKSk7Ci0gICAgICAgIGNyZWF0ZVNvY2tldChpZGVudGlmaWVyLCBXVEZN
b3ZlKHNvY2tldCksIExpYldlYlJUQ1NvY2tldENsaWVudDo6VHlwZTo6U2VydmVyVENQKTsKKyAg
ICAgICAgY3JlYXRlU29ja2V0KGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0KSwgU29ja2V0OjpU
eXBlOjpTZXJ2ZXJUQ1ApOwogICAgIH0pOwogfQogCkBAIC0xNDUsNyArMTQ2LDcgQEAgdm9pZCBO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50NjRfdCBpZGVudGlm
aWVyLCBjb25zdCBSVENOZXQKICAgICB9CiAgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhp
cywgaWRlbnRpZmllciwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KGxv
Y2FsQWRkcmVzcy52YWx1ZSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENv
cHkocmVtb3RlQWRkcmVzcy52YWx1ZSksIHByb3h5SW5mbyA9IHByb3h5SW5mb0Zyb21TZXNzaW9u
KHJlbW90ZUFkZHJlc3MsICpzZXNzaW9uKSwgdXNlckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQp
Lmlzb2xhdGVkQ29weSgpLCBvcHRpb25zXSgpIHsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0
ZUNsaWVudFRjcFNvY2tldChsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHByb3h5SW5mbywg
dXNlckFnZW50LnV0ZjgoKS5kYXRhKCksIG9wdGlvbnMpKTsKLSAgICAgICAgY3JlYXRlU29ja2V0
KGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0KSwgTGliV2ViUlRDU29ja2V0Q2xpZW50OjpUeXBl
OjpDbGllbnRUQ1ApOworICAgICAgICBjcmVhdGVTb2NrZXQoaWRlbnRpZmllciwgV1RGTW92ZShz
b2NrZXQpLCBTb2NrZXQ6OlR5cGU6OkNsaWVudFRDUCk7CiAgICAgfSk7CiB9CiAKQEAgLTE1Mywy
MSArMTU0LDIxIEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlv
bih1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBuZXdDCiB7CiAgICAgY2FsbE9uUlRDTmV0
d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmllciwgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZp
ZXJdKCkgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4g
c29ja2V0ID0gbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRzLnRha2UobmV3Q29ubmVjdGlvblNvY2tl
dElkZW50aWZpZXIpOwotICAgICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwgbWFrZVVuaXF1ZTxM
aWJXZWJSVENTb2NrZXRDbGllbnQ+KGlkZW50aWZpZXIsICp0aGlzLCBXVEZNb3ZlKHNvY2tldCks
IExpYldlYlJUQ1NvY2tldENsaWVudDo6VHlwZTo6U2VydmVyQ29ubmVjdGlvblRDUCkpOworICAg
ICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwgbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXRDbGll
bnQ+KGlkZW50aWZpZXIsICp0aGlzLCBXVEZNb3ZlKHNvY2tldCksIFNvY2tldDo6VHlwZTo6U2Vy
dmVyQ29ubmVjdGlvblRDUCkpOwogICAgIH0pOwogfQogCi12b2lkIE5ldHdvcmtSVENQcm92aWRl
cjo6YWRkU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJS
VENTb2NrZXRDbGllbnQ+JiYgc29ja2V0KQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNv
Y2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0PiYmIHNvY2tl
dCkKIHsKICAgICBtX3NvY2tldHMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUoc29ja2V0KSk7CiB9
CiAKLXN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENTb2NrZXRDbGllbnQ+IE5ldHdvcmtSVENQcm92
aWRlcjo6dGFrZVNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyKQorc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBOZXR3b3JrUlRDUHJvdmlkZXI6OnRha2VTb2NrZXQo
dWludDY0X3QgaWRlbnRpZmllcikKIHsKICAgICByZXR1cm4gbV9zb2NrZXRzLnRha2UoaWRlbnRp
Zmllcik7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpuZXdDb25uZWN0aW9uKExpYldl
YlJUQ1NvY2tldENsaWVudCYgc2VydmVyU29ja2V0LCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3lu
Y1BhY2tldFNvY2tldD4mJiBuZXdTb2NrZXQpCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6bmV3
Q29ubmVjdGlvbihTb2NrZXQmIHNlcnZlclNvY2tldCwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQ+JiYgbmV3U29ja2V0KQogewogICAgIHNlbmRGcm9tTWFpblRocmVhZChb
aWRlbnRpZmllciA9IHNlcnZlclNvY2tldC5pZGVudGlmaWVyKCksIGluY29taW5nU29ja2V0SWRl
bnRpZmllciA9ICsrbV9pbmNvbWluZ1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3MgPSBS
VENOZXR3b3JrOjppc29sYXRlZENvcHkobmV3U29ja2V0LT5HZXRSZW1vdGVBZGRyZXNzKCkpXShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1l
c3NhZ2VzOjpXZWJSVENTb2NrZXQ6OlNpZ25hbE5ld0Nvbm5lY3Rpb24oaW5jb21pbmdTb2NrZXRJ
ZGVudGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MpKSwgaWRl
bnRpZmllcik7CkBAIC0yNDYsNyArMjQ3LDcgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNs
b3NlTGlzdGVuaW5nU29ja2V0cyhGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmQKICAg
ICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICBWZWN0b3I8dWludDY0
X3Q+IGxpc3RlbmluZ1NvY2tldElkZW50aWZpZXJzOwogICAgICAgICBmb3IgKGF1dG8mIGtleVZh
bHVlIDogbV9zb2NrZXRzKSB7Ci0gICAgICAgICAgICBpZiAoa2V5VmFsdWUudmFsdWUtPnR5cGUo
KSA9PSBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OlR5cGU6OlNlcnZlclRDUCkKKyAgICAgICAgICAg
IGlmIChrZXlWYWx1ZS52YWx1ZS0+dHlwZSgpID09IFNvY2tldDo6VHlwZTo6U2VydmVyVENQKQog
ICAgICAgICAgICAgICAgIGxpc3RlbmluZ1NvY2tldElkZW50aWZpZXJzLmFwcGVuZChrZXlWYWx1
ZS5rZXkpOwogICAgICAgICB9CiAgICAgICAgIGZvciAoYXV0byBpZCA6IGxpc3RlbmluZ1NvY2tl
dElkZW50aWZpZXJzKQpAQCAtMjg0LDcgKzI4NSw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVy
OjpjYWxsT25SVENOZXR3b3JrVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKICAg
ICBtX3J0Y05ldHdvcmtUaHJlYWQtPlBvc3QoUlRDX0ZST01fSEVSRSwgdGhpcywgMSwgbmV3IE5l
dHdvcmtNZXNzYWdlRGF0YSgqdGhpcywgV1RGTW92ZShjYWxsYmFjaykpKTsKIH0KIAotdm9pZCBO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgRnVuY3Rp
b248dm9pZChMaWJXZWJSVENTb2NrZXRDbGllbnQmKT4mJiBjYWxsYmFjaykKK3ZvaWQgTmV0d29y
a1JUQ1Byb3ZpZGVyOjpjYWxsU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZv
aWQoU29ja2V0Jik+JiYgY2FsbGJhY2spCiB7CiAgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChb
dGhpcywgaWRlbnRpZmllciwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSB7CiAgICAg
ICAgIGlmIChhdXRvKiBzb2NrZXQgPSBtX3NvY2tldHMuZ2V0KGlkZW50aWZpZXIpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIuaAppbmRleCAzMmNhNmMyZDJlYzRhMTNiMzA2MTQxOTU0MGI2OGY1MTRiZjc5MGJjLi42
NjQzZGQ4MTdjNTQzNDgwMDM2MWRmMDMyYWY3YTRhOTQ1NDIzOWYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIu
aApAQCAtMjcsNyArMjcsNiBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAotI2luY2x1ZGUgIkxp
YldlYlJUQ1NvY2tldENsaWVudC5oIgogI2luY2x1ZGUgIk5ldHdvcmtSVENNb25pdG9yLmgiCiAj
aW5jbHVkZSAiUlRDTmV0d29yay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9z
Lmg+CkBAIC00NCw2ICs0MywxNSBAQCBjbGFzcyBDb25uZWN0aW9uOwogY2xhc3MgRGVjb2RlcjsK
IH0KIAorbmFtZXNwYWNlIHJ0YyB7CitjbGFzcyBTb2NrZXRBZGRyZXNzOworc3RydWN0IFBhY2tl
dE9wdGlvbnM7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsK
K30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzczsKIGNsYXNzIE5ldHdvcmtSVENSZXNvbHZlcjsKQEAgLTU5LDE2ICs2NywyOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1JUQ01vbml0b3JNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7IG1fcnRjTW9uaXRv
ci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQogICAgIHZvaWQgZGlk
UmVjZWl2ZU5ldHdvcmtSVENTb2NrZXRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1NvY2tldENsaWVudD4gdGFr
ZVNvY2tldCh1aW50NjRfdCk7CisgICAgY2xhc3MgU29ja2V0IHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIHZpcnR1YWwgflNvY2tldCgpID0gZGVmYXVsdDsKKworICAgICAgICBlbnVtIGNsYXNzIFR5
cGUgOiB1aW50OF90IHsgVURQLCBTZXJ2ZXJUQ1AsIENsaWVudFRDUCwgU2VydmVyQ29ubmVjdGlv
blRDUCB9OworICAgICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0ICA9IDA7CisgICAgICAg
IHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKKworICAgICAgICB2aXJ0
dWFsIHZvaWQgY2xvc2UoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRPcHRpb24oaW50
IG9wdGlvbiwgaW50IHZhbHVlKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZW5kVG8oY29u
c3QgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgY29u
c3QgcnRjOjpQYWNrZXRPcHRpb25zJikgPSAwOworICAgIH07CisKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8U29ja2V0PiB0YWtlU29ja2V0KHVpbnQ2NF90KTsKICAgICB2b2lkIHJlc29sdmVyRG9uZSh1
aW50NjRfdCk7CiAKICAgICB2b2lkIGNsb3NlKCk7CiAKLSAgICB2b2lkIGNhbGxTb2NrZXQodWlu
dDY0X3QsIEZ1bmN0aW9uPHZvaWQoTGliV2ViUlRDU29ja2V0Q2xpZW50Jik+JiYpOworICAgIHZv
aWQgY2FsbFNvY2tldCh1aW50NjRfdCwgRnVuY3Rpb248dm9pZChTb2NrZXQmKT4mJik7CiAgICAg
dm9pZCBjYWxsT25SVENOZXR3b3JrVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBzZW5kRnJvbU1haW5UaHJlYWQoRnVuY3Rpb248dm9pZChJUEM6OkNvbm5lY3Rpb24mKT4mJik7
CiAKLSAgICB2b2lkIG5ld0Nvbm5lY3Rpb24oTGliV2ViUlRDU29ja2V0Q2xpZW50Jiwgc3RkOjp1
bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYpOworICAgIHZvaWQgbmV3Q29ubmVj
dGlvbihTb2NrZXQmLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJik7
CiAKICAgICB2b2lkIGNsb3NlTGlzdGVuaW5nU29ja2V0cyhGdW5jdGlvbjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgYXV0aG9yaXplTGlzdGVuaW5nU29ja2V0cygpIHsgbV9pc0xpc3RlbmluZ1NvY2tl
dEF1dGhvcml6ZWQgPSB0cnVlOyB9CkBAIC04NCwxNiArMTA1LDE2IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBjcmVhdGVSZXNvbHZlcih1aW50NjRfdCwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBz
dG9wUmVzb2x2ZXIodWludDY0X3QpOwogCi0gICAgdm9pZCBhZGRTb2NrZXQodWludDY0X3QsIHN0
ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENTb2NrZXRDbGllbnQ+JiYpOworICAgIHZvaWQgYWRkU29j
a2V0KHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0PiYmKTsKIAotICAgIHZvaWQgY3Jl
YXRlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5j
UGFja2V0U29ja2V0PiYmLCBMaWJXZWJSVENTb2NrZXRDbGllbnQ6OlR5cGUpOworICAgIHZvaWQg
Y3JlYXRlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFz
eW5jUGFja2V0U29ja2V0PiYmLCBTb2NrZXQ6OlR5cGUpOwogCiAgICAgdm9pZCBPbk1lc3NhZ2Uo
cnRjOjpNZXNzYWdlKik7CiAKICAgICBzdGF0aWMgcnRjOjpQcm94eUluZm8gcHJveHlJbmZvRnJv
bVNlc3Npb24oY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIE5ldHdvcmtTZXNzaW9u
Jik7CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Jl
c29sdmVyPj4gbV9yZXNvbHZlcnM7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVf
cHRyPExpYldlYlJUQ1NvY2tldENsaWVudD4+IG1fc29ja2V0czsKKyAgICBIYXNoTWFwPHVpbnQ2
NF90LCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0Pj4gbV9zb2NrZXRzOwogICAgIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKiBtX2Nvbm5lY3Rpb247CiAgICAgYm9vbCBtX2lzU3RhcnRlZCB7
IHRydWUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1NvY2tldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcAppbmRleCA1ODY3YTc2ZDNlMmJhZjY4YzUyMzU4MDgy
OTlhZTNlMGEwZWM1NTZhLi5hOGM3MGEzYjBkNjk2ZmI4MTg0YjcxMTJkNzNkZjM0ZDhmZTdmMDZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrUlRDU29ja2V0LmNwcApAQCAtMjksNyArMjksNiBAQAogI2lmIFVTRShMSUJXRUJSVEMp
CiAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiTGliV2ViUlRDU29ja2V0
Q2xpZW50LmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiUlRD
UGFja2V0T3B0aW9ucy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CkBAIC00
NiwyMSArNDUsMjEgQEAgTmV0d29ya1JUQ1NvY2tldDo6TmV0d29ya1JUQ1NvY2tldCh1aW50NjRf
dCBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1AKIHZvaWQgTmV0d29ya1JUQ1Nv
Y2tldDo6c2VuZFRvKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgUlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyYmIHNvY2tldEFkZHJlc3MsIFJUQ1BhY2tldE9wdGlvbnMmJiBvcHRpb25z
KQogewogICAgIGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0
YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKLSAgICBtX3J0Y1Byb3ZpZGVyLmNhbGxTb2NrZXQobV9p
ZGVudGlmaWVyLCBbYnVmZmVyID0gV1RGTW92ZShidWZmZXIpLCBzb2NrZXRBZGRyZXNzID0gV1RG
TW92ZShzb2NrZXRBZGRyZXNzKSwgb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucy5vcHRpb25zKV0o
TGliV2ViUlRDU29ja2V0Q2xpZW50JiBjbGllbnQpIHsKLSAgICAgICAgY2xpZW50LnNlbmRUbyhi
dWZmZXIuZ2V0KCksIHNvY2tldEFkZHJlc3MudmFsdWUsIG9wdGlvbnMpOworICAgIG1fcnRjUHJv
dmlkZXIuY2FsbFNvY2tldChtX2lkZW50aWZpZXIsIFtidWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlciks
IHNvY2tldEFkZHJlc3MgPSBXVEZNb3ZlKHNvY2tldEFkZHJlc3MpLCBvcHRpb25zID0gV1RGTW92
ZShvcHRpb25zLm9wdGlvbnMpXShhdXRvJiBzb2NrZXQpIHsKKyAgICAgICAgc29ja2V0LnNlbmRU
byhidWZmZXIuZ2V0KCksIHNvY2tldEFkZHJlc3MudmFsdWUsIG9wdGlvbnMpOwogICAgIH0pOwog
fQogCiB2b2lkIE5ldHdvcmtSVENTb2NrZXQ6OmNsb3NlKCkKIHsKLSAgICBtX3J0Y1Byb3ZpZGVy
LmNhbGxTb2NrZXQobV9pZGVudGlmaWVyLCBbXShMaWJXZWJSVENTb2NrZXRDbGllbnQmIHNvY2tl
dCkgeworICAgIG1fcnRjUHJvdmlkZXIuY2FsbFNvY2tldChtX2lkZW50aWZpZXIsIFtdKGF1dG8m
IHNvY2tldCkgewogICAgICAgICBzb2NrZXQuY2xvc2UoKTsKICAgICB9KTsKIH0KICAgICAKIHZv
aWQgTmV0d29ya1JUQ1NvY2tldDo6c2V0T3B0aW9uKGludCBvcHRpb24sIGludCB2YWx1ZSkKIHsK
LSAgICBtX3J0Y1Byb3ZpZGVyLmNhbGxTb2NrZXQobV9pZGVudGlmaWVyLCBbb3B0aW9uLCB2YWx1
ZV0oTGliV2ViUlRDU29ja2V0Q2xpZW50JiBzb2NrZXQpIHsKKyAgICBtX3J0Y1Byb3ZpZGVyLmNh
bGxTb2NrZXQobV9pZGVudGlmaWVyLCBbb3B0aW9uLCB2YWx1ZV0oYXV0byYgc29ja2V0KSB7CiAg
ICAgICAgIHNvY2tldC5zZXRPcHRpb24ob3B0aW9uLCB2YWx1ZSk7CiAgICAgfSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>