<?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>232603</bug_id>
          
          <creation_ts>2021-11-01 21:58:38 -0700</creation_ts>
          <short_desc>Terminate unresponsive network process by crashing it</short_desc>
          <delta_ts>2021-11-02 13:25:14 -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>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>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1811027</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-01 21:58:38 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811031</commentid>
    <comment_count>1</comment_count>
      <attachid>443059</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-01 22:18:31 -0700</bug_when>
    <thetext>Created attachment 443059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811105</commentid>
    <comment_count>2</comment_count>
      <attachid>443059</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-02 07:34:24 -0700</bug_when>
    <thetext>Comment on attachment 443059
Patch

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

&gt; Source/WebKit/Platform/IPC/Connection.cpp:759
&gt; +    if (message-&gt;messageName() == MessageName::Terminate) {

I like the idea of generating a crash report on termination.

One advice though would be to call a NEVER_INLINE function with a name such as terminateDueToIPCTerminateMessage(). It will make the generated crash logs much easier to interpret and will help distinguish it from other crashes that could happen in processIncomingMessage().

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:91
&gt; +static constexpr Seconds unresponsivenessCheckPeriod = 15_s;

The responsiveness timeout is 6_s. So if the network process has to be unresponsive 3 times, it means it will take at least 3*6=18 seconds to happen, no? However, your new logic only triggers if this happens within 15 seconds. Therefore, I am not sure how it can trigger.

Also, I am not sure we want such logic at all? Why not be honest and report every network termination as a crash? Then we&apos;d see how much of a problem is it and how urgent it is to address.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811152</commentid>
    <comment_count>3</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-02 09:43:25 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; Comment on attachment 443059 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=443059&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Platform/IPC/Connection.cpp:759
&gt; &gt; +    if (message-&gt;messageName() == MessageName::Terminate) {
&gt; 
&gt; I like the idea of generating a crash report on termination.
&gt; 
&gt; One advice though would be to call a NEVER_INLINE function with a name such
&gt; as terminateDueToIPCTerminateMessage(). It will make the generated crash
&gt; logs much easier to interpret and will help distinguish it from other
&gt; crashes that could happen in processIncomingMessage().

Sure, will do.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:91
&gt; &gt; +static constexpr Seconds unresponsivenessCheckPeriod = 15_s;
&gt; 
&gt; The responsiveness timeout is 6_s. So if the network process has to be
&gt; unresponsive 3 times, it means it will take at least 3*6=18 seconds to
&gt; happen, no? However, your new logic only triggers if this happens within 15
&gt; seconds. Therefore, I am not sure how it can trigger.
&gt; 
&gt; Also, I am not sure we want such logic at all? Why not be honest and report
&gt; every network termination as a crash? Then we&apos;d see how much of a problem is
&gt; it and how urgent it is to address.


The timestamp is set when the first unresponsiveness case appears, so it&apos;s first case -6s- second case -6s- third case, which is about 12 seconds for 3 (I think there might be delay so I use 15).

I worried that will generate many same crash reports on user&apos;s device (which might be costly compared to our old behavior, since we know the network process can get terminated a lot by the number of web process crash reports rdar://84745326 (~20 failed attempts will cause one crash)). The goal is to identify the cause, and with the limit we will still know the magnitude of the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811161</commentid>
    <comment_count>4</comment_count>
      <attachid>443102</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-02 10:04:46 -0700</bug_when>
    <thetext>Created attachment 443102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811188</commentid>
    <comment_count>5</comment_count>
      <attachid>443109</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-02 10:56:57 -0700</bug_when>
    <thetext>Created attachment 443109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811190</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-02 10:59:14 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #3)
&gt; (In reply to Chris Dumez from comment #2)
&gt; &gt; Comment on attachment 443059 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=443059&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/Platform/IPC/Connection.cpp:759
&gt; &gt; &gt; +    if (message-&gt;messageName() == MessageName::Terminate) {
&gt; &gt; 
&gt; &gt; I like the idea of generating a crash report on termination.
&gt; &gt; 
&gt; &gt; One advice though would be to call a NEVER_INLINE function with a name such
&gt; &gt; as terminateDueToIPCTerminateMessage(). It will make the generated crash
&gt; &gt; logs much easier to interpret and will help distinguish it from other
&gt; &gt; crashes that could happen in processIncomingMessage().
&gt; 
&gt; Sure, will do.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:91
&gt; &gt; &gt; +static constexpr Seconds unresponsivenessCheckPeriod = 15_s;
&gt; &gt; 
&gt; &gt; The responsiveness timeout is 6_s. So if the network process has to be
&gt; &gt; unresponsive 3 times, it means it will take at least 3*6=18 seconds to
&gt; &gt; happen, no? However, your new logic only triggers if this happens within 15
&gt; &gt; seconds. Therefore, I am not sure how it can trigger.
&gt; &gt; 
&gt; &gt; Also, I am not sure we want such logic at all? Why not be honest and report
&gt; &gt; every network termination as a crash? Then we&apos;d see how much of a problem is
&gt; &gt; it and how urgent it is to address.
&gt; 
&gt; 
&gt; The timestamp is set when the first unresponsiveness case appears, so it&apos;s
&gt; first case -6s- second case -6s- third case, which is about 12 seconds for 3
&gt; (I think there might be delay so I use 15).

Ah, indeed. I missed that.

&gt; 
&gt; I worried that will generate many same crash reports on user&apos;s device (which
&gt; might be costly compared to our old behavior, since we know the network
&gt; process can get terminated a lot by the number of web process crash reports
&gt; rdar://84745326 (~20 failed attempts will cause one crash)). The goal is to
&gt; identify the cause, and with the limit we will still know the magnitude of
&gt; the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811194</commentid>
    <comment_count>7</comment_count>
      <attachid>443109</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-02 11:13:51 -0700</bug_when>
    <thetext>Comment on attachment 443109
Patch

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

r=me with comment.

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:153
&gt; +    if (shouldTerminateNetworkProcessBySendingMessage()) {

Please add a comment to explain that we&apos;re doing this to generate a crash report when the network process is killed for being unresponsive several times in a row. It is other not clear why sometimes we&apos;re killing by sending an IPC and sometimes not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811212</commentid>
    <comment_count>8</comment_count>
      <attachid>443118</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-11-02 11:58:50 -0700</bug_when>
    <thetext>Created attachment 443118
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811226</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-02 12:42:13 -0700</bug_when>
    <thetext>Committed r285177 (243810@main): &lt;https://commits.webkit.org/243810@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443118.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811227</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-02 12:43:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/84942667&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811239</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-11-02 13:23:43 -0700</bug_when>
    <thetext>Did you consider using os_log_fault like we do for MESSAGE_CHECK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811241</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-02 13:25:14 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #11)
&gt; Did you consider using os_log_fault like we do for MESSAGE_CHECK?

2 things about os_log_fault:
1. It generates a simulated crash, not a real crash (so it doesn&apos;t exit the process)
2. It only generates the simulated crash on iOS, not macOS.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443059</attachid>
            <date>2021-11-01 22:18:31 -0700</date>
            <delta_ts>2021-11-02 10:04:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232603-20211101221830.patch</filename>
            <type>text/plain</type>
            <size>5768</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkOWI0YjJmYzlkMTI2MTZm
NTIwMDhjNDc4ZDUxOTE4NWE5OGM5ODYuLmM4ZmM0OThhMGFlY2ZmMDQ0MWZkMzU1ZmRkYzllMjYx
ZTA1MzkzNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMTEtMDEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVGVybWluYXRlIHVucmVzcG9uc2l2
ZSBuZXR3b3JrIHByb2Nlc3MgYnkgY3Jhc2hpbmcgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVJIHByb2Nlc3MgY3VycmVudGx5IGtpbGxzIG5ldHdv
cmsgcHJvY2VzcyB3aGVuIGl0IGRvZXMgbm90IHJlc3BvbmQgbWVzc2FnZSBpbiBzb21lIHRpbWUg
KG5ldHdvcmsgcHJvY2VzcyBiZWluZyAKKyAgICAgICAgdW5yZXNwb25zaXZlKS4gV2UndmUgZm91
bmQgb25lIGNvbW1vbiBjYXNlIHdoZXJlIG5ldHdvcmsgcHJvY2VzcyBiZWNvbWVzIHVucmVzcG9u
c2l2ZSBpcyB0aGF0IGl0IGlzIGJsb2NrZWQgYnkgCisgICAgICAgIHNvbWUgc2xvdyBvcGVyYXRp
b24gb24gdGhlIG1haW4gdGhyZWFkIChsaWtlIGZpbGUgb3BlcmF0aW9uIGluIHJkYXI6Ly84NDUx
MTYzMykuIFRvIHVuZGVyc3RhbmQgd2hhdCB0aGUgCisgICAgICAgIG9wZXJhdGlvbnMgYXJlIGFu
ZCBtYWtlIGEgZml4LCB3ZSBub3cgYXNrIG5ldHdvcmsgcHJvY2VzcyB0byBjcmFzaCBpdHNlbGYg
b24gSVBDIHRocmVhZC4gSW4gdGhpcyB3YXksIHdlIGNhbiBnZXQgCisgICAgICAgIGNyYXNoIHJl
cG9ydCB0aGF0IGluY2x1ZGVzIHRoZSBjYWxsIHN0YWNrIG9mIHRoZSBtYWluIHRocmVhZC4gVG8g
YXZvaWQgZ2VuZXJhdGluZyB0b28gbWFueSBjcmFzaCByZXBvcnRzLCB3ZSAKKyAgICAgICAgb25s
eSBzZW5kIHRoZSBjcmFzaCBtZXNzYWdlIHRvIG5ldHdvcmsgcHJvY2VzcyB3aGVuIGl0IGJlY29t
ZXMgdW5yZXNwb25zaXZlIG11bHRpcGxlIHRpbWVzIGluIGEgc2hvcnQgdGltZSAKKyAgICAgICAg
cGVyaW9kLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoSVBDOjpDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdC9tb2RlbC5weToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6c2hvdWxkVGVybWluYXRlTmV0
d29ya1Byb2Nlc3NCeVNlbmRpbmdNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NQcm94eTo6ZGlkQmVjb21lVW5yZXNwb25zaXZlKToKKwogMjAyMS0xMS0wMSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIGhlYXAtYWxsb2NhdGlu
ZyBJbXBvcnRhbmNlQXNzZXJ0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rp
b24uY3BwCmluZGV4IDk5ZGU1MTBjNTdkOWFiODk0MTVjYWIxNzYwOGE1YjBmOTIxMjkwYzcuLjVh
MDVjNzA1MWE3YjVmMTM5ZDM5YzRiN2JiOGMxZWIwZDA3NTViYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC00Miw2ICs0Miw3IEBACiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICNpbmNsdWRlICJNYWNoTWVzc2FnZS5oIgorI2luY2x1ZGUgIldLQ3Jhc2hS
ZXBvcnRlci5oIgogI2VuZGlmCiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKQEAgLTc1
NCw2ICs3NTUsMTQgQEAgdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKHN0
ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBtZXNzYWdlKQogICAgICAgICByZXR1cm47CiAgICAgfQog
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkgPT0g
TWVzc2FnZU5hbWU6OlRlcm1pbmF0ZSkgeworICAgICAgICBXZWJLaXQ6OmxvZ0FuZFNldENyYXNo
TG9nTWVzc2FnZSgiUmVjZWl2ZXMgVGVybWluYXRlIG1lc3NhZ2UiKTsKKyAgICAgICAgQ1JBU0go
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAgaWYgKCFNZXNzYWdlUmVj
ZWl2ZVF1ZXVlTWFwOjppc1ZhbGlkTWVzc2FnZSgqbWVzc2FnZSkpIHsKICAgICAgICAgUnVuTG9v
cDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgbWVzc2Fn
ZU5hbWUgPSBtZXNzYWdlLT5tZXNzYWdlTmFtZSgpXSgpIG11dGFibGUgewogICAgICAgICAgICAg
cHJvdGVjdGVkVGhpcy0+ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UobWVzc2FnZU5h
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weSBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbW9kZWwucHkKaW5kZXggNTA3ZTA0MmE1Nzdm
ZjhhMDIzMzcyYzNhNjA3YWIxMDhhNWZhOTY3NS4uNmUxYzU1M2NjZDY5N2M3OTY5ZGE2YjE5ZjBh
ZjUzZjljNmMyYjNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
b2RlbC5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CkBAIC03
Nyw3ICs3Nyw4IEBAIGlwY19yZWNlaXZlciA9IE1lc3NhZ2VSZWNlaXZlcihuYW1lPSJJUEMiLCBz
dXBlcmNsYXNzPU5vbmUsIGF0dHJpYnV0ZXM9W0JVSUxUSU5fCiAgICAgTWVzc2FnZSgnSW5pdGlh
bGl6ZUNvbm5lY3Rpb24nLCBbXSwgW10sIGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklCVVRFXSwg
Y29uZGl0aW9uPSJQTEFURk9STShDT0NPQSkiKSwKICAgICBNZXNzYWdlKCdMZWdhY3lTZXNzaW9u
U3RhdGUnLCBbXSwgW10sIGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklCVVRFXSwgY29uZGl0aW9u
PU5vbmUpLAogICAgIE1lc3NhZ2UoJ1NldFN0cmVhbURlc3RpbmF0aW9uSUQnLCBbXSwgW10sIGF0
dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklCVVRFXSwgY29uZGl0aW9uPU5vbmUpLAotICAgIE1lc3Nh
Z2UoJ1Byb2Nlc3NPdXRPZlN0cmVhbU1lc3NhZ2UnLCBbXSwgW10sIGF0dHJpYnV0ZXM9W0JVSUxU
SU5fQVRUUklCVVRFXSwgY29uZGl0aW9uPU5vbmUpCisgICAgTWVzc2FnZSgnUHJvY2Vzc091dE9m
U3RyZWFtTWVzc2FnZScsIFtdLCBbXSwgYXR0cmlidXRlcz1bQlVJTFRJTl9BVFRSSUJVVEVdLCBj
b25kaXRpb249Tm9uZSksCisgICAgTWVzc2FnZSgnVGVybWluYXRlJywgW10sIFtdLCBhdHRyaWJ1
dGVzPVtCVUlMVElOX0FUVFJJQlVURV0sIGNvbmRpdGlvbj0iUExBVEZPUk0oQ09DT0EpIiksCiBd
LCBjb25kaXRpb249Tm9uZSkKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA2NWY0ZTgyMWRhOTNlMWVl
NWRmZWY5YmU3YTc2MTZiNTJlZGNjZDIxLi5iNjg5N2E2Yjg5ZGE1MzVjZDFkNzc4NGE4ZjdmMmZi
NTZhZWZmZDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTg3LDYgKzg3LDggQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGNvbnN0ZXhwciBTZWNv
bmRzIG5ldHdvcmtQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lb3V0ID0gNl9zOworc3RhdGljIGNv
bnN0ZXhwciBpbnQgdW5yZXNwb25zaXZlbmVzc0NvdW50TGltaXQgPSAzOworc3RhdGljIGNvbnN0
ZXhwciBTZWNvbmRzIHVucmVzcG9uc2l2ZW5lc3NDaGVja1BlcmlvZCA9IDE1X3M7CiAKIHN0YXRp
YyBIYXNoU2V0PE5ldHdvcmtQcm9jZXNzUHJveHkqPiYgbmV0d29ya1Byb2Nlc3Nlc1NldCgpCiB7
CkBAIC05NSw2ICs5NywyNSBAQCBzdGF0aWMgSGFzaFNldDxOZXR3b3JrUHJvY2Vzc1Byb3h5Kj4m
IG5ldHdvcmtQcm9jZXNzZXNTZXQoKQogICAgIHJldHVybiBzZXQ7CiB9CiAKK3N0YXRpYyBib29s
IHNob3VsZFRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzQnlTZW5kaW5nTWVzc2FnZSgpCit7CisgICAg
c3RhdGljIFdhbGxUaW1lIHVucmVzcG9uc2l2ZW5lc3NQZXJpb2RTdGFydFRpbWUgPSBXYWxsVGlt
ZTo6bm93KCk7CisgICAgc3RhdGljIGludCB1bnJlc3BvbnNpdmVuZXNzQ291bnREdXJpbmdUaGlz
UGVyaW9kID0gMDsKKyAgICBhdXRvIG5vdyA9IFdhbGxUaW1lOjpub3coKTsKKyAgICAKKyAgICBp
ZiAobm93IC0gdW5yZXNwb25zaXZlbmVzc1BlcmlvZFN0YXJ0VGltZSA+IHVucmVzcG9uc2l2ZW5l
c3NDaGVja1BlcmlvZCkgeworICAgICAgICB1bnJlc3BvbnNpdmVuZXNzQ291bnREdXJpbmdUaGlz
UGVyaW9kID0gMTsKKyAgICAgICAgdW5yZXNwb25zaXZlbmVzc1BlcmlvZFN0YXJ0VGltZSA9IG5v
dzsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgICsrdW5yZXNwb25zaXZlbmVz
c0NvdW50RHVyaW5nVGhpc1BlcmlvZDsKKyAgICBpZiAodW5yZXNwb25zaXZlbmVzc0NvdW50RHVy
aW5nVGhpc1BlcmlvZCA+PSB1bnJlc3BvbnNpdmVuZXNzQ291bnRMaW1pdCkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFZlY3RvcjxSZWY8TmV0d29ya1By
b2Nlc3NQcm94eT4+IE5ldHdvcmtQcm9jZXNzUHJveHk6OmFsbE5ldHdvcmtQcm9jZXNzZXMoKQog
ewogICAgIFZlY3RvcjxSZWY8TmV0d29ya1Byb2Nlc3NQcm94eT4+IHByb2Nlc3NlczsKQEAgLTEy
OCw2ICsxNDksMTYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGUoKQogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRCZWNvbWVVbnJlc3BvbnNpdmUoKQogewogICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRCZWNvbWVV
bnJlc3BvbnNpdmU6IE5ldHdvcmtQcm9jZXNzIHdpdGggUElEICVkIGJlY2FtZSB1bnJlc3BvbnNp
dmUsIHRlcm1pbmF0aW5nIGl0IiwgcHJvY2Vzc0lkZW50aWZpZXIoKSk7CisKKyAgICBpZiAoc2hv
dWxkVGVybWluYXRlTmV0d29ya1Byb2Nlc3NCeVNlbmRpbmdNZXNzYWdlKCkpIHsKKyAgICAgICAg
c2VuZE1lc3NhZ2UobWFrZVVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+KElQQzo6TWVzc2FnZU5hbWU6
OlRlcm1pbmF0ZSwgMCksIHsgfSk7CisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaEFm
dGVyKDFfcywgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dICgpIG11dGFibGUgeworICAg
ICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHdlYWtUaGlzLT50ZXJtaW5h
dGUoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB0ZXJtaW5h
dGUoKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443102</attachid>
            <date>2021-11-02 10:04:46 -0700</date>
            <delta_ts>2021-11-02 11:00:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232603-20211102100445.patch</filename>
            <type>text/plain</type>
            <size>8684</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkOWI0YjJmYzlkMTI2MTZm
NTIwMDhjNDc4ZDUxOTE4NWE5OGM5ODYuLmY4NmNhYTE2NmNhMzc0OTdmMjMzYWM1Nzg1MTA3YWJh
NTViZDk0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMTEtMDIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVGVybWluYXRlIHVucmVzcG9uc2l2
ZSBuZXR3b3JrIHByb2Nlc3MgYnkgY3Jhc2hpbmcgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVJIHByb2Nlc3MgY3VycmVudGx5IGtpbGxzIG5ldHdv
cmsgcHJvY2VzcyB3aGVuIGl0IGRvZXMgbm90IHJlc3BvbmQgbWVzc2FnZSBpbiBzb21lIHRpbWUg
KG5ldHdvcmsgcHJvY2VzcyBiZWluZyAKKyAgICAgICAgdW5yZXNwb25zaXZlKS4gV2UndmUgZm91
bmQgb25lIGNvbW1vbiBjYXNlIHdoZXJlIG5ldHdvcmsgcHJvY2VzcyBiZWNvbWVzIHVucmVzcG9u
c2l2ZSBpcyB0aGF0IGl0IGlzIGJsb2NrZWQgYnkgCisgICAgICAgIHNvbWUgc2xvdyBvcGVyYXRp
b24gb24gdGhlIG1haW4gdGhyZWFkIChsaWtlIGZpbGUgb3BlcmF0aW9uIGluIHJkYXI6Ly84NDUx
MTYzMykuIFRvIHVuZGVyc3RhbmQgd2hhdCB0aGUgCisgICAgICAgIG9wZXJhdGlvbnMgYXJlIGFu
ZCBtYWtlIGEgZml4LCB3ZSBub3cgYXNrIG5ldHdvcmsgcHJvY2VzcyB0byBjcmFzaCBpdHNlbGYg
b24gSVBDIHRocmVhZC4gSW4gdGhpcyB3YXksIHdlIGNhbiBnZXQgCisgICAgICAgIGNyYXNoIHJl
cG9ydCB0aGF0IGluY2x1ZGVzIHRoZSBjYWxsIHN0YWNrIG9mIHRoZSBtYWluIHRocmVhZC4gVG8g
YXZvaWQgZ2VuZXJhdGluZyB0b28gbWFueSBjcmFzaCByZXBvcnRzLCB3ZSAKKyAgICAgICAgb25s
eSBzZW5kIHRoZSBjcmFzaCBtZXNzYWdlIHRvIG5ldHdvcmsgcHJvY2VzcyB3aGVuIGl0IGJlY29t
ZXMgdW5yZXNwb25zaXZlIG11bHRpcGxlIHRpbWVzIGluIGEgc2hvcnQgdGltZSAKKyAgICAgICAg
cGVyaW9kLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoSVBDOjp0ZXJtaW5hdGVEdWVUb0lQQ1Rlcm1pbmF0ZU1lc3NhZ2UpOgorICAgICAgICAoSVBD
OjpDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdC9tb2RlbC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdl
TmFtZXMuY3BwOgorICAgICAgICAoSVBDOjpkZXNjcmlwdGlvbik6CisgICAgICAgIChJUEM6OnJl
Y2VpdmVyTmFtZSk6CisgICAgICAgIChJUEM6OmlzVmFsaWRNZXNzYWdlTmFtZSk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnNo
b3VsZFRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzQnlTZW5kaW5nTWVzc2FnZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZEJlY29tZVVucmVzcG9uc2l2ZSk6CisKIDIw
MjEtMTEtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9p
ZCBoZWFwLWFsbG9jYXRpbmcgSW1wb3J0YW5jZUFzc2VydGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCA5OWRlNTEwYzU3ZDlhYjg5NDE1Y2FiMTc2MDhh
NWIwZjkyMTI5MGM3Li4yMWRhNGRkZDIzMGUxMDc0YzczN2YxMTcwMGJjZGQxZTI3MmJmZDNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtNDIsNiArNDIs
NyBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiTWFjaE1lc3NhZ2UuaCIKKyNp
bmNsdWRlICJXS0NyYXNoUmVwb3J0ZXIuaCIKICNlbmRpZgogCiAjaWYgVVNFKFVOSVhfRE9NQUlO
X1NPQ0tFVFMpCkBAIC03NDUsNiArNzQ2LDEyIEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0lu
Y29taW5nU3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBkZWNvZGVyKQogICAgIC8v
IFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgc2VuZCB0aW1lZCBvdXQsIHNvIGl0J3MgZmluZSB0byBp
Z25vcmUuCiB9CiAKK3N0YXRpYyBORVZFUl9JTkxJTkUgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCB2
b2lkIHRlcm1pbmF0ZUR1ZVRvSVBDVGVybWluYXRlTWVzc2FnZSgpCit7CisgICAgV2ViS2l0Ojps
b2dBbmRTZXRDcmFzaExvZ01lc3NhZ2UoIlJlY2VpdmVzIFRlcm1pbmF0ZSBtZXNzYWdlIik7Cisg
ICAgQ1JBU0goKTsKK30KKwogdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdl
KHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBtZXNzYWdlKQogewogICAgIEFTU0VSVChtZXNzYWdl
LT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgIT0gUmVjZWl2ZXJOYW1lOjpJbnZhbGlkKTsKQEAgLTc1
NCw2ICs3NjEsMTEgQEAgdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKHN0
ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBtZXNzYWdlKQogICAgICAgICByZXR1cm47CiAgICAgfQog
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkgPT0g
TWVzc2FnZU5hbWU6OlRlcm1pbmF0ZSkKKyAgICAgICAgcmV0dXJuIHRlcm1pbmF0ZUR1ZVRvSVBD
VGVybWluYXRlTWVzc2FnZSgpOworI2VuZGlmCisKICAgICBpZiAoIU1lc3NhZ2VSZWNlaXZlUXVl
dWVNYXA6OmlzVmFsaWRNZXNzYWdlKCptZXNzYWdlKSkgewogICAgICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBtZXNzYWdlTmFtZSA9
IG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5kaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShtZXNzYWdlTmFtZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5IGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weQppbmRleCA1MDdlMDQyYTU3N2ZmOGEwMjMz
NzJjM2E2MDdhYjEwOGE1ZmE5Njc1Li42ZTFjNTUzY2NkNjk3Yzc5NjlkYTZiMTlmMGFmNTNmOWM2
YzJiM2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbW9kZWwucHkKQEAgLTc3LDcgKzc3
LDggQEAgaXBjX3JlY2VpdmVyID0gTWVzc2FnZVJlY2VpdmVyKG5hbWU9IklQQyIsIHN1cGVyY2xh
c3M9Tm9uZSwgYXR0cmlidXRlcz1bQlVJTFRJTl8KICAgICBNZXNzYWdlKCdJbml0aWFsaXplQ29u
bmVjdGlvbicsIFtdLCBbXSwgYXR0cmlidXRlcz1bQlVJTFRJTl9BVFRSSUJVVEVdLCBjb25kaXRp
b249IlBMQVRGT1JNKENPQ09BKSIpLAogICAgIE1lc3NhZ2UoJ0xlZ2FjeVNlc3Npb25TdGF0ZScs
IFtdLCBbXSwgYXR0cmlidXRlcz1bQlVJTFRJTl9BVFRSSUJVVEVdLCBjb25kaXRpb249Tm9uZSks
CiAgICAgTWVzc2FnZSgnU2V0U3RyZWFtRGVzdGluYXRpb25JRCcsIFtdLCBbXSwgYXR0cmlidXRl
cz1bQlVJTFRJTl9BVFRSSUJVVEVdLCBjb25kaXRpb249Tm9uZSksCi0gICAgTWVzc2FnZSgnUHJv
Y2Vzc091dE9mU3RyZWFtTWVzc2FnZScsIFtdLCBbXSwgYXR0cmlidXRlcz1bQlVJTFRJTl9BVFRS
SUJVVEVdLCBjb25kaXRpb249Tm9uZSkKKyAgICBNZXNzYWdlKCdQcm9jZXNzT3V0T2ZTdHJlYW1N
ZXNzYWdlJywgW10sIFtdLCBhdHRyaWJ1dGVzPVtCVUlMVElOX0FUVFJJQlVURV0sIGNvbmRpdGlv
bj1Ob25lKSwKKyAgICBNZXNzYWdlKCdUZXJtaW5hdGUnLCBbXSwgW10sIGF0dHJpYnV0ZXM9W0JV
SUxUSU5fQVRUUklCVVRFXSwgY29uZGl0aW9uPSJQTEFURk9STShDT0NPQSkiKSwKIF0sIGNvbmRp
dGlvbj1Ob25lKQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvTWVzc2FnZU5hbWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVz
dHMvTWVzc2FnZU5hbWVzLmNwcAppbmRleCBmNmNmNzA5YjdjMTNmMWQ2OTdkMDYwYzYzMTcxMGEx
Mjg5N2I5MDhkLi5lZDYzNDBjODM1MmYzMTJlZGZkZDIzNzliMTBmMzgzOTc3MTRiOGExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlTmFtZXMu
Y3BwCkBAIC0xNTYsNiArMTU2LDggQEAgY29uc3QgY2hhciogZGVzY3JpcHRpb24oTWVzc2FnZU5h
bWUgbmFtZSkKICAgICAgICAgcmV0dXJuICJTZXRTdHJlYW1EZXN0aW5hdGlvbklEIjsKICAgICBj
YXNlIE1lc3NhZ2VOYW1lOjpTeW5jTWVzc2FnZVJlcGx5OgogICAgICAgICByZXR1cm4gIlN5bmNN
ZXNzYWdlUmVwbHkiOworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlcm1pbmF0ZToKKyAgICAgICAg
cmV0dXJuICJUZXJtaW5hdGUiOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJj
bGFzc19UZXN0QXN5bmNNZXNzYWdlUmVwbHk6CiAgICAgICAgIHJldHVybiAiVGVzdFdpdGhTdXBl
cmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseSI7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVz
dFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvblJlcGx5OgpAQCAt
MjU4LDYgKzI2MCw3IEBAIFJlY2VpdmVyTmFtZSByZWNlaXZlck5hbWUoTWVzc2FnZU5hbWUgbWVz
c2FnZU5hbWUpCiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6UHJvY2Vzc091dE9mU3RyZWFtTWVzc2Fn
ZToKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpTZXRTdHJlYW1EZXN0aW5hdGlvbklEOgogICAgIGNh
c2UgTWVzc2FnZU5hbWU6OlN5bmNNZXNzYWdlUmVwbHk6CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVybWluYXRlOgogICAgICAgICByZXR1cm4gUmVjZWl2ZXJOYW1lOjpJUEM7CiAgICAgY2FzZSBN
ZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseToKICAg
ICBjYXNlIE1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdp
dGhDb25uZWN0aW9uUmVwbHk6CkBAIC00NjYsNiArNDY5LDggQEAgYm9vbCBpc1ZhbGlkTWVzc2Fn
ZU5hbWUoTWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpTeW5jTWVzc2FnZVJlcGx5KQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdl
TmFtZTo6VGVybWluYXRlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKICNpZiBFTkFCTEUoVEVTVF9G
RUFUVVJFKQogICAgIGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0
aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVJlcGx5KQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5h
bWVzLmggYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5o
CmluZGV4IDJlZmQ1ZTA0OTBmMTA2YWMwNmFmMWU5YzI0YWZlNzQ2MDE1MTc5MzYuLmFiNTU0NTNm
ZDk4ZjQwMzY2MGFiMTg4OTU2YTE5NGVhMGMyOGZjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlTmFtZXMuaApAQCAtMTA3LDYgKzEwNyw3IEBA
IGVudW0gY2xhc3MgTWVzc2FnZU5hbWUgOiB1aW50MTZfdCB7CiAgICAgLCBQcm9jZXNzT3V0T2ZT
dHJlYW1NZXNzYWdlCiAgICAgLCBTZXRTdHJlYW1EZXN0aW5hdGlvbklECiAgICAgLCBTeW5jTWVz
c2FnZVJlcGx5CisgICAgLCBUZXJtaW5hdGUKICAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0
QXN5bmNNZXNzYWdlUmVwbHkKICAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNz
YWdlV2l0aENvbm5lY3Rpb25SZXBseQogICAgICwgVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3lu
Y01lc3NhZ2VXaXRoTXVsdGlwbGVBcmd1bWVudHNSZXBseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNjVm
NGU4MjFkYTkzZTFlZTVkZmVmOWJlN2E3NjE2YjUyZWRjY2QyMS4uNWY1ZDBlYWE0MTU5ZDQwNWIz
NTEzOTA5MDY0ZjE2NjQ1NmZlZjIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC04Nyw2ICs4Nyw4IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBj
b25zdGV4cHIgU2Vjb25kcyBuZXR3b3JrUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZW91dCA9IDZf
czsKK3N0YXRpYyBjb25zdGV4cHIgaW50IHVucmVzcG9uc2l2ZW5lc3NDb3VudExpbWl0ID0gMzsK
K3N0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyB1bnJlc3BvbnNpdmVuZXNzQ2hlY2tQZXJpb2QgPSAx
NV9zOwogCiBzdGF0aWMgSGFzaFNldDxOZXR3b3JrUHJvY2Vzc1Byb3h5Kj4mIG5ldHdvcmtQcm9j
ZXNzZXNTZXQoKQogewpAQCAtOTUsNiArOTcsMjUgQEAgc3RhdGljIEhhc2hTZXQ8TmV0d29ya1By
b2Nlc3NQcm94eSo+JiBuZXR3b3JrUHJvY2Vzc2VzU2V0KCkKICAgICByZXR1cm4gc2V0OwogfQog
CitzdGF0aWMgYm9vbCBzaG91bGRUZXJtaW5hdGVOZXR3b3JrUHJvY2Vzc0J5U2VuZGluZ01lc3Nh
Z2UoKQoreworICAgIHN0YXRpYyBXYWxsVGltZSB1bnJlc3BvbnNpdmVuZXNzUGVyaW9kU3RhcnRU
aW1lID0gV2FsbFRpbWU6Om5vdygpOworICAgIHN0YXRpYyBpbnQgdW5yZXNwb25zaXZlbmVzc0Nv
dW50RHVyaW5nVGhpc1BlcmlvZCA9IDA7CisgICAgYXV0byBub3cgPSBXYWxsVGltZTo6bm93KCk7
CisKKyAgICBpZiAobm93IC0gdW5yZXNwb25zaXZlbmVzc1BlcmlvZFN0YXJ0VGltZSA+IHVucmVz
cG9uc2l2ZW5lc3NDaGVja1BlcmlvZCkgeworICAgICAgICB1bnJlc3BvbnNpdmVuZXNzQ291bnRE
dXJpbmdUaGlzUGVyaW9kID0gMTsKKyAgICAgICAgdW5yZXNwb25zaXZlbmVzc1BlcmlvZFN0YXJ0
VGltZSA9IG5vdzsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgICsrdW5yZXNw
b25zaXZlbmVzc0NvdW50RHVyaW5nVGhpc1BlcmlvZDsKKyAgICBpZiAodW5yZXNwb25zaXZlbmVz
c0NvdW50RHVyaW5nVGhpc1BlcmlvZCA+PSB1bnJlc3BvbnNpdmVuZXNzQ291bnRMaW1pdCkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFZlY3RvcjxSZWY8
TmV0d29ya1Byb2Nlc3NQcm94eT4+IE5ldHdvcmtQcm9jZXNzUHJveHk6OmFsbE5ldHdvcmtQcm9j
ZXNzZXMoKQogewogICAgIFZlY3RvcjxSZWY8TmV0d29ya1Byb2Nlc3NQcm94eT4+IHByb2Nlc3Nl
czsKQEAgLTEyOCw2ICsxNDksMTYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5h
dGUoKQogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRCZWNvbWVVbnJlc3BvbnNpdmUoKQog
ewogICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpk
aWRCZWNvbWVVbnJlc3BvbnNpdmU6IE5ldHdvcmtQcm9jZXNzIHdpdGggUElEICVkIGJlY2FtZSB1
bnJlc3BvbnNpdmUsIHRlcm1pbmF0aW5nIGl0IiwgcHJvY2Vzc0lkZW50aWZpZXIoKSk7CisKKyAg
ICBpZiAoc2hvdWxkVGVybWluYXRlTmV0d29ya1Byb2Nlc3NCeVNlbmRpbmdNZXNzYWdlKCkpIHsK
KyAgICAgICAgc2VuZE1lc3NhZ2UobWFrZVVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+KElQQzo6TWVz
c2FnZU5hbWU6OlRlcm1pbmF0ZSwgMCksIHsgfSk7CisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaEFmdGVyKDFfcywgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dICgpIG11dGFi
bGUgeworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHdlYWtUaGlz
LT50ZXJtaW5hdGUoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICB0ZXJtaW5hdGUoKTsKIH0KIAo=
</data>
<flag name="commit-queue"
          id="467772"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443109</attachid>
            <date>2021-11-02 10:56:57 -0700</date>
            <delta_ts>2021-11-02 11:58:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232603-20211102105656.patch</filename>
            <type>text/plain</type>
            <size>8729</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkOWI0YjJmYzlkMTI2MTZm
NTIwMDhjNDc4ZDUxOTE4NWE5OGM5ODYuLmY4NmNhYTE2NmNhMzc0OTdmMjMzYWM1Nzg1MTA3YWJh
NTViZDk0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMTEtMDIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVGVybWluYXRlIHVucmVzcG9uc2l2
ZSBuZXR3b3JrIHByb2Nlc3MgYnkgY3Jhc2hpbmcgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVJIHByb2Nlc3MgY3VycmVudGx5IGtpbGxzIG5ldHdv
cmsgcHJvY2VzcyB3aGVuIGl0IGRvZXMgbm90IHJlc3BvbmQgbWVzc2FnZSBpbiBzb21lIHRpbWUg
KG5ldHdvcmsgcHJvY2VzcyBiZWluZyAKKyAgICAgICAgdW5yZXNwb25zaXZlKS4gV2UndmUgZm91
bmQgb25lIGNvbW1vbiBjYXNlIHdoZXJlIG5ldHdvcmsgcHJvY2VzcyBiZWNvbWVzIHVucmVzcG9u
c2l2ZSBpcyB0aGF0IGl0IGlzIGJsb2NrZWQgYnkgCisgICAgICAgIHNvbWUgc2xvdyBvcGVyYXRp
b24gb24gdGhlIG1haW4gdGhyZWFkIChsaWtlIGZpbGUgb3BlcmF0aW9uIGluIHJkYXI6Ly84NDUx
MTYzMykuIFRvIHVuZGVyc3RhbmQgd2hhdCB0aGUgCisgICAgICAgIG9wZXJhdGlvbnMgYXJlIGFu
ZCBtYWtlIGEgZml4LCB3ZSBub3cgYXNrIG5ldHdvcmsgcHJvY2VzcyB0byBjcmFzaCBpdHNlbGYg
b24gSVBDIHRocmVhZC4gSW4gdGhpcyB3YXksIHdlIGNhbiBnZXQgCisgICAgICAgIGNyYXNoIHJl
cG9ydCB0aGF0IGluY2x1ZGVzIHRoZSBjYWxsIHN0YWNrIG9mIHRoZSBtYWluIHRocmVhZC4gVG8g
YXZvaWQgZ2VuZXJhdGluZyB0b28gbWFueSBjcmFzaCByZXBvcnRzLCB3ZSAKKyAgICAgICAgb25s
eSBzZW5kIHRoZSBjcmFzaCBtZXNzYWdlIHRvIG5ldHdvcmsgcHJvY2VzcyB3aGVuIGl0IGJlY29t
ZXMgdW5yZXNwb25zaXZlIG11bHRpcGxlIHRpbWVzIGluIGEgc2hvcnQgdGltZSAKKyAgICAgICAg
cGVyaW9kLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoSVBDOjp0ZXJtaW5hdGVEdWVUb0lQQ1Rlcm1pbmF0ZU1lc3NhZ2UpOgorICAgICAgICAoSVBD
OjpDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdC9tb2RlbC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdl
TmFtZXMuY3BwOgorICAgICAgICAoSVBDOjpkZXNjcmlwdGlvbik6CisgICAgICAgIChJUEM6OnJl
Y2VpdmVyTmFtZSk6CisgICAgICAgIChJUEM6OmlzVmFsaWRNZXNzYWdlTmFtZSk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnNo
b3VsZFRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzQnlTZW5kaW5nTWVzc2FnZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZEJlY29tZVVucmVzcG9uc2l2ZSk6CisKIDIw
MjEtMTEtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9p
ZCBoZWFwLWFsbG9jYXRpbmcgSW1wb3J0YW5jZUFzc2VydGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCA5OWRlNTEwYzU3ZDlhYjg5NDE1Y2FiMTc2MDhh
NWIwZjkyMTI5MGM3Li5hYThmNzg0ZjNmYTc3NTNlYTk0MGJmNGVlMWJlOTY0Nzc2MjdkZmUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtNDIsNiArNDIs
NyBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiTWFjaE1lc3NhZ2UuaCIKKyNp
bmNsdWRlICJXS0NyYXNoUmVwb3J0ZXIuaCIKICNlbmRpZgogCiAjaWYgVVNFKFVOSVhfRE9NQUlO
X1NPQ0tFVFMpCkBAIC03NDUsNiArNzQ2LDE2IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0lu
Y29taW5nU3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBkZWNvZGVyKQogICAgIC8v
IFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgc2VuZCB0aW1lZCBvdXQsIHNvIGl0J3MgZmluZSB0byBp
Z25vcmUuCiB9CiAKK3N0YXRpYyBORVZFUl9JTkxJTkUgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCB2
b2lkIHRlcm1pbmF0ZUR1ZVRvSVBDVGVybWluYXRlTWVzc2FnZSgpCit7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgV2ViS2l0Ojpsb2dBbmRTZXRDcmFzaExvZ01lc3NhZ2UoIlJlY2VpdmVzIFRl
cm1pbmF0ZSBtZXNzYWdlIik7CisjZWxzZQorICAgIFdURkxvZ0Fsd2F5cygiUmVjZWl2ZXMgVGVy
bWluYXRlIG1lc3NhZ2UiKTsKKyNlbmRpZgorICAgIENSQVNIKCk7Cit9CisKIHZvaWQgQ29ubmVj
dGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVz
c2FnZSkKIHsKICAgICBBU1NFUlQobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpICE9IFJl
Y2VpdmVyTmFtZTo6SW52YWxpZCk7CkBAIC03NTQsNiArNzY1LDEwIEBAIHZvaWQgQ29ubmVjdGlv
bjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVzc2Fn
ZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorCisgICAgaWYgKG1lc3NhZ2UtPm1lc3NhZ2VO
YW1lKCkgPT0gTWVzc2FnZU5hbWU6OlRlcm1pbmF0ZSkKKyAgICAgICAgcmV0dXJuIHRlcm1pbmF0
ZUR1ZVRvSVBDVGVybWluYXRlTWVzc2FnZSgpOworCiAgICAgaWYgKCFNZXNzYWdlUmVjZWl2ZVF1
ZXVlTWFwOjppc1ZhbGlkTWVzc2FnZSgqbWVzc2FnZSkpIHsKICAgICAgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgbWVzc2FnZU5hbWUg
PSBtZXNzYWdlLT5tZXNzYWdlTmFtZSgpXSgpIG11dGFibGUgewogICAgICAgICAgICAgcHJvdGVj
dGVkVGhpcy0+ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UobWVzc2FnZU5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weSBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbW9kZWwucHkKaW5kZXggNTA3ZTA0MmE1NzdmZjhhMDIz
MzcyYzNhNjA3YWIxMDhhNWZhOTY3NS4uNjlmMDE5NjMxMGNmY2I3MTI5N2VjZmNiMjYyM2RmYmQ3
ZTU5MmQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbC5w
eQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CkBAIC03Nyw3ICs3
Nyw4IEBAIGlwY19yZWNlaXZlciA9IE1lc3NhZ2VSZWNlaXZlcihuYW1lPSJJUEMiLCBzdXBlcmNs
YXNzPU5vbmUsIGF0dHJpYnV0ZXM9W0JVSUxUSU5fCiAgICAgTWVzc2FnZSgnSW5pdGlhbGl6ZUNv
bm5lY3Rpb24nLCBbXSwgW10sIGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklCVVRFXSwgY29uZGl0
aW9uPSJQTEFURk9STShDT0NPQSkiKSwKICAgICBNZXNzYWdlKCdMZWdhY3lTZXNzaW9uU3RhdGUn
LCBbXSwgW10sIGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklCVVRFXSwgY29uZGl0aW9uPU5vbmUp
LAogICAgIE1lc3NhZ2UoJ1NldFN0cmVhbURlc3RpbmF0aW9uSUQnLCBbXSwgW10sIGF0dHJpYnV0
ZXM9W0JVSUxUSU5fQVRUUklCVVRFXSwgY29uZGl0aW9uPU5vbmUpLAotICAgIE1lc3NhZ2UoJ1By
b2Nlc3NPdXRPZlN0cmVhbU1lc3NhZ2UnLCBbXSwgW10sIGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRU
UklCVVRFXSwgY29uZGl0aW9uPU5vbmUpCisgICAgTWVzc2FnZSgnUHJvY2Vzc091dE9mU3RyZWFt
TWVzc2FnZScsIFtdLCBbXSwgYXR0cmlidXRlcz1bQlVJTFRJTl9BVFRSSUJVVEVdLCBjb25kaXRp
b249Tm9uZSksCisgICAgTWVzc2FnZSgnVGVybWluYXRlJywgW10sIFtdLCBhdHRyaWJ1dGVzPVtC
VUlMVElOX0FUVFJJQlVURV0sIGNvbmRpdGlvbj1Ob25lKSwKIF0sIGNvbmRpdGlvbj1Ob25lKQog
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2Fn
ZU5hbWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5h
bWVzLmNwcAppbmRleCBmNmNmNzA5YjdjMTNmMWQ2OTdkMDYwYzYzMTcxMGExMjg5N2I5MDhkLi5l
ZDYzNDBjODM1MmYzMTJlZGZkZDIzNzliMTBmMzgzOTc3MTRiOGExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlTmFtZXMuY3BwCkBAIC0xNTYs
NiArMTU2LDggQEAgY29uc3QgY2hhciogZGVzY3JpcHRpb24oTWVzc2FnZU5hbWUgbmFtZSkKICAg
ICAgICAgcmV0dXJuICJTZXRTdHJlYW1EZXN0aW5hdGlvbklEIjsKICAgICBjYXNlIE1lc3NhZ2VO
YW1lOjpTeW5jTWVzc2FnZVJlcGx5OgogICAgICAgICByZXR1cm4gIlN5bmNNZXNzYWdlUmVwbHki
OworICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlcm1pbmF0ZToKKyAgICAgICAgcmV0dXJuICJUZXJt
aW5hdGUiOwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5
bmNNZXNzYWdlUmVwbHk6CiAgICAgICAgIHJldHVybiAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RB
c3luY01lc3NhZ2VSZXBseSI7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNs
YXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvblJlcGx5OgpAQCAtMjU4LDYgKzI2MCw3
IEBAIFJlY2VpdmVyTmFtZSByZWNlaXZlck5hbWUoTWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCiAg
ICAgY2FzZSBNZXNzYWdlTmFtZTo6UHJvY2Vzc091dE9mU3RyZWFtTWVzc2FnZToKICAgICBjYXNl
IE1lc3NhZ2VOYW1lOjpTZXRTdHJlYW1EZXN0aW5hdGlvbklEOgogICAgIGNhc2UgTWVzc2FnZU5h
bWU6OlN5bmNNZXNzYWdlUmVwbHk6CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVybWluYXRlOgog
ICAgICAgICByZXR1cm4gUmVjZWl2ZXJOYW1lOjpJUEM7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6
VGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseToKICAgICBjYXNlIE1lc3Nh
Z2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9u
UmVwbHk6CkBAIC00NjYsNiArNDY5LDggQEAgYm9vbCBpc1ZhbGlkTWVzc2FnZU5hbWUoTWVzc2Fn
ZU5hbWUgbWVzc2FnZU5hbWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChtZXNzYWdl
TmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpTeW5jTWVzc2FnZVJlcGx5KQogICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVybWlu
YXRlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAg
IGlmIChtZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3Nf
VGVzdEFzeW5jTWVzc2FnZVJlcGx5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5oCmluZGV4IDJlZmQ1
ZTA0OTBmMTA2YWMwNmFmMWU5YzI0YWZlNzQ2MDE1MTc5MzYuLmFiNTU0NTNmZDk4ZjQwMzY2MGFi
MTg4OTU2YTE5NGVhMGMyOGZjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC90ZXN0cy9NZXNzYWdlTmFtZXMuaApAQCAtMTA3LDYgKzEwNyw3IEBAIGVudW0gY2xhc3Mg
TWVzc2FnZU5hbWUgOiB1aW50MTZfdCB7CiAgICAgLCBQcm9jZXNzT3V0T2ZTdHJlYW1NZXNzYWdl
CiAgICAgLCBTZXRTdHJlYW1EZXN0aW5hdGlvbklECiAgICAgLCBTeW5jTWVzc2FnZVJlcGx5Cisg
ICAgLCBUZXJtaW5hdGUKICAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdl
UmVwbHkKICAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5l
Y3Rpb25SZXBseQogICAgICwgVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRo
TXVsdGlwbGVBcmd1bWVudHNSZXBseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNjVmNGU4MjFkYTkzZTFl
ZTVkZmVmOWJlN2E3NjE2YjUyZWRjY2QyMS4uNWY1ZDBlYWE0MTU5ZDQwNWIzNTEzOTA5MDY0ZjE2
NjQ1NmZlZjIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC04Nyw2ICs4Nyw4IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBjb25zdGV4cHIgU2Vj
b25kcyBuZXR3b3JrUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZW91dCA9IDZfczsKK3N0YXRpYyBj
b25zdGV4cHIgaW50IHVucmVzcG9uc2l2ZW5lc3NDb3VudExpbWl0ID0gMzsKK3N0YXRpYyBjb25z
dGV4cHIgU2Vjb25kcyB1bnJlc3BvbnNpdmVuZXNzQ2hlY2tQZXJpb2QgPSAxNV9zOwogCiBzdGF0
aWMgSGFzaFNldDxOZXR3b3JrUHJvY2Vzc1Byb3h5Kj4mIG5ldHdvcmtQcm9jZXNzZXNTZXQoKQog
ewpAQCAtOTUsNiArOTcsMjUgQEAgc3RhdGljIEhhc2hTZXQ8TmV0d29ya1Byb2Nlc3NQcm94eSo+
JiBuZXR3b3JrUHJvY2Vzc2VzU2V0KCkKICAgICByZXR1cm4gc2V0OwogfQogCitzdGF0aWMgYm9v
bCBzaG91bGRUZXJtaW5hdGVOZXR3b3JrUHJvY2Vzc0J5U2VuZGluZ01lc3NhZ2UoKQoreworICAg
IHN0YXRpYyBXYWxsVGltZSB1bnJlc3BvbnNpdmVuZXNzUGVyaW9kU3RhcnRUaW1lID0gV2FsbFRp
bWU6Om5vdygpOworICAgIHN0YXRpYyBpbnQgdW5yZXNwb25zaXZlbmVzc0NvdW50RHVyaW5nVGhp
c1BlcmlvZCA9IDA7CisgICAgYXV0byBub3cgPSBXYWxsVGltZTo6bm93KCk7CisKKyAgICBpZiAo
bm93IC0gdW5yZXNwb25zaXZlbmVzc1BlcmlvZFN0YXJ0VGltZSA+IHVucmVzcG9uc2l2ZW5lc3ND
aGVja1BlcmlvZCkgeworICAgICAgICB1bnJlc3BvbnNpdmVuZXNzQ291bnREdXJpbmdUaGlzUGVy
aW9kID0gMTsKKyAgICAgICAgdW5yZXNwb25zaXZlbmVzc1BlcmlvZFN0YXJ0VGltZSA9IG5vdzsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgICsrdW5yZXNwb25zaXZlbmVzc0Nv
dW50RHVyaW5nVGhpc1BlcmlvZDsKKyAgICBpZiAodW5yZXNwb25zaXZlbmVzc0NvdW50RHVyaW5n
VGhpc1BlcmlvZCA+PSB1bnJlc3BvbnNpdmVuZXNzQ291bnRMaW1pdCkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFZlY3RvcjxSZWY8TmV0d29ya1Byb2Nl
c3NQcm94eT4+IE5ldHdvcmtQcm9jZXNzUHJveHk6OmFsbE5ldHdvcmtQcm9jZXNzZXMoKQogewog
ICAgIFZlY3RvcjxSZWY8TmV0d29ya1Byb2Nlc3NQcm94eT4+IHByb2Nlc3NlczsKQEAgLTEyOCw2
ICsxNDksMTYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGUoKQogdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRCZWNvbWVVbnJlc3BvbnNpdmUoKQogewogICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFByb2Nlc3MsICJOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRCZWNvbWVVbnJl
c3BvbnNpdmU6IE5ldHdvcmtQcm9jZXNzIHdpdGggUElEICVkIGJlY2FtZSB1bnJlc3BvbnNpdmUs
IHRlcm1pbmF0aW5nIGl0IiwgcHJvY2Vzc0lkZW50aWZpZXIoKSk7CisKKyAgICBpZiAoc2hvdWxk
VGVybWluYXRlTmV0d29ya1Byb2Nlc3NCeVNlbmRpbmdNZXNzYWdlKCkpIHsKKyAgICAgICAgc2Vu
ZE1lc3NhZ2UobWFrZVVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+KElQQzo6TWVzc2FnZU5hbWU6OlRl
cm1pbmF0ZSwgMCksIHsgfSk7CisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaEFmdGVy
KDFfcywgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dICgpIG11dGFibGUgeworICAgICAg
ICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHdlYWtUaGlzLT50ZXJtaW5hdGUo
KTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB0ZXJtaW5hdGUo
KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443118</attachid>
            <date>2021-11-02 11:58:50 -0700</date>
            <delta_ts>2021-11-02 12:42:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232603-20211102115848.patch</filename>
            <type>text/plain</type>
            <size>9027</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkOWI0YjJmYzlkMTI2MTZm
NTIwMDhjNDc4ZDUxOTE4NWE5OGM5ODYuLmI3YjA1N2UxOWI5NGIzNzYwYmYwZTk2YjU4ZTVhMmNh
ZDliMjEyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMTEtMDIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVGVybWluYXRlIHVucmVzcG9uc2l2
ZSBuZXR3b3JrIHByb2Nlc3MgYnkgY3Jhc2hpbmcgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYwMworCisgICAgICAgIFJldmlld2VkIGJ5IENo
cmlzIER1bWV6LgorCisgICAgICAgIFVJIHByb2Nlc3MgY3VycmVudGx5IGtpbGxzIG5ldHdvcmsg
cHJvY2VzcyB3aGVuIGl0IGRvZXMgbm90IHJlc3BvbmQgbWVzc2FnZSBpbiBzb21lIHRpbWUgKG5l
dHdvcmsgcHJvY2VzcyBiZWluZyAKKyAgICAgICAgdW5yZXNwb25zaXZlKS4gV2UndmUgZm91bmQg
b25lIGNvbW1vbiBjYXNlIHdoZXJlIG5ldHdvcmsgcHJvY2VzcyBiZWNvbWVzIHVucmVzcG9uc2l2
ZSBpcyB0aGF0IGl0IGlzIGJsb2NrZWQgYnkgCisgICAgICAgIHNvbWUgc2xvdyBvcGVyYXRpb24g
b24gdGhlIG1haW4gdGhyZWFkIChsaWtlIGZpbGUgb3BlcmF0aW9uIGluIHJkYXI6Ly84NDUxMTYz
MykuIFRvIHVuZGVyc3RhbmQgd2hhdCB0aGUgCisgICAgICAgIG9wZXJhdGlvbnMgYXJlIGFuZCBt
YWtlIGEgZml4LCB3ZSBub3cgYXNrIG5ldHdvcmsgcHJvY2VzcyB0byBjcmFzaCBpdHNlbGYgb24g
SVBDIHRocmVhZC4gSW4gdGhpcyB3YXksIHdlIGNhbiBnZXQgCisgICAgICAgIGNyYXNoIHJlcG9y
dCB0aGF0IGluY2x1ZGVzIHRoZSBjYWxsIHN0YWNrIG9mIHRoZSBtYWluIHRocmVhZC4gVG8gYXZv
aWQgZ2VuZXJhdGluZyB0b28gbWFueSBjcmFzaCByZXBvcnRzLCB3ZSAKKyAgICAgICAgb25seSBz
ZW5kIHRoZSBjcmFzaCBtZXNzYWdlIHRvIG5ldHdvcmsgcHJvY2VzcyB3aGVuIGl0IGJlY29tZXMg
dW5yZXNwb25zaXZlIG11bHRpcGxlIHRpbWVzIGluIGEgc2hvcnQgdGltZSAKKyAgICAgICAgcGVy
aW9kLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
SVBDOjp0ZXJtaW5hdGVEdWVUb0lQQ1Rlcm1pbmF0ZU1lc3NhZ2UpOgorICAgICAgICAoSVBDOjpD
b25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC9tb2RlbC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlTmFt
ZXMuY3BwOgorICAgICAgICAoSVBDOjpkZXNjcmlwdGlvbik6CisgICAgICAgIChJUEM6OnJlY2Vp
dmVyTmFtZSk6CisgICAgICAgIChJUEM6OmlzVmFsaWRNZXNzYWdlTmFtZSk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnNob3Vs
ZFRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzQnlTZW5kaW5nTWVzc2FnZSk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZEJlY29tZVVucmVzcG9uc2l2ZSk6CisKIDIwMjEt
MTEtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCBo
ZWFwLWFsbG9jYXRpbmcgSW1wb3J0YW5jZUFzc2VydGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCA5OWRlNTEwYzU3ZDlhYjg5NDE1Y2FiMTc2MDhhNWIw
ZjkyMTI5MGM3Li5jYTQ1MDU5MDA5NTYyYjQ4NDExNWY0ZjY3NmM1OGU2N2JkYmJjYWUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtNDIsNiArNDIsNyBA
QAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiTWFjaE1lc3NhZ2UuaCIKKyNpbmNs
dWRlICJXS0NyYXNoUmVwb3J0ZXIuaCIKICNlbmRpZgogCiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NP
Q0tFVFMpCkBAIC03NDUsNiArNzQ2LDE2IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29t
aW5nU3luY1JlcGx5KHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBkZWNvZGVyKQogICAgIC8vIFRo
aXMgY2FuIGhhcHBlbiBpZiB0aGUgc2VuZCB0aW1lZCBvdXQsIHNvIGl0J3MgZmluZSB0byBpZ25v
cmUuCiB9CiAKK3N0YXRpYyBORVZFUl9JTkxJTkUgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCB2b2lk
IHRlcm1pbmF0ZUR1ZVRvSVBDVGVybWluYXRlTWVzc2FnZSgpCit7CisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgV2ViS2l0Ojpsb2dBbmRTZXRDcmFzaExvZ01lc3NhZ2UoIlJlY2VpdmVzIFRlcm1p
bmF0ZSBtZXNzYWdlIik7CisjZWxzZQorICAgIFdURkxvZ0Fsd2F5cygiUmVjZWl2ZXMgVGVybWlu
YXRlIG1lc3NhZ2UiKTsKKyNlbmRpZgorICAgIENSQVNIKCk7Cit9CisKIHZvaWQgQ29ubmVjdGlv
bjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVzc2Fn
ZSkKIHsKICAgICBBU1NFUlQobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpICE9IFJlY2Vp
dmVyTmFtZTo6SW52YWxpZCk7CkBAIC03NTQsNiArNzY1LDkgQEAgdm9pZCBDb25uZWN0aW9uOjpw
cm9jZXNzSW5jb21pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBtZXNzYWdlKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1lc3NhZ2UtPm1lc3NhZ2VOYW1lKCkg
PT0gTWVzc2FnZU5hbWU6OlRlcm1pbmF0ZSkKKyAgICAgICAgcmV0dXJuIHRlcm1pbmF0ZUR1ZVRv
SVBDVGVybWluYXRlTWVzc2FnZSgpOworCiAgICAgaWYgKCFNZXNzYWdlUmVjZWl2ZVF1ZXVlTWFw
Ojppc1ZhbGlkTWVzc2FnZSgqbWVzc2FnZSkpIHsKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRp
c3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgbWVzc2FnZU5hbWUgPSBtZXNz
YWdlLT5tZXNzYWdlTmFtZSgpXSgpIG11dGFibGUgewogICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+ZGlzcGF0Y2hEaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UobWVzc2FnZU5hbWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weSBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbW9kZWwucHkKaW5kZXggNTA3ZTA0MmE1NzdmZjhhMDIzMzcyYzNh
NjA3YWIxMDhhNWZhOTY3NS4uNjlmMDE5NjMxMGNmY2I3MTI5N2VjZmNiMjYyM2RmYmQ3ZTU5MmQz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21vZGVsLnB5CkBAIC03Nyw3ICs3Nyw4IEBA
IGlwY19yZWNlaXZlciA9IE1lc3NhZ2VSZWNlaXZlcihuYW1lPSJJUEMiLCBzdXBlcmNsYXNzPU5v
bmUsIGF0dHJpYnV0ZXM9W0JVSUxUSU5fCiAgICAgTWVzc2FnZSgnSW5pdGlhbGl6ZUNvbm5lY3Rp
b24nLCBbXSwgW10sIGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklCVVRFXSwgY29uZGl0aW9uPSJQ
TEFURk9STShDT0NPQSkiKSwKICAgICBNZXNzYWdlKCdMZWdhY3lTZXNzaW9uU3RhdGUnLCBbXSwg
W10sIGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklCVVRFXSwgY29uZGl0aW9uPU5vbmUpLAogICAg
IE1lc3NhZ2UoJ1NldFN0cmVhbURlc3RpbmF0aW9uSUQnLCBbXSwgW10sIGF0dHJpYnV0ZXM9W0JV
SUxUSU5fQVRUUklCVVRFXSwgY29uZGl0aW9uPU5vbmUpLAotICAgIE1lc3NhZ2UoJ1Byb2Nlc3NP
dXRPZlN0cmVhbU1lc3NhZ2UnLCBbXSwgW10sIGF0dHJpYnV0ZXM9W0JVSUxUSU5fQVRUUklCVVRF
XSwgY29uZGl0aW9uPU5vbmUpCisgICAgTWVzc2FnZSgnUHJvY2Vzc091dE9mU3RyZWFtTWVzc2Fn
ZScsIFtdLCBbXSwgYXR0cmlidXRlcz1bQlVJTFRJTl9BVFRSSUJVVEVdLCBjb25kaXRpb249Tm9u
ZSksCisgICAgTWVzc2FnZSgnVGVybWluYXRlJywgW10sIFtdLCBhdHRyaWJ1dGVzPVtCVUlMVElO
X0FUVFJJQlVURV0sIGNvbmRpdGlvbj1Ob25lKSwKIF0sIGNvbmRpdGlvbj1Ob25lKQogCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmNw
cAppbmRleCBmNmNmNzA5YjdjMTNmMWQ2OTdkMDYwYzYzMTcxMGExMjg5N2I5MDhkLi5lZDYzNDBj
ODM1MmYzMTJlZGZkZDIzNzliMTBmMzgzOTc3MTRiOGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9NZXNzYWdlTmFtZXMuY3BwCkBAIC0xNTYsNiArMTU2
LDggQEAgY29uc3QgY2hhciogZGVzY3JpcHRpb24oTWVzc2FnZU5hbWUgbmFtZSkKICAgICAgICAg
cmV0dXJuICJTZXRTdHJlYW1EZXN0aW5hdGlvbklEIjsKICAgICBjYXNlIE1lc3NhZ2VOYW1lOjpT
eW5jTWVzc2FnZVJlcGx5OgogICAgICAgICByZXR1cm4gIlN5bmNNZXNzYWdlUmVwbHkiOworICAg
IGNhc2UgTWVzc2FnZU5hbWU6OlRlcm1pbmF0ZToKKyAgICAgICAgcmV0dXJuICJUZXJtaW5hdGUi
OwogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNz
YWdlUmVwbHk6CiAgICAgICAgIHJldHVybiAiVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01l
c3NhZ2VSZXBseSI7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdpdGhTdXBlcmNsYXNzX1Rl
c3RBc3luY01lc3NhZ2VXaXRoQ29ubmVjdGlvblJlcGx5OgpAQCAtMjU4LDYgKzI2MCw3IEBAIFJl
Y2VpdmVyTmFtZSByZWNlaXZlck5hbWUoTWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCiAgICAgY2Fz
ZSBNZXNzYWdlTmFtZTo6UHJvY2Vzc091dE9mU3RyZWFtTWVzc2FnZToKICAgICBjYXNlIE1lc3Nh
Z2VOYW1lOjpTZXRTdHJlYW1EZXN0aW5hdGlvbklEOgogICAgIGNhc2UgTWVzc2FnZU5hbWU6OlN5
bmNNZXNzYWdlUmVwbHk6CisgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVybWluYXRlOgogICAgICAg
ICByZXR1cm4gUmVjZWl2ZXJOYW1lOjpJUEM7CiAgICAgY2FzZSBNZXNzYWdlTmFtZTo6VGVzdFdp
dGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VSZXBseToKICAgICBjYXNlIE1lc3NhZ2VOYW1l
OjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFzeW5jTWVzc2FnZVdpdGhDb25uZWN0aW9uUmVwbHk6
CkBAIC00NjYsNiArNDY5LDggQEAgYm9vbCBpc1ZhbGlkTWVzc2FnZU5hbWUoTWVzc2FnZU5hbWUg
bWVzc2FnZU5hbWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChtZXNzYWdlTmFtZSA9
PSBJUEM6Ok1lc3NhZ2VOYW1lOjpTeW5jTWVzc2FnZVJlcGx5KQogICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gSVBDOjpNZXNzYWdlTmFtZTo6VGVybWluYXRlKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICht
ZXNzYWdlTmFtZSA9PSBJUEM6Ok1lc3NhZ2VOYW1lOjpUZXN0V2l0aFN1cGVyY2xhc3NfVGVzdEFz
eW5jTWVzc2FnZVJlcGx5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvTWVzc2FnZU5hbWVzLmggYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL01lc3NhZ2VOYW1lcy5oCmluZGV4IDJlZmQ1ZTA0OTBm
MTA2YWMwNmFmMWU5YzI0YWZlNzQ2MDE1MTc5MzYuLmFiNTU0NTNmZDk4ZjQwMzY2MGFiMTg4OTU2
YTE5NGVhMGMyOGZjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
dGVzdHMvTWVzc2FnZU5hbWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90
ZXN0cy9NZXNzYWdlTmFtZXMuaApAQCAtMTA3LDYgKzEwNyw3IEBAIGVudW0gY2xhc3MgTWVzc2Fn
ZU5hbWUgOiB1aW50MTZfdCB7CiAgICAgLCBQcm9jZXNzT3V0T2ZTdHJlYW1NZXNzYWdlCiAgICAg
LCBTZXRTdHJlYW1EZXN0aW5hdGlvbklECiAgICAgLCBTeW5jTWVzc2FnZVJlcGx5CisgICAgLCBU
ZXJtaW5hdGUKICAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlUmVwbHkK
ICAgICAsIFRlc3RXaXRoU3VwZXJjbGFzc19UZXN0QXN5bmNNZXNzYWdlV2l0aENvbm5lY3Rpb25S
ZXBseQogICAgICwgVGVzdFdpdGhTdXBlcmNsYXNzX1Rlc3RBc3luY01lc3NhZ2VXaXRoTXVsdGlw
bGVBcmd1bWVudHNSZXBseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNjVmNGU4MjFkYTkzZTFlZTVkZmVm
OWJlN2E3NjE2YjUyZWRjY2QyMS4uMzk4NjQzNDlhMTk5ZGM3MDVlN2ZiMmE1NGRiNTExMGI4ZmUw
NWI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC04Nyw2ICs4Nyw4IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBu
ZXR3b3JrUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZW91dCA9IDZfczsKK3N0YXRpYyBjb25zdGV4
cHIgaW50IHVucmVzcG9uc2l2ZW5lc3NDb3VudExpbWl0ID0gMzsKK3N0YXRpYyBjb25zdGV4cHIg
U2Vjb25kcyB1bnJlc3BvbnNpdmVuZXNzQ2hlY2tQZXJpb2QgPSAxNV9zOwogCiBzdGF0aWMgSGFz
aFNldDxOZXR3b3JrUHJvY2Vzc1Byb3h5Kj4mIG5ldHdvcmtQcm9jZXNzZXNTZXQoKQogewpAQCAt
OTUsNiArOTcsMjUgQEAgc3RhdGljIEhhc2hTZXQ8TmV0d29ya1Byb2Nlc3NQcm94eSo+JiBuZXR3
b3JrUHJvY2Vzc2VzU2V0KCkKICAgICByZXR1cm4gc2V0OwogfQogCitzdGF0aWMgYm9vbCBzaG91
bGRUZXJtaW5hdGVOZXR3b3JrUHJvY2Vzc0J5U2VuZGluZ01lc3NhZ2UoKQoreworICAgIHN0YXRp
YyBXYWxsVGltZSB1bnJlc3BvbnNpdmVuZXNzUGVyaW9kU3RhcnRUaW1lID0gV2FsbFRpbWU6Om5v
dygpOworICAgIHN0YXRpYyBpbnQgdW5yZXNwb25zaXZlbmVzc0NvdW50RHVyaW5nVGhpc1Blcmlv
ZCA9IDA7CisgICAgYXV0byBub3cgPSBXYWxsVGltZTo6bm93KCk7CisKKyAgICBpZiAobm93IC0g
dW5yZXNwb25zaXZlbmVzc1BlcmlvZFN0YXJ0VGltZSA+IHVucmVzcG9uc2l2ZW5lc3NDaGVja1Bl
cmlvZCkgeworICAgICAgICB1bnJlc3BvbnNpdmVuZXNzQ291bnREdXJpbmdUaGlzUGVyaW9kID0g
MTsKKyAgICAgICAgdW5yZXNwb25zaXZlbmVzc1BlcmlvZFN0YXJ0VGltZSA9IG5vdzsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgICsrdW5yZXNwb25zaXZlbmVzc0NvdW50RHVy
aW5nVGhpc1BlcmlvZDsKKyAgICBpZiAodW5yZXNwb25zaXZlbmVzc0NvdW50RHVyaW5nVGhpc1Bl
cmlvZCA+PSB1bnJlc3BvbnNpdmVuZXNzQ291bnRMaW1pdCkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFZlY3RvcjxSZWY8TmV0d29ya1Byb2Nlc3NQcm94
eT4+IE5ldHdvcmtQcm9jZXNzUHJveHk6OmFsbE5ldHdvcmtQcm9jZXNzZXMoKQogewogICAgIFZl
Y3RvcjxSZWY8TmV0d29ya1Byb2Nlc3NQcm94eT4+IHByb2Nlc3NlczsKQEAgLTEyOCw2ICsxNDks
MTkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGUoKQogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpkaWRCZWNvbWVVbnJlc3BvbnNpdmUoKQogewogICAgIFJFTEVBU0VfTE9H
X0VSUk9SKFByb2Nlc3MsICJOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRCZWNvbWVVbnJlc3BvbnNp
dmU6IE5ldHdvcmtQcm9jZXNzIHdpdGggUElEICVkIGJlY2FtZSB1bnJlc3BvbnNpdmUsIHRlcm1p
bmF0aW5nIGl0IiwgcHJvY2Vzc0lkZW50aWZpZXIoKSk7CisKKyAgICAvLyBMZXQgbmV0d29yayBw
cm9jZXNzIHRlcm1pbmF0ZXMgaXRzZWxmIGFuZCBnZW5lcmF0ZSBjcmFzaCByZXBvcnQgZm9yIGlu
dmVzdGlnYXRpb24gb2YgaGFuZ3MuCisgICAgLy8gV2UgY3VycmVudGx5IG9ubHkgZG8gdGhpcyB3
aGVuIG5ldHdvcmsgcHJvY2VzcyBiZWNvbWVzIHVucmVzcG9uc2l2ZSBtdWx0aXBsZSB0aW1lcyBp
biBhIHNob3J0CisgICAgLy8gdGltZSBwZXJpb2QgdG8gYXZvaWQgZ2VuZXJhdGluZyB0b28gbWFu
eSBjcmFzaCByZXBvcnRzIHdpdGggc2FtZSBiYWNrIHRyYWNlIG9uIHVzZXIncyBkZXZpY2UuCisg
ICAgaWYgKHNob3VsZFRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzQnlTZW5kaW5nTWVzc2FnZSgpKSB7
CisgICAgICAgIHNlbmRNZXNzYWdlKG1ha2VVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPihJUEM6Ok1l
c3NhZ2VOYW1lOjpUZXJtaW5hdGUsIDApLCB7IH0pOworICAgICAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2hBZnRlcigxX3MsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICB3ZWFrVGhp
cy0+dGVybWluYXRlKCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgdGVybWluYXRlKCk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>