<?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>197779</bug_id>
          
          <creation_ts>2019-05-10 09:14:44 -0700</creation_ts>
          <short_desc>Using Web Share API preceded by an AJAX call</short_desc>
          <delta_ts>2020-01-07 17:07:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>Safari 12</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="Mendel">mkonikov</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bdakin</cc>
    
    <cc>benjamin.schiller.mail</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1535013</commentid>
    <comment_count>0</comment_count>
    <who name="Mendel">mkonikov</who>
    <bug_when>2019-05-10 09:14:44 -0700</bug_when>
    <thetext>When users click the share button on our paywalled site, we generate a token via an async call that allows the people clicking on the share link to bypass the paywall.

I&apos;ve added support for Web Share API first calling the token before triggering navigator.share - along these lines:

fetchCallForLink()
  .then((url) =&gt; {
    navigator.share({
      title: &apos;Test Title&apos;,
      url,
    });
This is working fine on Chrome / Android which supports Web Share.

However on Safari, I am getting a not allowed error.

&gt;The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission

(This only happens on the first share attempt as I save the response to the window and therefore on subsequent clicks it avoids the AJAX call and works just fine.)

Because of the number of readers we have and the small number that actually use the share option, it would be expensive to make the AJAX call for ever page load (vs. only when user expresses intent to share).


Example: https://mkonikov.com/web-share-testing/ I&apos;ve added a toggle to share with or without fetching first. This share fails only when fetch is enabled. (or with a setTimeout of over 1000ms - though as seen in the example, it fails immediately if share is preceded by an AJAX/fetch call)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535478</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-12 14:57:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/50708309&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535630</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-13 09:05:55 -0700</bug_when>
    <thetext>This is likely the user-gesture check. Is that supposed to propagate through fetch()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535646</commentid>
    <comment_count>3</comment_count>
    <who name="Mendel">mkonikov</who>
    <bug_when>2019-05-13 09:58:17 -0700</bug_when>
    <thetext>That is my assumption. Though I would hope there would be a way to propagate through the fetch (as is necessary in my situation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535743</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-13 13:16:59 -0700</bug_when>
    <thetext>There is not a way to propagate a user gesture through fetch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1536800</commentid>
    <comment_count>5</comment_count>
    <who name="Mendel">mkonikov</who>
    <bug_when>2019-05-16 08:00:27 -0700</bug_when>
    <thetext>Is this a V1 implementation meant to be improved on?
I assume it&apos;s not against spec seeing it working in Chromium</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1543820</commentid>
    <comment_count>6</comment_count>
    <who name="Mendel">mkonikov</who>
    <bug_when>2019-06-11 13:51:56 -0700</bug_when>
    <thetext>Is it expected to remain that way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602053</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Schiller">benjamin.schiller.mail</who>
    <bug_when>2020-01-01 01:25:35 -0800</bug_when>
    <thetext>Same problem on iOS 12.4. Need a ajax call before navigator.share. It&apos;s a disproportionate effort to query data beforehand.

It&apos;s working without problems on Chrome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603036</commentid>
    <comment_count>8</comment_count>
    <who name="Mendel">mkonikov</who>
    <bug_when>2020-01-06 07:48:33 -0800</bug_when>
    <thetext>Ya :(

Hoping there&apos;s a way to to get Safari in line with other browsers to allow an async call before navaigator.&apos;sharing&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603041</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-06 08:10:59 -0800</bug_when>
    <thetext>Spec says that the relevant global object should have *transient* activation:
[1] https://w3c.github.io/web-share/#dom-navigator-share
[2] https://html.spec.whatwg.org/multipage/interaction.html#transient-activation

So basically, for a certain amount of time after a user gesture, the API should work. If our implementation requires a user gesture, then it is not aligned with the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603042</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-06 08:12:25 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #9)
&gt; Spec says that the relevant global object should have *transient* activation:
&gt; [1] https://w3c.github.io/web-share/#dom-navigator-share
&gt; [2]
&gt; https://html.spec.whatwg.org/multipage/interaction.html#transient-activation
&gt; 
&gt; So basically, for a certain amount of time after a user gesture, the API
&gt; should work. If our implementation requires a user gesture, then it is not
&gt; aligned with the spec.

From Navigator::share():
    if (!UserGestureIndicator::processingUserGesture()) {
        promise-&gt;reject(NotAllowedError);
        return;
    }

This is not quite right indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603044</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-06 08:15:32 -0800</bug_when>
    <thetext>I can fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603049</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-06 08:32:58 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #11)
&gt; I can fix this.

This apparently needs some internal discussion as the current behavior was intentional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603140</commentid>
    <comment_count>13</comment_count>
    <who name="Mendel">mkonikov</who>
    <bug_when>2020-01-06 10:55:34 -0800</bug_when>
    <thetext>Thank you Chris!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603590</commentid>
    <comment_count>14</comment_count>
      <attachid>386977</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-07 09:04:47 -0800</bug_when>
    <thetext>Created attachment 386977
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603623</commentid>
    <comment_count>15</comment_count>
      <attachid>386983</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-07 10:04:44 -0800</bug_when>
    <thetext>Created attachment 386983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603884</commentid>
    <comment_count>16</comment_count>
      <attachid>386983</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-07 17:07:33 -0800</bug_when>
    <thetext>Comment on attachment 386983
Patch

Clearing flags on attachment: 386983

Committed r254178: &lt;https://trac.webkit.org/changeset/254178&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603885</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-07 17:07:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386977</attachid>
            <date>2020-01-07 09:04:47 -0800</date>
            <delta_ts>2020-01-07 10:04:43 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>197779_transientUserActivation2_wip.patch</filename>
            <type>text/plain</type>
            <size>7701</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCmluZGV4IDBlYzIw
YjE5NGNkLi40YzBjNjNlNjQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJH
ZXN0dXJlSW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJ
bmRpY2F0b3IuY3BwCkBAIC01Niw4ICs1Niw4IEBAIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2Vy
R2VzdHVyZUluZGljYXRvcihPcHRpb25hbDxQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZT4KICAg
ICBpZiAoc3RhdGUpCiAgICAgICAgIGN1cnJlbnRUb2tlbigpID0gVXNlckdlc3R1cmVUb2tlbjo6
Y3JlYXRlKHN0YXRlLnZhbHVlKCksIGdlc3R1cmVUeXBlKTsKIAotICAgIGlmIChkb2N1bWVudCAm
JiBjdXJyZW50VG9rZW4oKS0+cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKLSAgICAgICAgZG9j
dW1lbnQtPnVwZGF0ZUxhc3RIYW5kbGVkVXNlckdlc3R1cmVUaW1lc3RhbXAoTW9ub3RvbmljVGlt
ZTo6bm93KCkpOworICAgIGlmIChkb2N1bWVudCAmJiBjdXJyZW50VG9rZW4oKS0+cHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCkgJiYgc3RhdGUpIHsKKyAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxhc3RI
YW5kbGVkVXNlckdlc3R1cmVUaW1lc3RhbXAoY3VycmVudFRva2VuKCktPnN0YXJ0VGltZSgpKTsK
ICAgICAgICAgaWYgKHByb2Nlc3NJbnRlcmFjdGlvblN0eWxlID09IFByb2Nlc3NJbnRlcmFjdGlv
blN0eWxlOjpJbW1lZGlhdGUpCiAgICAgICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hh
cmVkKCkubG9nVXNlckludGVyYWN0aW9uV2l0aFJlZHVjZWRUaW1lUmVzb2x1dGlvbihkb2N1bWVu
dC0+dG9wRG9jdW1lbnQoKSk7CiAgICAgICAgIGRvY3VtZW50LT50b3BEb2N1bWVudCgpLnNldFVz
ZXJEaWRJbnRlcmFjdFdpdGhQYWdlKHRydWUpOwpAQCAtNjcsNiArNjcsOSBAQCBVc2VyR2VzdHVy
ZUluZGljYXRvcjo6VXNlckdlc3R1cmVJbmRpY2F0b3IoT3B0aW9uYWw8UHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlU3RhdGU+CiAgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5zZXRIYXNIYWRVc2VySW50
ZXJhY3Rpb24oKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRv
KiB3aW5kb3cgPSBkb2N1bWVudC0+ZG9tV2luZG93KCkpCisgICAgICAgICAgICB3aW5kb3ctPm5v
dGlmeUFjdGl2YXRlZChjdXJyZW50VG9rZW4oKS0+c3RhcnRUaW1lKCkpOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaAppbmRleCBjY2E0MjQwZWRj
ZS4uODU4M2JmYzYzMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVy
ZUluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Vc2VyR2VzdHVyZUluZGljYXRv
ci5oCkBAIC04OCw2ICs4OCw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fc3RhcnRUaW1l
ICsgZXhwaXJhdGlvbkludGVydmFsIDwgTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgfQogCisg
ICAgTW9ub3RvbmljVGltZSBzdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0VGltZTsg
fQorCiBwcml2YXRlOgogICAgIFVzZXJHZXN0dXJlVG9rZW4oUHJvY2Vzc2luZ1VzZXJHZXN0dXJl
U3RhdGUgc3RhdGUsIFVzZXJHZXN0dXJlVHlwZSBnZXN0dXJlVHlwZSkKICAgICAgICAgOiBtX3N0
YXRlKHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGE1M2YzZWMwZWM4Li41
NGE4ODJmNjY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTQ3LDYgKzE0Nyw4
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCitz
dGF0aWMgY29uc3QgU2Vjb25kcyB0cmFuc2llbnRBY3RpdmF0aW9uRHVyYXRpb24geyAyX3MgfTsK
KwogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERPTVdpbmRvdyk7CiAKIGNsYXNzIFBvc3RN
ZXNzYWdlVGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKQEAgLTE0ODgsMTUgKzE0OTAsNzUgQEAg
V2luZG93UHJveHkqIERPTVdpbmRvdzo6dG9wKCkgY29uc3QKIAogU3RyaW5nIERPTVdpbmRvdzo6
b3JpZ2luKCkgY29uc3QKIHsKLSAgICBhdXRvIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsK
KyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgcmV0dXJuIGRvY3Vt
ZW50ID8gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkudG9TdHJpbmcoKSA6IGVtcHR5U3RyaW5n
KCk7CiB9CiAKK1NlY3VyaXR5T3JpZ2luKiBET01XaW5kb3c6OnNlY3VyaXR5T3JpZ2luKCkgY29u
c3QKK3sKKyAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgcmV0dXJu
IGRvY3VtZW50ID8gJmRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpIDogbnVsbHB0cjsKK30KKwog
RG9jdW1lbnQqIERPTVdpbmRvdzo6ZG9jdW1lbnQoKSBjb25zdAogewogICAgIHJldHVybiBkb3du
Y2FzdDxEb2N1bWVudD4oQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7CiB9CiAKKy8vIFdoZW4gdGhlIGN1cnJlbnQgaGlnaCByZXNvbHV0aW9uIHRp
bWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBsYXN0IGFjdGl2YXRpb24gdGltZXN0
YW1wIGluIFcsIGFuZAorLy8gbGVzcyB0aGFuIHRoZSBsYXN0IGFjdGl2YXRpb24gdGltZXN0YW1w
IGluIFcgcGx1cyB0aGUgdHJhbnNpZW50IGFjdGl2YXRpb24gZHVyYXRpb24sIHRoZW4gVyBpcyBz
YWlkIHRvCisvLyBoYXZlIHRyYW5zaWVudCBhY3RpdmF0aW9uLiAoaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2UvaW50ZXJhY3Rpb24uaHRtbCN0cmFuc2llbnQtYWN0aXZhdGlv
bikKK2Jvb2wgRE9NV2luZG93OjpoYXNUcmFuc2llbnRBY3RpdmF0aW9uKCkgY29uc3QKK3sKKyAg
ICBhdXRvIG5vdyA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIHJldHVybiBub3cgPj0gbV9s
YXN0QWN0aXZhdGlvblRpbWVzdGFtcCAmJiBub3cgPCAobV9sYXN0QWN0aXZhdGlvblRpbWVzdGFt
cCArIHRyYW5zaWVudEFjdGl2YXRpb25EdXJhdGlvbik7Cit9CisKKy8vIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2ludGVyYWN0aW9uLmh0bWwjY29uc3VtZS11c2VyLWFj
dGl2YXRpb24KK2Jvb2wgRE9NV2luZG93Ojpjb25zdW1lVHJhbnNpZW50QWN0aXZhdGlvbigpCit7
CisgICAgaWYgKCFoYXNUcmFuc2llbnRBY3RpdmF0aW9uKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGZvciAoRnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKSA/ICZ0aGlzLT5mcmFt
ZSgpLT50cmVlKCkudG9wKCkgOiBudWxscHRyOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGF1dG8qIHdpbmRvdyA9IGZyYW1lLT53aW5kb3co
KTsKKyAgICAgICAgaWYgKCF3aW5kb3cgfHwgd2luZG93LT5sYXN0QWN0aXZhdGlvblRpbWVzdGFt
cCgpICE9IE1vbm90b25pY1RpbWU6OmluZmluaXR5KCkpCisgICAgICAgICAgICB3aW5kb3ctPnNl
dExhc3RBY3RpdmF0aW9uVGltZXN0YW1wKC1Nb25vdG9uaWNUaW1lOjppbmZpbml0eSgpKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2UvaW50ZXJhY3Rpb24uaHRtbCNhY3RpdmF0aW9uLW5vdGlmaWNhdGlvbgor
dm9pZCBET01XaW5kb3c6Om5vdGlmeUFjdGl2YXRlZChNb25vdG9uaWNUaW1lIGFjdGl2YXRpb25U
aW1lKQoreworICAgIHNldExhc3RBY3RpdmF0aW9uVGltZXN0YW1wKGFjdGl2YXRpb25UaW1lKTsK
KyAgICBpZiAoIWZyYW1lKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoRnJhbWUqIGFu
Y2VzdG9yID0gZnJhbWUoKSA/IGZyYW1lKCktPnRyZWUoKS5wYXJlbnQoKSA6IG51bGxwdHI7IGFu
Y2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT50cmVlKCkucGFyZW50KCkpIHsKKyAgICAgICAg
aWYgKGF1dG8qIHdpbmRvdyA9IGFuY2VzdG9yLT53aW5kb3coKSkKKyAgICAgICAgICAgIHdpbmRv
dy0+c2V0TGFzdEFjdGl2YXRpb25UaW1lc3RhbXAoYWN0aXZhdGlvblRpbWUpOworICAgIH0KKwor
ICAgIGF1dG8qIHNlY3VyaXR5T3JpZ2luID0gdGhpcy0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBp
ZiAoIXNlY3VyaXR5T3JpZ2luKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBkZXNjZW5k
YW50ID0gZnJhbWUoKTsKKyAgICB3aGlsZSAoKGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50LT50cmVl
KCkudHJhdmVyc2VOZXh0KGZyYW1lKCkpKSkgeworICAgICAgICBhdXRvKiBkZXNjZW5kYW50V2lu
ZG93ID0gZGVzY2VuZGFudC0+d2luZG93KCk7CisgICAgICAgIGlmICghZGVzY2VuZGFudFdpbmRv
dykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1dG8qIGRlc2NlbmRhbnRTZWN1
cml0eU9yaWdpbiA9IGRlc2NlbmRhbnRXaW5kb3ctPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgICAg
IGlmICghZGVzY2VuZGFudFNlY3VyaXR5T3JpZ2luIHx8ICFkZXNjZW5kYW50U2VjdXJpdHlPcmln
aW4tPmlzU2FtZU9yaWdpbkFzKCpzZWN1cml0eU9yaWdpbikpCisgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICBkZXNjZW5kYW50V2luZG93LT5zZXRMYXN0QWN0aXZhdGlvblRpbWVzdGFt
cChhY3RpdmF0aW9uVGltZSk7CisgICAgfQorfQorCiBTdHlsZU1lZGlhJiBET01XaW5kb3c6OnN0
eWxlTWVkaWEoKQogewogICAgIGlmICghbV9tZWRpYSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmlu
ZGV4IDhmMGQ5Yzk0ZTE3Li41ZjJiNGFhYTYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBA
IC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CiAjaW5j
bHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRl
IDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVz
cGFjZSBKU0MgewpAQCAtMTc2LDYgKzE3NywxMiBAQCBwdWJsaWM6CiAgICAgTmF2aWdhdG9yKiBv
cHRpb25hbE5hdmlnYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdG9yLmdldCgpOyB9CiAg
ICAgTmF2aWdhdG9yJiBjbGllbnRJbmZvcm1hdGlvbigpIHsgcmV0dXJuIG5hdmlnYXRvcigpOyB9
CiAKKyAgICB2b2lkIHNldExhc3RBY3RpdmF0aW9uVGltZXN0YW1wKE1vbm90b25pY1RpbWUgbGFz
dEFjdGl2YXRpb25UaW1lc3RhbXApIHsgbV9sYXN0QWN0aXZhdGlvblRpbWVzdGFtcCA9IGxhc3RB
Y3RpdmF0aW9uVGltZXN0YW1wOyB9CisgICAgTW9ub3RvbmljVGltZSBsYXN0QWN0aXZhdGlvblRp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdEFjdGl2YXRpb25UaW1lc3RhbXA7IH0KKyAg
ICB2b2lkIG5vdGlmeUFjdGl2YXRlZChNb25vdG9uaWNUaW1lKTsKKyAgICBib29sIGhhc1RyYW5z
aWVudEFjdGl2YXRpb24oKSBjb25zdDsKKyAgICBib29sIGNvbnN1bWVUcmFuc2llbnRBY3RpdmF0
aW9uKCk7CisKICAgICBXRUJDT1JFX0VYUE9SVCBMb2NhdGlvbiYgbG9jYXRpb24oKTsKICAgICB2
b2lkIHNldExvY2F0aW9uKERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBjb25zdCBVUkwmIGNvbXBs
ZXRlZFVSTCwgU2V0TG9jYXRpb25Mb2NraW5nID0gTG9ja0hpc3RvcnlCYXNlZE9uR2VzdHVyZVN0
YXRlKTsKIApAQCAtMjM0LDYgKzI0MSw3IEBAIHB1YmxpYzoKICAgICBXaW5kb3dQcm94eSogdG9w
KCkgY29uc3Q7CiAKICAgICBTdHJpbmcgb3JpZ2luKCkgY29uc3Q7CisgICAgU2VjdXJpdHlPcmln
aW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICAvLyBET00gTGV2ZWwgMiBBYnN0cmFj
dFZpZXcgSW50ZXJmYWNlCiAKQEAgLTQ2Myw2ICs0NzEsMTIgQEAgcHJpdmF0ZToKIAogICAgIG11
dGFibGUgUmVmUHRyPFBlcmZvcm1hbmNlPiBtX3BlcmZvcm1hbmNlOwogCisgICAgLy8gRm9yIHRo
ZSBwdXJwb3NlIG9mIHRyYWNraW5nIHVzZXIgYWN0aXZhdGlvbiwgZWFjaCBXaW5kb3cgVyBoYXMg
YSBsYXN0IGFjdGl2YXRpb24gdGltZXN0YW1wLiBUaGlzIGlzIGEgbnVtYmVyIGluZGljYXRpbmcg
dGhlIGxhc3QgdGltZSBXIGdvdAorICAgIC8vIGFuIGFjdGl2YXRpb24gbm90aWZpY2F0aW9uLiBJ
dCBjb3JyZXNwb25kcyB0byBhIERPTUhpZ2hSZXNUaW1lU3RhbXAgdmFsdWUgZXhjZXB0IGZvciB0
d28gY2FzZXM6IHBvc2l0aXZlIGluZmluaXR5IGluZGljYXRlcyB0aGF0IFcgaGFzIG5ldmVyCisg
ICAgLy8gYmVlbiBhY3RpdmF0ZWQsIHdoaWxlIG5lZ2F0aXZlIGluZmluaXR5IGluZGljYXRlcyB0
aGF0IGEgdXNlciBhY3RpdmF0aW9uLWdhdGVkIEFQSSBoYXMgY29uc3VtZWQgdGhlIGxhc3QgdXNl
ciBhY3RpdmF0aW9uIG9mIFcuIFRoZSBpbml0aWFsCisgICAgLy8gdmFsdWUgaXMgcG9zaXRpdmUg
aW5maW5pdHkuCisgICAgTW9ub3RvbmljVGltZSBtX2xhc3RBY3RpdmF0aW9uVGltZXN0YW1wIHsg
TW9ub3RvbmljVGltZTo6aW5maW5pdHkoKSB9OworCiAjaWYgRU5BQkxFKFVTRVJfTUVTU0FHRV9I
QU5ETEVSUykKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJLaXROYW1lc3BhY2U+IG1fd2Via2l0TmFt
ZXNwYWNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKaW5kZXggMWIyN2FlOTc4
YjIuLjI4NDg0ZGUwYjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCkBAIC0xMjcsNyAr
MTI3LDkgQEAgdm9pZCBOYXZpZ2F0b3I6OnNoYXJlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFNoYXJlRGF0YSBkYXRhLCBSZWY8RGVmZXIKICAgICAgICAgfQogICAgIH0KICAgICAK
LSAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkg
eworICAgIGF1dG8qIHdpbmRvdyA9IHRoaXMtPndpbmRvdygpOworICAgIC8vIE5vdGUgdGhhdCB0
aGUgc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBpbmRpY2F0ZSB3ZSBzaG91bGQgY29uc3VtZSB1c2Vy
IGFjdGl2YXRpb24uIFdlIGFyZSBpbnRlbnRpb25hbGx5IHN0cmljdGVyIGhlcmUuCisgICAgaWYg
KCF3aW5kb3cgfHwgIXdpbmRvdy0+Y29uc3VtZVRyYW5zaWVudEFjdGl2YXRpb24oKSkgewogICAg
ICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxsb3dlZEVycm9yKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386983</attachid>
            <date>2020-01-07 10:04:44 -0800</date>
            <delta_ts>2020-01-07 17:07:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197779-20200107100444.patch</filename>
            <type>text/plain</type>
            <size>19980</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUwZDE4MzI5MjZkNTQz
MDY5MGI5N2IxYTg5ZmE3M2UzZDRmNjg0NS4uM2Q2ODFhMzg1NDBmZTMxYTc4MjUzNGNlNTVhMzUy
NGZkZGVlMzlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTAxLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNpbmcgV2ViIFNoYXJlIEFQ
SSBwcmVjZWRlZCBieSBhbiBBSkFYIGNhbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5Nzc3OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTA3MDgz
MDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMg
cGVyIHRoZSBXZWIgU2hhcmUgc3BlY2lmaWNhdGlvbiwgbmF2aWdhdG9yLnNoYXJlKCkgaXMgc3Vw
cG9zZWQgdG8gcmVqZWN0IHRoZSBwcm9taXNlIHdpdGggYQorICAgICAgICAiTm90QWxsb3dlZEVy
cm9yIiBET01FeGNlcHRpb24gaWYgdGhlIHJlbGV2YW50IGdsb2JhbCBvYmplY3Qgb2YgdGhpcyBk
b2VzIG5vdCBoYXZlIHRyYW5zaWVudAorICAgICAgICBhY3RpdmF0aW9uIFsxXS4gSG93ZXZlciwg
b3VyIGltcGxlbWVudGF0aW9uIHdhcyBzdHJpY3RlciBhbmQgd291bGQgcmVqZWN0IHRoZSBwcm9t
aXNlIGlmIHdlCisgICAgICAgIGFyZSBub3QgY3VycmVudGx5IHByb2Nlc3NpbmcgYSB1c2VyLWdl
c3R1cmUuIFRoaXMgYmVoYXZpb3IgZGlkIG5vdCBtYXRjaCBDaHJvbWUgYW5kIGRvZXMgbm90Cisg
ICAgICAgIGFwcGVhciB0byBiZSBXZWIgY29tcGF0aWJsZS4KKworICAgICAgICBUbyBhZGRyZXNz
IHRoZSBpc3N1ZSwgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBjb25jZXB0IG9mIHRyYW5zaWVu
dCBhY3RpdmF0aW9uIFsyXSBpbiBXZWJLaXQKKyAgICAgICAgYW5kIHVzZXMgaXQgaW4gbmF2aWdh
dG9yLnNoYXJlKCkgdG8gbWF0Y2ggdGhlIHNwZWNpZmljYXRpb24gbW9yZSBjbG9zZWx5LiBOb3Rl
IHRoYXQgd2UgYXJlCisgICAgICAgIHN0aWxsIGEgYml0IHN0cmljdGVyIHRoYW4gdGhlIHNwZWNp
ZmljYXRpb24gYmVjYXVzZSBjYWxsaW5nIG5hdmlnYXRvci5zaGFyZSgpIHdpbGwgY3VycmVudGx5
CisgICAgICAgICJjb25zdW1lIHRoZSBhY3RpdmF0aW9uIiBbM10gdG8gcHJldmVudCB0aGUgSlMg
ZnJvbSBwcmVzZW50aW5nIHRoZSBzaGFyZSBzaGVldCBtb3JlIHRoYW4gb25jZQorICAgICAgICBi
YXNlZCBvbiBhIHNpbmdsZSBhY3RpdmF0aW9uLiBIb3dldmVyLCBvdXIgbmV3IGJlaGF2aW9yIGlz
IHN0aWxsIG1vcmUgcGVybWlzc2l2ZSBhbmQgbW9yZSBhbGlnbmVkCisgICAgICAgIHdpdGggQ2hy
b21lLgorCisgICAgICAgIFsxXSBodHRwczovL3czYy5naXRodWIuaW8vd2ViLXNoYXJlLyNkb20t
bmF2aWdhdG9yLXNoYXJlCisgICAgICAgIFsyXSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS9pbnRlcmFjdGlvbi5odG1sI3RyYW5zaWVudC1hY3RpdmF0aW9uCisgICAgICAg
IFszXSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9pbnRlcmFjdGlvbi5o
dG1sI2NvbnN1bWUtdXNlci1hY3RpdmF0aW9uCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvd2ViLXNo
YXJlL3NoYXJlLXRyYW5zaWVudC1hY3RpdmF0aW9uLWV4cGlyZWQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC93ZWItc2hhcmUvc2hhcmUtdHJhbnNpZW50LWFjdGl2YXRpb24uaHRtbAorCisgICAg
ICAgICogZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcDoKKyAgICAgICAgKiBkb20vVXNlckdl
c3R1cmVJbmRpY2F0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW46OnN0
YXJ0VGltZSBjb25zdCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dHJhbnNpZW50QWN0aXZhdGlvbkR1cmF0aW9uT3ZlcnJpZGVGb3JUZXN0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OnRyYW5zaWVudEFjdGl2YXRpb25EdXJhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6Om9yaWdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnNlY3VyaXR5T3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6b3ZlcnJpZGVUcmFuc2llbnRBY3RpdmF0aW9uRHVyYXRpb25Gb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6aGFzVHJhbnNpZW50QWN0aXZhdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNvbnN1bWVUcmFuc2llbnRBY3RpdmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6bm90aWZ5QWN0aXZhdGVkKToKKyAgICAg
ICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcjo6c2hhcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3Rl
bnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFRyYW5zaWVudEFjdGl2
YXRpb25EdXJhdGlvbik6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjAtMDEtMDcgIFJvYiBCdWlzICA8cmJ1aXNA
aWdhbGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUgbG9hZGVyL3dpbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Vc2VyR2VzdHVyZUluZGljYXRvci5jcHAKaW5kZXggMGVjMjBiMTk0Y2RkMTVhYmI1ZDQ3
M2NjMzcwOWQxNjk1N2I4OGI0Yi4uNGMwYzYzZTY0M2UyMDE2MzBmNzQyMmY5ZDBlZTYxZTA2ZmJk
YjNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwCkBA
IC01Niw4ICs1Niw4IEBAIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpVc2VyR2VzdHVyZUluZGljYXRv
cihPcHRpb25hbDxQcm9jZXNzaW5nVXNlckdlc3R1cmVTdGF0ZT4KICAgICBpZiAoc3RhdGUpCiAg
ICAgICAgIGN1cnJlbnRUb2tlbigpID0gVXNlckdlc3R1cmVUb2tlbjo6Y3JlYXRlKHN0YXRlLnZh
bHVlKCksIGdlc3R1cmVUeXBlKTsKIAotICAgIGlmIChkb2N1bWVudCAmJiBjdXJyZW50VG9rZW4o
KS0+cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKLSAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxh
c3RIYW5kbGVkVXNlckdlc3R1cmVUaW1lc3RhbXAoTW9ub3RvbmljVGltZTo6bm93KCkpOworICAg
IGlmIChkb2N1bWVudCAmJiBjdXJyZW50VG9rZW4oKS0+cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkg
JiYgc3RhdGUpIHsKKyAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxhc3RIYW5kbGVkVXNlckdlc3R1
cmVUaW1lc3RhbXAoY3VycmVudFRva2VuKCktPnN0YXJ0VGltZSgpKTsKICAgICAgICAgaWYgKHBy
b2Nlc3NJbnRlcmFjdGlvblN0eWxlID09IFByb2Nlc3NJbnRlcmFjdGlvblN0eWxlOjpJbW1lZGlh
dGUpCiAgICAgICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkubG9nVXNlcklu
dGVyYWN0aW9uV2l0aFJlZHVjZWRUaW1lUmVzb2x1dGlvbihkb2N1bWVudC0+dG9wRG9jdW1lbnQo
KSk7CiAgICAgICAgIGRvY3VtZW50LT50b3BEb2N1bWVudCgpLnNldFVzZXJEaWRJbnRlcmFjdFdp
dGhQYWdlKHRydWUpOwpAQCAtNjcsNiArNjcsOSBAQCBVc2VyR2VzdHVyZUluZGljYXRvcjo6VXNl
ckdlc3R1cmVJbmRpY2F0b3IoT3B0aW9uYWw8UHJvY2Vzc2luZ1VzZXJHZXN0dXJlU3RhdGU+CiAg
ICAgICAgICAgICAgICAgICAgIGZyYW1lLT5zZXRIYXNIYWRVc2VySW50ZXJhY3Rpb24oKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb2N1
bWVudC0+ZG9tV2luZG93KCkpCisgICAgICAgICAgICB3aW5kb3ctPm5vdGlmeUFjdGl2YXRlZChj
dXJyZW50VG9rZW4oKS0+c3RhcnRUaW1lKCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaAppbmRleCBjY2E0MjQwZWRjZTMxYzNlZTVmNzM4OWMx
NGE0YWE3Mzg0MzVlYTk5Li44NTgzYmZjNjMyMzc2NmM5YWM1NzVhNjg1OTUwZTQ3N2Q4MjY1ZDVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVXNlckdlc3R1cmVJbmRpY2F0b3IuaApAQCAtODgsNiAr
ODgsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3N0YXJ0VGltZSArIGV4cGlyYXRpb25J
bnRlcnZhbCA8IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIH0KIAorICAgIE1vbm90b25pY1Rp
bWUgc3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFRpbWU7IH0KKwogcHJpdmF0ZToK
ICAgICBVc2VyR2VzdHVyZVRva2VuKFByb2Nlc3NpbmdVc2VyR2VzdHVyZVN0YXRlIHN0YXRlLCBV
c2VyR2VzdHVyZVR5cGUgZ2VzdHVyZVR5cGUpCiAgICAgICAgIDogbV9zdGF0ZShzdGF0ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBhNTNmM2VjMGVjODA0MjgzOTZjYWZhNWNmNGE0
Mjg4OTk3NWMzNjFkLi40MDBkZWQ0MTUxOTVmYzA5ZDFhMmIxZjQ3YjdkMjk0NmE2OWRhODI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNDcsNiArMTQ3LDIxIEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCitzdGF0aWMgY29uc3Qg
U2Vjb25kcyBkZWZhdWx0VHJhbnNpZW50QWN0aXZhdGlvbkR1cmF0aW9uIHsgMl9zIH07CisKK3N0
YXRpYyBPcHRpb25hbDxTZWNvbmRzPiYgdHJhbnNpZW50QWN0aXZhdGlvbkR1cmF0aW9uT3ZlcnJp
ZGVGb3JUZXN0aW5nKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T3B0aW9uYWw8U2Vj
b25kcz4+IG92ZXJyaWRlRm9yVGVzdGluZzsKKyAgICByZXR1cm4gb3ZlcnJpZGVGb3JUZXN0aW5n
OworfQorCitzdGF0aWMgU2Vjb25kcyB0cmFuc2llbnRBY3RpdmF0aW9uRHVyYXRpb24oKQorewor
ICAgIGlmIChhdXRvIG92ZXJyaWRlID0gdHJhbnNpZW50QWN0aXZhdGlvbkR1cmF0aW9uT3ZlcnJp
ZGVGb3JUZXN0aW5nKCkpCisgICAgICAgIHJldHVybiAqb3ZlcnJpZGU7CisgICAgcmV0dXJuIGRl
ZmF1bHRUcmFuc2llbnRBY3RpdmF0aW9uRHVyYXRpb247Cit9CisKIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChET01XaW5kb3cpOwogCiBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyIDogcHVibGlj
IFRpbWVyQmFzZSB7CkBAIC0xNDg4LDE1ICsxNTAzLDgwIEBAIFdpbmRvd1Byb3h5KiBET01XaW5k
b3c6OnRvcCgpIGNvbnN0CiAKIFN0cmluZyBET01XaW5kb3c6Om9yaWdpbigpIGNvbnN0CiB7Ci0g
ICAgYXV0byBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgYXV0byogZG9jdW1lbnQg
PSB0aGlzLT5kb2N1bWVudCgpOwogICAgIHJldHVybiBkb2N1bWVudCA/IGRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpLnRvU3RyaW5nKCkgOiBlbXB0eVN0cmluZygpOwogfQogCitTZWN1cml0eU9y
aWdpbiogRE9NV2luZG93OjpzZWN1cml0eU9yaWdpbigpIGNvbnN0Cit7CisgICAgYXV0byogZG9j
dW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOworICAgIHJldHVybiBkb2N1bWVudCA/ICZkb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKSA6IG51bGxwdHI7Cit9CisKIERvY3VtZW50KiBET01XaW5kb3c6
OmRvY3VtZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCit2
b2lkIERPTVdpbmRvdzo6b3ZlcnJpZGVUcmFuc2llbnRBY3RpdmF0aW9uRHVyYXRpb25Gb3JUZXN0
aW5nKE9wdGlvbmFsPFNlY29uZHM+JiYgb3ZlcnJpZGUpCit7CisgICAgdHJhbnNpZW50QWN0aXZh
dGlvbkR1cmF0aW9uT3ZlcnJpZGVGb3JUZXN0aW5nKCkgPSBXVEZNb3ZlKG92ZXJyaWRlKTsKK30K
KworLy8gV2hlbiB0aGUgY3VycmVudCBoaWdoIHJlc29sdXRpb24gdGltZSBpcyBncmVhdGVyIHRo
YW4gb3IgZXF1YWwgdG8gdGhlIGxhc3QgYWN0aXZhdGlvbiB0aW1lc3RhbXAgaW4gVywgYW5kCisv
LyBsZXNzIHRoYW4gdGhlIGxhc3QgYWN0aXZhdGlvbiB0aW1lc3RhbXAgaW4gVyBwbHVzIHRoZSB0
cmFuc2llbnQgYWN0aXZhdGlvbiBkdXJhdGlvbiwgdGhlbiBXIGlzIHNhaWQgdG8KKy8vIGhhdmUg
dHJhbnNpZW50IGFjdGl2YXRpb24uIChodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9pbnRlcmFjdGlvbi5odG1sI3RyYW5zaWVudC1hY3RpdmF0aW9uKQorYm9vbCBET01XaW5k
b3c6Omhhc1RyYW5zaWVudEFjdGl2YXRpb24oKSBjb25zdAoreworICAgIGF1dG8gbm93ID0gTW9u
b3RvbmljVGltZTo6bm93KCk7CisgICAgcmV0dXJuIG5vdyA+PSBtX2xhc3RBY3RpdmF0aW9uVGlt
ZXN0YW1wICYmIG5vdyA8IChtX2xhc3RBY3RpdmF0aW9uVGltZXN0YW1wICsgdHJhbnNpZW50QWN0
aXZhdGlvbkR1cmF0aW9uKCkpOworfQorCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS9pbnRlcmFjdGlvbi5odG1sI2NvbnN1bWUtdXNlci1hY3RpdmF0aW9uCitib29s
IERPTVdpbmRvdzo6Y29uc3VtZVRyYW5zaWVudEFjdGl2YXRpb24oKQoreworICAgIGlmICghaGFz
VHJhbnNpZW50QWN0aXZhdGlvbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBmb3Ig
KEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkgPyAmdGhpcy0+ZnJhbWUoKS0+dHJlZSgpLnRv
cCgpIDogbnVsbHB0cjsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQo
KSkgeworICAgICAgICBhdXRvKiB3aW5kb3cgPSBmcmFtZS0+d2luZG93KCk7CisgICAgICAgIGlm
ICghd2luZG93IHx8IHdpbmRvdy0+bGFzdEFjdGl2YXRpb25UaW1lc3RhbXAoKSAhPSBNb25vdG9u
aWNUaW1lOjppbmZpbml0eSgpKQorICAgICAgICAgICAgd2luZG93LT5zZXRMYXN0QWN0aXZhdGlv
blRpbWVzdGFtcCgtTW9ub3RvbmljVGltZTo6aW5maW5pdHkoKSk7CisgICAgfQorCisgICAgcmV0
dXJuIHRydWU7Cit9CisKKy8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L2ludGVyYWN0aW9uLmh0bWwjYWN0aXZhdGlvbi1ub3RpZmljYXRpb24KK3ZvaWQgRE9NV2luZG93
Ojpub3RpZnlBY3RpdmF0ZWQoTW9ub3RvbmljVGltZSBhY3RpdmF0aW9uVGltZSkKK3sKKyAgICBz
ZXRMYXN0QWN0aXZhdGlvblRpbWVzdGFtcChhY3RpdmF0aW9uVGltZSk7CisgICAgaWYgKCFmcmFt
ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKEZyYW1lKiBhbmNlc3RvciA9IGZyYW1l
KCkgPyBmcmFtZSgpLT50cmVlKCkucGFyZW50KCkgOiBudWxscHRyOyBhbmNlc3RvcjsgYW5jZXN0
b3IgPSBhbmNlc3Rvci0+dHJlZSgpLnBhcmVudCgpKSB7CisgICAgICAgIGlmIChhdXRvKiB3aW5k
b3cgPSBhbmNlc3Rvci0+d2luZG93KCkpCisgICAgICAgICAgICB3aW5kb3ctPnNldExhc3RBY3Rp
dmF0aW9uVGltZXN0YW1wKGFjdGl2YXRpb25UaW1lKTsKKyAgICB9CisKKyAgICBhdXRvKiBzZWN1
cml0eU9yaWdpbiA9IHRoaXMtPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgaWYgKCFzZWN1cml0eU9y
aWdpbikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZGVzY2VuZGFudCA9IGZyYW1lKCk7
CisgICAgd2hpbGUgKChkZXNjZW5kYW50ID0gZGVzY2VuZGFudC0+dHJlZSgpLnRyYXZlcnNlTmV4
dChmcmFtZSgpKSkpIHsKKyAgICAgICAgYXV0byogZGVzY2VuZGFudFdpbmRvdyA9IGRlc2NlbmRh
bnQtPndpbmRvdygpOworICAgICAgICBpZiAoIWRlc2NlbmRhbnRXaW5kb3cpCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBhdXRvKiBkZXNjZW5kYW50U2VjdXJpdHlPcmlnaW4gPSBk
ZXNjZW5kYW50V2luZG93LT5zZWN1cml0eU9yaWdpbigpOworICAgICAgICBpZiAoIWRlc2NlbmRh
bnRTZWN1cml0eU9yaWdpbiB8fCAhZGVzY2VuZGFudFNlY3VyaXR5T3JpZ2luLT5pc1NhbWVPcmln
aW5Bcygqc2VjdXJpdHlPcmlnaW4pKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
ZGVzY2VuZGFudFdpbmRvdy0+c2V0TGFzdEFjdGl2YXRpb25UaW1lc3RhbXAoYWN0aXZhdGlvblRp
bWUpOworICAgIH0KK30KKwogU3R5bGVNZWRpYSYgRE9NV2luZG93OjpzdHlsZU1lZGlhKCkKIHsK
ICAgICBpZiAoIW1fbWVkaWEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCA4ZjBkOWM5NGUx
N2M5ZTRkZDEzZDQ5NWFjZDhjYzQ2MzhiOTk3ZDBlLi5mN2UwNzI4NmQwMDg1NzYyM2FjYzg5MzBm
ZGVlNmYwZDJhYjUyMGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTQxLDYgKzQxLDcg
QEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KICNpbmNsdWRlIDx3dGYvRnVu
Y3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9u
aWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBA
IC0xNzYsNiArMTc3LDEzIEBAIHB1YmxpYzoKICAgICBOYXZpZ2F0b3IqIG9wdGlvbmFsTmF2aWdh
dG9yKCkgY29uc3QgeyByZXR1cm4gbV9uYXZpZ2F0b3IuZ2V0KCk7IH0KICAgICBOYXZpZ2F0b3Im
IGNsaWVudEluZm9ybWF0aW9uKCkgeyByZXR1cm4gbmF2aWdhdG9yKCk7IH0KIAorICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyB2b2lkIG92ZXJyaWRlVHJhbnNpZW50QWN0aXZhdGlvbkR1cmF0aW9u
Rm9yVGVzdGluZyhPcHRpb25hbDxTZWNvbmRzPiYmKTsKKyAgICB2b2lkIHNldExhc3RBY3RpdmF0
aW9uVGltZXN0YW1wKE1vbm90b25pY1RpbWUgbGFzdEFjdGl2YXRpb25UaW1lc3RhbXApIHsgbV9s
YXN0QWN0aXZhdGlvblRpbWVzdGFtcCA9IGxhc3RBY3RpdmF0aW9uVGltZXN0YW1wOyB9CisgICAg
TW9ub3RvbmljVGltZSBsYXN0QWN0aXZhdGlvblRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1f
bGFzdEFjdGl2YXRpb25UaW1lc3RhbXA7IH0KKyAgICB2b2lkIG5vdGlmeUFjdGl2YXRlZChNb25v
dG9uaWNUaW1lKTsKKyAgICBib29sIGhhc1RyYW5zaWVudEFjdGl2YXRpb24oKSBjb25zdDsKKyAg
ICBib29sIGNvbnN1bWVUcmFuc2llbnRBY3RpdmF0aW9uKCk7CisKICAgICBXRUJDT1JFX0VYUE9S
VCBMb2NhdGlvbiYgbG9jYXRpb24oKTsKICAgICB2b2lkIHNldExvY2F0aW9uKERPTVdpbmRvdyYg
YWN0aXZlV2luZG93LCBjb25zdCBVUkwmIGNvbXBsZXRlZFVSTCwgU2V0TG9jYXRpb25Mb2NraW5n
ID0gTG9ja0hpc3RvcnlCYXNlZE9uR2VzdHVyZVN0YXRlKTsKIApAQCAtMjM0LDYgKzI0Miw3IEBA
IHB1YmxpYzoKICAgICBXaW5kb3dQcm94eSogdG9wKCkgY29uc3Q7CiAKICAgICBTdHJpbmcgb3Jp
Z2luKCkgY29uc3Q7CisgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7
CiAKICAgICAvLyBET00gTGV2ZWwgMiBBYnN0cmFjdFZpZXcgSW50ZXJmYWNlCiAKQEAgLTQ2Myw2
ICs0NzIsMTIgQEAgcHJpdmF0ZToKIAogICAgIG11dGFibGUgUmVmUHRyPFBlcmZvcm1hbmNlPiBt
X3BlcmZvcm1hbmNlOwogCisgICAgLy8gRm9yIHRoZSBwdXJwb3NlIG9mIHRyYWNraW5nIHVzZXIg
YWN0aXZhdGlvbiwgZWFjaCBXaW5kb3cgVyBoYXMgYSBsYXN0IGFjdGl2YXRpb24gdGltZXN0YW1w
LiBUaGlzIGlzIGEgbnVtYmVyIGluZGljYXRpbmcgdGhlIGxhc3QgdGltZSBXIGdvdAorICAgIC8v
IGFuIGFjdGl2YXRpb24gbm90aWZpY2F0aW9uLiBJdCBjb3JyZXNwb25kcyB0byBhIERPTUhpZ2hS
ZXNUaW1lU3RhbXAgdmFsdWUgZXhjZXB0IGZvciB0d28gY2FzZXM6IHBvc2l0aXZlIGluZmluaXR5
IGluZGljYXRlcyB0aGF0IFcgaGFzIG5ldmVyCisgICAgLy8gYmVlbiBhY3RpdmF0ZWQsIHdoaWxl
IG5lZ2F0aXZlIGluZmluaXR5IGluZGljYXRlcyB0aGF0IGEgdXNlciBhY3RpdmF0aW9uLWdhdGVk
IEFQSSBoYXMgY29uc3VtZWQgdGhlIGxhc3QgdXNlciBhY3RpdmF0aW9uIG9mIFcuIFRoZSBpbml0
aWFsCisgICAgLy8gdmFsdWUgaXMgcG9zaXRpdmUgaW5maW5pdHkuCisgICAgTW9ub3RvbmljVGlt
ZSBtX2xhc3RBY3RpdmF0aW9uVGltZXN0YW1wIHsgTW9ub3RvbmljVGltZTo6aW5maW5pdHkoKSB9
OworCiAjaWYgRU5BQkxFKFVTRVJfTUVTU0FHRV9IQU5ETEVSUykKICAgICBtdXRhYmxlIFJlZlB0
cjxXZWJLaXROYW1lc3BhY2U+IG1fd2Via2l0TmFtZXNwYWNlOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvci5jcHAKaW5kZXggMWIyN2FlOTc4YjIyYTM1MzJmNDRjODYyN2EyNTU0YWI3ZTM4
NDQzYS4uMjg0ODRkZTBiNjQ2MzI3ZmJiYTQ4NjNiMjE5ZmRiYzZjYjNmNzVjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvTmF2aWdhdG9yLmNwcApAQCAtMTI3LDcgKzEyNyw5IEBAIHZvaWQgTmF2aWdhdG9yOjpz
aGFyZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTaGFyZURhdGEgZGF0YSwgUmVm
PERlZmVyCiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgaWYgKCFVc2VyR2VzdHVyZUluZGlj
YXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKKyAgICBhdXRvKiB3aW5kb3cgPSB0aGlz
LT53aW5kb3coKTsKKyAgICAvLyBOb3RlIHRoYXQgdGhlIHNwZWNpZmljYXRpb24gZG9lcyBub3Qg
aW5kaWNhdGUgd2Ugc2hvdWxkIGNvbnN1bWUgdXNlciBhY3RpdmF0aW9uLiBXZSBhcmUgaW50ZW50
aW9uYWxseSBzdHJpY3RlciBoZXJlLgorICAgIGlmICghd2luZG93IHx8ICF3aW5kb3ctPmNvbnN1
bWVUcmFuc2llbnRBY3RpdmF0aW9uKCkpIHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdEFs
bG93ZWRFcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggYmE5NDE4YzUwYzc5ZjAzODk1ZTM3YmM3YjM3N2ZhYTkzYjU1NzNi
Ni4uNTczNWY2MjU0OGRhNmIwMjc0YjIzMjMzOWM0YmZhY2FjODQyMTRlYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTUzLDYgKzU1Myw3IEBAIHZvaWQgSW50ZXJuYWxz
OjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2UpCiAjZW5kaWYKIAogICAgIEhUTUxD
YW52YXNFbGVtZW50OjpzZXRNYXhQaXhlbE1lbW9yeUZvclRlc3RpbmcoMCk7IC8vIFRoaXMgbWVh
bnMgdXNlIHRoZSBkZWZhdWx0IHZhbHVlLgorICAgIERPTVdpbmRvdzo6b3ZlcnJpZGVUcmFuc2ll
bnRBY3RpdmF0aW9uRHVyYXRpb25Gb3JUZXN0aW5nKFdURjo6bnVsbG9wdCk7CiB9CiAKIEludGVy
bmFsczo6SW50ZXJuYWxzKERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTUyODAsNiArNTI4MSwxMSBA
QCB2b2lkIEludGVybmFsczo6c2V0WEhSTWF4aW11bUludGVydmFsRm9yVXNlckdlc3R1cmVGb3J3
YXJkaW5nKFhNTEh0dHBSZXF1ZXN0JiByZQogICAgIHJlcXVlc3Quc2V0TWF4aW11bUludGVydmFs
Rm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nKGludGVydmFsKTsKIH0KIAordm9pZCBJbnRlcm5hbHM6
OnNldFRyYW5zaWVudEFjdGl2YXRpb25EdXJhdGlvbihkb3VibGUgc2Vjb25kcykKK3sKKyAgICBE
T01XaW5kb3c6Om92ZXJyaWRlVHJhbnNpZW50QWN0aXZhdGlvbkR1cmF0aW9uRm9yVGVzdGluZyhT
ZWNvbmRzIHsgc2Vjb25kcyB9KTsKK30KKwogdm9pZCBJbnRlcm5hbHM6OnNldElzUGxheWluZ1Rv
QXV0b21vdGl2ZUhlYWRVbml0KGJvb2wgaXNQbGF5aW5nKQogewogI2lmIEVOQUJMRShWSURFTykg
fHwgRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDAy
YTJlYTI3MTA3Zjc0OTg3NjZhOWQ4MjY2ZGMzZGI3ZDcyY2M0NTAuLjNiMTkwMmU0NmUxNDU0NGVi
NWUyMDkxNTAzM2Q2ZWQ5MmNkNDUyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApA
QCAtODY5LDYgKzg2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHRlc3REaWN0aW9uYXJ5TG9nZ2lu
ZygpOwogCiAgICAgdm9pZCBzZXRYSFJNYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndh
cmRpbmcoWE1MSHR0cFJlcXVlc3QmLCBkb3VibGUpOworICAgIHZvaWQgc2V0VHJhbnNpZW50QWN0
aXZhdGlvbkR1cmF0aW9uKGRvdWJsZSBzZWNvbmRzKTsKIAogICAgIHZvaWQgc2V0SXNQbGF5aW5n
VG9BdXRvbW90aXZlSGVhZFVuaXQoYm9vbCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKaW5kZXggOWY4M2MzMmRkNjRlZjI4ZjM1YzBkYzJiOTcxMWYyMWE4YjIzZjVjMy4u
YjU5ODIxODhhNzBjZWI2Zjc4N2I4NWU1M2ZkMzRhMzMwNzlhN2M3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtODEyLDYgKzgxMiw3IEBAIGVudW0gQ29tcG9zaXRpbmdQ
b2xpY3kgewogICAgIHZvaWQgdGVzdERpY3Rpb25hcnlMb2dnaW5nKCk7CiAKICAgICB2b2lkIHNl
dFhIUk1heGltdW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZyhYTUxIdHRwUmVxdWVz
dCB4aHIsIGRvdWJsZSBpbnRlcnZhbCk7CisgICAgdm9pZCBzZXRUcmFuc2llbnRBY3RpdmF0aW9u
RHVyYXRpb24oZG91YmxlIHNlY29uZHMpOwogCiAgICAgdm9pZCBzZXRJc1BsYXlpbmdUb0F1dG9t
b3RpdmVIZWFkVW5pdChib29sZWFuIHZhbHVlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYwNjA1YTVjZTUxNmMzNWZk
ZGVhM2Y5NTMzYjM4ZTM1OTZhOTEyYjQuLjBkZDcyNzk3Mzg5MDlmM2U2MDM0MDc0YzBmZjAwZjZm
ODE0ODBhODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wMS0wNyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzaW5nIFdlYiBTaGFyZSBBUEkgcHJlY2Vk
ZWQgYnkgYW4gQUpBWCBjYWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTc3NzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwNzA4MzA5PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQg
dGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGZhc3Qvd2ViLXNoYXJlL3NoYXJlLXRyYW5zaWVu
dC1hY3RpdmF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC93ZWItc2hh
cmUvc2hhcmUtdHJhbnNpZW50LWFjdGl2YXRpb24tZXhwaXJlZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3Qvd2ViLXNoYXJlL3NoYXJlLXRyYW5zaWVudC1hY3RpdmF0aW9uLWV4
cGlyZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC93ZWItc2hhcmUvc2hhcmUtdHJhbnNp
ZW50LWFjdGl2YXRpb24uaHRtbDogQWRkZWQuCisKIDIwMjAtMDEtMDcgIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCBUZXN0IHN0b3JhZ2UvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2UtY2FjaGUuaHRtbCBpcyBmbGFreQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC93ZWItc2hhcmUvc2hhcmUtdHJhbnNpZW50LWFjdGl2YXRpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC93ZWItc2hhcmUvc2hhcmUtdHJhbnNpZW50
LWFjdGl2YXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2N2Q4M2UzMmZiODQwY2M3NDk1
NjNlYjUxNTZlZTYxMjAxNjRjMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3dlYi1zaGFyZS9zaGFyZS10cmFuc2llbnQtYWN0aXZhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyIEBACitQQVNTOiBTaGFyZSBzaGVldCBpbnZva2VkLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3dlYi1zaGFyZS9zaGFyZS10cmFuc2llbnQtYWN0aXZhdGlvbi1leHBpcmVk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvd2ViLXNoYXJlL3NoYXJlLXRyYW5zaWVu
dC1hY3RpdmF0aW9uLWV4cGlyZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiNTRjYjgzMTg3
MmVkYjNmMmU0MzM2MjMwOTgzOWZjMmQ3ZmIzYWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3dlYi1zaGFyZS9zaGFyZS10cmFuc2llbnQtYWN0aXZhdGlvbi1leHBpcmVkLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1M6IFNoYXJlIHByb21pc2Ugd2FzIHJlamVj
dGVkOiBOb3RBbGxvd2VkRXJyb3I6IFRoZSByZXF1ZXN0IGlzIG5vdCBhbGxvd2VkIGJ5IHRoZSB1
c2VyIGFnZW50IG9yIHRoZSBwbGF0Zm9ybSBpbiB0aGUgY3VycmVudCBjb250ZXh0LCBwb3NzaWJs
eSBiZWNhdXNlIHRoZSB1c2VyIGRlbmllZCBwZXJtaXNzaW9uLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3dlYi1zaGFyZS9zaGFyZS10cmFuc2llbnQtYWN0aXZhdGlvbi1leHBpcmVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dlYi1zaGFyZS9zaGFyZS10cmFuc2llbnQtYWN0aXZh
dGlvbi1leHBpcmVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI0YjYxNzAxOGMyZjdkNjhjOTZkZDVmZTA0
ZWYxMTEyZGUwMTkyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd2ViLXNo
YXJlL3NoYXJlLXRyYW5zaWVudC1hY3RpdmF0aW9uLWV4cGlyZWQuaHRtbApAQCAtMCwwICsxLDYx
IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJs
ZVZpZXdwb3J0PXRydWUgXSAtLT4KKworPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0iaW5pdGlhbC1zY2FsZT01LCB3aWR0aD1kZXZpY2Utd2lkdGgiPgorPGhlYWQ+CisKKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldFRyYW5zaWVudEFjdGl2YXRpb25EdXJh
dGlvbigwLjAxKTsgLy8gVXNlIHZlcnkgc2hvcnQgMTBtcyB0cmFuc2llbnQgYWN0aXZhdGlvbiBk
dXJhdGlvbiBmb3IgdGVzdGluZy4KKyAgICAKKyAgICAgICAgbGV0IHdyaXRlID0gKG1lc3NhZ2Up
ID0+IG91dHB1dC5pbm5lckhUTUwgKz0gKG1lc3NhZ2UgKyAiPGJyPiIpOworCisgICAgICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0IikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB7CisgICAg
ICAgICAgICAgICAgZmV0Y2goIi4uL2ZpbGVzL3Jlc291cmNlcy9hYmUucG5nIikudGhlbigoKSA9
PiB7CisgICAgICAgICAgICAgICAgICAgIC8vIENhdXNlIHRoZSB0cmFuc2llbnQgYWN0aXZhdGlv
biB0byBleHBpcmUgd2l0aCBhIHNldFRpbWVvdXQuCisgICAgICAgICAgICAgICAgICAgIHNldFRp
bWVvdXQoKCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLnNoYXJlKHsg
dGl0bGU6ICJFeGFtcGxlIFBhZ2UiLCB1cmw6ICJ1cmwiLCB0ZXh0OiAidGV4dCIgfSkudGhlbigo
cmVzdWx0KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUoIkZBSUw6IFNo
YXJlIHNoZWV0IGludm9rZWQuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9LCAoZXhjZXB0aW9u
KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUoIlBBU1M6IFNoYXJlIHBy
b21pc2Ugd2FzIHJlamVjdGVkOiAiICsgZXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgICAgICAgICB9LCAxMDApOworICAgICAgICAgICAgICAgIH0sIChl
eGNlcHRpb24pID0+IHsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUoIkZBSUw6IEZldGNoIHBy
b21pc2Ugd2FzIHJlamVjdGVkIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIFVJSGVscGVyLnNldFNoYXJlU2hlZXRDb21wbGV0ZXNJbW1lZGlh
dGVseVdpdGhSZXNvbHV0aW9uKHRydWUpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIFVJ
SGVscGVyLmFjdGl2YXRlQXQoNTAsIDUwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisK
KyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgICN0YXJnZXQgeworICAgICAgICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cHJlIGlkPSJvdXRwdXQiPjwvcHJlPgor
PGJ1dHRvbiBpZD0idGFyZ2V0Ij4KKzwvYnV0dG9uPgorCis8L2JvZHk+Cis8L2h0bWw+CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd2ViLXNoYXJlL3NoYXJlLXRyYW5zaWVudC1hY3Rp
dmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dlYi1zaGFyZS9zaGFyZS10cmFuc2llbnQt
YWN0aXZhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyMzFmYzVhODBhYTg1MmQwYzhhODAxYjQ2M2Fl
ODcyNjk0ZjE3NjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dlYi1zaGFy
ZS9zaGFyZS10cmFuc2llbnQtYWN0aXZhdGlvbi5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9
dHJ1ZSBdIC0tPgorCis8aHRtbD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0
aWFsLXNjYWxlPTUsIHdpZHRoPWRldmljZS13aWR0aCI+Cis8aGVhZD4KKworICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgICAgICAKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgICAgICB9CisgICAgCisgICAgICAgIGxldCB3cml0ZSA9IChtZXNzYWdl
KSA9PiBvdXRwdXQuaW5uZXJIVE1MICs9IChtZXNzYWdlICsgIjxicj4iKTsKKworICAgICAgICBm
dW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4geworICAg
ICAgICAgICAgICAgIGZldGNoKCIuLi9maWxlcy9yZXNvdXJjZXMvYWJlLnBuZyIpLnRoZW4oKCkg
PT4geworICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3Iuc2hhcmUoeyB0aXRsZTogIkV4YW1w
bGUgUGFnZSIsIHVybDogInVybCIsIHRleHQ6ICJ0ZXh0IiB9KS50aGVuKChyZXN1bHQpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKCJQQVNTOiBTaGFyZSBzaGVldCBpbnZva2Vk
LiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICAgICAgICAgIH0sIChleGNlcHRpb24pID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHdyaXRlKCJGQUlMOiBTaGFyZSBwcm9taXNlIHdhcyByZWplY3RlZCIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0sIChleGNlcHRpb24pID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgd3JpdGUoIkZBSUw6IEZldGNoIHByb21pc2Ugd2FzIHJlamVjdGVkIik7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFVJSGVs
cGVyLnNldFNoYXJlU2hlZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNvbHV0aW9uKHRydWUp
LnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoNTAsIDUw
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5
bGU+CisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAg
ICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZl
cjsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8cHJlIGlkPSJvdXRwdXQiPjwvcHJlPgorPGJ1dHRvbiBpZD0idGFyZ2V0Ij4KKzwv
YnV0dG9uPgorCis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
      

    </bug>

</bugzilla>