<?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>203103</bug_id>
          
          <creation_ts>2019-10-17 09:56:10 -0700</creation_ts>
          <short_desc>DatabaseContext should not prevent entering the back/forward cache</short_desc>
          <delta_ts>2020-01-16 16:02:03 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=206291</see_also>
          <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>202293</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1581016</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-17 09:56:10 -0700</bug_when>
    <thetext>DatabaseContext should not prevent entering the back/forward cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583499</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-24 13:34:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/56592193&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583503</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-24 13:35:56 -0700</bug_when>
    <thetext>*** Bug 159379 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583504</commentid>
    <comment_count>3</comment_count>
      <attachid>381841</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-24 13:36:07 -0700</bug_when>
    <thetext>Created attachment 381841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583658</commentid>
    <comment_count>4</comment_count>
      <attachid>381841</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-10-24 21:28:49 -0700</bug_when>
    <thetext>Comment on attachment 381841
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583669</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-24 22:36:09 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 381841:

The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583674</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-24 22:36:26 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 381841:

imported/w3c/web-platform-tests/svg/text/visualtests/text-inline-size-003-visual.svg bug 203172 (author: sabouhallawa@apple.com)
fast/history/page-cache-webdatabase-pending-transaction.html bug 203399 (author: cdumez@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583715</commentid>
    <comment_count>7</comment_count>
      <attachid>381841</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-25 01:14:31 -0700</bug_when>
    <thetext>Comment on attachment 381841
Patch

Clearing flags on attachment: 381841

Committed r251586: &lt;https://trac.webkit.org/changeset/251586&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583716</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-25 01:14:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583831</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-25 08:44:26 -0700</bug_when>
    <thetext>Reverted r251586 for reason:

New test is flaky

Committed r251592: &lt;https://trac.webkit.org/changeset/251592&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583851</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-25 09:11:41 -0700</bug_when>
    <thetext>Looks like queueing JS callbacks in not sufficient because Database threads currently get terminated on navigation and may therefore not have time to schedule their callbacks:
1   0x7243d44e1 WTF::MessageQueue&lt;WebCore::DatabaseTask&gt;::kill()
2   0x7243d0ac4 WebCore::DatabaseThread::requestTermination(WebCore::DatabaseTaskSynchronizer*)
3   0x7243d0988 WebCore::DatabaseContext::stopDatabases(WebCore::DatabaseTaskSynchronizer*)
4   0x7243d2be3 WebCore::DatabaseManager::stopDatabases(WebCore::Document&amp;, WebCore::DatabaseTaskSynchronizer*)
5   0x7256d2e39 WebCore::FrameLoader::stopLoading(WebCore::UnloadEventPolicy)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584358</commentid>
    <comment_count>11</comment_count>
      <attachid>382042</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-27 16:34:58 -0700</bug_when>
    <thetext>Created attachment 382042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584539</commentid>
    <comment_count>12</comment_count>
      <attachid>382095</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-28 12:33:58 -0700</bug_when>
    <thetext>Created attachment 382095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585605</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-30 15:50:37 -0700</bug_when>
    <thetext>ping review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587096</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-04 12:53:47 -0800</bug_when>
    <thetext>ping review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587457</commentid>
    <comment_count>15</comment_count>
      <attachid>382095</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-11-05 10:46:05 -0800</bug_when>
    <thetext>Comment on attachment 382095
Patch

r=me

Pretty sure WebDatabase is fully disabled these days, so I guess this is an example of why it would be good to remove the code entirely soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587469</commentid>
    <comment_count>16</comment_count>
      <attachid>382095</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-05 11:15:25 -0800</bug_when>
    <thetext>Comment on attachment 382095
Patch

Clearing flags on attachment: 382095

Committed r252064: &lt;https://trac.webkit.org/changeset/252064&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587470</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-05 11:15:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381841</attachid>
            <date>2019-10-24 13:36:07 -0700</date>
            <delta_ts>2019-10-27 16:34:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203103-20191024133606.patch</filename>
            <type>text/plain</type>
            <size>15498</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQxZDExYTRkZDhiZjg3
MWU2N2YyMTRlYTM4ZjQ4NWY3OTI4NTJkNy4uYmYwNGQzZjBmNTk1NTY0NDRlZjNkZDI2ZjEyMjZl
OTQ5YTk3M2U5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTEwLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0YWJhc2VDb250ZXh0IHNo
b3VsZCBub3QgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMxMDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZXQgcGFnZXMgd2l0aCBh
Y3RpdmUgd2ViZGF0YWJhc2UgdHJhbnNhY3Rpb25zIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNo
ZS4gV2UgbWFrZSBzdXJlCisgICAgICAgIHRvIHF1ZXVlIHRhc2tzIHRoYXQgcnVuIHNjcmlwdCB0
byB0aGUgV2luZG93IGV2ZW50IGxvb3AsIHNvIHRoYXQgdGhleSBnZXQgZGVsYXllZCB3aGVuCisg
ICAgICAgIHRoZSBkb2N1bWVudCBpcyBzdXNwZW5kZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCB1cGRhdGVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpydW5UcmFuc2FjdGlv
bik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VDb250ZXh0OjpzaG91bGRQcmV2ZW50RW50ZXJpbmdC
YWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FURUQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0Lmg6CisgICAgICAgICogTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJh
c2VNYW5hZ2VyOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2Uv
U1FMVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OnBl
cmZvcm1QZW5kaW5nQ2FsbGJhY2spOgorCiAyMDE5LTEwLTI0ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGFzcyBDT1JTLWVuYWJsZWQgc2No
ZW1lcyB0aHJvdWdoIFdlYlByb2Nlc3MgaW5zdGVhZCBvZiBoYXZpbmcgdGhlbSBOZXR3b3JrUHJv
Y2Vzcy1nbG9iYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZS5jcHAKaW5kZXggMTk1ZTZmN2IyMTFjMWYxOTg3Yjg5ZjUzNWFlZTBhMzliNzkyNzFlYy4u
MzBkMGEyMmJmMzJhOGFiNjY3MTljNjY0MjYwOWE5NzA0YzE2YThhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKQEAgLTUyLDYgKzUyLDcg
QEAKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJXaW5kb3dF
dmVudExvb3AuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtNjg0LDEwICs2
ODUsMTEgQEAgdm9pZCBEYXRhYmFzZTo6cmVzZXRBdXRob3JpemVyKCkKIAogdm9pZCBEYXRhYmFz
ZTo6cnVuVHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJh
Y2ssIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywg
UmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2ssIFJlZlB0cjxTUUxUcmFuc2Fj
dGlvbldyYXBwZXI+JiYgd3JhcHBlciwgYm9vbCByZWFkT25seSkKIHsKKyAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJhbnNhY3Rpb25JblByb2dy
ZXNzTXV0ZXgpOwogICAgIGlmICghbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVkKSB7CiAgICAg
ICAgIGlmIChlcnJvckNhbGxiYWNrKSB7Ci0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtl
cnJvckNhbGxiYWNrID0gbWFrZVJlZigqZXJyb3JDYWxsYmFjayldKCkgeworICAgICAgICAgICAg
bV9kb2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcs
IG1fZG9jdW1lbnQsIFtlcnJvckNhbGxiYWNrID0gbWFrZVJlZigqZXJyb3JDYWxsYmFjayldKCkg
ewogICAgICAgICAgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFNRTEVycm9yOjpj
cmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAiZGF0YWJhc2UgaGFzIGJlZW4gY2xvc2VkIikp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAppbmRleCAxZmIwNjFmOGIz
N2FmMmRkYWIwM2M5NjM2MDljOTAxYjZkMGY5ZDk2Li5hM2NlNzBjODhkNDk4MDIxNzgyNjY5ODY5
NWM3YjQ0NTA1ODNlZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwCkBAIC0xMzAsMTUgKzEzMCw2IEBAIHZvaWQg
RGF0YWJhc2VDb250ZXh0OjpzdG9wKCkKICAgICBzdG9wRGF0YWJhc2VzKCk7CiB9CiAKLS8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBuZXZlciBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUuCi1ib29sIERhdGFiYXNlQ29udGV4dDo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0Zv
cndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29uc3QKLXsKLSAgICBpZiAoIWhhc09wZW5EYXRhYmFz
ZXMoKSB8fCAhbV9kYXRhYmFzZVRocmVhZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
cmV0dXJuIG1fZGF0YWJhc2VUaHJlYWQtPmhhc1BlbmRpbmdEYXRhYmFzZUFjdGl2aXR5KCk7Ci19
Ci0KIERhdGFiYXNlVGhyZWFkKiBEYXRhYmFzZUNvbnRleHQ6OmRhdGFiYXNlVGhyZWFkKCkKIHsK
ICAgICBpZiAoIW1fZGF0YWJhc2VUaHJlYWQgJiYgIW1faGFzT3BlbkRhdGFiYXNlcykgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0
LmgKaW5kZXggYmVmNTUyMDgxYTRlODgyMzQ5ZTVhMjE3NDEzNWRmZTY0NzBjMWYyOC4uMTA1N2E1
MDI4YWI2NDgzYWI2MjZjMTA0NDQ1NDQzMDdlZTYxYWUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5oCkBAIC03Myw3ICs3
Myw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsK
ICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZFByZXZlbnRFbnRlcmlu
Z0JhY2tGb3J3YXJkQ2FjaGVfREVQUkVDQVRFRCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiRGF0
YWJhc2VDb250ZXh0IjsgfQogCiAgICAgUmVmUHRyPERhdGFiYXNlVGhyZWFkPiBtX2RhdGFiYXNl
VGhyZWFkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZU1hbmFnZXIuY3BwCmluZGV4IDA1ZGZhMzc5MmQ0NDBjNmEzMWVkZjliODgxZGJkZjE5
OGU3YjhjNDYuLmEwMTU5OTM1N2ZlMGE2NzYxODI3MzJlOGQxOTViYTE2NjQ3NzQ3MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFu
YWdlci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRh
dGEuaCIKKyNpbmNsdWRlICJXaW5kb3dFdmVudExvb3AuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTkyLDYgKzE5Myw3IEBAIHZv
aWQgRGF0YWJhc2VNYW5hZ2VyOjpyZW1vdmVQcm9wb3NlZERhdGFiYXNlKFByb3Bvc2VkRGF0YWJh
c2UmIGRhdGFiYXNlKQogCiBFeGNlcHRpb25PcjxSZWY8RGF0YWJhc2U+PiBEYXRhYmFzZU1hbmFn
ZXI6Om9wZW5EYXRhYmFzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiBleHBlY3RlZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUs
IHVuc2lnbmVkIGVzdGltYXRlZFNpemUsIFJlZlB0cjxEYXRhYmFzZUNhbGxiYWNrPiYmIGNyZWF0
aW9uQ2FsbGJhY2spCiB7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBTY3JpcHRD
b250cm9sbGVyOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAKICAgICBib29sIHNldFZlcnNpb25J
bk5ld0RhdGFiYXNlID0gIWNyZWF0aW9uQ2FsbGJhY2s7CkBAIC0yMDgsNyArMjEwLDcgQEAgRXhj
ZXB0aW9uT3I8UmVmPERhdGFiYXNlPj4gRGF0YWJhc2VNYW5hZ2VyOjpvcGVuRGF0YWJhc2UoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb24KICAgICBpZiAoZGF0YWJhc2UtPmlzTmV3KCkgJiYgY3JlYXRp
b25DYWxsYmFjay5nZXQoKSkgewogICAgICAgICBMT0coU3RvcmFnZUFQSSwgIlNjaGVkdWxpbmcg
RGF0YWJhc2VDcmVhdGlvbkNhbGxiYWNrVGFzayBmb3IgZGF0YWJhc2UgJXBcbiIsIGRhdGFiYXNl
LmdldCgpKTsKICAgICAgICAgZGF0YWJhc2UtPnNldEhhc1BlbmRpbmdDcmVhdGlvbkV2ZW50KHRy
dWUpOwotICAgICAgICBkYXRhYmFzZS0+bV9kb2N1bWVudC0+cG9zdFRhc2soW2NyZWF0aW9uQ2Fs
bGJhY2ssIGRhdGFiYXNlXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKKyAgICAgICAgZGF0
YWJhc2UtPm1fZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3
b3JraW5nLCBkYXRhYmFzZS0+bV9kb2N1bWVudCwgW2NyZWF0aW9uQ2FsbGJhY2ssIGRhdGFiYXNl
XSgpIHsKICAgICAgICAgICAgIGNyZWF0aW9uQ2FsbGJhY2stPmhhbmRsZUV2ZW50KCpkYXRhYmFz
ZSk7CiAgICAgICAgICAgICBkYXRhYmFzZS0+c2V0SGFzUGVuZGluZ0NyZWF0aW9uRXZlbnQoZmFs
c2UpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAKaW5kZXggYWM0OTBmNTc2ZDBjYmM1OGIxMTA3NTFi
YTFiM2NmOWNmOTNiMzYxZi4uMTU5N2Y5MmEyYjA3NzExZDZlY2VhOTllMDM0ZDY2NzE4NTcxMmZi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxU
cmFuc2FjdGlvbi5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJTUUxUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2suaCIKICNpbmNsdWRlICJTUUxpdGVUcmFuc2FjdGlvbi5oIgogI2luY2x1
ZGUgIlZvaWRDYWxsYmFjay5oIgorI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogI2luY2x1
ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0xMDksMTggKzExMCwyMSBAQCB2b2lkIFNRTFRyYW5zYWN0
aW9uOjpwZXJmb3JtTmV4dFN0ZXAoKQogCiB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwZXJmb3JtUGVu
ZGluZ0NhbGxiYWNrKCkKIHsKLSAgICBMT0coU3RvcmFnZUFQSSwgIkNhbGxiYWNrICVzXG4iLCBk
ZWJ1Z1N0ZXBOYW1lKG1fbmV4dFN0ZXApKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIG1fZGF0YWJhc2UtPmRvY3VtZW50KCkuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3Vy
Y2U6Ok5ldHdvcmtpbmcsIG1fZGF0YWJhc2UtPmRvY3VtZW50KCksIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyldKCkgbXV0YWJsZSB7CisgICAgICAgIExPRyhTdG9yYWdlQVBJ
LCAiQ2FsbGJhY2sgJXNcbiIsIGRlYnVnU3RlcE5hbWUobV9uZXh0U3RlcCkpOwogCi0gICAgQVNT
RVJUKG1fbmV4dFN0ZXAgPT0gJlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyVHJhbnNhY3Rpb25DYWxs
YmFjawotICAgICAgICAgICB8fCBtX25leHRTdGVwID09ICZTUUxUcmFuc2FjdGlvbjo6ZGVsaXZl
clRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjawotICAgICAgICAgICB8fCBtX25leHRTdGVwID09ICZT
UUxUcmFuc2FjdGlvbjo6ZGVsaXZlclN0YXRlbWVudENhbGxiYWNrCi0gICAgICAgICAgIHx8IG1f
bmV4dFN0ZXAgPT0gJlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyUXVvdGFJbmNyZWFzZUNhbGxiYWNr
Ci0gICAgICAgICAgIHx8IG1fbmV4dFN0ZXAgPT0gJlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyU3Vj
Y2Vzc0NhbGxiYWNrKTsKKyAgICAgICAgQVNTRVJUKG1fbmV4dFN0ZXAgPT0gJlNRTFRyYW5zYWN0
aW9uOjpkZWxpdmVyVHJhbnNhY3Rpb25DYWxsYmFjaworICAgICAgICAgICAgfHwgbV9uZXh0U3Rl
cCA9PSAmU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2sKKyAg
ICAgICAgICAgIHx8IG1fbmV4dFN0ZXAgPT0gJlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyU3RhdGVt
ZW50Q2FsbGJhY2sKKyAgICAgICAgICAgIHx8IG1fbmV4dFN0ZXAgPT0gJlNRTFRyYW5zYWN0aW9u
OjpkZWxpdmVyUXVvdGFJbmNyZWFzZUNhbGxiYWNrCisgICAgICAgICAgICB8fCBtX25leHRTdGVw
ID09ICZTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclN1Y2Nlc3NDYWxsYmFjayk7CiAKLSAgICBjaGVj
a0FuZEhhbmRsZUNsb3NlZERhdGFiYXNlKCk7CisgICAgICAgIGNoZWNrQW5kSGFuZGxlQ2xvc2Vk
RGF0YWJhc2UoKTsKIAotICAgIGlmIChtX25leHRTdGVwKQotICAgICAgICAodGhpcy0+Km1fbmV4
dFN0ZXApKCk7CisgICAgICAgIGlmIChtX25leHRTdGVwKQorICAgICAgICAgICAgKHRoaXMtPipt
X25leHRTdGVwKSgpOworICAgIH0pOwogfQogCiB2b2lkIFNRTFRyYW5zYWN0aW9uOjpub3RpZnlE
YXRhYmFzZVRocmVhZElzU2h1dHRpbmdEb3duKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOTNmNjJhY2FiMzk2ZjMwZjEy
NDhhNGM2NTg0MTY1OGEyOWQ3MjdjLi5lZWY4MDdmZjU0N2Y4NWI5MjViYmI2NTdkNTRlNmMzMDk2
NTAyMmUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMTAtMjQgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEYXRhYmFzZUNvbnRleHQgc2hvdWxkIG5vdCBw
cmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzEwMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUt
d2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi5o
dG1sOgorICAgICAgICBVcGRhdGUgZXhpc3RpbmcgdGVzdCB0byByZWZsZWN0IGJlaGF2aW9yIGNo
YW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBVbm1hcmsgdGVzdCBh
cyBmbGFreS4KKwogMjAxOS0xMC0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAgbmV3IHRlc3RzIGFkZGVkIGluIDI1MTUwOSBvbiBX
aW5kb3dzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13
ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24t
ZXhwZWN0ZWQudHh0CmluZGV4IDE2ZDAyMmY4M2RhMDQ1NzlmY2I1MzZkZWUyZDYzMjkzN2EwOTA3
OTguLmJhOGNiZTI4NmU5MmRmNTM2OTc0Mjk0MWJkZGFhY2I5YmQ3ZjZhNmEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmct
dHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0CkBA
IC0xLDEwICsxLDE0IEBACi1UZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGFuIG9wZW4gV2ViRGF0YWJh
c2UgdGhhdCBoYXMgcGVuZGluZyB0cmFuc2FjdGlvbnMgZG9lcyBub3QgZ28gaW50byB0aGUgcGFn
ZSBjYWNoZS4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogV2ViIFNRTCBpcyBkZXByZWNhdGVk
LiBQbGVhc2UgdXNlIEluZGV4ZWREQiBpbnN0ZWFkLgorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBh
biBvcGVuIFdlYkRhdGFiYXNlIHRoYXQgaGFzIHBlbmRpbmcgdHJhbnNhY3Rpb25zIGlzIGFibGUg
dG8gZ28gaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCiAKIAogcGFnZXNob3cgLSBub3QgZnJvbSBjYWNoZQotUEFTUyBQYWdlIHdhcyBub3Qg
cmVzdG9yZWQgZnJvbSBwYWdlIGNhY2hlCitwYWdlaGlkZSAtIGVudGVyaW5nIGNhY2hlCitwYWdl
c2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBm
cm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKK1BBU1MgQWxsIHRyYW5zYWN0aW9ucyBzdWNjZWVk
ZWQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2Ut
cGVuZGluZy10cmFuc2FjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi5odG1sCmluZGV4IDU1OTYzYmNm
ZjQ0OTc3OGEyMmU4MTA3ZGY5NzkyYzFmMjIyNmExNzIuLjIxOTkyNWNkZjcwZjczZjZiMDE2YzQ4
YmVlYjI5YmU2NTY2M2NmNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5z
YWN0aW9uLmh0bWwKQEAgLTIsNTggKzIsNzYgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8
Ym9keT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+Ci1kZXNjcmlwdGlvbignVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhbiBvcGVuIFdl
YkRhdGFiYXNlIHRoYXQgaGFzIHBlbmRpbmcgdHJhbnNhY3Rpb25zIGRvZXMgbm90IGdvIGludG8g
dGhlIHBhZ2UgY2FjaGUuJyk7Ci13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitkZXNjcmlw
dGlvbignVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhbiBvcGVuIFdlYkRhdGFiYXNlIHRoYXQgaGFz
IHBlbmRpbmcgdHJhbnNhY3Rpb25zIGlzIGFibGUgdG8gZ28gaW50byB0aGUgYmFjay9mb3J3YXJk
IGNhY2hlLicpOworanNUZXN0SXNBc3luYyA9IHRydWU7CitsZXQgcmVzdG9yZWRGcm9tQ2FjaGUg
PSBmYWxzZTsKK2xldCBwZW5kaW5nVHJhbnNhY3Rpb25Db3VudCA9IDA7CiAKIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7CiAKK2Z1bmN0
aW9uIGNoZWNrVGVzdENvbXBsZXRlKCkKK3sKKyAgICBpZiAoIXBlbmRpbmdUcmFuc2FjdGlvbkNv
dW50ICYmIHJlc3RvcmVkRnJvbUNhY2hlKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIkFsbCB0cmFu
c2FjdGlvbnMgc3VjY2VlZGVkIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KK30K
Kwogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsK
ICAgICBkZWJ1ZygicGFnZXNob3cgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAi
KSArICJmcm9tIGNhY2hlIik7Ci0gICAgaWYgKCF3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucGFnZV9j
YWNoZV9vcGVuX3dlYmRhdGFiYXNlX3Rlc3Rfc3RhcnRlZCkKLSAgICAgICAgcmV0dXJuOwogCi0g
ICAgZGVsZXRlIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5wYWdlX2NhY2hlX29wZW5fd2ViZGF0YWJh
c2VfdGVzdF9zdGFydGVkOwotCi0gICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkKLSAgICAgICAgdGVz
dEZhaWxlZCgiUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNh
Y2hlIik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIHdhcyBub3QgcmVzdG9y
ZWQgZnJvbSBwYWdlIGNhY2hlIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7CisgICAgaWYgKGV2ZW50
LnBlcnNpc3RlZCkgeworICAgICAgICB0ZXN0UGFzc2VkKCJQYWdlIGRpZCBlbnRlciBhbmQgd2Fz
IHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSIpOworICAgICAgICByZXN0b3Jl
ZEZyb21DYWNoZSA9IHRydWU7CisgICAgICAgIGNoZWNrVGVzdENvbXBsZXRlKCk7CisgICAgfQog
fSwgZmFsc2UpOwogCiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlv
bihldmVudCkgewogICAgIGRlYnVnKCJwYWdlaGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8g
IiIgOiAibm90ICIpICsgImVudGVyaW5nIGNhY2hlIik7Ci0gICAgaWYgKGV2ZW50LnBlcnNpc3Rl
ZCkgewotICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIGVudGVyZWQgdGhlIHBhZ2UgY2FjaGUuIik7
CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBm
YWlsZWQgdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4iKTsKICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CiAgICAgfQogfSwgZmFsc2UpOwogCitmdW5jdGlvbiBoYW5kbGVUcmFuc2FjdGlv
blN1Y2Nlc3MoKQoreworICAgIHBlbmRpbmdUcmFuc2FjdGlvbkNvdW50LS07CisgICAgY2hlY2tU
ZXN0Q29tcGxldGUoKTsKK30KKworZnVuY3Rpb24gaGFuZGxlVHJhbnNhY3Rpb25FcnJvcigpCit7
CisgICAgdGVzdEZhaWxlZCgiVHJhbnNhY3Rpb24gZmFpbGVkIik7CisgICAgZmluaXNoSlNUZXN0
KCk7Cit9CisKIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7Ci0g
ICAgLy8gT3BlbiB0aGUgZGF0YWJhc2UuCi0gICAgZGIgPSBvcGVuRGF0YWJhc2UoIlBhZ2VDYWNo
ZVRlc3QiLCAiIiwgIlBhZ2UgQ2FjaGUgVGVzdCIsIDMyNzY4KTsKKyAgICBzZXRUaW1lb3V0KCgp
ID0+IHsKKyAgICAgICAgZGIgPSBvcGVuRGF0YWJhc2UoIlBhZ2VDYWNoZVRlc3QiLCAiIiwgIkJh
Y2sgRm9yd2FyZCBDYWNoZSBUZXN0IiwgMzI3NjgpOwogCi0gICAgZGIudHJhbnNhY3Rpb24oZnVu
Y3Rpb24odHgpIHsKLSAgICAgICAgLy8gRm9yY2UgYSBiYWNrIG5hdmlnYXRpb24gYmFjayB0byB0
aGlzIHBhZ2UuCi0gICAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5wYWdlX2NhY2hlX29wZW5f
d2ViZGF0YWJhc2VfdGVzdF9zdGFydGVkID0gdHJ1ZTsKLSAgICAgICAgd2luZG93LmxvY2F0aW9u
LmhyZWYgPSAicmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiOworICAgICAgICBkYi50
cmFuc2FjdGlvbihmdW5jdGlvbih0eCkgeworICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhy
ZWYgPSAicmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiOwogCi0gICAgICAgIHR4LmV4
ZWN1dGVTcWwoJ0NSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIExPR1MgKGlkIHVuaXF1ZSwgbG9n
KScpOwotICAgIH0pOworICAgICAgICAgICAgcGVuZGluZ1RyYW5zYWN0aW9uQ291bnQrKzsKKyAg
ICAgICAgICAgIHR4LmV4ZWN1dGVTcWwoJ0NSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIExPR1Mg
KGlkIHVuaXF1ZSwgbG9nKScsIFtdLCBoYW5kbGVUcmFuc2FjdGlvblN1Y2Nlc3MsIGhhbmRsZVRy
YW5zYWN0aW9uRXJyb3IpOworICAgICAgICB9KTsKIAotICAgIGRiLnRyYW5zYWN0aW9uKGZ1bmN0
aW9uKHR4KSB7Ci0gICAgICAgIHR4LmV4ZWN1dGVTcWwoJ0NSRUFURSBUQUJMRSBJRiBOT1QgRVhJ
U1RTIExPR1MyIChpZCB1bmlxdWUsIGxvZyknKTsKLSAgICB9KTsKKyAgICAgICAgZGIudHJhbnNh
Y3Rpb24oZnVuY3Rpb24odHgpIHsKKyAgICAgICAgICAgIHBlbmRpbmdUcmFuc2FjdGlvbkNvdW50
Kys7CisgICAgICAgICAgICB0eC5leGVjdXRlU3FsKCdDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNU
UyBMT0dTMiAoaWQgdW5pcXVlLCBsb2cpJywgW10sIGhhbmRsZVRyYW5zYWN0aW9uU3VjY2Vzcywg
aGFuZGxlVHJhbnNhY3Rpb25FcnJvcik7CisgICAgICAgIH0pOwogCi0gICAgZGIudHJhbnNhY3Rp
b24oZnVuY3Rpb24odHgpIHsKLSAgICAgICAgdHguZXhlY3V0ZVNxbCgnQ1JFQVRFIFRBQkxFIElG
IE5PVCBFWElTVFMgTE9HUzMgKGlkIHVuaXF1ZSwgbG9nKScpOwotICAgIH0pOworICAgICAgICBk
Yi50cmFuc2FjdGlvbihmdW5jdGlvbih0eCkgeworICAgICAgICAgICAgcGVuZGluZ1RyYW5zYWN0
aW9uQ291bnQrKzsKKyAgICAgICAgICAgIHR4LmV4ZWN1dGVTcWwoJ0NSRUFURSBUQUJMRSBJRiBO
T1QgRVhJU1RTIExPR1MzIChpZCB1bmlxdWUsIGxvZyknLCBbXSwgaGFuZGxlVHJhbnNhY3Rpb25T
dWNjZXNzLCBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKTsKKyAgICAgICAgfSk7CisgICAgfSwgMCk7
CiB9LCBmYWxzZSk7Ci0KIDwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0ZDIxN2RiYzMzY2M1ODQzMmNhMTAw
NjI1ZDU4NWM5Y2MyZjEwZGNlLi5jMzkwN2UwMDEwMGRiYjZhZDQwZTRiMWE2YWY4NTg0NGZlN2Y1
ZTk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTY2
MCw3ICsxNjYwLDYgQEAgd2Via2l0Lm9yZy9iLzE0NDg2NCBmYXN0L2V2ZW50cy9jbGVhci1lZGl0
LWRyYWctc3RhdGUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTQ0ODY0IGZh
c3QvZXZlbnRzL2NsZWFyLWRyYWctc3RhdGUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKIHdlYmtp
dC5vcmcvYi8xNDUwNTEgbWVkaWEvdmlkZW8tcnRsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFBh
c3MgXQotd2Via2l0Lm9yZy9iLzE0NTA1MiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRh
YmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQu
b3JnL2IvMTQ1MTY3IHRyYW5zZm9ybXMvMmQvcGVyc3BlY3RpdmUtbm90LWZpeGVkLWNvbnRhaW5l
ci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkZGIyODA1NzRlN2JlZTRmZDA4NmZlN2ZkNzk3NmQ2
Mjc1OTE5NmFhLi5jODkxNmYxODVhMjBhYzk3NDQwM2IxNWI3YjdiYWVhMzc0ZDViMWM3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTE5OCw4ICsxMTk4
LDYgQEAgd2Via2l0Lm9yZy9iLzE1ODg4OSBtZWRpYS92aWRlby1jb250cm9scy1zaG93LW9uLWti
LW9yLWF4LWV2ZW50Lmh0bWwgWyBQYXNzIEZhaWwKICMgcmRhcjovL3Byb2JsZW0vMjcxNDEyOTEK
IFsgU2llcnJhKyBdIGVkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1pbi1wcmUuaHRtbCBb
IEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTU5Mzc5IGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24uaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0K
ICMgcmRhcjovL3Byb2JsZW0vMzEyNDM4MjQKIHdlYmtpdC5vcmcvYi8xNTg3NDcgbWVkaWEvcmVz
dG9yZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBDcmFzaCBdCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382042</attachid>
            <date>2019-10-27 16:34:58 -0700</date>
            <delta_ts>2019-10-28 12:33:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203103-20191027163457.patch</filename>
            <type>text/plain</type>
            <size>15740</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ5Nzg3ZTc5ZDA0YjY1
NzY4MTdhZGNiYjk2NzRiNGNlZDlhZDI0OC4uY2UxZGMwZThjYmFmNmMxNzZiYjlkOWJmZmVjMTFh
NjI5ZTU5OTEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTEwLTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0YWJhc2VDb250ZXh0IHNo
b3VsZCBub3QgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMxMDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICBMZXQgcGFnZXMgd2l0aCBhY3Rp
dmUgd2ViZGF0YWJhc2UgdHJhbnNhY3Rpb25zIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4g
V2UgbWFrZSBzdXJlCisgICAgICAgIHRvIHF1ZXVlIHRhc2tzIHRoYXQgcnVuIHNjcmlwdCB0byB0
aGUgV2luZG93IGV2ZW50IGxvb3AsIHNvIHRoYXQgdGhleSBnZXQgZGVsYXllZCB3aGVuCisgICAg
ICAgIHRoZSBkb2N1bWVudCBpcyBzdXNwZW5kZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1
cGRhdGVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpydW5UcmFuc2FjdGlvbik6
CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2VDb250ZXh0OjpzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNr
Rm9yd2FyZENhY2hlX0RFUFJFQ0FURUQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VN
YW5hZ2VyOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OnBlcmZv
cm1QZW5kaW5nQ2FsbGJhY2spOgorCiAyMDE5LTEwLTI2ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBFbmZvcmNlIHVzZXIgZ2VzdHVyZSBmb3IgZ2V0VXNlck1l
ZGlhIGluIGNhc2UgYSBwcmV2aW91cyBnZXRVc2VyTWVkaWEgY2FsbCB3YXMgZGVuaWVkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmluZGV4IDE5
NWU2ZjdiMjExYzFmMTk4N2I4OWY1MzVhZWUwYTM5Yjc5MjcxZWMuLjMwZDBhMjJiZjMyYThhYjY2
NzE5YzY2NDI2MDlhOTcwNGMxNmE4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAiVm9pZENhbGxiYWNrLmgiCisjaW5jbHVkZSAiV2luZG93RXZlbnRMb29wLmgiCiAjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTY4NCwxMCArNjg1LDExIEBAIHZvaWQgRGF0
YWJhc2U6OnJlc2V0QXV0aG9yaXplcigpCiAKIHZvaWQgRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9u
KFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiYmIGNhbGxiYWNrLCBSZWZQdHI8U1FMVHJh
bnNhY3Rpb25FcnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2ssIFJlZlB0cjxWb2lkQ2FsbGJh
Y2s+JiYgc3VjY2Vzc0NhbGxiYWNrLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiYmIHdy
YXBwZXIsIGJvb2wgcmVhZE9ubHkpCiB7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzc011dGV4KTsKICAgICBp
ZiAoIW1faXNUcmFuc2FjdGlvblF1ZXVlRW5hYmxlZCkgewogICAgICAgICBpZiAoZXJyb3JDYWxs
YmFjaykgewotICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbZXJyb3JDYWxsYmFjayA9IG1h
a2VSZWYoKmVycm9yQ2FsbGJhY2spXSgpIHsKKyAgICAgICAgICAgIG1fZG9jdW1lbnQtPmV2ZW50
TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBtX2RvY3VtZW50LCBbZXJy
b3JDYWxsYmFjayA9IG1ha2VSZWYoKmVycm9yQ2FsbGJhY2spXSgpIHsKICAgICAgICAgICAgICAg
ICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpV
TktOT1dOX0VSUiwgImRhdGFiYXNlIGhhcyBiZWVuIGNsb3NlZCIpKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKaW5kZXggMWZiMDYxZjhiMzdhZjJkZGFiMDNjOTYzNjA5
YzkwMWI2ZDBmOWQ5Ni4uYTNjZTcwYzg4ZDQ5ODAyMTc4MjY2OTg2OTVjN2I0NDUwNTgzZWQ5NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VDb250ZXh0LmNwcApAQCAtMTMwLDE1ICsxMzAsNiBAQCB2b2lkIERhdGFiYXNlQ29udGV4dDo6
c3RvcCgpCiAgICAgc3RvcERhdGFiYXNlcygpOwogfQogCi0vLyBGSVhNRTogVGhpcyBzaG91bGQg
bmV2ZXIgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgotYm9vbCBEYXRh
YmFzZUNvbnRleHQ6OnNob3VsZFByZXZlbnRFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGVfREVQUkVD
QVRFRCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFoYXNPcGVuRGF0YWJhc2VzKCkgfHwgIW1fZGF0YWJh
c2VUaHJlYWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX2RhdGFiYXNl
VGhyZWFkLT5oYXNQZW5kaW5nRGF0YWJhc2VBY3Rpdml0eSgpOwotfQotCiBEYXRhYmFzZVRocmVh
ZCogRGF0YWJhc2VDb250ZXh0OjpkYXRhYmFzZVRocmVhZCgpCiB7CiAgICAgaWYgKCFtX2RhdGFi
YXNlVGhyZWFkICYmICFtX2hhc09wZW5EYXRhYmFzZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5oCmluZGV4IGJlZjU1MjA4
MWE0ZTg4MjM0OWU1YTIxNzQxMzVkZmU2NDcwYzFmMjguLjEwNTdhNTAyOGFiNjQ4M2FiNjI2YzEw
NDQ0NTQ0MzA3ZWU2MWFlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuaApAQCAtNzMsNyArNzMsNiBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wKCkg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9yd2FyZENhY2hl
X0RFUFJFQ0FURUQoKSBjb25zdCBvdmVycmlkZTsKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01P
YmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkRhdGFiYXNlQ29udGV4dCI7IH0K
IAogICAgIFJlZlB0cjxEYXRhYmFzZVRocmVhZD4gbV9kYXRhYmFzZVRocmVhZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNw
cAppbmRleCAwNWRmYTM3OTJkNDQwYzZhMzFlZGY5Yjg4MWRiZGYxOThlN2I4YzQ2Li5hMDE1OTkz
NTdmZTBhNjc2MTgyNzMyZThkMTk1YmExNjY0Nzc0NzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCkBAIC0zOCw2
ICszOCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCisjaW5jbHVkZSAi
V2luZG93RXZlbnRMb29wLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE5Miw2ICsxOTMsNyBAQCB2b2lkIERhdGFiYXNlTWFuYWdl
cjo6cmVtb3ZlUHJvcG9zZWREYXRhYmFzZShQcm9wb3NlZERhdGFiYXNlJiBkYXRhYmFzZSkKIAog
RXhjZXB0aW9uT3I8UmVmPERhdGFiYXNlPj4gRGF0YWJhc2VNYW5hZ2VyOjpvcGVuRGF0YWJhc2Uo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZXhw
ZWN0ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBlc3RpbWF0
ZWRTaXplLCBSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4mJiBjcmVhdGlvbkNhbGxiYWNrKQogewor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgU2NyaXB0Q29udHJvbGxlcjo6aW5pdGlh
bGl6ZVRocmVhZGluZygpOwogCiAgICAgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSA9ICFj
cmVhdGlvbkNhbGxiYWNrOwpAQCAtMjA4LDcgKzIxMCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxEYXRh
YmFzZT4+IERhdGFiYXNlTWFuYWdlcjo6b3BlbkRhdGFiYXNlKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uCiAgICAgaWYgKGRhdGFiYXNlLT5pc05ldygpICYmIGNyZWF0aW9uQ2FsbGJhY2suZ2V0KCkp
IHsKICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJTY2hlZHVsaW5nIERhdGFiYXNlQ3JlYXRpb25D
YWxsYmFja1Rhc2sgZm9yIGRhdGFiYXNlICVwXG4iLCBkYXRhYmFzZS5nZXQoKSk7CiAgICAgICAg
IGRhdGFiYXNlLT5zZXRIYXNQZW5kaW5nQ3JlYXRpb25FdmVudCh0cnVlKTsKLSAgICAgICAgZGF0
YWJhc2UtPm1fZG9jdW1lbnQtPnBvc3RUYXNrKFtjcmVhdGlvbkNhbGxiYWNrLCBkYXRhYmFzZV0g
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CisgICAgICAgIGRhdGFiYXNlLT5tX2RvY3VtZW50
LT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgZGF0YWJhc2Ut
Pm1fZG9jdW1lbnQsIFtjcmVhdGlvbkNhbGxiYWNrLCBkYXRhYmFzZV0oKSB7CiAgICAgICAgICAg
ICBjcmVhdGlvbkNhbGxiYWNrLT5oYW5kbGVFdmVudCgqZGF0YWJhc2UpOwogICAgICAgICAgICAg
ZGF0YWJhc2UtPnNldEhhc1BlbmRpbmdDcmVhdGlvbkV2ZW50KGZhbHNlKTsKICAgICAgICAgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5z
YWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNh
Y3Rpb24uY3BwCmluZGV4IGFjNDkwZjU3NmQwY2JjNThiMTEwNzUxYmExYjNjZjljZjkzYjM2MWYu
LjE1OTdmOTJhMmIwNzcxMWQ2ZWNlYTk5ZTAzNGQ2NjcxODU3MTJmYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCkBA
IC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmgi
CiAjaW5jbHVkZSAiU1FMaXRlVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2su
aCIKKyNpbmNsdWRlICJXaW5kb3dFdmVudExvb3AuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtMTA5LDE4ICsxMTAsMjEgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6cGVyZm9ybU5leHRT
dGVwKCkKIAogdm9pZCBTUUxUcmFuc2FjdGlvbjo6cGVyZm9ybVBlbmRpbmdDYWxsYmFjaygpCiB7
Ci0gICAgTE9HKFN0b3JhZ2VBUEksICJDYWxsYmFjayAlc1xuIiwgZGVidWdTdGVwTmFtZShtX25l
eHRTdGVwKSk7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX2RhdGFiYXNlLT5k
b2N1bWVudCgpLmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBt
X2RhdGFiYXNlLT5kb2N1bWVudCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpXSgpIG11dGFibGUgeworICAgICAgICBMT0coU3RvcmFnZUFQSSwgIkNhbGxiYWNrICVzXG4i
LCBkZWJ1Z1N0ZXBOYW1lKG1fbmV4dFN0ZXApKTsKIAotICAgIEFTU0VSVChtX25leHRTdGVwID09
ICZTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclRyYW5zYWN0aW9uQ2FsbGJhY2sKLSAgICAgICAgICAg
fHwgbV9uZXh0U3RlcCA9PSAmU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJUcmFuc2FjdGlvbkVycm9y
Q2FsbGJhY2sKLSAgICAgICAgICAgfHwgbV9uZXh0U3RlcCA9PSAmU1FMVHJhbnNhY3Rpb246OmRl
bGl2ZXJTdGF0ZW1lbnRDYWxsYmFjawotICAgICAgICAgICB8fCBtX25leHRTdGVwID09ICZTUUxU
cmFuc2FjdGlvbjo6ZGVsaXZlclF1b3RhSW5jcmVhc2VDYWxsYmFjawotICAgICAgICAgICB8fCBt
X25leHRTdGVwID09ICZTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclN1Y2Nlc3NDYWxsYmFjayk7Cisg
ICAgICAgIEFTU0VSVChtX25leHRTdGVwID09ICZTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclRyYW5z
YWN0aW9uQ2FsbGJhY2sKKyAgICAgICAgICAgIHx8IG1fbmV4dFN0ZXAgPT0gJlNRTFRyYW5zYWN0
aW9uOjpkZWxpdmVyVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrCisgICAgICAgICAgICB8fCBtX25l
eHRTdGVwID09ICZTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclN0YXRlbWVudENhbGxiYWNrCisgICAg
ICAgICAgICB8fCBtX25leHRTdGVwID09ICZTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclF1b3RhSW5j
cmVhc2VDYWxsYmFjaworICAgICAgICAgICAgfHwgbV9uZXh0U3RlcCA9PSAmU1FMVHJhbnNhY3Rp
b246OmRlbGl2ZXJTdWNjZXNzQ2FsbGJhY2spOwogCi0gICAgY2hlY2tBbmRIYW5kbGVDbG9zZWRE
YXRhYmFzZSgpOworICAgICAgICBjaGVja0FuZEhhbmRsZUNsb3NlZERhdGFiYXNlKCk7CiAKLSAg
ICBpZiAobV9uZXh0U3RlcCkKLSAgICAgICAgKHRoaXMtPiptX25leHRTdGVwKSgpOworICAgICAg
ICBpZiAobV9uZXh0U3RlcCkKKyAgICAgICAgICAgICh0aGlzLT4qbV9uZXh0U3RlcCkoKTsKKyAg
ICB9KTsKIH0KIAogdm9pZCBTUUxUcmFuc2FjdGlvbjo6bm90aWZ5RGF0YWJhc2VUaHJlYWRJc1No
dXR0aW5nRG93bigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTkxMzBlNDA4NTMxM2IwMTU5NTM4NzYzY2MxMjkzZjk0MDRk
MDQxMi4uZTMxN2VkMzg5OGFmZWY3ZWRiYWY1MDBiYTNmMWJiZTMzMWIyYTg3OSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDE5LTEwLTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgRGF0YWJhc2VDb250ZXh0IHNob3VsZCBub3QgcHJldmVudCBlbnRlcmluZyB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDMxMDMKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4K
KworICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmct
dHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24uaHRtbDoKKyAgICAgICAgVXBkYXRl
IGV4aXN0aW5nIHRlc3QgdG8gcmVmbGVjdCBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgVW5tYXJrIHRlc3QgYXMgZmxha3kuCisKIDIwMTktMTAt
MjYgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEVuZm9yY2Ug
dXNlciBnZXN0dXJlIGZvciBnZXRVc2VyTWVkaWEgaW4gY2FzZSBhIHByZXZpb3VzIGdldFVzZXJN
ZWRpYSBjYWxsIHdhcyBkZW5pZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGlu
Zy10cmFuc2FjdGlvbi1leHBlY3RlZC50eHQKaW5kZXggMTZkMDIyZjgzZGEwNDU3OWZjYjUzNmRl
ZTJkNjMyOTM3YTA5MDc5OC4uOTkxYWFlNmM1Y2ZmMDA0MjVmYzEzOGFlODhlZmYxZDRhZWU2MDM0
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0
YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi1l
eHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTQgQEAKLVRlc3RzIHRoYXQgYSBwYWdlIHdpdGggYW4g
b3BlbiBXZWJEYXRhYmFzZSB0aGF0IGhhcyBwZW5kaW5nIHRyYW5zYWN0aW9ucyBkb2VzIG5vdCBn
byBpbnRvIHRoZSBwYWdlIGNhY2hlLgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU1OiBXZWIgU1FM
IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgSW5kZXhlZERCIGluc3RlYWQuCitUZXN0cyB0aGF0
IGEgcGFnZSB3aXRoIGFuIG9wZW4gV2ViRGF0YWJhc2UgdGhhdCBoYXMgcGVuZGluZyB0cmFuc2Fj
dGlvbnMgaXMgYWJsZSB0byBnbyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCiBwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCi1QQVNT
IFBhZ2Ugd2FzIG5vdCByZXN0b3JlZCBmcm9tIHBhZ2UgY2FjaGUKK3BhZ2VoaWRlIC0gZW50ZXJp
bmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdlIGRpZCBlbnRlciBhbmQg
d2FzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorUEFTUyBBbGwgZG9uZQog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5k
aW5nLXRyYW5zYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLmh0bWwKaW5kZXggNTU5NjNiY2ZmNDQ5
Nzc4YTIyZTgxMDdkZjk3OTJjMWYyMjI2YTE3Mi4uMGMxMmE4NGVhYTM5NjhlY2RiZmQyODU1Zjg5
NmQ0NTZlNDcwM2EwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rp
b24uaHRtbApAQCAtMiw1OCArMiw4NSBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KLWRlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGFuIG9wZW4gV2ViRGF0
YWJhc2UgdGhhdCBoYXMgcGVuZGluZyB0cmFuc2FjdGlvbnMgZG9lcyBub3QgZ28gaW50byB0aGUg
cGFnZSBjYWNoZS4nKTsKLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2Rlc2NyaXB0aW9u
KCdUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGFuIG9wZW4gV2ViRGF0YWJhc2UgdGhhdCBoYXMgcGVu
ZGluZyB0cmFuc2FjdGlvbnMgaXMgYWJsZSB0byBnbyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUuJyk7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2xldCByZXN0b3JlZEZyb21DYWNoZSA9IGZh
bHNlOworbGV0IHBlbmRpbmdUcmFuc2FjdGlvbkNvdW50ID0gMDsKIAogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQogICAgIHRlc3RSdW5uZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKIAorZnVuY3Rpb24g
Y2hlY2tUZXN0Q29tcGxldGUoKQoreworICAgIGlmICghcGVuZGluZ1RyYW5zYWN0aW9uQ291bnQg
JiYgcmVzdG9yZWRGcm9tQ2FjaGUpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiQWxsIGRvbmUiKTsK
KyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorfQorCiB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigicGFnZXNob3ciLCBmdW5jdGlvbihldmVudCkgewogICAgIGRlYnVnKCJwYWdlc2hvdyAt
ICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImZyb20gY2FjaGUiKTsKLSAg
ICBpZiAoIXdpbmRvdy5zZXNzaW9uU3RvcmFnZS5wYWdlX2NhY2hlX29wZW5fd2ViZGF0YWJhc2Vf
dGVzdF9zdGFydGVkKQotICAgICAgICByZXR1cm47CiAKLSAgICBkZWxldGUgd2luZG93LnNlc3Np
b25TdG9yYWdlLnBhZ2VfY2FjaGVfb3Blbl93ZWJkYXRhYmFzZV90ZXN0X3N0YXJ0ZWQ7Ci0KLSAg
ICBpZiAoZXZlbnQucGVyc2lzdGVkKQotICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIGRpZCBlbnRl
ciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUiKTsKLSAgICBlbHNlCi0gICAg
ICAgIHRlc3RQYXNzZWQoIlBhZ2Ugd2FzIG5vdCByZXN0b3JlZCBmcm9tIHBhZ2UgY2FjaGUiKTsK
LSAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAg
IHRlc3RQYXNzZWQoIlBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlIik7CisgICAgICAgIHJlc3RvcmVkRnJvbUNhY2hlID0gdHJ1ZTsKKyAg
ICAgICAgY2hlY2tUZXN0Q29tcGxldGUoKTsKKyAgICB9CiB9LCBmYWxzZSk7CiAKIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgZGVidWco
InBhZ2VoaWRlIC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZW50ZXJp
bmcgY2FjaGUiKTsKLSAgICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7Ci0gICAgICAgIHRlc3RGYWls
ZWQoIlBhZ2UgZW50ZXJlZCB0aGUgcGFnZSBjYWNoZS4iKTsKKyAgICBpZiAoIWV2ZW50LnBlcnNp
c3RlZCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJQYWdlIGZhaWxlZCB0byBlbnRlciB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlLiIpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiB9LCBm
YWxzZSk7CiAKK2Z1bmN0aW9uIGhhbmRsZVRyYW5zYWN0aW9uU3VjY2VzcygpCit7CisgICAgcGVu
ZGluZ1RyYW5zYWN0aW9uQ291bnQtLTsKKyAgICBjaGVja1Rlc3RDb21wbGV0ZSgpOworfQorCitm
dW5jdGlvbiBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKCkKK3sKKyAgICBwZW5kaW5nVHJhbnNhY3Rp
b25Db3VudC0tOworICAgIGNoZWNrVGVzdENvbXBsZXRlKCk7Cit9CisKIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7Ci0gICAgLy8gT3BlbiB0aGUgZGF0YWJhc2Uu
Ci0gICAgZGIgPSBvcGVuRGF0YWJhc2UoIlBhZ2VDYWNoZVRlc3QiLCAiIiwgIlBhZ2UgQ2FjaGUg
VGVzdCIsIDMyNzY4KTsKKyAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgZGIgPSBvcGVu
RGF0YWJhc2UoIlBhZ2VDYWNoZVRlc3QiLCAiIiwgIkJhY2sgRm9yd2FyZCBDYWNoZSBUZXN0Iiwg
MzI3NjgpOwogCi0gICAgZGIudHJhbnNhY3Rpb24oZnVuY3Rpb24odHgpIHsKLSAgICAgICAgLy8g
Rm9yY2UgYSBiYWNrIG5hdmlnYXRpb24gYmFjayB0byB0aGlzIHBhZ2UuCi0gICAgICAgIHdpbmRv
dy5zZXNzaW9uU3RvcmFnZS5wYWdlX2NhY2hlX29wZW5fd2ViZGF0YWJhc2VfdGVzdF9zdGFydGVk
ID0gdHJ1ZTsKLSAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAicmVzb3VyY2VzL3BhZ2Ut
Y2FjaGUtaGVscGVyLmh0bWwiOworICAgICAgICBwZW5kaW5nVHJhbnNhY3Rpb25Db3VudCsrOwor
ICAgICAgICBkYi50cmFuc2FjdGlvbihmdW5jdGlvbih0eCkgeworICAgICAgICAgICAgd2luZG93
LmxvY2F0aW9uLmhyZWYgPSAicmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwiOwogCi0g
ICAgICAgIHR4LmV4ZWN1dGVTcWwoJ0NSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIExPR1MgKGlk
IHVuaXF1ZSwgbG9nKScpOwotICAgIH0pOworICAgICAgICAgICAgdHguZXhlY3V0ZVNxbCgnQ1JF
QVRFIFRBQkxFIElGIE5PVCBFWElTVFMgTE9HUyAoaWQgdW5pcXVlLCBsb2cpJywgW10sIGhhbmRs
ZVRyYW5zYWN0aW9uU3VjY2VzcywgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcik7CisgICAgICAgIH0s
ICgpID0+IHsKKyAgICAgICAgICAgIHBlbmRpbmdUcmFuc2FjdGlvbkNvdW50LS07CisgICAgICAg
ICAgICBjaGVja1Rlc3RDb21wbGV0ZSgpOworICAgICAgICB9KTsKIAotICAgIGRiLnRyYW5zYWN0
aW9uKGZ1bmN0aW9uKHR4KSB7Ci0gICAgICAgIHR4LmV4ZWN1dGVTcWwoJ0NSRUFURSBUQUJMRSBJ
RiBOT1QgRVhJU1RTIExPR1MyIChpZCB1bmlxdWUsIGxvZyknKTsKLSAgICB9KTsKKyAgICAgICAg
cGVuZGluZ1RyYW5zYWN0aW9uQ291bnQrKzsKKyAgICAgICAgZGIudHJhbnNhY3Rpb24oZnVuY3Rp
b24odHgpIHsKKyAgICAgICAgICAgIHR4LmV4ZWN1dGVTcWwoJ0NSRUFURSBUQUJMRSBJRiBOT1Qg
RVhJU1RTIExPR1MyIChpZCB1bmlxdWUsIGxvZyknLCBbXSwgaGFuZGxlVHJhbnNhY3Rpb25TdWNj
ZXNzLCBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKTsKKyAgICAgICAgfSwgKCkgPT4geworICAgICAg
ICAgICBwZW5kaW5nVHJhbnNhY3Rpb25Db3VudC0tOworICAgICAgICAgICBjaGVja1Rlc3RDb21w
bGV0ZSgpOworICAgICAgICB9KTsKIAotICAgIGRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKHR4KSB7
Ci0gICAgICAgIHR4LmV4ZWN1dGVTcWwoJ0NSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIExPR1Mz
IChpZCB1bmlxdWUsIGxvZyknKTsKLSAgICB9KTsKKyAgICAgICAgcGVuZGluZ1RyYW5zYWN0aW9u
Q291bnQrKzsKKyAgICAgICAgZGIudHJhbnNhY3Rpb24oZnVuY3Rpb24odHgpIHsKKyAgICAgICAg
ICAgIHR4LmV4ZWN1dGVTcWwoJ0NSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIExPR1MzIChpZCB1
bmlxdWUsIGxvZyknLCBbXSwgaGFuZGxlVHJhbnNhY3Rpb25TdWNjZXNzLCBoYW5kbGVUcmFuc2Fj
dGlvbkVycm9yKTsKKyAgICAgICAgfSwgKCkgPT4geworICAgICAgICAgICBwZW5kaW5nVHJhbnNh
Y3Rpb25Db3VudC0tOworICAgICAgICAgICBjaGVja1Rlc3RDb21wbGV0ZSgpOworICAgICAgICB9
KTsKKyAgICB9LCAwKTsKIH0sIGZhbHNlKTsKLQogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGNmZjdlYWVl
YWUwODZkOWJlNDBkODMwYmRhODY1NmU4NDQzNmMwZTAuLmE2MGZhZmFhNzIxN2I0ZTc5N2Q5NmVm
NjUyNDNmNTJhOWI5MWVhYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zCkBAIC0xNjYzLDcgKzE2NjMsNiBAQCB3ZWJraXQub3JnL2IvMTQ0ODY0IGZhc3QvZXZl
bnRzL2NsZWFyLWVkaXQtZHJhZy1zdGF0ZS5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5v
cmcvYi8xNDQ4NjQgZmFzdC9ldmVudHMvY2xlYXItZHJhZy1zdGF0ZS5odG1sIFsgRmFpbHVyZSBQ
YXNzIF0KIAogd2Via2l0Lm9yZy9iLzE0NTA1MSBtZWRpYS92aWRlby1ydGwuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgUGFzcyBdCi13ZWJraXQub3JnL2IvMTQ1MDUyIGZhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24uaHRtbCBbIEZhaWx1cmUgUGFz
cyBdCiAKIHdlYmtpdC5vcmcvYi8xNDUxNjcgdHJhbnNmb3Jtcy8yZC9wZXJzcGVjdGl2ZS1ub3Qt
Zml4ZWQtY29udGFpbmVyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3MgXQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdkM2VjNDhmYTczZjg3MDEz
ZGM0Mjg3MmEyOTRmMTE2MjRmNTI1NjMuLjcyODdkYzBjNGIzMjI1NTNjODljMjkxYjk0YTUwM2Rh
MGQ3YmM0MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMTk1LDggKzExOTUsNiBAQCB3ZWJraXQub3JnL2IvMTU4ODg5IG1lZGlhL3ZpZGVvLWNvbnRy
b2xzLXNob3ctb24ta2Itb3ItYXgtZXZlbnQuaHRtbCBbIFBhc3MgRmFpbAogIyByZGFyOi8vcHJv
YmxlbS8yNzE0MTI5MQogWyBTaWVycmErIF0gZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNr
LWluLXByZS5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xNTkzNzkgZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KLQogIyByZGFyOi8vcHJvYmxlbS8zMTI0MzgyNAogd2Via2l0Lm9yZy9iLzE1
ODc0NyBtZWRpYS9yZXN0b3JlLWZyb20tcGFnZS1jYWNoZS5odG1sIFsgUGFzcyBGYWlsdXJlIENy
YXNoIF0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382095</attachid>
            <date>2019-10-28 12:33:58 -0700</date>
            <delta_ts>2019-11-05 11:15:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203103-20191028123357.patch</filename>
            <type>text/plain</type>
            <size>18542</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ5Nzg3ZTc5ZDA0YjY1
NzY4MTdhZGNiYjk2NzRiNGNlZDlhZDI0OC4uMzhiOTBkNzBhZmI4NDRiYTAwZDk5MzQ2MTQyMGRj
M2E4NGE4MmI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTEwLTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0YWJhc2VDb250ZXh0IHNo
b3VsZCBub3QgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMxMDMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzU2NTkyMTkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIExldCBwYWdlcyB3aXRoIGFjdGl2ZSB3ZWJkYXRhYmFzZSB0cmFu
c2FjdGlvbnMgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLiBXZSBtYWtlIHN1cmUKKyAgICAg
ICAgdG8gcXVldWUgdGFza3MgdGhhdCBydW4gc2NyaXB0IHRvIHRoZSBXaW5kb3cgZXZlbnQgbG9v
cCwgc28gdGhhdCB0aGV5IGdldCBkZWxheWVkIHdoZW4KKyAgICAgICAgdGhlIGRvY3VtZW50IGlz
IHN1c3BlbmRlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gbWFrZXMgc3VyZSB0aGF0IHRo
ZSB0cmFuc2FjdGlvbidzIGVycm9yIGNhbGxiYWNrIGdldHMgY2FsbGVkIGlmIHRoZSBkYXRhYmFz
ZQorICAgICAgICBnZXRzIGNsb3NlZCB3aGlsZSB0aGUgdHJhbnNhY3Rpb24gaXMgZ29pbmcgb24u
IFdlIHByZXZpb3VzbHkgZGlkIG5vdCBoYXBwZW4gYW5kIGl0IHdhcyBjYXVzaW5nCisgICAgICAg
IGlzc3VlcyBiZWNhdXNlIGRhdGFiYXNlcyBnZXQgY2xvc2VkIG9uIG5hdmlnYXRpb24uCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCB1cGRhdGVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlOjpydW5UcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZUNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VDb250ZXh0OjpzaG91
bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FURUQgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0Lmg6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1FMVHJhbnNhY3Rpb246OnBlcmZvcm1QZW5kaW5nQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6U1FMVHJhbnNhY3Rpb246Om5vdGlmeURhdGFiYXNlVGhyZWFkSXNTaHV0dGluZ0Rvd24pOgor
ICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmNhbGxFcnJvckNhbGxiYWNrRHVlVG9J
bnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmNoZWNrQW5k
SGFuZGxlQ2xvc2VkRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246
OmRlbGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U1FM
VHJhbnNhY3Rpb246OmRlbGl2ZXJTdWNjZXNzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
U1FMVHJhbnNhY3Rpb246OmNvbXB1dGVOZXh0U3RhdGVBbmRDbGVhbnVwSWZOZWVkZWQpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaDoKKwogMjAxOS0xMC0y
NiAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5mb3JjZSB1
c2VyIGdlc3R1cmUgZm9yIGdldFVzZXJNZWRpYSBpbiBjYXNlIGEgcHJldmlvdXMgZ2V0VXNlck1l
ZGlhIGNhbGwgd2FzIGRlbmllZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlLmNwcAppbmRleCAxOTVlNmY3YjIxMWMxZjE5ODdiODlmNTM1YWVlMGEzOWI3
OTI3MWVjLi4zMGQwYTIyYmYzMmE4YWI2NjcxOWM2NjQyNjA5YTk3MDRjMTZhOGFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcApAQCAtNTIs
NiArNTIsNyBAQAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgorI2luY2x1ZGUg
IldpbmRvd0V2ZW50TG9vcC5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC02
ODQsMTAgKzY4NSwxMSBAQCB2b2lkIERhdGFiYXNlOjpyZXNldEF1dGhvcml6ZXIoKQogCiB2b2lk
IERhdGFiYXNlOjpydW5UcmFuc2FjdGlvbihSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4m
JiBjYWxsYmFjaywgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiBlcnJvckNh
bGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaywgUmVmUHRyPFNR
TFRyYW5zYWN0aW9uV3JhcHBlcj4mJiB3cmFwcGVyLCBib29sIHJlYWRPbmx5KQogeworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmFuc2FjdGlv
bkluUHJvZ3Jlc3NNdXRleCk7CiAgICAgaWYgKCFtX2lzVHJhbnNhY3Rpb25RdWV1ZUVuYWJsZWQp
IHsKICAgICAgICAgaWYgKGVycm9yQ2FsbGJhY2spIHsKLSAgICAgICAgICAgIGNhbGxPbk1haW5U
aHJlYWQoW2Vycm9yQ2FsbGJhY2sgPSBtYWtlUmVmKCplcnJvckNhbGxiYWNrKV0oKSB7CisgICAg
ICAgICAgICBtX2RvY3VtZW50LT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0
d29ya2luZywgbV9kb2N1bWVudCwgW2Vycm9yQ2FsbGJhY2sgPSBtYWtlUmVmKCplcnJvckNhbGxi
YWNrKV0oKSB7CiAgICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoU1FM
RXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJkYXRhYmFzZSBoYXMgYmVlbiBj
bG9zZWQiKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwCmluZGV4IDFm
YjA2MWY4YjM3YWYyZGRhYjAzYzk2MzYwOWM5MDFiNmQwZjlkOTYuLmEzY2U3MGM4OGQ0OTgwMjE3
ODI2Njk4Njk1YzdiNDQ1MDU4M2VkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKQEAgLTEzMCwxNSArMTMwLDYg
QEAgdm9pZCBEYXRhYmFzZUNvbnRleHQ6OnN0b3AoKQogICAgIHN0b3BEYXRhYmFzZXMoKTsKIH0K
IAotLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5ldmVyIHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZS4KLWJvb2wgRGF0YWJhc2VDb250ZXh0OjpzaG91bGRQcmV2ZW50RW50ZXJp
bmdCYWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FURUQoKSBjb25zdAotewotICAgIGlmICghaGFzT3Bl
bkRhdGFiYXNlcygpIHx8ICFtX2RhdGFiYXNlVGhyZWFkKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICByZXR1cm4gbV9kYXRhYmFzZVRocmVhZC0+aGFzUGVuZGluZ0RhdGFiYXNlQWN0aXZp
dHkoKTsKLX0KLQogRGF0YWJhc2VUaHJlYWQqIERhdGFiYXNlQ29udGV4dDo6ZGF0YWJhc2VUaHJl
YWQoKQogewogICAgIGlmICghbV9kYXRhYmFzZVRocmVhZCAmJiAhbV9oYXNPcGVuRGF0YWJhc2Vz
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZUNvbnRleHQuaAppbmRleCBiZWY1NTIwODFhNGU4ODIzNDllNWEyMTc0MTM1ZGZlNjQ3MGMxZjI4
Li4xMDU3YTUwMjhhYjY0ODNhYjYyNmMxMDQ0NDU0NDMwN2VlNjFhZTA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmgKQEAg
LTczLDcgKzczLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIG92
ZXJyaWRlOwogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxkUHJldmVu
dEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuICJEYXRhYmFzZUNvbnRleHQiOyB9CiAKICAgICBSZWZQdHI8RGF0YWJhc2VUaHJlYWQ+IG1f
ZGF0YWJhc2VUaHJlYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKaW5kZXggMDVkZmEzNzkyZDQ0MGM2YTMxZWRmOWI4
ODFkYmRmMTk4ZTdiOGM0Ni4uYTAxNTk5MzU3ZmUwYTY3NjE4MjczMmU4ZDE5NWJhMTY2NDc3NDcx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VNYW5hZ2VyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlNjcmlwdENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xOTIsNiArMTkz
LDcgQEAgdm9pZCBEYXRhYmFzZU1hbmFnZXI6OnJlbW92ZVByb3Bvc2VkRGF0YWJhc2UoUHJvcG9z
ZWREYXRhYmFzZSYgZGF0YWJhc2UpCiAKIEV4Y2VwdGlvbk9yPFJlZjxEYXRhYmFzZT4+IERhdGFi
YXNlTWFuYWdlcjo6b3BlbkRhdGFiYXNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNw
bGF5TmFtZSwgdW5zaWduZWQgZXN0aW1hdGVkU2l6ZSwgUmVmUHRyPERhdGFiYXNlQ2FsbGJhY2s+
JiYgY3JlYXRpb25DYWxsYmFjaykKIHsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
IFNjcmlwdENvbnRyb2xsZXI6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKIAogICAgIGJvb2wgc2V0
VmVyc2lvbkluTmV3RGF0YWJhc2UgPSAhY3JlYXRpb25DYWxsYmFjazsKQEAgLTIwOCw3ICsyMTAs
NyBAQCBFeGNlcHRpb25PcjxSZWY8RGF0YWJhc2U+PiBEYXRhYmFzZU1hbmFnZXI6Om9wZW5EYXRh
YmFzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbgogICAgIGlmIChkYXRhYmFzZS0+aXNOZXcoKSAm
JiBjcmVhdGlvbkNhbGxiYWNrLmdldCgpKSB7CiAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiU2No
ZWR1bGluZyBEYXRhYmFzZUNyZWF0aW9uQ2FsbGJhY2tUYXNrIGZvciBkYXRhYmFzZSAlcFxuIiwg
ZGF0YWJhc2UuZ2V0KCkpOwogICAgICAgICBkYXRhYmFzZS0+c2V0SGFzUGVuZGluZ0NyZWF0aW9u
RXZlbnQodHJ1ZSk7Ci0gICAgICAgIGRhdGFiYXNlLT5tX2RvY3VtZW50LT5wb3N0VGFzayhbY3Jl
YXRpb25DYWxsYmFjaywgZGF0YWJhc2VdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAg
ICAgICBkYXRhYmFzZS0+bV9kb2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3Vy
Y2U6Ok5ldHdvcmtpbmcsIGRhdGFiYXNlLT5tX2RvY3VtZW50LCBbY3JlYXRpb25DYWxsYmFjaywg
ZGF0YWJhc2VdKCkgewogICAgICAgICAgICAgY3JlYXRpb25DYWxsYmFjay0+aGFuZGxlRXZlbnQo
KmRhdGFiYXNlKTsKICAgICAgICAgICAgIGRhdGFiYXNlLT5zZXRIYXNQZW5kaW5nQ3JlYXRpb25F
dmVudChmYWxzZSk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAppbmRleCBhYzQ5MGY1NzZkMGNiYzU4
YjExMDc1MWJhMWIzY2Y5Y2Y5M2IzNjFmLi40ZTliZDYzYzE1Mjc5N2JiZWM4NzAwMjNhMWE0NWFm
NTlmYWI1N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFRyYW5zYWN0aW9uLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlNRTFRy
YW5zYWN0aW9uRXJyb3JDYWxsYmFjay5oIgogI2luY2x1ZGUgIlNRTGl0ZVRyYW5zYWN0aW9uLmgi
CiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCisjaW5jbHVkZSAiV2luZG93RXZlbnRMb29wLmgi
CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTEwOSw2ICsxMTAsNyBAQCB2b2lkIFNRTFRy
YW5zYWN0aW9uOjpwZXJmb3JtTmV4dFN0ZXAoKQogCiB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwZXJm
b3JtUGVuZGluZ0NhbGxiYWNrKCkKIHsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
IExPRyhTdG9yYWdlQVBJLCAiQ2FsbGJhY2sgJXNcbiIsIGRlYnVnU3RlcE5hbWUobV9uZXh0U3Rl
cCkpOwogCiAgICAgQVNTRVJUKG1fbmV4dFN0ZXAgPT0gJlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVy
VHJhbnNhY3Rpb25DYWxsYmFjawpAQCAtMTI1LDkgKzEyNywyNSBAQCB2b2lkIFNRTFRyYW5zYWN0
aW9uOjpwZXJmb3JtUGVuZGluZ0NhbGxiYWNrKCkKIAogdm9pZCBTUUxUcmFuc2FjdGlvbjo6bm90
aWZ5RGF0YWJhc2VUaHJlYWRJc1NodXR0aW5nRG93bigpCiB7CisgICAgY2FsbE9uTWFpblRocmVh
ZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIG11dGFibGUgeworICAg
ICAgICBjYWxsRXJyb3JDYWxsYmFja0R1ZVRvSW50ZXJydXB0aW9uKCk7CisgICAgfSk7CisKICAg
ICBtX2JhY2tlbmQubm90aWZ5RGF0YWJhc2VUaHJlYWRJc1NodXR0aW5nRG93bigpOwogfQogCit2
b2lkIFNRTFRyYW5zYWN0aW9uOjpjYWxsRXJyb3JDYWxsYmFja0R1ZVRvSW50ZXJydXB0aW9uKCkK
K3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGF1dG8gZXJyb3JDYWxsYmFjayA9
IG1fZXJyb3JDYWxsYmFja1dyYXBwZXIudW53cmFwKCk7CisgICAgaWYgKCFlcnJvckNhbGxiYWNr
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RhdGFiYXNlLT5kb2N1bWVudCgpLmV2ZW50TG9v
cCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBtX2RhdGFiYXNlLT5kb2N1bWVu
dCgpLCBbZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayldKCkgbXV0YWJsZSB7
CisgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFNRTEVycm9yOjpjcmVhdGUoU1FM
RXJyb3I6OkRBVEFCQVNFX0VSUiwgInRoZSBkYXRhYmFzZSB3YXMgY2xvc2VkIikpOworICAgIH0p
OworfQorCiB2b2lkIFNRTFRyYW5zYWN0aW9uOjplbnF1ZXVlU3RhdGVtZW50KHN0ZDo6dW5pcXVl
X3B0cjxTUUxTdGF0ZW1lbnQ+IHN0YXRlbWVudCkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3N0YXRlbWVudE11dGV4KTsKQEAgLTE4MCw2ICsxOTgsOCBAQCB2b2lkIFNRTFRyYW5zYWN0aW9u
OjpjaGVja0FuZEhhbmRsZUNsb3NlZERhdGFiYXNlKCkKICAgICBtX3N0YXRlbWVudFF1ZXVlLmNs
ZWFyKCk7CiAgICAgbV9uZXh0U3RlcCA9IG51bGxwdHI7CiAKKyAgICBjYWxsRXJyb3JDYWxsYmFj
a0R1ZVRvSW50ZXJydXB0aW9uKCk7CisKICAgICAvLyBSZWxlYXNlIHRoZSB1bm5lZWRlZCBjYWxs
YmFja3MsIHRvIGJyZWFrIHJlZmVyZW5jZSBjeWNsZXMuCiAgICAgbV9jYWxsYmFja1dyYXBwZXIu
Y2xlYXIoKTsKICAgICBtX3N1Y2Nlc3NDYWxsYmFja1dyYXBwZXIuY2xlYXIoKTsKQEAgLTM5NCw4
ICs0MTQsMTEgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjaygpCiAgICAgLy8gU3BlYyA0LjMuMi4xMDogSWYgZXhpc3RzLCBpbnZva2UgZXJyb3Ig
Y2FsbGJhY2sgd2l0aCB0aGUgbGFzdAogICAgIC8vIGVycm9yIHRvIGhhdmUgb2NjdXJyZWQgaW4g
dGhpcyB0cmFuc2FjdGlvbi4KICAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNr
PiBlcnJvckNhbGxiYWNrID0gbV9lcnJvckNhbGxiYWNrV3JhcHBlci51bndyYXAoKTsKLSAgICBp
ZiAoZXJyb3JDYWxsYmFjaykKLSAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoKm1f
dHJhbnNhY3Rpb25FcnJvcik7CisgICAgaWYgKGVycm9yQ2FsbGJhY2spIHsKKyAgICAgICAgbV9k
YXRhYmFzZS0+ZG9jdW1lbnQoKS5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0
d29ya2luZywgbV9kYXRhYmFzZS0+ZG9jdW1lbnQoKSwgW2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3Zl
KGVycm9yQ2FsbGJhY2spLCB0cmFuc2FjdGlvbkVycm9yID0gbV90cmFuc2FjdGlvbkVycm9yXSgp
IG11dGFibGUgeworICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoKnRyYW5z
YWN0aW9uRXJyb3IpOworICAgICAgICB9KTsKKyAgICB9CiAKICAgICBjbGVhckNhbGxiYWNrV3Jh
cHBlcnMoKTsKIApAQCAtNDQyLDggKzQ2NSwxMSBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpkZWxp
dmVyU3VjY2Vzc0NhbGxiYWNrKCkKIHsKICAgICAvLyBTcGVjIDQuMy4yLjg6IERlbGl2ZXIgc3Vj
Y2VzcyBjYWxsYmFjay4KICAgICBSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2sg
PSBtX3N1Y2Nlc3NDYWxsYmFja1dyYXBwZXIudW53cmFwKCk7Ci0gICAgaWYgKHN1Y2Nlc3NDYWxs
YmFjaykKLSAgICAgICAgc3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVFdmVudCgpOworICAgIGlmIChz
dWNjZXNzQ2FsbGJhY2spIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+ZG9jdW1lbnQoKS5ldmVudExv
b3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgbV9kYXRhYmFzZS0+ZG9jdW1l
bnQoKSwgW3N1Y2Nlc3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKV0oKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoKTsKKyAgICAg
ICAgfSk7CisgICAgfQogCiAgICAgY2xlYXJDYWxsYmFja1dyYXBwZXJzKCk7CiAKQEAgLTQ3NSw3
ICs1MDEsOCBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpjb21wdXRlTmV4dFN0YXRlQW5kQ2xlYW51
cElmTmVlZGVkKCkKIAogICAgICAgICBMT0coU3RvcmFnZUFQSSwgIkNhbGxiYWNrICVzXG4iLCBu
YW1lRm9yU1FMVHJhbnNhY3Rpb25TdGF0ZShtX25leHRTdGF0ZSkpOwogICAgICAgICByZXR1cm47
Ci0gICAgfQorICAgIH0gZWxzZQorICAgICAgICBjYWxsRXJyb3JDYWxsYmFja0R1ZVRvSW50ZXJy
dXB0aW9uKCk7CiAKICAgICBjbGVhckNhbGxiYWNrV3JhcHBlcnMoKTsKICAgICBtX2JhY2tlbmQu
cmVxdWVzdFRyYW5zaXRUb1N0YXRlKFNRTFRyYW5zYWN0aW9uU3RhdGU6OkNsZWFudXBBbmRUZXJt
aW5hdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxU
cmFuc2FjdGlvbi5oCmluZGV4IGUyYzM4N2FhYThlNDhjNzdjODBjZGI4YTJhYmNiZGY2ZTI5ZDZh
YmUuLjU0MGY2ZTMxZmYzYjNlMjkxMmE5OGU3ZjJkODA3OWJhNTkwMGEyYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmgKQEAg
LTEwNSw2ICsxMDUsOCBAQCBwcml2YXRlOgogCiAgICAgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQg
dm9pZCB1bnJlYWNoYWJsZVN0YXRlKCk7CiAKKyAgICB2b2lkIGNhbGxFcnJvckNhbGxiYWNrRHVl
VG9JbnRlcnJ1cHRpb24oKTsKKwogICAgIHZvaWQgZ2V0TmV4dFN0YXRlbWVudCgpOwogICAgIGJv
b2wgcnVuQ3VycmVudFN0YXRlbWVudCgpOwogICAgIHZvaWQgaGFuZGxlQ3VycmVudFN0YXRlbWVu
dEVycm9yKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYTkxMzBlNDA4NTMxM2IwMTU5NTM4NzYzY2MxMjkzZjk0MDRkMDQx
Mi4uZjhlNWE3NjI1ZWFmZjk5NmRkYjRjOTI1NjI2N2ZjZGVlYzYxNWQ4MiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDE5LTEwLTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgRGF0YWJhc2VDb250ZXh0IHNob3VsZCBub3QgcHJldmVudCBlbnRlcmluZyB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDMxMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NTkyMTkzPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi1leHBlY3RlZC50
eHQ6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGlu
Zy10cmFuc2FjdGlvbi5odG1sOgorICAgICAgICBVcGRhdGUgZXhpc3RpbmcgdGVzdCB0byByZWZs
ZWN0IGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICBVbm1hcmsgdGVzdCBhcyBmbGFreS4KKwogMjAxOS0xMC0yNiAgeW91ZW5uIGZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5mb3JjZSB1c2VyIGdlc3R1cmUgZm9yIGdldFVz
ZXJNZWRpYSBpbiBjYXNlIGEgcHJldmlvdXMgZ2V0VXNlck1lZGlhIGNhbGwgd2FzIGRlbmllZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJh
c2UtcGVuZGluZy10cmFuc2FjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLWV4cGVjdGVk
LnR4dAppbmRleCAxNmQwMjJmODNkYTA0NTc5ZmNiNTM2ZGVlMmQ2MzI5MzdhMDkwNzk4Li5jMWEz
MzgwZTZlYjAzMDk0ODY4ZGJkNTRmMTFlMmQ4NWMzMjRhM2Y0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0
aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSwxMCAr
MSwxNCBAQAotVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhbiBvcGVuIFdlYkRhdGFiYXNlIHRoYXQg
aGFzIHBlbmRpbmcgdHJhbnNhY3Rpb25zIGRvZXMgbm90IGdvIGludG8gdGhlIHBhZ2UgY2FjaGUu
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTQ6IFdlYiBTUUwgaXMgZGVwcmVjYXRlZC4gUGxlYXNl
IHVzZSBJbmRleGVkREIgaW5zdGVhZC4KK1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggYW4gb3BlbiBX
ZWJEYXRhYmFzZSB0aGF0IGhhcyBwZW5kaW5nIHRyYW5zYWN0aW9ucyBpcyBhYmxlIHRvIGdvIGlu
dG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgog
CiAKIHBhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKLVBBU1MgUGFnZSB3YXMgbm90IHJlc3RvcmVk
IGZyb20gcGFnZSBjYWNoZQorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNoZQorcGFnZXNob3cgLSBm
cm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlCitQQVNTIEFsbCBkb25lCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmct
dHJhbnNhY3Rpb24uaHRtbAppbmRleCA1NTk2M2JjZmY0NDk3NzhhMjJlODEwN2RmOTc5MmMxZjIy
MjZhMTcyLi42OWFmZTI5ZWJiNzQ1YzlkNTMxOGJjMjRiZTI4YTAxMWExZWVhMDFhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5k
aW5nLXRyYW5zYWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi5odG1sCkBAIC0yLDU4ICsyLDc1
IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZGVzY3JpcHRpb24oJ1Rl
c3RzIHRoYXQgYSBwYWdlIHdpdGggYW4gb3BlbiBXZWJEYXRhYmFzZSB0aGF0IGhhcyBwZW5kaW5n
IHRyYW5zYWN0aW9ucyBkb2VzIG5vdCBnbyBpbnRvIHRoZSBwYWdlIGNhY2hlLicpOwotd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdlIHdp
dGggYW4gb3BlbiBXZWJEYXRhYmFzZSB0aGF0IGhhcyBwZW5kaW5nIHRyYW5zYWN0aW9ucyBpcyBh
YmxlIHRvIGdvIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworbGV0IHJlc3RvcmVkRnJvbUNhY2hlID0gZmFsc2U7CitsZXQgcGVuZGluZ1RyYW5z
YWN0aW9uQ291bnQgPSAwOwogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5l
ci5jbGVhckFsbERhdGFiYXNlcygpOwogCitmdW5jdGlvbiBjaGVja1Rlc3RDb21wbGV0ZSgpCit7
CisgICAgaWYgKCFwZW5kaW5nVHJhbnNhY3Rpb25Db3VudCAmJiByZXN0b3JlZEZyb21DYWNoZSkg
eworICAgICAgICB0ZXN0UGFzc2VkKCJBbGwgZG9uZSIpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9Cit9CisKIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsIGZ1bmN0
aW9uKGV2ZW50KSB7CiAgICAgZGVidWcoInBhZ2VzaG93IC0gIiArIChldmVudC5wZXJzaXN0ZWQg
PyAiIiA6ICJub3QgIikgKyAiZnJvbSBjYWNoZSIpOwotICAgIGlmICghd2luZG93LnNlc3Npb25T
dG9yYWdlLnBhZ2VfY2FjaGVfb3Blbl93ZWJkYXRhYmFzZV90ZXN0X3N0YXJ0ZWQpCi0gICAgICAg
IHJldHVybjsKIAotICAgIGRlbGV0ZSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucGFnZV9jYWNoZV9v
cGVuX3dlYmRhdGFiYXNlX3Rlc3Rfc3RhcnRlZDsKLQotICAgIGlmIChldmVudC5wZXJzaXN0ZWQp
Ci0gICAgICAgIHRlc3RGYWlsZWQoIlBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJv
bSB0aGUgcGFnZSBjYWNoZSIpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSB3
YXMgbm90IHJlc3RvcmVkIGZyb20gcGFnZSBjYWNoZSIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgIGlmIChldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQg
ZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUiKTsKKyAg
ICAgICAgcmVzdG9yZWRGcm9tQ2FjaGUgPSB0cnVlOworICAgICAgICBjaGVja1Rlc3RDb21wbGV0
ZSgpOworICAgIH0KIH0sIGZhbHNlKTsKIAogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2Vo
aWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKICAgICBkZWJ1ZygicGFnZWhpZGUgLSAiICsgKGV2ZW50
LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJlbnRlcmluZyBjYWNoZSIpOwotICAgIGlmIChl
dmVudC5wZXJzaXN0ZWQpIHsKLSAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBlbnRlcmVkIHRoZSBw
YWdlIGNhY2hlLiIpOworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RG
YWlsZWQoIlBhZ2UgZmFpbGVkIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuIik7CiAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIH0sIGZhbHNlKTsKIAorZnVuY3Rpb24gaGFu
ZGxlVHJhbnNhY3Rpb25Db21wbGV0ZSgpCit7CisgICAgaWYgKCFwZW5kaW5nVHJhbnNhY3Rpb25D
b3VudCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJUb28gbWFueSBjb21wbGV0aW9uIGhhbmRsZXJz
Iik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KKworICAgIHBlbmRpbmdUcmFuc2Fj
dGlvbkNvdW50LS07CisgICAgY2hlY2tUZXN0Q29tcGxldGUoKTsKK30KKwogd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKLSAgICAvLyBPcGVuIHRoZSBkYXRhYmFz
ZS4KLSAgICBkYiA9IG9wZW5EYXRhYmFzZSgiUGFnZUNhY2hlVGVzdCIsICIiLCAiUGFnZSBDYWNo
ZSBUZXN0IiwgMzI3NjgpOworICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICBkYiA9IG9w
ZW5EYXRhYmFzZSgiUGFnZUNhY2hlVGVzdCIsICIiLCAiQmFjayBGb3J3YXJkIENhY2hlIFRlc3Qi
LCAzMjc2OCk7CiAKLSAgICBkYi50cmFuc2FjdGlvbihmdW5jdGlvbih0eCkgewotICAgICAgICAv
LyBGb3JjZSBhIGJhY2sgbmF2aWdhdGlvbiBiYWNrIHRvIHRoaXMgcGFnZS4KLSAgICAgICAgd2lu
ZG93LnNlc3Npb25TdG9yYWdlLnBhZ2VfY2FjaGVfb3Blbl93ZWJkYXRhYmFzZV90ZXN0X3N0YXJ0
ZWQgPSB0cnVlOwotICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICJyZXNvdXJjZXMvcGFn
ZS1jYWNoZS1oZWxwZXIuaHRtbCI7CisgICAgICAgIHBlbmRpbmdUcmFuc2FjdGlvbkNvdW50Kys7
CisgICAgICAgIGRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKHR4KSB7CisgICAgICAgICAgICB3aW5k
b3cubG9jYXRpb24uaHJlZiA9ICJyZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXIuaHRtbCI7CiAK
LSAgICAgICAgdHguZXhlY3V0ZVNxbCgnQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgTE9HUyAo
aWQgdW5pcXVlLCBsb2cpJyk7Ci0gICAgfSk7CisgICAgICAgICAgICB0eC5leGVjdXRlU3FsKCdD
UkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBMT0dTIChpZCB1bmlxdWUsIGxvZyknKTsKKyAgICAg
ICAgfSwgaGFuZGxlVHJhbnNhY3Rpb25Db21wbGV0ZSwgaGFuZGxlVHJhbnNhY3Rpb25Db21wbGV0
ZSk7CiAKLSAgICBkYi50cmFuc2FjdGlvbihmdW5jdGlvbih0eCkgewotICAgICAgICB0eC5leGVj
dXRlU3FsKCdDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBMT0dTMiAoaWQgdW5pcXVlLCBsb2cp
Jyk7Ci0gICAgfSk7CisgICAgICAgIHBlbmRpbmdUcmFuc2FjdGlvbkNvdW50Kys7CisgICAgICAg
IGRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKHR4KSB7CisgICAgICAgICAgICB0eC5leGVjdXRlU3Fs
KCdDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBMT0dTMiAoaWQgdW5pcXVlLCBsb2cpJyk7Cisg
ICAgICAgIH0sIGhhbmRsZVRyYW5zYWN0aW9uQ29tcGxldGUsIGhhbmRsZVRyYW5zYWN0aW9uQ29t
cGxldGUpOwogCi0gICAgZGIudHJhbnNhY3Rpb24oZnVuY3Rpb24odHgpIHsKLSAgICAgICAgdHgu
ZXhlY3V0ZVNxbCgnQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgTE9HUzMgKGlkIHVuaXF1ZSwg
bG9nKScpOwotICAgIH0pOworICAgICAgICBwZW5kaW5nVHJhbnNhY3Rpb25Db3VudCsrOworICAg
ICAgICBkYi50cmFuc2FjdGlvbihmdW5jdGlvbih0eCkgeworICAgICAgICAgICAgdHguZXhlY3V0
ZVNxbCgnQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgTE9HUzMgKGlkIHVuaXF1ZSwgbG9nKScp
OworICAgICAgICB9LCBoYW5kbGVUcmFuc2FjdGlvbkNvbXBsZXRlLCBoYW5kbGVUcmFuc2FjdGlv
bkNvbXBsZXRlKTsKKyAgICB9LCAwKTsKIH0sIGZhbHNlKTsKLQogPC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IGNmZjdlYWVlYWUwODZkOWJlNDBkODMwYmRhODY1NmU4NDQzNmMwZTAuLmE2MGZhZmFhNzIxN2I0
ZTc5N2Q5NmVmNjUyNDNmNTJhOWI5MWVhYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0xNjYzLDcgKzE2NjMsNiBAQCB3ZWJraXQub3JnL2IvMTQ0ODY0
IGZhc3QvZXZlbnRzL2NsZWFyLWVkaXQtZHJhZy1zdGF0ZS5odG1sIFsgRmFpbHVyZSBQYXNzIF0K
IHdlYmtpdC5vcmcvYi8xNDQ4NjQgZmFzdC9ldmVudHMvY2xlYXItZHJhZy1zdGF0ZS5odG1sIFsg
RmFpbHVyZSBQYXNzIF0KIAogd2Via2l0Lm9yZy9iLzE0NTA1MSBtZWRpYS92aWRlby1ydGwuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCi13ZWJraXQub3JnL2IvMTQ1MDUyIGZhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24uaHRtbCBbIEZh
aWx1cmUgUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8xNDUxNjcgdHJhbnNmb3Jtcy8yZC9wZXJzcGVj
dGl2ZS1ub3QtZml4ZWQtY29udGFpbmVyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3MgXQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdkM2VjNDhm
YTczZjg3MDEzZGM0Mjg3MmEyOTRmMTE2MjRmNTI1NjMuLjcyODdkYzBjNGIzMjI1NTNjODljMjkx
Yjk0YTUwM2RhMGQ3YmM0MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0xMTk1LDggKzExOTUsNiBAQCB3ZWJraXQub3JnL2IvMTU4ODg5IG1lZGlhL3Zp
ZGVvLWNvbnRyb2xzLXNob3ctb24ta2Itb3ItYXgtZXZlbnQuaHRtbCBbIFBhc3MgRmFpbAogIyBy
ZGFyOi8vcHJvYmxlbS8yNzE0MTI5MQogWyBTaWVycmErIF0gZWRpdGluZy9zZWxlY3Rpb24vdHJp
cGxlLWNsaWNrLWluLXByZS5odG1sIFsgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xNTkzNzkg
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KLQogIyByZGFyOi8vcHJvYmxlbS8zMTI0MzgyNAogd2Via2l0
Lm9yZy9iLzE1ODc0NyBtZWRpYS9yZXN0b3JlLWZyb20tcGFnZS1jYWNoZS5odG1sIFsgUGFzcyBG
YWlsdXJlIENyYXNoIF0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>