<?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>99244</bug_id>
          
          <creation_ts>2012-10-13 01:12:29 -0700</creation_ts>
          <short_desc>According to DOM4, all DocType nodes should have a document</short_desc>
          <delta_ts>2019-02-06 09:02:30 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BlinkMergeCandidate</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>syoichi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>741447</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-13 01:12:29 -0700</bug_when>
    <thetext>According to DOM4, all DocType nodes should have a document</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741448</commentid>
    <comment_count>1</comment_count>
      <attachid>168546</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-13 01:12:44 -0700</bug_when>
    <thetext>Created attachment 168546
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741449</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-13 01:13:28 -0700</bug_when>
    <thetext>Once this lands, this will simply a ton of special cases related to DocType nodes throughout WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741511</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-13 12:29:34 -0700</bug_when>
    <thetext>I suggest waiting until (and if) DOM 4 gains any official capacity. This is a direct violation of each and every official specification, and a working draft cannot override that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922134</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-28 11:50:09 -0700</bug_when>
    <thetext>*** Bug 120425 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922159</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-08-28 12:50:43 -0700</bug_when>
    <thetext>Alexey, based on your comment in the duplicate bug, I assume you are still not in favor of making this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922161</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-08-28 12:58:58 -0700</bug_when>
    <thetext>I think that it&apos;s crazy and destructive to change specs like this. I don&apos;t have much of an opinion on whether WebKit should accept this change at this point in time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922283</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-28 18:15:14 -0700</bug_when>
    <thetext>We can easily remove the tons of special cases in WebCore another way. There’s no harm in having the DocumentType have a document that is not visible to the web through the ownerDocument attribute. And document() can return that document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922411</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-08-29 05:36:04 -0700</bug_when>
    <thetext>We should do this. It fixes a hole in platform consistency and is obscure enough that it has virtually zero probability of breaking anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922415</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-08-29 05:39:33 -0700</bug_when>
    <thetext>I would be happy to port my Blink patch if the approach (same as DOM4) is accepted for WebKit:
https://src.chromium.org/viewvc/blink?revision=156581&amp;view=revision

Let me know.
I haven&apos;t done so yet because of Darin and Alexey&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922419</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-08-29 05:44:13 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I would be happy to port my Blink patch if the approach (same as DOM4) is accepted for WebKit:
&gt; https://src.chromium.org/viewvc/blink?revision=156581&amp;view=revision
&gt; 
&gt; Let me know.
&gt; I haven&apos;t done so yet because of Darin and Alexey&apos;s comments.

As explained in my duplicate bug, Firefox stable already ships with the behavior specified in DOM4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922420</commentid>
    <comment_count>11</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-29 05:44:31 -0700</bug_when>
    <thetext>I think we should make this change. The invariant of every Node always has a Document is very valuable, and like Antti, I doubt anyone relies on this quirk.

In fact, even if DOM4 hadn&apos;t changed, I *still* think we should be making the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922533</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-29 10:28:22 -0700</bug_when>
    <thetext>Yes, I think fixing this DocumentType silliness is helpful and highly unlikely to be a compatibility problem despite the years of having a standard clearly stating it should work that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922535</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-29 10:28:40 -0700</bug_when>
    <thetext>Don’t let my comment stand in your way!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922587</commentid>
    <comment_count>14</comment_count>
      <attachid>210010</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-08-29 11:59:59 -0700</bug_when>
    <thetext>Created attachment 210010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922600</commentid>
    <comment_count>15</comment_count>
      <attachid>210010</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-08-29 12:17:50 -0700</bug_when>
    <thetext>Comment on attachment 210010
Patch

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

&gt; Source/WebCore/dom/Node.h:404
&gt;      Document* document() const

I guess it would be nice to return a reference now. I would be happy to do that in a follow-up patch unless someone knows of a reason why we shouldn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922602</commentid>
    <comment_count>16</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-29 12:19:38 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 210010 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=210010&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Node.h:404
&gt; &gt;      Document* document() const
&gt; 
&gt; I guess it would be nice to return a reference now. I would be happy to do that in a follow-up patch unless someone knows of a reason why we shouldn&apos;t.

I already have a draft monster patch for doing this (it&apos;ll be &gt;1MB) so you shouldn&apos;t waste your time doing the same thing. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922634</commentid>
    <comment_count>17</comment_count>
      <attachid>210010</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-08-29 13:23:17 -0700</bug_when>
    <thetext>Comment on attachment 210010
Patch

Thanks for reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922652</commentid>
    <comment_count>18</comment_count>
      <attachid>210010</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-29 13:47:12 -0700</bug_when>
    <thetext>Comment on attachment 210010
Patch

Clearing flags on attachment: 210010

Committed r154840: &lt;http://trac.webkit.org/changeset/154840&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922653</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-29 13:47:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502784</commentid>
    <comment_count>20</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:02:30 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168546</attachid>
            <date>2012-10-13 01:12:44 -0700</date>
            <delta_ts>2013-08-29 11:59:42 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-99244-20121013011139.patch</filename>
            <type>text/plain</type>
            <size>3059</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQwMjc0MTZkOGM4ZTQ1
