<?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>226427</bug_id>
          
          <creation_ts>2021-05-29 16:31:03 -0700</creation_ts>
          <short_desc>Stop using UncheckedLock in JSC::VMInspector</short_desc>
          <delta_ts>2021-05-29 23:53:20 -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>JavaScriptCore</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>
          
          <blocked>226432</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765146</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-29 16:31:03 -0700</bug_when>
    <thetext>Stop using UncheckedLock in JSC::VMInspector, as it is being phased out in favor of Lock, which supports Clang thread safety analysis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765147</commentid>
    <comment_count>1</comment_count>
      <attachid>430115</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-29 16:51:13 -0700</bug_when>
    <thetext>Created attachment 430115
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765149</commentid>
    <comment_count>2</comment_count>
      <attachid>430117</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-29 17:06:09 -0700</bug_when>
    <thetext>Created attachment 430117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765177</commentid>
    <comment_count>3</comment_count>
      <attachid>430117</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-05-29 21:49:55 -0700</bug_when>
    <thetext>Comment on attachment 430117
Patch

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

r=me

&gt; Source/WTF/wtf/Lock.cpp:35
&gt; +#include &lt;unistd.h&gt;

Is the #include in VMInspector.cpp still needed?  If not, can you remove it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765181</commentid>
    <comment_count>4</comment_count>
      <attachid>430129</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-29 22:24:35 -0700</bug_when>
    <thetext>Created attachment 430129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765182</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-29 22:24:55 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #3)
&gt; Comment on attachment 430117 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430117&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WTF/wtf/Lock.cpp:35
&gt; &gt; +#include &lt;unistd.h&gt;
&gt; 
&gt; Is the #include in VMInspector.cpp still needed?  If not, can you remove it?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765198</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-29 23:52:04 -0700</bug_when>
    <thetext>Committed r278251 (238288@main): &lt;https://commits.webkit.org/238288@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430129.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765199</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-29 23:53:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78657229&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430115</attachid>
            <date>2021-05-29 16:51:13 -0700</date>
            <delta_ts>2021-05-29 17:48:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226427-20210529165112.patch</filename>
            <type>text/plain</type>
            <size>12151</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZDQ4MDk3YTY4NGU4NWEwM2RmZTFhNmU0MjBhNDhhYjgxZWM3Y2E1Li4yMTAyMTNmZjRiMWJlYzc2
