<?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>195024</bug_id>
          
          <creation_ts>2019-02-25 16:11:53 -0800</creation_ts>
          <short_desc>Network Process is put to suspended when holding locked IndexedDB files</short_desc>
          <delta_ts>2019-02-27 10:55:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1509826</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-25 16:11:53 -0800</bug_when>
    <thetext>Network process should take a background task assertion so that it won&apos;t get suspended when it&apos;s holding locked files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509832</commentid>
    <comment_count>1</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-25 16:19:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/45194169&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509847</commentid>
    <comment_count>2</comment_count>
      <attachid>362943</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-25 16:47:18 -0800</bug_when>
    <thetext>Created attachment 362943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509854</commentid>
    <comment_count>3</comment_count>
      <attachid>362943</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-02-25 17:06:34 -0800</bug_when>
    <thetext>Comment on attachment 362943
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        We found network process was put to suspension when IDBDatabase was being closed in the background database

was put to suspension when =&gt; was suspended while

&gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:47
&gt; +    WTFReportBacktrace();

Please revert.

&gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:53
&gt; +    WTFReportBacktrace();

Please revert.

&gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:69
&gt; +    , m_notifyProcessFunction(WTFMove(notifyProcessFunction))

I&apos;m having a hard time understanding what this function pointer does. I think it needs a better name. Can you describe it in words, and maybe we can come up with a name?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510063</commentid>
    <comment_count>4</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-26 10:16:53 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #3)
&gt; Comment on attachment 362943 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=362943&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        We found network process was put to suspension when IDBDatabase was being closed in the background database
&gt; 
&gt; was put to suspension when =&gt; was suspended while
&gt; 
Okay.

&gt; &gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:47
&gt; &gt; +    WTFReportBacktrace();
&gt; 
&gt; Please revert.
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:53
&gt; &gt; +    WTFReportBacktrace();
&gt; 
&gt; Please revert.
&gt; 
Oops, sure.

&gt; &gt; Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:69
&gt; &gt; +    , m_notifyProcessFunction(WTFMove(notifyProcessFunction))
&gt; 
&gt; I&apos;m having a hard time understanding what this function pointer does. I
&gt; think it needs a better name. Can you describe it in words, and maybe we can
&gt; come up with a name?

This function pointer let IDBServer send a message via connection of NetworkProcess, since IDBServer doesn&apos;t have a NetworkProcess member. That&apos;s why I called it notify(Network)ProcessFunction...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510169</commentid>
    <comment_count>5</comment_count>
      <attachid>362943</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-02-26 13:22:04 -0800</bug_when>
    <thetext>Comment on attachment 362943
Patch

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

&gt; Source/WebCore/Modules/indexeddb/server/IDBServer.h:144
&gt; +    WTF::Function&lt;void(bool)&gt; m_notifyProcessFunction;

Let&apos;s call this m_isClosingDatabaseCallback.

&gt; Source/WebCore/Modules/indexeddb/server/IDBServer.h:145
&gt; +    PAL::HysteresisActivity m_hysteresis;

Let&apos;s call this m_isClosingDatabaseHysteresis.

Would that make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510181</commentid>
    <comment_count>6</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-26 13:43:45 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #5)
&gt; Comment on attachment 362943 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=362943&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/server/IDBServer.h:144
&gt; &gt; +    WTF::Function&lt;void(bool)&gt; m_notifyProcessFunction;
&gt; 
&gt; Let&apos;s call this m_isClosingDatabaseCallback.
&gt; 
Okay.

&gt; &gt; Source/WebCore/Modules/indexeddb/server/IDBServer.h:145
&gt; &gt; +    PAL::HysteresisActivity m_hysteresis;
&gt; 
&gt; Let&apos;s call this m_isClosingDatabaseHysteresis.
&gt; 
Okay.

&gt; Would that make sense?
&gt;
Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510187</commentid>
    <comment_count>7</comment_count>
      <attachid>363018</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-02-26 13:52:18 -0800</bug_when>
    <thetext>Created attachment 363018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510197</commentid>
    <comment_count>8</comment_count>
      <attachid>363018</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-02-26 14:15:27 -0800</bug_when>
    <thetext>Comment on attachment 363018
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510501</commentid>
    <comment_count>9</comment_count>
      <attachid>363018</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-27 10:55:13 -0800</bug_when>
    <thetext>Comment on attachment 363018
Patch

Clearing flags on attachment: 363018

Committed r242136: &lt;https://trac.webkit.org/changeset/242136&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510502</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-27 10:55:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362943</attachid>
            <date>2019-02-25 16:47:18 -0800</date>
            <delta_ts>2019-02-26 13:52:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195024-20190225164717.patch</filename>
            <type>text/plain</type>
            <size>18066</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJhMGQ0OGUxODc3OWZm
