<?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>217353</bug_id>
          
          <creation_ts>2020-10-05 16:46:34 -0700</creation_ts>
          <short_desc>[WinCairo][PlayStation] Add handling for accept failure case</short_desc>
          <delta_ts>2020-10-30 14:23:46 -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>Platform</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="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>achristensen</cc>
    
    <cc>basuke</cc>
    
    <cc>chris.reid</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>stephan.szabo</cc>
    
    <cc>takashi.komori</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1694948</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2020-10-05 16:46:34 -0700</bug_when>
    <thetext>When listening RemoteInspectorServer fails to accept new connection, the listening socket goes to invalid situation and need to be recreated from the scrach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695320</commentid>
    <comment_count>1</comment_count>
      <attachid>410695</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2020-10-06 14:41:50 -0700</bug_when>
    <thetext>Created attachment 410695
PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695430</commentid>
    <comment_count>2</comment_count>
      <attachid>410695</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-10-06 18:44:22 -0700</bug_when>
    <thetext>Comment on attachment 410695
PATCH

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

Just some naming comments from me.

&gt; Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorServer.h:50
&gt; -    void didClose(RemoteInspectorSocketEndpoint&amp;, ConnectionID) final { };
&gt; +    void didStatusChanged(RemoteInspectorSocketEndpoint&amp;, ConnectionID, RemoteInspectorSocketEndpoint::Listener::Status) final { };

This should be `didChangeStatus`.

&gt; Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.h:168
&gt; +        bool isTimeToListen()

I think `shouldListen` would be better.

&gt; Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.h:176
&gt; +        MonotonicTime postponeRetryUntil { MonotonicTime::nan() };

How about something like `nextRetryTime`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695471</commentid>
    <comment_count>3</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2020-10-07 00:08:59 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #2)
&gt; Comment on attachment 410695 [details]
&gt; PATCH
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=410695&amp;action=review
&gt; 
&gt; Just some naming comments from me.
&gt; 
&gt; &gt; Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorServer.h:50
&gt; &gt; -    void didClose(RemoteInspectorSocketEndpoint&amp;, ConnectionID) final { };
&gt; &gt; +    void didStatusChanged(RemoteInspectorSocketEndpoint&amp;, ConnectionID, RemoteInspectorSocketEndpoint::Listener::Status) final { };
&gt; 
&gt; This should be `didChangeStatus`.
&gt; 
&gt; &gt; Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.h:168
&gt; &gt; +        bool isTimeToListen()
&gt; 
&gt; I think `shouldListen` would be better.
&gt; 
&gt; &gt; Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.h:176
&gt; &gt; +        MonotonicTime postponeRetryUntil { MonotonicTime::nan() };
&gt; 
&gt; How about something like `nextRetryTime`?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696078</commentid>
    <comment_count>4</comment_count>
      <attachid>410695</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-08 17:21:24 -0700</bug_when>
    <thetext>Comment on attachment 410695
PATCH

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

&gt; Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp:113
&gt; +    MonotonicTime mostRecentWakeup = MonotonicTime::nan();

Let&apos;s not use nan as a sentinel.  Please use Optional&lt;MonotonicTime&gt; instead.