MmQ2YTQyYmMyYWQyNTI2NGRmOTEyOTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMS0wNS0yOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9jayBpbiBKU0M6OlZNSW5zcGVjdG9yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY0MjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVzaW5n
IFVuY2hlY2tlZExvY2sgaW4gSlNDOjpWTUluc3BlY3RvciwgYXMgaXQgaXMgYmVpbmcgcGhhc2Vk
IG91dCBpbiBmYXZvcgorICAgICAgICBvZiBMb2NrLCB3aGljaCBzdXBwb3J0cyBDbGFuZyB0aHJl
YWQgc2FmZXR5IGFuYWx5c2lzLgorCisgICAgICAgICogdG9vbHMvSGVhcFZlcmlmaWVyLmNwcDoK
KyAgICAgICAgKEpTQzo6SGVhcFZlcmlmaWVyOjpjaGVja0lmUmVjb3JkZWQpOgorICAgICAgICAq
IHRvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpTaWdpbGxDcmFz
aEFuYWx5emVyOjphbmFseXplKToKKyAgICAgICAgKiB0b29scy9WTUluc3BlY3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OlZNSW5zcGVjdG9yOjppc1ZhbGlkRXhlY3V0YWJsZU1lbW9yeSk6CisgICAg
ICAgIChKU0M6OlZNSW5zcGVjdG9yOjpjb2RlQmxvY2tGb3JNYWNoaW5lUEMpOgorICAgICAgICAo
SlNDOjpWTUluc3BlY3Rvcjo6bG9jayk6IERlbGV0ZWQuCisgICAgICAgICogdG9vbHMvVk1JbnNw
ZWN0b3IuaDoKKyAgICAgICAgKEpTQzo6Vk1JbnNwZWN0b3I6OldURl9SRVRVUk5TX0xPQ0spOgor
ICAgICAgICAoSlNDOjpWTUluc3BlY3Rvcjo6V1RGX1JFUVVJUkVTX0xPQ0spOgorICAgICAgICAo
SlNDOjpWTUluc3BlY3Rvcjo6Z2V0TG9jayk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlZNSW5z
cGVjdG9yOjppdGVyYXRlKTogRGVsZXRlZC4KKwogMjAyMS0wNS0yOCAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xpZW50cyBvZiBvcHRpb25hbCBzaG91bGQgdXNl
IGhhc192YWx1ZSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gaGFzVmFsdWUgbWFjcm8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggODJk
ZDZkZjc5MmNiYmExMTk5YTFkM2EyZTAzNzhjMWI5NjBhMzJjMS4uOTU2NWZhMTE1MDVhNDg3YjZl
NWE1OGUzMzM3MTBkY2FiNzBhYzk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wNS0yOSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgdXNpbmcgVW5j
aGVja2VkTG9jayBpbiBKU0M6OlZNSW5zcGVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY0MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTG9jazo6dHJ5TG9ja1dpdGhUaW1lb3V0KCksIHNp
bWlsYXIgdG8gdHJ5TG9jaygpIGJ1dCBnaXZlcyB1cCBhZnRlciBhCisgICAgICAgIHNwZWNpZmll
ZCB0aW1lb3V0LiBUaGlzIHVzZWQgdG8gYmUgaW1wbGVtZW50ZWQgaW4gVk1JbnNwZWN0b3IgYnV0
IEkgdGhpbmsKKyAgICAgICAgTG9jayBpcyBhIGJldHRlciBwbGFjZSBmb3IgaXQuCisKKyAgICAg
ICAgKiB3dGYvTG9jay5jcHA6CisgICAgICAgIChXVEY6OkxvY2s6OnRyeUxvY2tXaXRoVGltZW91
dCk6CisgICAgICAgICogd3RmL0xvY2suaDoKKwogMjAyMS0wNS0yOCAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xpZW50cyBvZiBvcHRpb25hbCBzaG91bGQgdXNl
IGhhc192YWx1ZSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gaGFzVmFsdWUgbWFjcm8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9IZWFwVmVyaWZpZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0hlYXBWZXJpZmllci5jcHAKaW5kZXggZWEzZTg0ZTQ5MGUz
MGZjOTE3NmMyNWE4MGE2ZjhmNjY3NDZmNDJhYi4uM2NlMGRlNDI0MWM5NTk1YmE4ODYxN2IxNWIz
N2JmYzU2OTczY2U1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0hl
YXBWZXJpZmllci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0hlYXBWZXJp
Zmllci5jcHAKQEAgLTQ0MiwxNiArNDQyLDEzIEBAIHZvaWQgSGVhcFZlcmlmaWVyOjpjaGVja0lm
UmVjb3JkZWQodWludHB0cl90IGNhbmRpZGF0ZUNlbGwpCiB7CiAgICAgSGVhcENlbGwqIGNhbmRp
ZGF0ZUhlYXBDZWxsID0gcmVpbnRlcnByZXRfY2FzdDxIZWFwQ2VsbCo+KGNhbmRpZGF0ZUNlbGwp
OwogICAgIAotICAgIFZNSW5zcGVjdG9yJiBpbnNwZWN0b3IgPSBWTUluc3BlY3Rvcjo6aW5zdGFu
Y2UoKTsKLSAgICBhdXRvIGV4cGVjdGVkTG9ja2VyID0gaW5zcGVjdG9yLmxvY2soU2Vjb25kcygy
KSk7Ci0gICAgaWYgKCFleHBlY3RlZExvY2tlcikgewotICAgICAgICBBU1NFUlQoZXhwZWN0ZWRM
b2NrZXIuZXJyb3IoKSA9PSBWTUluc3BlY3Rvcjo6RXJyb3I6OlRpbWVkT3V0KTsKKyAgICBhdXRv
JiBpbnNwZWN0b3IgPSBWTUluc3BlY3Rvcjo6aW5zdGFuY2UoKTsKKyAgICBpZiAoIWluc3BlY3Rv
ci5nZXRMb2NrKCkudHJ5TG9ja1dpdGhUaW1lb3V0KDJfcykpIHsKICAgICAgICAgZGF0YUxvZygi
RVJST1I6IFRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIHRvIGl0ZXJhdGUgVk1zLiIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotCi0gICAgYXV0byYgbG9ja2VyID0gZXhwZWN0ZWRMb2NrZXIudmFs
dWUoKTsKLSAgICBpbnNwZWN0b3IuaXRlcmF0ZShsb2NrZXIsIFsmXSAoVk0mIHZtKSB7CisgICAg
TG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgaW5zcGVjdG9yLmdldExvY2soKSB9OworICAgIGlu
c3BlY3Rvci5pdGVyYXRlKFsmXSAoVk0mIHZtKSB7CiAgICAgICAgIGlmICghdm0uaGVhcC5tX3Zl
cmlmaWVyKQogICAgICAgICAgICAgcmV0dXJuIFZNSW5zcGVjdG9yOjpGdW5jdG9yU3RhdHVzOjpD
b250aW51ZTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
U2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKaW5kZXggMTdjMmE1ZjM4YzQ0NWRkYjA0Zjc2MDQ0YjZk
Y2U5Njg5NzNjMGY4MS4uZWQzZjExOGY4NTllYWNmMDMyMjMwMWJkMDYxYzAyM2IxNGI2MDJhYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFuYWx5
emVyLmNwcApAQCAtMjI2LDIwICsyMjYsMTggQEAgYXV0byBTaWdpbGxDcmFzaEFuYWx5emVyOjph
bmFseXplKFNpZ25hbENvbnRleHQmIGNvbnRleHQpIC0+IENyYXNoU291cmNlCiAgICAgICAgIC8v
IGl0c2VsZiBjcmFzaGVzLgogICAgICAgICBjb250ZXh0LmR1bXAoKTsKIAotICAgICAgICBWTUlu
c3BlY3RvciYgaW5zcGVjdG9yID0gVk1JbnNwZWN0b3I6Omluc3RhbmNlKCk7CisgICAgICAgIGF1
dG8mIGluc3BlY3RvciA9IFZNSW5zcGVjdG9yOjppbnN0YW5jZSgpOwogCiAgICAgICAgIC8vIFVz
ZSBhIHRpbWVvdXQgcGVyaW9kIG9mIDIgc2Vjb25kcy4gVGhlIGNsaWVudCBpcyBhYm91dCB0byBj
cmFzaCwgYW5kIHdlIGRvbid0CiAgICAgICAgIC8vIHdhbnQgdG8gdHVybiB0aGUgY3Jhc2ggaW50
byBhIGhhbmcgYnkgcmUtdHJ5aW5nIHRoZSBsb2NrIGZvciB0b28gbG9uZy4KLSAgICAgICAgYXV0
byBleHBlY3RlZExvY2tlciA9IGluc3BlY3Rvci5sb2NrKFNlY29uZHMoMikpOwotICAgICAgICBp
ZiAoIWV4cGVjdGVkTG9ja2VyKSB7Ci0gICAgICAgICAgICBBU1NFUlQoZXhwZWN0ZWRMb2NrZXIu
ZXJyb3IoKSA9PSBWTUluc3BlY3Rvcjo6RXJyb3I6OlRpbWVkT3V0KTsKKyAgICAgICAgaWYgKCFp
bnNwZWN0b3IuZ2V0TG9jaygpLnRyeUxvY2tXaXRoVGltZW91dCgyX3MpKSB7CiAgICAgICAgICAg
ICBsb2coIkVSUk9SOiBVbmFibGUgdG8gYW5hbHl6ZSBTSUdJTEwuIFRpbWVkIG91dCB3aGlsZSB3
YWl0aW5nIHRvIGl0ZXJhdGUgVk1zLiIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
LSAgICAgICAgYXV0byYgbG9ja2VyID0gZXhwZWN0ZWRMb2NrZXIudmFsdWUoKTsKKyAgICAgICAg
TG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgaW5zcGVjdG9yLmdldExvY2soKSB9OwogCiAgICAg
ICAgIHZvaWQqIHBjID0gY29udGV4dC5tYWNoaW5lUEMudW50YWdnZWRFeGVjdXRhYmxlQWRkcmVz
cygpOwotICAgICAgICBhdXRvIGlzSW5KSVRNZW1vcnkgPSBpbnNwZWN0b3IuaXNWYWxpZEV4ZWN1
dGFibGVNZW1vcnkobG9ja2VyLCBwYyk7CisgICAgICAgIGF1dG8gaXNJbkpJVE1lbW9yeSA9IGlu
c3BlY3Rvci5pc1ZhbGlkRXhlY3V0YWJsZU1lbW9yeShwYyk7CiAgICAgICAgIGlmICghaXNJbkpJ
VE1lbW9yeSkgewogICAgICAgICAgICAgbG9nKCJFUlJPUjogVGltZWQgb3V0OiBub3QgYWJsZSB0
byBkZXRlcm1pbmUgaWYgcGMgJXAgaXMgaW4gdmFsaWQgSklUIGV4ZWN1dGFibGUgbWVtb3J5Iiwg
cGMpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNjUsNyArMjYzLDcgQEAgYXV0byBTaWdpbGxD
cmFzaEFuYWx5emVyOjphbmFseXplKFNpZ25hbENvbnRleHQmIGNvbnRleHQpIC0+IENyYXNoU291
cmNlCiAgICAgICAgIGxvZygiaW5zdHJ1Y3Rpb24gYml0cyBhdCBwYyAlcCBpczogMHglMDh4Iiwg
cGMsIHdvcmRBdFBDKTsKICNlbmRpZgogCi0gICAgICAgIGF1dG8gZXhwZWN0ZWRDb2RlQmxvY2sg
PSBpbnNwZWN0b3IuY29kZUJsb2NrRm9yTWFjaGluZVBDKGxvY2tlciwgcGMpOworICAgICAgICBh
dXRvIGV4cGVjdGVkQ29kZUJsb2NrID0gaW5zcGVjdG9yLmNvZGVCbG9ja0Zvck1hY2hpbmVQQyhw
Yyk7CiAgICAgICAgIGlmICghZXhwZWN0ZWRDb2RlQmxvY2spIHsKICAgICAgICAgICAgIGlmIChl
eHBlY3RlZENvZGVCbG9jay5lcnJvcigpID09IFZNSW5zcGVjdG9yOjpFcnJvcjo6VGltZWRPdXQp
CiAgICAgICAgICAgICAgICAgbG9nKCJFUlJPUjogVGltZWQgb3V0OiBub3QgYWJsZSB0byBkZXRl
cm1pbmUgaWYgcGMgJXAgaXMgaW4gYSB2YWxpZCBDb2RlQmxvY2siLCBwYyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcAppbmRleCAzYTQ4M2E0ZGVjYjBiZDk5
YzBiZDVhMWZmNGUwYmVhM2MxMWU0YjkzLi4xY2NlNDcyNTFmN2E3NzhjYzVlZTQ1MDhlZGE0MjVi
MzU4ZGYwNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNw
ZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5j
cHAKQEAgLTY0LDMwICs2NCw2IEBAIHZvaWQgVk1JbnNwZWN0b3I6OnJlbW92ZShWTSogdm0pCiAg
ICAgbV92bUxpc3QucmVtb3ZlKHZtKTsKIH0KIAotYXV0byBWTUluc3BlY3Rvcjo6bG9jayhTZWNv
bmRzIHRpbWVvdXQpIC0+IEV4cGVjdGVkPFVuY2hlY2tlZExvY2tIb2xkZXIsIEVycm9yPgotewot
ICAgIC8vIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBmcm9tIGEgc2lnbmFsIGhhbmRsZXIg
KGUuZy4gdmlhIHZpc2l0KCkpLiBIZW5jZSwKLSAgICAvLyBpdCBzaG91bGQgb25seSB1c2UgQVBJ
cyB0aGF0IGFyZSBzYWZlIHRvIGNhbGwgZnJvbSBzaWduYWwgaGFuZGxlcnMuIFRoaXMgaXMKLSAg
ICAvLyB3aHkgd2UgdXNlIHVuaXN0ZC5oJ3Mgc2xlZXAoKSBpbnN0ZWFkIG9mIGl0cyBhbHRlcm5h
dGl2ZXMuCi0KLSAgICAvLyBXZSdsbCBiZSBkb2luZyBzbGVlcCgxKSBiZXR3ZWVuIHRyaWVzIGJl
bG93LiBIZW5jZSwgc2xlZXBQZXJSZXRyeSBpcyAxLgotICAgIHVuc2lnbmVkIG1heFJldHJpZXMg
PSAodGltZW91dCA8IFNlY29uZHM6OmluZmluaXR5KCkpID8gdGltZW91dC52YWx1ZSgpIDogVUlO
VF9NQVg7Ci0KLSAgICBFeHBlY3RlZDxVbmNoZWNrZWRMb2NrSG9sZGVyLCBFcnJvcj4gbG9ja2Vy
ID0gVW5jaGVja2VkTG9ja0hvbGRlcjo6dHJ5TG9jayhtX2xvY2spOwotICAgIHVuc2lnbmVkIHRy
eUNvdW50ID0gMDsKLSAgICB3aGlsZSAoIWxvY2tlciAmJiB0cnlDb3VudCA8IG1heFJldHJpZXMp
IHsKLSAgICAgICAgLy8gV2Ugd2FudCB0aGUgdmVyc2lvbiBvZiBzbGVlcCBmcm9tIHVuaXN0ZC5o
LiBDYXN0IHRvIGRpc2FtYmlndWF0ZS4KLSNpZiAhT1MoV0lORE9XUykKLSAgICAgICAgKHN0YXRp
Y19jYXN0PHVuc2lnbmVkICgqKSh1bnNpZ25lZCk+KHNsZWVwKSkoMSk7Ci0jZW5kaWYKLSAgICAg
ICAgbG9ja2VyID0gVW5jaGVja2VkTG9ja0hvbGRlcjo6dHJ5TG9jayhtX2xvY2spOwotICAgIH0K
LQotICAgIGlmICghbG9ja2VyKQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRXJyb3I6
OlRpbWVkT3V0KTsKLSAgICByZXR1cm4gbG9ja2VyOwotfQotCiAjaWYgRU5BQkxFKEpJVCkKIHRl
bXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogc3RhdGljIGJvb2wgZW5zdXJlSXNTYWZlVG9Mb2Nr
KExvY2tUeXBlJiBsb2NrKQpAQCAtMTEzLDcgKzg5LDcgQEAgdm9pZCBWTUluc3BlY3Rvcjo6Zm9y
RWFjaFZNKEZ1bmN0aW9uPEZ1bmN0b3JTdGF0dXMoVk0mKT4mJiBmdW5jKQogICAgIGluc3BlY3Rv
ci5pdGVyYXRlKGZ1bmMpOwogfQogCi1hdXRvIFZNSW5zcGVjdG9yOjppc1ZhbGlkRXhlY3V0YWJs
ZU1lbW9yeShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgdm9pZCogbWFjaGluZVBDKSAtPiBF
eHBlY3RlZDxib29sLCBFcnJvcj4KK2F1dG8gVk1JbnNwZWN0b3I6OmlzVmFsaWRFeGVjdXRhYmxl
TWVtb3J5KHZvaWQqIG1hY2hpbmVQQykgLT4gRXhwZWN0ZWQ8Ym9vbCwgRXJyb3I+CiB7CiAjaWYg
RU5BQkxFKEpJVCkKICAgICBib29sIGZvdW5kID0gZmFsc2U7CkBAIC0xNDUsNyArMTIxLDcgQEAg
YXV0byBWTUluc3BlY3Rvcjo6aXNWYWxpZEV4ZWN1dGFibGVNZW1vcnkoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYsIHZvaWQqIG1hY2gKICNlbmRpZgogfQogCi1hdXRvIFZNSW5zcGVjdG9yOjpj
b2RlQmxvY2tGb3JNYWNoaW5lUEMoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYsIHZvaWQqIG1h
Y2hpbmVQQykgLT4gRXhwZWN0ZWQ8Q29kZUJsb2NrKiwgRXJyb3I+CithdXRvIFZNSW5zcGVjdG9y
Ojpjb2RlQmxvY2tGb3JNYWNoaW5lUEModm9pZCogbWFjaGluZVBDKSAtPiBFeHBlY3RlZDxDb2Rl
QmxvY2sqLCBFcnJvcj4KIHsKICNpZiBFTkFCTEUoSklUKQogICAgIENvZGVCbG9jayogY29kZUJs
b2NrID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9W
TUluc3BlY3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgK
aW5kZXggYzMzODQzMTJjYTQ4MzA5ZmIwNjM5MzY5YTUzYjk2NWUyN2FlOGYyMy4uMWI0ZmRmYjg0
Y2Y1MDkzMTRiYTI1ZGUxZTAyYjg2NGEzNTY1ZWVhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL1ZNSW5zcGVjdG9yLmgKQEAgLTQ4LDIyICs0OCwyNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhZGQoVk0qKTsKICAgICB2b2lkIHJlbW92ZShWTSopOwogCi0gICAgVW5jaGVja2VkTG9jayYg
Z2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQorICAgIExvY2smIGdldExvY2soKSBXVEZfUkVU
VVJOU19MT0NLKG1fbG9jaykgeyByZXR1cm4gbV9sb2NrOyB9CiAKICAgICBlbnVtIGNsYXNzIEZ1
bmN0b3JTdGF0dXMgewogICAgICAgICBDb250aW51ZSwKICAgICAgICAgRG9uZQogICAgIH07CiAK
LSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICB2b2lkIGl0ZXJhdGUoY29uc3Qg
VW5jaGVja2VkTG9ja0hvbGRlciYsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpIHsgaXRlcmF0ZShm
dW5jdG9yKTsgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGl0ZXJhdGUo
Y29uc3QgRnVuY3RvciYgZnVuY3RvcikgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NrKQorICAgIHsK
KyAgICAgICAgZm9yIChWTSogdm0gPSBtX3ZtTGlzdC5oZWFkKCk7IHZtOyB2bSA9IHZtLT5uZXh0
KCkpIHsKKyAgICAgICAgICAgIEZ1bmN0b3JTdGF0dXMgc3RhdHVzID0gZnVuY3Rvcigqdm0pOwor
ICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBGdW5jdG9yU3RhdHVzOjpEb25lKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KIAogICAgIEpTX0VYUE9SVF9QUklWQVRF
IHN0YXRpYyB2b2lkIGZvckVhY2hWTShGdW5jdGlvbjxGdW5jdG9yU3RhdHVzKFZNJik+JiYpOwog
Ci0gICAgRXhwZWN0ZWQ8VW5jaGVja2VkTG9ja0hvbGRlciwgRXJyb3I+IGxvY2soU2Vjb25kcyB0
aW1lb3V0ID0gU2Vjb25kczo6aW5maW5pdHkoKSk7Ci0KLSAgICBFeHBlY3RlZDxib29sLCBFcnJv
cj4gaXNWYWxpZEV4ZWN1dGFibGVNZW1vcnkoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYsIHZv
aWQqKTsKLSAgICBFeHBlY3RlZDxDb2RlQmxvY2sqLCBFcnJvcj4gY29kZUJsb2NrRm9yTWFjaGlu
ZVBDKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImLCB2b2lkKik7CisgICAgRXhwZWN0ZWQ8Ym9v
bCwgRXJyb3I+IGlzVmFsaWRFeGVjdXRhYmxlTWVtb3J5KHZvaWQqKSBXVEZfUkVRVUlSRVNfTE9D
SyhtX2xvY2spOworICAgIEV4cGVjdGVkPENvZGVCbG9jayosIEVycm9yPiBjb2RlQmxvY2tGb3JN
YWNoaW5lUEModm9pZCopIFdURl9SRVFVSVJFU19MT0NLKG1fbG9jayk7CiAKICAgICBKU19FWFBP
UlRfUFJJVkFURSBzdGF0aWMgYm9vbCBjdXJyZW50VGhyZWFkT3duc0pTTG9jayhWTSopOwogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGdjKFZNKik7CkBAIC05MiwxNyArOTYsOCBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgdmVyaWZ5Q2VsbChWTSYsIEpTQ2VsbCopOwogCiBw
cml2YXRlOgotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGl0ZXJhdGUoY29u
c3QgRnVuY3RvciYgZnVuY3RvcikKLSAgICB7Ci0gICAgICAgIGZvciAoVk0qIHZtID0gbV92bUxp
c3QuaGVhZCgpOyB2bTsgdm0gPSB2bS0+bmV4dCgpKSB7Ci0gICAgICAgICAgICBGdW5jdG9yU3Rh
dHVzIHN0YXR1cyA9IGZ1bmN0b3IoKnZtKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gRnVu
Y3RvclN0YXR1czo6RG9uZSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKLSAgICBEb3VibHlMaW5rZWRMaXN0PFZN
PiBtX3ZtTGlzdDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBEb3VibHlMaW5rZWRMaXN0PFZNPiBt
X3ZtTGlzdCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwIGIvU291cmNlL1dURi93
dGYvTG9jay5jcHAKaW5kZXggZmY4NmUxMGE5YTJhNDE3YWI3MDY3MGEwNzg5Y2Y2NTBkNzE4YjE3
MS4uZjljYWQ5NjcxZGZhYTUzNWU3MTk0OWYwZjY1MmJlMWM1ODhlZmNiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTG9jay5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTG9jay5jcHAKQEAg
LTI5LDYgKzI5LDEyIEBACiAjaW5jbHVkZSA8d3RmL0xvY2tBbGdvcml0aG1JbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL1N0YWNrU2hvdFByb2ZpbGVyLmg+CiAKKyNpZiBPUyhXSU5ET1dTKQorI2lu
Y2x1ZGUgPHdpbmRvd3MuaD4KKyNlbHNlCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKwog
bmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBwcm9maWxlTG9ja0NvbnRl
bnRpb24gPSBmYWxzZTsKQEAgLTYzLDUgKzY5LDI0IEBAIHZvaWQgVW5jaGVja2VkTG9jazo6c2Fm
ZXBvaW50U2xvdygpCiAgICAgRGVmYXVsdExvY2tBbGdvcml0aG06OnNhZmVwb2ludFNsb3cobV9i
eXRlKTsKIH0KIAorYm9vbCBMb2NrOjp0cnlMb2NrV2l0aFRpbWVvdXQoU2Vjb25kcyB0aW1lb3V0
KQoreworICAgIC8vIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBmcm9tIGEgc2lnbmFsIGhh
bmRsZXIgKGUuZy4gdmlhIHZpc2l0KCkpLiBIZW5jZSwKKyAgICAvLyBpdCBzaG91bGQgb25seSB1
c2UgQVBJcyB0aGF0IGFyZSBzYWZlIHRvIGNhbGwgZnJvbSBzaWduYWwgaGFuZGxlcnMuIFRoaXMg
aXMKKyAgICAvLyB3aHkgd2UgdXNlIHVuaXN0ZC5oJ3Mgc2xlZXAoKSBpbnN0ZWFkIG9mIGl0cyBh
bHRlcm5hdGl2ZXMuCisKKyAgICAvLyBXZSdsbCBiZSBkb2luZyBzbGVlcCgxKSBiZXR3ZWVuIHRy
aWVzIGJlbG93LiBIZW5jZSwgc2xlZXBQZXJSZXRyeSBpcyAxLgorICAgIHVuc2lnbmVkIG1heFJl
dHJpZXMgPSAodGltZW91dCA8IFNlY29uZHM6OmluZmluaXR5KCkpID8gdGltZW91dC52YWx1ZSgp
IDogc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOworICAgIHVuc2lnbmVkIHRy
eUNvdW50ID0gMDsKKyAgICB3aGlsZSAoIXRyeUxvY2soKSAmJiB0cnlDb3VudCsrIDw9IG1heFJl
dHJpZXMpIHsKKyNpZiBPUyhXSU5ET1dTKQorICAgICAgICBTbGVlcCgxMDAwKTsKKyNlbHNlCisg
ICAgICAgIDo6c2xlZXAoMSk7CisjZW5kaWYKKyAgICB9CisgICAgcmV0dXJuIGlzSGVsZCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9j
ay5oIGIvU291cmNlL1dURi93dGYvTG9jay5oCmluZGV4IGVkNDg5NzU0NDVmNDJlMjE1MThjMTJk
MjYyM2MwMjJmODg4MGMxMmIuLmNhMDZmZDYzYjRlZGMyZjVhZDQ0Y2FiNTVjMmU1ZDk2NjMxZjhj
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvY2suaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9Mb2NrLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDx3dGYvTG9ja0FsZ29yaXRobS5o
PgogI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
KyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZldHlBbmFs
eXNpcy5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CkBAIC0xNjIsNiArMTYzLDcgQEAg
cHVibGljOgogICAgIHZvaWQgbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLKCkgeyBVbmNoZWNrZWRM
b2NrOjpsb2NrKCk7IH0KICAgICBib29sIHRyeUxvY2soKSBXVEZfQUNRVUlSRVNfTE9DS19JRih0
cnVlKSB7IHJldHVybiBVbmNoZWNrZWRMb2NrOjp0cnlMb2NrKCk7IH0KICAgICBib29sIHRyeV9s
b2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gVW5jaGVja2VkTG9jazo6
dHJ5X2xvY2soKTsgfSAvLyBOT0xJTlQ6IEludGVudGlvbmFsIGRldmlhdGlvbiB0byBzdXBwb3J0
IHN0ZDo6c2NvcGVkX2xvY2suCisgICAgYm9vbCB0cnlMb2NrV2l0aFRpbWVvdXQoU2Vjb25kcyB0
aW1lb3V0KSBXVEZfQUNRVUlSRVNfTE9DS19JRih0cnVlKTsKICAgICB2b2lkIHVubG9jaygpIFdU
Rl9SRUxFQVNFU19MT0NLKCkgeyBVbmNoZWNrZWRMb2NrOjp1bmxvY2soKTsgfQogICAgIHZvaWQg
dW5sb2NrRmFpcmx5KCkgV1RGX1JFTEVBU0VTX0xPQ0soKSB7IFVuY2hlY2tlZExvY2s6OnVubG9j
a0ZhaXJseSgpOyB9CiAgICAgdm9pZCBzYWZlcG9pbnQoKSB7IFVuY2hlY2tlZExvY2s6OnNhZmVw
b2ludCgpOyB9Cg==
</data>
<flag name="commit-queue"
          id="451479"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430117</attachid>
            <date>2021-05-29 17:06:09 -0700</date>
            <delta_ts>2021-05-29 22:24:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226427-20210529170608.patch</filename>
            <type>text/plain</type>
            <size>12170</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZDQ4MDk3YTY4NGU4NWEwM2RmZTFhNmU0MjBhNDhhYjgxZWM3Y2E1Li4yMTAyMTNmZjRiMWJlYzc2