MTBhMDE2M2VhMTdjN2RhMGU1ZmZlNTBjMy4uNzkwZTgxODc0MzAzZjhhYmQ0ZWRhYWFhMjg3MTVi
Y2M0M2M4ZDhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTAyLTI1ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIE5ldHdvcmsgUHJvY2VzcyBp
cyBwdXQgdG8gc3VzcGVuZGVkIHdoZW4gaG9sZGluZyBsb2NrZWQgSW5kZXhlZERCIGZpbGVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUwMjQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTk0MTY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyB3YXMgcHV0
IHRvIHN1c3BlbnNpb24gd2hlbiBJREJEYXRhYmFzZSB3YXMgYmVpbmcgY2xvc2VkIGluIHRoZSBi
YWNrZ3JvdW5kIGRhdGFiYXNlCisgICAgICAgIHRocmVhZCwgaG9sZGluZyBsb2NrcyB0byBpdHMg
ZGF0YWJhc2UgZmlsZS4gVG8gYXZvaWQgc3RhcnZhdGlvbiBvciBkZWFkbG9jaywgd2UgbmVlZCB0
byBrZWVwIG5ldHdvcmsgcHJvY2VzcworICAgICAgICBhbGl2ZSBieSB0YWtpbmcgYmFja2dyb3Vu
ZCBhc3NlcnRpb24gaW4gVUkgcHJvY2VzcyB1bnRpbCB0aGUgY2xvc2VzIGFyZSBkb25lIGFuZCBs
b2NrcyBhcmUgcmVsZWFzZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OklEQlNlcnZl
cik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y3JlYXRlQmFja2lu
Z1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpjbG9zZURh
dGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpkaWRDbG9z
ZURhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1
cnJlbnREZWxldGVPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZTo6c2NoZWR1bGVTaHV0ZG93bkZvckNsb3NlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZFNodXRkb3duRm9yQ2xvc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRGVsZXRl
QmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2U6OmltbWVkaWF0ZUNsb3NlRm9yVXNlckRlbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpub3RpZnlTZXJ2ZXJBYm91dENsb3NlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaDoKKwog
MjAxOS0wMi0yNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBtaXNzaW5nIHN0cmVhbSBwYXJhbWV0ZXIuIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxY2I3
OGM0YWE0NzViODgzNDY0MmRiNTBlNjViYTJmYjNlMDdjYTIuLjUzMDcwYzdhOGFkNzJiODJhNjYy
MDA0NDMyYWY1ZDg3Y2I2MWUzNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDIt
MjUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgTmV0d29yayBQ
cm9jZXNzIGlzIHB1dCB0byBzdXNwZW5kZWQgd2hlbiBob2xkaW5nIGxvY2tlZCBJbmRleGVkREIg
ZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
NTAyNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxOTQxNjk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppZGJTZXJ2ZXIp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6bm90aWZ5SG9sZGluZ0xvY2tlZEZp
bGVzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldElzSURCRGF0YWJhc2VIb2xkaW5nTG9ja2VkRmlsZXMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
OgorCiAyMDE5LTAyLTI1ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNv
bT4KIAogICAgICAgICBbV1BFXVtHVEtdIENsZWFuIHVwIGhhbmRsaW5nIG9mIFdFQktJVF9GT1JD
RV9DT01QTEVYX1RFWFQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggNWQ5MzZjOGJlYmJhZDhhNmM1MmRmZTQzODQ3
ZjRhNzM0ZTUzNDQ0Yi4uNjljYTkwYTU4NGZiNDczODJhYzQ2MDY0YWJmMjZhYWY2NTM2OWU0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAKQEAgLTQyLDI2ICs0MiwzMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFt
ZXNwYWNlIElEQlNlcnZlciB7CiAKLVJlZjxJREJTZXJ2ZXI+IElEQlNlcnZlcjo6Y3JlYXRlKElE
QkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlcikKK1JlZjxJREJT
ZXJ2ZXI+IElEQlNlcnZlcjo6Y3JlYXRlKElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5k
bGVyJiBmaWxlSGFuZGxlciwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIG5vdGlmeVByb2Nl
c3NGdW5jdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJTZXJ2ZXIoZmlsZUhh
bmRsZXIpKTsKKyAgICBXVEZSZXBvcnRCYWNrdHJhY2UoKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJREJTZXJ2ZXIoZmlsZUhhbmRsZXIsIFdURk1vdmUobm90aWZ5UHJvY2Vzc0Z1bmN0aW9u
KSkpOwogfQogCi1SZWY8SURCU2VydmVyPiBJREJTZXJ2ZXI6OmNyZWF0ZShjb25zdCBTdHJpbmcm
IGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRs
ZXImIGZpbGVIYW5kbGVyKQorUmVmPElEQlNlcnZlcj4gSURCU2VydmVyOjpjcmVhdGUoY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeVBhdGgsIElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZp
bGVIYW5kbGVyJiBmaWxlSGFuZGxlciwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIG5vdGlm
eVByb2Nlc3NGdW5jdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJTZXJ2ZXIo
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCBmaWxlSGFuZGxlcikpOworICAgIFdURlJlcG9ydEJhY2t0
cmFjZSgpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQlNlcnZlcihkYXRhYmFzZURpcmVj
dG9yeVBhdGgsIGZpbGVIYW5kbGVyLCBXVEZNb3ZlKG5vdGlmeVByb2Nlc3NGdW5jdGlvbikpKTsK
IH0KIAotSURCU2VydmVyOjpJREJTZXJ2ZXIoSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhh
bmRsZXImIGZpbGVIYW5kbGVyKQorSURCU2VydmVyOjpJREJTZXJ2ZXIoSURCQmFja2luZ1N0b3Jl
VGVtcG9yYXJ5RmlsZUhhbmRsZXImIGZpbGVIYW5kbGVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9v
bCk+JiYgbm90aWZ5UHJvY2Vzc0Z1bmN0aW9uKQogICAgIDogQ3Jvc3NUaHJlYWRUYXNrSGFuZGxl
cigiSW5kZXhlZERhdGFiYXNlIFNlcnZlciIpCiAgICAgLCBtX2JhY2tpbmdTdG9yZVRlbXBvcmFy
eUZpbGVIYW5kbGVyKGZpbGVIYW5kbGVyKQorICAgICwgbV9ub3RpZnlQcm9jZXNzRnVuY3Rpb24o
V1RGTW92ZShub3RpZnlQcm9jZXNzRnVuY3Rpb24pKQorICAgICwgbV9oeXN0ZXJlc2lzKFsmXShQ
QUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBtX25vdGlmeVByb2Nlc3NGdW5jdGlvbihzdGF0
ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RhcnRlZCk7IH0pCiB7CiB9CiAKLUlEQlNlcnZl
cjo6SURCU2VydmVyKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCBJREJCYWNr
aW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYgZmlsZUhhbmRsZXIpCitJREJTZXJ2ZXI6OklE
QlNlcnZlcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0
b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXImIGZpbGVIYW5kbGVyLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
Ym9vbCk+JiYgbm90aWZ5UHJvY2Vzc0Z1bmN0aW9uKQogICAgIDogQ3Jvc3NUaHJlYWRUYXNrSGFu
ZGxlcigiSW5kZXhlZERhdGFiYXNlIFNlcnZlciIpCiAgICAgLCBtX2RhdGFiYXNlRGlyZWN0b3J5
UGF0aChkYXRhYmFzZURpcmVjdG9yeVBhdGgpCiAgICAgLCBtX2JhY2tpbmdTdG9yZVRlbXBvcmFy
eUZpbGVIYW5kbGVyKGZpbGVIYW5kbGVyKQorICAgICwgbV9ub3RpZnlQcm9jZXNzRnVuY3Rpb24o
V1RGTW92ZShub3RpZnlQcm9jZXNzRnVuY3Rpb24pKQorICAgICwgbV9oeXN0ZXJlc2lzKFsmXShQ
QUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBtX25vdGlmeVByb2Nlc3NGdW5jdGlvbihzdGF0
ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RhcnRlZCk7IH0pCiB7CiAgICAgTE9HKEluZGV4
ZWREQiwgIklEQlNlcnZlciBjcmVhdGVkIGF0IHBhdGggJXMiLCBkYXRhYmFzZURpcmVjdG9yeVBh
dGgudXRmOCgpLmRhdGEoKSk7CiB9CkBAIC0xMjIsNyArMTI4LDYgQEAgVW5pcXVlSURCRGF0YWJh
c2UmIElEQlNlcnZlcjo6Z2V0T3JDcmVhdGVVbmlxdWVJREJEYXRhYmFzZShjb25zdCBJREJEYXRh
YmFzZUlkZW4KIHN0ZDo6dW5pcXVlX3B0cjxJREJCYWNraW5nU3RvcmU+IElEQlNlcnZlcjo6Y3Jl
YXRlQmFja2luZ1N0b3JlKGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYgaWRlbnRpZmllcikK
IHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKLQogICAgIGlmIChtX2RhdGFiYXNlRGly
ZWN0b3J5UGF0aC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBNZW1vcnlJREJCYWNraW5nU3Rv
cmU6OmNyZWF0ZShpZGVudGlmaWVyKTsKIApAQCAtNjUyLDYgKzY1NywyOSBAQCB2b2lkIElEQlNl
cnZlcjo6c2V0UGVyT3JpZ2luUXVvdGEodWludDY0X3QgcXVvdGEpCiAgICAgICAgIGRhdGFiYXNl
LT5zZXRRdW90YShxdW90YSk7CiB9CiAKK3ZvaWQgSURCU2VydmVyOjpjbG9zZURhdGFiYXNlKFVu
aXF1ZUlEQkRhdGFiYXNlKiBkYXRhYmFzZSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIGlmIChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV91bmlxdWVJREJEYXRhYmFzZXNJbkNsb3Nl
LmFkZChkYXRhYmFzZSk7CisgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5ICYmIG1fdW5pcXVl
SURCRGF0YWJhc2VzSW5DbG9zZS5zaXplKCkgPT0gMSkKKyAgICAgICAgbV9oeXN0ZXJlc2lzLnN0
YXJ0KCk7Cit9CisKK3ZvaWQgSURCU2VydmVyOjpkaWRDbG9zZURhdGFiYXNlKFVuaXF1ZUlEQkRh
dGFiYXNlKiBkYXRhYmFzZSkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlm
IChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChtX3VuaXF1ZUlEQkRhdGFiYXNlc0luQ2xvc2UucmVtb3ZlKGRhdGFiYXNlKSkgewor
ICAgICAgICBpZiAobV91bmlxdWVJREJEYXRhYmFzZXNJbkNsb3NlLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIG1faHlzdGVyZXNpcy5zdG9wKCk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBJ
REJTZXJ2ZXIKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IGZhODlhYTVjYzQx
NDczNzdkZjY3NWUyZDdkNmM2ZjcwOWE1ZWZmMGEuLjA4MGUwMjViZGJkNTMxYTU0Y2M2YzVkYWUy
MmE4MzM0MWNlOGQ2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJJREJE
YXRhYmFzZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJVbmlxdWVJREJEYXRhYmFzZS5oIgogI2lu
Y2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHBhbC9IeXN0
ZXJlc2lzQWN0aXZpdHkuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTU0
LDggKzU1LDggQEAgY2xhc3MgSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXI7CiAK
IGNsYXNzIElEQlNlcnZlciA6IHB1YmxpYyBSZWZDb3VudGVkPElEQlNlcnZlcj4sIHB1YmxpYyBD
cm9zc1RocmVhZFRhc2tIYW5kbGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPElEQlNlcnZl
cj4gY3JlYXRlKElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJik7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFJlZjxJREJTZXJ2ZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIm
KTsKKyAgICBzdGF0aWMgUmVmPElEQlNlcnZlcj4gY3JlYXRlKElEQkJhY2tpbmdTdG9yZVRlbXBv
cmFyeUZpbGVIYW5kbGVyJiwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIG5vdGlmeVByb2Nl
c3NGdW5jdGlvbiA9IFtdKGJvb2wpIHsgfSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJl
ZjxJREJTZXJ2ZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwg
SURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXImLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
Ym9vbCk+JiYgbm90aWZ5UHJvY2Vzc0Z1bmN0aW9uID0gW10oYm9vbCkgeyB9KTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcmVnaXN0ZXJDb25uZWN0aW9uKElEQkNvbm5lY3Rpb25Ub0NsaWVu
dCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5yZWdpc3RlckNvbm5lY3Rpb24oSURCQ29u
bmVjdGlvblRvQ2xpZW50Jik7CkBAIC0xMDgsMTAgKzEwOSwxNCBAQCBwdWJsaWM6CiAKICAgICB1
aW50NjRfdCBwZXJPcmlnaW5RdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fcGVyT3JpZ2luUXVvdGE7
IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBlck9yaWdpblF1b3RhKHVpbnQ2NF90KTsK
KyAgICAKKyAgICB2b2lkIGNsb3NlRGF0YWJhc2UoVW5pcXVlSURCRGF0YWJhc2UqKTsKKyAgICB2
b2lkIGRpZENsb3NlRGF0YWJhc2UoVW5pcXVlSURCRGF0YWJhc2UqKTsKKyAgICB2b2lkIGh5c3Rl
cmVzaXNVcGRhdGVkKFBBTDo6SHlzdGVyZXNpc1N0YXRlKTsKIAogcHJpdmF0ZToKLSAgICBJREJT
ZXJ2ZXIoSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXImKTsKLSAgICBJREJTZXJ2
ZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeVBhdGgsIElEQkJhY2tpbmdTdG9yZVRl
bXBvcmFyeUZpbGVIYW5kbGVyJik7CisgICAgSURCU2VydmVyKElEQkJhY2tpbmdTdG9yZVRlbXBv
cmFyeUZpbGVIYW5kbGVyJiwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmKTsKKyAgICBJREJT
ZXJ2ZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeVBhdGgsIElEQkJhY2tpbmdTdG9y
ZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmKTsKIAog
ICAgIFVuaXF1ZUlEQkRhdGFiYXNlJiBnZXRPckNyZWF0ZVVuaXF1ZUlEQkRhdGFiYXNlKGNvbnN0
IElEQkRhdGFiYXNlSWRlbnRpZmllciYpOwogCkBAIC0xMjQsNiArMTI5LDcgQEAgcHJpdmF0ZToK
IAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJREJDb25uZWN0aW9uVG9DbGllbnQ+PiBt
X2Nvbm5lY3Rpb25NYXA7CiAgICAgSGFzaE1hcDxJREJEYXRhYmFzZUlkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxVbmlxdWVJREJEYXRhYmFzZT4+IG1fdW5pcXVlSURCRGF0YWJhc2VNYXA7Cisg
ICAgSGFzaFNldDxVbmlxdWVJREJEYXRhYmFzZSo+IG1fdW5pcXVlSURCRGF0YWJhc2VzSW5DbG9z
ZTsKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbio+
IG1fZGF0YWJhc2VDb25uZWN0aW9uczsKICAgICBIYXNoTWFwPElEQlJlc291cmNlSWRlbnRpZmll
ciwgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbio+IG1fdHJhbnNhY3Rpb25zOwpAQCAtMTM0
LDYgKzE0MCw5IEBAIHByaXZhdGU6CiAgICAgSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhh
bmRsZXImIG1fYmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXI7CiAKICAgICB1aW50NjRf
dCBtX3Blck9yaWdpblF1b3RhIHsgZGVmYXVsdFBlck9yaWdpblF1b3RhIH07CisKKyAgICBXVEY6
OkZ1bmN0aW9uPHZvaWQoYm9vbCk+IG1fbm90aWZ5UHJvY2Vzc0Z1bmN0aW9uOworICAgIFBBTDo6
SHlzdGVyZXNpc0FjdGl2aXR5IG1faHlzdGVyZXNpczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIElE
QlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5kZXggNzc3YTA5OTEwZjEwNzgxMmNm
NTUyNjMyNzk5YTAzNzAwZWMzMzY4ZS4uMzMzZDEzOWVmN2RiYjQ2M2I5Y2UxMmFmM2JiNWE1OWMy
MzQ3YzlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCkBAIC0yMjYsNiArMjI2LDcgQEAg
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnREZWxldGVPcGVyYXRpb24oKQog
ICAgICAgICAgICAgZGlkRGVsZXRlQmFja2luZ1N0b3JlKDApOwogICAgICAgICBlbHNlIHsKICAg
ICAgICAgICAgIG1fZGVsZXRlQmFja2luZ1N0b3JlSW5Qcm9ncmVzcyA9IHRydWU7CisgICAgICAg
ICAgICBub3RpZnlTZXJ2ZXJBYm91dENsb3NlKENsb3NlU3RhdGU6OlN0YXJ0KTsKICAgICAgICAg
ICAgIHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVl
SURCRGF0YWJhc2U6OmRlbGV0ZUJhY2tpbmdTdG9yZSwgbV9pZGVudGlmaWVyKSk7CiAgICAgICAg
IH0KICAgICB9CkBAIC0yNzgsNiArMjc5LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6c2No
ZWR1bGVTaHV0ZG93bkZvckNsb3NlKCkKICAgICBSRUxFQVNFX0FTU0VSVCghbV9vd25pbmdQb2lu
dGVyRm9yQ2xvc2UpOwogICAgIG1fb3duaW5nUG9pbnRlckZvckNsb3NlID0gbV9zZXJ2ZXIuY2xv
c2VBbmRUYWtlVW5pcXVlSURCRGF0YWJhc2UoKnRoaXMpOwogCisgICAgbm90aWZ5U2VydmVyQWJv
dXRDbG9zZShDbG9zZVN0YXRlOjpTdGFydCk7CiAgICAgcG9zdERhdGFiYXNlVGFzayhjcmVhdGVD
cm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6c2h1dGRvd25Gb3JDbG9z
ZSkpOwogfQogCkBAIC0zMDUsNiArMzA3LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlk
U2h1dGRvd25Gb3JDbG9zZSgpCiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2VSZXBseVF1ZXVlLmlz
RW1wdHkoKSk7CiAgICAgbV9kYXRhYmFzZVJlcGx5UXVldWUua2lsbCgpOworICAgIG5vdGlmeVNl
cnZlckFib3V0Q2xvc2UoQ2xvc2VTdGF0ZTo6RG9uZSk7CiB9CiAKIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OmRpZERlbGV0ZUJhY2tpbmdTdG9yZSh1aW50NjRfdCBkZWxldGVkVmVyc2lvbikKQEAg
LTM0MCw2ICszNDMsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWREZWxldGVCYWNraW5n
U3RvcmUodWludDY0X3QgZGVsZXRlZFZlcnNpb24pCiAKICAgICBpZiAobV9oYXJkQ2xvc2VkRm9y
VXNlckRlbGV0ZSkKICAgICAgICAgcmV0dXJuOworICAgIG5vdGlmeVNlcnZlckFib3V0Q2xvc2Uo
Q2xvc2VTdGF0ZTo6RG9uZSk7CiAKICAgICBpbnZva2VPcGVyYXRpb25BbmRUcmFuc2FjdGlvblRp
bWVyKCk7CiB9CkBAIC0xODkxLDYgKzE4OTUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpp
bW1lZGlhdGVDbG9zZUZvclVzZXJEZWxldGUoKQogICAgIGlmIChtX293bmluZ1BvaW50ZXJGb3JD
bG9zZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbm90aWZ5U2VydmVyQWJvdXRDbG9zZShDbG9z
ZVN0YXRlOjpTdGFydCk7CiAgICAgLy8gT3RoZXJ3aXNlLCB0aGlzIGRhdGFiYXNlIGlzIHN0aWxs
IHBvdGVudGlhbGx5IGFjdGl2ZS4KICAgICAvLyBTbyB3ZSdsbCBoYXZlIGl0IG93biBpdHNlbGYg
YW5kIHRoZW4gcGVyZm9ybSBhIGNsZWFuIHVuY29uZGl0aW9uYWwgZGVsZXRlIG9uIHRoZSBiYWNr
Z3JvdW5kIHRocmVhZC4KICAgICBtX293bmluZ1BvaW50ZXJGb3JDbG9zZSA9IG1fc2VydmVyLmNs
b3NlQW5kVGFrZVVuaXF1ZUlEQkRhdGFiYXNlKCp0aGlzKTsKQEAgLTE5NjYsNiArMTk3MSwxOSBA
QCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpzZXRRdW90YSh1aW50NjRfdCBxdW90YSkKICAgICAg
ICAgbV9iYWNraW5nU3RvcmUtPnNldFF1b3RhKHF1b3RhKTsKIH0KIAordm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6bm90aWZ5U2VydmVyQWJvdXRDbG9zZShDbG9zZVN0YXRlIHN0YXRlKQoreworICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBp
ZiAoc3RhdGUgPT0gQ2xvc2VTdGF0ZTo6U3RhcnQpIAorICAgICAgICBtX3NlcnZlci5jbG9zZURh
dGFiYXNlKHRoaXMpOworICAgIGVsc2UKKyAgICAgICAgbV9zZXJ2ZXIuZGlkQ2xvc2VEYXRhYmFz
ZSh0aGlzKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKKyNlbmRpZgorfQorCiB9
IC8vIG5hbWVzcGFjZSBJREJTZXJ2ZXIKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuaAppbmRleCBkZTA2MGU2OGQ3ZjQ2MmQ5NDU2NDc1MTVhODZmYzMyMTUyNzBk
NmY3Li40NzM1YWM2YmM5ZjQ0ZmNiNjMxMjFkZGM1NjI3NjVjYmNkNzMzZjM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuaApAQCAtMTIxLDYgKzEyMSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0
UXVvdGEodWludDY0X3QpOwogcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIENsb3NlU3RhdGUgeyBT
dGFydCwgRG9uZSB9OworCiAgICAgdm9pZCBoYW5kbGVEYXRhYmFzZU9wZXJhdGlvbnMoKTsKICAg
ICB2b2lkIGhhbmRsZUN1cnJlbnRPcGVyYXRpb24oKTsKICAgICB2b2lkIHBlcmZvcm1DdXJyZW50
T3Blbk9wZXJhdGlvbigpOwpAQCAtMjI1LDYgKzIyNyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBt
YXliZUZpbmlzaEhhcmRDbG9zZSgpOwogICAgIGJvb2wgaXNEb25lV2l0aEhhcmRDbG9zZSgpOwog
CisgICAgdm9pZCBub3RpZnlTZXJ2ZXJBYm91dENsb3NlKENsb3NlU3RhdGUpOworCiAgICAgSURC
U2VydmVyJiBtX3NlcnZlcjsKICAgICBJREJEYXRhYmFzZUlkZW50aWZpZXIgbV9pZGVudGlmaWVy
OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcAppbmRleCA5ZjFmMDAwZDk4ZDdiYTczZDI0YzE4MWZiNDFiZTE0YjU4MzVlMmI2Li5mOWUy
Nzc3MzdhNDVjOTFhOTA1OTcxZDFlZDkyYzNiMWQwYWI5ZDE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMTk3OCw3ICsxOTc4LDkg
QEAgSURCU2VydmVyOjpJREJTZXJ2ZXImIE5ldHdvcmtQcm9jZXNzOjppZGJTZXJ2ZXIoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIC8vIElmIHRoZXJlJ3Mgbm90LCB0aGVuIHdoZXJlIGRp
ZCB0aGlzIFBBTDo6U2Vzc2lvbklEIGNvbWUgZnJvbT8KICAgICBBU1NFUlQoIXBhdGguaXNFbXB0
eSgpKTsKICAgICAKLSAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gSURCU2VydmVyOjpJ
REJTZXJ2ZXI6OmNyZWF0ZShwYXRoLCAqdGhpcyk7CisgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZSA9IElEQlNlcnZlcjo6SURCU2VydmVyOjpjcmVhdGUocGF0aCwgKnRoaXMsIFt0aGlzXShi
b29sIGlzSG9sZGluZ0xvY2tlZEZpbGVzKSB7CisgICAgICAgIG5vdGlmeUhvbGRpbmdMb2NrZWRG
aWxlcyhpc0hvbGRpbmdMb2NrZWRGaWxlcyk7CisgICAgfSk7CiAgICAgYWRkUmVzdWx0Lml0ZXJh
dG9yLT52YWx1ZS0+c2V0UGVyT3JpZ2luUXVvdGEobV9pZGJQZXJPcmlnaW5RdW90YSk7CiAgICAg
cmV0dXJuICphZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwogfQpAQCAtMjMxNSw1ICsyMzE3LDEw
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvCiAgICAgCiAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKIH0KKyAgICAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6Om5vdGlmeUhvbGRpbmdMb2NrZWRGaWxl
cyhib29sIGlzSURCRGF0YWJhc2VIb2xkaW5nTG9ja2VkRmlsZXMpCit7CisgICAgcGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6U2V0
SXNJREJEYXRhYmFzZUhvbGRpbmdMb2NrZWRGaWxlcyhpc0lEQkRhdGFiYXNlSG9sZGluZ0xvY2tl
ZEZpbGVzKSwgMCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDM5OTFiY2QxYmFlYjgyZWI4
YjdlNGFiZTU0MmQzNjNjMzBmODRkN2EuLjA0MDQ5YjNkZTM0ZGY0MGVlYzg4ZDU4MGZmN2NmNjkx
MTQ5MWUzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmgKQEAgLTM3Myw2ICszNzMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3luY0FsbENvb2tp
ZXMoKTsKICAgICB2b2lkIGRpZFN5bmNBbGxDb29raWVzKCk7CiAKKyAgICB2b2lkIG5vdGlmeUhv
bGRpbmdMb2NrZWRGaWxlcyhib29sIGlzSURCRGF0YWJhc2VIb2xkaW5nTG9ja2VkRmlsZXMpOwog
I2lmIFVTRShTT1VQKQogICAgIHZvaWQgc2V0SWdub3JlVExTRXJyb3JzKGJvb2wpOwogICAgIHZv
aWQgdXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IDdlYTllNGUzMmM3MmM2OTgwYzdlYzA4N2FhMjY4MjA1ZjMwZGNj
MmYuLjJlMTFmODJlOTNjNmU2NDA0YjEzNzk3OTEyYzU0ZmNlZTM5Njg4M2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMjY4LDYgKzI2OCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJikKICNlbmRpZgogCiAgICAgbV90b2tlbkZvckhvbGRpbmdMb2Nr
ZWRGaWxlcyA9IG51bGxwdHI7CisgICAgbV90b2tlbkZvcklEQkRhdGFiYXNlSG9sZGluZ0xvY2tl
ZEZpbGVzID0gbnVsbHB0cjsKICAgICAKICAgICBtX3N5bmNBbGxDb29raWVzVG9rZW4gPSBudWxs
cHRyOwogICAgIG1fc3luY0FsbENvb2tpZXNDb3VudGVyID0gMDsKQEAgLTk2OSw2ICs5NzAsMTkg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhib29s
IGlzSG9sZGluZ0xvY2tlZEZpbGVzKQogICAgIH0KIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRJc0lEQkRhdGFiYXNlSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNJREJEYXRhYmFz
ZUhvbGRpbmdMb2NrZWRGaWxlcykKK3sKKyAgICBpZiAoIWlzSURCRGF0YWJhc2VIb2xkaW5nTG9j
a2VkRmlsZXMpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJVSVBy
b2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0
d29yayBwcm9jZXNzIGlzIG5vIGxvbmdlciBob2xkaW5nIGxvY2tlZCBmaWxlcyBmb3IgSURCRGF0
YWJhc2UiKTsKKyAgICAgICAgbV90b2tlbkZvcklEQkRhdGFiYXNlSG9sZGluZ0xvY2tlZEZpbGVz
ID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIW1fdG9rZW5Gb3JJ
REJEYXRhYmFzZUhvbGRpbmdMb2NrZWRGaWxlcykgeworICAgICAgICBSRUxFQVNFX0xPRyhQcm9j
ZXNzU3VzcGVuc2lvbiwgIlVJUHJvY2VzcyBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFzc2VydGlv
biBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMgZm9y
IElEQkRhdGFiYXNlIik7CisgICAgICAgIG1fdG9rZW5Gb3JJREJEYXRhYmFzZUhvbGRpbmdMb2Nr
ZWRGaWxlcyA9IG1fdGhyb3R0bGVyLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7CisgICAgfQor
fQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnN5bmNBbGxDb29raWVzKCkKIHsKICAgICBz
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3luY0FsbENvb2tpZXMoKSwgMCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCmluZGV4IGIwN2U2ZGI3MmViMjE3MmY4MjI1YzM0YTJlYTI5Njc1YTZmNDQzZmYuLjYwMjk4
NmY3NmYzZDA0NTUxZTdiYTQ5M2U5ZDBhOTRhNGU2YWVmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0xMzYs
NyArMTM2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRUcmFuc2l0aW9uVG9C
YWNrZ3JvdW5kKCk7CiAKICAgICB2b2lkIHNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wpOwot
ICAgIAorICAgIHZvaWQgc2V0SXNJREJEYXRhYmFzZUhvbGRpbmdMb2NrZWRGaWxlcyhib29sKTsK
KwogICAgIHZvaWQgc3luY0FsbENvb2tpZXMoKTsKICAgICB2b2lkIGRpZFN5bmNBbGxDb29raWVz
KCk7CiAKQEAgLTIzMCw2ICsyMzEsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgUHJvY2Vzc1Ro
cm90dGxlciBtX3Rocm90dGxlcjsKICAgICBQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0
aXZpdHlUb2tlbiBtX3Rva2VuRm9ySG9sZGluZ0xvY2tlZEZpbGVzOworICAgIFByb2Nlc3NUaHJv
dHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuIG1fdG9rZW5Gb3JJREJEYXRhYmFzZUhvbGRp
bmdMb2NrZWRGaWxlczsKICAgICBQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlU
b2tlbiBtX3N5bmNBbGxDb29raWVzVG9rZW47CiAgICAgCiAgICAgdW5zaWduZWQgbV9zeW5jQWxs
Q29va2llc0NvdW50ZXIgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
ZjNlZDM2ZGFiOTIyYzEzY2FiNTdmN2IyNGI3YWE2M2U5ODE3ODkwNC4uY2QzZjZmMzQ1ZDhmNTg0
YjIxZTBjOTExZDc3NzNjOTQ3MGYyODRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMzMsNiArMzMsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2Fj
eVJlY2VpdmVyIHsKIAogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAgICAgU2V0SXNIb2xk
aW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKKyAgICBTZXRJc0lEQkRh
dGFiYXNlSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNJREJEYXRhYmFzZUhvbGRpbmdMb2NrZWRG
aWxlcykKIAogICAgICMgRGlhZ25vc3RpYyBtZXNzYWdlcyBsb2dnaW5nCiAgICAgTG9nRGlhZ25v
c3RpY01lc3NhZ2UodWludDY0X3QgcGFnZUlELCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlc2Ny
aXB0aW9uLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363018</attachid>
            <date>2019-02-26 13:52:18 -0800</date>
            <delta_ts>2019-02-27 10:55:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195024-20190226135217.patch</filename>
            <type>text/plain</type>
            <size>17787</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJhMGQ0OGUxODc3OWZm