NjU0ODkyOTdhNjA3NzgyZjNkZmI4M2YzZS4uZjc2YmM4ZDhkNDk4OTc4MTEwMWVkY2E4ZTMyYzlh
YjIyNTU4MmMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTEzICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWNjb3JkaW5nIHRvIERPTTQs
IGFsbCBEb2NUeXBlIG5vZGVzIHNob3VsZCBoYXZlIGEgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MjQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBv
ZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXIt
ZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50VHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRv
cHROb2RlKToKKwogMjAxMi0xMC0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggR3JhcGhpY3NMYXllckNBIHZpc2libGUgcmVjdCBjb21wdXRh
dGlvbiBpbiB0aGUgZmFjZSBvZiBwZXJzcGVjdGl2ZSBhbmQgcHJlc2VydmUtM2QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IDI3NjkzYjM0MDkzNzk3MzQ4OGIx
NmNlNjcyNGUyODZhNzVjYjg4NmYuLjdkYjVjNmY0MzdmZTdlYzQxZjNkMTRhNGUwMzk0Zjg2OGFi
OTAwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtMjcz
LDcgKzI3Myw3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBET01JbXBsZW1lbnRhdGlvbjo6
Y3JlYXRlRG9jdW1lbnRUeXBlKGNvbnN0IFN0cmluZyYgcXVhCiAgICAgaWYgKCFEb2N1bWVudDo6
cGFyc2VRdWFsaWZpZWROYW1lKHF1YWxpZmllZE5hbWUsIHByZWZpeCwgbG9jYWxOYW1lLCBlYykp
CiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIERvY3VtZW50VHlwZTo6Y3JlYXRlKDAs
IHF1YWxpZmllZE5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCk7CisgICAgcmV0dXJuIERvY3VtZW50
VHlwZTo6Y3JlYXRlKG1fZG9jdW1lbnQsIHF1YWxpZmllZE5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1J
ZCk7CiB9CiAKIERPTUltcGxlbWVudGF0aW9uKiBET01JbXBsZW1lbnRhdGlvbjo6Z2V0SW50ZXJm
YWNlKGNvbnN0IFN0cmluZyYgLypmZWF0dXJlKi8pCkBAIC0zMDUsMTQgKzMwNSwxMCBAQCBQYXNz
UmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJiBuYW1lc3BhY2VVUgogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAg
Ly8gV1JPTkdfRE9DVU1FTlRfRVJSOiBSYWlzZWQgaWYgZG9jdHlwZSBoYXMgYWxyZWFkeSBiZWVu
IHVzZWQgd2l0aCBhIGRpZmZlcmVudCBkb2N1bWVudCBvciB3YXMKLSAgICAvLyBjcmVhdGVkIGZy
b20gYSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24uCi0gICAgLy8gSGl4aWUncyBpbnRlcnByZXRh
dGlvbiBvZiB0aGUgRE9NIENvcmUgc3BlYyBzdWdnZXN0cyB3ZSBzaG91bGQgcHJlZmVyCi0gICAg
Ly8gb3RoZXIgZXhjZXB0aW9ucyB0byBXUk9OR19ET0NVTUVOVF9FUlIgKGJhc2VkIG9uIG9yZGVy
IG1lbnRpb25lZCBpbiBzcGVjKSwKLSAgICAvLyBidXQgdGhpcyBtYXRjaGVzIHRoZSBuZXcgRE9N
IENvcmUgc3BlYyAoaHR0cDovL3d3dy53My5vcmcvVFIvZG9tY29yZS8pLgogICAgIGlmIChkb2N0
eXBlICYmIGRvY3R5cGUtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgZWMgPSBXUk9OR19ET0NVTUVO
VF9FUlI7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICBkb2MtPmFkb3B0Tm9kZShkb2N0eXBl
LCBlYyk7CisgICAgICAgIGlmIChlYykKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAog
ICAgIC8vIEZJWE1FOiBTaG91bGRuJ3QgdGhpcyBjYWxsIGFwcGVuZENoaWxkIGluc3RlYWQ/CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1NzE0MjM1ODE3MDA2YjY1NjI0NWFkM2IxZTA0MTJj
ODU1ZTRlMGY3Li5iMGVhNjQzOWEwYjA2YzM5NmViYzI3ZjQzOGZiMTRkN2M5YjVlYTkzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwMzIsNyArMTAzMiw2IEBAIFBhc3NSZWZQdHI8Tm9k
ZT4gRG9jdW1lbnQ6OmFkb3B0Tm9kZShQYXNzUmVmUHRyPE5vZGU+IHNvdXJjZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgY2FzZSBFTlRJVFlfTk9ERToKICAgICBjYXNlIE5PVEFUSU9OX05PREU6
CiAgICAgY2FzZSBET0NVTUVOVF9OT0RFOgotICAgIGNhc2UgRE9DVU1FTlRfVFlQRV9OT0RFOgog
ICAgIGNhc2UgWFBBVEhfTkFNRVNQQUNFX05PREU6CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRF
RF9FUlI7CiAgICAgICAgIHJldHVybiAwOyAgICAgICAgICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210010</attachid>
            <date>2013-08-29 11:59:59 -0700</date>
            <delta_ts>2013-08-29 13:47:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99244-20130829215955.patch</filename>
            <type>text/plain</type>
            <size>21098</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0ODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA2NTJmY2M0Y2Y1Y2Jk