MmQ2YTQyYmMyYWQyNTI2NGRmOTEyOTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMS0wNS0yOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9jayBpbiBKU0M6OlZNSW5zcGVjdG9yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY0MjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9wIHVzaW5n
IFVuY2hlY2tlZExvY2sgaW4gSlNDOjpWTUluc3BlY3RvciwgYXMgaXQgaXMgYmVpbmcgcGhhc2Vk
IG91dCBpbiBmYXZvcgorICAgICAgICBvZiBMb2NrLCB3aGljaCBzdXBwb3J0cyBDbGFuZyB0aHJl
YWQgc2FmZXR5IGFuYWx5c2lzLgorCisgICAgICAgICogdG9vbHMvSGVhcFZlcmlmaWVyLmNwcDoK
KyAgICAgICAgKEpTQzo6SGVhcFZlcmlmaWVyOjpjaGVja0lmUmVjb3JkZWQpOgorICAgICAgICAq
IHRvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpTaWdpbGxDcmFz
aEFuYWx5emVyOjphbmFseXplKToKKyAgICAgICAgKiB0b29scy9WTUluc3BlY3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OlZNSW5zcGVjdG9yOjppc1ZhbGlkRXhlY3V0YWJsZU1lbW9yeSk6CisgICAg
ICAgIChKU0M6OlZNSW5zcGVjdG9yOjpjb2RlQmxvY2tGb3JNYWNoaW5lUEMpOgorICAgICAgICAo
SlNDOjpWTUluc3BlY3Rvcjo6bG9jayk6IERlbGV0ZWQuCisgICAgICAgICogdG9vbHMvVk1JbnNw
ZWN0b3IuaDoKKyAgICAgICAgKEpTQzo6Vk1JbnNwZWN0b3I6OldURl9SRVRVUk5TX0xPQ0spOgor
ICAgICAgICAoSlNDOjpWTUluc3BlY3Rvcjo6V1RGX1JFUVVJUkVTX0xPQ0spOgorICAgICAgICAo
SlNDOjpWTUluc3BlY3Rvcjo6Z2V0TG9jayk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlZNSW5z
cGVjdG9yOjppdGVyYXRlKTogRGVsZXRlZC4KKwogMjAyMS0wNS0yOCAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xpZW50cyBvZiBvcHRpb25hbCBzaG91bGQgdXNl
IGhhc192YWx1ZSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gaGFzVmFsdWUgbWFjcm8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggODJk
ZDZkZjc5MmNiYmExMTk5YTFkM2EyZTAzNzhjMWI5NjBhMzJjMS4uOTU2NWZhMTE1MDVhNDg3YjZl
NWE1OGUzMzM3MTBkY2FiNzBhYzk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wNS0yOSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgdXNpbmcgVW5j
aGVja2VkTG9jayBpbiBKU0M6OlZNSW5zcGVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY0MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTG9jazo6dHJ5TG9ja1dpdGhUaW1lb3V0KCksIHNp
bWlsYXIgdG8gdHJ5TG9jaygpIGJ1dCBnaXZlcyB1cCBhZnRlciBhCisgICAgICAgIHNwZWNpZmll
ZCB0aW1lb3V0LiBUaGlzIHVzZWQgdG8gYmUgaW1wbGVtZW50ZWQgaW4gVk1JbnNwZWN0b3IgYnV0
IEkgdGhpbmsKKyAgICAgICAgTG9jayBpcyBhIGJldHRlciBwbGFjZSBmb3IgaXQuCisKKyAgICAg
ICAgKiB3dGYvTG9jay5jcHA6CisgICAgICAgIChXVEY6OkxvY2s6OnRyeUxvY2tXaXRoVGltZW91
dCk6CisgICAgICAgICogd3RmL0xvY2suaDoKKwogMjAyMS0wNS0yOCAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xpZW50cyBvZiBvcHRpb25hbCBzaG91bGQgdXNl
IGhhc192YWx1ZSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gaGFzVmFsdWUgbWFjcm8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9IZWFwVmVyaWZpZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0hlYXBWZXJpZmllci5jcHAKaW5kZXggZWEzZTg0ZTQ5MGUz
MGZjOTE3NmMyNWE4MGE2ZjhmNjY3NDZmNDJhYi4uM2NlMGRlNDI0MWM5NTk1YmE4ODYxN2IxNWIz
N2JmYzU2OTczY2U1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0hl
YXBWZXJpZmllci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0hlYXBWZXJp
Zmllci5jcHAKQEAgLTQ0MiwxNiArNDQyLDEzIEBAIHZvaWQgSGVhcFZlcmlmaWVyOjpjaGVja0lm
UmVjb3JkZWQodWludHB0cl90IGNhbmRpZGF0ZUNlbGwpCiB7CiAgICAgSGVhcENlbGwqIGNhbmRp
ZGF0ZUhlYXBDZWxsID0gcmVpbnRlcnByZXRfY2FzdDxIZWFwQ2VsbCo+KGNhbmRpZGF0ZUNlbGwp
OwogICAgIAotICAgIFZNSW5zcGVjdG9yJiBpbnNwZWN0b3IgPSBWTUluc3BlY3Rvcjo6aW5zdGFu
Y2UoKTsKLSAgICBhdXRvIGV4cGVjdGVkTG9ja2VyID0gaW5zcGVjdG9yLmxvY2soU2Vjb25kcygy
KSk7Ci0gICAgaWYgKCFleHBlY3RlZExvY2tlcikgewotICAgICAgICBBU1NFUlQoZXhwZWN0ZWRM
b2NrZXIuZXJyb3IoKSA9PSBWTUluc3BlY3Rvcjo6RXJyb3I6OlRpbWVkT3V0KTsKKyAgICBhdXRv
JiBpbnNwZWN0b3IgPSBWTUluc3BlY3Rvcjo6aW5zdGFuY2UoKTsKKyAgICBpZiAoIWluc3BlY3Rv
ci5nZXRMb2NrKCkudHJ5TG9ja1dpdGhUaW1lb3V0KDJfcykpIHsKICAgICAgICAgZGF0YUxvZygi
RVJST1I6IFRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIHRvIGl0ZXJhdGUgVk1zLiIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotCi0gICAgYXV0byYgbG9ja2VyID0gZXhwZWN0ZWRMb2NrZXIudmFs
dWUoKTsKLSAgICBpbnNwZWN0b3IuaXRlcmF0ZShsb2NrZXIsIFsmXSAoVk0mIHZtKSB7CisgICAg
TG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgaW5zcGVjdG9yLmdldExvY2soKSB9OworICAgIGlu
c3BlY3Rvci5pdGVyYXRlKFsmXSAoVk0mIHZtKSB7CiAgICAgICAgIGlmICghdm0uaGVhcC5tX3Zl
cmlmaWVyKQogICAgICAgICAgICAgcmV0dXJuIFZNSW5zcGVjdG9yOjpGdW5jdG9yU3RhdHVzOjpD
b250aW51ZTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMv
U2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKaW5kZXggMTdjMmE1ZjM4YzQ0NWRkYjA0Zjc2MDQ0YjZk
Y2U5Njg5NzNjMGY4MS4uZWQzZjExOGY4NTllYWNmMDMyMjMwMWJkMDYxYzAyM2IxNGI2MDJhYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFuYWx5
emVyLmNwcApAQCAtMjI2LDIwICsyMjYsMTggQEAgYXV0byBTaWdpbGxDcmFzaEFuYWx5emVyOjph
bmFseXplKFNpZ25hbENvbnRleHQmIGNvbnRleHQpIC0+IENyYXNoU291cmNlCiAgICAgICAgIC8v
IGl0c2VsZiBjcmFzaGVzLgogICAgICAgICBjb250ZXh0LmR1bXAoKTsKIAotICAgICAgICBWTUlu
c3BlY3RvciYgaW5zcGVjdG9yID0gVk1JbnNwZWN0b3I6Omluc3RhbmNlKCk7CisgICAgICAgIGF1
dG8mIGluc3BlY3RvciA9IFZNSW5zcGVjdG9yOjppbnN0YW5jZSgpOwogCiAgICAgICAgIC8vIFVz
ZSBhIHRpbWVvdXQgcGVyaW9kIG9mIDIgc2Vjb25kcy4gVGhlIGNsaWVudCBpcyBhYm91dCB0byBj
cmFzaCwgYW5kIHdlIGRvbid0CiAgICAgICAgIC8vIHdhbnQgdG8gdHVybiB0aGUgY3Jhc2ggaW50
byBhIGhhbmcgYnkgcmUtdHJ5aW5nIHRoZSBsb2NrIGZvciB0b28gbG9uZy4KLSAgICAgICAgYXV0
byBleHBlY3RlZExvY2tlciA9IGluc3BlY3Rvci5sb2NrKFNlY29uZHMoMikpOwotICAgICAgICBp
ZiAoIWV4cGVjdGVkTG9ja2VyKSB7Ci0gICAgICAgICAgICBBU1NFUlQoZXhwZWN0ZWRMb2NrZXIu
ZXJyb3IoKSA9PSBWTUluc3BlY3Rvcjo6RXJyb3I6OlRpbWVkT3V0KTsKKyAgICAgICAgaWYgKCFp
bnNwZWN0b3IuZ2V0TG9jaygpLnRyeUxvY2tXaXRoVGltZW91dCgyX3MpKSB7CiAgICAgICAgICAg
ICBsb2coIkVSUk9SOiBVbmFibGUgdG8gYW5hbHl6ZSBTSUdJTEwuIFRpbWVkIG91dCB3aGlsZSB3
YWl0aW5nIHRvIGl0ZXJhdGUgVk1zLiIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
LSAgICAgICAgYXV0byYgbG9ja2VyID0gZXhwZWN0ZWRMb2NrZXIudmFsdWUoKTsKKyAgICAgICAg
TG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgaW5zcGVjdG9yLmdldExvY2soKSB9OwogCiAgICAg
ICAgIHZvaWQqIHBjID0gY29udGV4dC5tYWNoaW5lUEMudW50YWdnZWRFeGVjdXRhYmxlQWRkcmVz
cygpOwotICAgICAgICBhdXRvIGlzSW5KSVRNZW1vcnkgPSBpbnNwZWN0b3IuaXNWYWxpZEV4ZWN1
dGFibGVNZW1vcnkobG9ja2VyLCBwYyk7CisgICAgICAgIGF1dG8gaXNJbkpJVE1lbW9yeSA9IGlu
c3BlY3Rvci5pc1ZhbGlkRXhlY3V0YWJsZU1lbW9yeShwYyk7CiAgICAgICAgIGlmICghaXNJbkpJ
VE1lbW9yeSkgewogICAgICAgICAgICAgbG9nKCJFUlJPUjogVGltZWQgb3V0OiBub3QgYWJsZSB0
byBkZXRlcm1pbmUgaWYgcGMgJXAgaXMgaW4gdmFsaWQgSklUIGV4ZWN1dGFibGUgbWVtb3J5Iiwg
cGMpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNjUsNyArMjYzLDcgQEAgYXV0byBTaWdpbGxD
cmFzaEFuYWx5emVyOjphbmFseXplKFNpZ25hbENvbnRleHQmIGNvbnRleHQpIC0+IENyYXNoU291
cmNlCiAgICAgICAgIGxvZygiaW5zdHJ1Y3Rpb24gYml0cyBhdCBwYyAlcCBpczogMHglMDh4Iiwg
cGMsIHdvcmRBdFBDKTsKICNlbmRpZgogCi0gICAgICAgIGF1dG8gZXhwZWN0ZWRDb2RlQmxvY2sg
PSBpbnNwZWN0b3IuY29kZUJsb2NrRm9yTWFjaGluZVBDKGxvY2tlciwgcGMpOworICAgICAgICBh
dXRvIGV4cGVjdGVkQ29kZUJsb2NrID0gaW5zcGVjdG9yLmNvZGVCbG9ja0Zvck1hY2hpbmVQQyhw
Yyk7CiAgICAgICAgIGlmICghZXhwZWN0ZWRDb2RlQmxvY2spIHsKICAgICAgICAgICAgIGlmIChl
eHBlY3RlZENvZGVCbG9jay5lcnJvcigpID09IFZNSW5zcGVjdG9yOjpFcnJvcjo6VGltZWRPdXQp
CiAgICAgICAgICAgICAgICAgbG9nKCJFUlJPUjogVGltZWQgb3V0OiBub3QgYWJsZSB0byBkZXRl
cm1pbmUgaWYgcGMgJXAgaXMgaW4gYSB2YWxpZCBDb2RlQmxvY2siLCBwYyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcAppbmRleCAzYTQ4M2E0ZGVjYjBiZDk5
YzBiZDVhMWZmNGUwYmVhM2MxMWU0YjkzLi4xY2NlNDcyNTFmN2E3NzhjYzVlZTQ1MDhlZGE0MjVi
MzU4ZGYwNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNw
ZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5j
cHAKQEAgLTY0LDMwICs2NCw2IEBAIHZvaWQgVk1JbnNwZWN0b3I6OnJlbW92ZShWTSogdm0pCiAg
ICAgbV92bUxpc3QucmVtb3ZlKHZtKTsKIH0KIAotYXV0byBWTUluc3BlY3Rvcjo6bG9jayhTZWNv
bmRzIHRpbWVvdXQpIC0+IEV4cGVjdGVkPFVuY2hlY2tlZExvY2tIb2xkZXIsIEVycm9yPgotewot
ICAgIC8vIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBmcm9tIGEgc2lnbmFsIGhhbmRsZXIg
KGUuZy4gdmlhIHZpc2l0KCkpLiBIZW5jZSwKLSAgICAvLyBpdCBzaG91bGQgb25seSB1c2UgQVBJ
cyB0aGF0IGFyZSBzYWZlIHRvIGNhbGwgZnJvbSBzaWduYWwgaGFuZGxlcnMuIFRoaXMgaXMKLSAg
ICAvLyB3aHkgd2UgdXNlIHVuaXN0ZC5oJ3Mgc2xlZXAoKSBpbnN0ZWFkIG9mIGl0cyBhbHRlcm5h
dGl2ZXMuCi0KLSAgICAvLyBXZSdsbCBiZSBkb2luZyBzbGVlcCgxKSBiZXR3ZWVuIHRyaWVzIGJl
bG93LiBIZW5jZSwgc2xlZXBQZXJSZXRyeSBpcyAxLgotICAgIHVuc2lnbmVkIG1heFJldHJpZXMg
PSAodGltZW91dCA8IFNlY29uZHM6OmluZmluaXR5KCkpID8gdGltZW91dC52YWx1ZSgpIDogVUlO
VF9NQVg7Ci0KLSAgICBFeHBlY3RlZDxVbmNoZWNrZWRMb2NrSG9sZGVyLCBFcnJvcj4gbG9ja2Vy
ID0gVW5jaGVja2VkTG9ja0hvbGRlcjo6dHJ5TG9jayhtX2xvY2spOwotICAgIHVuc2lnbmVkIHRy
eUNvdW50ID0gMDsKLSAgICB3aGlsZSAoIWxvY2tlciAmJiB0cnlDb3VudCA8IG1heFJldHJpZXMp
IHsKLSAgICAgICAgLy8gV2Ugd2FudCB0aGUgdmVyc2lvbiBvZiBzbGVlcCBmcm9tIHVuaXN0ZC5o
LiBDYXN0IHRvIGRpc2FtYmlndWF0ZS4KLSNpZiAhT1MoV0lORE9XUykKLSAgICAgICAgKHN0YXRp
Y19jYXN0PHVuc2lnbmVkICgqKSh1bnNpZ25lZCk+KHNsZWVwKSkoMSk7Ci0jZW5kaWYKLSAgICAg
ICAgbG9ja2VyID0gVW5jaGVja2VkTG9ja0hvbGRlcjo6dHJ5TG9jayhtX2xvY2spOwotICAgIH0K
LQotICAgIGlmICghbG9ja2VyKQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRXJyb3I6
OlRpbWVkT3V0KTsKLSAgICByZXR1cm4gbG9ja2VyOwotfQotCiAjaWYgRU5BQkxFKEpJVCkKIHRl
bXBsYXRlPHR5cGVuYW1lIExvY2tUeXBlPgogc3RhdGljIGJvb2wgZW5zdXJlSXNTYWZlVG9Mb2Nr
KExvY2tUeXBlJiBsb2NrKQpAQCAtMTEzLDcgKzg5LDcgQEAgdm9pZCBWTUluc3BlY3Rvcjo6Zm9y
RWFjaFZNKEZ1bmN0aW9uPEZ1bmN0b3JTdGF0dXMoVk0mKT4mJiBmdW5jKQogICAgIGluc3BlY3Rv
ci5pdGVyYXRlKGZ1bmMpOwogfQogCi1hdXRvIFZNSW5zcGVjdG9yOjppc1ZhbGlkRXhlY3V0YWJs
ZU1lbW9yeShjb25zdCBVbmNoZWNrZWRMb2NrSG9sZGVyJiwgdm9pZCogbWFjaGluZVBDKSAtPiBF
eHBlY3RlZDxib29sLCBFcnJvcj4KK2F1dG8gVk1JbnNwZWN0b3I6OmlzVmFsaWRFeGVjdXRhYmxl
TWVtb3J5KHZvaWQqIG1hY2hpbmVQQykgLT4gRXhwZWN0ZWQ8Ym9vbCwgRXJyb3I+CiB7CiAjaWYg
RU5BQkxFKEpJVCkKICAgICBib29sIGZvdW5kID0gZmFsc2U7CkBAIC0xNDUsNyArMTIxLDcgQEAg
YXV0byBWTUluc3BlY3Rvcjo6aXNWYWxpZEV4ZWN1dGFibGVNZW1vcnkoY29uc3QgVW5jaGVja2Vk
TG9ja0hvbGRlciYsIHZvaWQqIG1hY2gKICNlbmRpZgogfQogCi1hdXRvIFZNSW5zcGVjdG9yOjpj
b2RlQmxvY2tGb3JNYWNoaW5lUEMoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYsIHZvaWQqIG1h
Y2hpbmVQQykgLT4gRXhwZWN0ZWQ8Q29kZUJsb2NrKiwgRXJyb3I+CithdXRvIFZNSW5zcGVjdG9y
Ojpjb2RlQmxvY2tGb3JNYWNoaW5lUEModm9pZCogbWFjaGluZVBDKSAtPiBFeHBlY3RlZDxDb2Rl
QmxvY2sqLCBFcnJvcj4KIHsKICNpZiBFTkFCTEUoSklUKQogICAgIENvZGVCbG9jayogY29kZUJs
b2NrID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9W
TUluc3BlY3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgK
aW5kZXggYzMzODQzMTJjYTQ4MzA5ZmIwNjM5MzY5YTUzYjk2NWUyN2FlOGYyMy4uMWI0ZmRmYjg0
Y2Y1MDkzMTRiYTI1ZGUxZTAyYjg2NGEzNTY1ZWVhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL1ZNSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL1ZNSW5zcGVjdG9yLmgKQEAgLTQ4LDIyICs0OCwyNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhZGQoVk0qKTsKICAgICB2b2lkIHJlbW92ZShWTSopOwogCi0gICAgVW5jaGVja2VkTG9jayYg
Z2V0TG9jaygpIHsgcmV0dXJuIG1fbG9jazsgfQorICAgIExvY2smIGdldExvY2soKSBXVEZfUkVU
VVJOU19MT0NLKG1fbG9jaykgeyByZXR1cm4gbV9sb2NrOyB9CiAKICAgICBlbnVtIGNsYXNzIEZ1
bmN0b3JTdGF0dXMgewogICAgICAgICBDb250aW51ZSwKICAgICAgICAgRG9uZQogICAgIH07CiAK
LSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICB2b2lkIGl0ZXJhdGUoY29uc3Qg
VW5jaGVja2VkTG9ja0hvbGRlciYsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpIHsgaXRlcmF0ZShm
dW5jdG9yKTsgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGl0ZXJhdGUo
Y29uc3QgRnVuY3RvciYgZnVuY3RvcikgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NrKQorICAgIHsK
KyAgICAgICAgZm9yIChWTSogdm0gPSBtX3ZtTGlzdC5oZWFkKCk7IHZtOyB2bSA9IHZtLT5uZXh0
KCkpIHsKKyAgICAgICAgICAgIEZ1bmN0b3JTdGF0dXMgc3RhdHVzID0gZnVuY3Rvcigqdm0pOwor
ICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBGdW5jdG9yU3RhdHVzOjpEb25lKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KIAogICAgIEpTX0VYUE9SVF9QUklWQVRF
IHN0YXRpYyB2b2lkIGZvckVhY2hWTShGdW5jdGlvbjxGdW5jdG9yU3RhdHVzKFZNJik+JiYpOwog
Ci0gICAgRXhwZWN0ZWQ8VW5jaGVja2VkTG9ja0hvbGRlciwgRXJyb3I+IGxvY2soU2Vjb25kcyB0
aW1lb3V0ID0gU2Vjb25kczo6aW5maW5pdHkoKSk7Ci0KLSAgICBFeHBlY3RlZDxib29sLCBFcnJv
cj4gaXNWYWxpZEV4ZWN1dGFibGVNZW1vcnkoY29uc3QgVW5jaGVja2VkTG9ja0hvbGRlciYsIHZv
aWQqKTsKLSAgICBFeHBlY3RlZDxDb2RlQmxvY2sqLCBFcnJvcj4gY29kZUJsb2NrRm9yTWFjaGlu
ZVBDKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImLCB2b2lkKik7CisgICAgRXhwZWN0ZWQ8Ym9v
bCwgRXJyb3I+IGlzVmFsaWRFeGVjdXRhYmxlTWVtb3J5KHZvaWQqKSBXVEZfUkVRVUlSRVNfTE9D
SyhtX2xvY2spOworICAgIEV4cGVjdGVkPENvZGVCbG9jayosIEVycm9yPiBjb2RlQmxvY2tGb3JN
YWNoaW5lUEModm9pZCopIFdURl9SRVFVSVJFU19MT0NLKG1fbG9jayk7CiAKICAgICBKU19FWFBP
UlRfUFJJVkFURSBzdGF0aWMgYm9vbCBjdXJyZW50VGhyZWFkT3duc0pTTG9jayhWTSopOwogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGdjKFZNKik7CkBAIC05MiwxNyArOTYsOCBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgdmVyaWZ5Q2VsbChWTSYsIEpTQ2VsbCopOwogCiBw
cml2YXRlOgotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGl0ZXJhdGUoY29u
c3QgRnVuY3RvciYgZnVuY3RvcikKLSAgICB7Ci0gICAgICAgIGZvciAoVk0qIHZtID0gbV92bUxp
c3QuaGVhZCgpOyB2bTsgdm0gPSB2bS0+bmV4dCgpKSB7Ci0gICAgICAgICAgICBGdW5jdG9yU3Rh
dHVzIHN0YXR1cyA9IGZ1bmN0b3IoKnZtKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gRnVu
Y3RvclN0YXR1czo6RG9uZSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICBVbmNoZWNrZWRMb2NrIG1fbG9jazsKLSAgICBEb3VibHlMaW5rZWRMaXN0PFZN
PiBtX3ZtTGlzdDsKKyAgICBMb2NrIG1fbG9jazsKKyAgICBEb3VibHlMaW5rZWRMaXN0PFZNPiBt
X3ZtTGlzdCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwIGIvU291cmNlL1dURi93
dGYvTG9jay5jcHAKaW5kZXggZmY4NmUxMGE5YTJhNDE3YWI3MDY3MGEwNzg5Y2Y2NTBkNzE4YjE3
MS4uZjljYWQ5NjcxZGZhYTUzNWU3MTk0OWYwZjY1MmJlMWM1ODhlZmNiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvTG9jay5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTG9jay5jcHAKQEAg
LTI5LDYgKzI5LDEyIEBACiAjaW5jbHVkZSA8d3RmL0xvY2tBbGdvcml0aG1JbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL1N0YWNrU2hvdFByb2ZpbGVyLmg+CiAKKyNpZiBPUyhXSU5ET1dTKQorI2lu
Y2x1ZGUgPHdpbmRvd3MuaD4KKyNlbHNlCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYKKwog
bmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBwcm9maWxlTG9ja0NvbnRl
bnRpb24gPSBmYWxzZTsKQEAgLTYzLDUgKzY5LDI0IEBAIHZvaWQgVW5jaGVja2VkTG9jazo6c2Fm
ZXBvaW50U2xvdygpCiAgICAgRGVmYXVsdExvY2tBbGdvcml0aG06OnNhZmVwb2ludFNsb3cobV9i
eXRlKTsKIH0KIAorYm9vbCBMb2NrOjp0cnlMb2NrV2l0aFRpbWVvdXQoU2Vjb25kcyB0aW1lb3V0
KQoreworICAgIC8vIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCBmcm9tIGEgc2lnbmFsIGhh
bmRsZXIgKGUuZy4gdmlhIHZpc2l0KCkpLiBIZW5jZSwKKyAgICAvLyBpdCBzaG91bGQgb25seSB1
c2UgQVBJcyB0aGF0IGFyZSBzYWZlIHRvIGNhbGwgZnJvbSBzaWduYWwgaGFuZGxlcnMuIFRoaXMg
aXMKKyAgICAvLyB3aHkgd2UgdXNlIHVuaXN0ZC5oJ3Mgc2xlZXAoKSBpbnN0ZWFkIG9mIGl0cyBh
bHRlcm5hdGl2ZXMuCisKKyAgICAvLyBXZSdsbCBiZSBkb2luZyBzbGVlcCgxKSBiZXR3ZWVuIHRy
aWVzIGJlbG93LiBIZW5jZSwgc2xlZXBQZXJSZXRyeSBpcyAxLgorICAgIHVuc2lnbmVkIG1heFJl
dHJpZXMgPSAodGltZW91dCA8IFNlY29uZHM6OmluZmluaXR5KCkpID8gdGltZW91dC52YWx1ZSgp
IDogc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOworICAgIHVuc2lnbmVkIHRy
eUNvdW50ID0gMDsKKyAgICB3aGlsZSAoIXRyeUxvY2soKSAmJiB0cnlDb3VudCsrIDw9IG1heFJl
dHJpZXMpIHsKKyNpZiBPUyhXSU5ET1dTKQorICAgICAgICBTbGVlcCgxMDAwKTsKKyNlbHNlCisg
ICAgICAgIDo6c2xlZXAoMSk7CisjZW5kaWYKKyAgICB9CisgICAgcmV0dXJuIGlzSGVsZCgpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9j
ay5oIGIvU291cmNlL1dURi93dGYvTG9jay5oCmluZGV4IGVkNDg5NzU0NDVmNDJlMjE1MThjMTJk
MjYyM2MwMjJmODg4MGMxMmIuLjIzY2UwNzZmNTAyNWIwZDlhNGY1MmRmOGU3Y2E5Zjc0NDMyOWZl
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvY2suaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9Mb2NrLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDx3dGYvTG9ja0FsZ29yaXRobS5o
PgogI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
KyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZldHlBbmFs
eXNpcy5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CkBAIC0xNjIsNiArMTYzLDcgQEAg
cHVibGljOgogICAgIHZvaWQgbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLKCkgeyBVbmNoZWNrZWRM
b2NrOjpsb2NrKCk7IH0KICAgICBib29sIHRyeUxvY2soKSBXVEZfQUNRVUlSRVNfTE9DS19JRih0
cnVlKSB7IHJldHVybiBVbmNoZWNrZWRMb2NrOjp0cnlMb2NrKCk7IH0KICAgICBib29sIHRyeV9s
b2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gVW5jaGVja2VkTG9jazo6
dHJ5X2xvY2soKTsgfSAvLyBOT0xJTlQ6IEludGVudGlvbmFsIGRldmlhdGlvbiB0byBzdXBwb3J0
IHN0ZDo6c2NvcGVkX2xvY2suCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgdHJ5TG9ja1dp
dGhUaW1lb3V0KFNlY29uZHMgdGltZW91dCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSk7CiAg
ICAgdm9pZCB1bmxvY2soKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgVW5jaGVja2VkTG9jazo6dW5s
b2NrKCk7IH0KICAgICB2b2lkIHVubG9ja0ZhaXJseSgpIFdURl9SRUxFQVNFU19MT0NLKCkgeyBV
bmNoZWNrZWRMb2NrOjp1bmxvY2tGYWlybHkoKTsgfQogICAgIHZvaWQgc2FmZXBvaW50KCkgeyBV
bmNoZWNrZWRMb2NrOjpzYWZlcG9pbnQoKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430129</attachid>
            <date>2021-05-29 22:24:35 -0700</date>
            <delta_ts>2021-05-29 23:52:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226427-20210529222434.patch</filename>
            <type>text/plain</type>
            <size>12771</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZDQ4MDk3YTY4NGU4NWEwM2RmZTFhNmU0MjBhNDhhYjgxZWM3Y2E1Li5hNGE1YWU1YmQ2NzVlMjhl