MTBhMDE2M2VhMTdjN2RhMGU1ZmZlNTBjMy4uZDk3ODA4YjQyNzk1MzI5MjIwNDU0MDM1NTE0YjAy
NzY4NzUyZjgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTAyLTI1ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIE5ldHdvcmsgUHJvY2VzcyBp
cyBwdXQgdG8gc3VzcGVuZGVkIHdoZW4gaG9sZGluZyBsb2NrZWQgSW5kZXhlZERCIGZpbGVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUwMjQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTk0MTY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyB3YXMgc3Vz
cGVuZGVkIHdoZW4gSURCRGF0YWJhc2Ugd2FzIGJlaW5nIGNsb3NlZCBpbiB0aGUgYmFja2dyb3Vu
ZCBkYXRhYmFzZSB0aHJlYWQsIAorICAgICAgICBob2xkaW5nIGxvY2tzIHRvIGl0cyBkYXRhYmFz
ZSBmaWxlLiBUbyBhdm9pZCBzdGFydmF0aW9uIG9yIGRlYWRsb2NrLCB3ZSBuZWVkIHRvIGtlZXAg
bmV0d29yayBwcm9jZXNzIGFsaXZlIGJ5IAorICAgICAgICB0YWtpbmcgYmFja2dyb3VuZCBhc3Nl
cnRpb24gaW4gVUkgcHJvY2VzcyB1bnRpbCB0aGUgY2xvc2VzIGFyZSBkb25lIGFuZCBsb2NrcyBh
cmUgcmVsZWFzZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OklEQlNlcnZlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y3JlYXRlQmFja2luZ1N0b3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpjbG9zZURhdGFiYXNl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpkaWRDbG9zZURhdGFi
YXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y3JlYXRlKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnRE
ZWxldGVPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJE
YXRhYmFzZTo6c2NoZWR1bGVTaHV0ZG93bkZvckNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZFNodXRkb3duRm9yQ2xvc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRGVsZXRlQmFja2lu
Z1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6
OmltbWVkaWF0ZUNsb3NlRm9yVXNlckRlbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpub3RpZnlTZXJ2ZXJBYm91dENsb3NlKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaDoKKwogMjAxOS0w
Mi0yNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtaXNz
aW5nIHN0cmVhbSBwYXJhbWV0ZXIuIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxY2I3OGM0YWE0
NzViODgzNDY0MmRiNTBlNjViYTJmYjNlMDdjYTIuLjUzMDcwYzdhOGFkNzJiODJhNjYyMDA0NDMy
YWY1ZDg3Y2I2MWUzNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDItMjUgIFNp
aHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgTmV0d29yayBQcm9jZXNz
IGlzIHB1dCB0byBzdXNwZW5kZWQgd2hlbiBob2xkaW5nIGxvY2tlZCBJbmRleGVkREIgZmlsZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTAyNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxOTQxNjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppZGJTZXJ2ZXIpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6bm90aWZ5SG9sZGluZ0xvY2tlZEZpbGVzKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldElzSURCRGF0YWJhc2VIb2xkaW5nTG9ja2VkRmlsZXMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorCiAy
MDE5LTAyLTI1ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbV1BFXVtHVEtdIENsZWFuIHVwIGhhbmRsaW5nIG9mIFdFQktJVF9GT1JDRV9DT01Q
TEVYX1RFWFQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHAKaW5kZXggNWQ5MzZjOGJlYmJhZDhhNmM1MmRmZTQzODQ3ZjRhNzM0
ZTUzNDQ0Yi4uMmRhNGYxNjM4ZWRmZWFlNDAyYWJjZTdhZjhjYTNlODViYmE0Yjc4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5jcHAKQEAgLTQyLDI2ICs0MiwzMCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNl
IElEQlNlcnZlciB7CiAKLVJlZjxJREJTZXJ2ZXI+IElEQlNlcnZlcjo6Y3JlYXRlKElEQkJhY2tp
bmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlcikKK1JlZjxJREJTZXJ2ZXI+
IElEQlNlcnZlcjo6Y3JlYXRlKElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBm
aWxlSGFuZGxlciwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGlzQ2xvc2luZ0RhdGFiYXNl
Q2FsbGJhY2spCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCU2VydmVyKGZpbGVIYW5k
bGVyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCU2VydmVyKGZpbGVIYW5kbGVyLCBX
VEZNb3ZlKGlzQ2xvc2luZ0RhdGFiYXNlQ2FsbGJhY2spKSk7CiB9CiAKLVJlZjxJREJTZXJ2ZXI+
IElEQlNlcnZlcjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCBJ
REJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYgZmlsZUhhbmRsZXIpCitSZWY8SURC
U2VydmVyPiBJREJTZXJ2ZXI6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5
UGF0aCwgSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXImIGZpbGVIYW5kbGVyLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgaXNDbG9zaW5nRGF0YWJhc2VDYWxsYmFjaykKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJTZXJ2ZXIoZGF0YWJhc2VEaXJlY3RvcnlQYXRo
LCBmaWxlSGFuZGxlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQlNlcnZlcihkYXRh
YmFzZURpcmVjdG9yeVBhdGgsIGZpbGVIYW5kbGVyLCBXVEZNb3ZlKGlzQ2xvc2luZ0RhdGFiYXNl
Q2FsbGJhY2spKSk7CiB9CiAKLUlEQlNlcnZlcjo6SURCU2VydmVyKElEQkJhY2tpbmdTdG9yZVRl
bXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlcikKK0lEQlNlcnZlcjo6SURCU2VydmVyKElE
QkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlciwgV1RGOjpGdW5j
dGlvbjx2b2lkKGJvb2wpPiYmIGlzQ2xvc2luZ0RhdGFiYXNlQ2FsbGJhY2spCiAgICAgOiBDcm9z
c1RocmVhZFRhc2tIYW5kbGVyKCJJbmRleGVkRGF0YWJhc2UgU2VydmVyIikKICAgICAsIG1fYmFj
a2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIpCisgICAgLCBtX2lzQ2xv
c2luZ0RhdGFiYXNlQ2FsbGJhY2soV1RGTW92ZShpc0Nsb3NpbmdEYXRhYmFzZUNhbGxiYWNrKSkK
KyAgICAsIG1faXNDbG9zaW5nRGF0YWJhc2VIeXN0ZXJlc2lzKFsmXShQQUw6Okh5c3RlcmVzaXNT
dGF0ZSBzdGF0ZSkgeyBtX2lzQ2xvc2luZ0RhdGFiYXNlQ2FsbGJhY2soc3RhdGUgPT0gUEFMOjpI
eXN0ZXJlc2lzU3RhdGU6OlN0YXJ0ZWQpOyB9KQogewogfQogCi1JREJTZXJ2ZXI6OklEQlNlcnZl
cihjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0b3JlVGVt
cG9yYXJ5RmlsZUhhbmRsZXImIGZpbGVIYW5kbGVyKQorSURCU2VydmVyOjpJREJTZXJ2ZXIoY29u
c3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeVBhdGgsIElEQkJhY2tpbmdTdG9yZVRlbXBvcmFy
eUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlciwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGlz
Q2xvc2luZ0RhdGFiYXNlQ2FsbGJhY2spCiAgICAgOiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyKCJJ
bmRleGVkRGF0YWJhc2UgU2VydmVyIikKICAgICAsIG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoKGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCkKICAgICAsIG1fYmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhh
bmRsZXIoZmlsZUhhbmRsZXIpCisgICAgLCBtX2lzQ2xvc2luZ0RhdGFiYXNlQ2FsbGJhY2soV1RG
TW92ZShpc0Nsb3NpbmdEYXRhYmFzZUNhbGxiYWNrKSkKKyAgICAsIG1faXNDbG9zaW5nRGF0YWJh
c2VIeXN0ZXJlc2lzKFsmXShQQUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBtX2lzQ2xvc2lu
Z0RhdGFiYXNlQ2FsbGJhY2soc3RhdGUgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0YXJ0ZWQp
OyB9KQogewogICAgIExPRyhJbmRleGVkREIsICJJREJTZXJ2ZXIgY3JlYXRlZCBhdCBwYXRoICVz
IiwgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOwogfQpAQCAtNjUyLDYgKzY1
NiwyOSBAQCB2b2lkIElEQlNlcnZlcjo6c2V0UGVyT3JpZ2luUXVvdGEodWludDY0X3QgcXVvdGEp
CiAgICAgICAgIGRhdGFiYXNlLT5zZXRRdW90YShxdW90YSk7CiB9CiAKK3ZvaWQgSURCU2VydmVy
OjpjbG9zZURhdGFiYXNlKFVuaXF1ZUlEQkRhdGFiYXNlKiBkYXRhYmFzZSkKK3sKKyAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmIChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV91bmlxdWVJ
REJEYXRhYmFzZXNJbkNsb3NlLmFkZChkYXRhYmFzZSk7CisgICAgaWYgKGFkZFJlc3VsdC5pc05l
d0VudHJ5ICYmIG1fdW5pcXVlSURCRGF0YWJhc2VzSW5DbG9zZS5zaXplKCkgPT0gMSkKKyAgICAg
ICAgbV9pc0Nsb3NpbmdEYXRhYmFzZUh5c3RlcmVzaXMuc3RhcnQoKTsKK30KKwordm9pZCBJREJT
ZXJ2ZXI6OmRpZENsb3NlRGF0YWJhc2UoVW5pcXVlSURCRGF0YWJhc2UqIGRhdGFiYXNlKQorewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgaWYgKG1fZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fdW5pcXVlSURCRGF0
YWJhc2VzSW5DbG9zZS5yZW1vdmUoZGF0YWJhc2UpKSB7CisgICAgICAgIGlmIChtX3VuaXF1ZUlE
QkRhdGFiYXNlc0luQ2xvc2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9pc0Nsb3NpbmdEYXRh
YmFzZUh5c3RlcmVzaXMuc3RvcCgpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgSURCU2Vy
dmVyCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAppbmRleCBmYTg5YWE1Y2M0MTQ3Mzc3
ZGY2NzVlMmQ3ZDZjNmY3MDlhNWVmZjBhLi5mNmY1NWQzNzIzZTRjMjI1OGE3NDJkNzU5MjkzMGU5
ZjhhY2QwMzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSURCRGF0YWJh
c2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVW5pcXVlSURCRGF0YWJhc2UuaCIKICNpbmNsdWRl
ICJVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxwYWwvSHlzdGVyZXNp
c0FjdGl2aXR5Lmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CkBAIC01NCw4ICs1
NSw4IEBAIGNsYXNzIElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyOwogCiBjbGFz
cyBJREJTZXJ2ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJTZXJ2ZXI+LCBwdWJsaWMgQ3Jvc3NU
aHJlYWRUYXNrSGFuZGxlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJREJTZXJ2ZXI+IGNy
ZWF0ZShJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYpOwotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWY8SURCU2VydmVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZURpcmVjdG9yeVBhdGgsIElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJik7Cisg
ICAgc3RhdGljIFJlZjxJREJTZXJ2ZXI+IGNyZWF0ZShJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlG
aWxlSGFuZGxlciYsIFdURjo6RnVuY3Rpb248dm9pZChib29sKT4mJiBpc0Nsb3NpbmdEYXRhYmFz
ZUNhbGxiYWNrID0gW10oYm9vbCkgeyB9KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVm
PElEQlNlcnZlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCBJ
REJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYsIFdURjo6RnVuY3Rpb248dm9pZChi
b29sKT4mJiBpc0Nsb3NpbmdEYXRhYmFzZUNhbGxiYWNrID0gW10oYm9vbCkgeyB9KTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVnaXN0ZXJDb25uZWN0aW9uKElEQkNvbm5lY3Rpb25Ub0Ns
aWVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5yZWdpc3RlckNvbm5lY3Rpb24oSURC
Q29ubmVjdGlvblRvQ2xpZW50Jik7CkBAIC0xMDksOSArMTEwLDEzIEBAIHB1YmxpYzoKICAgICB1
aW50NjRfdCBwZXJPcmlnaW5RdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fcGVyT3JpZ2luUXVvdGE7
IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBlck9yaWdpblF1b3RhKHVpbnQ2NF90KTsK
IAorICAgIHZvaWQgY2xvc2VEYXRhYmFzZShVbmlxdWVJREJEYXRhYmFzZSopOworICAgIHZvaWQg
ZGlkQ2xvc2VEYXRhYmFzZShVbmlxdWVJREJEYXRhYmFzZSopOworICAgIHZvaWQgaHlzdGVyZXNp
c1VwZGF0ZWQoUEFMOjpIeXN0ZXJlc2lzU3RhdGUpOworCiBwcml2YXRlOgotICAgIElEQlNlcnZl
cihJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYpOwotICAgIElEQlNlcnZlcihj
b25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0b3JlVGVtcG9y
YXJ5RmlsZUhhbmRsZXImKTsKKyAgICBJREJTZXJ2ZXIoSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5
RmlsZUhhbmRsZXImLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYpOworICAgIElEQlNlcnZl
cihjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0b3JlVGVt
cG9yYXJ5RmlsZUhhbmRsZXImLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYpOwogCiAgICAg
VW5pcXVlSURCRGF0YWJhc2UmIGdldE9yQ3JlYXRlVW5pcXVlSURCRGF0YWJhc2UoY29uc3QgSURC
RGF0YWJhc2VJZGVudGlmaWVyJik7CiAKQEAgLTEyNCw2ICsxMjksNyBAQCBwcml2YXRlOgogCiAg
ICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPElEQkNvbm5lY3Rpb25Ub0NsaWVudD4+IG1fY29u
bmVjdGlvbk1hcDsKICAgICBIYXNoTWFwPElEQkRhdGFiYXNlSWRlbnRpZmllciwgc3RkOjp1bmlx
dWVfcHRyPFVuaXF1ZUlEQkRhdGFiYXNlPj4gbV91bmlxdWVJREJEYXRhYmFzZU1hcDsKKyAgICBI
YXNoU2V0PFVuaXF1ZUlEQkRhdGFiYXNlKj4gbV91bmlxdWVJREJEYXRhYmFzZXNJbkNsb3NlOwog
CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uKj4gbV9k
YXRhYmFzZUNvbm5lY3Rpb25zOwogICAgIEhhc2hNYXA8SURCUmVzb3VyY2VJZGVudGlmaWVyLCBV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uKj4gbV90cmFuc2FjdGlvbnM7CkBAIC0xMzQsNiAr
MTQwLDkgQEAgcHJpdmF0ZToKICAgICBJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxl
ciYgbV9iYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlcjsKIAogICAgIHVpbnQ2NF90IG1f
cGVyT3JpZ2luUXVvdGEgeyBkZWZhdWx0UGVyT3JpZ2luUXVvdGEgfTsKKworICAgIFdURjo6RnVu
Y3Rpb248dm9pZChib29sKT4gbV9pc0Nsb3NpbmdEYXRhYmFzZUNhbGxiYWNrOworICAgIFBBTDo6
SHlzdGVyZXNpc0FjdGl2aXR5IG1faXNDbG9zaW5nRGF0YWJhc2VIeXN0ZXJlc2lzOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA3
NzdhMDk5MTBmMTA3ODEyY2Y1NTI2MzI3OTlhMDM3MDBlYzMzNjhlLi4zMzNkMTM5ZWY3ZGJiNDYz
YjljZTEyYWYzYmI1YTU5YzIzNDdjOWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAg
LTIyNiw2ICsyMjYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ3VycmVudERl
bGV0ZU9wZXJhdGlvbigpCiAgICAgICAgICAgICBkaWREZWxldGVCYWNraW5nU3RvcmUoMCk7CiAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgbV9kZWxldGVCYWNraW5nU3RvcmVJblByb2dyZXNz
ID0gdHJ1ZTsKKyAgICAgICAgICAgIG5vdGlmeVNlcnZlckFib3V0Q2xvc2UoQ2xvc2VTdGF0ZTo6
U3RhcnQpOwogICAgICAgICAgICAgcG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRh
c2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlQmFja2luZ1N0b3JlLCBtX2lkZW50
aWZpZXIpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI3OCw2ICsyNzksNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpzY2hlZHVsZVNodXRkb3duRm9yQ2xvc2UoKQogICAgIFJFTEVBU0VfQVNT
RVJUKCFtX293bmluZ1BvaW50ZXJGb3JDbG9zZSk7CiAgICAgbV9vd25pbmdQb2ludGVyRm9yQ2xv
c2UgPSBtX3NlcnZlci5jbG9zZUFuZFRha2VVbmlxdWVJREJEYXRhYmFzZSgqdGhpcyk7CiAKKyAg
ICBub3RpZnlTZXJ2ZXJBYm91dENsb3NlKENsb3NlU3RhdGU6OlN0YXJ0KTsKICAgICBwb3N0RGF0
YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNl
OjpzaHV0ZG93bkZvckNsb3NlKSk7CiB9CiAKQEAgLTMwNSw2ICszMDcsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpkaWRTaHV0ZG93bkZvckNsb3NlKCkKIHsKICAgICBBU1NFUlQobV9kYXRh
YmFzZVJlcGx5UXVldWUuaXNFbXB0eSgpKTsKICAgICBtX2RhdGFiYXNlUmVwbHlRdWV1ZS5raWxs
KCk7CisgICAgbm90aWZ5U2VydmVyQWJvdXRDbG9zZShDbG9zZVN0YXRlOjpEb25lKTsKIH0KIAog
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRGVsZXRlQmFja2luZ1N0b3JlKHVpbnQ2NF90IGRl
bGV0ZWRWZXJzaW9uKQpAQCAtMzQwLDYgKzM0Myw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OmRpZERlbGV0ZUJhY2tpbmdTdG9yZSh1aW50NjRfdCBkZWxldGVkVmVyc2lvbikKIAogICAgIGlm
IChtX2hhcmRDbG9zZWRGb3JVc2VyRGVsZXRlKQogICAgICAgICByZXR1cm47CisgICAgbm90aWZ5
U2VydmVyQWJvdXRDbG9zZShDbG9zZVN0YXRlOjpEb25lKTsKIAogICAgIGludm9rZU9wZXJhdGlv
bkFuZFRyYW5zYWN0aW9uVGltZXIoKTsKIH0KQEAgLTE4OTEsNiArMTg5NSw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmltbWVkaWF0ZUNsb3NlRm9yVXNlckRlbGV0ZSgpCiAgICAgaWYgKG1f
b3duaW5nUG9pbnRlckZvckNsb3NlKQogICAgICAgICByZXR1cm47CiAKKyAgICBub3RpZnlTZXJ2
ZXJBYm91dENsb3NlKENsb3NlU3RhdGU6OlN0YXJ0KTsKICAgICAvLyBPdGhlcndpc2UsIHRoaXMg
ZGF0YWJhc2UgaXMgc3RpbGwgcG90ZW50aWFsbHkgYWN0aXZlLgogICAgIC8vIFNvIHdlJ2xsIGhh
dmUgaXQgb3duIGl0c2VsZiBhbmQgdGhlbiBwZXJmb3JtIGEgY2xlYW4gdW5jb25kaXRpb25hbCBk
ZWxldGUgb24gdGhlIGJhY2tncm91bmQgdGhyZWFkLgogICAgIG1fb3duaW5nUG9pbnRlckZvckNs
b3NlID0gbV9zZXJ2ZXIuY2xvc2VBbmRUYWtlVW5pcXVlSURCRGF0YWJhc2UoKnRoaXMpOwpAQCAt
MTk2Niw2ICsxOTcxLDE5IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnNldFF1b3RhKHVpbnQ2
NF90IHF1b3RhKQogICAgICAgICBtX2JhY2tpbmdTdG9yZS0+c2V0UXVvdGEocXVvdGEpOwogfQog
Cit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpub3RpZnlTZXJ2ZXJBYm91dENsb3NlKENsb3NlU3Rh
dGUgc3RhdGUpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgIGlmIChzdGF0ZSA9PSBDbG9zZVN0YXRlOjpTdGFydCkgCisgICAgICAg
IG1fc2VydmVyLmNsb3NlRGF0YWJhc2UodGhpcyk7CisgICAgZWxzZQorICAgICAgICBtX3NlcnZl
ci5kaWRDbG9zZURhdGFiYXNlKHRoaXMpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IGRlMDYwZTY4ZDdmNDYyZDk0NTY0
NzUxNWE4NmZjMzIxNTI3MGQ2ZjcuLjQ3MzVhYzZiYzlmNDRmY2I2MzEyMWRkYzU2Mjc2NWNiY2Q3
MzNmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCkBAIC0xMjEsNiArMTIxLDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzZXRRdW90YSh1aW50NjRfdCk7CiBwcml2YXRlOgorICAgIGVudW0gY2xh
c3MgQ2xvc2VTdGF0ZSB7IFN0YXJ0LCBEb25lIH07CisKICAgICB2b2lkIGhhbmRsZURhdGFiYXNl
T3BlcmF0aW9ucygpOwogICAgIHZvaWQgaGFuZGxlQ3VycmVudE9wZXJhdGlvbigpOwogICAgIHZv
aWQgcGVyZm9ybUN1cnJlbnRPcGVuT3BlcmF0aW9uKCk7CkBAIC0yMjUsNiArMjI3LDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIG1heWJlRmluaXNoSGFyZENsb3NlKCk7CiAgICAgYm9vbCBpc0RvbmVX
aXRoSGFyZENsb3NlKCk7CiAKKyAgICB2b2lkIG5vdGlmeVNlcnZlckFib3V0Q2xvc2UoQ2xvc2VT
dGF0ZSk7CisKICAgICBJREJTZXJ2ZXImIG1fc2VydmVyOwogICAgIElEQkRhdGFiYXNlSWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDlmMWYwMDBkOThkN2JhNzNkMjRjMTgxZmI0MWJl
MTRiNTgzNWUyYjYuLmFlNTJhYjU2YzZlNjVhMzE2MjlmZTkzMGEyMjMwYTc2NTEzZDU0YjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBA
IC0xOTc4LDcgKzE5NzgsOSBAQCBJREJTZXJ2ZXI6OklEQlNlcnZlciYgTmV0d29ya1Byb2Nlc3M6
OmlkYlNlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgLy8gSWYgdGhlcmUncyBu
b3QsIHRoZW4gd2hlcmUgZGlkIHRoaXMgUEFMOjpTZXNzaW9uSUQgY29tZSBmcm9tPwogICAgIEFT
U0VSVCghcGF0aC5pc0VtcHR5KCkpOwogICAgIAotICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFs
dWUgPSBJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y3JlYXRlKHBhdGgsICp0aGlzKTsKKyAgICBhZGRS
ZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gSURCU2VydmVyOjpJREJTZXJ2ZXI6OmNyZWF0ZShwYXRo
LCAqdGhpcywgW3RoaXNdKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpIHsKKyAgICAgICAgbm90
aWZ5SG9sZGluZ0xvY2tlZEZpbGVzKGlzSG9sZGluZ0xvY2tlZEZpbGVzKTsKKyAgICB9KTsKICAg
ICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5zZXRQZXJPcmlnaW5RdW90YShtX2lkYlBlck9y
aWdpblF1b3RhKTsKICAgICByZXR1cm4gKmFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CiB9CkBA
IC0yMzE2LDQgKzIzMTgsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckFkQ2xpY2tBdHRy
aWJ1dGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpbwogICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6Om5vdGlmeUhvbGRpbmdMb2Nr
ZWRGaWxlcyhib29sIGlzSURCRGF0YWJhc2VIb2xkaW5nTG9ja2VkRmlsZXMpCit7CisgICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6U2V0SXNJREJEYXRhYmFzZUhvbGRpbmdMb2NrZWRGaWxlcyhpc0lEQkRhdGFiYXNlSG9sZGlu
Z0xvY2tlZEZpbGVzKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDM5OTFiY2QxYmFl
YjgyZWI4YjdlNGFiZTU0MmQzNjNjMzBmODRkN2EuLjA0MDQ5YjNkZTM0ZGY0MGVlYzg4ZDU4MGZm
N2NmNjkxMTQ5MWUzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKQEAgLTM3Myw2ICszNzMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3luY0Fs
bENvb2tpZXMoKTsKICAgICB2b2lkIGRpZFN5bmNBbGxDb29raWVzKCk7CiAKKyAgICB2b2lkIG5v
dGlmeUhvbGRpbmdMb2NrZWRGaWxlcyhib29sIGlzSURCRGF0YWJhc2VIb2xkaW5nTG9ja2VkRmls
ZXMpOwogI2lmIFVTRShTT1VQKQogICAgIHZvaWQgc2V0SWdub3JlVExTRXJyb3JzKGJvb2wpOwog
ICAgIHZvaWQgdXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDdlYTllNGUzMmM3MmM2OTgwYzdlYzA4N2FhMjY4MjA1
ZjMwZGNjMmYuLjJlMTFmODJlOTNjNmU2NDA0YjEzNzk3OTEyYzU0ZmNlZTM5Njg4M2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMjY4LDYgKzI2OCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKICNlbmRpZgogCiAgICAgbV90b2tlbkZvckhvbGRp
bmdMb2NrZWRGaWxlcyA9IG51bGxwdHI7CisgICAgbV90b2tlbkZvcklEQkRhdGFiYXNlSG9sZGlu
Z0xvY2tlZEZpbGVzID0gbnVsbHB0cjsKICAgICAKICAgICBtX3N5bmNBbGxDb29raWVzVG9rZW4g
PSBudWxscHRyOwogICAgIG1fc3luY0FsbENvb2tpZXNDb3VudGVyID0gMDsKQEAgLTk2OSw2ICs5
NzAsMTkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc0hvbGRpbmdMb2NrZWRGaWxl
cyhib29sIGlzSG9sZGluZ0xvY2tlZEZpbGVzKQogICAgIH0KIH0KIAordm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRJc0lEQkRhdGFiYXNlSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNJREJE
YXRhYmFzZUhvbGRpbmdMb2NrZWRGaWxlcykKK3sKKyAgICBpZiAoIWlzSURCRGF0YWJhc2VIb2xk
aW5nTG9ja2VkRmlsZXMpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24s
ICJVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0
aGUgTmV0d29yayBwcm9jZXNzIGlzIG5vIGxvbmdlciBob2xkaW5nIGxvY2tlZCBmaWxlcyBmb3Ig
SURCRGF0YWJhc2UiKTsKKyAgICAgICAgbV90b2tlbkZvcklEQkRhdGFiYXNlSG9sZGluZ0xvY2tl
ZEZpbGVzID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIW1fdG9r
ZW5Gb3JJREJEYXRhYmFzZUhvbGRpbmdMb2NrZWRGaWxlcykgeworICAgICAgICBSRUxFQVNFX0xP
RyhQcm9jZXNzU3VzcGVuc2lvbiwgIlVJUHJvY2VzcyBpcyB0YWtpbmcgYSBiYWNrZ3JvdW5kIGFz
c2VydGlvbiBiZWNhdXNlIHRoZSBOZXR3b3JrIHByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmls
ZXMgZm9yIElEQkRhdGFiYXNlIik7CisgICAgICAgIG1fdG9rZW5Gb3JJREJEYXRhYmFzZUhvbGRp
bmdMb2NrZWRGaWxlcyA9IG1fdGhyb3R0bGVyLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7Cisg
ICAgfQorfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnN5bmNBbGxDb29raWVzKCkKIHsK
ICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3luY0FsbENvb2tpZXMoKSwgMCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oCmluZGV4IGIwN2U2ZGI3MmViMjE3MmY4MjI1YzM0YTJlYTI5Njc1YTZmNDQzZmYu
LjYwMjk4NmY3NmYzZDA0NTUxZTdiYTQ5M2U5ZDBhOTRhNGU2YWVmYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBA
IC0xMzYsNyArMTM2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRUcmFuc2l0
aW9uVG9CYWNrZ3JvdW5kKCk7CiAKICAgICB2b2lkIHNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJv
b2wpOwotICAgIAorICAgIHZvaWQgc2V0SXNJREJEYXRhYmFzZUhvbGRpbmdMb2NrZWRGaWxlcyhi
b29sKTsKKwogICAgIHZvaWQgc3luY0FsbENvb2tpZXMoKTsKICAgICB2b2lkIGRpZFN5bmNBbGxD
b29raWVzKCk7CiAKQEAgLTIzMCw2ICsyMzEsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgUHJv
Y2Vzc1Rocm90dGxlciBtX3Rocm90dGxlcjsKICAgICBQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3Jv
dW5kQWN0aXZpdHlUb2tlbiBtX3Rva2VuRm9ySG9sZGluZ0xvY2tlZEZpbGVzOworICAgIFByb2Nl
c3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuIG1fdG9rZW5Gb3JJREJEYXRhYmFz
ZUhvbGRpbmdMb2NrZWRGaWxlczsKICAgICBQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0
aXZpdHlUb2tlbiBtX3N5bmNBbGxDb29raWVzVG9rZW47CiAgICAgCiAgICAgdW5zaWduZWQgbV9z
eW5jQWxsQ29va2llc0NvdW50ZXIgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggZjNlZDM2ZGFiOTIyYzEzY2FiNTdmN2IyNGI3YWE2M2U5ODE3ODkwNC4uY2QzZjZmMzQ1
ZDhmNTg0YjIxZTBjOTExZDc3NzNjOTQ3MGYyODRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMzMsNiArMzMsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5
IExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAgICAgU2V0
SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKKyAgICBTZXRJ
c0lEQkRhdGFiYXNlSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNJREJEYXRhYmFzZUhvbGRpbmdM
b2NrZWRGaWxlcykKIAogICAgICMgRGlhZ25vc3RpYyBtZXNzYWdlcyBsb2dnaW5nCiAgICAgTG9n
RGlhZ25vc3RpY01lc3NhZ2UodWludDY0X3QgcGFnZUlELCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5n
IGRlc2NyaXB0aW9uLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBs
ZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>