<?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>225834</bug_id>
          
          <creation_ts>2021-05-14 17:00:15 -0700</creation_ts>
          <short_desc>Allow wheel events to be coalesced during scroll deceleration</short_desc>
          <delta_ts>2021-05-17 11:00:19 -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>UI Events</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1760300</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-14 17:00:15 -0700</bug_when>
    <thetext>Allow wheel events to be coalesced during scroll deceleration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760314</commentid>
    <comment_count>1</comment_count>
      <attachid>428692</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-14 17:43:15 -0700</bug_when>
    <thetext>Created attachment 428692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760316</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-14 17:43:47 -0700</bug_when>
    <thetext>&lt;rdar://70402512&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760323</commentid>
    <comment_count>3</comment_count>
      <attachid>428692</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-05-14 17:51:48 -0700</bug_when>
    <thetext>Comment on attachment 428692
Patch

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

&gt; Source/WebKit/Shared/WebWheelEventCoalescer.cpp:152
&gt; +        static constexpr double momentumVelocityEventFrequencyReductionThreashold = 320.0; // Points per second.

Threashold!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760324</commentid>
    <comment_count>4</comment_count>
      <attachid>428692</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-14 17:58:55 -0700</bug_when>
    <thetext>Comment on attachment 428692
Patch

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

&gt; Source/WebKit/Shared/WebWheelEventCoalescer.cpp:90
&gt; +bool WebWheelEventCoalescer::isInMomentumPhase(const WebWheelEvent&amp; event)

This feels like an odd name for what this checks. It should either have a more descriptive name or at least have a comment explaining things.