ODI1ZWJmNTY2NDJjNmU0ODE1M2UxMTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMS0wNS0yOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9jayBpbiBKU0M6OlZNSW5zcGVjdG9yCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY0MjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBTdG9wIHVzaW5nIFVuY2hl
Y2tlZExvY2sgaW4gSlNDOjpWTUluc3BlY3RvciwgYXMgaXQgaXMgYmVpbmcgcGhhc2VkIG91dCBp
biBmYXZvcgorICAgICAgICBvZiBMb2NrLCB3aGljaCBzdXBwb3J0cyBDbGFuZyB0aHJlYWQgc2Fm
ZXR5IGFuYWx5c2lzLgorCisgICAgICAgICogdG9vbHMvSGVhcFZlcmlmaWVyLmNwcDoKKyAgICAg
ICAgKEpTQzo6SGVhcFZlcmlmaWVyOjpjaGVja0lmUmVjb3JkZWQpOgorICAgICAgICAqIHRvb2xz
L1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpTaWdpbGxDcmFzaEFuYWx5
emVyOjphbmFseXplKToKKyAgICAgICAgKiB0b29scy9WTUluc3BlY3Rvci5jcHA6CisgICAgICAg
IChKU0M6OlZNSW5zcGVjdG9yOjppc1ZhbGlkRXhlY3V0YWJsZU1lbW9yeSk6CisgICAgICAgIChK
U0M6OlZNSW5zcGVjdG9yOjpjb2RlQmxvY2tGb3JNYWNoaW5lUEMpOgorICAgICAgICAoSlNDOjpW
TUluc3BlY3Rvcjo6bG9jayk6IERlbGV0ZWQuCisgICAgICAgICogdG9vbHMvVk1JbnNwZWN0b3Iu
aDoKKyAgICAgICAgKEpTQzo6Vk1JbnNwZWN0b3I6OldURl9SRVRVUk5TX0xPQ0spOgorICAgICAg
ICAoSlNDOjpWTUluc3BlY3Rvcjo6V1RGX1JFUVVJUkVTX0xPQ0spOgorICAgICAgICAoSlNDOjpW
TUluc3BlY3Rvcjo6Z2V0TG9jayk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlZNSW5zcGVjdG9y
OjppdGVyYXRlKTogRGVsZXRlZC4KKwogMjAyMS0wNS0yOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQ2xpZW50cyBvZiBvcHRpb25hbCBzaG91bGQgdXNlIGhhc192
YWx1ZSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gaGFzVmFsdWUgbWFjcm8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggODJkZDZkZjc5
MmNiYmExMTk5YTFkM2EyZTAzNzhjMWI5NjBhMzJjMS4uMmRhNzFkZjlmZGZkZjE5ODczNjcyYmFm
ZDI5Y2YxMGZlY2Q5MDFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wNS0yOSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2Vk
TG9jayBpbiBKU0M6OlZNSW5zcGVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjY0MjcKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4K
KworICAgICAgICBBZGQgTG9jazo6dHJ5TG9ja1dpdGhUaW1lb3V0KCksIHNpbWlsYXIgdG8gdHJ5
TG9jaygpIGJ1dCBnaXZlcyB1cCBhZnRlciBhCisgICAgICAgIHNwZWNpZmllZCB0aW1lb3V0LiBU
aGlzIHVzZWQgdG8gYmUgaW1wbGVtZW50ZWQgaW4gVk1JbnNwZWN0b3IgYnV0IEkgdGhpbmsKKyAg
ICAgICAgTG9jayBpcyBhIGJldHRlciBwbGFjZSBmb3IgaXQuCisKKyAgICAgICAgKiB3dGYvTG9j
ay5jcHA6CisgICAgICAgIChXVEY6OkxvY2s6OnRyeUxvY2tXaXRoVGltZW91dCk6CisgICAgICAg
ICogd3RmL0xvY2suaDoKKwogMjAyMS0wNS0yOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgQ2xpZW50cyBvZiBvcHRpb25hbCBzaG91bGQgdXNlIGhhc192YWx1ZSBp
bnN0ZWFkIG9mIHJlbHlpbmcgb24gaGFzVmFsdWUgbWFjcm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9IZWFwVmVyaWZpZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rvb2xzL0hlYXBWZXJpZmllci5jcHAKaW5kZXggZWEzZTg0ZTQ5MGUzMGZjOTE3NmMyNWE4
MGE2ZjhmNjY3NDZmNDJhYi4uM2NlMGRlNDI0MWM5NTk1YmE4ODYxN2IxNWIzN2JmYzU2OTczY2U1
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0hlYXBWZXJpZmllci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0hlYXBWZXJpZmllci5jcHAKQEAg
LTQ0MiwxNiArNDQyLDEzIEBAIHZvaWQgSGVhcFZlcmlmaWVyOjpjaGVja0lmUmVjb3JkZWQodWlu
dHB0cl90IGNhbmRpZGF0ZUNlbGwpCiB7CiAgICAgSGVhcENlbGwqIGNhbmRpZGF0ZUhlYXBDZWxs
ID0gcmVpbnRlcnByZXRfY2FzdDxIZWFwQ2VsbCo+KGNhbmRpZGF0ZUNlbGwpOwogICAgIAotICAg
IFZNSW5zcGVjdG9yJiBpbnNwZWN0b3IgPSBWTUluc3BlY3Rvcjo6aW5zdGFuY2UoKTsKLSAgICBh
dXRvIGV4cGVjdGVkTG9ja2VyID0gaW5zcGVjdG9yLmxvY2soU2Vjb25kcygyKSk7Ci0gICAgaWYg
KCFleHBlY3RlZExvY2tlcikgewotICAgICAgICBBU1NFUlQoZXhwZWN0ZWRMb2NrZXIuZXJyb3Io
KSA9PSBWTUluc3BlY3Rvcjo6RXJyb3I6OlRpbWVkT3V0KTsKKyAgICBhdXRvJiBpbnNwZWN0b3Ig
PSBWTUluc3BlY3Rvcjo6aW5zdGFuY2UoKTsKKyAgICBpZiAoIWluc3BlY3Rvci5nZXRMb2NrKCku
dHJ5TG9ja1dpdGhUaW1lb3V0KDJfcykpIHsKICAgICAgICAgZGF0YUxvZygiRVJST1I6IFRpbWVk
IG91dCB3aGlsZSB3YWl0aW5nIHRvIGl0ZXJhdGUgVk1zLiIpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotCi0gICAgYXV0byYgbG9ja2VyID0gZXhwZWN0ZWRMb2NrZXIudmFsdWUoKTsKLSAgICBp
bnNwZWN0b3IuaXRlcmF0ZShsb2NrZXIsIFsmXSAoVk0mIHZtKSB7CisgICAgTG9ja2VyIGxvY2tl
ciB7IEFkb3B0TG9jaywgaW5zcGVjdG9yLmdldExvY2soKSB9OworICAgIGluc3BlY3Rvci5pdGVy
YXRlKFsmXSAoVk0mIHZtKSB7CiAgICAgICAgIGlmICghdm0uaGVhcC5tX3ZlcmlmaWVyKQogICAg
ICAgICAgICAgcmV0dXJuIFZNSW5zcGVjdG9yOjpGdW5jdG9yU3RhdHVzOjpDb250aW51ZTsKICAg
ICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jh
c2hBbmFseXplci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hB
bmFseXplci5jcHAKaW5kZXggMTdjMmE1ZjM4YzQ0NWRkYjA0Zjc2MDQ0YjZkY2U5Njg5NzNjMGY4
MS4uZWQzZjExOGY4NTllYWNmMDMyMjMwMWJkMDYxYzAyM2IxNGI2MDJhYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcApAQCAt
MjI2LDIwICsyMjYsMTggQEAgYXV0byBTaWdpbGxDcmFzaEFuYWx5emVyOjphbmFseXplKFNpZ25h
bENvbnRleHQmIGNvbnRleHQpIC0+IENyYXNoU291cmNlCiAgICAgICAgIC8vIGl0c2VsZiBjcmFz
aGVzLgogICAgICAgICBjb250ZXh0LmR1bXAoKTsKIAotICAgICAgICBWTUluc3BlY3RvciYgaW5z
cGVjdG9yID0gVk1JbnNwZWN0b3I6Omluc3RhbmNlKCk7CisgICAgICAgIGF1dG8mIGluc3BlY3Rv
ciA9IFZNSW5zcGVjdG9yOjppbnN0YW5jZSgpOwogCiAgICAgICAgIC8vIFVzZSBhIHRpbWVvdXQg
cGVyaW9kIG9mIDIgc2Vjb25kcy4gVGhlIGNsaWVudCBpcyBhYm91dCB0byBjcmFzaCwgYW5kIHdl
IGRvbid0CiAgICAgICAgIC8vIHdhbnQgdG8gdHVybiB0aGUgY3Jhc2ggaW50byBhIGhhbmcgYnkg
cmUtdHJ5aW5nIHRoZSBsb2NrIGZvciB0b28gbG9uZy4KLSAgICAgICAgYXV0byBleHBlY3RlZExv
Y2tlciA9IGluc3BlY3Rvci5sb2NrKFNlY29uZHMoMikpOwotICAgICAgICBpZiAoIWV4cGVjdGVk
TG9ja2VyKSB7Ci0gICAgICAgICAgICBBU1NFUlQoZXhwZWN0ZWRMb2NrZXIuZXJyb3IoKSA9PSBW
TUluc3BlY3Rvcjo6RXJyb3I6OlRpbWVkT3V0KTsKKyAgICAgICAgaWYgKCFpbnNwZWN0b3IuZ2V0
TG9jaygpLnRyeUxvY2tXaXRoVGltZW91dCgyX3MpKSB7CiAgICAgICAgICAgICBsb2coIkVSUk9S
OiBVbmFibGUgdG8gYW5hbHl6ZSBTSUdJTEwuIFRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIHRvIGl0
ZXJhdGUgVk1zLiIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgYXV0
byYgbG9ja2VyID0gZXhwZWN0ZWRMb2NrZXIudmFsdWUoKTsKKyAgICAgICAgTG9ja2VyIGxvY2tl
ciB7IEFkb3B0TG9jaywgaW5zcGVjdG9yLmdldExvY2soKSB9OwogCiAgICAgICAgIHZvaWQqIHBj
ID0gY29udGV4dC5tYWNoaW5lUEMudW50YWdnZWRFeGVjdXRhYmxlQWRkcmVzcygpOwotICAgICAg
ICBhdXRvIGlzSW5KSVRNZW1vcnkgPSBpbnNwZWN0b3IuaXNWYWxpZEV4ZWN1dGFibGVNZW1vcnko
bG9ja2VyLCBwYyk7CisgICAgICAgIGF1dG8gaXNJbkpJVE1lbW9yeSA9IGluc3BlY3Rvci5pc1Zh
bGlkRXhlY3V0YWJsZU1lbW9yeShwYyk7CiAgICAgICAgIGlmICghaXNJbkpJVE1lbW9yeSkgewog
ICAgICAgICAgICAgbG9nKCJFUlJPUjogVGltZWQgb3V0OiBub3QgYWJsZSB0byBkZXRlcm1pbmUg
aWYgcGMgJXAgaXMgaW4gdmFsaWQgSklUIGV4ZWN1dGFibGUgbWVtb3J5IiwgcGMpOwogICAgICAg
ICAgICAgYnJlYWs7CkBAIC0yNjUsNyArMjYzLDcgQEAgYXV0byBTaWdpbGxDcmFzaEFuYWx5emVy
OjphbmFseXplKFNpZ25hbENvbnRleHQmIGNvbnRleHQpIC0+IENyYXNoU291cmNlCiAgICAgICAg
IGxvZygiaW5zdHJ1Y3Rpb24gYml0cyBhdCBwYyAlcCBpczogMHglMDh4IiwgcGMsIHdvcmRBdFBD
KTsKICNlbmRpZgogCi0gICAgICAgIGF1dG8gZXhwZWN0ZWRDb2RlQmxvY2sgPSBpbnNwZWN0b3Iu
Y29kZUJsb2NrRm9yTWFjaGluZVBDKGxvY2tlciwgcGMpOworICAgICAgICBhdXRvIGV4cGVjdGVk
Q29kZUJsb2NrID0gaW5zcGVjdG9yLmNvZGVCbG9ja0Zvck1hY2hpbmVQQyhwYyk7CiAgICAgICAg
IGlmICghZXhwZWN0ZWRDb2RlQmxvY2spIHsKICAgICAgICAgICAgIGlmIChleHBlY3RlZENvZGVC
bG9jay5lcnJvcigpID09IFZNSW5zcGVjdG9yOjpFcnJvcjo6VGltZWRPdXQpCiAgICAgICAgICAg
ICAgICAgbG9nKCJFUlJPUjogVGltZWQgb3V0OiBub3QgYWJsZSB0byBkZXRlcm1pbmUgaWYgcGMg
JXAgaXMgaW4gYSB2YWxpZCBDb2RlQmxvY2siLCBwYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL1ZNSW5zcGVjdG9yLmNwcAppbmRleCAzYTQ4M2E0ZGVjYjBiZDk5YzBiZDVhMWZmNGUw
YmVhM2MxMWU0YjkzLi5iMWIzMTE3MzFhZDRjNzgxZDU3NzNjOTE1MzAzMmMzODlkOTI1ZjFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5jcHAKQEAgLTM2LDEw
ICszNiw2IEBACiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8d3RmL0V4cGVjdGVkLmg+CiAK
LSNpZiAhT1MoV0lORE9XUykKLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNlbmRpZgotCiBuYW1lc3Bh
Y2UgSlNDIHsKIAogVk1JbnNwZWN0b3ImIFZNSW5zcGVjdG9yOjppbnN0YW5jZSgpCkBAIC02NCw0
MyArNjAsMTYgQEAgdm9pZCBWTUluc3BlY3Rvcjo6cmVtb3ZlKFZNKiB2bSkKICAgICBtX3ZtTGlz
dC5yZW1vdmUodm0pOwogfQogCi1hdXRvIFZNSW5zcGVjdG9yOjpsb2NrKFNlY29uZHMgdGltZW91
dCkgLT4gRXhwZWN0ZWQ8VW5jaGVja2VkTG9ja0hvbGRlciwgRXJyb3I+Ci17Ci0gICAgLy8gVGhp
cyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGZyb20gYSBzaWduYWwgaGFuZGxlciAoZS5nLiB2aWEg
dmlzaXQoKSkuIEhlbmNlLAotICAgIC8vIGl0IHNob3VsZCBvbmx5IHVzZSBBUElzIHRoYXQgYXJl
IHNhZmUgdG8gY2FsbCBmcm9tIHNpZ25hbCBoYW5kbGVycy4gVGhpcyBpcwotICAgIC8vIHdoeSB3
ZSB1c2UgdW5pc3RkLmgncyBzbGVlcCgpIGluc3RlYWQgb2YgaXRzIGFsdGVybmF0aXZlcy4KLQot
ICAgIC8vIFdlJ2xsIGJlIGRvaW5nIHNsZWVwKDEpIGJldHdlZW4gdHJpZXMgYmVsb3cuIEhlbmNl
LCBzbGVlcFBlclJldHJ5IGlzIDEuCi0gICAgdW5zaWduZWQgbWF4UmV0cmllcyA9ICh0aW1lb3V0
IDwgU2Vjb25kczo6aW5maW5pdHkoKSkgPyB0aW1lb3V0LnZhbHVlKCkgOiBVSU5UX01BWDsKLQot
ICAgIEV4cGVjdGVkPFVuY2hlY2tlZExvY2tIb2xkZXIsIEVycm9yPiBsb2NrZXIgPSBVbmNoZWNr
ZWRMb2NrSG9sZGVyOjp0cnlMb2NrKG1fbG9jayk7Ci0gICAgdW5zaWduZWQgdHJ5Q291bnQgPSAw
OwotICAgIHdoaWxlICghbG9ja2VyICYmIHRyeUNvdW50IDwgbWF4UmV0cmllcykgewotICAgICAg
ICAvLyBXZSB3YW50IHRoZSB2ZXJzaW9uIG9mIHNsZWVwIGZyb20gdW5pc3RkLmguIENhc3QgdG8g
ZGlzYW1iaWd1YXRlLgotI2lmICFPUyhXSU5ET1dTKQotICAgICAgICAoc3RhdGljX2Nhc3Q8dW5z
aWduZWQgKCopKHVuc2lnbmVkKT4oc2xlZXApKSgxKTsKLSNlbmRpZgotICAgICAgICBsb2NrZXIg
PSBVbmNoZWNrZWRMb2NrSG9sZGVyOjp0cnlMb2NrKG1fbG9jayk7Ci0gICAgfQotCi0gICAgaWYg
KCFsb2NrZXIpCi0gICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChFcnJvcjo6VGltZWRPdXQp
OwotICAgIHJldHVybiBsb2NrZXI7Ci19Ci0KICNpZiBFTkFCTEUoSklUKQotdGVtcGxhdGU8dHlw
ZW5hbWUgTG9ja1R5cGU+Ci1zdGF0aWMgYm9vbCBlbnN1cmVJc1NhZmVUb0xvY2soTG9ja1R5cGUm
IGxvY2spCitzdGF0aWMgYm9vbCBlbnN1cmVJc1NhZmVUb0xvY2soTG9jayYgbG9jaykKIHsKLSAg
ICB1bnNpZ25lZCBtYXhSZXRyaWVzID0gMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IG1heFJldHJpZXMgPSAyOwogICAgIHVuc2lnbmVkIHRyeUNvdW50ID0gMDsKLSAgICB3aGlsZSAo
dHJ5Q291bnQgPD0gbWF4UmV0cmllcykgewotICAgICAgICBib29sIHN1Y2Nlc3MgPSBsb2NrLnRy
eUxvY2soKTsKLSAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICB3aGlsZSAodHJ5Q291bnQrKyA8
PSBtYXhSZXRyaWVzKSB7CisgICAgICAgIGlmIChsb2NrLnRyeUxvY2soKSkgewogICAgICAgICAg
ICAgbG9jay51bmxvY2soKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9Ci0g
ICAgICAgIHRyeUNvdW50Kys7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTExMyw3
ICs4Miw3IEBAIHZvaWQgVk1JbnNwZWN0b3I6OmZvckVhY2hWTShGdW5jdGlvbjxGdW5jdG9yU3Rh
dHVzKFZNJik+JiYgZnVuYykKICAgICBpbnNwZWN0b3IuaXRlcmF0ZShmdW5jKTsKIH0KIAotYXV0
byBWTUluc3BlY3Rvcjo6aXNWYWxpZEV4ZWN1dGFibGVNZW1vcnkoY29uc3QgVW5jaGVja2VkTG9j
a0hvbGRlciYsIHZvaWQqIG1hY2hpbmVQQykgLT4gRXhwZWN0ZWQ8Ym9vbCwgRXJyb3I+CithdXRv
IFZNSW5zcGVjdG9yOjppc1ZhbGlkRXhlY3V0YWJsZU1lbW9yeSh2b2lkKiBtYWNoaW5lUEMpIC0+
IEV4cGVjdGVkPGJvb2wsIEVycm9yPgogewogI2lmIEVOQUJMRShKSVQpCiAgICAgYm9vbCBmb3Vu
ZCA9IGZhbHNlOwpAQCAtMTQ1LDcgKzExNCw3IEBAIGF1dG8gVk1JbnNwZWN0b3I6OmlzVmFsaWRF
eGVjdXRhYmxlTWVtb3J5KGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImLCB2b2lkKiBtYWNoCiAj
ZW5kaWYKIH0KIAotYXV0byBWTUluc3BlY3Rvcjo6Y29kZUJsb2NrRm9yTWFjaGluZVBDKGNvbnN0
IFVuY2hlY2tlZExvY2tIb2xkZXImLCB2b2lkKiBtYWNoaW5lUEMpIC0+IEV4cGVjdGVkPENvZGVC
bG9jayosIEVycm9yPgorYXV0byBWTUluc3BlY3Rvcjo6Y29kZUJsb2NrRm9yTWFjaGluZVBDKHZv
aWQqIG1hY2hpbmVQQykgLT4gRXhwZWN0ZWQ8Q29kZUJsb2NrKiwgRXJyb3I+CiB7CiAjaWYgRU5B
QkxFKEpJVCkKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvVk1JbnNwZWN0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5oCmluZGV4IGMzMzg0MzEyY2E0ODMwOWZiMDYz
OTM2OWE1M2I5NjVlMjdhZThmMjMuLjFiNGZkZmI4NGNmNTA5MzE0YmEyNWRlMWUwMmI4NjRhMzU2
NWVlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9WTUluc3BlY3Rvci5oCkBAIC00
OCwyMiArNDgsMjYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkKFZNKik7CiAgICAgdm9pZCByZW1v
dmUoVk0qKTsKIAotICAgIFVuY2hlY2tlZExvY2smIGdldExvY2soKSB7IHJldHVybiBtX2xvY2s7
IH0KKyAgICBMb2NrJiBnZXRMb2NrKCkgV1RGX1JFVFVSTlNfTE9DSyhtX2xvY2spIHsgcmV0dXJu
IG1fbG9jazsgfQogCiAgICAgZW51bSBjbGFzcyBGdW5jdG9yU3RhdHVzIHsKICAgICAgICAgQ29u
dGludWUsCiAgICAgICAgIERvbmUKICAgICB9OwogCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1
bmN0b3I+Ci0gICAgdm9pZCBpdGVyYXRlKGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImLCBjb25z
dCBGdW5jdG9yJiBmdW5jdG9yKSB7IGl0ZXJhdGUoZnVuY3Rvcik7IH0KKyAgICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgRnVuY3Rvcj4gdm9pZCBpdGVyYXRlKGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpIFdU
Rl9SRVFVSVJFU19MT0NLKG1fbG9jaykKKyAgICB7CisgICAgICAgIGZvciAoVk0qIHZtID0gbV92
bUxpc3QuaGVhZCgpOyB2bTsgdm0gPSB2bS0+bmV4dCgpKSB7CisgICAgICAgICAgICBGdW5jdG9y
U3RhdHVzIHN0YXR1cyA9IGZ1bmN0b3IoKnZtKTsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgPT0g
RnVuY3RvclN0YXR1czo6RG9uZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBmb3JFYWNoVk0oRnVu
Y3Rpb248RnVuY3RvclN0YXR1cyhWTSYpPiYmKTsKIAotICAgIEV4cGVjdGVkPFVuY2hlY2tlZExv
Y2tIb2xkZXIsIEVycm9yPiBsb2NrKFNlY29uZHMgdGltZW91dCA9IFNlY29uZHM6OmluZmluaXR5
KCkpOwotCi0gICAgRXhwZWN0ZWQ8Ym9vbCwgRXJyb3I+IGlzVmFsaWRFeGVjdXRhYmxlTWVtb3J5
KGNvbnN0IFVuY2hlY2tlZExvY2tIb2xkZXImLCB2b2lkKik7Ci0gICAgRXhwZWN0ZWQ8Q29kZUJs
b2NrKiwgRXJyb3I+IGNvZGVCbG9ja0Zvck1hY2hpbmVQQyhjb25zdCBVbmNoZWNrZWRMb2NrSG9s
ZGVyJiwgdm9pZCopOworICAgIEV4cGVjdGVkPGJvb2wsIEVycm9yPiBpc1ZhbGlkRXhlY3V0YWJs
ZU1lbW9yeSh2b2lkKikgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NrKTsKKyAgICBFeHBlY3RlZDxD
b2RlQmxvY2sqLCBFcnJvcj4gY29kZUJsb2NrRm9yTWFjaGluZVBDKHZvaWQqKSBXVEZfUkVRVUlS
RVNfTE9DSyhtX2xvY2spOwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgY3Vy
cmVudFRocmVhZE93bnNKU0xvY2soVk0qKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMg
dm9pZCBnYyhWTSopOwpAQCAtOTIsMTcgKzk2LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBib29s
IHZlcmlmeUNlbGwoVk0mLCBKU0NlbGwqKTsKIAogcHJpdmF0ZToKLSAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgRnVuY3Rvcj4gdm9pZCBpdGVyYXRlKGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAg
ewotICAgICAgICBmb3IgKFZNKiB2bSA9IG1fdm1MaXN0LmhlYWQoKTsgdm07IHZtID0gdm0tPm5l
eHQoKSkgewotICAgICAgICAgICAgRnVuY3RvclN0YXR1cyBzdGF0dXMgPSBmdW5jdG9yKCp2bSk7
Ci0gICAgICAgICAgICBpZiAoc3RhdHVzID09IEZ1bmN0b3JTdGF0dXM6OkRvbmUpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgVW5jaGVja2VkTG9jayBt
X2xvY2s7Ci0gICAgRG91Ymx5TGlua2VkTGlzdDxWTT4gbV92bUxpc3Q7CisgICAgTG9jayBtX2xv
Y2s7CisgICAgRG91Ymx5TGlua2VkTGlzdDxWTT4gbV92bUxpc3QgV1RGX0dVQVJERURfQllfTE9D
SyhtX2xvY2spOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Mb2NrLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwCmluZGV4IGZmODZlMTBh
OWEyYTQxN2FiNzA2NzBhMDc4OWNmNjUwZDcxOGIxNzEuLmY5Y2FkOTY3MWRmYWE1MzVlNzE5NDlm
MGY2NTJiZTFjNTg4ZWZjYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0xvY2suY3BwCkBAIC0yOSw2ICsyOSwxMiBAQAogI2luY2x1ZGUg
PHd0Zi9Mb2NrQWxnb3JpdGhtSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9TdGFja1Nob3RQcm9m
aWxlci5oPgogCisjaWYgT1MoV0lORE9XUykKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjZWxzZQor
I2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXVEYgewogCiBzdGF0aWMg
Y29uc3RleHByIGJvb2wgcHJvZmlsZUxvY2tDb250ZW50aW9uID0gZmFsc2U7CkBAIC02Myw1ICs2
OSwyNCBAQCB2b2lkIFVuY2hlY2tlZExvY2s6OnNhZmVwb2ludFNsb3coKQogICAgIERlZmF1bHRM
b2NrQWxnb3JpdGhtOjpzYWZlcG9pbnRTbG93KG1fYnl0ZSk7CiB9CiAKK2Jvb2wgTG9jazo6dHJ5
TG9ja1dpdGhUaW1lb3V0KFNlY29uZHMgdGltZW91dCkKK3sKKyAgICAvLyBUaGlzIGZ1bmN0aW9u
IG1heSBiZSBjYWxsZWQgZnJvbSBhIHNpZ25hbCBoYW5kbGVyIChlLmcuIHZpYSB2aXNpdCgpKS4g
SGVuY2UsCisgICAgLy8gaXQgc2hvdWxkIG9ubHkgdXNlIEFQSXMgdGhhdCBhcmUgc2FmZSB0byBj
YWxsIGZyb20gc2lnbmFsIGhhbmRsZXJzLiBUaGlzIGlzCisgICAgLy8gd2h5IHdlIHVzZSB1bmlz
dGQuaCdzIHNsZWVwKCkgaW5zdGVhZCBvZiBpdHMgYWx0ZXJuYXRpdmVzLgorCisgICAgLy8gV2Un
bGwgYmUgZG9pbmcgc2xlZXAoMSkgYmV0d2VlbiB0cmllcyBiZWxvdy4gSGVuY2UsIHNsZWVwUGVy
UmV0cnkgaXMgMS4KKyAgICB1bnNpZ25lZCBtYXhSZXRyaWVzID0gKHRpbWVvdXQgPCBTZWNvbmRz
OjppbmZpbml0eSgpKSA/IHRpbWVvdXQudmFsdWUoKSA6IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5z
aWduZWQ+OjptYXgoKTsKKyAgICB1bnNpZ25lZCB0cnlDb3VudCA9IDA7CisgICAgd2hpbGUgKCF0
cnlMb2NrKCkgJiYgdHJ5Q291bnQrKyA8PSBtYXhSZXRyaWVzKSB7CisjaWYgT1MoV0lORE9XUykK
KyAgICAgICAgU2xlZXAoMTAwMCk7CisjZWxzZQorICAgICAgICA6OnNsZWVwKDEpOworI2VuZGlm
CisgICAgfQorICAgIHJldHVybiBpc0hlbGQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2su
aAppbmRleCBlZDQ4OTc1NDQ1ZjQyZTIxNTE4YzEyZDI2MjNjMDIyZjg4ODBjMTJiLi4yM2NlMDc2
ZjUwMjViMGQ5YTRmNTJkZjhlN2NhOWY3NDQzMjlmZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9Mb2NrLmgKKysrIGIvU291cmNlL1dURi93dGYvTG9jay5oCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSA8d3RmL0xvY2tBbGdvcml0aG0uaD4KICNpbmNsdWRlIDx3dGYvTG9ja2VyLmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZXR5QW5hbHlzaXMuaD4KIAogbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkgewpAQCAtMTYyLDYgKzE2Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvY2soKSBX
VEZfQUNRVUlSRVNfTE9DSygpIHsgVW5jaGVja2VkTG9jazo6bG9jaygpOyB9CiAgICAgYm9vbCB0
cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyByZXR1cm4gVW5jaGVja2VkTG9j
azo6dHJ5TG9jaygpOyB9CiAgICAgYm9vbCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lG
KHRydWUpIHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6OnRyeV9sb2NrKCk7IH0gLy8gTk9MSU5UOiBJ
bnRlbnRpb25hbCBkZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgorICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBib29sIHRyeUxvY2tXaXRoVGltZW91dChTZWNvbmRzIHRpbWVvdXQp
IFdURl9BQ1FVSVJFU19MT0NLX0lGKHRydWUpOwogICAgIHZvaWQgdW5sb2NrKCkgV1RGX1JFTEVB
U0VTX0xPQ0soKSB7IFVuY2hlY2tlZExvY2s6OnVubG9jaygpOyB9CiAgICAgdm9pZCB1bmxvY2tG
YWlybHkoKSBXVEZfUkVMRUFTRVNfTE9DSygpIHsgVW5jaGVja2VkTG9jazo6dW5sb2NrRmFpcmx5
KCk7IH0KICAgICB2b2lkIHNhZmVwb2ludCgpIHsgVW5jaGVja2VkTG9jazo6c2FmZXBvaW50KCk7
IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>