&gt; Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.h:55
&gt; +        enum class Status {

: uint8_t</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697783</commentid>
    <comment_count>5</comment_count>
      <attachid>410695</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2020-10-14 10:52:28 -0700</bug_when>
    <thetext>Comment on attachment 410695
PATCH

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

Thanks for reviewing!

&gt;&gt; Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp:113
&gt;&gt; +    MonotonicTime mostRecentWakeup = MonotonicTime::nan();
&gt; 
&gt; Let&apos;s not use nan as a sentinel.  Please use Optional&lt;MonotonicTime&gt; instead.

Ah, that&apos;s better. Thanks

&gt;&gt; Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.h:55
&gt;&gt; +        enum class Status {
&gt; 
&gt; : uint8_t

Oh my. I don&apos;t know why but I misunderstand the behavior of enum class&apos;s underlying type decision. For unscoped enum, it is always int when it is unspecified, but for scoped, I believed it is calculated to be the minimum to hold the values. I might be confusing with other specification. thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702128</commentid>
    <comment_count>6</comment_count>
      <attachid>412468</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2020-10-27 15:41:32 -0700</bug_when>
    <thetext>Created attachment 412468
PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702562</commentid>
    <comment_count>7</comment_count>
      <attachid>412468</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-28 16:48:00 -0700</bug_when>
    <thetext>Comment on attachment 412468
PATCH

I wish there were a way to make this more straightforward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702564</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-28 16:51:50 -0700</bug_when>
    <thetext>Committed r269128: &lt;https://trac.webkit.org/changeset/269128&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412468.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702565</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-28 16:52:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/70786493&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703168</commentid>
    <comment_count>10</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2020-10-30 12:58:51 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #7)
&gt; Comment on attachment 412468 [details]
&gt; PATCH
&gt; 
&gt; I wish there were a way to make this more straightforward.

Thanks for reviewing!

Do you mean something like socket abstraction layer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703205</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-30 14:23:46 -0700</bug_when>
    <thetext>I&apos;m not completely sure what I mean.  I think there should be a better abstraction somewhere, but I&apos;m not sure what would make this more straightforward.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410695</attachid>
            <date>2020-10-06 14:41:50 -0700</date>
            <delta_ts>2020-10-27 15:41:32 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>bug-217353.diff</filename>
            <type>text/plain</type>
            <size>15867</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDIyNjc3OWJkOTkwOS4uYmViNTRmOGQ1N2ZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMC0xMC0wNiAgQmFz
dWtlIFN1enVraSAgPGJhc3VrZS5zdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW1dpbkNhaXJv
XVtQbGF5U3RhdGlvbl0gQWRkIGhhbmRsaW5nIGZvciBhY2NlcHQgZmFpbHVyZSBjYXNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTczNTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCBpcyByYXJlIHRv
IGhhcHBlbiwgYnV0IGxpc3RlbmluZyBzb2NrZXQgY2FuIGJlIGludmFsaWQgc3RhdGUgKGkuZS4g
Y2FibGUgZGlzY29ubmVjdGlvbiwgaW50ZXJmYWNlIGVycm9yKSwKKyAgICAgICAgYW5kIGFjY2Vw
dCgpIHdpbGwgYmUgY2FsbGVkIGJlY2F1c2Ugb2YgdGhlIHBvbGwncyBmYWxzZSByZXBvcnQuIElu
IHRoYXQgc2l0dWF0aW9uLCBpdCBpcyByZXF1aXJlZCB0byByZWJ1aWxkCisgICAgICAgIHRoZSBs
aXN0ZW5pbmcgc29ja2V0IGZyb20gdGhlIHNjcmF0Y2guIFRoZSBmYWlsdXJlIG9mIGFjY2VwdCBp
cyB0aGUgZ29vZCBwbGFjZSB0byBjYXB0dXJlIHRoaXMgc2l0dWF0aW9uLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggbW92ZXMgbGlzdGVuaW5nIGR1dHkgaW50byBMaXN0ZW5lciBpbnRlcm5hbCBjYWxz
cyBhbmQgaXQgaXMgcG9zc2libGUgdG8gbWFrZSB0aGUgaW52YWxpZCBzdGF0ZQorICAgICAgICB3
aGlsZSBtYWludGFpbmVkIGJ5IFNvY2tldEVuZHBvaW50LiBBbHNvIGluIGNhc2Ugb2YgZmFpbHVy
ZSBjb250aW51ZXMsIHRoZSByZXRyeSB3aWxsIGJlIGdyYWR1YWxseSBpbmNyZWFzaW5nCisgICAg
ICAgIHRoZSBpbnRlcnZhbHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9S
ZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6
OlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpsaXN0ZW5JbmV0KToKKyAgICAgICAgKElu
c3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OnBvbGxpbmdUaW1lb3V0KToK
KyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6Ondvcmtl
clRocmVhZCk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBv
aW50OjpjcmVhdGVDbGllbnQpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdCk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUlu
c3BlY3RvclNvY2tldEVuZHBvaW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5oOgorCiAyMDIwLTEwLTA1ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBKU0Mgb3B0aW9uIHRvIHRyaWdnZXIgYSBoYXJkd2FyZSBicmVha3Bv
aW50IHdoZW4gZGVidWdnZXIgZXhwcmVzc2lvbnMgYXJlIHJlYWNoZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVj
dG9yU2VydmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmgKaW5kZXggOTkyYzU5ZmNlM2Y2Li5kNTFjODMwNGEz
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmgKQEAgLTQ3LDcg
KzQ3LDcgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIoKSB7IFNvY2tldDo6
aW5pdCgpOyB9CiAKICAgICBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IGRvQWNjZXB0KFJlbW90ZUlu
c3BlY3RvclNvY2tldEVuZHBvaW50JiwgUGxhdGZvcm1Tb2NrZXRUeXBlKSBmaW5hbDsKLSAgICB2
b2lkIGRpZENsb3NlKFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVjdGlvbklE
KSBmaW5hbCB7IH07CisgICAgdm9pZCBkaWRTdGF0dXNDaGFuZ2VkKFJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50JiwgQ29ubmVjdGlvbklELCBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dDo6TGlzdGVuZXI6OlN0YXR1cykgZmluYWwgeyB9OwogCiAgICAgT3B0aW9uYWw8Q29ubmVjdGlv
bklEPiBtX3NlcnZlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3Bl
Y3RvclNvY2tldEVuZHBvaW50LmNwcAppbmRleCA1NjJjMjU0NjAxMzYuLjkzYWQ4MjkwZmQ4YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9p
bnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSA8d3RmL0NyeXB0b2dyYXBoaWNhbGx5
UmFuZG9tTnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgSW5zcGVjdG9yIHsKIApAQCAtOTAsMTAgKzg5LDE1IEBAIE9wdGlvbmFsPENvbm5lY3Rpb25J
RD4gUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmNvbm5lY3RJbmV0KGNvbnN0IGNoYXIq
IHNlCiAKIE9wdGlvbmFsPENvbm5lY3Rpb25JRD4gUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9p
bnQ6Omxpc3RlbkluZXQoY29uc3QgY2hhciogYWRkcmVzcywgdWludDE2X3QgcG9ydCwgTGlzdGVu
ZXImIGxpc3RlbmVyKQogewotICAgIGlmIChhdXRvIHNvY2tldCA9IFNvY2tldDo6bGlzdGVuKGFk
ZHJlc3MsIHBvcnQpKQotICAgICAgICByZXR1cm4gY3JlYXRlTGlzdGVuZXIoKnNvY2tldCwgbGlz
dGVuZXIpOworICAgIExvY2tIb2xkZXIgbG9jayhtX2Nvbm5lY3Rpb25zTG9jayk7CisgICAgYXV0
byBpZCA9IGdlbmVyYXRlQ29ubmVjdGlvbklEKCk7CisgICAgYXV0byBjb25uZWN0aW9uID0gbWFr
ZVVuaXF1ZTxMaXN0ZW5lckNvbm5lY3Rpb24+KGlkLCBsaXN0ZW5lciwgYWRkcmVzcywgcG9ydCk7
CisgICAgaWYgKCFjb25uZWN0aW9uLT5pc0xpc3RlbmluZygpKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogCi0gICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBtX2xpc3RlbmVycy5h
ZGQoaWQsIFdURk1vdmUoY29ubmVjdGlvbikpOworICAgIHdha2V1cFdvcmtlclRocmVhZCgpOwor
ICAgIHJldHVybiBpZDsKIH0KIAogYm9vbCBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6
aXNMaXN0ZW5pbmcoQ29ubmVjdGlvbklEIGlkKQpAQCAtMTA0LDYgKzEwOCwyNCBAQCBib29sIFJl
bW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50Ojppc0xpc3RlbmluZyhDb25uZWN0aW9uSUQgaWQp
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitpbnQgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9p
bnQ6OnBvbGxpbmdUaW1lb3V0KCkKK3sKKyAgICBNb25vdG9uaWNUaW1lIG1vc3RSZWNlbnRXYWtl
dXAgPSBNb25vdG9uaWNUaW1lOjpuYW4oKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbm5lY3Rp
b24gOiBtX2xpc3RlbmVycykgeworICAgICAgICBpZiAoIWNvbm5lY3Rpb24udmFsdWUtPmlzVGlt
ZVRvTGlzdGVuKCkpIHsKKyAgICAgICAgICAgIGlmIChzdGQ6OmlzbmFuKG1vc3RSZWNlbnRXYWtl
dXApKQorICAgICAgICAgICAgICAgIG1vc3RSZWNlbnRXYWtldXAgPSBjb25uZWN0aW9uLnZhbHVl
LT5wb3N0cG9uZVJldHJ5VW50aWw7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
bW9zdFJlY2VudFdha2V1cCA9IHN0ZDo6bWluPE1vbm90b25pY1RpbWU+KG1vc3RSZWNlbnRXYWtl
dXAsIGNvbm5lY3Rpb24udmFsdWUtPnBvc3Rwb25lUmV0cnlVbnRpbCk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoc3RkOjppc25hbihtb3N0UmVjZW50V2FrZXVwKSkKKyAgICAgICAgcmV0
dXJuIC0xOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oKG1vc3RSZWNlbnRXYWtldXAg
LSBNb25vdG9uaWNUaW1lOjpub3coKSkubWlsbGlzZWNvbmRzKCkpOworfQorCiB2b2lkIFJlbW90
ZUluc3BlY3RvclNvY2tldEVuZHBvaW50Ojp3b3JrZXJUaHJlYWQoKQogewogICAgIFBvbGxpbmdE
ZXNjcmlwdG9yIHdha2V1cCA9IFNvY2tldDo6cHJlcGFyZVBvbGxpbmcobV93YWtldXBSZWNlaXZl
U29ja2V0KTsKQEAgLTEyOCwxMyArMTUwLDE3IEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yU29ja2V0
RW5kcG9pbnQ6OndvcmtlclRocmVhZCgpCiAgICAgICAgICAgICAgICAgaWRzLmFwcGVuZChjb25u
ZWN0aW9uLmtleSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IGNvbm5lY3Rpb24gOiBtX2xpc3RlbmVycykgewotICAgICAgICAgICAgICAgIHBvbGxmZHMuYXBw
ZW5kKGNvbm5lY3Rpb24udmFsdWUtPnBvbGwpOwotICAgICAgICAgICAgICAgIGlkcy5hcHBlbmQo
Y29ubmVjdGlvbi5rZXkpOworICAgICAgICAgICAgICAgIGlmICghY29ubmVjdGlvbi52YWx1ZS0+
aXNMaXN0ZW5pbmcoKSAmJiBjb25uZWN0aW9uLnZhbHVlLT5saXN0ZW4oKSkKKyAgICAgICAgICAg
ICAgICAgICAgY29ubmVjdGlvbi52YWx1ZS0+bGlzdGVuZXIuZGlkU3RhdHVzQ2hhbmdlZCgqdGhp
cywgY29ubmVjdGlvbi5rZXksIExpc3RlbmVyOjpTdGF0dXM6Okxpc3RlbmluZyk7CisgICAgICAg
ICAgICAgICAgaWYgKGNvbm5lY3Rpb24udmFsdWUtPmlzTGlzdGVuaW5nKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgcG9sbGZkcy5hcHBlbmQoY29ubmVjdGlvbi52YWx1ZS0+cG9sbCk7CisgICAg
ICAgICAgICAgICAgICAgIGlkcy5hcHBlbmQoY29ubmVjdGlvbi5rZXkpOworICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBwb2xsZmRzLmFwcGVuZCh3
YWtldXApOwogCi0gICAgICAgIGlmICghU29ja2V0Ojpwb2xsKHBvbGxmZHMsIC0xKSkKKyAgICAg
ICAgaWYgKCFTb2NrZXQ6OnBvbGwocG9sbGZkcywgcG9sbGluZ1RpbWVvdXQoKSkpCiAgICAgICAg
ICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAoU29ja2V0Ojppc1JlYWRhYmxlKHBvbGxmZHMu
bGFzdCgpKSkgewpAQCAtMTgwLDYgKzIwNiw5IEBAIE9wdGlvbmFsPENvbm5lY3Rpb25JRD4gUmVt
b3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmNyZWF0ZUNsaWVudChQbGF0Zm9ybVNvY2tlCiAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fY29ubmVjdGlvbnNMb2NrKTsKICAgICBhdXRvIGlkID0gZ2Vu
ZXJhdGVDb25uZWN0aW9uSUQoKTsKICAgICBhdXRvIGNvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPENs
aWVudENvbm5lY3Rpb24+KGlkLCBzb2NrZXQsIGNsaWVudCk7CisgICAgaWYgKCFTb2NrZXQ6Omlz
VmFsaWQoY29ubmVjdGlvbi0+c29ja2V0KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KwogICAgIG1fY2xpZW50cy5hZGQoaWQsIFdURk1vdmUoY29ubmVjdGlvbikpOwogICAgIHdha2V1
cFdvcmtlclRocmVhZCgpOwogCkBAIC0xOTQsNyArMjIzLDcgQEAgdm9pZCBSZW1vdGVJbnNwZWN0
b3JTb2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdChDb25uZWN0aW9uSUQgaWQpCiAgICAgICAgIG1f
bGlzdGVuZXJzLnJlbW92ZShpZCk7CiAgICAgICAgIFNvY2tldDo6Y2xvc2UoY29ubmVjdGlvbi0+
c29ja2V0KTsKICAgICAgICAgbG9jay51bmxvY2tFYXJseSgpOwotICAgICAgICBjb25uZWN0aW9u
LT5saXN0ZW5lci5kaWRDbG9zZSgqdGhpcywgaWQpOworICAgICAgICBjb25uZWN0aW9uLT5saXN0
ZW5lci5kaWRTdGF0dXNDaGFuZ2VkKCp0aGlzLCBpZCwgTGlzdGVuZXI6OlN0YXR1czo6Q2xvc2Vk
KTsKICAgICB9IGVsc2UgaWYgKGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2NsaWVudHMuZ2V0
KGlkKSkgewogICAgICAgICBtX2NsaWVudHMucmVtb3ZlKGlkKTsKICAgICAgICAgU29ja2V0Ojpj
bG9zZShjb25uZWN0aW9uLT5zb2NrZXQpOwpAQCAtMjA0LDM4ICsyMzMsNiBAQCB2b2lkIFJlbW90
ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpkaXNjb25uZWN0KENvbm5lY3Rpb25JRCBpZCkKICAg
ICAgICAgTE9HX0VSUk9SKCJFcnJvcjogQ2Fubm90IGRpc2Nvbm5lY3Q6IEludmFsaWQgaWQiKTsK
IH0KIAotT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dDo6Y3JlYXRlTGlzdGVuZXIoUGxhdGZvcm1Tb2NrZXRUeXBlIHNvY2tldCwgTGlzdGVuZXImIGxp
c3RlbmVyKQotewotICAgIEFTU0VSVChTb2NrZXQ6OmlzVmFsaWQoc29ja2V0KSk7Ci0KLSAgICBp
ZiAoIVNvY2tldDo6c2V0dXAoc29ja2V0KSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
LQotICAgIExvY2tIb2xkZXIgbG9jayhtX2Nvbm5lY3Rpb25zTG9jayk7Ci0gICAgYXV0byBpZCA9
IGdlbmVyYXRlQ29ubmVjdGlvbklEKCk7Ci0gICAgYXV0byBjb25uZWN0aW9uID0gbWFrZVVuaXF1
ZTxMaXN0ZW5lckNvbm5lY3Rpb24+KGlkLCBzb2NrZXQsIGxpc3RlbmVyKTsKLSAgICBtX2xpc3Rl
bmVycy5hZGQoaWQsIFdURk1vdmUoY29ubmVjdGlvbikpOwotICAgIHdha2V1cFdvcmtlclRocmVh
ZCgpOwotCi0gICAgcmV0dXJuIGlkOwotfQotCi1PcHRpb25hbDxDb25uZWN0aW9uSUQ+IFJlbW90
ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpjcmVhdGVMaXN0ZW5lcihQbGF0Zm9ybVNvY2tldFR5
cGUgc29ja2V0LCBMaXN0ZW5lciYgbGlzdGVuZXIsIENsaWVudCYgY2xpZW50KQotewotICAgIEFT
U0VSVChTb2NrZXQ6OmlzVmFsaWQoc29ja2V0KSk7Ci0KLSAgICBpZiAoIVNvY2tldDo6c2V0dXAo
c29ja2V0KSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIExvY2tIb2xkZXIg
bG9jayhtX2Nvbm5lY3Rpb25zTG9jayk7Ci0gICAgYXV0byBpZCA9IGdlbmVyYXRlQ29ubmVjdGlv
bklEKCk7Ci0gICAgYXV0byBjb25uZWN0aW9uID0gbWFrZVVuaXF1ZTxMaXN0ZW5lckNvbm5lY3Rp
b24+KGlkLCBzb2NrZXQsIGxpc3RlbmVyKTsKLSAgICBtX2xpc3RlbmVycy5hZGQoaWQsIFdURk1v
dmUoY29ubmVjdGlvbikpOwotICAgIHdha2V1cFdvcmtlclRocmVhZCgpOwotCi0gICAgcmV0dXJu
IGlkOwotfQotCiB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjppbnZhbGlkYXRl
Q2xpZW50KENsaWVudCYgY2xpZW50KQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX2Nvbm5lY3Rp
b25zTG9jayk7CkBAIC0zNTksNyArMzU2LDEzIEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yU29ja2V0
RW5kcG9pbnQ6OmFjY2VwdEluZXRTb2NrZXRJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlkKQogICAg
ICAgICAgICAgbG9jay51bmxvY2tFYXJseSgpOwogICAgICAgICAgICAgaWYgKGNvbm5lY3Rpb24t
Pmxpc3RlbmVyLmRvQWNjZXB0KCp0aGlzLCBzb2NrZXQudmFsdWUoKSkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuOworCiAgICAgICAgICAgICBTb2NrZXQ6OmNsb3NlKCpzb2NrZXQpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgLy8gSWYgYWNjZXB0KCkgcmV0dXJucyBlcnJvciwgd2Ug
aGF2ZSB0byBzdGFydCBvdmVyIHdpdGggYmluZCgpIGFuZCBsaXN0ZW4oKS4KKyAgICAgICAgICAg
IC8vIEJ5IGNsb3Npbmcgc29ja2V0IGhlcmUsIGxpc3RlbigpIHdpbGwgYmUgY2FsbGVkIGFnYWlu
IGF0IHRoZSBuZXh0IGxvb3Agb2Ygd29ya2VyIHRocmVhZC4KKyAgICAgICAgICAgIFNvY2tldDo6
Y2xvc2UoY29ubmVjdGlvbi0+c29ja2V0KTsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPmxpc3Rl
bmVyLmRpZFN0YXR1c0NoYW5nZWQoKnRoaXMsIGlkLCBMaXN0ZW5lcjo6U3RhdHVzOjpJbnZhbGlk
KTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUlu
c3BlY3RvclNvY2tldEVuZHBvaW50LmgKaW5kZXggYWQ1ZTczYzNkNTBlLi41ZDkwOGM1Y2MxMzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIApAQCAtNDMsMTUgKzQ0
LDI0IEBAIHB1YmxpYzoKICAgICBjbGFzcyBDbGllbnQgewogICAgIHB1YmxpYzoKICAgICAgICAg
dmlydHVhbCB+Q2xpZW50KCkgeyB9CisKKyAgICAgICAgLy8gVGhlc2UgY2FsbGJhY2tzIGFyZSBu
b3QgZ3VhcmFudGVlZCB0byBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlKFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50Jiwg
Q29ubmVjdGlvbklELCBWZWN0b3I8dWludDhfdD4mJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2xvc2UoUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQmLCBDb25uZWN0aW9uSUQp
ID0gMDsKICAgICB9OwogCiAgICAgY2xhc3MgTGlzdGVuZXIgewogICAgIHB1YmxpYzoKKyAgICAg
ICAgZW51bSBjbGFzcyBTdGF0dXMgeworICAgICAgICAgICAgTGlzdGVuaW5nLAorICAgICAgICAg
ICAgSW52YWxpZCwKKyAgICAgICAgICAgIENsb3NlZCwKKyAgICAgICAgfTsKICAgICAgICAgdmly
dHVhbCB+TGlzdGVuZXIoKSB7IH0KKworICAgICAgICAvLyBUaGVzZSBjYWxsYmFja3MgYXJlIG5v
dCBndWFyYW50ZWVkIHRvIGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KICAgICAgICAg
dmlydHVhbCBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IGRvQWNjZXB0KFJlbW90ZUluc3BlY3RvclNv
Y2tldEVuZHBvaW50JiwgUGxhdGZvcm1Tb2NrZXRUeXBlKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRDbG9zZShSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCYsIENvbm5lY3Rpb25J
RCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhdHVzQ2hhbmdlZChSZW1vdGVJbnNw
ZWN0b3JTb2NrZXRFbmRwb2ludCYsIENvbm5lY3Rpb25JRCwgU3RhdHVzKSA9IDA7CiAgICAgfTsK
IAogICAgIHN0YXRpYyBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCYgc2luZ2xldG9uKCk7
CkBAIC02OSw3ICs3OSw2IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgdm9pZCBzZW5kKENvbm5lY3Rp
b25JRCBpZCwgY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkgeyBzZW5kKGlkLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3RoKTsgfQogCiAgICAgT3B0
aW9uYWw8Q29ubmVjdGlvbklEPiBjcmVhdGVDbGllbnQoUGxhdGZvcm1Tb2NrZXRUeXBlLCBDbGll
bnQmKTsKLSAgICBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IGNyZWF0ZUxpc3RlbmVyKFBsYXRmb3Jt
U29ja2V0VHlwZSwgTGlzdGVuZXImLCBDbGllbnQmKTsKIAogICAgIE9wdGlvbmFsPHVpbnQxNl90
PiBnZXRQb3J0KENvbm5lY3Rpb25JRCkgY29uc3Q7CiAKQEAgLTc5LDEyICs4OCwyNSBAQCBwcm90
ZWN0ZWQ6CiAgICAgc3RydWN0IEJhc2VDb25uZWN0aW9uIHsKICAgICAgICAgV1RGX01BS0VfU1RS
VUNUX0ZBU1RfQUxMT0NBVEVEOwogCi0gICAgICAgIEJhc2VDb25uZWN0aW9uKENvbm5lY3Rpb25J
RCBpZCwgUGxhdGZvcm1Tb2NrZXRUeXBlIHNvY2tldCkKKyAgICAgICAgQmFzZUNvbm5lY3Rpb24o
Q29ubmVjdGlvbklEIGlkKQogICAgICAgICAgICAgOiBpZCB7IGlkIH0KLSAgICAgICAgICAgICwg
c29ja2V0IHsgc29ja2V0IH0KLSAgICAgICAgICAgICwgcG9sbCB7IFNvY2tldDo6cHJlcGFyZVBv
bGxpbmcoc29ja2V0KSB9CisgICAgICAgICAgICAsIHNvY2tldCB7IElOVkFMSURfU09DS0VUX1ZB
TFVFIH0KKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBzZXRTb2NrZXQoUGxh
dGZvcm1Tb2NrZXRUeXBlIG5ld1NvY2tldCkKICAgICAgICAgewotICAgICAgICAgICAgQVNTRVJU
KFNvY2tldDo6aXNWYWxpZChzb2NrZXQpKTsKKyAgICAgICAgICAgIEFTU0VSVChTb2NrZXQ6Omlz
VmFsaWQobmV3U29ja2V0KSk7CisKKyAgICAgICAgICAgIGlmICghU29ja2V0OjpzZXR1cChuZXdT
b2NrZXQpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYg
KFNvY2tldDo6aXNWYWxpZChzb2NrZXQpKQorICAgICAgICAgICAgICAgIFNvY2tldDo6Y2xvc2Uo
c29ja2V0KTsKKworICAgICAgICAgICAgc29ja2V0ID0gbmV3U29ja2V0OworICAgICAgICAgICAg
cG9sbCA9IFNvY2tldDo6cHJlcGFyZVBvbGxpbmcoc29ja2V0KTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgQ29ubmVjdGlvbklEIGlkOwpAQCAtOTQsOSAr
MTE2LDEwIEBAIHByb3RlY3RlZDoKIAogICAgIHN0cnVjdCBDbGllbnRDb25uZWN0aW9uIDogcHVi
bGljIEJhc2VDb25uZWN0aW9uIHsKICAgICAgICAgQ2xpZW50Q29ubmVjdGlvbihDb25uZWN0aW9u
SUQgaWQsIFBsYXRmb3JtU29ja2V0VHlwZSBzb2NrZXQsIENsaWVudCYgY2xpZW50KQotICAgICAg
ICAgICAgOiBCYXNlQ29ubmVjdGlvbihpZCwgc29ja2V0KQorICAgICAgICAgICAgOiBCYXNlQ29u
bmVjdGlvbihpZCkKICAgICAgICAgICAgICwgY2xpZW50IHsgY2xpZW50IH0KICAgICAgICAgewor
ICAgICAgICAgICAgc2V0U29ja2V0KHNvY2tldCk7CiAgICAgICAgIH0KIAogICAgICAgICBDbGll
bnQmIGNsaWVudDsKQEAgLTEwNCwxNyArMTI3LDU3IEBAIHByb3RlY3RlZDoKICAgICB9OwogCiAg
ICAgc3RydWN0IExpc3RlbmVyQ29ubmVjdGlvbiA6IHB1YmxpYyBCYXNlQ29ubmVjdGlvbiB7Ci0g
ICAgICAgIExpc3RlbmVyQ29ubmVjdGlvbihDb25uZWN0aW9uSUQgaWQsIFBsYXRmb3JtU29ja2V0
VHlwZSBzb2NrZXQsIExpc3RlbmVyJiBsaXN0ZW5lcikKLSAgICAgICAgICAgIDogQmFzZUNvbm5l
Y3Rpb24oaWQsIHNvY2tldCkKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIGluaXRp
YWxSZXRyeUludGVydmFsIHsgMjAwX21zIH07CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgU2Vj
b25kcyBtYXhSZXRyeUludGVydmFsIHsgNV9zIH07CisKKyAgICAgICAgTGlzdGVuZXJDb25uZWN0
aW9uKENvbm5lY3Rpb25JRCBpZCwgTGlzdGVuZXImIGxpc3RlbmVyLCBjb25zdCBjaGFyKiBhZGRy
ZXNzLCB1aW50MTZfdCBwb3J0KQorICAgICAgICAgICAgOiBCYXNlQ29ubmVjdGlvbihpZCkKKyAg
ICAgICAgICAgICwgYWRkcmVzcyB7IGFkZHJlc3MgfQorICAgICAgICAgICAgLCBwb3J0IHsgcG9y
dCB9CiAgICAgICAgICAgICAsIGxpc3RlbmVyIHsgbGlzdGVuZXIgfQogICAgICAgICB7CisgICAg
ICAgICAgICBsaXN0ZW4oKTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgbGlzdGVuKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgQVNTRVJUKCFpc0xpc3RlbmluZygpKTsKKworICAgICAgICAg
ICAgaWYgKCFpc1RpbWVUb0xpc3RlbigpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgICAgICAgICAgaWYgKGF1dG8gbmV3U29ja2V0ID0gU29ja2V0OjpsaXN0ZW4oYWRkcmVz
cy51dGY4KCkuZGF0YSgpLCBwb3J0KSkgeworICAgICAgICAgICAgICAgIGlmIChzZXRTb2NrZXQo
Km5ld1NvY2tldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0cnlJbnRlcnZhbCA9IGluaXRp
YWxSZXRyeUludGVydmFsOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU29ja2V0OjpjbG9zZSgqbmV3U29ja2V0KTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcG9zdHBvbmVSZXRyeVVudGlsID0gTW9ub3Rv
bmljVGltZTo6bm93KCkgKyByZXRyeUludGVydmFsOworICAgICAgICAgICAgcmV0cnlJbnRlcnZh
bCA9IHN0ZDo6bWluPFNlY29uZHM+KHJldHJ5SW50ZXJ2YWwgKiAyLCBtYXhSZXRyeUludGVydmFs
KTsKKworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgYm9v
bCBpc0xpc3RlbmluZygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBTb2NrZXQ6Omlz
TGlzdGVuaW5nKHNvY2tldCk7CisgICAgICAgIH0KKworICAgICAgICBib29sIGlzVGltZVRvTGlz
dGVuKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6aXNuYW4ocG9zdHBvbmVS
ZXRyeVVudGlsKSB8fCAocG9zdHBvbmVSZXRyeVVudGlsIDw9IE1vbm90b25pY1RpbWU6Om5vdygp
KTsKICAgICAgICAgfQogCisgICAgICAgIFN0cmluZyBhZGRyZXNzOworICAgICAgICB1aW50MTZf
dCBwb3J0OwogICAgICAgICBMaXN0ZW5lciYgbGlzdGVuZXI7CisgICAgICAgIE1vbm90b25pY1Rp
bWUgcG9zdHBvbmVSZXRyeVVudGlsIHsgTW9ub3RvbmljVGltZTo6bmFuKCkgfTsKKyAgICAgICAg
U2Vjb25kcyByZXRyeUludGVydmFsIHsgaW5pdGlhbFJldHJ5SW50ZXJ2YWwgfTsKICAgICB9Owog
CiAgICAgQ29ubmVjdGlvbklEIGdlbmVyYXRlQ29ubmVjdGlvbklEKCk7Ci0gICAgT3B0aW9uYWw8
Q29ubmVjdGlvbklEPiBjcmVhdGVMaXN0ZW5lcihQbGF0Zm9ybVNvY2tldFR5cGUsIExpc3RlbmVy
Jik7CiAKICAgICB2b2lkIHJlY3ZJZkVuYWJsZWQoQ29ubmVjdGlvbklEKTsKICAgICB2b2lkIHNl
bmRJZkVuYWJsZWQoQ29ubmVjdGlvbklEKTsKQEAgLTEyMiw2ICsxODUsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCB3YWtldXBXb3JrZXJUaHJlYWQoKTsKICAgICB2b2lkIGFjY2VwdEluZXRTb2Nr
ZXRJZkVuYWJsZWQoQ29ubmVjdGlvbklEKTsKICAgICBib29sIGlzTGlzdGVuaW5nKENvbm5lY3Rp
b25JRCk7CisgICAgaW50IHBvbGxpbmdUaW1lb3V0KCk7CiAKICAgICBtdXRhYmxlIExvY2sgbV9j
b25uZWN0aW9uc0xvY2s7CiAgICAgSGFzaE1hcDxDb25uZWN0aW9uSUQsIHN0ZDo6dW5pcXVlX3B0
cjxDbGllbnRDb25uZWN0aW9uPj4gbV9jbGllbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRy
aXZlci9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZwppbmRleCA3MmNjMTQz
MDJkMDcuLjM0ZWY2ZWVkNDk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MC0xMC0wNiAgQmFzdWtlIFN1enVraSAgPGJhc3VrZS5zdXp1a2lAc29ueS5jb20+CisKKyAgICAg
ICAgW1dpbkNhaXJvXVtQbGF5U3RhdGlvbl0gQWRkIGhhbmRsaW5nIGZvciBhY2NlcHQgZmFpbHVy
ZSBjYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTczNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
b2xsb3dpbmcgdGhlIGludGVyZmFjZSBjaGFuZ2UuCisKKyAgICAgICAgKiBIVFRQU2VydmVyLmg6
CisgICAgICAgICogc29ja2V0L0hUVFBTZXJ2ZXJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViRHJp
dmVyOjpIVFRQU2VydmVyOjpkaWRTdGF0dXNDaGFuZ2VkKToKKwogMjAyMC0xMC0wMiAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVy
OiBhZGQgc3VwcG9ydCBmb3Igc2FtZSBzaXRlIGNvb2tpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJEcml2ZXIvSFRUUFNlcnZlci5oIGIvU291cmNlL1dlYkRyaXZlci9IVFRQU2VydmVyLmgKaW5k
ZXggNTNmMmFkOTI5ZDViLi5mYjJiZjE3Y2M5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2
ZXIvSFRUUFNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvSFRUUFNlcnZlci5oCkBAIC05
NSw3ICs5NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAjaWYgVVNFKElOU1BFQ1RPUl9TT0NLRVRf
U0VSVkVSKQogICAgIE9wdGlvbmFsPENvbm5lY3Rpb25JRD4gZG9BY2NlcHQoUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQmLCBQbGF0Zm9ybVNvY2tldFR5cGUpIGZpbmFsOwotICAgIHZvaWQg
ZGlkQ2xvc2UoUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQmLCBDb25uZWN0aW9uSUQpIGZp
bmFsOworICAgIHZvaWQgZGlkU3RhdHVzQ2hhbmdlZChSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRw
b2ludCYsIENvbm5lY3Rpb25JRCwgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6Okxpc3Rl
bmVyOjpTdGF0dXMpIGZpbmFsOwogI2VuZGlmCiAKICAgICBIVFRQUmVxdWVzdEhhbmRsZXImIG1f
cmVxdWVzdEhhbmRsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL3NvY2tldC9IVFRQ
U2VydmVyU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvc29ja2V0L0hUVFBTZXJ2ZXJTb2Nr
ZXQuY3BwCmluZGV4IDFlMGE3ZGJiMWZmYi4uNmIyODIwNmNmMjY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViRHJpdmVyL3NvY2tldC9IVFRQU2VydmVyU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
RHJpdmVyL3NvY2tldC9IVFRQU2VydmVyU29ja2V0LmNwcApAQCAtNTYsOSArNTYsMTAgQEAgT3B0
aW9uYWw8Q29ubmVjdGlvbklEPiBIVFRQU2VydmVyOjpkb0FjY2VwdChSZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludCYgZW5kcG8KICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi12b2lk
IEhUVFBTZXJ2ZXI6OmRpZENsb3NlKFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29u
bmVjdGlvbklEKQordm9pZCBIVFRQU2VydmVyOjpkaWRTdGF0dXNDaGFuZ2VkKFJlbW90ZUluc3Bl
Y3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVjdGlvbklELCBSZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludDo6TGlzdGVuZXI6OlN0YXR1cyBzdGF0dXMpCiB7Ci0gICAgbV9zZXJ2ZXIgPSBXVEY6
Om51bGxvcHQ7CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6OkNsb3NlZCkKKyAgICAgICAgbV9z
ZXJ2ZXIgPSBXVEY6Om51bGxvcHQ7CiB9CiAKIHZvaWQgSFRUUFJlcXVlc3RIYW5kbGVyOjpjb25u
ZWN0KENvbm5lY3Rpb25JRCBpZCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412468</attachid>
            <date>2020-10-27 15:41:32 -0700</date>
            <delta_ts>2020-10-28 16:51:51 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>bug-217353.diff</filename>
            <type>text/plain</type>
            <size>15679</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDIyNjc3OWJkOTkwOS4uYmViNTRmOGQ1N2ZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMC0xMC0wNiAgQmFz
dWtlIFN1enVraSAgPGJhc3VrZS5zdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW1dpbkNhaXJv
XVtQbGF5U3RhdGlvbl0gQWRkIGhhbmRsaW5nIGZvciBhY2NlcHQgZmFpbHVyZSBjYXNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTczNTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCBpcyByYXJlIHRv
IGhhcHBlbiwgYnV0IGxpc3RlbmluZyBzb2NrZXQgY2FuIGJlIGludmFsaWQgc3RhdGUgKGkuZS4g
Y2FibGUgZGlzY29ubmVjdGlvbiwgaW50ZXJmYWNlIGVycm9yKSwKKyAgICAgICAgYW5kIGFjY2Vw
dCgpIHdpbGwgYmUgY2FsbGVkIGJlY2F1c2Ugb2YgdGhlIHBvbGwncyBmYWxzZSByZXBvcnQuIElu
IHRoYXQgc2l0dWF0aW9uLCBpdCBpcyByZXF1aXJlZCB0byByZWJ1aWxkCisgICAgICAgIHRoZSBs
aXN0ZW5pbmcgc29ja2V0IGZyb20gdGhlIHNjcmF0Y2guIFRoZSBmYWlsdXJlIG9mIGFjY2VwdCBp
cyB0aGUgZ29vZCBwbGFjZSB0byBjYXB0dXJlIHRoaXMgc2l0dWF0aW9uLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggbW92ZXMgbGlzdGVuaW5nIGR1dHkgaW50byBMaXN0ZW5lciBpbnRlcm5hbCBjYWxz
cyBhbmQgaXQgaXMgcG9zc2libGUgdG8gbWFrZSB0aGUgaW52YWxpZCBzdGF0ZQorICAgICAgICB3
aGlsZSBtYWludGFpbmVkIGJ5IFNvY2tldEVuZHBvaW50LiBBbHNvIGluIGNhc2Ugb2YgZmFpbHVy
ZSBjb250aW51ZXMsIHRoZSByZXRyeSB3aWxsIGJlIGdyYWR1YWxseSBpbmNyZWFzaW5nCisgICAg
ICAgIHRoZSBpbnRlcnZhbHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9S
ZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6
OlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpsaXN0ZW5JbmV0KToKKyAgICAgICAgKElu
c3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OnBvbGxpbmdUaW1lb3V0KToK
KyAgICAgICAgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6Ondvcmtl
clRocmVhZCk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBv
aW50OjpjcmVhdGVDbGllbnQpOgorICAgICAgICAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JT
b2NrZXRFbmRwb2ludDo6ZGlzY29ubmVjdCk6CisgICAgICAgIChJbnNwZWN0b3I6OlJlbW90ZUlu
c3BlY3RvclNvY2tldEVuZHBvaW50OjphY2NlcHRJbmV0U29ja2V0SWZFbmFibGVkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5oOgorCiAyMDIwLTEwLTA1ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBKU0Mgb3B0aW9uIHRvIHRyaWdnZXIgYSBoYXJkd2FyZSBicmVha3Bv
aW50IHdoZW4gZGVidWdnZXIgZXhwcmVzc2lvbnMgYXJlIHJlYWNoZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVj
dG9yU2VydmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmgKaW5kZXggOTkyYzU5ZmNlM2Y2Li4yZjBhNzZjZWY1
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmgKQEAgLTQ3LDcg
KzQ3LDcgQEAgcHJpdmF0ZToKICAgICBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIoKSB7IFNvY2tldDo6
aW5pdCgpOyB9CiAKICAgICBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IGRvQWNjZXB0KFJlbW90ZUlu
c3BlY3RvclNvY2tldEVuZHBvaW50JiwgUGxhdGZvcm1Tb2NrZXRUeXBlKSBmaW5hbDsKLSAgICB2
b2lkIGRpZENsb3NlKFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVjdGlvbklE
KSBmaW5hbCB7IH07CisgICAgdm9pZCBkaWRDaGFuZ2VTdGF0dXMoUmVtb3RlSW5zcGVjdG9yU29j
a2V0RW5kcG9pbnQmLCBDb25uZWN0aW9uSUQsIFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50
OjpMaXN0ZW5lcjo6U3RhdHVzKSBmaW5hbCB7IH07CiAKICAgICBPcHRpb25hbDxDb25uZWN0aW9u
SUQ+IG1fc2VydmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVj
dG9yU29ja2V0RW5kcG9pbnQuY3BwCmluZGV4IDU2MmMyNTQ2MDEzNi4uYWU1ZTZkOGExYWVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQv
UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dC5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBJbnNwZWN0b3IgewogCkBAIC05MCwxMCArODksMTUgQEAgT3B0aW9uYWw8Q29ubmVjdGlvbklE
PiBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6Y29ubmVjdEluZXQoY29uc3QgY2hhciog
c2UKIAogT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dDo6bGlzdGVuSW5ldChjb25zdCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0LCBMaXN0ZW5l
ciYgbGlzdGVuZXIpCiB7Ci0gICAgaWYgKGF1dG8gc29ja2V0ID0gU29ja2V0OjpsaXN0ZW4oYWRk
cmVzcywgcG9ydCkpCi0gICAgICAgIHJldHVybiBjcmVhdGVMaXN0ZW5lcigqc29ja2V0LCBsaXN0
ZW5lcik7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fY29ubmVjdGlvbnNMb2NrKTsKKyAgICBhdXRv
IGlkID0gZ2VuZXJhdGVDb25uZWN0aW9uSUQoKTsKKyAgICBhdXRvIGNvbm5lY3Rpb24gPSBtYWtl
VW5pcXVlPExpc3RlbmVyQ29ubmVjdGlvbj4oaWQsIGxpc3RlbmVyLCBhZGRyZXNzLCBwb3J0KTsK
KyAgICBpZiAoIWNvbm5lY3Rpb24tPmlzTGlzdGVuaW5nKCkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIG1fbGlzdGVuZXJzLmFk
ZChpZCwgV1RGTW92ZShjb25uZWN0aW9uKSk7CisgICAgd2FrZXVwV29ya2VyVGhyZWFkKCk7Cisg
ICAgcmV0dXJuIGlkOwogfQogCiBib29sIFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50Ojpp
c0xpc3RlbmluZyhDb25uZWN0aW9uSUQgaWQpCkBAIC0xMDQsNiArMTA4LDI0IEBAIGJvb2wgUmVt
b3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmlzTGlzdGVuaW5nKENvbm5lY3Rpb25JRCBpZCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2ludCBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dDo6cG9sbGluZ1RpbWVvdXQoKQoreworICAgIE9wdGlvbmFsPE1vbm90b25pY1RpbWU+IG1vc3RS
ZWNlbnRXYWtldXA7CisgICAgZm9yIChjb25zdCBhdXRvJiBjb25uZWN0aW9uIDogbV9saXN0ZW5l
cnMpIHsKKyAgICAgICAgaWYgKGNvbm5lY3Rpb24udmFsdWUtPm5leHRSZXRyeVRpbWUpIHsKKyAg
ICAgICAgICAgIGlmIChtb3N0UmVjZW50V2FrZXVwKQorICAgICAgICAgICAgICAgIG1vc3RSZWNl
bnRXYWtldXAgPSBzdGQ6Om1pbjxNb25vdG9uaWNUaW1lPigqbW9zdFJlY2VudFdha2V1cCwgKmNv
bm5lY3Rpb24udmFsdWUtPm5leHRSZXRyeVRpbWUpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIG1vc3RSZWNlbnRXYWtldXAgPSBjb25uZWN0aW9uLnZhbHVlLT5uZXh0UmV0cnlU
aW1lOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKG1vc3RSZWNlbnRXYWtldXApCisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KCgqbW9zdFJlY2VudFdha2V1cCAtIE1vbm90b25p
Y1RpbWU6Om5vdygpKS5taWxsaXNlY29uZHMoKSk7CisKKyAgICByZXR1cm4gLTE7Cit9CisKIHZv
aWQgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OndvcmtlclRocmVhZCgpCiB7CiAgICAg
UG9sbGluZ0Rlc2NyaXB0b3Igd2FrZXVwID0gU29ja2V0OjpwcmVwYXJlUG9sbGluZyhtX3dha2V1
cFJlY2VpdmVTb2NrZXQpOwpAQCAtMTI4LDEzICsxNTAsMTcgQEAgdm9pZCBSZW1vdGVJbnNwZWN0
b3JTb2NrZXRFbmRwb2ludDo6d29ya2VyVGhyZWFkKCkKICAgICAgICAgICAgICAgICBpZHMuYXBw
ZW5kKGNvbm5lY3Rpb24ua2V5KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAoY29u
c3QgYXV0byYgY29ubmVjdGlvbiA6IG1fbGlzdGVuZXJzKSB7Ci0gICAgICAgICAgICAgICAgcG9s
bGZkcy5hcHBlbmQoY29ubmVjdGlvbi52YWx1ZS0+cG9sbCk7Ci0gICAgICAgICAgICAgICAgaWRz
LmFwcGVuZChjb25uZWN0aW9uLmtleSk7CisgICAgICAgICAgICAgICAgaWYgKCFjb25uZWN0aW9u
LnZhbHVlLT5pc0xpc3RlbmluZygpICYmIGNvbm5lY3Rpb24udmFsdWUtPmxpc3RlbigpKQorICAg
ICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnZhbHVlLT5saXN0ZW5lci5kaWRDaGFuZ2VTdGF0
dXMoKnRoaXMsIGNvbm5lY3Rpb24ua2V5LCBMaXN0ZW5lcjo6U3RhdHVzOjpMaXN0ZW5pbmcpOwor
ICAgICAgICAgICAgICAgIGlmIChjb25uZWN0aW9uLnZhbHVlLT5pc0xpc3RlbmluZygpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHBvbGxmZHMuYXBwZW5kKGNvbm5lY3Rpb24udmFsdWUtPnBvbGwp
OworICAgICAgICAgICAgICAgICAgICBpZHMuYXBwZW5kKGNvbm5lY3Rpb24ua2V5KTsKKyAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcG9sbGZkcy5h
cHBlbmQod2FrZXVwKTsKIAotICAgICAgICBpZiAoIVNvY2tldDo6cG9sbChwb2xsZmRzLCAtMSkp
CisgICAgICAgIGlmICghU29ja2V0Ojpwb2xsKHBvbGxmZHMsIHBvbGxpbmdUaW1lb3V0KCkpKQog
ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKFNvY2tldDo6aXNSZWFkYWJsZShw
b2xsZmRzLmxhc3QoKSkpIHsKQEAgLTE4MCw2ICsyMDYsOSBAQCBPcHRpb25hbDxDb25uZWN0aW9u
SUQ+IFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpjcmVhdGVDbGllbnQoUGxhdGZvcm1T
b2NrZQogICAgIExvY2tIb2xkZXIgbG9jayhtX2Nvbm5lY3Rpb25zTG9jayk7CiAgICAgYXV0byBp
ZCA9IGdlbmVyYXRlQ29ubmVjdGlvbklEKCk7CiAgICAgYXV0byBjb25uZWN0aW9uID0gbWFrZVVu
aXF1ZTxDbGllbnRDb25uZWN0aW9uPihpZCwgc29ja2V0LCBjbGllbnQpOworICAgIGlmICghU29j
a2V0Ojppc1ZhbGlkKGNvbm5lY3Rpb24tPnNvY2tldCkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKICAgICBtX2NsaWVudHMuYWRkKGlkLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKICAg
ICB3YWtldXBXb3JrZXJUaHJlYWQoKTsKIApAQCAtMTk0LDcgKzIyMyw3IEBAIHZvaWQgUmVtb3Rl
SW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmRpc2Nvbm5lY3QoQ29ubmVjdGlvbklEIGlkKQogICAg
ICAgICBtX2xpc3RlbmVycy5yZW1vdmUoaWQpOwogICAgICAgICBTb2NrZXQ6OmNsb3NlKGNvbm5l
Y3Rpb24tPnNvY2tldCk7CiAgICAgICAgIGxvY2sudW5sb2NrRWFybHkoKTsKLSAgICAgICAgY29u
bmVjdGlvbi0+bGlzdGVuZXIuZGlkQ2xvc2UoKnRoaXMsIGlkKTsKKyAgICAgICAgY29ubmVjdGlv
bi0+bGlzdGVuZXIuZGlkQ2hhbmdlU3RhdHVzKCp0aGlzLCBpZCwgTGlzdGVuZXI6OlN0YXR1czo6
Q2xvc2VkKTsKICAgICB9IGVsc2UgaWYgKGNvbnN0IGF1dG8mIGNvbm5lY3Rpb24gPSBtX2NsaWVu
dHMuZ2V0KGlkKSkgewogICAgICAgICBtX2NsaWVudHMucmVtb3ZlKGlkKTsKICAgICAgICAgU29j
a2V0OjpjbG9zZShjb25uZWN0aW9uLT5zb2NrZXQpOwpAQCAtMjA0LDM4ICsyMzMsNiBAQCB2b2lk
IFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpkaXNjb25uZWN0KENvbm5lY3Rpb25JRCBp
ZCkKICAgICAgICAgTE9HX0VSUk9SKCJFcnJvcjogQ2Fubm90IGRpc2Nvbm5lY3Q6IEludmFsaWQg
aWQiKTsKIH0KIAotT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBSZW1vdGVJbnNwZWN0b3JTb2NrZXRF
bmRwb2ludDo6Y3JlYXRlTGlzdGVuZXIoUGxhdGZvcm1Tb2NrZXRUeXBlIHNvY2tldCwgTGlzdGVu
ZXImIGxpc3RlbmVyKQotewotICAgIEFTU0VSVChTb2NrZXQ6OmlzVmFsaWQoc29ja2V0KSk7Ci0K
LSAgICBpZiAoIVNvY2tldDo6c2V0dXAoc29ja2V0KSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLQotICAgIExvY2tIb2xkZXIgbG9jayhtX2Nvbm5lY3Rpb25zTG9jayk7Ci0gICAgYXV0
byBpZCA9IGdlbmVyYXRlQ29ubmVjdGlvbklEKCk7Ci0gICAgYXV0byBjb25uZWN0aW9uID0gbWFr
ZVVuaXF1ZTxMaXN0ZW5lckNvbm5lY3Rpb24+KGlkLCBzb2NrZXQsIGxpc3RlbmVyKTsKLSAgICBt
X2xpc3RlbmVycy5hZGQoaWQsIFdURk1vdmUoY29ubmVjdGlvbikpOwotICAgIHdha2V1cFdvcmtl
clRocmVhZCgpOwotCi0gICAgcmV0dXJuIGlkOwotfQotCi1PcHRpb25hbDxDb25uZWN0aW9uSUQ+
IFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpjcmVhdGVMaXN0ZW5lcihQbGF0Zm9ybVNv
Y2tldFR5cGUgc29ja2V0LCBMaXN0ZW5lciYgbGlzdGVuZXIsIENsaWVudCYgY2xpZW50KQotewot
ICAgIEFTU0VSVChTb2NrZXQ6OmlzVmFsaWQoc29ja2V0KSk7Ci0KLSAgICBpZiAoIVNvY2tldDo6
c2V0dXAoc29ja2V0KSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIExvY2tI
b2xkZXIgbG9jayhtX2Nvbm5lY3Rpb25zTG9jayk7Ci0gICAgYXV0byBpZCA9IGdlbmVyYXRlQ29u
bmVjdGlvbklEKCk7Ci0gICAgYXV0byBjb25uZWN0aW9uID0gbWFrZVVuaXF1ZTxMaXN0ZW5lckNv
bm5lY3Rpb24+KGlkLCBzb2NrZXQsIGxpc3RlbmVyKTsKLSAgICBtX2xpc3RlbmVycy5hZGQoaWQs
IFdURk1vdmUoY29ubmVjdGlvbikpOwotICAgIHdha2V1cFdvcmtlclRocmVhZCgpOwotCi0gICAg
cmV0dXJuIGlkOwotfQotCiB2b2lkIFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjppbnZh
bGlkYXRlQ2xpZW50KENsaWVudCYgY2xpZW50KQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX2Nv
bm5lY3Rpb25zTG9jayk7CkBAIC0zNTksNyArMzU2LDEzIEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9y
U29ja2V0RW5kcG9pbnQ6OmFjY2VwdEluZXRTb2NrZXRJZkVuYWJsZWQoQ29ubmVjdGlvbklEIGlk
KQogICAgICAgICAgICAgbG9jay51bmxvY2tFYXJseSgpOwogICAgICAgICAgICAgaWYgKGNvbm5l
Y3Rpb24tPmxpc3RlbmVyLmRvQWNjZXB0KCp0aGlzLCBzb2NrZXQudmFsdWUoKSkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOworCiAgICAgICAgICAgICBTb2NrZXQ6OmNsb3NlKCpzb2NrZXQpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gSWYgYWNjZXB0KCkgcmV0dXJucyBlcnJv
ciwgd2UgaGF2ZSB0byBzdGFydCBvdmVyIHdpdGggYmluZCgpIGFuZCBsaXN0ZW4oKS4KKyAgICAg
ICAgICAgIC8vIEJ5IGNsb3Npbmcgc29ja2V0IGhlcmUsIGxpc3RlbigpIHdpbGwgYmUgY2FsbGVk
IGFnYWluIGF0IHRoZSBuZXh0IGxvb3Agb2Ygd29ya2VyIHRocmVhZC4KKyAgICAgICAgICAgIFNv
Y2tldDo6Y2xvc2UoY29ubmVjdGlvbi0+c29ja2V0KTsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24t
Pmxpc3RlbmVyLmRpZENoYW5nZVN0YXR1cygqdGhpcywgaWQsIExpc3RlbmVyOjpTdGF0dXM6Oklu
dmFsaWQpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBv
aW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVt
b3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQuaAppbmRleCBhZDVlNzNjM2Q1MGUuLjI1YmMxOGNi
NjhkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVu
ZHBvaW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCkBAIC00Mywx
NSArNDQsMjQgQEAgcHVibGljOgogICAgIGNsYXNzIENsaWVudCB7CiAgICAgcHVibGljOgogICAg
ICAgICB2aXJ0dWFsIH5DbGllbnQoKSB7IH0KKworICAgICAgICAvLyBUaGVzZSBjYWxsYmFja3Mg
YXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmUoUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9p
bnQmLCBDb25uZWN0aW9uSUQsIFZlY3Rvcjx1aW50OF90PiYmKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRDbG9zZShSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCYsIENvbm5lY3Rp
b25JRCkgPSAwOwogICAgIH07CiAKICAgICBjbGFzcyBMaXN0ZW5lciB7CiAgICAgcHVibGljOgor
ICAgICAgICBlbnVtIGNsYXNzIFN0YXR1cyA6IHVpbnQ4X3QgeworICAgICAgICAgICAgTGlzdGVu
aW5nLAorICAgICAgICAgICAgSW52YWxpZCwKKyAgICAgICAgICAgIENsb3NlZCwKKyAgICAgICAg
fTsKICAgICAgICAgdmlydHVhbCB+TGlzdGVuZXIoKSB7IH0KKworICAgICAgICAvLyBUaGVzZSBj
YWxsYmFja3MgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRo
cmVhZC4KICAgICAgICAgdmlydHVhbCBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IGRvQWNjZXB0KFJl
bW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgUGxhdGZvcm1Tb2NrZXRUeXBlKSA9IDA7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dCYsIENvbm5lY3Rpb25JRCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU3Rh
dHVzKFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVjdGlvbklELCBTdGF0dXMp
ID0gMDsKICAgICB9OwogCiAgICAgc3RhdGljIFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50
JiBzaW5nbGV0b24oKTsKQEAgLTY5LDcgKzc5LDYgQEAgcHVibGljOgogICAgIGlubGluZSB2b2lk
IHNlbmQoQ29ubmVjdGlvbklEIGlkLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKSB7
IHNlbmQoaWQsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBsZW5ndGgp
OyB9CiAKICAgICBPcHRpb25hbDxDb25uZWN0aW9uSUQ+IGNyZWF0ZUNsaWVudChQbGF0Zm9ybVNv
Y2tldFR5cGUsIENsaWVudCYpOwotICAgIE9wdGlvbmFsPENvbm5lY3Rpb25JRD4gY3JlYXRlTGlz
dGVuZXIoUGxhdGZvcm1Tb2NrZXRUeXBlLCBMaXN0ZW5lciYsIENsaWVudCYpOwogCiAgICAgT3B0
aW9uYWw8dWludDE2X3Q+IGdldFBvcnQoQ29ubmVjdGlvbklEKSBjb25zdDsKIApAQCAtNzksMTIg
Kzg4LDI1IEBAIHByb3RlY3RlZDoKICAgICBzdHJ1Y3QgQmFzZUNvbm5lY3Rpb24gewogICAgICAg
ICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAKLSAgICAgICAgQmFzZUNvbm5lY3Rp
b24oQ29ubmVjdGlvbklEIGlkLCBQbGF0Zm9ybVNvY2tldFR5cGUgc29ja2V0KQorICAgICAgICBC
YXNlQ29ubmVjdGlvbihDb25uZWN0aW9uSUQgaWQpCiAgICAgICAgICAgICA6IGlkIHsgaWQgfQot
ICAgICAgICAgICAgLCBzb2NrZXQgeyBzb2NrZXQgfQotICAgICAgICAgICAgLCBwb2xsIHsgU29j
a2V0OjpwcmVwYXJlUG9sbGluZyhzb2NrZXQpIH0KKyAgICAgICAgICAgICwgc29ja2V0IHsgSU5W
QUxJRF9TT0NLRVRfVkFMVUUgfQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBib29s
IHNldFNvY2tldChQbGF0Zm9ybVNvY2tldFR5cGUgbmV3U29ja2V0KQogICAgICAgICB7Ci0gICAg
ICAgICAgICBBU1NFUlQoU29ja2V0Ojppc1ZhbGlkKHNvY2tldCkpOworICAgICAgICAgICAgQVNT
RVJUKFNvY2tldDo6aXNWYWxpZChuZXdTb2NrZXQpKTsKKworICAgICAgICAgICAgaWYgKCFTb2Nr
ZXQ6OnNldHVwKG5ld1NvY2tldCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgICAgICBpZiAoU29ja2V0Ojppc1ZhbGlkKHNvY2tldCkpCisgICAgICAgICAgICAgICAg
U29ja2V0OjpjbG9zZShzb2NrZXQpOworCisgICAgICAgICAgICBzb2NrZXQgPSBuZXdTb2NrZXQ7
CisgICAgICAgICAgICBwb2xsID0gU29ja2V0OjpwcmVwYXJlUG9sbGluZyhzb2NrZXQpOworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAgICBDb25uZWN0aW9uSUQg
aWQ7CkBAIC05NCw5ICsxMTYsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgc3RydWN0IENsaWVudENv
bm5lY3Rpb24gOiBwdWJsaWMgQmFzZUNvbm5lY3Rpb24gewogICAgICAgICBDbGllbnRDb25uZWN0
aW9uKENvbm5lY3Rpb25JRCBpZCwgUGxhdGZvcm1Tb2NrZXRUeXBlIHNvY2tldCwgQ2xpZW50JiBj
bGllbnQpCi0gICAgICAgICAgICA6IEJhc2VDb25uZWN0aW9uKGlkLCBzb2NrZXQpCisgICAgICAg
ICAgICA6IEJhc2VDb25uZWN0aW9uKGlkKQogICAgICAgICAgICAgLCBjbGllbnQgeyBjbGllbnQg
fQogICAgICAgICB7CisgICAgICAgICAgICBzZXRTb2NrZXQoc29ja2V0KTsKICAgICAgICAgfQog
CiAgICAgICAgIENsaWVudCYgY2xpZW50OwpAQCAtMTA0LDE3ICsxMjcsNTIgQEAgcHJvdGVjdGVk
OgogICAgIH07CiAKICAgICBzdHJ1Y3QgTGlzdGVuZXJDb25uZWN0aW9uIDogcHVibGljIEJhc2VD
b25uZWN0aW9uIHsKLSAgICAgICAgTGlzdGVuZXJDb25uZWN0aW9uKENvbm5lY3Rpb25JRCBpZCwg
UGxhdGZvcm1Tb2NrZXRUeXBlIHNvY2tldCwgTGlzdGVuZXImIGxpc3RlbmVyKQotICAgICAgICAg
ICAgOiBCYXNlQ29ubmVjdGlvbihpZCwgc29ja2V0KQorICAgICAgICBzdGF0aWMgY29uc3RleHBy
IFNlY29uZHMgaW5pdGlhbFJldHJ5SW50ZXJ2YWwgeyAyMDBfbXMgfTsKKyAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciBTZWNvbmRzIG1heFJldHJ5SW50ZXJ2YWwgeyA1X3MgfTsKKworICAgICAgICBM
aXN0ZW5lckNvbm5lY3Rpb24oQ29ubmVjdGlvbklEIGlkLCBMaXN0ZW5lciYgbGlzdGVuZXIsIGNv
bnN0IGNoYXIqIGFkZHJlc3MsIHVpbnQxNl90IHBvcnQpCisgICAgICAgICAgICA6IEJhc2VDb25u
ZWN0aW9uKGlkKQorICAgICAgICAgICAgLCBhZGRyZXNzIHsgYWRkcmVzcyB9CisgICAgICAgICAg
ICAsIHBvcnQgeyBwb3J0IH0KICAgICAgICAgICAgICwgbGlzdGVuZXIgeyBsaXN0ZW5lciB9CiAg
ICAgICAgIHsKKyAgICAgICAgICAgIGxpc3RlbigpOworICAgICAgICB9CisKKyAgICAgICAgYm9v
bCBsaXN0ZW4oKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoIWlzTGlzdGVuaW5nKCkp
OworCisgICAgICAgICAgICBpZiAobmV4dFJldHJ5VGltZSAmJiAqbmV4dFJldHJ5VGltZSA+IE1v
bm90b25pY1RpbWU6Om5vdygpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICAgICAgaWYgKGF1dG8gbmV3U29ja2V0ID0gU29ja2V0OjpsaXN0ZW4oYWRkcmVzcy51dGY4
KCkuZGF0YSgpLCBwb3J0KSkgeworICAgICAgICAgICAgICAgIGlmIChzZXRTb2NrZXQoKm5ld1Nv
Y2tldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0cnlJbnRlcnZhbCA9IGluaXRpYWxSZXRy
eUludGVydmFsOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgU29ja2V0OjpjbG9zZSgqbmV3U29ja2V0KTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgbmV4dFJldHJ5VGltZSA9IE1vbm90b25pY1RpbWU6Om5v
dygpICsgcmV0cnlJbnRlcnZhbDsKKyAgICAgICAgICAgIHJldHJ5SW50ZXJ2YWwgPSBzdGQ6Om1p
bjxTZWNvbmRzPihyZXRyeUludGVydmFsICogMiwgbWF4UmV0cnlJbnRlcnZhbCk7CisKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaXNMaXN0ZW5p
bmcoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gU29ja2V0Ojppc0xpc3RlbmluZyhz
b2NrZXQpOwogICAgICAgICB9CiAKKyAgICAgICAgU3RyaW5nIGFkZHJlc3M7CisgICAgICAgIHVp
bnQxNl90IHBvcnQ7CiAgICAgICAgIExpc3RlbmVyJiBsaXN0ZW5lcjsKKyAgICAgICAgT3B0aW9u
YWw8TW9ub3RvbmljVGltZT4gbmV4dFJldHJ5VGltZTsKKyAgICAgICAgU2Vjb25kcyByZXRyeUlu
dGVydmFsIHsgaW5pdGlhbFJldHJ5SW50ZXJ2YWwgfTsKICAgICB9OwogCiAgICAgQ29ubmVjdGlv
bklEIGdlbmVyYXRlQ29ubmVjdGlvbklEKCk7Ci0gICAgT3B0aW9uYWw8Q29ubmVjdGlvbklEPiBj
cmVhdGVMaXN0ZW5lcihQbGF0Zm9ybVNvY2tldFR5cGUsIExpc3RlbmVyJik7CiAKICAgICB2b2lk
IHJlY3ZJZkVuYWJsZWQoQ29ubmVjdGlvbklEKTsKICAgICB2b2lkIHNlbmRJZkVuYWJsZWQoQ29u
bmVjdGlvbklEKTsKQEAgLTEyMiw2ICsxODAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB3YWtl
dXBXb3JrZXJUaHJlYWQoKTsKICAgICB2b2lkIGFjY2VwdEluZXRTb2NrZXRJZkVuYWJsZWQoQ29u
bmVjdGlvbklEKTsKICAgICBib29sIGlzTGlzdGVuaW5nKENvbm5lY3Rpb25JRCk7CisgICAgaW50
IHBvbGxpbmdUaW1lb3V0KCk7CiAKICAgICBtdXRhYmxlIExvY2sgbV9jb25uZWN0aW9uc0xvY2s7
CiAgICAgSGFzaE1hcDxDb25uZWN0aW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxDbGllbnRDb25uZWN0
aW9uPj4gbV9jbGllbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZwppbmRleCA3MmNjMTQzMDJkMDcuLjM0ZWY2ZWVk
NDk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0xMC0wNiAgQmFzdWtl
IFN1enVraSAgPGJhc3VrZS5zdXp1a2lAc29ueS5jb20+CisKKyAgICAgICAgW1dpbkNhaXJvXVtQ
bGF5U3RhdGlvbl0gQWRkIGhhbmRsaW5nIGZvciBhY2NlcHQgZmFpbHVyZSBjYXNlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTczNTMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb2xsb3dpbmcgdGhlIGlu
dGVyZmFjZSBjaGFuZ2UuCisKKyAgICAgICAgKiBIVFRQU2VydmVyLmg6CisgICAgICAgICogc29j
a2V0L0hUVFBTZXJ2ZXJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpIVFRQU2VydmVy
OjpkaWRTdGF0dXNDaGFuZ2VkKToKKwogMjAyMC0xMC0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBhZGQgc3VwcG9ydCBm
b3Igc2FtZSBzaXRlIGNvb2tpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvSFRUUFNl
cnZlci5oIGIvU291cmNlL1dlYkRyaXZlci9IVFRQU2VydmVyLmgKaW5kZXggNTNmMmFkOTI5ZDVi
Li40YjRhMmUyMjdmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvSFRUUFNlcnZlci5o
CisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvSFRUUFNlcnZlci5oCkBAIC05NSw3ICs5NSw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAjaWYgVVNFKElOU1BFQ1RPUl9TT0NLRVRfU0VSVkVSKQogICAgIE9w
dGlvbmFsPENvbm5lY3Rpb25JRD4gZG9BY2NlcHQoUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9p
bnQmLCBQbGF0Zm9ybVNvY2tldFR5cGUpIGZpbmFsOwotICAgIHZvaWQgZGlkQ2xvc2UoUmVtb3Rl
SW5zcGVjdG9yU29ja2V0RW5kcG9pbnQmLCBDb25uZWN0aW9uSUQpIGZpbmFsOworICAgIHZvaWQg
ZGlkQ2hhbmdlU3RhdHVzKFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiwgQ29ubmVjdGlv
bklELCBSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludDo6TGlzdGVuZXI6OlN0YXR1cykgZmlu
YWw7CiAjZW5kaWYKIAogICAgIEhUVFBSZXF1ZXN0SGFuZGxlciYgbV9yZXF1ZXN0SGFuZGxlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvc29ja2V0L0hUVFBTZXJ2ZXJTb2NrZXQuY3Bw
IGIvU291cmNlL1dlYkRyaXZlci9zb2NrZXQvSFRUUFNlcnZlclNvY2tldC5jcHAKaW5kZXggMWUw
YTdkYmIxZmZiLi5iM2M5NmRhMmEwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvc29j
a2V0L0hUVFBTZXJ2ZXJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvc29ja2V0L0hU
VFBTZXJ2ZXJTb2NrZXQuY3BwCkBAIC01Niw5ICs1NiwxMCBAQCBPcHRpb25hbDxDb25uZWN0aW9u
SUQ+IEhUVFBTZXJ2ZXI6OmRvQWNjZXB0KFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50JiBl
bmRwbwogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKLXZvaWQgSFRUUFNlcnZlcjo6ZGlk
Q2xvc2UoUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQmLCBDb25uZWN0aW9uSUQpCit2b2lk
IEhUVFBTZXJ2ZXI6OmRpZENoYW5nZVN0YXR1cyhSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2lu
dCYsIENvbm5lY3Rpb25JRCwgUmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6Okxpc3RlbmVy
OjpTdGF0dXMgc3RhdHVzKQogewotICAgIG1fc2VydmVyID0gV1RGOjpudWxsb3B0OworICAgIGlm
IChzdGF0dXMgPT0gU3RhdHVzOjpDbG9zZWQpCisgICAgICAgIG1fc2VydmVyID0gV1RGOjpudWxs
b3B0OwogfQogCiB2b2lkIEhUVFBSZXF1ZXN0SGFuZGxlcjo6Y29ubmVjdChDb25uZWN0aW9uSUQg
aWQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>