&gt; Source/WebKit/Shared/WebWheelEventCoalescer.cpp:151
&gt; +    if (isInMomentumPhase(event) &amp;&amp; shouldCoalesceEventsDuringDeceleration() &amp;&amp; lastEventInterval &amp;&amp; lastEventInterval) {

&quot;lastEventInterval &amp;&amp; lastEventInterval&quot; seems duplicated.

&gt; Source/WebKit/Shared/WebWheelEventCoalescer.cpp:152
&gt; +        static constexpr double momentumVelocityEventFrequencyReductionThreashold = 320.0; // Points per second.

No need for the static here.

&gt; Source/WebKit/Shared/WebWheelEventCoalescer.cpp:155
&gt; +        static constexpr auto maxCoalescingInterval = WebCore::FullSpeedAnimationInterval;

No need for the static here.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:2829
&gt; +    auto framesPerSecond = m_process-&gt;processPool().nominalFramesPerSecondForDisplay(*m_displayID);

Not new, but it is still bizarre this on the process pool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760342</commentid>
    <comment_count>5</comment_count>
      <attachid>428704</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-14 20:28:25 -0700</bug_when>
    <thetext>Created attachment 428704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760805</commentid>
    <comment_count>6</comment_count>
      <attachid>428704</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-17 11:00:13 -0700</bug_when>
    <thetext>Comment on attachment 428704
Patch

http://trac.webkit.org/changeset/277587/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428692</attachid>
            <date>2021-05-14 17:43:15 -0700</date>
            <delta_ts>2021-05-14 20:28:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225834-20210514174314.patch</filename>
            <type>text/plain</type>
            <size>9205</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNiMThhMzRjY2NmMmE3ZGIx
OWQ3YmZlYTk2MjkzNThlMjhhYjAwNGUuLjNlODMyNjg5NWUwMDZiMTUzOTc2M2Q5OThmNDU3Y2Zk
MjIyZjk5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMDUtMTQgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgd2hlZWwgZXZl
bnRzIHRvIGJlIGNvYWxlc2NlZCBkdXJpbmcgc2Nyb2xsIGRlY2VsZXJhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODM0CisgICAgICAgIDxy
ZGFyOi8vNzA0MDI1MTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2hlbiBzY3JvbGxpbmcgc2xvd3MgZG93biB0b3dhcmRzIHRoZSB0YWlsIGVuZCBv
ZiBhIG1vbWVudHVtIHNjcm9sbCwgd2UgY2FuIHJlZHVjZSBvdXIKKyAgICAgICAgY29tbWl0IGZy
ZXF1ZW5jeSB0byBzYXZlIHBvd2VyLCBidXQgd2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gZGlz
cGxheXMgd2hvc2UgcmVmcmVzaCByYXRlCisgICAgICAgIGlzIGhpZ2hlciB0aGFuIHRoZSBkZWZh
dWx0ICJ1cGRhdGUgcmVuZGVyaW5nIiBmcmVxdWVuY3kuCisKKyAgICAgICAgV2UgZG8gdGhpcyBi
eSBsZXZlcmFnaW5nIHRoZSBleGlzdGluZyBXZWJXaGVlbEV2ZW50Q29hbGVzY2VyLCB3aGljaCBj
b2FsZXNjZXMgZXZlbnRzCisgICAgICAgIGluIHRoZSBVSSBwcm9jZXNzLiBJdCB0cmFja3MgdGlt
ZSBzaW5jZSBwcmV2aW91cyBldmVudCwgYW5kIGNvYWxlc2NlcyB3aGVuIHRoZQorICAgICAgICBp
bnN0YW50YW5lb3VzIHZlbG9jaXR5IGlzIGxlc3MgdGhhbiAzMjAgcG9pbnRzIHBlciBzZWNvbmQg
KG1hdGNoaW5nIG90aGVyIGZyYW1ld29ya3MKKyAgICAgICAgb24gdGhlIHN5c3RlbSkuCisKKyAg
ICAgICAgV2ViV2hlZWxFdmVudENvYWxlc2NlciBuZWVkcyB0byBrbm93IHdoZW4gdG8gZW5hYmxl
IGNvYWxlc2NpbmcsIHdoaWNoIGl0IGNvbXB1dGVzCisgICAgICAgIG9uIGNyZWF0aW9uLCBhbmQg
d2hlbiB0aGUgd2luZG93IGlzIG1vdmVkIHRvIGEgZGlmZmVyZW50IHNjcmVlbiB3aXRoIHBvdGVu
dGlhbGx5CisgICAgICAgIGEgZGlmZmVyZW50IHJlZnJlc2ggcmF0ZS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hl
ZWxFdmVudENvYWxlc2Nlcjo6aXNJbk1vbWVudHVtUGhhc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJXaGVlbEV2ZW50Q29hbGVzY2VyOjpzaG91bGREaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKiBT
aGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVl
bEV2ZW50Q29hbGVzY2VyOjpzaG91bGRDb2FsZXNjZUV2ZW50c0R1cmluZ0RlY2VsZXJhdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnRDb2FsZXNjZXI6OnNldFNob3Vs
ZENvYWxlc2NlRXZlbnRzRHVyaW5nRGVjZWxlcmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aGVlbEV2
ZW50Q29hbGVzY2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG91bGRDb2Fs
ZXNjZVdoZWVsRXZlbnRzRHVyaW5nRGVjZWxlcmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKwogMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBGaWxlU3lzdGVtOjpoYXJkTGlua0NvdW50
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnRDb2FsZXNj
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5jcHAK
aW5kZXggMTIwZGIwNjI1MDVkOGY3ZGEzYzQzZTk2ODQwMjFlMDg5MWJhYmRlMS4uNTZjOTA3ODAz
MTM0MWUwNjA1ZWJiZDUxOTkwODc2YmY5Y2NhY2I4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2luY2x1
ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQW5pbWF0aW9uRnJh
bWVSYXRlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTg2LDYgKzg3LDExIEBAIFdlYldoZWVsRXZlbnQgV2ViV2hlZWxFdmVudENv
YWxlc2Nlcjo6Y29hbGVzY2UoY29uc3QgV2ViV2hlZWxFdmVudCYgYSwgY29uc3QgV2ViCiAjZW5k
aWYKIH0KIAorYm9vbCBXZWJXaGVlbEV2ZW50Q29hbGVzY2VyOjppc0luTW9tZW50dW1QaGFzZShj
b25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkKK3sKKyAgICByZXR1cm4gZXZlbnQucGhhc2UoKSA9
PSBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhhc2VOb25lICYmIGV2ZW50Lm1vbWVudHVtUGhhc2Uo
KSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhhc2VDaGFuZ2VkOworfQorCiBib29sIFdlYldo
ZWVsRXZlbnRDb2FsZXNjZXI6OnNob3VsZERpc3BhdGNoRXZlbnROb3coY29uc3QgV2ViV2hlZWxF
dmVudCYgZXZlbnQpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtMTM1LDEwICsxNDEs
MjYgQEAgT3B0aW9uYWw8V2ViV2hlZWxFdmVudD4gV2ViV2hlZWxFdmVudENvYWxlc2Nlcjo6bmV4
dEV2ZW50VG9EaXNwYXRjaCgpCiAKIGJvb2wgV2ViV2hlZWxFdmVudENvYWxlc2Nlcjo6c2hvdWxk
RGlzcGF0Y2hFdmVudChjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKIHsKLSAgICBM
T0dfV0lUSF9TVFJFQU0oV2hlZWxFdmVudHMsIHN0cmVhbSA8PCAiV2ViV2hlZWxFdmVudENvYWxl
c2Nlcjo6c2hvdWxkRGlzcGF0Y2hFdmVudCAiIDw8IGV2ZW50IDw8ICIgKCIgPDwgbV93aGVlbEV2
ZW50UXVldWUuc2l6ZSgpIDw8ICIgZXZlbnRzIGluIHRoZSBxdWV1ZSwgIiA8PCBtX2V2ZW50c0Jl
aW5nUHJvY2Vzc2VkLnNpemUoKSA8PCAiIGV2ZW50IHNlcXVlbmNlcyBiZWluZyBwcm9jZXNzZWQp
Iik7CisgICAgTE9HX1dJVEhfU1RSRUFNKFdoZWVsRXZlbnRzLCBzdHJlYW0gPDwgIldlYldoZWVs
RXZlbnRDb2FsZXNjZXI6OnNob3VsZERpc3BhdGNoRXZlbnQgIiA8PCBldmVudCA8PCAiICgiIDw8
IG1fd2hlZWxFdmVudFF1ZXVlLnNpemUoKSA8PCAiIGV2ZW50cyBpbiB0aGUgcXVldWUsICIgPDwg
bV9ldmVudHNCZWluZ1Byb2Nlc3NlZC5zaXplKCkgPDwgIiBldmVudCBzZXF1ZW5jZXMgYmVpbmcg
cHJvY2Vzc2VkLCBjb2FsZXNjZSBkdXJpbmcgZGVjbGVyYXRpb24gIiA8PCBtX3Nob3VsZENvYWxl
c2NlRXZlbnRzRHVyaW5nRGVjZWxlcmF0aW9uIDw8ICIpIik7CiAKICAgICBtX3doZWVsRXZlbnRR
dWV1ZS5hcHBlbmQoZXZlbnQpOwogCisgICAgYXV0byBsYXN0RXZlbnRJbnRlcnZhbCA9IGV2ZW50
LnRpbWVzdGFtcCgpIC0gbV9sYXN0RXZlbnRUaW1lOworICAgIG1fbGFzdEV2ZW50VGltZSA9IGV2
ZW50LnRpbWVzdGFtcCgpOworCisgICAgaWYgKGlzSW5Nb21lbnR1bVBoYXNlKGV2ZW50KSAmJiBz
aG91bGRDb2FsZXNjZUV2ZW50c0R1cmluZ0RlY2VsZXJhdGlvbigpICYmIGxhc3RFdmVudEludGVy
dmFsICYmIGxhc3RFdmVudEludGVydmFsKSB7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgZG91
YmxlIG1vbWVudHVtVmVsb2NpdHlFdmVudEZyZXF1ZW5jeVJlZHVjdGlvblRocmVhc2hvbGQgPSAz
MjAuMDsgLy8gUG9pbnRzIHBlciBzZWNvbmQuCisgICAgICAgIGF1dG8gaW5zdGFudGFuZW91c1Zl
bG9jaXR5ID0gc3RkOjptYXgoc3RkOjphYnMoZXZlbnQuZGVsdGEoKS53aWR0aCgpKSwgc3RkOjph
YnMoZXZlbnQuZGVsdGEoKS5oZWlnaHQoKSkpIC8gbGFzdEV2ZW50SW50ZXJ2YWwuc2Vjb25kcygp
OworCisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBtYXhDb2FsZXNjaW5nSW50ZXJ2YWwg
PSBXZWJDb3JlOjpGdWxsU3BlZWRBbmltYXRpb25JbnRlcnZhbDsKKyAgICAgICAgYXV0byBsYXN0
RGlzcGF0Y2hlZEV2ZW50SW50ZXJ2YWwgPSBldmVudC50aW1lc3RhbXAoKSAtIG1fbGFzdERpc3Bh
dGNoZWRFdmVudFRpbWU7CisKKyAgICAgICAgaWYgKGluc3RhbnRhbmVvdXNWZWxvY2l0eSA8IG1v
bWVudHVtVmVsb2NpdHlFdmVudEZyZXF1ZW5jeVJlZHVjdGlvblRocmVhc2hvbGQgJiYgbGFzdERp
c3BhdGNoZWRFdmVudEludGVydmFsIDwgbWF4Q29hbGVzY2luZ0ludGVydmFsKSB7CisgICAgICAg
ICAgICBMT0dfV0lUSF9TVFJFQU0oV2hlZWxFdmVudHMsIHN0cmVhbSA8PCAiIGNvYWxlc2NlZCBl
dmVudCB0aGF0IGNhbWUgd2l0aGluICIgPDwgbGFzdERpc3BhdGNoZWRFdmVudEludGVydmFsLm1p
bGxpc2Vjb25kcygpIDw8ICIgb2YgcHJldmlvdXMgZGlzcGF0Y2giKTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICghbV9ldmVudHNCZWluZ1By
b2Nlc3NlZC5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKCFzaG91bGREaXNwYXRjaEV2ZW50Tm93
KG1fd2hlZWxFdmVudFF1ZXVlLmxhc3QoKSkpIHsKICAgICAgICAgICAgIExPR19XSVRIX1NUUkVB
TShXaGVlbEV2ZW50cywgc3RyZWFtIDw8ICJXZWJXaGVlbEV2ZW50Q29hbGVzY2VyOjpzaG91bGRE
aXNwYXRjaEV2ZW50IC0gICIgPDwgbV93aGVlbEV2ZW50UXVldWUuc2l6ZSgpIDw8ICIgZXZlbnRz
IHF1ZXVlZDsgbm90IGRpc3BhdGNoaW5nIik7CkBAIC0xNDcsNyArMTY5LDggQEAgYm9vbCBXZWJX
aGVlbEV2ZW50Q29hbGVzY2VyOjpzaG91bGREaXNwYXRjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYldo
ZWVsRXZlbnQmIGV2ZW4KICAgICAgICAgLy8gVGhlIHF1ZXVlIGhhcyB0b28gbWFueSB3aGVlbCBl
dmVudHMsIHNvIHB1c2ggYSBuZXcgZXZlbnQuCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2lj
IGlzIGNvbmZ1c2luZywgYW5kIHBvc3NpYmx5IG5vdCBuZWNlc3NhcnkuCiAgICAgfQotCisgICAg
CisgICAgbV9sYXN0RGlzcGF0Y2hlZEV2ZW50VGltZSA9IGV2ZW50LnRpbWVzdGFtcCgpOwogICAg
IHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJX
aGVlbEV2ZW50Q29hbGVzY2VyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50
Q29hbGVzY2VyLmgKaW5kZXggZTllZGRmNDIyY2E4ZGViNjI4ZDgyNzRmYzRkYTE1YmE3MjkyOTc1
MS4uNWZlNjE3ZDM3OWE3OGIyNzliNmM5MzFlY2M4MTNmZTM2YmUxODBjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnRDb2FsZXNjZXIuaApAQCAtMjgsNiArMjgsNyBA
QAogI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzcsMTEgKzM4LDE0IEBAIHB1YmxpYzoKICAg
ICAvLyBJZiB0aGlzIHJldHVybnMgdHJ1ZSwgdXNlIG5leHRFdmVudFRvRGlzcGF0Y2goKSB0byBn
ZXQgdGhlIGV2ZW50IHRvIGRpc3BhdGNoLgogICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hFdmVudChj
b25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jik7CiAgICAgT3B0aW9uYWw8V2ViV2hlZWxFdmVudD4g
bmV4dEV2ZW50VG9EaXNwYXRjaCgpOwotICAgIAorCiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudCB0
YWtlT2xkZXN0RXZlbnRCZWluZ1Byb2Nlc3NlZCgpOwogCiAgICAgYm9vbCBoYXNFdmVudHNCZWlu
Z1Byb2Nlc3NlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2V2ZW50c0JlaW5nUHJvY2Vzc2VkLmlzRW1w
dHkoKTsgfQogICAgIAorICAgIGJvb2wgc2hvdWxkQ29hbGVzY2VFdmVudHNEdXJpbmdEZWNlbGVy
YXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENvYWxlc2NlRXZlbnRzRHVyaW5nRGVjZWxl
cmF0aW9uOyB9CisgICAgdm9pZCBzZXRTaG91bGRDb2FsZXNjZUV2ZW50c0R1cmluZ0RlY2VsZXJh
dGlvbihib29sIHNob3VsZENvYWxzY2UpIHsgbV9zaG91bGRDb2FsZXNjZUV2ZW50c0R1cmluZ0Rl
Y2VsZXJhdGlvbiA9IHNob3VsZENvYWxzY2U7IH0KKwogICAgIHZvaWQgY2xlYXIoKTsKIAogcHJp
dmF0ZToKQEAgLTUwLDEwICs1NCwxNiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGNhbkNv
YWxlc2NlKGNvbnN0IFdlYldoZWVsRXZlbnQmLCBjb25zdCBXZWJXaGVlbEV2ZW50Jik7CiAgICAg
c3RhdGljIFdlYldoZWVsRXZlbnQgY29hbGVzY2UoY29uc3QgV2ViV2hlZWxFdmVudCYsIGNvbnN0
IFdlYldoZWVsRXZlbnQmKTsKIAorICAgIHN0YXRpYyBib29sIGlzSW5Nb21lbnR1bVBoYXNlKGNv
bnN0IFdlYldoZWVsRXZlbnQmKTsKKwogICAgIGJvb2wgc2hvdWxkRGlzcGF0Y2hFdmVudE5vdyhj
b25zdCBXZWJXaGVlbEV2ZW50JikgY29uc3Q7CiAKICAgICBEZXF1ZTxOYXRpdmVXZWJXaGVlbEV2
ZW50LCAyPiBtX3doZWVsRXZlbnRRdWV1ZTsKICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8Q29h
bGVzY2VkRXZlbnRTZXF1ZW5jZT4+IG1fZXZlbnRzQmVpbmdQcm9jZXNzZWQ7CisKKyAgICBXYWxs
VGltZSBtX2xhc3RFdmVudFRpbWU7CisgICAgV2FsbFRpbWUgbV9sYXN0RGlzcGF0Y2hlZEV2ZW50
VGltZTsKKyAgICBib29sIG1fc2hvdWxkQ29hbGVzY2VFdmVudHNEdXJpbmdEZWNlbGVyYXRpb24g
eyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBhNDViMDJlMTFkM2Y0ODBmMDMxMzdhNWEwODU1
MjUxYmY2YTZkZjM0Li5iZWM1NzBiZWJjN2U4NzBmZjkyYTI5MzQyYzU3MmRhYWIwMmIxZjZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTI4MTMsMTIgKzI4
MTMsMjMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNlbmRXaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVs
RXZlbnQmIGV2ZW50KQogCiBXZWJXaGVlbEV2ZW50Q29hbGVzY2VyJiBXZWJQYWdlUHJveHk6Ondo
ZWVsRXZlbnRDb2FsZXNjZXIoKQogewotICAgIGlmICghbV93aGVlbEV2ZW50Q29hbGVzY2VyKQor
ICAgIGlmICghbV93aGVlbEV2ZW50Q29hbGVzY2VyKSB7CiAgICAgICAgIG1fd2hlZWxFdmVudENv
YWxlc2NlciA9IG1ha2VVbmlxdWU8V2ViV2hlZWxFdmVudENvYWxlc2Nlcj4oKTsKKyAgICAgICAg
bV93aGVlbEV2ZW50Q29hbGVzY2VyLT5zZXRTaG91bGRDb2FsZXNjZUV2ZW50c0R1cmluZ0RlY2Vs
ZXJhdGlvbihzaG91bGRDb2FsZXNjZVdoZWVsRXZlbnRzRHVyaW5nRGVjZWxlcmF0aW9uKCkpOwor
ICAgIH0KIAogICAgIHJldHVybiAqbV93aGVlbEV2ZW50Q29hbGVzY2VyOwogfQogCitib29sIFdl
YlBhZ2VQcm94eTo6c2hvdWxkQ29hbGVzY2VXaGVlbEV2ZW50c0R1cmluZ0RlY2VsZXJhdGlvbigp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2Rpc3BsYXlJRCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgYXV0byBmcmFtZXNQZXJTZWNvbmQgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkubm9t
aW5hbEZyYW1lc1BlclNlY29uZEZvckRpc3BsYXkoKm1fZGlzcGxheUlEKTsKKyAgICByZXR1cm4g
ZnJhbWVzUGVyU2Vjb25kID4gV2ViQ29yZTo6RnVsbFNwZWVkRnJhbWVzUGVyU2Vjb25kOworfQor
CiBib29sIFdlYlBhZ2VQcm94eTo6aGFzUXVldWVkS2V5RXZlbnQoKSBjb25zdAogewogICAgIHJl
dHVybiAhbV9rZXlFdmVudFF1ZXVlLmlzRW1wdHkoKTsKQEAgLTM4MzMsNiArMzg0NCw5IEBAIHZv
aWQgV2ViUGFnZVByb3h5Ojp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQg
ZGlzcGxheUlELCBPcHRpb25hbDx1CiB7CiAgICAgbV9kaXNwbGF5SUQgPSBkaXNwbGF5SUQ7CiAK
KyAgICBpZiAobV93aGVlbEV2ZW50Q29hbGVzY2VyKQorICAgICAgICBtX3doZWVsRXZlbnRDb2Fs
ZXNjZXItPnNldFNob3VsZENvYWxlc2NlRXZlbnRzRHVyaW5nRGVjZWxlcmF0aW9uKHNob3VsZENv
YWxlc2NlV2hlZWxFdmVudHNEdXJpbmdEZWNlbGVyYXRpb24oKSk7CisKICAgICBpZiAoIWhhc1J1
bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCAxZTIzOTgxYzU3ZWEyZjE2NzcyNzg3ZTc3ZWM4ODg2NDk1MDFk
ZTMyLi41OGFkYWI5YmViZDgzNmFkYWYzOTA3NWYwYTE4NTE5OTUwYTRjODg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjMzMiw2ICsyMzMyLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNlbmRXaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmKTsKIAogICAg
IFdlYldoZWVsRXZlbnRDb2FsZXNjZXImIHdoZWVsRXZlbnRDb2FsZXNjZXIoKTsKKyAgICBib29s
IHNob3VsZENvYWxlc2NlV2hlZWxFdmVudHNEdXJpbmdEZWNlbGVyYXRpb24oKSBjb25zdDsKIAog
I2lmIEhBVkUoQ1ZESVNQTEFZTElOSykKICAgICB2b2lkIHdoZWVsRXZlbnRIeXN0ZXJlc2lzVXBk
YXRlZChQQUw6Okh5c3RlcmVzaXNTdGF0ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428704</attachid>
            <date>2021-05-14 20:28:25 -0700</date>
            <delta_ts>2021-05-17 11:00:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225834-20210514202824.patch</filename>
            <type>text/plain</type>
            <size>9238</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNiMThhMzRjY2NmMmE3ZGIx
OWQ3YmZlYTk2MjkzNThlMjhhYjAwNGUuLjNlODMyNjg5NWUwMDZiMTUzOTc2M2Q5OThmNDU3Y2Zk
MjIyZjk5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMDUtMTQgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgd2hlZWwgZXZl
bnRzIHRvIGJlIGNvYWxlc2NlZCBkdXJpbmcgc2Nyb2xsIGRlY2VsZXJhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODM0CisgICAgICAgIDxy
ZGFyOi8vNzA0MDI1MTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2hlbiBzY3JvbGxpbmcgc2xvd3MgZG93biB0b3dhcmRzIHRoZSB0YWlsIGVuZCBv
ZiBhIG1vbWVudHVtIHNjcm9sbCwgd2UgY2FuIHJlZHVjZSBvdXIKKyAgICAgICAgY29tbWl0IGZy
ZXF1ZW5jeSB0byBzYXZlIHBvd2VyLCBidXQgd2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gZGlz
cGxheXMgd2hvc2UgcmVmcmVzaCByYXRlCisgICAgICAgIGlzIGhpZ2hlciB0aGFuIHRoZSBkZWZh
dWx0ICJ1cGRhdGUgcmVuZGVyaW5nIiBmcmVxdWVuY3kuCisKKyAgICAgICAgV2UgZG8gdGhpcyBi
eSBsZXZlcmFnaW5nIHRoZSBleGlzdGluZyBXZWJXaGVlbEV2ZW50Q29hbGVzY2VyLCB3aGljaCBj
b2FsZXNjZXMgZXZlbnRzCisgICAgICAgIGluIHRoZSBVSSBwcm9jZXNzLiBJdCB0cmFja3MgdGlt
ZSBzaW5jZSBwcmV2aW91cyBldmVudCwgYW5kIGNvYWxlc2NlcyB3aGVuIHRoZQorICAgICAgICBp
bnN0YW50YW5lb3VzIHZlbG9jaXR5IGlzIGxlc3MgdGhhbiAzMjAgcG9pbnRzIHBlciBzZWNvbmQg
KG1hdGNoaW5nIG90aGVyIGZyYW1ld29ya3MKKyAgICAgICAgb24gdGhlIHN5c3RlbSkuCisKKyAg
ICAgICAgV2ViV2hlZWxFdmVudENvYWxlc2NlciBuZWVkcyB0byBrbm93IHdoZW4gdG8gZW5hYmxl
IGNvYWxlc2NpbmcsIHdoaWNoIGl0IGNvbXB1dGVzCisgICAgICAgIG9uIGNyZWF0aW9uLCBhbmQg
d2hlbiB0aGUgd2luZG93IGlzIG1vdmVkIHRvIGEgZGlmZmVyZW50IHNjcmVlbiB3aXRoIHBvdGVu
dGlhbGx5CisgICAgICAgIGEgZGlmZmVyZW50IHJlZnJlc2ggcmF0ZS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJXaGVlbEV2ZW50Q29hbGVzY2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hl
ZWxFdmVudENvYWxlc2Nlcjo6aXNJbk1vbWVudHVtUGhhc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJXaGVlbEV2ZW50Q29hbGVzY2VyOjpzaG91bGREaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKiBT
aGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVl
bEV2ZW50Q29hbGVzY2VyOjpzaG91bGRDb2FsZXNjZUV2ZW50c0R1cmluZ0RlY2VsZXJhdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnRDb2FsZXNjZXI6OnNldFNob3Vs
ZENvYWxlc2NlRXZlbnRzRHVyaW5nRGVjZWxlcmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aGVlbEV2
ZW50Q29hbGVzY2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG91bGRDb2Fs
ZXNjZVdoZWVsRXZlbnRzRHVyaW5nRGVjZWxlcmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKwogMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBGaWxlU3lzdGVtOjpoYXJkTGlua0NvdW50
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnRDb2FsZXNj
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5jcHAK
aW5kZXggMTIwZGIwNjI1MDVkOGY3ZGEzYzQzZTk2ODQwMjFlMDg5MWJhYmRlMS4uZGEyNGMzMzZl
OWViNjg0YTAyYTk1N2VmOTVmOGM4ODI0YzRmZjg2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2luY2x1
ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQW5pbWF0aW9uRnJh
bWVSYXRlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTg2LDYgKzg3LDExIEBAIFdlYldoZWVsRXZlbnQgV2ViV2hlZWxFdmVudENv
YWxlc2Nlcjo6Y29hbGVzY2UoY29uc3QgV2ViV2hlZWxFdmVudCYgYSwgY29uc3QgV2ViCiAjZW5k
aWYKIH0KIAorYm9vbCBXZWJXaGVlbEV2ZW50Q29hbGVzY2VyOjppc01vbWVudHVtUGhhc2VFdmVu
dChjb25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkKK3sKKyAgICByZXR1cm4gZXZlbnQucGhhc2Uo
KSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhhc2VOb25lICYmIGV2ZW50Lm1vbWVudHVtUGhh
c2UoKSA9PSBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhhc2VDaGFuZ2VkOworfQorCiBib29sIFdl
YldoZWVsRXZlbnRDb2FsZXNjZXI6OnNob3VsZERpc3BhdGNoRXZlbnROb3coY29uc3QgV2ViV2hl
ZWxFdmVudCYgZXZlbnQpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtMTM1LDEwICsx
NDEsMjYgQEAgT3B0aW9uYWw8V2ViV2hlZWxFdmVudD4gV2ViV2hlZWxFdmVudENvYWxlc2Nlcjo6
bmV4dEV2ZW50VG9EaXNwYXRjaCgpCiAKIGJvb2wgV2ViV2hlZWxFdmVudENvYWxlc2Nlcjo6c2hv
dWxkRGlzcGF0Y2hFdmVudChjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKIHsKLSAg
ICBMT0dfV0lUSF9TVFJFQU0oV2hlZWxFdmVudHMsIHN0cmVhbSA8PCAiV2ViV2hlZWxFdmVudENv
YWxlc2Nlcjo6c2hvdWxkRGlzcGF0Y2hFdmVudCAiIDw8IGV2ZW50IDw8ICIgKCIgPDwgbV93aGVl
bEV2ZW50UXVldWUuc2l6ZSgpIDw8ICIgZXZlbnRzIGluIHRoZSBxdWV1ZSwgIiA8PCBtX2V2ZW50
c0JlaW5nUHJvY2Vzc2VkLnNpemUoKSA8PCAiIGV2ZW50IHNlcXVlbmNlcyBiZWluZyBwcm9jZXNz
ZWQpIik7CisgICAgTE9HX1dJVEhfU1RSRUFNKFdoZWVsRXZlbnRzLCBzdHJlYW0gPDwgIldlYldo
ZWVsRXZlbnRDb2FsZXNjZXI6OnNob3VsZERpc3BhdGNoRXZlbnQgIiA8PCBldmVudCA8PCAiICgi
IDw8IG1fd2hlZWxFdmVudFF1ZXVlLnNpemUoKSA8PCAiIGV2ZW50cyBpbiB0aGUgcXVldWUsICIg
PDwgbV9ldmVudHNCZWluZ1Byb2Nlc3NlZC5zaXplKCkgPDwgIiBldmVudCBzZXF1ZW5jZXMgYmVp
bmcgcHJvY2Vzc2VkLCBjb2FsZXNjZSBkdXJpbmcgZGVjbGVyYXRpb24gIiA8PCBtX3Nob3VsZENv
YWxlc2NlRXZlbnRzRHVyaW5nRGVjZWxlcmF0aW9uIDw8ICIpIik7CiAKICAgICBtX3doZWVsRXZl
bnRRdWV1ZS5hcHBlbmQoZXZlbnQpOwogCisgICAgYXV0byBsYXN0RXZlbnRJbnRlcnZhbCA9IGV2
ZW50LnRpbWVzdGFtcCgpIC0gbV9sYXN0RXZlbnRUaW1lOworICAgIG1fbGFzdEV2ZW50VGltZSA9
IGV2ZW50LnRpbWVzdGFtcCgpOworCisgICAgaWYgKGlzTW9tZW50dW1QaGFzZUV2ZW50KGV2ZW50
KSAmJiBzaG91bGRDb2FsZXNjZUV2ZW50c0R1cmluZ0RlY2VsZXJhdGlvbigpICYmIGxhc3RFdmVu
dEludGVydmFsKSB7CisgICAgICAgIGNvbnN0ZXhwciBkb3VibGUgbW9tZW50dW1WZWxvY2l0eUV2
ZW50RnJlcXVlbmN5UmVkdWN0aW9uVGhyZWFzaG9sZCA9IDMyMC4wOyAvLyBQb2ludHMgcGVyIHNl
Y29uZC4KKyAgICAgICAgYXV0byBpbnN0YW50YW5lb3VzVmVsb2NpdHkgPSBzdGQ6Om1heChzdGQ6
OmFicyhldmVudC5kZWx0YSgpLndpZHRoKCkpLCBzdGQ6OmFicyhldmVudC5kZWx0YSgpLmhlaWdo
dCgpKSkgLyBsYXN0RXZlbnRJbnRlcnZhbC5zZWNvbmRzKCk7CisKKyAgICAgICAgY29uc3RleHBy
IGF1dG8gbWF4Q29hbGVzY2luZ0ludGVydmFsID0gV2ViQ29yZTo6RnVsbFNwZWVkQW5pbWF0aW9u
SW50ZXJ2YWw7CisgICAgICAgIGF1dG8gbGFzdERpc3BhdGNoZWRFdmVudEludGVydmFsID0gZXZl
bnQudGltZXN0YW1wKCkgLSBtX2xhc3REaXNwYXRjaGVkRXZlbnRUaW1lOworCisgICAgICAgIGlm
IChpbnN0YW50YW5lb3VzVmVsb2NpdHkgPCBtb21lbnR1bVZlbG9jaXR5RXZlbnRGcmVxdWVuY3lS
ZWR1Y3Rpb25UaHJlYXNob2xkICYmIGxhc3REaXNwYXRjaGVkRXZlbnRJbnRlcnZhbCA8IG1heENv
YWxlc2NpbmdJbnRlcnZhbCkgeworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFdoZWVsRXZl
bnRzLCBzdHJlYW0gPDwgIiBjb2FsZXNjZWQgZXZlbnQgdGhhdCBjYW1lIHdpdGhpbiAiIDw8IGxh
c3REaXNwYXRjaGVkRXZlbnRJbnRlcnZhbC5taWxsaXNlY29uZHMoKSA8PCAiIG9mIHByZXZpb3Vz
IGRpc3BhdGNoIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9
CisKICAgICBpZiAoIW1fZXZlbnRzQmVpbmdQcm9jZXNzZWQuaXNFbXB0eSgpKSB7CiAgICAgICAg
IGlmICghc2hvdWxkRGlzcGF0Y2hFdmVudE5vdyhtX3doZWVsRXZlbnRRdWV1ZS5sYXN0KCkpKSB7
CiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oV2hlZWxFdmVudHMsIHN0cmVhbSA8PCAiV2Vi
V2hlZWxFdmVudENvYWxlc2Nlcjo6c2hvdWxkRGlzcGF0Y2hFdmVudCAtICAiIDw8IG1fd2hlZWxF
dmVudFF1ZXVlLnNpemUoKSA8PCAiIGV2ZW50cyBxdWV1ZWQ7IG5vdCBkaXNwYXRjaGluZyIpOwpA
QCAtMTQ3LDcgKzE2OSw4IEBAIGJvb2wgV2ViV2hlZWxFdmVudENvYWxlc2Nlcjo6c2hvdWxkRGlz
cGF0Y2hFdmVudChjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVuCiAgICAgICAgIC8vIFRo
ZSBxdWV1ZSBoYXMgdG9vIG1hbnkgd2hlZWwgZXZlbnRzLCBzbyBwdXNoIGEgbmV3IGV2ZW50Lgog
ICAgICAgICAvLyBGSVhNRTogVGhpcyBsb2dpYyBpcyBjb25mdXNpbmcsIGFuZCBwb3NzaWJseSBu
b3QgbmVjZXNzYXJ5LgogICAgIH0KLQorICAgIAorICAgIG1fbGFzdERpc3BhdGNoZWRFdmVudFRp
bWUgPSBldmVudC50aW1lc3RhbXAoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudENvYWxlc2Nlci5oCmluZGV4IGU5ZWRkZjQyMmNh
OGRlYjYyOGQ4Mjc0ZmM0ZGExNWJhNzI5Mjk3NTEuLjM1Y2RjNzYwMDU5ZDg3OWE4OTZlNTM0ZWIy
NmQ4ZTc2YTY0ZmI0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVs
RXZlbnRDb2FsZXNjZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50
Q29hbGVzY2VyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2
ZW50LmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2Mu
aD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAg
LTM3LDExICszOCwxNCBAQCBwdWJsaWM6CiAgICAgLy8gSWYgdGhpcyByZXR1cm5zIHRydWUsIHVz
ZSBuZXh0RXZlbnRUb0Rpc3BhdGNoKCkgdG8gZ2V0IHRoZSBldmVudCB0byBkaXNwYXRjaC4KICAg
ICBib29sIHNob3VsZERpc3BhdGNoRXZlbnQoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpOwog
ICAgIE9wdGlvbmFsPFdlYldoZWVsRXZlbnQ+IG5leHRFdmVudFRvRGlzcGF0Y2goKTsKLSAgICAK
KwogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQgdGFrZU9sZGVzdEV2ZW50QmVpbmdQcm9jZXNzZWQo
KTsKIAogICAgIGJvb2wgaGFzRXZlbnRzQmVpbmdQcm9jZXNzZWQoKSBjb25zdCB7IHJldHVybiAh
bV9ldmVudHNCZWluZ1Byb2Nlc3NlZC5pc0VtcHR5KCk7IH0KICAgICAKKyAgICBib29sIHNob3Vs
ZENvYWxlc2NlRXZlbnRzRHVyaW5nRGVjZWxlcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRDb2FsZXNjZUV2ZW50c0R1cmluZ0RlY2VsZXJhdGlvbjsgfQorICAgIHZvaWQgc2V0U2hvdWxk
Q29hbGVzY2VFdmVudHNEdXJpbmdEZWNlbGVyYXRpb24oYm9vbCBzaG91bGRDb2Fsc2NlKSB7IG1f
c2hvdWxkQ29hbGVzY2VFdmVudHNEdXJpbmdEZWNlbGVyYXRpb24gPSBzaG91bGRDb2Fsc2NlOyB9
CisKICAgICB2b2lkIGNsZWFyKCk7CiAKIHByaXZhdGU6CkBAIC01MCwxMCArNTQsMTYgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgYm9vbCBjYW5Db2FsZXNjZShjb25zdCBXZWJXaGVlbEV2ZW50Jiwg
Y29uc3QgV2ViV2hlZWxFdmVudCYpOwogICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNvYWxlc2Nl
KGNvbnN0IFdlYldoZWVsRXZlbnQmLCBjb25zdCBXZWJXaGVlbEV2ZW50Jik7CiAKKyAgICBzdGF0
aWMgYm9vbCBpc01vbWVudHVtUGhhc2VFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50Jik7CisKICAg
ICBib29sIHNob3VsZERpc3BhdGNoRXZlbnROb3coY29uc3QgV2ViV2hlZWxFdmVudCYpIGNvbnN0
OwogCiAgICAgRGVxdWU8TmF0aXZlV2ViV2hlZWxFdmVudCwgMj4gbV93aGVlbEV2ZW50UXVldWU7
CiAgICAgRGVxdWU8c3RkOjp1bmlxdWVfcHRyPENvYWxlc2NlZEV2ZW50U2VxdWVuY2U+PiBtX2V2
ZW50c0JlaW5nUHJvY2Vzc2VkOworCisgICAgV2FsbFRpbWUgbV9sYXN0RXZlbnRUaW1lOworICAg
IFdhbGxUaW1lIG1fbGFzdERpc3BhdGNoZWRFdmVudFRpbWU7CisgICAgYm9vbCBtX3Nob3VsZENv
YWxlc2NlRXZlbnRzRHVyaW5nRGVjZWxlcmF0aW9uIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggYTQ1YjAyZTExZDNmNDgwZjAzMTM3YTVhMDg1NTI1MWJmNmE2ZGYzNC4uNjdmZjY5NjY0NDZk
MThkMDU4ODg3ZWY1MWVlYzI5MmFkYjY4ZjNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0yODEzLDEyICsyODEzLDI3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpzZW5kV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkKIAogV2ViV2hlZWxF
dmVudENvYWxlc2NlciYgV2ViUGFnZVByb3h5Ojp3aGVlbEV2ZW50Q29hbGVzY2VyKCkKIHsKLSAg
ICBpZiAoIW1fd2hlZWxFdmVudENvYWxlc2NlcikKKyAgICBpZiAoIW1fd2hlZWxFdmVudENvYWxl
c2NlcikgewogICAgICAgICBtX3doZWVsRXZlbnRDb2FsZXNjZXIgPSBtYWtlVW5pcXVlPFdlYldo
ZWVsRXZlbnRDb2FsZXNjZXI+KCk7CisgICAgICAgIG1fd2hlZWxFdmVudENvYWxlc2Nlci0+c2V0
U2hvdWxkQ29hbGVzY2VFdmVudHNEdXJpbmdEZWNlbGVyYXRpb24oc2hvdWxkQ29hbGVzY2VXaGVl
bEV2ZW50c0R1cmluZ0RlY2VsZXJhdGlvbigpKTsKKyAgICB9CiAKICAgICByZXR1cm4gKm1fd2hl
ZWxFdmVudENvYWxlc2NlcjsKIH0KIAorYm9vbCBXZWJQYWdlUHJveHk6OnNob3VsZENvYWxlc2Nl
V2hlZWxFdmVudHNEdXJpbmdEZWNlbGVyYXRpb24oKSBjb25zdAoreworI2lmIEhBVkUoQ1ZESVNQ
TEFZTElOSykKKyAgICBpZiAoIW1fZGlzcGxheUlEKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBhdXRvIGZyYW1lc1BlclNlY29uZCA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5ub21p
bmFsRnJhbWVzUGVyU2Vjb25kRm9yRGlzcGxheSgqbV9kaXNwbGF5SUQpOworICAgIHJldHVybiBm
cmFtZXNQZXJTZWNvbmQgPiBXZWJDb3JlOjpGdWxsU3BlZWRGcmFtZXNQZXJTZWNvbmQ7CisjZWxz
ZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiBib29sIFdlYlBhZ2VQcm94eTo6aGFz
UXVldWVkS2V5RXZlbnQoKSBjb25zdAogewogICAgIHJldHVybiAhbV9rZXlFdmVudFF1ZXVlLmlz
RW1wdHkoKTsKQEAgLTM4MzMsNiArMzg0OCw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aW5kb3dT
Y3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBPcHRpb25hbDx1CiB7
CiAgICAgbV9kaXNwbGF5SUQgPSBkaXNwbGF5SUQ7CiAKKyAgICBpZiAobV93aGVlbEV2ZW50Q29h
bGVzY2VyKQorICAgICAgICBtX3doZWVsRXZlbnRDb2FsZXNjZXItPnNldFNob3VsZENvYWxlc2Nl
RXZlbnRzRHVyaW5nRGVjZWxlcmF0aW9uKHNob3VsZENvYWxlc2NlV2hlZWxFdmVudHNEdXJpbmdE
ZWNlbGVyYXRpb24oKSk7CisKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAg
IHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAxZTIz
OTgxYzU3ZWEyZjE2NzcyNzg3ZTc3ZWM4ODg2NDk1MDFkZTMyLi41OGFkYWI5YmViZDgzNmFkYWYz
OTA3NWYwYTE4NTE5OTUwYTRjODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMjMzMiw2ICsyMzMyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRXaGVlbEV2
ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmKTsKIAogICAgIFdlYldoZWVsRXZlbnRDb2FsZXNjZXIm
IHdoZWVsRXZlbnRDb2FsZXNjZXIoKTsKKyAgICBib29sIHNob3VsZENvYWxlc2NlV2hlZWxFdmVu
dHNEdXJpbmdEZWNlbGVyYXRpb24oKSBjb25zdDsKIAogI2lmIEhBVkUoQ1ZESVNQTEFZTElOSykK
ICAgICB2b2lkIHdoZWVsRXZlbnRIeXN0ZXJlc2lzVXBkYXRlZChQQUw6Okh5c3RlcmVzaXNTdGF0
ZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>