OTNjZmQ3MmQ2OTI2MjViOWEwZTZkZWE1ZS4uN2VjOTQxNTNkMGFiM2NmNThiN2JiODA3ODE1ZDRk
MTE0NGZkMzIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTA4LTI5ICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBBY2Nv
cmRpbmcgdG8gRE9NNCwgYWxsIERvY1R5cGUgbm9kZXMgc2hvdWxkIGhhdmUgYSBkb2N1bWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkyNDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb2N0eXBlcyBu
b3cgYWx3YXlzIGhhdmUgYSBub2RlIGRvY3VtZW50IGFuZCBjYW4gYmUgbW92ZWQgYWNyb3NzIGRv
Y3VtZW50IGJvdW5kYXJpZXMgYXMgcGVyCisgICAgICAgIHRoZSBsYXRlc3QgRE9NNCBzcGVjaWZp
Y2F0aW9uOgorICAgICAgICBodHRwOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jZG9tLWRvbWltcGxl
bWVudGF0aW9uLWNyZWF0ZWRvY3VtZW50dHlwZQorICAgICAgICBodHRwOi8vZG9tLnNwZWMud2hh
dHdnLm9yZy8jZG9tLW5vZGUtb3duZXJkb2N1bWVudAorCisgICAgICAgIFRoaXMgbWVhbnMgdGhh
dCBET01JbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoKSBub3cgc2V0cyB0aGUgb3du
ZXJEb2N1bWVudCBvZiB0aGUKKyAgICAgICAgbmV3IERvY3VtZW50VHlwZSBOb2RlIHRvIHRoZSBh
c3NvY2lhdGVkIGRvY3VtZW50IG9mIHRoZSBjdXJyZW50ICJjb250ZXh0IiBvYmplY3QuIEluCisg
ICAgICAgIERPTTQsIGFsbCBub2RlcyBoYXZlIGEgZG9jdW1lbnQgYXQgYWxsIHRpbWVzLiBEb2N1
bWVudFR5cGUgbm9kZXMgY2FuIG5vdyBiZSBtb3ZlZCBhY3Jvc3MKKyAgICAgICAgZG9jdW1lbnQg
Ym91bmRhcmllcyBzbyB0aGF0IHRoZSBub2RlIGNhbiBiZSBhZGRlZCB0byBhIERvY3VtZW50IGFm
dGVyIGJlaW5nIGNyZWF0ZWQuCisKKyAgICAgICAgVGhpcyBtZWFucyB3ZSB3aWxsIG5vIGxvbmdl
ciBuZWVkIHRvIHNwZWNpYWwgY2FzZSBEb2N1bWVudFR5cGUgbm9kZXMgaW4gdGhlIGNvZGUgYW5k
CisgICAgICAgIE5vZGU6OmRvY3VtZW50KCkgY2FuIG5vIGxvbmdlciByZXR1cm4gTlVMTCwgd2hp
Y2ggbWVhbnMgdGhhdCB3ZSdsbCBiZSBhYmxlIHRvIHJlbW92ZQorICAgICAgICBOVUxMIGNoZWNr
cyBpbiBjYWxsIHNpdGVzLgorCisgICAgICAgIEZpcmVmb3ggc3RhYmxlIGFuZCBzaW5jZSByZWNl
bnRseSBCbGluayBhbHJlYWR5IGZvbGxvdyBET000IGhlcmUgd2hpbGUgSUUxMCBkb2VzIG5vdCAo
eWV0KS4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9jcmVhdGVEb2N1bWVudFR5cGUtb3duZXJE
b2N1bWVudC5odG1sCisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjaGVja0FjY2VwdENoaWxkKToKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURv
Y3VtZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRl
RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
Ojpkb2N1bWVudCk6CisKIDIwMTMtMDgtMjkgIFByYXRpayBTb2xhbmtpICA8cHJhdGlrLnNvbGFu
a2lAZ21haWwuY29tPgogCiAgICAgICAgIFNoYXJlZEJ1ZmZlciBtX3NlZ21lbnRzIGFuZCBtX2Rh
dGFBcnJheSBtdXN0IGJlIGV4Y2x1c2l2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3Bw
CmluZGV4IGM3OTI5N2FkYjQyY2Q4MDExODE4NGU5NzJhYzQ0YmU3ZjU2YWNjNmYuLjFiYWM5MDkz
ODJmMDZmZGQyYTk3YTU5NDdkMGJkMjY2MzAzZTRkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5jcHAKQEAgLTIxMyw4ICsyMTMsNiBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbkNv
ZGUgY2hlY2tBY2NlcHRDaGlsZChDb250YWluZXJOb2RlKiBuZXdQYXJlbnQsIE5vZGUqIG5ldwog
CiAgICAgaWYgKG5ld1BhcmVudC0+aXNSZWFkT25seU5vZGUoKSkKICAgICAgICAgcmV0dXJuIE5P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUjsKLSAgICBpZiAobmV3Q2hpbGQtPmluRG9jdW1lbnQo
KSAmJiBuZXdDaGlsZC0+aXNEb2N1bWVudFR5cGVOb2RlKCkpCi0gICAgICAgIHJldHVybiBISUVS
QVJDSFlfUkVRVUVTVF9FUlI7CiAgICAgaWYgKGNvbnRhaW5zQ29uc2lkZXJpbmdIb3N0RWxlbWVu
dHMobmV3Q2hpbGQsIG5ld1BhcmVudCkpCiAgICAgICAgIHJldHVybiBISUVSQVJDSFlfUkVRVUVT
VF9FUlI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IGU4
MWNhOGRmYTA2MWZmYzE2YzVjNDJhMDkzM2ZjYjhiMTEyN2Q2YzAuLmNkNzZmZmJlMDg2OGQ5OGI1
YWNiZjZhNTVkZDc3OWJmYzg5M2U4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcApAQCAtMjE5LDcgKzIxOSw3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBE
T01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnRUeXBlKGNvbnN0IFN0cmluZyYgcXVhCiAg
ICAgaWYgKCFEb2N1bWVudDo6cGFyc2VRdWFsaWZpZWROYW1lKHF1YWxpZmllZE5hbWUsIHByZWZp
eCwgbG9jYWxOYW1lLCBlYykpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIERvY3Vt
ZW50VHlwZTo6Y3JlYXRlKDAsIHF1YWxpZmllZE5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCk7Cisg
ICAgcmV0dXJuIERvY3VtZW50VHlwZTo6Y3JlYXRlKG1fZG9jdW1lbnQsIHF1YWxpZmllZE5hbWUs
IHB1YmxpY0lkLCBzeXN0ZW1JZCk7CiB9CiAKIERPTUltcGxlbWVudGF0aW9uKiBET01JbXBsZW1l
bnRhdGlvbjo6Z2V0SW50ZXJmYWNlKGNvbnN0IFN0cmluZyYgLypmZWF0dXJlKi8pCkBAIC0yNTEs
MTYgKzI1MSw2IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVh
dGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSCiAgICAgICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAKLSAgICAvLyBXUk9OR19ET0NVTUVOVF9FUlI6IFJhaXNlZCBpZiBkb2N0eXBl
IGhhcyBhbHJlYWR5IGJlZW4gdXNlZCB3aXRoIGEgZGlmZmVyZW50IGRvY3VtZW50IG9yIHdhcwot
ICAgIC8vIGNyZWF0ZWQgZnJvbSBhIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICAvLyBI
aXhpZSdzIGludGVycHJldGF0aW9uIG9mIHRoZSBET00gQ29yZSBzcGVjIHN1Z2dlc3RzIHdlIHNo
b3VsZCBwcmVmZXIKLSAgICAvLyBvdGhlciBleGNlcHRpb25zIHRvIFdST05HX0RPQ1VNRU5UX0VS
UiAoYmFzZWQgb24gb3JkZXIgbWVudGlvbmVkIGluIHNwZWMpLAotICAgIC8vIGJ1dCB0aGlzIG1h
dGNoZXMgdGhlIG5ldyBET00gQ29yZSBzcGVjIChodHRwOi8vd3d3LnczLm9yZy9UUi9kb21jb3Jl
LykuCi0gICAgaWYgKGRvY3R5cGUgJiYgZG9jdHlwZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICBl
YyA9IFdST05HX0RPQ1VNRU5UX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCiAgICAg
aWYgKGRvY3R5cGUpCiAgICAgICAgIGRvYy0+YXBwZW5kQ2hpbGQoZG9jdHlwZSk7CiAgICAgaWYg
KGRvY3VtZW50RWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGQ4YjZlYzcyYmYwNTJjMGU0N2FkY2Vl
ZjkzZGEwMDU3NDI3N2ExZTYuLjdjNzAyNjYxYTZmNGVmNmM0NGM4MjkyZTVjNTdiMGI5OTM2MzA0
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaApAQCAtMzk1LDE4ICszOTUsMTYgQEAgcHVibGljOgogCiAgICAgdW5z
aWduZWQgbm9kZUluZGV4KCkgY29uc3Q7CiAKLSAgICAvLyBSZXR1cm5zIHRoZSBET00gb3duZXJE
b2N1bWVudCBhdHRyaWJ1dGUuIFRoaXMgbWV0aG9kIG5ldmVyIHJldHVybnMgTlVMTCwgZXhjZXB0
IGluIHRoZSBjYXNlIAotICAgIC8vIG9mICgxKSBhIERvY3VtZW50IG5vZGUgb3IgKDIpIGEgRG9j
dW1lbnRUeXBlIG5vZGUgdGhhdCBpcyBub3QgdXNlZCB3aXRoIGFueSBEb2N1bWVudCB5ZXQuIAor
ICAgIC8vIFJldHVybnMgdGhlIERPTSBvd25lckRvY3VtZW50IGF0dHJpYnV0ZS4gVGhpcyBtZXRo
b2QgbmV2ZXIgcmV0dXJucyAwLCBleGNlcHQgaW4gdGhlIGNhc2UKKyAgICAvLyBvZiBhIERvY3Vt
ZW50IG5vZGUuCiAgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQoKSBjb25zdDsKIAotICAgIC8v
IFJldHVybnMgdGhlIGRvY3VtZW50IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG5vZGUuIFRoaXMgbWV0
aG9kIG5ldmVyIHJldHVybnMgTlVMTCwgZXhjZXB0IGluIHRoZSBjYXNlIAotICAgIC8vIG9mIGEg
RG9jdW1lbnRUeXBlIG5vZGUgdGhhdCBpcyBub3QgdXNlZCB3aXRoIGFueSBEb2N1bWVudCB5ZXQu
IEEgRG9jdW1lbnQgbm9kZSByZXR1cm5zIGl0c2VsZi4KKyAgICAvLyBSZXR1cm5zIHRoZSBkb2N1
bWVudCBhc3NvY2lhdGVkIHdpdGggdGhpcyBub2RlLiBUaGlzIG1ldGhvZCBuZXZlciByZXR1cm5z
IDAuCisgICAgLy8gQSBEb2N1bWVudCBub2RlIHJldHVybnMgaXRzZWxmLgogICAgIERvY3VtZW50
KiBkb2N1bWVudCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQodGhpcyk7Ci0gICAgICAg
IC8vIEZJWE1FOiBiZWxvdyBBU1NFUlQgaXMgdXNlZnVsLCBidXQgcHJldmVudHMgdGhlIHVzZSBv
ZiBkb2N1bWVudCgpIGluIHRoZSBjb25zdHJ1Y3RvciBvciBkZXN0cnVjdG9yCi0gICAgICAgIC8v
IGR1ZSB0byB0aGUgdmlydHVhbCBmdW5jdGlvbiBjYWxsIHRvIG5vZGVUeXBlKCkuCi0gICAgICAg
IEFTU0VSVChkb2N1bWVudEludGVybmFsKCkgfHwgKG5vZGVUeXBlKCkgPT0gRE9DVU1FTlRfVFlQ
RV9OT0RFICYmICFpbkRvY3VtZW50KCkpKTsKKyAgICAgICAgQVNTRVJUKGRvY3VtZW50SW50ZXJu
YWwoKSk7CiAgICAgICAgIHJldHVybiBkb2N1bWVudEludGVybmFsKCk7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNDI4MDc3Mzc1NjUzYTRjNjMwYjhmZjJiMWUyNmYwODNkODdlMjFiMi4uZWY2ZmMyNGQyNDA3
ZmRhM2JkMTkyOGY2OWNjNzdmMDA5ODEwZGMxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEz
LTA4LTI5ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KKwor
ICAgICAgICBBY2NvcmRpbmcgdG8gRE9NNCwgYWxsIERvY1R5cGUgbm9kZXMgc2hvdWxkIGhhdmUg
YSBkb2N1bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTkyNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgbGF5b3V0IHRlc3QgdG8gY2hlY2sgdGhhdCBEb2N1bWVudFR5cGUgTm9kZXMgaGF2ZSBh
IGRvY3VtZW50IGFmdGVyIGJlaW5nCisgICAgICAgIGNyZWF0ZWQuIEFsc28gdXBkYXRlIGEgZmV3
IGV4aXN0aW5nIHRlc3QgY2FzZXMgdG8gcmVmbGVjdCB0aGlzIGNoYW5nZS4KKworICAgICAgICAq
IGZhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL2NyZWF0ZURvY3VtZW50LXdpdGgtdXNlZC1kb2N0
eXBlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9j
cmVhdGVEb2N1bWVudC13aXRoLXVzZWQtZG9jdHlwZS5odG1sOgorICAgICAgICAqIGZhc3QvZG9t
L0RPTUltcGxlbWVudGF0aW9uL3Jlc291cmNlcy9jcmVhdGVEb2N1bWVudC13aXRoLXVzZWQtZG9j
dHlwZS1mcmFtZS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1hNTFNlcmlhbGl6ZXItZG9jdHlw
ZTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL1hNTFNlcmlhbGl6ZXItZG9jdHlw
ZTIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9jcmVhdGVEb2N1bWVudFR5cGUtb3duZXJEb2N1
bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2NyZWF0ZURvY3Vt
ZW50VHlwZS1vd25lckRvY3VtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL21v
dmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50cy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL25vZGUt
aXRlcmF0b3Itd2l0aC1kb2N0eXBlLXJvb3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL25vZGUtaXRlcmF0b3Itd2l0aC1kb2N0eXBlLXJvb3QuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2V2ZW50cy9kaXNwYXRjaC1ldmVudC1uby1kb2N1bWVudC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9ldmVudHMvZGlzcGF0Y2gtZXZlbnQtbm8tZG9jdW1lbnQuaHRtbDoKKwogMjAxMy0w
OC0yOSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IENvbnNvbGlkYXRlIGluc3BlY3Rvci1wcm90b2NvbCBEZWJ1Z2dlciB0ZXN0
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vY3Jl
YXRlRG9jdW1lbnQtd2l0aC11c2VkLWRvY3R5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vY3JlYXRlRG9jdW1lbnQtd2l0aC11c2VkLWRvY3R5
cGUtZXhwZWN0ZWQudHh0CmluZGV4IDY5Y2ZjNWE5OGRiNzRmYmUzMmFjOWI2NzhhNjEzNGFmOTcz
NmRkNTkuLjVjYWY2ODc5ZTczZmQ2YmJlNWNhZGZkMTVkMTQzMjYxNWU1ZmEwNDQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL2NyZWF0ZURvY3VtZW50
LXdpdGgtdXNlZC1kb2N0eXBlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi9jcmVhdGVEb2N1bWVudC13aXRoLXVzZWQtZG9jdHlwZS1leHBl
Y3RlZC50eHQKQEAgLTEsMiArMSwxNyBAQAotUEFTUworZG9jdW1lbnQuaW1wbGVtZW50YXRpb24u
Y3JlYXRlRG9jdW1lbnQgd2l0aCBjdXJyZW50IGRvY3VtZW50J3MgRE9DVFlQRS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9u
LmNyZWF0ZURvY3VtZW50KG51bGwsIG51bGwsIGRvY3VtZW50LmRvY3R5cGUpIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBkb2MuZG9jdHlwZSBpcyBkb2N0eXBlCitQQVNTIGRvYy5maXJz
dENoaWxkIGlzIGRvY3R5cGUKK1BBU1MgZG9jdW1lbnQuZG9jdHlwZSBpcyBudWxsCisKKworCisK
KworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUltcGxlbWVudGF0aW9uL2NyZWF0ZURv
Y3VtZW50LXdpdGgtdXNlZC1kb2N0eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01J
bXBsZW1lbnRhdGlvbi9jcmVhdGVEb2N1bWVudC13aXRoLXVzZWQtZG9jdHlwZS5odG1sCmluZGV4
IDQyYzIzODgzOTg1MGIwZjUyYzdhN2VkOWE0ZmNiOTNmMGY3MzVkNTQuLjM0ZGJiN2Q5Y2E0MjU5
MGNiMTY5OGE1ZjNiYzBkNTM0OWEyM2M2ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0RPTUltcGxlbWVudGF0aW9uL2NyZWF0ZURvY3VtZW50LXdpdGgtdXNlZC1kb2N0eXBlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NSW1wbGVtZW50YXRpb24vY3JlYXRlRG9j
dW1lbnQtd2l0aC11c2VkLWRvY3R5cGUuaHRtbApAQCAtMSwxOCArMSw3IEBACiA8Ym9keT4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotfQotCi1mdW5jdGlvbiBn
YygpCi17Ci0gICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybiBHQ0Nv
bnRyb2xsZXIuY29sbGVjdCgpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsr
KQotICAgICAgICB2YXIgcyA9IG5ldyBTdHJpbmcoIiIpOwotfQord2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCiAvLyBSZWxvYWQgbXVsdGlwbGUgdGltZXMsIHRvIG1ha2UgY3Jhc2hpbmcg
bW9yZSBsaWtlbHkuCiB2YXIgaXRlcmF0aW9uc0xlZnQgPSA1MDsKQEAgLTIyLDEyICsxMSwxMSBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgZnJhbWVzWzBdLmhpc3RvcnkuZ28oMCk7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgZ2MoKTsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlc3VsdCIpLmlubmVyVGV4dCA9IGZyYW1lc1swXS5kb2N1bWVudC5ib2R5LnRleHRDb250ZW50
OwotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgZGVidWcoZnJhbWVzWzBdLmRvY3VtZW50LmJvZHkub3V0
ZXJIVE1MKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogfQogPC9zY3JpcHQ+Ci08
ZGl2IGlkPSJyZXN1bHQiPkZBSUw8L2Rpdj4KIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvY3JlYXRl
RG9jdW1lbnQtd2l0aC11c2VkLWRvY3R5cGUtZnJhbWUuaHRtbCIgb25sb2FkPSJ0ZXN0KCkiPjwv
aWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9N
SW1wbGVtZW50YXRpb24vcmVzb3VyY2VzL2NyZWF0ZURvY3VtZW50LXdpdGgtdXNlZC1kb2N0eXBl
LWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01JbXBsZW1lbnRhdGlvbi9yZXNv
dXJjZXMvY3JlYXRlRG9jdW1lbnQtd2l0aC11c2VkLWRvY3R5cGUtZnJhbWUuaHRtbAppbmRleCBl
MGU3ZTY3OTVkN2E4OTFmYjI0Mzc2MGY0MjA3YzYzNTE3ZjVjODVkLi5lYzY2ODdiODA1YjY4ZWEw
ZmM2NGU2ZTYzNmFhYzAwZmQ4ODAzODUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi9yZXNvdXJjZXMvY3JlYXRlRG9jdW1lbnQtd2l0aC11c2VkLWRv
Y3R5cGUtZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01JbXBsZW1lbnRh
dGlvbi9yZXNvdXJjZXMvY3JlYXRlRG9jdW1lbnQtd2l0aC11c2VkLWRvY3R5cGUtZnJhbWUuaHRt
bApAQCAtMSwxNyArMSwxOCBAQAogPCFkb2N0eXBlIGh0bWw+Ci08dGl0bGU+ZG9jdW1lbnQuaW1w
bGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQgd2l0aCBjdXJyZW50IGRvY3VtZW50J3MgRE9DVFlQ
RTwvdGl0bGU+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+CiA8Ym9keT4KLUZBSUwgKFNj
cmlwdCBkaWQgbm90IHJ1bik7CiA8c2NyaXB0PgotZG9jdW1lbnQuYm9keS50ZXh0Q29udGVudCA9
ICJGQUlMIjsKLXRyeSB7Ci0gICAgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1l
bnQobnVsbCwgbnVsbCwgZG9jdW1lbnQuZG9jdHlwZSk7Ci0gICAgZG9jdW1lbnQuYm9keS50ZXh0
Q29udGVudCA9ICJGQUlMIChubyBleGNlcHRpb24pIjsKLX0KLWNhdGNoKGUpIHsKLSAgICBpZiAo
ZS5jb2RlID09PSBET01FeGNlcHRpb24uV1JPTkdfRE9DVU1FTlRfRVJSIHx8IGUuY29kZSA9PT0g
RE9NRXhjZXB0aW9uLk5PVF9TVVBQT1JURURfRVJSKQotICAgICAgICBkb2N1bWVudC5ib2R5LnRl
eHRDb250ZW50ID0gIlBBU1MiOwotICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnQuYm9keS50ZXh0
Q29udGVudCA9ICJGQUlMICh3cm9uZyBleGNlcHRpb246ICIgKyBlLmNvZGUgKyAiKSI7Ci19Citk
ZXNjcmlwdGlvbigiZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQgd2l0aCBj
dXJyZW50IGRvY3VtZW50J3MgRE9DVFlQRS4iKTsKKwordmFyIGRvY3R5cGUgPSBkb2N1bWVudC5k
b2N0eXBlOwordmFyIGRvYzsKK3Nob3VsZE5vdFRocm93KCJkb2MgPSBkb2N1bWVudC5pbXBsZW1l
bnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCBudWxsLCBkb2N1bWVudC5kb2N0eXBlKSIpOwor
c2hvdWxkQmUoJ2RvYy5kb2N0eXBlJywgJ2RvY3R5cGUnKTsKK3Nob3VsZEJlKCdkb2MuZmlyc3RD
aGlsZCcsICdkb2N0eXBlJyk7CitzaG91bGRCZSgnZG9jdW1lbnQuZG9jdHlwZScsICdudWxsJyk7
CiA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1hNTFNlcmlhbGl6ZXItZG9jdHlwZTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vWE1MU2VyaWFsaXplci1kb2N0eXBlMi1leHBlY3RlZC50eHQKaW5kZXggYWJmOGUy
MDBhNTBmNWRhMjY0NGE5Y2U2ODczM2M5ZjY2NGJkYWUxYS4uMzEwNGI1ZGI4M2M0MDA1NmZkODVi
MjM2N2M0YTg0NDRlNDhiZjliMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vWE1M
U2VyaWFsaXplci1kb2N0eXBlMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vWE1MU2VyaWFsaXplci1kb2N0eXBlMi1leHBlY3RlZC50eHQKQEAgLTEsMiArMSw4IEBACi1U
aGlzIHRlc3RzIFhNTFNlcmlhbGl6ZXIuc2VyaWFsaXplVG9TdHJpbmcoKSBvbiBhIERvY3VtZW50
VHlwZSBub2RlIHRoYXQgZG9lcyBub3QgaGF2ZSBhIGRvY3VtZW50IGFzc29jaWF0ZWQgd2l0aCBp
dC4gSXQgc2hvdWxkIHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBET01FeGNlcHRpb24uCi1Q
QVNTOiBhbiBFcnJvcjogSW52YWxpZEFjY2Vzc0Vycm9yOiBET00gRXhjZXB0aW9uIDE1IHdhcyB0
aHJvd24gYXMgZXhwZWN0ZWQuCitUaGlzIHRlc3RzIFhNTFNlcmlhbGl6ZXIuc2VyaWFsaXplVG9T
dHJpbmcoKSBvbiBhIG5ld2x5IGNyZWF0ZWQgRG9jdW1lbnRUeXBlIG5vZGUgZG9lcyBub3QgdGhy
b3cgc2luY2UgdGhlIG5vZGUgaGFzIGFuIGFzc29jaWF0ZWQgZG9jdW1lbnQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRleHQgPSBzZXJpYWxpemVyLnNlcmlhbGl6ZVRv
U3RyaW5nKGRvY1R5cGUpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyB0ZXh0IGlzICI8
IURPQ1RZUEUgYURvY1R5cGVOYW1lIFBVQkxJQyBcImFQdWJsaWNJRFwiIFwiYVN5c3RlbUlEXCI+
IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9YTUxTZXJpYWxpemVyLWRvY3R5
cGUyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9YTUxTZXJpYWxpemVyLWRvY3R5cGUyLmh0
bWwKaW5kZXggNWRhZjhjYjhmYjU4Y2Y3NDNjZTk1OGUwNjcyNDAxMDZiMmUyNTYxMy4uNmFmYzgw
OWViODc4OGE2M2Y3ZDA5OTdiNGJmZjJhYmY5MzFiODc5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vWE1MU2VyaWFsaXplci1kb2N0eXBlMi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1hNTFNlcmlhbGl6ZXItZG9jdHlwZTIuaHRtbApAQCAtMSwzNyArMSwxOSBAQAog
PGh0bWw+CiA8aGVhZD4KLSAgICA8c2NyaXB0PgotICAgICAgICBmdW5jdGlvbiBkZWJ1ZyhzdHIp
IHsKLSAgICAgICAgICAgIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKLSAgICAg
ICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOwotICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChs
aSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0cygpIHsKLSAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLQotICAgICAgICAgICAgdmFyIGRvY1R5cGUgPSB3aW5kb3cuZG9jdW1lbnQu
aW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnRUeXBlKCJhRG9jVHlwZU5hbWUiLCAiYVB1Ymxp
Y0lEIiwgImFTeXN0ZW1JRCIpOworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0cyBYTUxTZXJpYWxpemVyLnNlcmlhbGl6ZVRvU3RyaW5nKCkgb24gYSBuZXds
eSBjcmVhdGVkIERvY3VtZW50VHlwZSBub2RlIGRvZXMgbm90IHRocm93IHNpbmNlIHRoZSBub2Rl
IGhhcyBhbiBhc3NvY2lhdGVkIGRvY3VtZW50LiIpOwogCi0gICAgICAgICAgICB2YXIgc2VyaWFs
aXplciA9IG5ldyBYTUxTZXJpYWxpemVyKCk7Cit2YXIgZG9jVHlwZSA9IHdpbmRvdy5kb2N1bWVu
dC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoImFEb2NUeXBlTmFtZSIsICJhUHVi
bGljSUQiLCAiYVN5c3RlbUlEIik7CiAKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAg
ICAgdmFyIHRleHQgPSBzZXJpYWxpemVyLnNlcmlhbGl6ZVRvU3RyaW5nKGRvY1R5cGUpOwotICAg
ICAgICAgICAgICAgIGRlYnVnKCJGQUlMOiBYTUxTZXJpYWxpemVyLnNlcmlhbGl6ZVRvU3RyaW5n
KCkgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBpdCB0cmllcyB0byBzZXJpYWxpemUgYSBk
b2N1bWVudGxlc3MgRG9jdW1lbnRUeXBlIG5vZGUuIik7Ci0gICAgICAgICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGUgPT0gIkVycm9yOiBJbnZhbGlkQWNjZXNzRXJyb3I6
IERPTSBFeGNlcHRpb24gMTUiKQotICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiUEFTUzogYW4g
IiArIGUgKyAiIHdhcyB0aHJvd24gYXMgZXhwZWN0ZWQuIikKLSAgICAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgIGRlYnVnKCJGQUlMOiBYTUxTZXJpYWxpemVyLnNlcmlhbGl6
ZVRvU3RyaW5nKCkgc2hvdWxkIHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBET01FeGVwdGlv
biBpZiBpdCB0cmllcyB0byBzZXJpYWxpemUgYSBkb2N1bWVudGxlc3MgRG9jdW1lbnRUeXBlIG5v
ZGUuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICA8L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+Ci1UaGlzIHRlc3RzIFhNTFNlcmlhbGl6ZXIuc2Vy
aWFsaXplVG9TdHJpbmcoKSBvbiBhIERvY3VtZW50VHlwZSBub2RlIHRoYXQgZG9lcyBub3QgaGF2
ZSBhIGRvY3VtZW50IGFzc29jaWF0ZWQKLXdpdGggaXQuICBJdCBzaG91bGQgdGhyb3cgYW4gSU5W
QUxJRF9BQ0NFU1NfRVJSIERPTUV4Y2VwdGlvbi4KK3ZhciBzZXJpYWxpemVyID0gbmV3IFhNTFNl
cmlhbGl6ZXIoKTsKIAotPHVsIGlkPSJjb25zb2xlIj4KLTwvdWw+Cit2YXIgdGV4dDsKK3Nob3Vs
ZE5vdFRocm93KCJ0ZXh0ID0gc2VyaWFsaXplci5zZXJpYWxpemVUb1N0cmluZyhkb2NUeXBlKSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXh0IiwgIjwhRE9DVFlQRSBhRG9jVHlwZU5hbWUg
UFVCTElDIFwiYVB1YmxpY0lEXCIgXCJhU3lzdGVtSURcIj4iKTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jcmVhdGVEb2N1bWVu
dFR5cGUtb3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9j
cmVhdGVEb2N1bWVudFR5cGUtb3duZXJEb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTYyOTA3N2YxN2QwNGYyNTUxNGU5NzQyYzkwZjFmMGNiMTAyMDFjMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2NyZWF0ZURvY3VtZW50VHlwZS1vd25lckRvY3VtZW50
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyB0aGF0IERPTUltcGxlbWVudGF0
aW9uLmNyZWF0ZURvY3VtZW50VHlwZSgpIHByb3Blcmx5IHNldHMgdGhlIG5vZGUncyBkb2N1bWVu
dCB0byB0aGUgYXNzb2NpYXRlZCBkb2N1bWVudCBvZiB0aGUgY29udGV4dCBvYmplY3QuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY1R5cGUub3duZXJEb2N1bWVudCBp
cyBkb2N1bWVudAorUEFTUyBuZXdEb2N1bWVudCA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNy
ZWF0ZURvY3VtZW50KCcnLCBudWxsLCBkb2NUeXBlKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
K1BBU1MgbmV3RG9jdW1lbnQuZG9jdHlwZSBpcyBkb2NUeXBlCitQQVNTIG5ld0RvY3VtZW50LmRv
Y3R5cGUub3duZXJEb2N1bWVudCBpcyBuZXdEb2N1bWVudAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2NyZWF0ZURvY3VtZW50VHlwZS1vd25lckRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9jcmVhdGVEb2N1bWVudFR5cGUtb3duZXJEb2N1bWVudC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFjZTljY2UyMDZiODcyYmJlMDg1YjVhNDRlMTVhMTMyZTFhMDZkZGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jcmVhdGVEb2N1bWVudFR5cGUtb3duZXJEb2N1
bWVudC5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMi9XRC1k
b20tMjAxMjEyMDYvI2RvbS1kb21pbXBsZW1lbnRhdGlvbi1jcmVhdGVkb2N1bWVudHR5cGUiPgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBET01JbXBs
ZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoKSBwcm9wZXJseSBzZXRzIHRoZSBub2RlJ3Mg
ZG9jdW1lbnQgdG8gdGhlIGFzc29jaWF0ZWQgZG9jdW1lbnQgb2YgdGhlIGNvbnRleHQgb2JqZWN0
LiIpOwordmFyIGRvY1R5cGUgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVu
dFR5cGUoImh0bWwiLCBudWxsLCBudWxsKTsKK3Nob3VsZEJlKCJkb2NUeXBlLm93bmVyRG9jdW1l
bnQiLCAiZG9jdW1lbnQiKTsKK3ZhciBuZXdEb2N1bWVudDsKK3Nob3VsZE5vdFRocm93KCJuZXdE
b2N1bWVudCA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCcnLCBudWxs
LCBkb2NUeXBlKSIpOworc2hvdWxkQmUoIm5ld0RvY3VtZW50LmRvY3R5cGUiLCAiZG9jVHlwZSIp
Oworc2hvdWxkQmUoIm5ld0RvY3VtZW50LmRvY3R5cGUub3duZXJEb2N1bWVudCIsICJuZXdEb2N1
bWVudCIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL21vdmUtbm9kZXMtYWNyb3NzLWRvY3VtZW50cy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vbW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWwKaW5kZXggNThl
YjNkYTMwYjViOWQ2ZTJlMGQ3N2JjMjY4MzFjZGIzZDUxYWYyZi4uZDM1MDFhMTdkYjg2YzRlYzg2
MGZiNWYxMjJjN2Q1Y2RhZTZmNWEzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
bW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vbW92ZS1ub2Rlcy1hY3Jvc3MtZG9jdW1lbnRzLmh0bWwKQEAgLTE2OCw3ICsxNjgsNyBAQCBm
dW5jdGlvbiBydW4oKQogICAgIH0pOwogICAgIHJ1blRlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAg
IGlmcmFtZURvYy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgnJywgJ2h0bWwnLCBkb2N1
bWVudC5kb2N0eXBlKTsgCi0gICAgfSwgJ1dyb25nRG9jdW1lbnRFcnJvcicpOworICAgIH0pOwog
ICAgIHJ1blRlc3QoZnVuY3Rpb24oKSB7CiAgICAgICAgIHJhbmdlSW5JZnJhbWUoKS5jb21wYXJl
Qm91bmRhcnlQb2ludHMoUmFuZ2UuRU5EX1RPX0VORCwgcmFuZ2VJbkN1cnJlbnREb2N1bWVudCgp
KTsKICAgICB9LCAnV3JvbmdEb2N1bWVudEVycm9yJyk7CkBAIC0xNzksNyArMTc5LDcgQEAgZnVu
Y3Rpb24gcnVuKCkKICAgICBydW5UZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICBpZnJhbWVEb2Mu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuZG9jdHlwZSk7CiAgICAgICAgIGNvbnNvbGUubG9nKGRvY3Vt
ZW50LmRvY3R5cGUpOwotICAgIH0sICdIaWVyYXJjaHlSZXF1ZXN0RXJyb3InKTsKKyAgICB9LCAn
Tm90Rm91bmRFcnJvcicpOwogCiAgICAgLy8gV2hlbiBzZXR0aW5nIGEgYm91bmRhcnkgb2YgdGhl
IHJhbmdlIGluIGEgZGlmZmVyZW50CiAgICAgLy8gZG9jdW1lbnQsIHRoZSBjYWxsIHNob3VsZCBz
dWNjZWVkIGFuZCB0aGUgcmFuZ2Ugc2hvdWxkIGJlIGNvbGxhcHNlZC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL25vZGUtaXRlcmF0b3Itd2l0aC1kb2N0eXBlLXJvb3QtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1pdGVyYXRvci13aXRoLWRvY3R5cGUt
cm9vdC1leHBlY3RlZC50eHQKaW5kZXggNTZkYTMxN2FhZTg0N2FlYmVkNThmZjI1MDVhMDZkYjBl
YWQ4YTAxYy4uYmUxOTBmMTg0YmRlYzhhZThhY2FiNzM3NzM5ZjYzMDU3NjA5MTNmNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1pdGVyYXRvci13aXRoLWRvY3R5cGUtcm9v
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZS1pdGVyYXRvci13
aXRoLWRvY3R5cGUtcm9vdC1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiBOb2RlSXRlcmF0
b3Igcm9vdGVkIGF0IGEgRG9jdW1lbnRUeXBlIG5vZGUgbm90IHlldCBhc3NvY2lhdGVkIHdpdGgg
YSBkb2N1bWVudDoKLVBBU1MgaXRlci5yZWZlcmVuY2VOb2RlLm93bmVyRG9jdW1lbnQgaXMgbnVs
bAorUEFTUyBpdGVyLnJlZmVyZW5jZU5vZGUub3duZXJEb2N1bWVudCBpcyBkb2N1bWVudAogUEFT
UyBpdGVyLm5leHROb2RlKCkgaXMgZHQKIFBBU1MgaXRlci5uZXh0Tm9kZSgpIGlzIG51bGwKIFBB
U1MgaXRlci5wcmV2aW91c05vZGUoKSBpcyBkdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vbm9kZS1pdGVyYXRvci13aXRoLWRvY3R5cGUtcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vbm9kZS1pdGVyYXRvci13aXRoLWRvY3R5cGUtcm9vdC5odG1sCmluZGV4IDA4YjM2
ZWI3YTM1MDdjZGFkYTU5NTY4NDNjZmIxMzA5MTdiMmNiOTUuLmFjYjhiMWVkMTY5YjVkYmY3OGUz
MjU4YWUwMjhlZTg5OGRkYzcxOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25v
ZGUtaXRlcmF0b3Itd2l0aC1kb2N0eXBlLXJvb3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9ub2RlLWl0ZXJhdG9yLXdpdGgtZG9jdHlwZS1yb290Lmh0bWwKQEAgLTcsNyArNyw3IEBA
CiB2YXIgZHQgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoImZv
byIsICIiLCAiIik7CiB2YXIgaXRlciA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkdCwg
Tm9kZUZpbHRlci5TSE9XX0FMTCwgbnVsbCwgdHJ1ZSk7CiBkZWJ1ZygiTm9kZUl0ZXJhdG9yIHJv
b3RlZCBhdCBhIERvY3VtZW50VHlwZSBub2RlIG5vdCB5ZXQgYXNzb2NpYXRlZCB3aXRoIGEgZG9j
dW1lbnQ6Iik7Ci1zaG91bGRCZSgnaXRlci5yZWZlcmVuY2VOb2RlLm93bmVyRG9jdW1lbnQnLCAn
bnVsbCcpOworc2hvdWxkQmUoJ2l0ZXIucmVmZXJlbmNlTm9kZS5vd25lckRvY3VtZW50JywgJ2Rv
Y3VtZW50Jyk7CiBzaG91bGRCZSgnaXRlci5uZXh0Tm9kZSgpJywgJ2R0Jyk7CiBzaG91bGRCZSgn
aXRlci5uZXh0Tm9kZSgpJywgJ251bGwnKTsKIHNob3VsZEJlKCdpdGVyLnByZXZpb3VzTm9kZSgp
JywgJ2R0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kaXNwYXRjaC1l
dmVudC1uby1kb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9k
aXNwYXRjaC1ldmVudC1uby1kb2N1bWVudC1leHBlY3RlZC50eHQKaW5kZXggYWM2YmQ3YTAxMTY4
ZDdhM2E2MGNjMzQ5Yjg3MDllYzAyNjY4MWVmZS4uZjliYWEzNWU4Y2I1Y2I1NTEyMjNiZjM0Njdh
ODk3YWJkMzEzM2YzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGlzcGF0
Y2gtZXZlbnQtbm8tZG9jdW1lbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2Rpc3BhdGNoLWV2ZW50LW5vLWRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsx
LDYgQEAKLVRoZSB0ZXN0IHZlcmlmaWVzIHRoYXQgRXZlbnRUYXJnZXQgd2l0aCBhbiBldmVudCBs
aXN0ZW5lciBidXQgd2l0aG91dCBTY3JpcHRFeGVjdXRpb25Db250ZXh0IChub3QgaW5zZXJ0ZWQg
aW50byBEb2N1bWVudCkgZG9lcyBub3QgY3Jhc2ggZHVyaW5nIGFuIGF0dGVtcHQgdG8gZGlzcGF0
Y2ggYW4gZXZlbnQuIEl0IHNob3VsZCBqdXN0IG5vdCBjYWxsIHRoZSBoYW5kbGVyLiBUaGlzIGlz
IHdoYXQgRkYgMy41IGlzIGFsc28gZG9pbmcuCitUaGUgdGVzdCB2ZXJpZmllcyB0aGF0IEV2ZW50
VGFyZ2V0IHdpdGggYW4gZXZlbnQgbGlzdGVuZXIgbm90IGluc2VydGVkIGludG8gYSBEb2N1bWVu
dCBkb2VzIG5vdCBjcmFzaCBkdXJpbmcgYW4gYXR0ZW1wdCB0byBkaXNwYXRjaCBhbiBldmVudC4K
IAotVGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgbm8gY3Jhc2gsIGFuZCBldmVudCBpcyBub3QgZGlz
cGF0Y2hlZC4KK1Rlc3QgcGFzc2VzIGlmIHRoZXJlIGlzIG5vIGNyYXNoLCBhbmQgZXZlbnQgaXMg
ZGlzcGF0Y2hlZC4KKworUEFTUzogZ2VuZXJpYyBoYW5kbGVkLgogCi1QQVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kaXNwYXRjaC1ldmVudC1uby1kb2N1bWVudC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZGlzcGF0Y2gtZXZlbnQtbm8tZG9jdW1lbnQuaHRt
bAppbmRleCA3Zjk5YWQ1YjkyZGNjMTRjYTQ2YTRhNTNjZTY5OWFhZmVmZTBmMTgyLi5jY2VlN2Y4
YTNiMzczMjNiMjY5ZWUxMTdjMWE2OGE3NjA0NGIwOTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9kaXNwYXRjaC1ldmVudC1uby1kb2N1bWVudC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2Rpc3BhdGNoLWV2ZW50LW5vLWRvY3VtZW50Lmh0bWwKQEAgLTEs
NiArMSw2IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gaGFuZGxlRXZlbnQobWVzc2FnZSkgewotICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5pbm5lckhUTUwgPSAiRkFJTDogIiArIG1l
c3NhZ2UgKyAiIGhhbmRsZWQuPGJyPiI7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxv
ZyIpLmlubmVySFRNTCA9ICJQQVNTOiAiICsgbWVzc2FnZSArICIgaGFuZGxlZC48YnI+IjsKIH0K
IAogZnVuY3Rpb24gdGVzdCgpIHsKQEAgLTIxLDYgKzIxLDYgQEAgZnVuY3Rpb24gdGVzdCgpIHsK
IH0KIDwvc2NyaXB0PgogPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPHA+VGhlIHRlc3QgdmVyaWZp
ZXMgdGhhdCBFdmVudFRhcmdldCB3aXRoIGFuIGV2ZW50IGxpc3RlbmVyIGJ1dCB3aXRob3V0IFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQgKG5vdCBpbnNlcnRlZCBpbnRvIERvY3VtZW50KSBkb2VzIG5v
dCBjcmFzaCBkdXJpbmcgYW4gYXR0ZW1wdCB0byBkaXNwYXRjaCBhbiBldmVudC4gSXQgc2hvdWxk
IGp1c3Qgbm90IGNhbGwgdGhlIGhhbmRsZXIuIFRoaXMgaXMgd2hhdCBGRiAzLjUgaXMgYWxzbyBk
b2luZy48L3A+Ci08cD5UZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBubyBjcmFzaCwgYW5kIGV2ZW50
IGlzIG5vdCBkaXNwYXRjaGVkLjwvcD4KLTxkaXYgaWQ9ImxvZyI+UEFTUzwvZGl2PgorPHA+VGhl
IHRlc3QgdmVyaWZpZXMgdGhhdCBFdmVudFRhcmdldCB3aXRoIGFuIGV2ZW50IGxpc3RlbmVyIG5v
dCBpbnNlcnRlZCBpbnRvIGEgRG9jdW1lbnQgZG9lcyBub3QgY3Jhc2ggZHVyaW5nIGFuIGF0dGVt
cHQgdG8gZGlzcGF0Y2ggYW4gZXZlbnQuPC9wPgorPHA+VGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMg
bm8gY3Jhc2gsIGFuZCBldmVudCBpcyBkaXNwYXRjaGVkLjwvcD4KKzxkaXYgaWQ9ImxvZyI+RkFJ
TDwvZGl2Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>